# Menu - Frotas - Receitas e Despesas

# Receitas e Despesas - Tipos de Receita

## Descrição da Interface

O módulo "**TIPOS RECEITAS**" apresenta uma interface para gerenciamento de tipos de receita relacionados a veículos. A interface é composta por duas telas principais: uma para listagem e filtro de tipos de receita, e outra para adição e edição desses registros. Ele é parte do sistema de gerenciamento de frota "CONCEPT RASTREAMENTO"

A primeira tela mostra uma tabela com os tipos de receita cadastrados, incluindo informações como tipo, status e se é um tipo padrão. Acima da tabela, há uma seção de filtros que permite buscar por tipos específicos e filtrar apenas os registros ativos.

A segunda tela é um formulário de edição/criação que permite adicionar novos tipos de receita ou modificar os existentes, contendo campos para o nome do tipo e seu status (ativo/inativo).

O sistema segue um padrão visual consistente, com um menu lateral à esquerda e o conteúdo principal ocupando a maior parte da tela. A interface utiliza um esquema de cores profissional com destaque para ações principais.

Para acessar clique no MENU FROTAS, seção RECEITAS E DESPESAS, opção TIPOS DE RECEITAS.

## Elementos da Interface

### Tela de Listagem (Tipos de Receitas)

**Cabeçalho:**

- Título: "Tipos de Receitas"

**Seção de Filtros:**

- Campo de texto "Tipo": permite filtrar por nome do tipo de receita
- Checkbox "Somente Ativos": quando marcado, exibe apenas os tipos de receita ativos
- Botões de ação: 
    - Pesquisa (ícone de lupa): executa a pesquisa com os filtros aplicados
    - Limpar Filtros (ícone de documento): limpa todos os filtros aplicados
    - Novo (ícone de adição): cria um novo registro
    - Exportar para CSV (ícone de salvar): exporta os dados da tabela para um arquivo CSV

**Tabela de Tipos de Receita:**

- Colunas: 
    - # (número sequencial)
    - TIPO (nome do tipo de receita)
    - STATUS (ATIVO/INATIVO)
    - PADRÃO (SIM/-)
- Contador de registros: exibe o total de registros encontrados

### Tela de Edição (Tipo de Receita)

**Cabeçalho:**

- Título: "Tipo de Receita"

**Seção de Alerta de Erro:**

- Exibe mensagens de erro quando há problemas de validação

**Formulário:**

- Campo de texto "Tipo": nome do tipo de receita (obrigatório)
- Checkbox "ativo": define se o tipo de receita está ativo
- Botões de ação: 
    - Gravar: salva as alterações
    - Excluir: remove o registro (visível apenas quando editando um registro existente que não seja padrão)
    - Voltar: retorna à tela de listagem

## Propósito e Fluxo de Trabalho

O propósito desta interface é gerenciar os tipos de receita relacionados a veículos em um sistema de gestão de frota. Estes tipos categorizam as diferentes fontes de receita que podem ser geradas pelos veículos da frota.

### Fluxo de Trabalho Principal:

1. **Listagem e Consulta:**
    
    
    - O usuário acessa a tela de listagem para visualizar todos os tipos de receita cadastrados
    - Pode aplicar filtros para encontrar registros específicos
    - Visualiza informações como tipo, status e se é um registro padrão
2. **Criação de Novo Tipo de Receita:**
    
    
    - O usuário clica no botão "Novo"
    - Preenche o campo "Tipo" (obrigatório)
    - Define se o tipo será ativo ou não
    - Clica em "Gravar" para salvar
3. **Edição de Tipo de Receita Existente:**
    
    
    - O usuário seleciona um registro na tabela
    - Modifica os campos desejados
    - Clica em "Gravar" para salvar as alterações
4. **Exclusão de Tipo de Receita:**
    
    
    - O usuário seleciona um registro na tabela
    - Clica em "Excluir" (disponível apenas para registros não padrão)
    - Confirma a exclusão
5. **Exportação de Dados:**
    
    
    - O usuário aplica os filtros desejados
    - Clica no botão "Exportar para CSV"
    - O sistema gera um arquivo CSV com os dados filtrados

## Instruções Passo a Passo

### Como Consultar Tipos de Receita

1. Acesse a tela "Tipos de Receitas"
2. Na seção de filtros, você pode: 
    - Preencher o campo "Tipo" para buscar por um nome específico
    - Marcar ou desmarcar "Somente Ativos" para filtrar por status
3. Clique no botão de pesquisa (ícone de lupa)
4. A tabela será atualizada com os resultados da pesquisa
5. Para limpar os filtros, clique no botão "Limpar Filtros" (ícone de documento)

### Como Criar um Novo Tipo de Receita

1. Na tela de listagem, clique no botão "Novo" (ícone de adição)
2. Você será direcionado para a tela de edição
3. Preencha o campo "Tipo" com o nome do novo tipo de receita
4. Marque o checkbox "ativo" se desejar que o tipo esteja ativo
5. Clique no botão "Gravar"
6. Se não houver erros, você será redirecionado para a tela de listagem

### Como Editar um Tipo de Receita Existente

1. Na tela de listagem, clique na linha do registro que deseja editar
2. Você será direcionado para a tela de edição com os dados preenchidos
3. Altere os campos desejados
4. Clique no botão "Gravar"
5. Se não houver erros, você será redirecionado para a tela de listagem

### Como Excluir um Tipo de Receita

1. Na tela de listagem, clique na linha do registro que deseja excluir
2. Na tela de edição, verifique se o botão "Excluir" está disponível 
    - Nota: Tipos de receita padrão não podem ser excluídos
3. Clique no botão "Excluir"
4. Se a exclusão for bem-sucedida, você será redirecionado para a tela de listagem

### Como Exportar Dados para CSV

1. Na tela de listagem, aplique os filtros desejados
2. Clique no botão "Exportar para CSV" (ícone de salvar)
3. O arquivo será gerado e baixado automaticamente

## Regras de Negócio

Com base na análise do código fornecido, as seguintes regras de negócio foram identificadas:

1. **Campos Obrigatórios:**
    
    
    - O campo "Tipo" é obrigatório para criar ou editar um tipo de receita
2. **Tipos de Receita Padrão:**
    
    
    - Existem tipos de receita marcados como "padrão" no sistema
    - Tipos de receita padrão não podem ser alterados
    - Tipos de receita padrão não podem ser excluídos
    - O sistema verifica e cria automaticamente tipos padrão quando necessário
3. **Permissões de Acesso:**
    
    
    - As operações de gravação e exclusão estão sujeitas a verificações de permissão
    - Existem três níveis de acesso: 
        - Acesso Master: permissão total
        - Acesso de Grupo: depende das permissões configuradas para o grupo
        - Acesso Individual: restrições específicas por usuário
4. **Validações:**
    
    
    - O sistema valida se o campo "Tipo" foi preenchido antes de gravar
    - Exibe mensagens de erro quando a validação falha
5. **Filtros:**
    
    
    - É possível filtrar por nome do tipo
    - É possível filtrar por status (ativo/inativo)

## Perguntas Frequentes

### Por que não consigo excluir certos tipos de receita?

Os tipos de receita marcados como "padrão" não podem ser excluídos. Estes são tipos essenciais para o funcionamento do sistema. Eles são identificados pela coluna "PADRÃO" com valor "SIM" na tabela de listagem.

### Por que não consigo editar certos tipos de receita?

Assim como na exclusão, os tipos de receita padrão não podem ser alterados. Qualquer tentativa de salvar alterações em um tipo padrão resultará em um erro.

### Como faço para ver apenas os tipos de receita ativos?

Na tela de listagem, marque o checkbox "Somente Ativos" na seção de filtros e clique no botão de pesquisa.

### O que significa o valor "SIM" na coluna PADRÃO?

Indica que o tipo de receita é um tipo padrão do sistema, criado automaticamente e protegido contra alterações e exclusões.

### Como posso exportar apenas determinados tipos de receita para CSV?

Aplique os filtros desejados na tela de listagem para exibir apenas os registros de interesse e então clique no botão "Exportar para CSV".

### Quem pode criar novos tipos de receita?

Usuários com permissão de gravação podem criar novos tipos. Isso inclui usuários com acesso Master e usuários de grupos com permissão de alteração.

### É possível reativar um tipo de receita inativo?

Sim. Selecione o tipo de receita na listagem, e na tela de edição, marque o checkbox "ativo" e clique em "Gravar".

### O que acontece se eu tentar criar um tipo de receita sem nome?

O sistema exibirá uma mensagem de erro indicando que o campo é obrigatório e não permitirá o salvamento até que seja preenchido.

# Receitas e Despesas - Despesas de Veículos

## Descrição Geral

O módulo "**DESPESAS"** de Veículos é uma interface para gerenciamento completo dos gastos relacionados à frota de veículos de uma empresa. O sistema permite registrar, editar, visualizar, filtrar e imprimir diversos tipos de despesas, como abastecimentos, manutenções, trocas de peças, entre outros. A interface é organizada em várias telas principais que cobrem diferentes funcionalidades, desde a listagem geral até o cadastro detalhado de despesas individuais ou múltiplas.Ele é parte do sistema de gerenciamento de frota "CONCEPT RASTREAMENTO".

Para acessar clique no menu FROTAS, seção RECEITAS E DEPESAS, opção DESPESAS.

## Elementos da Interface

### Tela Principal de Listagem

**Seção de Filtros:**

- **Veículo**: Campo de seleção que permite filtrar por veículo específico
- **Tipo**: Dropdown para selecionar o tipo de despesa
- **Fornecedor**: Campo para filtrar por fornecedor específico
- **Grupo**: Dropdown para selecionar grupos de despesas específicos
- **Identificador**: Campo de texto para filtrar por identificador de viagem
- **Nota Fiscal**: Campo de texto para filtrar por número de nota fiscal
- **Período de Data**: Campos de data inicial e final com seletor de calendário
- **Situação de Pagamento**: Selector com opções "Pagas", "Não Pagas" e "Todas"
- **Tipo de Data**: Selector com opções "Data", "Dt Pgto" (Data de Pagamento) e "Cadastro"

**Botões de Ação:**

- Botão de Pesquisa (ícone de lupa)
- Botão Limpar Filtros
- Botão Novo (para criar nova despesa)
- Botão Inserir Múltiplas Despesas
- Botão Exportar para CSV
- Botão Importar
- Ícone para acessar despesas selecionadas

**Tabela de Despesas:**

- Colunas: # (número), Veículo, Tipo, Grupo, Nome, Data, Data Pagamento, Valor, Qtd, É de Viagem, Fornecedor, Nota Fiscal
- Cada linha representa uma despesa registrada no sistema
- Indicador do total de registros na parte inferior

### Tela de Edição/Cadastro de Despesa

**Abas:**

- **Dados**: Contém os campos para edição da despesa
- **Anexos**: Permite gerenciar documentos anexados à despesa

**Campos de Dados:**

- **Veículo**: Dropdown para selecionar um veículo (obrigatório)
- **Motorista**: Campo de texto com botão de busca para selecionar motorista (obrigatório)
- **Tipo**: Dropdown para selecionar o tipo de despesa (obrigatório)
- **Grupo**: Dropdown para categorizar a despesa
- **Tipo de Combustível**: Aparece condicionalmente para abastecimentos externos
- **Tanque de Combustível**: Aparece condicionalmente para abastecimentos internos
- **Nome**: Descrição curta da despesa (obrigatório)
- **Fornecedor**: Dropdown com botão para adicionar novo fornecedor
- **Descrição**: Campo de texto longo para detalhamento
- **Rota**: Campo com botão de busca para associar uma rota
- **Viagem**: Campo com botão de busca para associar uma viagem
- **Data**: Campo de data com hora (obrigatório)
- **Período**: Dropdown para indicar o período relacionado
- **Data de Pagamento**: Campo de data (opcional)
- **Quantidade**: Campo numérico (obrigatório)
- **Valor**: Campo numérico em formato monetário (obrigatório)
- **Odômetro**: Campo numérico (obrigatório para abastecimentos)
- **Horímetro**: Campo numérico
- **Nota Fiscal**: Campo de texto para número de nota fiscal
- **Checkbox "Pagamento Parcelado"**: Possibilita o parcelamento da despesa

**Botões de Ação:**

- Gravar
- Excluir (visível apenas para registros existentes)
- Imprimir
- Voltar

### Popup de Parcelas de Pagamentos

Quando a opção "Pagamento Parcelado" é selecionada:

- Campos para adicionar parcela: Data, Valor, Data de Pagamento, Descrição
- Botão para adicionar parcela
- Tabela com parcelas cadastradas
- Exibição de totais: valor total e valor pago
- Contadores: total de parcelas e parcelas pagas

### Tela de Inserção Múltipla de Despesas

**Seção de Veículo:**

- Campos para selecionar veículo, motorista e período
- Campos para selecionar rota e viagem
- Botões de ação: Gravar e Voltar

**Seção de Despesas:**

- Botão para adicionar nova despesa
- Tabela com despesas a serem cadastradas
- Colunas: Tipo, Nome, Data, Qtd, Valor, Nota Fiscal

**Popup de Cadastro de Despesa:**

- Campos similares à tela de cadastro individual
- Botões: Inserir e Inserir e Limpar

### Tela de Importação

- Seleção do modelo de importação
- Opção "Descartar erros"
- Botão para selecionar arquivo
- Botões para download de modelos de planilha (Simplificada e Completa)
- Área para exibição do resultado da importação

### Popup de Despesas Selecionadas

- Listagem das despesas selecionadas
- Opções para limpar seleção ou excluir em lote
- Tabela com as despesas selecionadas

### Tela de Impressão

- Formato de comprovante/recibo de despesa
- Exibe todos os dados da despesa de forma organizada
- Espaço para assinaturas de responsáveis
- Botões para imprimir e voltar

## Fluxos de Trabalho e Funcionalidades

### Principais Operações

1. **Consulta e Filtragem de Despesas**
    
    
    - Permite localizar despesas através de diversos critérios
    - Possibilita exportação dos dados filtrados
2. **Cadastro de Despesas**
    
    
    - Individual: para registro detalhado de uma despesa específica
    - Múltiplo: para cadastrar várias despesas de um mesmo veículo
    - Importação: para carregar despesas a partir de planilhas
3. **Gestão de Abastecimentos**
    
    
    - Controle específico para diferentes tipos de combustível
    - Diferenciação entre abastecimento interno e externo
    - Verificações de compatibilidade de combustível com o veículo
4. **Gestão Financeira**
    
    
    - Controle de pagamentos (à vista ou parcelado)
    - Acompanhamento de parcelas pagas e a pagar
    - Vinculação com fornecedores
5. **Documentação**
    
    
    - Anexação de documentos comprobatórios (notas fiscais, recibos)
    - Geração de impressões para controle físico
6. **Integração com outros módulos**
    
    
    - Vinculação com viagens e rotas
    - Registro de odômetro e horímetro para controle de manutenção

## Instruções Passo a Passo

### Como Cadastrar uma Nova Despesa

1. Na tela principal, clique no botão "+" (Novo)
2. Selecione o veículo na lista suspensa
3. Selecione ou busque o motorista
4. Escolha o tipo de despesa
5. Se necessário, selecione o grupo de despesa
6. Para abastecimentos, preencha as informações específicas (tipo de combustível ou tanque)
7. Preencha o nome da despesa
8. Selecione o fornecedor ou adicione um novo
9. Preencha a descrição detalhada (opcional)
10. Associe a uma rota ou viagem se aplicável
11. Preencha a data e horário da despesa
12. Selecione o período relacionado
13. Indique a data de pagamento ou marque como pagamento parcelado
14. Se for parcelado, clique em "Ver Parcelas" e adicione as parcelas necessárias
15. Preencha a quantidade e valor
16. Registre o odômetro e/ou horímetro
17. Adicione o número da nota fiscal se houver
18. Clique em "Gravar"
19. Se desejar anexar documentos, vá para a aba "Anexos" e faça o upload

### Como Importar Múltiplas Despesas

1. Na tela principal, clique no botão de importação
2. Selecione o modelo de importação (TicketLog, Modelo Geral Simplificado ou Completo)
3. Marque "Descartar erros" se deseja que o sistema ignore linhas com problemas
4. Clique em "Selecionar" e escolha o arquivo Excel preparado
5. Clique em "Upload" (ícone de seta para cima)
6. Aguarde o processamento e verifique o resultado na tela

### Como Realizar Cadastro Múltiplo de Despesas

1. Na tela principal, clique no botão de inserção múltipla
2. Selecione o veículo na lista suspensa
3. Selecione ou busque o motorista
4. Escolha o período relacionado
5. Associe a uma rota ou viagem se necessário
6. Clique no botão "+" para adicionar uma despesa
7. Preencha os campos no popup de despesa
8. Clique em "Inserir" para adicionar à lista e manter o popup aberto ou "Inserir e Limpar" para adicionar e limpar os campos
9. Repita os passos 6-8 para todas as despesas necessárias
10. Clique em "Gravar" para salvar todas as despesas cadastradas

### Como Excluir Despesas em Lote

1. Na tela principal, selecione as despesas desejadas clicando nas linhas correspondentes
2. Clique no ícone de arquivo na parte superior direita
3. No popup exibido, verifique a lista de despesas selecionadas
4. Se necessário, remova individualmente alguma despesa da seleção
5. Clique em "Excluir"
6. Confirme a operação quando solicitado

## Validações do Sistema

Com base no código-fonte, o sistema realiza diversas validações importantes:

1. **Campos obrigatórios:**
    
    
    - Veículo, Motorista, Tipo, Nome, Data, Quantidade e Valor são obrigatórios para todas as despesas
    - Odômetro ou Horímetro é obrigatório para abastecimentos
2. **Validações específicas para abastecimentos:**
    
    
    - Compatibilidade entre o combustível e o veículo
    - Verificação se a quantidade não excede a capacidade do tanque do veículo
    - Para abastecimentos internos, verificação do estoque disponível no tanque
    - Validação de duplicidade de nota fiscal (configurable por cliente)
3. **Validações de odômetro e horímetro:**
    
    
    - Verificação para garantir que os valores não sejam retroativos (menores que registros anteriores)
    - Verificação para garantir que os valores não sejam superiores a registros posteriores já cadastrados
4. **Validações para pagamentos parcelados:**
    
    
    - Verificação se existe pelo menos uma parcela cadastrada
    - Soma dos valores das parcelas deve corresponder ao valor total da despesa
5. **Validações de tanque interno:**
    
    
    - Verifica se existe tanque interno selecionado para abastecimentos internos
    - Verifica se não há movimentações de combustível posteriores à data do abastecimento

## Perguntas Frequentes (FAQ)

### 1. Como diferenciar abastecimento interno e externo?

O abastecimento interno refere-se ao uso de combustível armazenado em tanques da própria empresa. Ao selecionar um tipo de despesa de abastecimento interno, o sistema exigirá a seleção de um tanque de combustível interno. Já o abastecimento externo é realizado em postos de combustível comerciais.

### 2. O que fazer quando o sistema indica erro de "Combustível não compatível com o veículo"?

Este erro ocorre quando o tipo de combustível selecionado não está entre os tipos configurados como compatíveis para o veículo. Verifique a configuração do veículo ou selecione um combustível compatível.

### 3. Como cadastrar um pagamento parcelado?

Marque a opção "Pagamento Parcelado" na tela de cadastro da despesa, clique em "Ver Parcelas" e adicione cada parcela individualmente, informando data prevista, valor e, quando paga, a data de pagamento.

### 4. Por que o sistema não permite que eu cadastre um abastecimento com data anterior?

O sistema valida se existem movimentações de combustível posteriores à data que você está tentando cadastrar. Isso evita inconsistências no controle de estoque de combustível. Verifique se há movimentações posteriores e, se necessário, ajuste-as primeiro.

### 5. Como posso vincular uma despesa a uma viagem específica?

Na tela de cadastro de despesa, utilize o campo "Viagem" e clique no botão de busca para selecionar a viagem desejada. Apenas viagens do veículo selecionado estarão disponíveis.

### 6. Posso importar despesas de diferentes sistemas de terceiros?

Sim, o sistema aceita importação de arquivos formatados de diferentes sistemas. A tela de importação oferece opções como TicketLog e modelos gerais. Você pode baixar os modelos de planilha para referência.

### 7. Como verificar quais despesas estão pendentes de pagamento?

Na tela principal, utilize o filtro "Situação de Pagamento" e selecione a opção "Não Pagas". O sistema exibirá todas as despesas sem pagamento registrado.

### 8. O que significa o erro "Quantidade de combustível superior à capacidade do tanque"?

Este erro indica que a quantidade de combustível informada excede a capacidade configurada para o tanque do veículo. Verifique a quantidade digitada ou a configuração da capacidade do tanque.

### 9. É possível excluir uma despesa que já possui parcelas pagas?

Sim, o sistema permite a exclusão, mas é recomendável verificar todas as implicações financeiras antes de realizar esta operação, pois todas as parcelas associadas serão excluídas.

### 10. Como adicionar um novo tipo de despesa?

Os tipos de despesa são configurados em um cadastro específico do sistema. Na tela atual, não é possível adicionar novos tipos, apenas selecionar entre os existentes. Contate o administrador do sistema para adicionar novos tipos, se necessário.

## Considerações Técnicas

O sistema foi desenvolvido utilizando Vue.js para o frontend e Java para o backend, seguindo uma arquitetura MVC com comunicação via servlets. Os principais aspectos técnicos incluem:

1. **Gerenciamento de estado:** O Vue.js é utilizado para gerenciar o estado da aplicação, com componentes reativos que atualizam a interface conforme as interações do usuário.
2. **Validações em múltiplas camadas:** As validações ocorrem tanto no frontend (imediatas ao usuário) quanto no backend (antes da persistência), garantindo integridade dos dados.
3. **Integrações:** O sistema integra-se com outros módulos como cadastro de veículos, motoristas, rotas e viagens, compartilhando informações entre eles.
4. **Processamento de arquivos:** Funcionalidades para upload de anexos e importação de planilhas são implementadas utilizando bibliotecas específicas para manipulação de arquivos.
5. **Persistência transacional:** Operações críticas como abastecimentos internos utilizam transações de banco de dados para garantir a consistência do estoque de combustível.
6. **Responsividade:** A interface é projetada para funcionar em diferentes dispositivos, com componentes responsivos e layouts adaptáveis.

# Receitas e Despesas - Tipos de Despesas

## Descrição da Interface

O módulo "**TIPO DESPESA**" apresenta uma interface para gerenciamento de tipos de despesas relacionadas a veículos em uma frota. Ele é parte do sistema de gerenciamento de frota "CONCEPT RASTREAMENTO". A interface possui duas telas principais:

1. **Tela de Listagem (Tipos de Despesas)**: Exibe uma lista de tipos de despesas cadastradas no sistema, permitindo filtrar, pesquisar, adicionar novos registros e exportar dados.
2. **Tela de Edição (Tipo de Despesa)**: Permite adicionar um novo tipo de despesa ou editar um registro existente, com campos para preenchimento das informações necessárias.

Para acessar clique no menu FROTAS, seção RECEITAS E DESPESAS, opção TIPOS DESPESAS.

## Elementos da Interface

### Tela de Listagem (Tipos de Despesas)

#### Seção de Filtros

- **Campo Tipo**: Campo de texto para filtrar pelo nome do tipo de despesa
- **Checkbox "Somente Ativos"**: Filtro para exibir apenas os tipos de despesa ativos (marcado por padrão)
- **Botões de Ação**: 
    - Pesquisar (ícone de lupa): Aplica os filtros selecionados
    - Limpar Filtros (ícone de arquivo): Remove todos os filtros aplicados
    - Novo (ícone de adição): Redireciona para a tela de cadastro de novo tipo de despesa
    - Exportar para CSV (ícone de salvar): Exporta os dados da tabela para um arquivo CSV

#### Tabela de Resultados

- **Colunas**: 
    - Numeração sequencial (#)
    - TIPO: Nome do tipo de despesa
    - STATUS: Indica se o tipo de despesa está ativo ou inativo
    - PADRÃO: Indica se é um tipo de despesa padrão do sistema (SIM ou -)
- **Rodapé**: Exibe o número total de registros encontrados

### Tela de Edição (Tipo de Despesa)

#### Mensagens de Erro

- **Área de Validação**: Exibe mensagens de erro quando há campos obrigatórios não preenchidos ou outras validações falham
- **Botão Fechar**: Fecha a mensagem de erro

#### Formulário

- **Campo Tipo**: Campo de texto obrigatório para o nome do tipo de despesa
- **Checkbox "ativo"**: Define se o tipo de despesa está ativo ou não
- **Botões de Ação**: 
    - Gravar: Salva as alterações feitas no formulário
    - Excluir: Remove o tipo de despesa (visível apenas para registros existentes que não sejam padrão)
    - Voltar: Retorna para a tela de listagem

## Propósito e Fluxo de Trabalho

O sistema permite o gerenciamento de tipos de despesas relacionadas aos veículos da frota. Estes tipos categorizam os gastos realizados com os veículos, facilitando a organização financeira e o controle de custos.

### Fluxo Principal:

1. O usuário acessa a tela de listagem para visualizar os tipos de despesas existentes
2. Pode filtrar a lista usando os campos de filtro disponíveis
3. Para cadastrar um novo tipo, clica no botão "Novo"
4. Na tela de edição, preenche as informações necessárias
5. Ao salvar, o sistema valida os dados e retorna à tela de listagem
6. Na tela de listagem, pode selecionar um registro para edição ou visualização

### Regras de Negócio:

- Tipos de despesas marcados como "padrão" não podem ser alterados ou excluídos
- O campo "Tipo" é obrigatório para o cadastro
- O sistema cria automaticamente tipos de despesa padrão para novos clientes
- Apenas usuários com permissão adequada podem gravar ou excluir registros

## Instruções Passo a Passo

### Como Filtrar Tipos de Despesa

1. No campo "Tipo", digite o texto para filtrar por nome
2. Marque ou desmarque a opção "Somente Ativos" conforme necessário
3. Clique no botão de pesquisa (ícone de lupa)
4. Para limpar os filtros, clique no botão "Limpar Filtros" (ícone de arquivo)

### Como Adicionar um Novo Tipo de Despesa

1. Na tela de listagem, clique no botão "Novo" (ícone de adição)
2. Preencha o campo "Tipo" com o nome desejado
3. Marque ou desmarque a opção "ativo" conforme necessário
4. Clique no botão "Gravar"
5. Se todos os campos obrigatórios estiverem preenchidos corretamente, o sistema salvará o registro e retornará à tela de listagem

### Como Editar um Tipo de Despesa Existente

1. Na tela de listagem, clique na linha do registro que deseja editar
2. Realize as alterações necessárias nos campos
3. Clique no botão "Gravar"
4. O sistema salvará as alterações e retornará à tela de listagem

### Como Remover um Tipo de Despesa

1. Na tela de listagem, clique na linha do registro que deseja remover
2. Na tela de edição, clique no botão "Excluir"
3. Confirme a ação quando solicitado
4. O sistema removerá o registro e retornará à tela de listagem

### Como Exportar Dados para CSV

1. Na tela de listagem, aplique os filtros desejados (opcional)
2. Clique no botão "Exportar para CSV" (ícone de salvar)
3. O arquivo será gerado com os dados mostrados na tabela

## Perguntas Frequentes

### Por que não consigo excluir ou editar alguns tipos de despesa?

Tipos de despesa marcados como "padrão" não podem ser alterados ou excluídos. Estes são tipos essenciais definidos pelo sistema para garantir a padronização das informações.

### Por que o botão "Gravar" está desabilitado?

O botão "Gravar" pode estar desabilitado por dois motivos:

1. Você não possui permissão para modificar registros
2. O tipo de despesa é um registro padrão do sistema, que não pode ser alterado

### Como identificar tipos de despesa padrão?

Na tabela de listagem, os tipos de despesa padrão possuem "SIM" na coluna "PADRÃO". Estes registros são criados automaticamente pelo sistema.

### Por que aparece uma mensagem de erro ao tentar salvar?

A mensagem de erro aparece quando o campo "Tipo" não foi preenchido, pois é um campo obrigatório. Preencha o campo e tente novamente.

### Qual a diferença entre tipos de despesa ativos e inativos?

Tipos de despesa ativos são utilizados normalmente no sistema. Tipos inativos continuam visíveis para fins de histórico, mas não aparecem em novas operações a menos que o filtro "Somente Ativos" seja desmarcado.

### Como funciona a permissão para gerenciar tipos de despesa?

O acesso às funcionalidades depende do perfil do usuário:

- Usuários com acesso "Master" podem realizar todas as operações
- Usuários de grupo com capacidade "Master" têm permissões ampliadas
- Usuários regulares podem ter restrições conforme configurado no sistema

### Por que existem tipos de despesa que não posso remover mesmo não sendo padrão?

Tipos de despesa que estão em uso em lançamentos existentes não podem ser removidos para manter a integridade dos registros históricos. Nestes casos, recomenda-se apenas marcá-los como inativos.

## Validações e Restrições

- O campo "Tipo" é obrigatório
- Tipos de despesa padrão não podem ser alterados ou excluídos
- A exclusão de um registro é permitida apenas se: 
    - O usuário possuir permissão adequada
    - O registro não for um tipo padrão
- As operações de gravação dependem das permissões do usuário, seja ele um usuário master ou de grupo com capacidade master
- O sistema valida automaticamente o preenchimento dos campos obrigatórios antes de enviar para processamento

## Manipulação dos Dados

O sistema gerencia os tipos de despesa através das seguintes operações:

- **Listagem**: Recupera registros com base nos filtros aplicados
- **Inclusão**: Adiciona novos tipos de despesa
- **Edição**: Permite alterar tipos de despesa existentes (exceto padrões)
- **Exclusão**: Remove tipos de despesa (exceto padrões)
- **Exportação**: Gera arquivo CSV com os dados exibidos na tabela

Cada operação passa por validações de segurança e regras de negócio antes de ser concluída, garantindo a integridade dos dados.

# Receitas e Despesas - Grupos de Receitas

## Descrição da Interface

O módulo "**GRUPOS DE RECEITAS**" é parte do sistema de gerenciamento de frota "CONCEPT RASTREAMENTO", especificamente dedicada ao cadastro e gerenciamento de Grupos de Receitas de veículos. Esta interface é composta por duas telas principais:

1. **Tela de Pesquisa/Listagem**: Permite filtrar, pesquisar e visualizar os grupos de receitas existentes no sistema.
2. **Tela de Edição/Cadastro**: Permite criar novos grupos de receitas ou modificar grupos existentes.

O sistema possui um design limpo e funcional com elementos visuais intuitivos como botões coloridos, tabela de dados com cabeçalhos em destaque, e formulários organizados com campos bem identificados. Para acessar clique no menu FROTAS, seção RECEITAS E DESPESAS, opção GRUPOS DE RECEITAS.

## Elementos das Telas

### Tela de Pesquisa/Listagem "Grupos de Receitas"

#### Seção de Filtros

- **Filtro de Código**: Campo de texto para buscar pelo código do grupo de receita
- **Filtro de Nome**: Campo de texto para buscar pelo nome do grupo de receita
- **Botões de Ação**: 
    - **Pesquisa** (ícone de lupa): Aplica os filtros informados
    - **Limpar Filtros** (ícone de arquivo): Limpa os valores digitados nos filtros
    - **Novo** (ícone de adição): Redireciona para a tela de cadastro de novo grupo
    - **Exportar para CSV** (ícone de salvar): Exporta a lista apresentada para um arquivo CSV

#### Tabela de Listagem

- **Colunas**: 
    - **\#**: Número sequencial da linha na tabela
    - **CÓDIGO**: Código do grupo de receita
    - **NOME**: Nome descritivo do grupo de receita
- **Funcionalidade**: Ao clicar em uma linha, o sistema redireciona para a tela de edição do registro selecionado

#### Rodapé

- **Contador de Registros**: Mostra o número total de registros listados (ex: "REGISTROS: 4")

### Tela de Edição/Cadastro "Grupo Receita"

#### Área de Mensagens de Erro

- **Alerta de Validação**: Exibe mensagens de erro quando há problemas nos campos preenchidos
- **Botão de Fechar**: Permite fechar a mensagem de erro

#### Formulário

- **Campo Código**: Campo obrigatório para informar o código do grupo de receita
- **Campo Nome**: Campo obrigatório para informar o nome descritivo do grupo de receita

#### Botões de Ação

- **Gravar**: Salva o registro com as informações preenchidas
- **Excluir**: Remove o registro atual (visível apenas em modo de edição)
- **Voltar**: Retorna para a tela de listagem sem salvar alterações

## Propósito e Fluxo de Trabalho

O propósito desta interface é permitir o gerenciamento completo de grupos de receitas de veículos, que são utilizados para categorizar as receitas obtidas na operação da frota.

### Fluxo de Trabalho Típico:

1. O usuário acessa a tela de listagem para visualizar os grupos de receitas existentes
2. O usuário pode filtrar a lista usando os campos de código e nome
3. Para criar um novo grupo, o usuário clica no botão "Novo"
4. Para editar um grupo existente, o usuário clica na linha correspondente na tabela
5. Na tela de edição/cadastro, o usuário preenche os campos obrigatórios (código e nome)
6. O usuário salva as alterações clicando no botão "Gravar"
7. Se necessário, o usuário pode excluir um grupo existente usando o botão "Excluir"

## Instruções Passo a Passo

### Como Pesquisar Grupos de Receitas

1. Acesse a tela "Grupos de Receitas"
2. Digite o código e/ou nome no campo de filtro correspondente
3. Clique no botão de pesquisa (ícone de lupa)
4. Os resultados serão exibidos na tabela abaixo
5. Para limpar os filtros, clique no botão com ícone de arquivo

### Como Criar um Novo Grupo de Receitas

1. Acesse a tela "Grupos de Receitas"
2. Clique no botão "Novo" (ícone de adição)
3. Preencha o campo "Código" com o identificador desejado
4. Preencha o campo "Nome" com a descrição do grupo
5. Clique no botão "Gravar"
6. Se todos os campos obrigatórios estiverem preenchidos, o sistema retornará à tela de listagem

### Como Editar um Grupo de Receitas

1. Acesse a tela "Grupos de Receitas"
2. Localize o grupo desejado na tabela (use os filtros se necessário)
3. Clique na linha correspondente ao grupo que deseja editar
4. Modifique os campos "Código" e/ou "Nome" conforme necessário
5. Clique no botão "Gravar"

### Como Excluir um Grupo de Receitas

1. Acesse a tela "Grupos de Receitas"
2. Localize o grupo desejado na tabela (use os filtros se necessário)
3. Clique na linha correspondente ao grupo que deseja excluir
4. Na tela de edição, clique no botão "Excluir"
5. O sistema retornará à tela de listagem se a exclusão for bem-sucedida

### Como Exportar Dados para CSV

1. Acesse a tela "Grupos de Receitas"
2. Aplique os filtros desejados (opcional)
3. Clique no botão "Exportar para CSV" (ícone de salvar)
4. O sistema gerará um arquivo CSV com os dados exibidos na tabela

## Regras de Negócio e Validações

### Validações de Formulário

- O campo "Código" é obrigatório
- O campo "Nome" é obrigatório
- A validação ocorre ao clicar no botão "Gravar"
- Se houver erros, eles serão exibidos na área de mensagens no topo da tela

### Permissões de Acesso

- As operações de gravar e excluir estão sujeitas a permissões de usuário
- Existem três níveis de acesso: 
    - Acesso Master: Tem permissão total para todas as operações
    - Acesso de Grupo com capacidade Master: Pode realizar todas as operações
    - Acesso de Grupo sem capacidade Master: Depende da permissão específica "grupoPodeSeAlterar"
    - Acesso Individual: Regras específicas se aplicam

### Regras de Exclusão

- Não é possível excluir um grupo de receita que possua receitas vinculadas
- O sistema verifica a quantidade de receitas vinculadas antes de permitir a exclusão
- Mensagens de erro específicas são exibidas para 1 ou mais receitas vinculadas

## Perguntas Frequentes

### Gerais

1. **Como posso encontrar um grupo de receita específico?**
    
    
    - Utilize os campos de filtro na tela de listagem para buscar pelo código ou nome do grupo.
2. **Por que não consigo excluir um grupo de receita?**
    
    
    - Os grupos de receita que possuem receitas vinculadas não podem ser excluídos. É necessário primeiro desvincular ou excluir todas as receitas associadas.
3. **Quem pode criar ou modificar grupos de receita?**
    
    
    - Usuários com acesso Master ou com permissão específica podem criar ou modificar grupos. Verifique com o administrador do sistema se você precisa de acesso.
4. **O que acontece se eu tentar cadastrar um grupo com código já existente?**
    
    
    - O sistema não permitirá o cadastro e exibirá uma mensagem de erro informando que o código já está em uso.
5. **Como sei quantos grupos de receita estão cadastrados?**
    
    
    - O contador no rodapé da tabela de listagem exibe o número total de registros encontrados.

### Técnicas

1. **Como obter um relatório completo dos grupos de receita?**
    
    
    - Utilize a funcionalidade "Exportar para CSV" para gerar um arquivo que pode ser aberto em ferramentas como Excel.
2. **O que significa o campo "Código" de um grupo de receita?**
    
    
    - O código é um identificador único para o grupo, usado em relatórios e para vinculação com receitas.
3. **É possível alterar o código de um grupo já existente?**
    
    
    - Sim, é possível alterar o código de um grupo existente, mas deve-se ter cuidado pois isso pode afetar relatórios e vinculações.
4. **Existe um limite de caracteres para o nome do grupo?**
    
    
    - O campo nome não possui um limite explícito na interface, mas recomenda-se usar nomes concisos e descritivos.
5. **Como saber se um grupo de receita está sendo utilizado?**
    
    
    - O sistema impede a exclusão de grupos com receitas vinculadas e informa a quantidade de vínculos existentes.

## Detalhes Adicionais de Funcionamento

O sistema utiliza uma arquitetura cliente-servidor, onde a interface web comunica-se com serviços backend. Os grupos de receita são fundamentais para a organização financeira da frota, permitindo categorizações como "viagens", "gastos básicos" e outras categorias personalizadas.

O processo de validação ocorre tanto no cliente (verificação de campos obrigatórios) quanto no servidor (verificação de duplicidades e integridade referencial). Todas as ações são registradas em log para auditoria e recuperação em caso de erros.

A funcionalidade de exportação para CSV permite aos usuários realizar análises avançadas dos dados em ferramentas externas, facilitando a geração de relatórios e dashboards personalizados.

Para operações em lote ou integrações com outros sistemas, recomenda-se utilizar a API correspondente, que não está disponível através desta interface visual.

# Receitas e Despesas - Favorecidos

## Descrição da Interface

O módulo ¨**FAVORECIDOS**" apresenta uma interface para gerenciamento de favorecidos (fornecedores e clientes) de uma empresa. A interface possui um design clean, com predomínio de branco e cinza, utilizando cards para separar seções e componentes visuais organizados de forma hierárquica. ELE é parte do sistema de gerenciamento de frota "CONCEPT RASTREAMENTO". Para acessar clique no menu FROTAS, seção RECEITAS E DESPESAS, opção FAVORECIDOS (FORNECEDORES/CLEINTES)

## Elementos da Interface

### Tela de Listagem (Favorecidos)

1. **Seção de Filtros**
    
    
    - Campo de texto "Nome" para filtrar a lista
    - Botão de pesquisa (ícone de lupa)
    - Botão para limpar filtros (ícone de documento)
    - Botão para adicionar novo registro (ícone de +)
    - Botão para exportar para CSV (ícone de download)
    - Botão para importar favorecidos (ícone de upload)
2. **Tabela de Dados**
    
    
    - Colunas: #, Nome, Razão Social, CPF/CNPJ, Telefones, Cliente, Fornecedor
    - Comportamento de seleção de linha única
    - Altura e largura de células configuráveis
    - Indicador de quantidade total de registros na parte inferior
3. **Modal de Importação de CSV**
    
    
    - Botão para anexar arquivo
    - Instruções para o formato do arquivo
    - Link para download de arquivo modelo
    - Área de mensagem para resultado da importação
    - Explicação detalhada do formato esperado: colunas separadas por ponto e vírgula (;) na sequência NOME; CNPJ OU CPF; ENDEREÇO; TELEFONE; EMAIL; SE CLIENTE; SE FORNECEDOR

### Tela de Edição/Cadastro de Favorecido

1. **Formulário Principal**
    
    
    - Campo de texto "Nome" (obrigatório)
    - Campo de texto "Razão Social"
    - Campo de texto "CPF/CNPJ"
    - Campo de texto multilinha "Endereço" (limite de 255 caracteres)
    - Campo de texto multilinha "Telefone" (limite de 255 caracteres)
    - Campo de texto multilinha "E-mail" (limite de 255 caracteres)
    - Checkboxes para "Cliente" e "Fornecedor" (pelo menos um deve ser selecionado)
2. **Botões de Ação**
    
    
    - Botão "Gravar" (verde)
    - Botão "Excluir" (vermelho, visível apenas em modo de edição)
    - Botão "Voltar"
3. **Área de Exibição de Erros**
    
    
    - Caixa amarela com mensagens de erro
    - Botão para fechar mensagens

### Tela de Pop-up para Cadastro Rápido

Similar à tela de edição, mas com layout mais compacto e sem botão de excluir, projetada para ser usada como modal.

## Propósito e Fluxo de Trabalho

O sistema serve para gerenciar uma base de dados de favorecidos (fornecedores e clientes) que interagem com a empresa. O fluxo de trabalho típico inclui:

1. **Consulta**: O usuário pode visualizar todos os favorecidos cadastrados ou filtrar por nome.
2. **Inclusão**: O usuário pode adicionar novos favorecidos preenchendo um formulário com dados básicos.
3. **Edição**: Ao selecionar um registro existente, o usuário pode modificar seus dados.
4. **Exclusão**: Na tela de edição, o usuário pode remover um favorecido (com verificação de dependências).
5. **Importação em Massa**: O sistema permite a importação de múltiplos favorecidos via arquivo CSV.
6. **Exportação**: Os dados podem ser exportados para um arquivo CSV.

## Instruções Passo a Passo

### Como Pesquisar um Favorecido

1. Na tela principal, digite o nome ou parte do nome no campo "Nome"
2. Clique no botão de pesquisa (ícone de lupa)
3. A tabela exibirá apenas os registros que correspondem ao critério de busca

### Como Adicionar um Novo Favorecido

1. Na tela principal, clique no botão amarelo com ícone "+"
2. Preencha o campo obrigatório "Nome"
3. Preencha os demais campos conforme necessário
4. Selecione ao menos uma das opções: "Cliente" ou "Fornecedor"
5. Clique no botão "Gravar"

### Como Editar um Favorecido Existente

1. Na tabela da tela principal, clique na linha do favorecido que deseja editar
2. Modifique os campos desejados no formulário que se abrirá
3. Clique no botão "Gravar" para salvar as alterações

### Como Excluir um Favorecido

1. Na tabela da tela principal, clique na linha do favorecido que deseja excluir
2. Na tela de edição, clique no botão "Excluir"
3. Confirme a operação quando solicitado

### Como Importar Favorecidos em Massa

1. Na tela principal, clique no botão "Importar"
2. No modal que se abrirá, clique em "Anexar..."
3. Selecione um arquivo CSV no formato correto
4. O sistema processará o arquivo e exibirá o resultado da importação
5. Se necessário, use o link "Arquivo Modelo" para baixar um template

### Como Exportar Dados para CSV

1. Na tela principal, clique no botão verde com ícone de download
2. O arquivo "Fornecedor.csv" será baixado com os dados atualmente visíveis na tabela

## Regras de Negócio e Validações

1. **Validações de Formulário**:
    
    
    - Nome é um campo obrigatório
    - Pelo menos uma opção entre "Cliente" e "Fornecedor" deve ser selecionada
    - Os campos de texto têm limite de 255 caracteres
2. **Operações de CRUD**:
    
    
    - INSERT: Cria um novo registro no banco de dados
    - UPDATE: Atualiza um registro existente
    - DELETE: Remove um registro, mas verifica dependências
    - FIND: Busca registros com base em critérios
3. **Importação de CSV**:
    
    
    - O sistema verifica a existência de CPF/CNPJ para decidir entre inserir ou atualizar
    - Atualiza registros existentes e insere novos, reportando quantidades
    - O arquivo deve seguir a estrutura específica: NOME; CNPJ OU CPF; ENDEREÇO; TELEFONE; EMAIL; SE CLIENTE; SE FORNECEDOR
    - Para os campos "SE CLIENTE" e "SE FORNECEDOR", deve-se usar "S" para sim e "N" para não
4. **Permissões**:
    
    
    - O sistema verifica se o usuário tem permissão para gravar baseado em seu perfil
    - Existe um nível de acesso "master" que tem permissões amplas
    - Há verificação se o usuário tem acesso individual ou pertence a um grupo
5. **Restrições de Exclusão**:
    
    
    - Não é possível excluir favorecidos que estejam vinculados a despesas
    - Não é possível excluir favorecidos que estejam vinculados a receitas

## Perguntas Frequentes

### 1. Como faço para importar uma lista de favorecidos?

Para importar uma lista de favorecidos, clique no botão "Importar" na tela principal. Utilize um arquivo CSV com colunas separadas por ponto e vírgula (;) na seguinte ordem: Nome; CNPJ/CPF; Endereço; Telefone; Email; Se Cliente (S/N); Se Fornecedor (S/N); Razão Social. Você pode baixar um arquivo modelo clicando no botão "Arquivo Modelo".

### 2. É possível exportar apenas uma parte dos dados?

Sim, você pode filtrar os dados na tela principal usando o campo de pesquisa por nome e, depois, clicar no botão "Exportar para CSV". O sistema exportará apenas os dados visíveis na tabela.

### 3. Por que não consigo excluir um favorecido?

Não é possível excluir favorecidos que estejam vinculados a despesas ou receitas. O sistema exibirá uma mensagem de erro indicando o problema. Você precisará primeiro atribuir as despesas ou receitas a outro favorecido antes de poder excluir.

### 4. Como diferencio um cliente de um fornecedor?

Um registro pode ser marcado como cliente, fornecedor, ou ambos, através das caixas de seleção no formulário. Na tabela principal, as colunas "Cliente" e "Fornecedor" exibem um "X" para indicar se o favorecido tem aquela classificação.

### 5. O que acontece se eu importar um favorecido com o mesmo CPF/CNPJ de um existente?

O sistema verificará a existência do CPF/CNPJ durante a importação. Se encontrar um favorecido com o mesmo documento, atualizará os dados desse registro em vez de criar um novo.

### 6. Quais são os campos obrigatórios para cadastrar um favorecido?

É obrigatório informar o Nome e selecionar pelo menos uma das opções: Cliente ou Fornecedor. Os demais campos (Razão Social, CPF/CNPJ, Endereço, Telefone e Email) são opcionais.

### 7. Por que não tenho acesso ao botão de exclusão?

O botão de exclusão só fica visível durante a edição de registros existentes. Além disso, é necessário ter permissão para gravar/alterar no sistema. Verifique seu perfil de acesso com o administrador.

### 8. É possível adicionar múltiplos números de telefone?

Sim, o campo de telefone permite múltiplos valores. Você pode inserir vários números separando-os como preferir (vírgulas, quebras de linha, etc.) dentro do limite de 255 caracteres.

## Observações Técnicas Complementares

O sistema utiliza uma arquitetura cliente-servidor, com frontend implementado em Vue.js e backend provavelmente em Java. A comunicação entre as camadas é feita via requisições HTTP POST, com respostas em formato JSON. O sistema também implementa tratamento de erros para problemas de autenticação (código 99), redirecionando para a página de login quando necessário.

A funcionalidade de importação de CSV é implementada através de um parser que lê o arquivo linha por linha, validando o formato e processando os dados. O sistema também suporta exportação para CSV, utilizando os recursos do componente de grid para gerar o arquivo.

As permissões são verificadas em tempo real baseadas no contexto do usuário logado, controlando o acesso às funcionalidades de gravação e exclusão. Existe um mecanismo de exibição de erros de validação que coleta problemas em uma lista e os exibe ao usuário de forma destacada, facilitando a correção.

# Receitas e Despesas - Receitas

## Visão Geral da Interface

O módulo "**RECEITAS**" é um módulo web projetada para permitir o registro, monitoramento e administração de receitas relacionadas à frota de veículos de uma empresa. A interface apresenta um layout moderno e intuitivo com uma barra lateral de navegação à esquerda e o conteúdo principal à direita. Este módulo é parte do sistema de gerenciamento de frota "CONCEPT RASTREAMENTO"

Possui três telas principais interligadas:

- Tela de Listagem de Receitas (pesquisa)
- Tela de Edição de Receita (individual)
- Tela de Inserção Múltipla de Receitas

A módulo está construído com componentes de interface que incluem tabelas de dados, formulários, caixas de seleção, calendários, botões de ação e campos de texto, proporcionando uma experiência de usuário completa para a gestão financeira da frota. Para acessar, clique no menu FROTAS, seção RECEITAS E DESPESAS, opcão RECEITAS.

## Elementos da Interface

### Tela de Listagem de Receitas

#### Seção de Filtros

- **Veículo**: Campo de seleção dropdown com pesquisa que exibe uma lista de veículos disponíveis (placa, modelo e identificador opcional)
- **Tipo**: Dropdown para selecionar o tipo de receita (exemplo: FRETE, FRETE DURAFIX, TESTE RECEITA)
- **Cliente**: Dropdown para selecionar o cliente/favorecido associado à receita
- **Rota**: Campo de texto somente leitura com botão de pesquisa para selecionar rotas através de um popup
- **Período**: Dois campos de data (início e fim) utilizando calendário para definir o intervalo da pesquisa
- **Botões de Ação**: 
    - Pesquisar: Executa a pesquisa com os filtros aplicados
    - Limpar Filtros: Restaura os filtros para seus valores padrão
    - Novo: Redireciona para a tela de cadastro de nova receita
    - Inserir múltiplas receitas: Redireciona para a tela de inserção de múltiplas receitas
    - Exportar para CSV: Exporta os dados da tabela para um arquivo CSV

#### Tabela de Resultados

- Colunas da tabela: 
    - Numeração sequencial
    - Veículo (placa e identificador opcional)
    - Tipo de receita
    - Grupo
    - Nome
    - Data
    - Valor (R$)
    - Quantidade
    - É de Viagem (Sim/Não)
- Contador de registros na parte inferior da tabela

### Tela de Edição de Receita

#### Abas

- **Dados**: Formulário principal para edição dos dados da receita
- **Anexos**: Gestão de documentos anexados à receita, com contador de anexos

#### Botões Principais

- **Gravar**: Salva as alterações
- **Excluir**: Remove o registro (disponível apenas para registros existentes)
- **Voltar**: Retorna à tela de listagem

#### Formulário de Dados

- **Veículo**: Dropdown com pesquisa para selecionar o veículo (obrigatório)
- **Motorista**: Campo de texto somente leitura com botão de pesquisa para selecionar motorista através de popup (obrigatório)
- **Tipo**: Dropdown para selecionar o tipo de receita (obrigatório)
- **Grupo**: Dropdown para selecionar o grupo de receita com código e nome
- **Nome**: Campo de texto para o nome da receita (obrigatório)
- **Cliente**: Dropdown para selecionar o cliente relacionado à receita com botão para adicionar novo cliente
- **Descrição**: Área de texto para detalhamento da receita (limite de 400 caracteres)
- **Rota**: Campo de texto somente leitura com botões para pesquisar e remover rota
- **Viagem**: Campo de texto somente leitura com botões para pesquisar e remover viagem
- **Data**: Campo de data com calendário (obrigatório)
- **Quantidade**: Campo numérico para quantidade (obrigatório)
- **Valor**: Campo numérico para valor monetário (obrigatório)

#### Seção de Anexos

- Tabela de documentos anexados com colunas: 
    - Arquivo (nome do documento)
    - Criado às (data e hora)
- Botões para gerenciar anexos: 
    - Ver Anexo: Visualiza o documento selecionado
    - Excluir Anexo: Remove o documento selecionado
- Área de upload de arquivos com: 
    - Botão para selecionar arquivo
    - Campo para exibir o nome do arquivo selecionado
    - Botão para enviar o arquivo

### Tela de Inserção Múltipla de Receitas

#### Seção de Veículo

- **Veículo**: Dropdown com pesquisa para selecionar o veículo (obrigatório)
- **Motorista**: Campo de texto somente leitura com botão de pesquisa para selecionar motorista (obrigatório)
- **Rota**: Campo de texto somente leitura com botões para pesquisar e remover rota
- **Viagem**: Campo de texto somente leitura com botões para pesquisar e remover viagem
- **Botões Principais**: 
    - Gravar: Salva todas as receitas inseridas
    - Voltar: Retorna à tela de listagem

#### Seção de Receitas

- Botão para adicionar nova receita (abre popup)
- Tabela de receitas inseridas com colunas: 
    - Numeração sequencial
    - Tipo
    - Grupo
    - Nome
    - Data
    - Quantidade
    - Valor
    - Botão para remover receita

#### Popup de Inserção de Receita

- **Tipo**: Dropdown para selecionar o tipo de receita (obrigatório)
- **Grupo**: Dropdown para selecionar o grupo de receita
- **Nome**: Campo de texto para o nome da receita (obrigatório)
- **Cliente**: Dropdown para selecionar o cliente relacionado à receita
- **Descrição**: Área de texto para detalhamento da receita
- **Data**: Campo de data com calendário (obrigatório)
- **Quantidade**: Campo numérico para quantidade (obrigatório)
- **Valor**: Campo numérico para valor monetário (obrigatório)
- **Botões**: 
    - Inserir: Adiciona a receita à tabela
    - Inserir e Limpar: Adiciona a receita à tabela e limpa o formulário para nova inserção

### Validações

- O sistema valida campos obrigatórios: 
    - Veículo
    - Motorista
    - Tipo
    - Nome
    - Data
    - Valor
    - Quantidade
- Exibe mensagens de erro quando os campos obrigatórios não são preenchidos
- A tela de inserção múltipla valida que pelo menos uma receita deve ser inserida

## Propósito e Fluxo de Trabalho

### Propósito

O sistema foi projetado para gerenciar as receitas associadas aos veículos de uma frota, permitindo:

- Registro detalhado de receitas por veículo
- Categorização por tipo e grupo
- Associação com rotas e viagens
- Vinculação a clientes/favorecidos
- Anexação de documentos comprobatórios
- Inserção única ou múltipla de receitas

### Fluxo de Trabalho Principal

1. **Pesquisa e Visualização**:
    
    
    - O usuário acessa a tela de listagem
    - Aplica filtros conforme necessário (veículo, período, tipo, etc.)
    - Visualiza os resultados na tabela
    - Pode exportar os dados para CSV
2. **Registro de Nova Receita**:
    
    
    - O usuário clica no botão Novo na tela de listagem
    - Preenche o formulário com os dados da receita
    - Seleciona o veículo e motorista associados
    - Opcionalmente associa a uma rota ou viagem
    - Inclui informações financeiras (valor e quantidade)
    - Salva o registro
    - Opcionalmente adiciona anexos
3. **Registro Múltiplo**:
    
    
    - O usuário clica no botão de inserção múltipla na tela de listagem
    - Seleciona o veículo e motorista comuns a todas as receitas
    - Opcionalmente associa a uma rota ou viagem
    - Adiciona múltiplas receitas através do popup
    - Visualiza a lista de receitas na tabela
    - Finaliza gravando todas as receitas de uma vez
4. **Edição e Manutenção**:
    
    
    - O usuário seleciona um registro na tabela de listagem
    - Visualiza e edita os dados conforme necessário
    - Adiciona ou remove anexos
    - Salva as alterações ou exclui o registro

## Instruções Passo a Passo

### Como Pesquisar Receitas

1. Acesse a tela de listagem de receitas
2. Selecione os filtros desejados: 
    - Escolha um veículo específico (opcional)
    - Selecione um tipo de receita (opcional)
    - Escolha um cliente (opcional)
    - Selecione uma rota usando o botão de pesquisa (opcional)
    - Defina o período de datas (por padrão, é o mês atual)
3. Clique no botão de pesquisa (ícone de lupa)
4. Visualize os resultados na tabela abaixo
5. Para limpar os filtros, clique no botão "Limpar Filtros"

### Como Cadastrar uma Nova Receita

1. Na tela de listagem, clique no botão "Novo" (ícone +)
2. Na tela de edição, preencha os campos obrigatórios: 
    - Selecione o veículo na lista suspensa
    - Selecione ou pesquise o motorista
    - Escolha o tipo de receita
    - Digite um nome para a receita
    - Informe a data da receita
    - Digite a quantidade e o valor
3. Preencha os campos opcionais conforme necessário: 
    - Selecione um grupo
    - Escolha um cliente
    - Adicione uma descrição detalhada
    - Associe a uma rota ou viagem específica
4. Clique no botão "Gravar" para salvar a receita
5. Para adicionar anexos, vá para a aba "Anexos" e faça upload dos documentos

### Como Inserir Múltiplas Receitas

1. Na tela de listagem, clique no botão "Inserir múltiplas receitas"
2. Selecione o veículo comum a todas as receitas
3. Selecione ou pesquise o motorista
4. Opcionalmente, selecione uma rota ou viagem
5. Clique no botão "+" para adicionar uma nova receita
6. No popup que aparece: 
    - Preencha todos os campos obrigatórios
    - Clique em "Inserir" para adicionar à lista ou "Inserir e Limpar" para adicionar e preparar nova inserção
7. Repita o processo para adicionar mais receitas
8. Quando todas as receitas estiverem adicionadas, clique em "Gravar"

### Como Editar ou Excluir uma Receita

1. Na tela de listagem, clique na linha da receita que deseja editar
2. Na tela de edição, modifique os campos necessários
3. Clique em "Gravar" para salvar as alterações
4. Para excluir a receita, clique no botão "Excluir"
5. Confirme a exclusão quando solicitado

### Como Gerenciar Anexos

1. Na tela de edição de receita, vá para a aba "Anexos"
2. Para adicionar um novo anexo: 
    - Clique em "Selecione o arquivo"
    - Escolha o arquivo do seu computador
    - Clique no botão de upload (ícone de seta para cima)
3. Para visualizar um anexo: 
    - Selecione o anexo na tabela
    - Clique em "Ver Anexo"
4. Para excluir um anexo: 
    - Selecione o anexo na tabela
    - Clique em "Excluir Anexo"
    - Confirme a exclusão

### Como Exportar Dados para CSV

1. Na tela de listagem, aplique os filtros desejados para obter os dados
2. Clique no botão "Exportar para CSV" (ícone de disquete)
3. O arquivo será gerado e baixado automaticamente

## Regras de Negócio e Funcionamento

### Gestão de Veículos e Motoristas

- Os veículos exibidos são apenas os ativos para o cliente logado
- Ao selecionar um veículo, o sistema pode preencher automaticamente o motorista associado
- É possível selecionar outro motorista através do popup de pesquisa
- Veículos com marcação "HISTÓRICO" não podem ser selecionados

### Associação com Rotas e Viagens

- Uma receita pode estar associada a uma rota OU a uma viagem, nunca ambas
- Ao selecionar uma rota, qualquer viagem selecionada será desmarcada e vice-versa
- A seleção de rota ou viagem requer que um veículo seja selecionado primeiro
- Quando uma receita está associada a uma rota ou viagem, ela é marcada como "É DE VIAGEM"

### Permissões e Controle de Acesso

- O sistema verifica se o usuário tem permissão para gravar/alterar receitas
- Existem diferentes níveis de acesso: individual, grupo e master
- Usuários com acesso "master" ou com capacidade "master" no grupo podem realizar todas as operações
- O botão de exclusão só é exibido para registros existentes

### Processamento de Múltiplas Receitas

- Ao inserir múltiplas receitas, todos os itens compartilham o mesmo veículo e motorista
- É necessário inserir pelo menos uma receita para poder gravar
- Cada receita na lista pode ter suas próprias informações de tipo, cliente, valor, etc.
- O sistema processa todas as receitas em um único lote quando o usuário grava

### Gestão de Anexos

- Os anexos são armazenados em um servidor S3 (Amazon)
- O sistema permite visualizar os documentos diretamente no navegador
- A exclusão de anexos remove o registro do banco de dados e possivelmente do armazenamento

## Perguntas Frequentes

### Gerais

1. **Como faço para filtrar receitas de um período específico?**
    
    
    - Na tela de listagem, ajuste os campos de data de início e fim no filtro "Período" e clique no botão de pesquisa.
2. **É possível cadastrar várias receitas para o mesmo veículo de uma só vez?**
    
    
    - Sim, use a funcionalidade "Inserir múltiplas receitas" que permite cadastrar várias receitas para o mesmo veículo em uma única operação.
3. **Como associo uma receita a uma viagem específica?**
    
    
    - Na tela de edição de receita, clique no botão de pesquisa ao lado do campo "Viagem" e selecione a viagem desejada no popup que aparece.
4. **Posso anexar comprovantes às receitas?**
    
    
    - Sim, na aba "Anexos" da tela de edição você pode fazer upload de documentos relacionados à receita.

### Validação e Campos

1. **Quais campos são obrigatórios para cadastrar uma receita?**
    
    
    - Os campos obrigatórios são: Veículo, Motorista, Tipo, Nome, Data, Valor e Quantidade.
2. **Posso associar uma receita a uma rota e uma viagem ao mesmo tempo?**
    
    
    - Não, uma receita pode estar associada apenas a uma rota OU a uma viagem, nunca ambas simultaneamente.
3. **Existe limite para o tamanho da descrição da receita?**
    
    
    - Sim, o campo de descrição tem um limite de 400 caracteres.
4. **Como seleciono um veículo que não aparece na lista?**
    
    
    - Apenas veículos ativos são exibidos. Se o veículo não aparece, pode estar inativo ou não pertencer ao cliente logado. Entre em contato com o administrador do sistema.

### Operações Específicas

1. **Como exporto minhas receitas para um relatório?**
    
    
    - Na tela de listagem, aplique os filtros desejados e clique no botão "Exportar para CSV" para baixar os dados.
2. **Posso editar várias receitas ao mesmo tempo?**
    
    
    - Não, a edição é individual. Para editar uma receita, selecione-a na tabela de listagem.
3. **O que acontece se eu excluir uma receita?**
    
    
    - A exclusão remove permanentemente a receita do sistema, incluindo seus anexos. Esta operação não pode ser desfeita.
4. **Como faço para ver todas as receitas do mês atual?**
    
    
    - Na tela de listagem, clique em "Limpar Filtros" (que define o período para o mês atual por padrão) e depois clique no botão de pesquisa.
5. **É possível pesquisar receitas por cliente?**
    
    
    - Sim, use o filtro "Cliente" na tela de listagem para encontrar todas as receitas associadas a um cliente específico.

# Receitas e Despesas - Grupos de Despesa

## Descrição da Interface

O módulo "**GRUPOS DE DESPESAS**" apresentada é parte do sistema de gerenciamento de frota "CONCEPT RASTREAMENTO", especificamente focada na administração de Grupos de Despesas relacionados a veículos. O sistema possui um design limpo e organizado, apresentando duas telas principais: uma para pesquisa/listagem e outra para edição/cadastro de grupos de despesas.

A tela de pesquisa apresenta uma área de filtros no topo, seguida por uma tabela que exibe os registros encontrados. Já a tela de edição mostra um formulário simples para inserção ou modificação dos dados de um grupo de despesa específico. O sistema utiliza uma paleta de cores profissional, com destaque para botões em cores distintas que facilitam a identificação das principais ações.

O layout é responsivo e bem estruturado, com elementos agrupados de forma lógica para facilitar a navegação e o uso das funcionalidades disponíveis. Para acessar clique no menu FROTAS, seção RECEITAS E DESPESAS, opção GRUPOS DE DESPESAS.

## Elementos da Interface

### Tela de Pesquisa (Grupos de Despesas)

**Área de Filtros:**

- **Campo Código**: Campo de texto para filtrar por código de grupo de despesa
- **Campo Nome**: Campo de texto para filtrar por nome de grupo de despesa
- **Botão Pesquisa**: Botão circular azul com ícone de lupa para executar a pesquisa
- **Botão Limpar Filtros**: Botão circular escuro com ícone de arquivo para limpar os campos de filtro
- **Botão Novo**: Botão circular amarelo com ícone de adição para criar novo registro
- **Botão Exportar para CSV**: Botão circular verde com ícone de salvar para exportar dados

**Tabela de Resultados:**

- **Coluna #**: Numeração sequencial dos registros
- **Coluna CÓDIGO**: Código do grupo de despesa
- **Coluna NOME**: Nome do grupo de despesa
- **Contador de Registros**: Exibe a quantidade total de registros encontrados

### Tela de Edição (Grupo Despesa)

**Área de Erros:**

- **Painel de Erros**: Área destacada em laranja que exibe mensagens de erro de validação
- **Botão Fechar**: Permite fechar a área de mensagens de erro

**Formulário:**

- **Campo Código**: Campo de texto obrigatório para inserir o código do grupo de despesa
- **Campo Nome**: Campo de texto obrigatório para inserir o nome do grupo de despesa
- **Botão Gravar**: Botão verde para salvar os dados
- **Botão Excluir**: Botão vermelho para remover o registro (visível apenas durante edição)
- **Botão Voltar**: Botão cinza para retornar à tela de pesquisa sem salvar alterações

## Propósito e Fluxo de Trabalho

O propósito desta interface é gerenciar grupos de despesas relacionados a veículos em um sistema de gestão de frota. Esses grupos permitem categorizar diferentes tipos de gastos (como combustível, manutenção, impostos, etc.), facilitando a organização financeira e a geração de relatórios.

### Fluxo de Trabalho Principal:

1. **Pesquisa de Registros**:
    
    
    - O usuário acessa a tela de pesquisa
    - Opcionalmente aplica filtros por código e/ou nome
    - Clica no botão de pesquisa para listar os registros
    - Visualiza os resultados na tabela
2. **Criação de Novo Registro**:
    
    
    - Na tela de pesquisa, clica no botão "Novo"
    - O sistema apresenta o formulário de edição vazio
    - Preenche os campos obrigatórios (código e nome)
    - Clica em "Gravar" para salvar o novo registro
3. **Edição de Registro Existente**:
    
    
    - Na tela de pesquisa, clica em qualquer linha da tabela
    - O sistema carrega o formulário com os dados do registro selecionado
    - Altera os campos desejados
    - Clica em "Gravar" para salvar as alterações
4. **Exclusão de Registro**:
    
    
    - Na tela de pesquisa, seleciona um registro existente
    - Na tela de edição, clica no botão "Excluir"
    - O sistema verifica se há despesas vinculadas ao grupo
    - Se não houver impedimentos, o registro é excluído
5. **Exportação de Dados**:
    
    
    - Na tela de pesquisa, após filtrar os dados desejados
    - Clica no botão "Exportar para CSV"
    - O sistema gera um arquivo CSV com os dados da tabela

## Regras de Negócio e Validações

Com base no código fonte analisado, as seguintes regras e validações foram identificadas:

1. **Validações de Campos**:
    
    
    - Os campos "Código" e "Nome" são obrigatórios
    - O sistema exibe mensagens de erro quando campos obrigatórios não são preenchidos
2. **Permissões de Acesso**:
    
    
    - Existem três níveis de acesso: Master, Grupo e Individual
    - Usuários com acesso Master podem realizar todas as operações
    - Usuários com acesso Grupo podem editar registros se tiverem a capacidade "grupoPodeSeAlterar"
    - O botão "Gravar" e "Excluir" são desabilitados para usuários sem permissão
3. **Restrições de Exclusão**:
    
    
    - Não é possível excluir um grupo de despesa que possua despesas vinculadas
    - O sistema verifica a quantidade de despesas vinculadas antes de permitir a exclusão
    - Mensagens específicas são exibidas conforme a quantidade de despesas vinculadas (singular ou plural)
4. **Autenticação**:
    
    
    - O sistema verifica se o usuário está autenticado em todas as operações
    - Caso a sessão expire (código de resposta 99), o usuário é redirecionado para a tela de login

## Instruções Passo a Passo

### Como Pesquisar Grupos de Despesas

1. Acesse a tela "Grupos de Despesas"
2. (Opcional) Digite o código do grupo no campo "Código"
3. (Opcional) Digite o nome do grupo no campo "Nome"
4. Clique no botão azul com ícone de lupa
5. Visualize os resultados na tabela abaixo
6. Para limpar os filtros, clique no botão escuro com ícone de arquivo

### Como Adicionar um Novo Grupo de Despesas

1. Na tela "Grupos de Despesas", clique no botão amarelo com sinal de adição
2. Preencha o campo "Código" com o identificador do grupo
3. Preencha o campo "Nome" com a descrição do grupo
4. Clique no botão verde "Gravar"
5. Verifique se o novo grupo aparece na lista de grupos

### Como Editar um Grupo de Despesas

1. Na tela "Grupos de Despesas", localize o registro desejado
2. Clique na linha correspondente ao grupo que deseja editar
3. Altere os campos "Código" e/ou "Nome" conforme necessário
4. Clique no botão verde "Gravar"
5. Confirme se as alterações foram aplicadas na lista

### Como Excluir um Grupo de Despesas

1. Na tela "Grupos de Despesas", localize o registro desejado
2. Clique na linha correspondente ao grupo que deseja excluir
3. Na tela de edição, clique no botão vermelho "Excluir"
4. Se o grupo não tiver despesas vinculadas, a exclusão será concluída
5. Caso contrário, será exibida uma mensagem informando que existem despesas vinculadas

### Como Exportar Dados para CSV

1. Na tela "Grupos de Despesas", aplique os filtros desejados (opcional)
2. Clique no botão verde com ícone de salvar
3. O sistema irá gerar um arquivo chamado "GrupoDespesa.csv"
4. O arquivo será baixado automaticamente pelo navegador

## Perguntas Frequentes (FAQ)

### Perguntas Sobre Acesso e Permissões

1. **Quem pode criar novos grupos de despesas?** Usuários com permissão Master ou usuários de Grupo com a capacidade "grupoPodeSeAlterar" ativada.
2. **Por que não consigo excluir um grupo de despesas?** Existem duas possibilidades: ou você não tem permissão suficiente, ou existem despesas vinculadas a este grupo. Grupos que possuem despesas associadas não podem ser excluídos.
3. **Como obter permissão para editar grupos de despesas?** Entre em contato com o administrador do sistema para que ele atribua a capacidade "grupoPodeSeAlterar" ao seu perfil de usuário.

### Perguntas Sobre Funcionalidades

4. **Como encontrar um grupo específico rapidamente?** Utilize os filtros de Código ou Nome na parte superior da tela de pesquisa e clique no botão de pesquisa.
5. **É possível exportar apenas alguns grupos selecionados?** Não diretamente. Para exportar grupos específicos, primeiro aplique filtros para mostrar apenas os grupos desejados e então use o botão de exportação.
6. **Como adicionar múltiplos grupos de uma vez?** O sistema não suporta adição em lote. É necessário adicionar cada grupo individualmente.
7. **O que acontece se eu cadastrar um código que já existe?** O sistema permitirá a criação, mas poderá causar confusão na identificação. É recomendável verificar os códigos existentes antes de criar novos.

### Perguntas Técnicas

8. **Como os dados exportados são formatados no CSV?** Os dados são exportados com separador de ponto e vírgula (;) e incluem as colunas correspondentes à tabela exibida.
9. **Existe um limite de registros que podem ser exibidos?** Não há limite explícito, mas para melhor performance, recomenda-se utilizar filtros para restringir a quantidade de registros.
10. **Por que aparece um erro indicando campos obrigatórios mesmo após preencher todos os campos?** Verifique se não há espaços em branco ou caracteres invisíveis nos campos. Todos os campos obrigatórios devem ter conteúdo válido.

## Observações Adicionais

Os Grupos de Despesas são elementos fundamentais para a organização financeira do sistema de gerenciamento de frotas. Eles permitem categorizar diferentes tipos de despesas (como combustível, manutenção, pedágios, impostos, etc.), facilitando a análise de custos e a geração de relatórios financeiros específicos.

A estrutura de código segue o padrão MVC (Model-View-Controller), com separação clara entre a interface do usuário, a lógica de negócios e o acesso a dados. A interface foi desenvolvida com foco na usabilidade, permitindo operações eficientes com poucos cliques.

O sistema também implementa tratamento de erros robusto, com logs detalhados de exceções e mensagens claras para o usuário final, melhorando a experiência de uso e facilitando a resolução de problemas.