# Menu - Configurações

# Bloqueio e Desbloqueio de Veículos

## Visão Geral

A funcionalidade de Bloqueio e Desbloqueio permite que usuários autorizados possam remotamente bloquear ou desbloquear veículos da frota que possuem o dispositivo de bloqueio instalado. Este recurso é essencial para situações de segurança, como roubo ou uso não autorizado de veículos, bem como para procedimentos operacionais padrão. Para acessar o bloqueio e o desbloqueio, utilize o menu Configurações e clique no icone BLOQUEIO.

## Interface da Tela

A interface é dividida em duas seções principais:

### Seção Superior - Controle de Bloqueio

- **Seleção de Veículo**: Campo de seleção dropdown onde o usuário pode escolher um veículo da frota que possua dispositivo de bloqueio instalado.
- **Campo de Senha**: Campo de texto para inserção da senha necessária para autorizar a operação de bloqueio ou desbloqueio.
- **Botões de Ação**: 
    - **BLOQUEAR**: Envia comando para bloquear o veículo selecionado.
    - **DESBLOQUEAR**: Envia comando para desbloquear o veículo selecionado.
- **Botão Histórico**: Permite visualizar o histórico de comandos de bloqueio e desbloqueio para o veículo selecionado.

### Seção Inferior - Histórico de Comandos

- **Tabela de Histórico**: Exibe os registros de comandos enviados, com as seguintes colunas: 
    - **Comando**: Tipo de comando (BLOQUEIO ou DESBLOQUEIO)
    - **Solicitado em**: Data e hora em que o comando foi solicitado
    - **Enviado em**: Data e hora em que o comando foi enviado para o dispositivo
    - **Executado em**: Data e hora em que o comando foi executado pelo dispositivo
    - **Status**: Estado atual do comando (EXECUTADO ou outro status)
    - **Origem**: Usuário que solicitou o comando

## Elementos e Validações

### Campo de Seleção de Veículo

- **Tipo**: Dropdown com busca
- **Valores possíveis**: Lista de veículos da frota que possuem dispositivo de bloqueio
- **Formato de exibição**: Marca, Modelo, Placa, Etiqueta (opcional), Nome do Condutor
- **Validação**: O usuário deve selecionar um veículo para habilitar as operações

### Campo de Senha

- **Tipo**: Campo de texto
- **Requisito**: Obrigatório para operações de bloqueio e desbloqueio
- **Validação**: A senha deve ser preenchida para habilitar os botões de ação

### Botões de Ação (BLOQUEAR/DESBLOQUEAR)

- **Estado**: Desabilitados por padrão
- **Ativação**: Habilitados apenas quando um veículo é selecionado e a senha é preenchida
- **Validação**: Requer confirmação do servidor para executar a ação

### Botão Histórico

- **Estado**: Desabilitado por padrão
- **Ativação**: Habilitado quando um veículo é selecionado
- **Função**: Carrega o histórico de comandos do veículo selecionado

### Tabela de Histórico

- **Exibição**: Visível apenas após clicar no botão Histórico e quando existem dados
- **Ordenação**: Pode ser ordenada por qualquer coluna
- **Tamanho**: Altura fixa com rolagem vertical

## Fluxo de Trabalho

### Para Bloquear um Veículo:

1. Selecione um veículo da lista suspensa
2. Digite a senha de autorização no campo "Informe a senha"
3. Clique no botão "BLOQUEAR"
4. Aguarde a confirmação do sistema
5. Verifique o status da operação na tabela de histórico

### Para Desbloquear um Veículo:

1. Selecione um veículo da lista suspensa
2. Digite a senha de autorização no campo "Informe a senha"
3. Clique no botão "DESBLOQUEAR"
4. Aguarde a confirmação do sistema
5. Verifique o status da operação na tabela de histórico

### Para Visualizar o Histórico:

1. Selecione um veículo da lista suspensa
2. Clique no botão "Histórico"
3. A tabela de histórico será carregada abaixo, mostrando os comandos anteriores

## Regras de Negócio

1. Apenas veículos com dispositivo de bloqueio instalado são exibidos na lista de seleção
2. O usuário deve ter permissão para a funcionalidade "BLOQUEIO" para acessar esta tela
3. A senha é verificada no servidor antes de executar qualquer comando
4. Os comandos são processados em três etapas: 
    - Solicitação (registro do comando)
    - Envio (transmissão para o dispositivo)
    - Execução (confirmação de que o comando foi executado)
5. O sistema mantém registro completo de todos os comandos, incluindo data/hora e usuário responsável
6. A origem do comando é registrada como "WEB" quando realizada através desta interface

## Perguntas Frequentes

### O que acontece se eu digitar a senha incorreta?

O sistema irá rejeitar o comando e exibir uma mensagem de erro indicando que a senha está incorreta.

### Quanto tempo leva para um comando ser executado?

O tempo pode variar dependendo da conectividade do dispositivo no veículo. Geralmente, o comando é transmitido em poucos segundos, mas a execução depende do veículo estar ligado e com sinal de comunicação.

### O que significa o status "EXECUTADO"?

Este status indica que o comando foi recebido pelo dispositivo instalado no veículo e a ação solicitada (bloqueio ou desbloqueio) foi realizada com sucesso.

### Posso bloquear um veículo que está em movimento?

Por questões de segurança, recomenda-se não bloquear veículos em movimento. Alguns dispositivos possuem salvaguardas que impedem o bloqueio quando o veículo está em alta velocidade.

### O que fazer se o comando não for executado?

Verifique se o veículo está ligado e em uma área com cobertura de sinal. Se necessário, tente enviar o comando novamente. Se o problema persistir, entre em contato com o suporte técnico.

### Quem pode ver o histórico de bloqueio dos veículos?

Apenas usuários com permissão para a funcionalidade de bloqueio podem visualizar o histórico de comandos.

### É possível agendar um bloqueio para um horário específico?

Não, esta interface permite apenas o envio imediato de comandos de bloqueio e desbloqueio.

## Notas Importantes

- O bloqueio de veículos deve ser utilizado com responsabilidade, considerando a segurança do condutor e de terceiros
- Todas as ações são registradas no sistema com identificação do usuário responsável
- Em caso de emergência, priorize o contato direto com o condutor antes de acionar o bloqueio
- A funcionalidade de bloqueio depende da instalação correta do dispositivo e da cobertura de sinal na região onde o veículo se encontra

# Acionamento e Desacionamento de Atuadores

## Descrição da Interface

A funcionalidade de "Atuadores" permite o gerenciamento e controle de saídas externas dos dispositivos rastreadores instalados nos veículos. A tela está dividida em duas seções principais: "Saída 2" e "Saída 3", cada uma permitindo o acionamento e desacionamento de funcionalidades específicas em veículos selecionados.

O layout é organizado e intuitivo, com cada seção contendo um seletor de veículos, botões de ação para ativar ou desativar a saída correspondente, e um botão para acessar o histórico de acionamentos. Quando o histórico é exibido, uma tabela mostra detalhes como o tipo de comando, data/hora das operações e status.

A interface faz parte do sistema de gerenciamento de frota da plataforma CONCEPT RASTREAMENTO, acessível através de navegador web. Para acionar e/ou desacionar atuadores utilize a opção de menu CONFIGURAÇÕES e clique no icone ATUADORES.

## Elementos da Interface

### Seção Saída 2

1. **Caixa de Seleção de Veículo**
    
    
    - Tipo: Dropdown com pesquisa
    - Valores: Lista de veículos que possuem funcionalidade de Saída 2
    - Formato da exibição: Marca, Modelo, Placa, Identificação opcional (labelVeiculo) e Condutor
    - Validação: Apenas veículos com a propriedade "possuiSaida2" como verdadeira são exibidos
2. **Botões de Ação**
    
    
    - Botão "ATIVAR" 
        - Estado: Desabilitado se nenhum veículo estiver selecionado ou se não houver veículos disponíveis
        - Função: Envia comando para ativar a Saída 2 do veículo selecionado
    - Botão "DESATIVAR" 
        - Estado: Desabilitado se nenhum veículo estiver selecionado ou se não houver veículos disponíveis
        - Função: Envia comando para desativar a Saída 2 do veículo selecionado
3. **Botão Histórico**
    
    
    - Estado: Desabilitado se nenhum veículo estiver selecionado
    - Função: Busca e exibe o histórico de comandos da Saída 2 para o veículo selecionado
4. **Tabela de Histórico**
    
    
    - Visibilidade: Exibida apenas após clicar no botão Histórico e quando existem registros
    - Colunas: 
        - Comando: Tipo de comando enviado (ATIVAR/DESATIVAR)
        - Solicitado em: Data e hora da solicitação do comando
        - Enviado em: Data e hora do envio do comando
        - Executado em: Data e hora da execução do comando
        - Status: Estado do comando (EXECUTADO, CANCELADO, etc.)
        - Origem: Usuário ou sistema que originou o comando
5. **Mensagem de Resultado Zero**
    
    
    - Visibilidade: Exibida quando nenhum registro de histórico é encontrado para o veículo selecionado

### Seção Saída 3

1. **Caixa de Seleção de Veículo**
    
    
    - Tipo: Dropdown com pesquisa
    - Valores: Lista de veículos que possuem funcionalidade de Saída 3
    - Formato da exibição: Marca, Modelo, Placa, Identificação opcional (labelVeiculo) e Condutor
    - Validação: Apenas veículos com a propriedade "possuiSaida3" como verdadeira são exibidos
2. **Botões de Ação**
    
    
    - Botão "ATIVAR" 
        - Estado: Desabilitado se nenhum veículo estiver selecionado ou se não houver veículos disponíveis
        - Função: Envia comando para ativar a Saída 3 do veículo selecionado
    - Botão "DESATIVAR" 
        - Estado: Desabilitado se nenhum veículo estiver selecionado ou se não houver veículos disponíveis
        - Função: Envia comando para desativar a Saída 3 do veículo selecionado
3. **Botão Histórico**
    
    
    - Estado: Desabilitado se nenhum veículo estiver selecionado
    - Função: Busca e exibe o histórico de comandos da Saída 3 para o veículo selecionado
4. **Tabela de Histórico**
    
    
    - Visibilidade: Exibida apenas após clicar no botão Histórico e quando existem registros
    - Colunas: 
        - Comando: Tipo de comando enviado (ATIVAR/DESATIVAR)
        - Solicitado em: Data e hora da solicitação do comando
        - Enviado em: Data e hora do envio do comando
        - Executado em: Data e hora da execução do comando
        - Status: Estado do comando (EXECUTADO, CANCELADO, etc.)
        - Origem: Usuário ou sistema que originou o comando
5. **Mensagem de Resultado Zero**
    
    
    - Visibilidade: Exibida quando nenhum registro de histórico é encontrado para o veículo selecionado

## Propósito e Fluxo de Trabalho

O propósito desta tela é permitir o controle remoto de dispositivos conectados às saídas dos rastreadores veiculares. Estas saídas podem controlar diversos equipamentos ou funções, como bloqueio/desbloqueio do veículo, acionamento de sirenes, controle de câmaras frias, entre outros.

### Fluxo de trabalho típico:

1. O usuário acessa a tela de Atuadores
2. O sistema carrega automaticamente as listas de veículos que possuem funcionalidades de Saída 2 e Saída 3
3. O usuário seleciona um veículo na seção desejada (Saída 2 ou Saída 3)
4. Com um veículo selecionado, o usuário pode: 
    - Ativar a saída correspondente (enviando comando de ativação)
    - Desativar a saída correspondente (enviando comando de desativação)
    - Visualizar o histórico de comandos enviados para aquela saída daquele veículo

Após o envio de um comando, o sistema exibe uma mensagem de sucesso ou erro, dependendo do resultado da operação.

### Regras de negócio importantes:

- O sistema trata diferentemente os comandos de ativação/desativação conforme a marca do módulo rastreador. Para módulos MaxtrackMTC, o sistema inverte a lógica dos comandos (envia o comando DESACTIVATE quando o usuário clica em ATIVAR e vice-versa).
- Os comandos são assíncronos: há um tempo entre a solicitação, o envio efetivo, e a execução no veículo.
- Os registros históricos mostram todo esse ciclo de vida do comando, facilitando a auditoria e a solução de problemas.

## Instruções Passo a Passo

### Para Ativar uma Saída:

1. Acesse a tela de Atuadores
2. Na seção correspondente à saída desejada (Saída 2 ou Saída 3), clique no seletor de veículos
3. Selecione o veículo desejado na lista (apenas veículos compatíveis são exibidos)
4. Clique no botão "ATIVAR"
5. Aguarde a mensagem de confirmação do sistema

### Para Desativar uma Saída:

1. Acesse a tela de Atuadores
2. Na seção correspondente à saída desejada (Saída 2 ou Saída 3), clique no seletor de veículos
3. Selecione o veículo desejado na lista (apenas veículos compatíveis são exibidos)
4. Clique no botão "DESATIVAR"
5. Aguarde a mensagem de confirmação do sistema

### Para Visualizar o Histórico de Comandos:

1. Acesse a tela de Atuadores
2. Na seção correspondente à saída desejada (Saída 2 ou Saída 3), clique no seletor de veículos
3. Selecione o veículo desejado na lista
4. Clique no botão "Histórico"
5. Visualize a tabela com os registros de comandos para aquela saída
6. Se nenhum registro for encontrado, uma mensagem informativa será exibida

## Perguntas Frequentes

### 1. O que são as Saídas 2 e 3?

As Saídas 2 e 3 são conexões físicas nos rastreadores veiculares que permitem controlar dispositivos ou funções específicas do veículo remotamente, como bloqueio/desbloqueio, sirenes, equipamentos adicionais, entre outros.

### 2. Por que alguns veículos não aparecem na lista de seleção?

Apenas veículos equipados com rastreadores que possuem as funcionalidades de Saída 2 ou Saída 3 são exibidos nas respectivas listas. Se um veículo não aparece, provavelmente seu rastreador não suporta essa funcionalidade.

### 3. Quanto tempo leva para um comando ser executado?

O tempo varia conforme a conectividade do veículo e do rastreador. Normalmente, o comando é enviado em segundos, mas a execução efetiva depende do rastreador receber o sinal. O histórico mostra os momentos exatos de solicitação, envio e execução.

### 4. O que significam os diferentes status nos registros históricos?

- EXECUTADO: O comando foi recebido e executado pelo rastreador
- CANCELADO: O comando foi cancelado antes da execução
- Outros status podem incluir "PENDENTE" (aguardando envio) ou "ENVIADO" (aguardando confirmação de execução)

### 5. Por que meu comando não foi executado?

Várias razões podem levar à falha na execução de um comando, como:

- Problemas de comunicação com o rastreador (veículo em área sem sinal)
- Falha no próprio rastreador
- Incompatibilidade entre o comando e a configuração atual do veículo
- Dispositivo sem alimentação elétrica

### 6. É possível programar acionamentos automáticos para as saídas?

Esta interface é destinada ao acionamento manual. Para acionamentos programados ou automatizados, consulte as funcionalidades de agendamento ou regras de negócio do sistema.

### 7. Por que os botões de ativação/desativação estão desabilitados?

Os botões ficam desabilitados quando nenhum veículo está selecionado ou quando não há veículos compatíveis disponíveis para seleção.

### 8. O que acontece se eu mudar de veículo após visualizar o histórico?

Ao selecionar um novo veículo, o histórico exibido anteriormente é limpo. Para visualizar o histórico do novo veículo selecionado, é necessário clicar novamente no botão "Histórico".

## Considerações Especiais

- A interface trabalha com rastreadores de diferentes fabricantes, e alguns deles (como o MaxtrackMTC) têm comportamento invertido nos comandos, o que é tratado automaticamente pelo sistema.
- Os tempos exibidos no histórico são importantes para diagnóstico de problemas, pois mostram se houve atraso entre a solicitação e o envio, ou entre o envio e a execução.
- Para que um veículo apareça nas listas de seleção, além de possuir um rastreador compatível, é necessário que o sistema reconheça que o rastreador está ativo.
- A interface foi projetada para ser intuitiva, exibindo apenas os veículos relevantes para cada tipo de saída e desabilitando ações quando não são aplicáveis.

# Alteração Veículos

## Visão Geral

A funcionalidade de Alteração de Veículos é uma ferramenta abrangente para gerenciamento de frotas, permitindo aos usuários visualizar e modificar diversas configurações dos veículos cadastrados. A interface apresenta uma estrutura dividida em dois painéis principais: à esquerda, uma lista de veículos disponíveis com ferramentas de filtragem; à direita, um painel detalhado organizado em abas para configurar os diferentes aspectos de cada veículo.

Esta interface serve como um centro de controle completo para gerentes de frota, oferecendo não apenas campos para dados básicos do veículo, mas também configurações avançadas para monitoramento, alerta, controle de acesso, relatórios e bloqueio automático. Para acessar a opção utlize o menu CONFIGURAÇÕES e clique no icone ALTERAÇÕES VEÍCULOS

## Estrutura da Interface

### Painel Esquerdo (Seleção de Veículos)

O painel esquerdo mostra uma lista de veículos cadastrados e oferece ferramentas para filtrar e localizar veículos específicos:

- **Filtros Superiores**:
    
    
    - Dropdown de Categoria
    - Dropdown de Divisão
    - Dropdown de Tipo de Veículo (com ícones visuais)
    - Campo de Pesquisa textual
- **Lista de Veículos**:
    
    
    - Exibe contador total de veículos filtrados (24 veículo(s))
    - Tabela com colunas para: 
        - Número sequencial
        - Veículo (modelo e nome do condutor)
        - Placa
    - A linha selecionada é destacada em roxo

### Painel Direito (Detalhes do Veículo)

O painel direito exibe o nome do veículo selecionado (ex: "ATLAS COPCO 26-390 CTC XII-1235") no topo, seguido por uma série de abas para configurar diferentes aspectos do veículo:

- **Botão Gravar**: Localizado no canto superior direito, salva todas as alterações
- **Abas Principais**: DADOS, ACESSO, HORÁRIO, AVISO, RELATÓRIO, ROTA, BLOQUEIO, COMBUSTÍVEL, RPM

Cada aba contém um conjunto específico de configurações relacionadas ao seu tema.

## Detalhamento das Abas e Campos

### Aba DADOS

Contém as informações cadastrais básicas do veículo:

- **Categoria**: Dropdown para seleção da categoria do veículo
- **Divisão**: Dropdown para seleção da divisão organizacional
- **Marca**: Dropdown para seleção da marca do veículo (ex: Atlas Copco)
- **Modelo**: Dropdown para seleção do modelo (ex: 26-390 CTC)
- **Placa**: Campo de texto somente leitura para a placa do veículo (ex: XII-1235)
- **Label**: Campo de texto para identificação adicional do veículo
- **Cor**: Campo de texto para a cor do veículo (ex: Preto)
- **Condutor**: Campo de texto com botão de pesquisa para selecionar o motorista/condutor
- **Ano Fabricação**: Campo de data (numérico) para o ano de fabricação
- **Ano Modelo**: Campo de data (numérico) para o ano do modelo
- **Tipo Veículo**: Dropdown com ícones para seleção do tipo de veículo (caminhão, carro, etc.)
- **Mês Vencto**: Campo de data para mês de vencimento da documentação
- **Renavam**: Campo de texto para o número do Renavam
- **Chassi**: Campo de texto para o número do chassi
- **Odômetro**: Campo numérico com botão "Calibrar" e ícone de atualização
- **KM/l**: Campo numérico para a autonomia do veículo
- **Horímetro**: Campo numérico com botão "Calibrar" e ícone de atualização
- **L/h**: Campo numérico para o consumo por hora

### Aba ACESSO

Gerencia as permissões de acesso ao veículo:

- **SENHA**: Campo de texto para senha de acesso individual
- **PERMISSÕES**:
    
    
    - Dropdown de Divisão para filtrar
    - Campo de pesquisa para acessos
    - Lista de acessos disponíveis com botões (+) para adicionar
    - Lista de acessos selecionados com botões (-) para remover
    - Botão "Todos" para adicionar todos os acessos de uma vez
- **LINK**: Interface para criar links temporários de acesso
    
    
    - Botões "Listar" e "Novo link"
    - Opções rápidas: 1 hora, 12 horas, 24 horas, 7 dias, 30 dias
    - Campos para data/hora de início e fim da validade
    - Tabela com links criados, exibindo data de criação, validade, link, PIN e opções de ação

### Aba HORÁRIO

Configura os horários permitidos de utilização do veículo:

- **Controlar horários de uso dos veículos**: Checkbox para ativar/desativar o controle
- **Botões de repetição**: "Repetir Horário de Segunda" e "Repetir Horário de Segunda até Sexta"
- **Horários por dia da semana**: 
    - Campos de dropdown para horário de início e fim para cada dia (Segunda a Domingo)
- **Velocidade Mínima km/h**: Campo numérico para velocidade mínima de trânsito

### Aba AVISO

Configurações de alertas e monitoramento, dividida em sub-seções:

#### Geral

- **Veículo em manutenção**: Checkbox
- **Tempo Máximo de Direção**: Campo numérico (em minutos)
- **RPM Máximo**: Campo numérico
- **Avisar Veículo Parado**: Checkbox com campo para tempo de parada em minutos
- **Avisar Veículo Parado Ligado**: Checkbox com campo para tempo de parada em minutos
- **Avisar Veículo Ligado**: Checkbox
- **Avisar Veículo Desligado**: Checkbox
- **Limite Pressão Acelerador**: Campo numérico (em percentual %)
- **Ligar Ancoragem**: Checkbox com campo para raio em metros

#### Velocidade

- **Avisar Excesso de Velocidade na VIA**: Checkbox
- **Avisar Excesso Velocidade**: Checkbox com campo para velocidade máxima km/h
- **Avisar Excesso Velocidade na Cidade**: Checkbox com campo para velocidade máxima km/h

#### Perímetro

- **Avisar Saída Perímetro**: Checkbox com dropdown para seleção de perímetro
- **Mapa interativo**: Para visualizar e editar o perímetro geográfico
- Botões para alternar entre mapa e satélite, zoom in/out

#### Contatos

- **Email 1**: Campo de email
- **Email 2**: Campo de email
- **Celular 1**: Campo de texto
- **Celular 2**: Campo de texto
- **Contatos de Emergência**: Área de texto maior

#### Temperatura

- Alerta quando o veículo não possui transmissor de temperatura instalado
- Campos para configurar temperaturas mínima e máxima (quando disponível)

### Aba RELATÓRIO

Configurações para relatórios automáticos de paradas:

- Mensagem informativa sobre o propósito dos relatórios diários
- **Email 1**: Campo de email
- **Email 2**: Campo de email
- **Hora Geração**: Campo numérico (0-23)
- **Só paradas ligado?**: Checkbox
- **Só em pontos de interesse?**: Checkbox
- **Tempo Mínimo (minutos)**: Campo numérico
- **Enviar final de semana?**: Checkbox
- **Anexar Mapa?**: Checkbox

### Aba ROTA

Configurações para roteirização e aplicativo de entrega:

- Mensagem sobre "Parâmetros utilizados na roteirização e aplicativo Minha Rota"
- **Ponto Inicial**: Dropdown para seleção de ponto de partida
- **Senha aplicativo de entrega**: Campo de texto
- **Capacidade - Peso**: Campo numérico com unidade KG
- **Capacidade - Volume**: Campo numérico com unidade m³
- **Custo por KM**: Campo numérico com unidade R$/Km
- **Quantidade máxima de itinerários**: Campo numérico

### Aba BLOQUEIO

Configurações para bloqueio automático do veículo:

- **Bloqueio automático do veículo**: Checkbox para ativar/desativar
- Mensagem informativa sobre os horários de bloqueio e desbloqueio
- **Botões de repetição**: "Repetir Horário de Segunda" e "Repetir Horário de Segunda até Sexta"
- **Horários por dia da semana**: 
    - Seção "Desbloqueio" com dropdowns para cada dia
    - Seção "Bloqueio" com dropdowns para cada dia
- Alerta quando o veículo não possui acessório de bloqueio instalado

### Aba COMBUSTÍVEL

Configurações relacionadas ao combustível:

- **Capacidade tanque (litros)**: Campo numérico
- Duas listas lado a lado: 
    - **TIPOS DE COMBUSTÍVEIS DISPONÍVEIS**: Lista com botões (+) para adicionar
    - **TIPOS DE COMBUSTÍVEIS DO VEÍCULO**: Lista dos combustíveis selecionados

### Aba RPM

Configurações das faixas de RPM para monitoramento:

- Mensagem "Configure as faixas de RPM do veículo"
- **Faixa 1 a 5**: Campos numéricos para início e fim de cada faixa
- Indicadores coloridos para cada faixa: 
    - Faixa 1: Azul claro (#00FCFF)
    - Faixa 2: Azul (#0082FF)
    - Faixa 3: Verde (#00FF0D)
    - Faixa 4: Amarelo (#FBFF00)
    - Faixa 5: Laranja/Vermelho claro (#FE6767)
    - Acima da Faixa 5: Vermelho (#FF0000)
- **Atualizações por minuto**: Campo numérico somente leitura

### Aba Anexos

Para upload e gerenciamento de documentos:

- Botão "Selecione o arquivo" para upload
- Tabela de anexos existentes com opções para visualizar ou excluir

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

A interface implementa diversas validações para garantir que os dados inseridos sejam consistentes e válidos:

### Validações Gerais

- Campos obrigatórios devem ser preenchidos antes de salvar
- Formatos específicos para campos como email, placa, números, etc.

### Validações da Aba DADOS

- **Tipo de Veículo**: Obrigatório
- **Marca**: Obrigatório
- **Modelo**: Obrigatório
- **Placa**: Obrigatório, formato específico (AAA-#X##)
- **Condutor**: Obrigatório
- **Ano de Fabricação**: Se preenchido, deve ser maior que 1900
- **Ano do Modelo**: Se preenchido, deve ser maior que 1900
- **Mês de Vencimento**: Se preenchido, deve estar entre 1 e 12
- **Autonomia (KM/L e L/H)**: Obrigatórios

### Validações da Aba AVISO

- **Tempo de Direção Máximo**: Se preenchido, deve ser maior que 60 minutos
- **Notificações**: Se algum aviso estiver ativado, pelo menos um email deve ser fornecido
- **Perímetro**: Se "Avisar Saída de Perímetro" estiver ativado, um perímetro deve ser definido
- **Emails**: Devem estar em formato válido

### Validações da Aba HORÁRIO

- Se "Controlar horários" estiver ativado, pelo menos um par de horários deve ser definido
- Se um horário de início for definido para um dia, o horário de fim também deve ser definido
- O horário de início deve ser anterior ao horário de fim para cada dia

### Validações da Aba RELATÓRIO

- Se algum email for preenchido, a hora de envio deve estar entre 0 e 23
- Email deve estar em formato válido
- Tempo mínimo de parada é obrigatório se algum email for configurado

### Validações da Aba BLOQUEIO

- Se "Bloqueio automático" estiver ativado, pelo menos um par de horários deve ser definido
- Horário de desbloqueio e bloqueio não podem ser iguais
- Exibe alerta quando o veículo não possui o acessório de bloqueio instalado

### Validações da Aba RPM

- Se qualquer campo de RPM for preenchido, todos os campos de início e fim são obrigatórios
- O valor de início de uma faixa deve ser menor que o valor de fim
- O valor de fim de uma faixa deve ser menor que o valor de início da próxima faixa

## Fluxo de Trabalho

O fluxo de trabalho típico para utilizar esta interface seria:

1. **Localizar o veículo** usando os filtros do painel esquerdo
2. **Selecionar o veículo** clicando na linha correspondente na lista
3. **Navegar entre as abas** para visualizar ou modificar configurações específicas
4. **Preencher/ajustar os campos** desejados em cada aba
5. **Salvar as alterações** clicando no botão "Gravar" no topo direito

Alguns fluxos específicos incluem:

- **Calibrar odômetro ou horímetro**: Inserir o valor correto e clicar no botão "Calibrar"
- **Configurar perímetro**: Ativar "Avisar Saída Perímetro", selecionar um perímetro existente ou desenhar um novo no mapa
- **Gerenciar permissões de acesso**: Adicionar ou remover grupos de acesso na aba ACESSO
- **Criar links temporários**: Usar a funcionalidade na aba ACESSO para gerar links de acesso com prazo determinado

## Instruções Passo a Passo

### Como Alterar Dados Básicos de um Veículo

1. No painel esquerdo, utilize os filtros de Categoria, Divisão, Tipo ou o campo de Pesquisa para localizar o veículo
2. Clique na linha do veículo desejado para selecioná-lo
3. Na aba "DADOS" (selecionada por padrão), modifique os campos necessários: 
    - Selecione Categoria e Divisão nos dropdowns correspondentes
    - Ajuste Marca e Modelo conforme necessário
    - Preencha ou modifique Label, Cor, Ano de Fabricação, Ano do Modelo, etc.
    - Para mudar o Condutor, clique no ícone de pesquisa ao lado do campo
    - Defina Tipo de Veículo, Renavam e Chassi se necessário
4. Para calibrar o Odômetro ou Horímetro: 
    - Insira o valor correto no campo
    - Clique no botão "Calibrar"
    - O sistema enviará um comando para atualizar o dispositivo no veículo
5. Clique no botão "Gravar" no canto superior direito para salvar as alterações

### Como Configurar Alertas de Velocidade

1. Selecione o veículo desejado na lista à esquerda
2. Clique na aba "AVISO"
3. Vá para a sub-seção "Velocidade" (menu lateral)
4. Para configurar alerta de velocidade geral: 
    - Marque a caixa "Avisar Excesso Velocidade"
    - Insira a velocidade máxima permitida no campo ao lado
5. Para configurar alerta específico para áreas urbanas: 
    - Marque a caixa "Avisar Excesso Velocidade na Cidade"
    - Insira a velocidade máxima urbana permitida no campo ao lado
6. Verifique que os emails para notificação estão configurados na sub-seção "Contatos"
7. Clique em "Gravar" para salvar as configurações

### Como Definir um Perímetro de Operação

1. Selecione o veículo na lista à esquerda
2. Clique na aba "AVISO"
3. Vá para a sub-seção "Perímetro" (menu lateral)
4. Marque a caixa "Avisar Saída Perímetro"
5. Você pode: 
    - Selecionar um perímetro existente na lista suspensa, ou
    - Criar um novo perímetro clicando nos pontos desejados no mapa
    - Use os botões de zoom (+ e -) para ajustar a visualização do mapa
6. Verifique que os emails para notificação estão configurados na sub-seção "Contatos"
7. Clique em "Gravar" para salvar o perímetro

### Como Configurar Horários de Operação

1. Selecione o veículo na lista à esquerda
2. Clique na aba "HORÁRIO"
3. Marque a caixa "Controlar horários de uso dos veículos"
4. Para facilitar, você pode: 
    - Clicar em "Repetir Horário de Segunda" para aplicar o mesmo horário a todos os dias
    - Clicar em "Repetir Horário de Segunda até Sexta" para aplicar o mesmo horário aos dias úteis
5. Defina os horários de início e fim para cada dia da semana usando os dropdowns
6. Insira a "Velocidade Mínima km/h" para determinar quando o veículo é considerado em movimento
7. Clique em "Gravar" para salvar as configurações

### Como Gerenciar Permissões de Acesso

1. Selecione o veículo na lista à esquerda
2. Clique na aba "ACESSO"
3. Para configurar senha individual: 
    - Insira a senha no campo "Senha de Acesso Individual"
4. Para gerenciar grupos de acesso: 
    - Vá para a sub-seção "PERMISSÕES"
    - Use o dropdown de Divisão e o campo de pesquisa para filtrar os grupos disponíveis
    - Clique no botão (+) verde para adicionar um grupo específico
    - Clique no botão "Todos" para adicionar todos os grupos filtrados
    - Clique no botão (-) vermelho para remover um grupo da lista de selecionados
5. Clique em "Gravar" para salvar as alterações

### Como Criar um Link Temporário de Acesso

1. Selecione o veículo na lista à esquerda
2. Clique na aba "ACESSO"
3. Vá para a sub-seção "LINK"
4. Clique no botão "Novo link"
5. Escolha a duração do acesso: 
    - Clique em um dos botões predefinidos (1 hora, 12 horas, 24 horas, 7 dias, 30 dias), ou
    - Configure manualmente as datas e horas de início e fim
6. Clique no botão "Gravar" abaixo dos campos de data/hora
7. O link será criado e aparecerá na tabela abaixo
8. Você pode: 
    - Copiar o link clicando no ícone correspondente
    - Enviar o link por WhatsApp clicando no ícone de envio
    - Inativar o link clicando no ícone X

### Como Configurar Bloqueio Automático

1. Selecione o veículo na lista à esquerda
2. Clique na aba "BLOQUEIO"
3. Marque a caixa "Bloqueio automático do veículo" 
    - Se o veículo não possuir o acessório de bloqueio, um alerta será exibido
4. Para facilitar, você pode: 
    - Clicar em "Repetir Horário de Segunda" para aplicar o mesmo horário a todos os dias
    - Clicar em "Repetir Horário de Segunda até Sexta" para aplicar o mesmo horário aos dias úteis
5. Configure os horários: 
    - Defina os horários de "Desbloqueio" (quando o veículo pode ser usado)
    - Defina os horários de "Bloqueio" (quando o veículo ficará indisponível)
6. Clique em "Gravar" para salvar as configurações

### Como Configurar um Relatório Diário

1. Selecione o veículo na lista à esquerda
2. Clique na aba "RELATÓRIO"
3. Preencha: 
    - Email 1 e/ou Email 2 para receber os relatórios
    - Hora Geração (0-23) para definir quando o relatório será enviado
4. Configure as opções: 
    - Marque "Só paradas ligado?" para incluir apenas paradas com o motor ligado
    - Marque "Só em pontos de interesse?" para incluir apenas paradas em locais cadastrados
    - Defina o "Tempo Mínimo" em minutos para filtrar paradas curtas
    - Marque "Enviar final de semana?" se desejar receber relatórios aos sábados e domingos
    - Marque "Anexar Mapa?" para incluir um mapa visual no relatório
5. Clique em "Gravar" para salvar as configurações

## Perguntas Frequentes

### 1. Como posso calibrar o odômetro do veículo?

Na aba "DADOS", insira o valor correto no campo Odômetro e clique no botão "Calibrar". O sistema enviará um comando para atualizar o dispositivo no veículo. Você pode verificar o status do comando clicando no ícone de atualização ao lado.

### 2. Posso definir diferentes velocidades máximas para diferentes situações?

Sim. Na aba "AVISO", sub-seção "Velocidade", você pode configurar:

- Uma velocidade máxima geral ("Avisar Excesso Velocidade")
- Uma velocidade máxima específica para áreas urbanas ("Avisar Excesso Velocidade na Cidade")
- O sistema também suporta alertas para excesso na via com base em sinalizações de trânsito

### 3. Como faço para receber alertas quando o veículo sair de uma área permitida?

Na aba "AVISO", vá para a sub-seção "Perímetro", marque a caixa "Avisar Saída Perímetro" e defina um perímetro no mapa. Certifique-se de configurar pelo menos um email na sub-seção "Contatos" para receber os alertas.

### 4. Posso bloquear o veículo automaticamente fora do horário comercial?

Sim, desde que o veículo tenha o acessório de bloqueio instalado. Na aba "BLOQUEIO", marque a caixa "Bloqueio automático do veículo" e configure os horários de desbloqueio e bloqueio para cada dia da semana.

### 5. É possível gerar um relatório diário com as paradas do veículo?

Sim. Na aba "RELATÓRIO", configure pelo menos um email e defina a hora de geração. Você pode personalizar o relatório para incluir apenas determinados tipos de paradas, definir um tempo mínimo de parada e optar por incluir um mapa visual.

### 6. Como permito acesso temporário ao veículo para um terceiro?

Na aba "ACESSO", sub-seção "LINK", clique em "Novo link" e defina o período de validade. Você pode escolher durações predefinidas ou configurar manualmente. O sistema gerará um link e um PIN que você pode compartilhar com a pessoa que precisa de acesso temporário.

### 7. Como adiciono ou removo um motorista autorizado?

Na aba "DADOS", ao lado do campo Condutor, clique no ícone de pesquisa para selecionar um novo condutor principal. Para gerenciar múltiplos motoristas autorizados, você pode usar os ícones adicionais (+ para adicionar motoristas e - para remover todos).

### 8. O que significam as diferentes cores na configuração de RPM?

As cores representam diferentes faixas de RPM para monitoramento visual:

- Azul claro (Faixa 1): Rotação muito baixa
- Azul (Faixa 2): Rotação baixa
- Verde (Faixa 3): Rotação ideal/econômica
- Amarelo (Faixa 4): Rotação elevada
- Laranja/Vermelho claro (Faixa 5): Rotação alta
- Vermelho (Acima da Faixa 5): Rotação crítica/perigosa

### 9. Como configuro alertas para veículos parados com o motor ligado?

Na aba "AVISO", sub-seção "Geral", marque a caixa "Avisar Veículo Parado Ligado?" e defina o tempo de parada em minutos. O sistema enviará alertas quando o veículo permanecer parado com o motor ligado por mais tempo que o configurado.

### 10. Posso definir diferentes tipos de combustível para um mesmo veículo?

Sim. Na aba "COMBUSTÍVEL", você verá a lista de "TIPOS DE COMBUSTÍVEIS DISPONÍVEIS". Clique no botão (+) verde ao lado de cada tipo de combustível que o veículo pode utilizar para adicioná-lo à lista de "TIPOS DE COMBUSTÍVEIS DO VEÍCULO".

### 11. Como configuro alertas baseados em temperatura?

Na aba "AVISO", sub-seção "Temperatura", você pode definir limites de temperatura mínima e máxima, desde que o veículo possua um transmissor de temperatura instalado. O sistema alertará quando a temperatura sair dos limites definidos.

### 12. É possível anexar documentos ao cadastro do veículo?

Sim. Na aba anexada ao final (geralmente representada por um ícone), você pode fazer upload de documentos relacionados ao veículo, como manuais, apólices de seguro, documentação, etc. Esses documentos podem ser visualizados ou excluídos posteriormente.

### 13. Como configuro alertas para manutenção preventiva?

Na aba "AVISO", sub-seção "Geral", marque a caixa "Veículo em manutenção" quando o veículo estiver em manutenção para evitar alertas desnecessários. Você também pode configurar relatórios diários na aba "RELATÓRIO" para monitorar o uso do veículo e planejar manutenções preventivas.

### 14. Posso restringir o uso do veículo apenas a determinados dias e horários?

Sim. Na aba "HORÁRIO", marque a caixa "Controlar horários de uso dos veículos" e defina os horários permitidos para cada dia da semana. Para uma restrição mais rigorosa, você pode usar a funcionalidade de bloqueio automático na aba "BLOQUEIO".

### 15. Como configuro parâmetros para roteirização e entregas?

Na aba "ROTA", defina o ponto inicial, capacidade de peso e volume, custo por quilômetro e quantidade máxima de itinerários. Essas informações serão utilizadas pelo sistema de roteirização e pelo aplicativo de entregas.

## Propósito da Interface

Esta interface representa uma solução abrangente para o gerenciamento de frotas, permitindo controle detalhado sobre diversos aspectos dos veículos:

1. **Gestão de Dados Cadastrais**: Manutenção de informações básicas sobre marca, modelo, cor e documentação
2. **Controle de Acesso**: Gerenciamento de quem pode operar o veículo e quando
3. **Monitoramento de Desempenho**: Acompanhamento de odômetro, horímetro, RPM e consumo
4. **Sistema de Alertas**: Configuração de avisos para comportamentos fora do padrão
5. **Segurança**: Definição de perímetros permitidos e bloqueio automático
6. **Otimização de Rotas**: Configuração de parâmetros para roteirização
7. **Geração de Relatórios**: Automatização de relatórios para análise de utilização

A interface foi projetada para ser completa e flexível, adaptando-se a diferentes tipos de veículos e necessidades operacionais, contribuindo para uma gestão de frota mais eficiente, segura e econômica.

# Alteração Veículos em Lote

## Descrição da Interface

A funcionalidade "Alteração Veículo Em Lote" faz parte do sistema de gerenciamento de frota da Concept Rastreamento. Esta interface permite aos usuários realizar alterações em múltiplos veículos simultaneamente, evitando a necessidade de editar cada veículo individualmente.

A interface está dividida em duas seções principais: à esquerda, uma lista de veículos disponíveis para seleção, e à direita, um conjunto de abas com diferentes categorias de configurações que podem ser aplicadas aos veículos selecionados. Para acessar a opção utilize o menu CONFIGURAÇÕES e a opção ALTERAÇÃO VEÍCULO EM LOTE.

## Elementos de Interface

### Seção Esquerda (Seleção de Veículos)

1. **Área de Filtros**:
    
    
    - Campo "Categoria": Dropdown para filtrar veículos por categoria
    - Campo "Divisão": Dropdown para filtrar veículos por divisão
    - Campo "Tipo Veículo": Dropdown com ícones visuais para selecionar o tipo de veículo
    - Campo "Pesquisar": Campo de texto para busca por termos como placa, marca, modelo
2. **Lista de Veículos Disponíveis**:
    
    
    - Exibe os veículos do cliente organizados em uma lista
    - Cada veículo mostra placa e informação do condutor
    - Botão "+" para adicionar individualmente o veículo à lista de selecionados
    - Botão "Adicionar Todos" para adicionar todos os veículos filtrados de uma vez
3. **Lista de Veículos Selecionados**:
    
    
    - Exibe os veículos escolhidos para alteração em lote
    - Contador do número de veículos selecionados
    - Botão "-" para remover individualmente veículos da seleção
    - Botão "Remover Todos" para limpar toda a seleção

### Seção Direita (Configurações)

A seção direita contém um botão "Gravar" e um conjunto de abas para diferentes categorias de configurações:

#### Aba "Dados"

- Campo "Veículo em manutenção": Opções SIM/NÃO
- Campo "Categoria": Dropdown para selecionar categoria de veículo
- Campo "Divisão": Dropdown para selecionar divisão do veículo
- Campo "KM/l": Entrada numérica para autonomia
- Campo "L/h": Entrada numérica para autonomia por hora

#### Aba "Acesso"

- Campo "Divisão": Dropdown para filtrar grupos de acesso por divisão
- Campo "Pesquisa acesso": Campo de texto para busca
- Checkbox "Remover os grupos acessos anteriores"
- Lista "Acessos Disponíveis": Grupos de acesso que podem ser atribuídos
- Lista "Acessos Selecionados": Grupos de acesso atribuídos aos veículos
- Botão "Todos": Adiciona todos os acessos disponíveis filtrados

#### Aba "Horário"

- Checkbox "Controlar horários de uso dos veículos"
- Botões "Repetir Horário de Segunda" e "Repetir Horário de Segunda até Sexta"
- Campos de seleção para horários de início e fim para cada dia da semana: 
    - Segunda a Sexta: Dois campos para cada dia (início e fim)
    - Sábado e Domingo: Dois campos para cada dia (início e fim)
- Campo "Velocidade Mínima km/h": Entrada numérica

#### Aba "Avisos"

Contém sub-abas internas:

**Sub-aba "Geral"**

- Checkbox "Avisar Excesso de Velocidade na VIA"
- Checkbox "Avisar Excesso Velocidade" com campo numérico "Velocidade Máxima km/h"
- Checkbox "Avisar Excesso Velocidade na Cidade" com campo numérico "Velocidade Máxima km/h"
- Campo "Tempo Máximo de Direção": Entrada numérica em minutos
- Campo "RPM Máximo": Entrada numérica
- Checkbox "Avisar Veículo Parado" com campo para "Tempo parada em minutos"
- Checkbox "Avisar Veículo Parado Ligado?" com campo para "Tempo parada em minutos"
- Checkbox "Avisar Veículo Ligado"
- Checkbox "Avisar Veículo Desligado"
- Campo "Limite Pressão Acelerador": Entrada numérica em percentual
- Checkbox "Ligar Ancoragem" com campo para "Raio para a ancoragem em metros"

**Sub-aba "Perímetro"**

- Checkbox "Avisar Saída Perímetro"
- Dropdown para selecionar perímetro
- Botão "Limpar"
- Mapa interativo para definir o perímetro geográfico

**Sub-aba "Contatos"**

- Campos "Email 1" e "Email 2": Entradas para emails de contato
- Campos "Celular 1" e "Celular 2": Entradas para números de telefone
- Campo "Contatos de Emergência": Área de texto para procedimentos de emergência

#### Aba "Relatório"

- Campos "Email 1" e "Email 2": Para recebimento de relatórios diários
- Campo "Hora Geração": Entrada numérica para hora de envio
- Checkboxes: 
    - "Só paradas ligado?"
    - "Só em pontos de interesse?"
    - "Enviar final de semana?"
    - "Anexar Mapa?"
- Campo "Tempo Mínimo (minutos)": Entrada numérica

#### Aba "Rotas"

- Campo "Custo por KM": Entrada numérica com exibição em R$/Km
- Campo "Quantidade máxima de itinerários": Entrada numérica

#### Aba "Combustível"

- Campo "Capacidade tanque (litros)": Entrada numérica
- Lista "Tipos de Combustíveis Disponíveis": Tipos de combustível que podem ser atribuídos
- Lista "Tipos de Combustíveis do Veículo": Tipos de combustível selecionados

## Propósito e Fluxo de Trabalho

O propósito desta tela é permitir a configuração em massa de múltiplos veículos de uma frota, poupando tempo ao aplicar as mesmas configurações a vários veículos simultaneamente.

**Fluxo de trabalho básico:**

1. Filtrar e selecionar os veículos que precisam de alterações
2. Configurar os parâmetros desejados nas diferentes abas
3. Clicar em "Gravar" para aplicar as mudanças a todos os veículos selecionados

A tela é especialmente útil quando uma empresa precisa padronizar configurações em toda a frota ou em grupos específicos de veículos.

## Instruções Passo a Passo para Operações Principais

### Alteração de configurações em lote:

1. **Selecionar veículos:**
    
    
    - Utilize os filtros (Categoria, Divisão, Tipo Veículo) para localizar os veículos desejados
    - Digite termos no campo de pesquisa para buscar por placa, marca, modelo ou condutor
    - Clique no botão "+" ao lado de cada veículo para adicioná-lo à seleção, ou
    - Clique em "Adicionar Todos" para selecionar todos os veículos filtrados
2. **Configurar os parâmetros desejados:**
    
    
    - Navegue entre as abas (Dados, Acesso, Horário, Avisos, Relatório, Rotas, Combustível)
    - Preencha apenas os campos que deseja alterar nos veículos selecionados
    - Os campos não preenchidos manterão os valores originais de cada veículo
3. **Salvar as alterações:**
    
    
    - Verifique se todos os dados estão corretos
    - Clique no botão "Gravar"
    - Aguarde a confirmação de sucesso

### Configuração de Acesso em Lote:

1. **Selecionar veículos** (conforme instruções acima)
2. **Acessar a aba "Acesso"**
3. **Configurar grupos de acesso:**
    - Selecione a divisão para filtrar os grupos disponíveis
    - Use o campo de pesquisa para localizar grupos específicos
    - Marque "Remover os grupos acessos anteriores" se desejar substituir completamente os acessos
    - Clique no botão "+" para adicionar grupos individualmente
    - Ou clique em "Todos" para adicionar todos os grupos filtrados
4. **Clique em "Gravar"** para salvar as alterações

### Configuração de Horários Permitidos:

1. **Selecionar veículos** (conforme instruções acima)
2. **Acessar a aba "Horário"**
3. **Marque "Controlar horários de uso dos veículos"**
4. **Configurar horários:**
    - Defina o horário de início e fim para segunda-feira
    - Clique em "Repetir Horário de Segunda" para copiar para todos os dias, ou
    - Clique em "Repetir Horário de Segunda até Sexta" para copiar apenas para dias úteis
    - Ajuste os horários específicos para cada dia conforme necessário
    - Defina a velocidade mínima que caracteriza o veículo em movimento
5. **Clique em "Gravar"** para salvar as alterações

### Configuração de Perímetro Geográfico:

1. **Selecionar veículos** (conforme instruções acima)
2. **Acessar a aba "Avisos" e selecionar a sub-aba "Perímetro"**
3. **Marque "Avisar Saída Perímetro"**
4. **Configurar o perímetro:**
    - Selecione um perímetro existente no dropdown, ou
    - Crie um novo perímetro clicando no mapa para definir os pontos do polígono
5. **Clique em "Gravar"** para salvar as alterações

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

O sistema inclui várias validações para garantir a integridade dos dados:

1. **Seleção de veículos:**
    
    
    - É obrigatório selecionar pelo menos um veículo para realizar alterações
    - Não é possível adicionar o mesmo veículo duas vezes à lista de selecionados
2. **Dados obrigatórios:**
    
    
    - É necessário configurar pelo menos um parâmetro para fazer alterações
    - Campos numéricos possuem validação de valores mínimos e máximos
    - Emails precisam seguir formato válido
3. **Perímetro geográfico:**
    
    
    - É necessário ter pelo menos 3 pontos para formar um polígono válido
    - Se "Avisar Saída Perímetro" estiver marcado, é obrigatório definir ou selecionar um perímetro
4. **Horários permitidos:**
    
    
    - Se "Controlar horários de uso" estiver marcado, é necessário definir pelo menos um período
    - O horário de início deve ser anterior ao horário de fim
    - É obrigatório definir a velocidade mínima
5. **Envio de relatórios:**
    
    
    - Se informado um email para envio de relatórios, é obrigatório definir a hora de geração
    - A hora de geração deve estar entre 0 e 23
    - Se configurado para enviar relatórios, é obrigatório definir o tempo mínimo de parada

## Perguntas Frequentes

1. **O que acontece com as configurações que eu não alterar?** R: As configurações não alteradas permanecem com os valores originais de cada veículo. Apenas os campos preenchidos serão alterados em lote.
2. **Posso desfazer alterações em lote após salvá-las?** R: Não, não existe funcionalidade de desfazer. É recomendável verificar cuidadosamente as configurações antes de gravar.
3. **Como configurar perímetros diferentes para veículos distintos?** R: Você precisará realizar alterações separadas para cada grupo de veículos que compartilhará o mesmo perímetro.
4. **Os veículos precisam ser da mesma categoria para alterar em lote?** R: Não, você pode selecionar veículos de diferentes categorias e divisões para alteração em lote.
5. **Como funcionam os alertas de excesso de velocidade?** R: Você pode configurar dois tipos de alerta: para velocidade máxima geral e para velocidade em cidade. O sistema enviará notificações quando os limites forem ultrapassados.
6. **É possível adicionar todos os tipos de combustível de uma vez?** R: Sim, você pode adicionar tipos de combustível individualmente ou usar o botão "+" para cada tipo disponível.
7. **Como configurar relatórios diários de paradas?** R: Na aba "Relatório", configure os emails para recebimento, horário de envio, e marque as opções desejadas como "Só paradas ligado" ou "Anexar Mapa".
8. **O que significa a opção "Remover os grupos acessos anteriores"?** R: Esta opção substitui todos os grupos de acesso anteriores pelos novos selecionados. Se não marcada, os novos grupos serão adicionados aos existentes.
9. **Como funciona a ancoragem de veículos?** R: A ancoragem cria um raio virtual em torno da posição do veículo e gera alertas se ele se deslocar para fora deste raio.
10. **Posso definir diferentes horários de uso para cada dia da semana?** R: Sim, você pode configurar horários específicos para cada dia da semana, incluindo finais de semana.

# Divisão de Veículos

## Visão Geral

A funcionalidade de Divisões de Veículos é uma ferramenta para administrar grupos de veículos organizados por divisões em uma frota. Cada divisão possui um nome e uma cor associada, além da possibilidade de configurar alertas por email baseados em tipos específicos de avisos para cada divisão. Para acessar a opção utilize o menu CONFIGURAÇÕES e a opção DIVISÃO DE VEÍCULOS.

## Telas do Sistema

### Tela de Pesquisa (Divisões de Veículos)

Esta tela apresenta uma interface de pesquisa e visualização das divisões de veículos cadastradas no sistema.

#### Elementos da Interface

- **Cabeçalho**: "Divisões de Veículos"
- **Seção de Filtros**: Área retrátil para aplicação de filtros de pesquisa
    
    
    - Campo "Nome": Entrada de texto para filtrar divisões pelo nome
    - Botões de ação: 
        - Botão de Pesquisa (ícone de lupa): Executa a pesquisa com os filtros aplicados
        - Botão de Limpar Filtros (ícone de documento): Remove todos os filtros aplicados
        - Botão Novo (ícone de adição): Redireciona para a tela de criação de nova divisão
        - Botão Exportar para CSV (ícone de salvar): Exporta os dados da tabela para um arquivo CSV
- **Tabela de Resultados**: Exibe as divisões cadastradas
    
    
    - Colunas: 
        - NOME: Nome da divisão
        - COR: Representação visual da cor associada à divisão (exibida como uma célula colorida)
- **Paginação**: Controles para navegar entre as páginas de resultados
    
    
    - Indicador: Mostra a quantidade de registros exibidos e o total
    - Botões de navegação: Permitem avançar ou retroceder entre as páginas

### Tela de Edição/Cadastro (Divisão de Veículos)

Esta tela permite criar novas divisões ou editar divisões existentes.

#### Elementos da Interface

- **Cabeçalho**: "Divisão de Veículos"
- **Formulário de Cadastro**: 
    - Campo "Nome": Entrada de texto para o nome da divisão (obrigatório)
    - Seletor de Cor: Permite escolher uma cor para identificar a divisão visualmente
- **Seção "Parâmetros de Envio de Email"**: 
    - Dropdown "Tipo do Aviso": Lista de tipos de avisos disponíveis no sistema
    - Campo "Email destino": Entrada de texto para o endereço de email que receberá notificações
    - Botão "Adicionar Email e Tipo Aviso": Inclui a combinação de tipo de aviso e email na lista
    - Lista de Destinatários: Exibe as combinações de email e tipo de aviso já cadastradas 
        - Cada item exibe o email e o tipo de aviso associado
        - Botão de remoção (ícone de menos): Remove o item da lista
- **Botões de Ação**: 
    - Botão "Gravar": Salva as alterações realizadas no formulário
    - Botão "Excluir": Remove a divisão (visível apenas em modo de edição)
    - Botão "Voltar": Retorna à tela de pesquisa sem salvar alterações

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

1. **Nome da Divisão**:
    
    
    - Campo obrigatório
    - Deve ser único no sistema
2. **Cor da Divisão**:
    
    
    - Obrigatório selecionar uma cor
    - A cor é representada em formato hexadecimal (ex: #FFFFFF para branco)
    - É utilizada para identificação visual na tabela de divisões
3. **Email de Destino**:
    
    
    - Deve ser um endereço de email válido
    - A combinação de tipo de aviso e email deve ser única para cada divisão
    - É possível adicionar múltiplos destinatários para diferentes tipos de avisos
4. **Tipos de Avisos**:
    
    
    - São pré-definidos no sistema
    - Exemplos incluem: Abastecimento, Abertura Capô, Excesso de Velocidade, etc.
    - Cada tipo de aviso pode estar associado a apenas um email (para evitar duplicidade)

## Fluxo de Trabalho

### Pesquisa de Divisões

1. Acesse a tela de pesquisa de divisões
2. Opcionalmente, digite um nome no campo de filtro
3. Clique no botão de pesquisa (ícone de lupa)
4. Os resultados correspondentes serão exibidos na tabela
5. Utilize os controles de paginação para navegar entre as páginas de resultados
6. Para exportar os dados, clique no botão "Exportar para CSV"

### Criação de Nova Divisão

1. Na tela de pesquisa, clique no botão Novo (ícone de adição)
2. Preencha o campo "Nome" com o nome desejado para a divisão
3. Selecione uma cor para identificar a divisão
4. Para adicionar notificações por email: 
    - Selecione um tipo de aviso na lista suspensa
    - Digite o endereço de email de destino
    - Clique em "Adicionar Email e Tipo Aviso"
    - Repita o processo para adicionar mais destinatários, se necessário
5. Clique em "Gravar" para salvar a nova divisão
6. Para cancelar, clique em "Voltar"

### Edição de Divisão Existente

1. Na tela de pesquisa, clique sobre a linha da divisão que deseja editar
2. Modifique os campos necessários
3. Para adicionar ou remover destinatários de email: 
    - Adicione novos usando o mesmo processo da criação
    - Remova existentes clicando no botão de remoção (ícone de menos) ao lado de cada item
4. Clique em "Gravar" para salvar as alterações
5. Para excluir a divisão, clique em "Excluir"
6. Para cancelar, clique em "Voltar"

## Casos Especiais e Tratamentos de Erro

- **Email Inválido**: Se um email inválido for digitado, um erro será exibido e o cadastro não prosseguirá
- **Combinação Duplicada**: Se tentar adicionar a mesma combinação de tipo de aviso e email, um erro será exibido
- **Nome Obrigatório**: Se tentar salvar sem preencher o nome, um erro será exibido
- **Exclusão de Divisão**: A funcionalidade de exclusão só está disponível para divisões já existentes (com ID)
- **Permissões**: A edição e exclusão dependem das permissões do usuário: 
    - Usuários com acesso Master podem realizar todas as operações
    - Usuários de grupo precisam ter permissão de alteração ou capacidade Master
    - Usuários individuais têm restrições específicas conforme configuração

## Perguntas Frequentes

### Como as divisões são utilizadas no sistema?

As divisões são utilizadas para organizar grupos de veículos da frota, facilitando a gestão e o monitoramento. Cada divisão possui uma cor única que ajuda na identificação visual e pode ter configurações específicas de alertas por email.

### Por que configurar emails para tipos específicos de avisos?

Isso permite direcionar diferentes tipos de alertas para responsáveis específicos. Por exemplo, avisos sobre manutenção podem ser enviados para a equipe de manutenção, enquanto alertas de excesso de velocidade podem ser enviados para os gestores de segurança.

### Posso atribuir o mesmo tipo de aviso para diferentes emails?

Não, cada tipo de aviso pode estar associado a apenas um email por divisão para evitar duplicidade de notificações.

### Como funcionam as cores das divisões?

As cores são utilizadas para identificação visual das divisões na interface do sistema. Na tabela de divisões, a cor aparece como uma célula colorida ao lado do nome da divisão, facilitando a identificação rápida.

### É possível excluir uma divisão que possui veículos associados?

O sistema verifica se existem veículos associados à divisão antes de permitir a exclusão. Se houver veículos vinculados, será exibida uma mensagem de erro informando que a divisão não pode ser excluída.

### Quem pode criar ou modificar divisões?

Apenas usuários com permissões adequadas podem criar, editar ou excluir divisões. Usuários com acesso Master têm permissão completa, enquanto usuários de grupo precisam ter permissão específica para alterar configurações.

### Como exportar a lista de divisões para análise externa?

Na tela de pesquisa, após aplicar os filtros desejados, clique no botão "Exportar para CSV" (ícone de salvar). O sistema irá gerar um arquivo CSV com os dados exibidos na tabela, que pode ser aberto em programas como Excel ou Google Sheets.

# Categorias de Veículos

## Introdução

A funcionalidade de Categorias de Veículos permite configurar diferentes tipos de veículos utilizados na frota, com seus respectivos detalhes técnicos, como configuração de eixos e pneus. Esta configuração é essencial para o correto gerenciamento da frota e controle de manutenção dos veículos. Para acessar a opção utilize o menu CONFIGURAÇÕES e a opção CATEGORIAS DE VEÍCULOS.

## Descrição da Interface

### Tela Principal de Listagem de Categorias

A tela principal apresenta uma interface organizada em duas seções principais:

1. **Seção de Filtros**: Localizada na parte superior, permite pesquisar categorias de veículos cadastradas.
2. **Lista de Categorias**: Apresenta todas as categorias de veículos em formato de grade, com informações básicas.

A interface utiliza um design limpo e intuitivo, seguindo padrões modernos de usabilidade com um esquema de cores que facilita a visualização das informações.

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

A tela de edição/cadastro apresenta um formulário detalhado para configuração das categorias de veículos, com visualização gráfica dos eixos e pneus. O layout é organizado em seções que agrupam informações relacionadas, facilitando o preenchimento dos dados.

## Elementos da Interface

### Tela de Listagem

1. **Seção de Filtros**:
    
    
    - **Campo Descrição**: Campo de texto para filtrar categorias por descrição
    - **Botão de Pesquisa**: Ícone de lupa que executa a pesquisa com os filtros aplicados
    - **Botão Limpar Filtros**: Ícone de arquivo que limpa todos os filtros aplicados
    - **Botão Novo**: Ícone de "+" que direciona para a tela de cadastro de nova categoria
    - **Botão Exportar para CSV**: Ícone de "salvar" que exporta os dados da grade para um arquivo CSV
2. **Grade de Dados**:
    
    
    - **Coluna Descrição**: Exibe a descrição da categoria de veículo
    - **Paginação**: Controles para navegar entre as páginas de resultados
    - **Contador de Registros**: Exibe o número de registros sendo visualizados e o total

### Tela de Edição/Cadastro

1. **Informações Básicas**:
    
    
    - **Campo Descrição**: Campo de texto obrigatório para nomear a categoria
    - **Controlado Por**: Dropdown com opções "Quilômetro (CPK)", "Milha (CPM)" e "Hora (CPH)"
    - **Aro Pneus**: Campo numérico para diâmetro do aro (com formato decimal)
    - **Quantidade Estepes**: Controle numérico para definir quantidade de pneus estepe
2. **Seção de Eixos**:
    
    
    - **Visualização Gráfica**: Representação visual do eixo com pneus
    - **Controles de Pneus**: Imagens de pneus que podem ser clicadas para ativar/desativar 
        - Pneu Esquerdo Externo
        - Pneu Esquerdo Interno
        - Pneu Direito Interno
        - Pneu Direito Externo
    - **Lista de Eixos**: Exibe os eixos configurados com tipo e quantidade de pneus
    - **Botão Novo Eixo**: Adiciona um novo eixo à configuração
    - **Botões de Ação por Eixo**: 
        - **VER**: Seleciona o eixo para visualização/edição
        - **Remover**: Remove o eixo da configuração (representado por "-")
3. **Configuração do Eixo Selecionado**:
    
    
    - **Tipo Eixo**: Dropdown com opções "Livre", "Tração", "Direcional" e "Tração/Direcional"
4. **Botões de Ação**:
    
    
    - **Gravar**: Salva as alterações realizadas
    - **Excluir**: Remove a categoria (visível apenas em modo de edição)
    - **Voltar**: Retorna à tela de listagem

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

1. **Campos Obrigatórios**:
    
    
    - Descrição
    - Controlado Por
    - Aro Pneus
    - Quantidade Estepes
    - Pelo menos dois eixos configurados
2. **Validações Específicas**:
    
    
    - Cada eixo deve ter 0, 2 ou 4 pneus. Configurações com 1 ou 3 pneus por eixo geram mensagem de erro
    - É necessário configurar no mínimo dois eixos para cada categoria de veículo
3. **Alteração da Quantidade de Pneus**:
    
    
    - Ao clicar nas imagens dos pneus, o sistema atualiza automaticamente a contagem de pneus do eixo

## Fluxo de Trabalho

O fluxo de trabalho desta funcionalidade segue o padrão CRUD (Criar, Ler, Atualizar, Excluir) para gerenciamento de categorias de veículos:

1. Na tela de listagem, o usuário pode:
    
    
    - Visualizar categorias existentes
    - Filtrar categorias por descrição
    - Criar uma nova categoria
    - Selecionar uma categoria para edição
2. Na tela de edição/cadastro, o usuário pode:
    
    
    - Preencher/modificar informações básicas da categoria
    - Configurar os eixos e pneus visualmente
    - Adicionar ou remover eixos
    - Salvar as alterações ou excluir a categoria

## Instruções Passo a Passo

### Como Pesquisar uma Categoria

1. Na tela de listagem, digite a descrição (ou parte dela) no campo "Descrição"
2. Clique no botão de pesquisa (ícone de lupa)
3. Os resultados correspondentes serão exibidos na grade
4. Para limpar os filtros, clique no botão "Limpar Filtros" (ícone de arquivo)

### Como Criar uma Nova Categoria

1. Na tela de listagem, clique no botão "Novo" (ícone +)
2. Na tela de cadastro, preencha o campo "Descrição" com um nome único
3. Selecione o método de controle no dropdown "Controlado Por"
4. Digite o diâmetro do aro no campo "Aro Pneus"
5. Defina a quantidade de estepes usando os controles de incremento/decremento
6. Clique em "Novo Eixo" para adicionar pelo menos dois eixos
7. Para cada eixo: 
    - Selecione o tipo de eixo (Livre, Tração, Direcional ou Tração/Direcional)
    - Clique nas imagens dos pneus para ativar/desativar conforme necessário
8. Clique em "Gravar" para salvar a nova categoria

### Como Editar uma Categoria Existente

1. Na tela de listagem, localize a categoria desejada
2. Clique sobre a linha da categoria na grade
3. Na tela de edição, modifique os campos conforme necessário
4. Para modificar eixos existentes: 
    - Clique no botão "VER" do eixo desejado
    - Altere o tipo ou a configuração de pneus
5. Para adicionar ou remover eixos: 
    - Clique em "Novo Eixo" para adicionar
    - Clique no botão "-" ao lado do eixo para removê-lo
6. Clique em "Gravar" para salvar as alterações

### Como Excluir uma Categoria

1. Na tela de listagem, localize a categoria desejada
2. Clique sobre a linha da categoria na grade
3. Na tela de edição, clique no botão "Excluir"
4. Confirme a exclusão quando solicitado

### Como Exportar Dados para CSV

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

## Perguntas Frequentes (FAQ)

### Perguntas sobre Funcionalidades

**P: Posso cadastrar duas categorias com a mesma descrição?**  
R: Não. A descrição da categoria deve ser única para facilitar a identificação.

**P: Por que preciso configurar no mínimo dois eixos?**  
R: Os veículos necessitam de pelo menos dois eixos (dianteiro e traseiro) para funcionamento adequado. Esta restrição garante que as categorias reflitam configurações reais de veículos.

**P: O que significa "Controlado Por" na configuração da categoria?**  
R: Este campo define a unidade de medida utilizada para controlar a manutenção e desempenho dos veículos. As opções são:

- CPK: Controle por Quilômetro
- CPM: Controle por Milha
- CPH: Controle por Hora

**P: Como devo configurar os pneus em um eixo?**  
R: A configuração de pneus deve refletir a realidade física do veículo. Geralmente, um eixo possui 2 pneus (um em cada extremidade) ou 4 pneus (dois em cada extremidade, sendo dois internos e dois externos). Configurações com 1 ou 3 pneus são consideradas inválidas.

**P: O que significam os diferentes tipos de eixo?**  
R:

- **Livre**: Eixo que apenas roda livremente
- **Tração**: Eixo que transfere potência do motor para as rodas
- **Direcional**: Eixo utilizado para direcionamento do veículo
- **Tração/Direcional**: Eixo que combina ambas as funções

### Perguntas sobre Processos

**P: Posso editar uma categoria que já está associada a veículos?**  
R: Sim, é possível editar as informações, mas tome cuidado para não realizar alterações que possam afetar os veículos já cadastrados com esta categoria.

**P: Como faço para visualizar todos os veículos de uma determinada categoria?**  
R: Esta funcionalidade deve ser acessada através do módulo de gerenciamento de veículos, filtrando pelos veículos da categoria desejada.

**P: É possível duplicar uma categoria existente?**  
R: Não há um botão específico para duplicação. Para criar uma categoria similar, você pode criar uma nova e configurá-la de forma semelhante à existente.

**P: Como saber quantos pneus um veículo desta categoria precisará no total?**  
R: Some a quantidade de pneus configurados em todos os eixos e adicione a quantidade de estepes. Isso dará o número total de pneus necessários.

## Conclusão

O módulo de Gerenciamento de Categorias de Veículos é fundamental para a correta configuração da frota. Através dele, é possível definir os diferentes tipos de veículos utilizados pela empresa, suas características técnicas e configurações de eixos e pneus, permitindo um controle mais eficiente da manutenção e gestão dos ativos.

As telas foram projetadas para oferecer uma experiência intuitiva, com validações que garantem a consistência dos dados e representações visuais que facilitam a configuração técnica dos veículos.

# Cadastro de Perímetros

## Descrição da Interface

O funcionalidade de Cadastro de Perímetro apresenta uma interface para gerenciamento de perímetros geográficos, que são áreas delimitadas no mapa utilizadas para monitoramento de veículos. A interface é composta por duas telas principais:

1. **Tela de Listagem de Perímetros**: Apresenta uma lista dos perímetros cadastrados em formato de tabela, com colunas para nome e cor. Inclui filtros de pesquisa e botões para ações como criar novo perímetro, exportar dados e importar arquivos KML.
2. **Tela de Edição de Perímetro**: Permite criar ou editar um perímetro específico, oferecendo campos para nome e seleção de cor, além de um mapa interativo onde o usuário pode desenhar o perímetro clicando para adicionar pontos. Mostra também informações sobre veículos associados ao perímetro.

A interface segue um design limpo e moderno, com uma barra lateral de navegação escura e área principal de conteúdo em tons claros. Para acessar a opção utilize o menu CONFIGURAÇÕES e a opção CADASTRO DE PERÍMETROS.

## Elementos da Interface

### Tela de Listagem de Perímetros

#### Seção de Filtros

- **Campo Nome**: Campo de texto para filtrar perímetros pelo nome
- **Botões de Ação**: 
    - **Pesquisa** (ícone de lupa): Executa a pesquisa com os filtros aplicados
    - **Limpar Filtros** (ícone de arquivo): Remove todos os filtros aplicados
    - **Novo** (ícone de adição): Redireciona para a tela de criação de novo perímetro
    - **Exportar para CSV** (ícone de salvar): Exporta a listagem de perímetros para um arquivo CSV
    - **Importar KML**: Abre modal para importação de arquivos KML

#### Tabela de Perímetros

- **Colunas**: 
    - **Nome**: Nome do perímetro
    - **Cor**: Exibição visual da cor do perímetro (célula preenchida com a cor)
- **Informação de Contagem**: Exibe o número total de registros no rodapé ("registros: X")

#### Modal de Importação KML

- **Título**: "Importação de arquivo KML"
- **Seletor de Cor**: Permite escolher a cor do perímetro a ser importado
- **Área de Upload**: Para anexar o arquivo KML
- **Área de Mensagem**: Exibe resultados da importação

### Tela de Edição de Perímetro

#### Dados do Perímetro

- **Campo Nome**: Campo de texto obrigatório para o nome do perímetro
- **Seletor de Cor**: Permite escolher a cor do perímetro usando uma paleta de cores
- **Botão Lista de Veículos**: Exibe o número de veículos associados ao perímetro e permite visualizar a lista

#### Área do Mapa

- **Botões de Controle**: 
    - **Limpar Perímetro**: Remove todos os pontos do perímetro no mapa
    - **Localizar Endereço**: Abre um modal para buscar um endereço específico
    - **Centralizar Perímetro**: Ajusta o zoom para visualizar todo o perímetro (visível apenas quando há pontos)
- **Mapa Interativo**: Área onde o usuário pode clicar para adicionar pontos que formam o perímetro
- **Marcadores**: Pontos vermelhos que podem ser arrastados para ajustar o perímetro

#### Ações Principais

- **Gravar**: Salva o perímetro
- **Excluir**: Remove o perímetro (disponível apenas para perímetros existentes)
- **Voltar**: Retorna para a tela de listagem

#### Modal de Localização de Endereço

- **Campo de Pesquisa**: Para inserir o endereço a ser localizado
- **Botões**: "OK" e "Fechar"

#### Modal de Lista de Veículos

- **Tabela de Veículos**: 
    - **Coluna #**: Número sequencial
    - **Coluna Placa**: Placa do veículo
    - **Coluna Label**: Identificação/nome do veículo
- **Paginação**: Limitado a 5 itens por página com busca

## Propósito e Fluxo de Trabalho

O propósito desta interface é permitir o gerenciamento de perímetros geográficos usados para monitoramento de veículos. Estes perímetros são áreas definidas no mapa que podem ser usadas para detectar entrada ou saída de veículos, gerando alertas ou registros.

### Fluxo de Trabalho Principal:

1. O usuário acessa a tela de listagem de perímetros
2. Pode pesquisar perímetros existentes usando o filtro por nome
3. Para criar um novo perímetro, clica no botão "Novo"
4. Na tela de edição, insere um nome e seleciona uma cor
5. Desenha o perímetro no mapa, clicando para adicionar pontos (mínimo 3 pontos para formar um polígono)
6. Pode ajustar os pontos arrastando os marcadores
7. Salva o perímetro clicando em "Gravar"
8. Retorna à listagem, onde o novo perímetro aparecerá

### Fluxos Alternativos:

- **Edição de perímetro existente**: O usuário seleciona um perímetro na lista, faz alterações e salva
- **Exclusão de perímetro**: Na tela de edição, o usuário clica em "Excluir"
- **Importação via KML**: O usuário clica em "Importar KML", seleciona uma cor, anexa o arquivo e confirma
- **Exportação para CSV**: O usuário clica em "Exportar para CSV" para baixar os dados em formato de planilha

## Instruções Passo a Passo

### Como Criar um Novo Perímetro

1. Na tela de listagem, clique no botão com ícone "+" (Novo)
2. Digite um nome para o perímetro no campo "Nome"
3. Selecione uma cor no seletor de cores à direita do campo nome
4. No mapa, clique em diferentes pontos para formar o perímetro (são necessários pelo menos 3 pontos)
5. Se precisar ajustar algum ponto, arraste o marcador para a posição desejada
6. Para centralizar a visualização do perímetro, clique em "Centralizar Perímetro"
7. Para encontrar um endereço específico, clique em "Localizar Endereço", digite o endereço e clique em "OK"
8. Quando o perímetro estiver pronto, clique em "Gravar"

### Como Editar um Perímetro Existente

1. Na tela de listagem, clique na linha correspondente ao perímetro que deseja editar
2. Modifique o nome ou a cor conforme necessário
3. Para ajustar o perímetro, arraste os marcadores no mapa
4. Para adicionar mais pontos, clique em novas posições no mapa
5. Para limpar completamente o perímetro e começar novamente, clique em "Limpar Perímetro"
6. Após fazer as alterações, clique em "Gravar"

### Como Excluir um Perímetro

1. Na tela de listagem, clique na linha correspondente ao perímetro que deseja excluir
2. Na tela de edição, clique no botão "Excluir"
3. Confirme a exclusão se solicitado

### Como Importar um Perímetro via KML

1. Na tela de listagem, clique no botão "Importar KML"
2. No modal que se abre, selecione uma cor para o perímetro
3. Clique em "Anexar..." e selecione o arquivo KML do seu computador
4. Aguarde o processamento e verifique a mensagem de resultado
5. Feche o modal após a conclusão

### Como Visualizar os Veículos Associados a um Perímetro

1. Na tela de edição do perímetro, clique no botão "Lista de Veículos \[X\]"
2. No modal que se abre, visualize os veículos associados ao perímetro
3. Utilize a função de busca para encontrar veículos específicos, se necessário
4. Feche o modal após a visualização

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

### Validações de Perímetro:

- O nome do perímetro é obrigatório
- É necessário ter pelo menos 3 pontos para formar um perímetro válido
- A cor do perímetro é obrigatória (padrão é branco: #ffffff)

### Controle de Acesso:

- Existem verificações de permissão para determinar se o usuário pode gravar e excluir perímetros
- Há diferentes níveis de acesso: acesso master, acesso de grupo, e acesso individual
- Usuários com acesso master sempre podem criar, editar e excluir perímetros
- Usuários com acesso de grupo podem criar, editar e excluir perímetros dependendo das permissões do grupo

### Integração com Mapa:

- A interface utiliza o Google Maps para exibição e interação com o mapa
- Os perímetros são compostos por polígonos geográficos com coordenadas de latitude e longitude
- O sistema gerencia a exibição de marcadores com base no nível de zoom
- Para perímetros com muitos pontos, os marcadores são organizados em diferentes níveis de zoom para otimizar a performance

### Comportamento dos Perímetros:

- A cor do perímetro é usada tanto na visualização do polígono no mapa quanto na tabela de listagem
- Perímetros podem ter veículos associados, indicando quais veículos são monitorados dentro desse perímetro
- O sistema mantém um registro em formato JSON das coordenadas do perímetro

## Perguntas Frequentes

### Gerais

1. **O que é um perímetro no sistema?** Um perímetro é uma área geográfica definida por um polígono no mapa, usada para monitorar a localização de veículos, gerando alertas quando eles entram ou saem dessa área.
2. **Como são utilizados os perímetros no monitoramento de veículos?** Os perímetros permitem definir áreas de interesse para monitoramento. O sistema pode detectar quando veículos entram ou saem dessas áreas, gerando alertas ou registros conforme configurado.
3. **Posso associar um mesmo veículo a mais de um perímetro?** Sim, um veículo pode ser associado a múltiplos perímetros simultaneamente.
4. **Qual é o propósito da cor do perímetro?** A cor ajuda a identificar visualmente diferentes perímetros no mapa e na listagem, facilitando a diferenciação entre áreas monitoradas.

### Criação e Edição

5. **Quantos pontos são necessários para criar um perímetro válido?** São necessários pelo menos 3 pontos para formar um polígono que representa um perímetro.
6. **Posso importar perímetros de outros sistemas?** Sim, o sistema permite importar perímetros através de arquivos KML, um formato padrão usado em sistemas de geolocalização.
7. **Como faço para ajustar um ponto específico do perímetro?** Basta clicar e arrastar o marcador correspondente ao ponto que deseja ajustar no mapa.
8. **Existe um limite de pontos que posso adicionar a um perímetro?** Não há um limite explícito, mas perímetros muito complexos (com muitos pontos) podem afetar a performance do sistema.

### Gerenciamento de Perímetros

9. **Como posso verificar quais veículos estão associados a um perímetro?** Na tela de edição do perímetro, clique no botão "Lista de Veículos" para visualizar todos os veículos associados.
10. **É possível exportar as informações dos perímetros para análise em outros sistemas?** Sim, é possível exportar os dados dos perímetros para um arquivo CSV através do botão "Exportar para CSV" na tela de listagem.
11. **O que acontece quando excluo um perímetro?** A exclusão remove o perímetro do sistema, e ele não será mais utilizado para monitoramento de veículos. As associações com veículos também são removidas.
12. **Posso buscar um endereço específico para criar um perímetro?** Sim, o sistema oferece a função "Localizar Endereço" que permite buscar e centralizar o mapa em um endereço específico para facilitar a criação do perímetro.

## Considerações Adicionais

- A interface foi desenvolvida utilizando Vue.js para o frontend, com componentes reutilizáveis que facilitam a manutenção
- O sistema utiliza comunicação via REST para interagir com o servidor
- A visualização de mapas é integrada com a API do Google Maps
- O sistema possui tratamento para perímetros com grande quantidade de pontos, usando estratégias de exibição baseadas no nível de zoom
- A importação de arquivos KML permite a integração com outros sistemas de geolocalização
- Os dados são persistidos no servidor através de chamadas a servlets Java
- O sistema verifica permissões de usuário antes de permitir operações de gravação e exclusão

# Divisão de Motoristas

## Visão Geral

A funcionalidade "Divisão de Motoristas" permite gerenciar equipes de motoristas por divisões organizacionais, associando tipos de avisos a endereços de e-mail específicos. Esta funcionalidade ajuda a organizar a estrutura operacional da frota e a definir rotas de comunicação para diferentes eventos relacionados aos veículos. Para acessar a opção utilize o menu CONFIGURAÇÕES e a opção DIVISÃO DE MOTORISTAS.

## Estrutura da Interface

O módulo consiste em duas telas principais:

- **Tela de Listagem**: Exibe as divisões cadastradas em formato de tabela
- **Tela de Edição/Cadastro**: Permite criar ou modificar uma divisão de motoristas

## Tela de Listagem (Divisões de Motoristas)

### Elementos da Interface

A tela de listagem apresenta as divisões cadastradas no sistema, com os seguintes elementos:

1. **Seção de Filtros**
    
    
    - Campo "Nome": Campo de texto para filtrar divisões pelo nome
    - Botões de Ação: 
        - Botão de Pesquisa (ícone de lupa): Executa a pesquisa conforme filtros
        - Botão Limpar Filtros (ícone de documento): Limpa todos os campos de filtro
        - Botão Novo (ícone de adição): Abre a tela de cadastro de nova divisão
        - Botão Exportar para CSV (ícone de salvar): Exporta os dados da tabela para um arquivo CSV
2. **Tabela de Divisões**
    
    
    - Colunas: 
        - CÓDIGO: Código identificador da divisão
        - NOME: Nome da divisão
    - Paginação: Controles de navegação entre páginas de resultados
    - Contador de Registros: Exibe a quantidade de registros exibidos e o total

### Funcionamento e Fluxo de Trabalho

1. A tela carrega inicialmente mostrando todas as divisões cadastradas
2. O usuário pode filtrar os resultados digitando no campo "Nome" e clicando no botão de pesquisa
3. Para adicionar uma nova divisão, o usuário clica no botão "Novo"
4. Para editar uma divisão existente, o usuário clica na linha correspondente na tabela
5. Os dados podem ser exportados em formato CSV através do botão específico

## Tela de Edição/Cadastro (Divisão de Motoristas)

### Elementos da Interface

A tela de edição/cadastro permite criar ou modificar as informações de uma divisão:

1. **Dados Básicos**
    
    
    - Campo "Código": Identificador da divisão (texto alfanumérico)
    - Campo "Nome": Nome da divisão (texto obrigatório)
2. **Parâmetros de Envio de Email**
    
    
    - Seção "Tipo do Aviso": Dropdown com tipos de avisos do sistema
    - Campo "Email destino": Campo para inserir endereço de email válido
    - Botão "Adicionar Email e Tipo Aviso": Adiciona a combinação de tipo de aviso e email à lista
    - Lista de Destinatários: Exibe os emails/tipos de avisos já cadastrados
    - Botões para remover destinatários (ícone de menos)
3. **Botões de Ação**
    
    
    - Botão "Gravar": Salva as alterações
    - Botão "Excluir": Remove a divisão (visível apenas ao editar um registro existente)
    - Botão "Voltar": Retorna à tela de listagem sem salvar

### Validações e Regras

1. **Campo Código**
    
    
    - Tipo: Texto alfanumérico
    - Validação: Nenhuma obrigatória
2. **Campo Nome**
    
    
    - Tipo: Texto
    - Validação: Campo obrigatório
3. **Campo Email destino**
    
    
    - Tipo: Texto (email)
    - Validação: Formato de email válido
4. **Tipo do Aviso**
    
    
    - Tipo: Seleção (dropdown)
    - Valores: Lista de tipos de avisos do sistema (proveniente de CONSTANTE\_TIPOS\_AVISOS\_SEM\_TODOS)
    - Exemplos incluem: Abastecimento, Abertura Capô, Aceleração Brusca, Freada Brusca, etc.
5. **Lista de Destinatários**
    
    
    - Validação: Não permite adicionar combinações duplicadas de email/tipo de aviso

## Instruções Passo a Passo

### Pesquisar Divisões

1. Acesse o menu principal e navegue até a opção "Divisões de Motoristas"
2. A tela de listagem será exibida com todas as divisões cadastradas
3. Para filtrar, digite o nome da divisão desejada no campo de filtro "Nome"
4. Clique no botão de pesquisa (ícone de lupa)
5. Os resultados filtrados serão exibidos na tabela

### Criar Nova Divisão

1. Na tela de listagem, clique no botão "Novo" (ícone de adição)
2. Preencha o campo "Código" com um identificador para a divisão
3. Preencha o campo "Nome" com o nome da divisão (obrigatório)
4. Para adicionar um email de notificação: 
    - Selecione um tipo de aviso no dropdown "Tipo do Aviso"
    - Digite um endereço de email válido no campo "Email destino"
    - Clique no botão "Adicionar Email e Tipo Aviso"
    - O email será adicionado à lista abaixo
5. Repita o passo 4 para adicionar mais emails, se necessário
6. Clique no botão "Gravar" para salvar a nova divisão
7. O sistema retornará à tela de listagem mostrando a divisão criada

### Editar Divisão Existente

1. Na tela de listagem, clique na linha da divisão que deseja editar
2. A tela de edição será aberta com os dados da divisão selecionada
3. Modifique os campos desejados (Código, Nome)
4. Para adicionar novos emails de notificação, siga o mesmo processo de criação
5. Para remover um email, clique no botão de remoção (ícone de menos) ao lado da entrada na lista
6. Clique em "Gravar" para salvar as alterações
7. O sistema retornará à tela de listagem

### Excluir Divisão

1. Na tela de listagem, clique na linha da divisão que deseja excluir
2. Na tela de edição, clique no botão "Excluir"
3. Confirme a exclusão quando solicitado
4. O sistema retornará à tela de listagem sem a divisão excluída

### Exportar Dados para CSV

1. Na tela de listagem, utilize os filtros se desejar exportar um subconjunto de dados
2. Clique no botão "Exportar para CSV" (ícone de salvar)
3. O arquivo será baixado com os dados da tabela no formato CSV

## Lógica de Funcionamento e Regras de Negócio

A tela de listagem realiza uma chamada ao servidor para buscar as divisões cadastradas. O sistema:

1. Envia os parâmetros de filtro ao servidor (nome da divisão, se fornecido)
2. Recebe e exibe os dados na tabela com paginação automática
3. Permite navegação entre as páginas de resultados

Na tela de edição/cadastro, o sistema:

1. Carrega os dados da divisão selecionada, se for uma edição
2. Permite adicionar combinações de tipos de avisos e emails
3. Valida os dados antes de enviar ao servidor: 
    - Nome é obrigatório
    - Email deve estar em formato válido
    - Não permite duplicação de combinação email/tipo aviso
4. Ao gravar, envia todos os dados ao servidor, incluindo a lista de destinatários
5. Se a operação for bem-sucedida, retorna à tela de listagem

O módulo integra-se com outros componentes do sistema que enviam notificações aos emails cadastrados quando ocorrem eventos do tipo especificado.

## Perguntas Frequentes

### O que é uma Divisão de Motoristas?

Uma Divisão de Motoristas é uma unidade organizacional que agrupa motoristas conforme critérios específicos da empresa, como departamento, região geográfica ou tipo de operação.

### Qual é o propósito de configurar emails para tipos de avisos?

Esta configuração permite que notificações específicas relacionadas a eventos dos veículos (como frenagens bruscas, abastecimentos, etc.) sejam enviadas automaticamente aos responsáveis adequados dentro da organização.

### Posso cadastrar o mesmo email para diferentes tipos de avisos?

Sim, é possível cadastrar o mesmo email para receber notificações de diferentes tipos de avisos, mas cada combinação email/tipo aviso deve ser adicionada separadamente.

### É possível enviar uma notificação para múltiplos emails quando ocorre um tipo específico de aviso?

Sim, basta adicionar múltiplos destinatários com o mesmo tipo de aviso mas diferentes endereços de email.

### O que acontece se eu excluir uma divisão que possui motoristas associados?

O sistema pode ter restrições que impedem a exclusão de divisões com motoristas vinculados. É recomendável verificar e reassociar os motoristas antes da exclusão.

### Como posso ver quais motoristas estão associados a uma divisão específica?

Esta funcionalidade normalmente estaria disponível no módulo de cadastro de motoristas, onde você poderia filtrar motoristas por divisão.

### Posso importar uma lista de divisões de motoristas em massa?

A interface atual não possui esta funcionalidade, mas a exportação para CSV pode ajudar a preparar dados para importação através de outras ferramentas administrativas do sistema.

### É necessário configurar emails para todos os tipos de avisos para cada divisão?

Não, você pode configurar apenas os tipos de avisos relevantes para cada divisão. Não há obrigatoriedade de configurar todos os tipos.

# Cor Localidade

## Introdução

A funcionalidade "Cores por Localidade" é uma funcionalidade do sistema de gerenciamento de frota que permite associar cores específicas a diferentes localidades. Esta ferramenta é particularmente útil para visualização rápida em mapas e relatórios, possibilitando identificar instantaneamente a localidade de um veículo ou evento através de um código visual de cores. Para acessar a opção utilize o menu CONFIGURAÇÕES e a opção COR LOCALIDADE.

## Visão Geral

Este módulo consiste em duas telas principais:

1. **Tela de Pesquisa**: Onde é possível visualizar todas as associações de localidades e cores existentes, além de filtrar, adicionar, editar e exportar registros.
2. **Tela de Edição**: Onde é possível criar novas associações ou modificar associações existentes.

## Tela de Pesquisa de Cores por Localidade

### Descrição da Interface

A tela de pesquisa apresenta uma interface organizada e intuitiva para gerenciar as cores associadas a diferentes localidades. Na parte superior, há um cabeçalho com o título "Cores Localidade". Logo abaixo, encontra-se um painel de filtros retrátil que permite restringir os resultados exibidos. A parte principal da tela é ocupada por uma tabela que lista todas as localidades com suas respectivas cores.

### Elementos da Interface

#### Painel de Filtros

- **Campo "Nome da Localidade"**: Campo de texto livre para filtrar localidades pelo nome.
- **Botão de Pesquisa**: Ícone de lupa que executa a busca com os filtros aplicados.
- **Botão de Limpar Filtros**: Ícone de arquivo que reseta todos os filtros aplicados.
- **Botão Novo**: Ícone de adição que redireciona para a tela de criação de um novo registro.
- **Botão Exportar para CSV**: Ícone de salvamento que exporta os dados da tabela para um arquivo CSV.

#### Tabela de Resultados

- **Coluna "NOME"**: Exibe o nome da localidade.
- **Coluna "COR"**: Exibe a cor associada à localidade como um bloco colorido.

#### Paginação

- **Indicador de Registros**: Mostra a contagem de registros exibidos e o total.
- **Controles de Paginação**: Permite navegar entre as páginas de resultados.

### Operações Principais

#### Como Filtrar Localidades

1. Clique no campo "Nome da Localidade" no painel de filtros.
2. Digite o nome ou parte do nome da localidade desejada.
3. Clique no botão de pesquisa (ícone de lupa).
4. A tabela atualizará mostrando apenas os registros que correspondem ao filtro aplicado.

#### Como Limpar Filtros

1. Clique no botão de limpar filtros (ícone de arquivo).
2. Todos os campos de filtro serão resetados para seus valores padrão.
3. A tabela exibirá novamente todos os registros disponíveis.

#### Como Adicionar Nova Localidade

1. Clique no botão de adicionar (ícone de adição).
2. O sistema redirecionará para a tela de edição para criar um novo registro.

#### Como Editar Localidade Existente

1. Localize o registro desejado na tabela.
2. Clique em qualquer parte da linha do registro.
3. O sistema redirecionará para a tela de edição com os dados do registro selecionado.

#### Como Exportar Dados para CSV

1. Configure os filtros desejados para exibir apenas os registros de interesse (opcional).
2. Clique no botão de exportar (ícone de salvamento).
3. Um arquivo CSV chamado "CorLocalidade.csv" será gerado e baixado automaticamente.
4. O arquivo conterá todos os registros exibidos na tabela, com os valores separados por ponto e vírgula (;).

## Tela de Edição de Cores por Localidade

### Descrição da Interface

A tela de edição permite criar novos registros ou modificar registros existentes de associação entre localidades e cores. Ela apresenta um formulário simples com campos para o nome da localidade e seleção da cor correspondente, além de botões para executar ações.

### Elementos da Interface

#### Formulário de Edição

- **Campo "Nome da Localidade"**: Campo de texto para inserir o nome da localidade.
- **Seletor de Cores**: Interface visual que permite selecionar uma cor específica do espectro de cores disponível.
- **Botão "Gravar"**: Salva as alterações realizadas no formulário.
- **Botão "Excluir"**: Remove o registro atual (visível apenas ao editar um registro existente).
- **Botão "Voltar"**: Retorna à tela de pesquisa sem salvar alterações.

### Validações do Formulário

- O campo "Nome da Localidade" é obrigatório e não pode estar em branco.
- Uma cor deve ser selecionada antes de salvar o registro.
- O sistema verifica se o usuário tem permissão para salvar ou excluir registros.

### Operações Principais

#### Como Adicionar Nova Localidade e Cor

1. Na tela de edição de um novo registro, digite o nome da localidade no campo "Nome da Localidade".
2. Clique no seletor de cores para abrir a paleta.
3. Selecione a cor desejada.
4. Clique no botão "Gravar" para salvar o novo registro.
5. O sistema retornará automaticamente para a tela de pesquisa após o salvamento.

#### Como Editar uma Localidade Existente

1. Na tela de edição de um registro existente, modifique o nome da localidade conforme necessário.
2. Clique no seletor de cores para alterar a cor associada, se desejado.
3. Clique no botão "Gravar" para salvar as alterações.
4. O sistema retornará automaticamente para a tela de pesquisa após o salvamento.

#### Como Excluir uma Localidade

1. Na tela de edição de um registro existente, clique no botão "Excluir".
2. Confirme a ação se solicitado.
3. O registro será removido e o sistema retornará para a tela de pesquisa.

#### Como Retornar sem Salvar

1. Clique no botão "Voltar" para retornar à tela de pesquisa sem salvar alterações.

## Regras de Negócio

### Permissões e Restrições

- Apenas usuários com permissão adequada podem gravar ou excluir registros.
- Usuários com capacidade de "master" têm acesso completo às operações de gravação e exclusão.
- Usuários em um grupo com permissão para alteração também podem gravar e excluir.
- Todos os usuários podem visualizar os registros, independentemente das permissões.

### Persistência de Dados

- As cores são armazenadas tanto em formato hexadecimal (por exemplo, "#FF0000" para vermelho) quanto em formato numérico para compatibilidade com diversos componentes do sistema.
- Ao salvar, o sistema converte automaticamente o código hexadecimal para o valor numérico correspondente.

### Consulta e Filtragem

- A pesquisa por nome de localidade é case-insensitive (não diferencia maiúsculas de minúsculas).
- Os resultados são exibidos em ordem alfabética crescente por nome de localidade.

## Perguntas Frequentes

### Por que associar cores a localidades?

As cores associadas às localidades são utilizadas em mapas, gráficos e relatórios do sistema para facilitar a identificação visual de veículos ou eventos por região geográfica. Isso proporciona uma maneira rápida e intuitiva de analisar a distribuição da frota.

### Posso utilizar a mesma cor para diferentes localidades?

Sim, embora não seja recomendado para evitar confusão na identificação visual. O sistema não impõe restrições técnicas sobre a reutilização de cores, mas para melhor usabilidade, é aconselhável atribuir cores distintas a cada localidade.

### Como as cores são exibidas em outros módulos do sistema?

As cores definidas neste módulo são utilizadas automaticamente em mapas interativos, relatórios gráficos e outras visualizações que apresentam dados organizados por localidade.

### Quais formatos de cor são suportados?

O sistema trabalha com cores em formato hexadecimal (por exemplo, #FF0000 para vermelho). O seletor de cores permite escolher visualmente a cor desejada sem necessidade de conhecer os códigos hexadecimais.

### Posso importar uma lista de localidades e cores?

Atualmente, o sistema não oferece uma funcionalidade direta para importação em massa. Cada associação de localidade e cor precisa ser criada individualmente através da interface.

### O que acontece com as referências a uma localidade quando ela é excluída?

Quando uma localidade é excluída deste módulo, ela não será mais associada à cor correspondente em qualquer visualização do sistema. É importante verificar se a localidade não está sendo utilizada em outras partes do sistema antes de excluí-la.

### Como posso ver todas as localidades cadastradas de uma vez?

Na tela de pesquisa, deixe o campo de filtro em branco e clique no botão de pesquisa. O sistema exibirá todas as associações de localidades e cores cadastradas, sujeitas à paginação se houver muitos registros.

# Mensagens de Teclado

## Visão Geral

O funcionalidade de Mensagens de Teclado é um módulo dentro da plataforma de gerenciamento de frota da Concept Rastreamento. Este sistema permite a comunicação bidirecional entre a central de controle e os motoristas através de dispositivos de teclado instalados nos veículos. A plataforma possibilita o envio, recebimento, auditoria e geração de contra-senhas para diversos tipos de mensagens operacionais. Para acessar a opção utilize o menu CONFIGURAÇÕES e a opção MENSAGENS DE TECLADO.

## Módulos Principais

O sistema é composto por quatro módulos principais:

1. **Pesquisa de Mensagens** - Visualização e gerenciamento das mensagens trocadas
2. **Envio de Mensagens** - Interface para enviar novas mensagens aos motoristas
3. **Edição de Mensagens** - Formulário para editar ou criar registros de mensagens com auditoria
4. **Auditoria de Mensagens** - Visualização do histórico de alterações e exclusões
5. **Gerador de Contra-Senha** - Ferramenta para gerar senhas de segurança

## Descrição Detalhada das Interfaces

### 1. Pesquisa de Mensagens (Mensagens de Teclados)

Esta tela permite a visualização e filtro de todas as mensagens trocadas entre a central e os veículos.

#### Elementos da Interface

**Seção de Filtros:**

- **Veículo**: Campo de seleção (dropdown) - Permite escolher um veículo específico da frota
- **Motorista**: Campo de seleção (dropdown) - Permite escolher um motorista cadastrado
- **Status de Exibição**: Campo de seleção com as opções "Ativas", "Inativas" e "Todas"
- **Período**: Dois campos de data com formato DD-MM-YYYY para definir o intervalo de busca

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

- **Pesquisar** (ícone de lupa): Executa a pesquisa com os filtros aplicados
- **Novo** (ícone de adição): Abre o formulário para criar uma nova mensagem
- **Enviar mensagem para o teclado** (ícone de envio): Acessa a tela de envio de mensagens
- **Auditoria** (ícone de prancheta): Acessa os registros de auditoria
- **Gerar contra-senha** (ícone de cadeado): Acessa a ferramenta de geração de contra-senhas
- **Exportar CSV** (ícone de disco): Exporta os dados exibidos para um arquivo CSV

**Tabela de Resultados:**

- Colunas: #, Veículo, Origem, Data/Hora, Código, Mensagem, Localização, Status, Excluído?
- Cada linha representa uma mensagem trocada no sistema
- Clicando em uma linha, o usuário é redirecionado para a tela de edição daquela mensagem
- Indicador do total de registros exibidos na parte inferior

### 2. Envio de Mensagens (Enviar Mensagem de Teclado)

Esta tela permite o envio de novas mensagens para os dispositivos de teclado dos veículos.

#### Elementos da Interface

**Formulário de Envio:**

- **Veículo**: Campo de seleção (dropdown) - Obrigatório
- **Tipo**: Campo de seleção (dropdown) com duas opções: 
    - **Texto**: Para enviar uma mensagem de texto livre
    - **Aviso de Limite de Direção**: Para enviar alertas relacionados ao tempo de direção
- **Mensagem**: Campo de texto multiliinha (até 400 caracteres) - Exibido apenas quando o tipo "Texto" está selecionado
- **Tempo de Alerta Descanso**: Campo de seleção (dropdown) - Exibido apenas quando o tipo "Aviso de Limite de Direção" está selecionado, com opções de tempo (1 hora a 8 horas e 30 minutos)

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

- **Gravar**: Salva e envia a mensagem
- **Voltar**: Retorna à tela de pesquisa

### 3. Edição de Mensagens (Mensagem de Teclado)

Esta tela permite a visualização, edição e exclusão de mensagens existentes, além de mostrar o histórico de auditoria.

#### Elementos da Interface

**Formulário de Edição:**

- **Veículo**: Campo de seleção (dropdown) - Obrigatório
- **Motorista**: Campo de seleção (dropdown) - Obrigatório
- **Tipo**: Campo de seleção (dropdown) - Códigos de mensagem específicos do tipo de teclado instalado no veículo selecionado
- **Data/Hora**: Campo de data e hora no formato DD-MM-YYYY HH:MM:SS - Obrigatório
- **Localização**: Campo de texto - Obrigatório
- **Justificativa**: Campo de texto multilinha (até 500 caracteres) - Obrigatório

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

- **Gravar**: Salva as alterações (visível apenas se o registro não estiver excluído logicamente)
- **Excluir**: Marca o registro como excluído logicamente (visível apenas se o registro existir e não estiver excluído)
- **Voltar**: Retorna à tela de pesquisa

**Tabela de Auditoria:**

- Exibe um histórico das alterações feitas no registro
- Colunas: Data/Hora, Original, Alteração, IP, Usuário
- Mostra quem alterou, quando, de qual endereço IP e quais alterações foram feitas

### 4. Auditoria de Mensagens (Registros de Auditoria)

Esta tela permite a visualização de todas as alterações realizadas nas mensagens de teclado.

#### Elementos da Interface

**Seção de Filtros:**

- **Veículo**: Campo de seleção (dropdown)
- **Motorista**: Campo de busca com botão de pesquisa
- **Período**: Dois campos de data com formato DD-MM-YYYY para definir o intervalo de busca

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

- **Pesquisar** (ícone de lupa): Executa a pesquisa com os filtros aplicados
- **Exportar CSV** (ícone de disco): Exporta os dados exibidos para um arquivo CSV
- **Voltar** (ícone de seta para esquerda): Retorna à tela principal

**Tabela de Resultados:**

- Colunas: #, Veículo, Motorista, Data/Hora, Original, Alteração, IP, Usuário, Justificativa
- Cada linha representa uma alteração feita no sistema
- Clicando no botão "+" de uma linha, abre-se um popup com detalhes da alteração
- Paginação na parte inferior da tela

**Popup de Detalhes:**

- **Dados Alterados**: Campo de texto mostrando o conteúdo após a alteração
- **Dados Originais**: Campo de texto mostrando o conteúdo antes da alteração
- **Justificativa**: Campo de texto mostrando a justificativa da alteração
- Botão **Fechar**: Fecha o popup

### 5. Gerador de Contra-Senha (Gerador Contra Senha)

Esta tela permite a geração de contra-senhas para operações de segurança no sistema.

#### Elementos da Interface

**Formulário de Geração:**

- **Versão**: Campo de seleção (dropdown) com opções "Versão 1" e "Versão 2"
- **Senha**: Campo de texto para entrada da senha original
- **Contra-Senha**: Campo de texto (somente leitura) que exibe a contra-senha gerada

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

- **Gerar**: Gera a contra-senha baseada na senha fornecida
- **Voltar**: Retorna à tela de pesquisa

## Fluxos de Trabalho

### 1. Visualização e Filtragem de Mensagens

1. Acesse a tela "Mensagens de Teclados"
2. Selecione os filtros desejados (veículo, motorista, período e/ou status)
3. Clique no botão de pesquisa (ícone de lupa)
4. Os resultados serão exibidos na tabela abaixo
5. Para ver detalhes ou editar uma mensagem, clique em sua linha na tabela

### 2. Envio de Nova Mensagem

1. Na tela "Mensagens de Teclados", clique no botão "Enviar mensagem para o teclado"
2. Selecione o veículo de destino
3. Escolha o tipo de mensagem (Texto ou Aviso de Limite de Direção)
4. Se for do tipo "Texto", preencha a mensagem (até 400 caracteres)
5. Se for do tipo "Aviso de Limite de Direção", selecione o tempo de alerta
6. Clique em "Gravar" para enviar a mensagem

### 3. Criação Manual de Registro de Mensagem

1. Na tela "Mensagens de Teclados", clique no botão "Novo"
2. Preencha todos os campos obrigatórios (Veículo, Motorista, Tipo, Data/Hora, Localização, Justificativa)
3. Clique em "Gravar" para salvar o registro

### 4. Edição de Mensagem Existente

1. Na tela "Mensagens de Teclados", localize a mensagem desejada
2. Clique na linha correspondente para abrir a tela de edição
3. Faça as alterações necessárias nos campos
4. Forneça uma justificativa para a alteração
5. Clique em "Gravar" para salvar as mudanças

### 5. Exclusão de Mensagem

1. Na tela "Mensagens de Teclados", localize a mensagem desejada
2. Clique na linha correspondente para abrir a tela de edição
3. Clique no botão "Excluir"
4. Confirme a exclusão na caixa de diálogo exibida

### 6. Visualização de Auditoria

1. Na tela "Mensagens de Teclados", clique no botão "Auditoria"
2. Selecione os filtros desejados (veículo, motorista e/ou período)
3. Clique no botão de pesquisa
4. Os resultados serão exibidos na tabela abaixo
5. Para ver detalhes de uma alteração, clique no botão "+" da linha correspondente

### 7. Geração de Contra-Senha

1. Na tela "Mensagens de Teclados", clique no botão "Gerar contra-senha"
2. Selecione a versão desejada
3. Digite a senha original no campo correspondente
4. Clique em "Gerar"
5. A contra-senha será exibida no campo "Contra-Senha"

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

### Envio de Mensagens

1. **Validação de Campos Obrigatórios**:
    
    
    - Veículo: Deve ser selecionado um veículo válido
    - Para tipo "Texto": A mensagem não pode estar vazia
    - Para tipo "Aviso de Limite de Direção": Deve ser selecionado um tempo válido
2. **Seleção de Tipo de Mensagem**:
    
    
    - O tipo de mensagem disponível depende do modelo de teclado instalado no veículo
    - Para teclados KNOV KN02 (padrão ou em Hexa): Códigos de mensagem KNOV
    - Para teclados GetScale: Códigos de mensagem GetScale
    - Para teclados SGBRAS: Sem códigos específicos predefinidos

### Edição de Mensagens

1. **Validação de Campos Obrigatórios**:
    
    
    - Veículo: Deve ser selecionado um veículo válido
    - Motorista: Deve ser selecionado um motorista válido
    - Tipo de Mensagem: Deve ser selecionado um código válido
    - Data/Hora: Deve ser uma data e hora válidas
    - Localização: Não pode estar vazio
    - Justificativa: Obrigatória para qualquer alteração ou criação manual
2. **Controle de Permissões**:
    
    
    - Apenas usuários com permissão de gravação ou acesso master podem alterar ou excluir registros
    - Todas as alterações são registradas no sistema de auditoria

### Auditoria

1. **Registro de Alterações**:
    
    
    - Todas as alterações em mensagens são registradas (dados originais, dados alterados)
    - São armazenados: data/hora, usuário, IP, veículo, motorista e justificativa da alteração
2. **Filtros de Auditoria**:
    
    
    - É possível filtrar por veículo, motorista e período
    - O período padrão é do primeiro ao último dia do mês corrente

### Geração de Contra-Senha

1. **Algoritmos de Geração**: 
    - Versão 1: Utiliza as chaves "10973" e "12452" para gerar a contra-senha
    - Versão 2: Utiliza a chave "20252" para gerar a contra-senha
    - A contra-senha é gerada a partir da senha original fornecida

## Perguntas Frequentes (FAQ)

### Geral

1. **O que é o Sistema de Mensagens de Teclado?**
    
    
    - É um módulo que permite a comunicação entre a central de controle e os motoristas através de dispositivos de teclado instalados nos veículos.
2. **Quais tipos de mensagens posso enviar?**
    
    
    - Depende do modelo de teclado instalado no veículo. Geralmente, há dois tipos principais: mensagens de texto livre e avisos de limite de direção.

### Envio de Mensagens

3. **Por que não consigo selecionar um tipo de mensagem para um veículo?**
    
    
    - Os tipos de mensagem disponíveis dependem do modelo de teclado instalado no veículo. Se não houver tipos disponíveis, verifique se o veículo possui um teclado compatível configurado.
4. **Qual é o limite de caracteres para uma mensagem de texto?**
    
    
    - O limite é de 400 caracteres para mensagens de texto.
5. **O que é um "Aviso de Limite de Direção"?**
    
    
    - É um alerta enviado ao motorista para indicar o tempo máximo que ele deve dirigir antes de fazer uma pausa, conforme regulamentações de segurança.

### Auditoria

6. **Por que preciso fornecer uma justificativa ao alterar uma mensagem?**
    
    
    - A justificativa é obrigatória para fins de auditoria e rastreabilidade, permitindo entender o motivo de cada alteração no sistema.
7. **Quem pode ver os registros de auditoria?**
    
    
    - Usuários com permissões adequadas podem acessar a tela de auditoria para visualizar o histórico de alterações.
8. **Os registros excluídos podem ser recuperados?**
    
    
    - Registros marcados como excluídos logicamente ainda existem no sistema e podem ser visualizados aplicando o filtro "Inativas" ou "Todas".

### Contra-Senha

9. **O que é a função de geração de contra-senha?**
    
    
    - É uma ferramenta de segurança que gera uma senha secundária baseada em uma senha original, utilizada para operações que exigem maior nível de segurança.
10. **Qual a diferença entre Versão 1 e Versão 2 para geração de contra-senha?**
    
    
    - São algoritmos diferentes de geração, onde a Versão 1 utiliza duas chaves e a Versão 2 utiliza uma chave mais recente, possivelmente com maior segurança.

## Considerações Técnicas Adicionais

### Armazenamento e Processamento de Datas

- Datas são armazenadas internamente como timestamps (milissegundos desde 1970-01-01)
- Para exibição, as datas são convertidas para o formato local (DD-MM-YYYY)
- Para filtros de período, a data de fim é ajustada para incluir todo o dia (até 23:59:59)

### Integração com outros Módulos

- O sistema integra-se com o cadastro de veículos e motoristas
- As informações de modelos de teclado são obtidas do cadastro de veículos

### Segurança e Auditoria

- Todas as operações são registradas com informações de usuário, data/hora e IP
- A exclusão lógica preserva o histórico de mensagens sem remover dados do sistema
- As justificativas são obrigatórias para garantir rastreabilidade das alterações

# Categorias de Avisos

## Visão Geral

O funcionalidade de Categorias de Avisos é uma funcionalidade essencial para gerenciar classificações de infrações e avisos no sistema de monitoramento de frota. Esta interface permite aos usuários criar, editar, visualizar e excluir categorias que serão posteriormente utilizadas para classificar eventos e ocorrências relacionadas aos veículos e motoristas. Para acessar a opção utilize o menu CONFIGURAÇÕES e a opção CATEGORIAS DE AVISOS.

## Elementos da Interface

### Tela de Pesquisa de Categorias de Avisos

A tela de pesquisa serve como ponto inicial para a gestão de categorias de avisos, apresentando:

1. **Seção de Filtros**
    
    
    - **Campo Nome**: Entrada de texto para filtrar categorias pelo nome
    - **Combobox Tipo**: Seleção entre opções de tipo (Leve, Média, Grave, Gravíssima)
    - **Botões de Ação**: 
        - Botão Pesquisar (ícone de lupa): Executa a pesquisa com os filtros aplicados
        - Botão Limpar Filtros (ícone de documento): Reinicia os campos de filtro
        - Botão Novo (ícone de adição): Redireciona para a tela de cadastro
        - Botão Exportar para CSV (ícone de salvar): Exporta os resultados para arquivo CSV
2. **Tabela de Resultados**
    
    
    - **Colunas**: 
        - NOME: Nome da categoria de aviso
        - TIPO: Classificação da categoria (LEVE, MEDIA, GRAVE, GRAVISSIMA)
    - **Paginação**: Exibe o número de registros e permite navegação entre páginas
    - **Seleção de linhas**: Permite selecionar um registro para edição

### Tela de Edição/Cadastro de Categoria de Aviso

Esta tela permite criar novos registros ou editar existentes, contendo:

1. **Formulário Principal**
    
    
    - **Campo Nome**: Entrada de texto obrigatória para o nome da categoria
    - **Combobox Tipo**: Seleção obrigatória entre: 
        - Leve (LEVE)
        - Média (MEDIA)
        - Grave (GRAVE)
        - Gravíssima (GRAVISSIMA)
2. **Botões de Ação**
    
    
    - **Gravar**: Salva as alterações no registro
    - **Excluir**: Remove o registro (visível apenas ao editar um registro existente)
    - **Voltar**: Retorna à tela de pesquisa
3. **Área de Exibição de Erros**: Apresenta mensagens de validação quando o formulário contém erros

## Fluxo de Trabalho

O sistema segue um fluxo de trabalho padrão para gerenciamento de dados:

1. Na tela de pesquisa, o usuário pode filtrar as categorias existentes por nome e/ou tipo
2. Os resultados são apresentados na tabela, podendo ser exportados para CSV
3. Para criar um novo registro, o usuário clica no botão "Novo"
4. Para editar um registro existente, o usuário seleciona a linha correspondente na tabela
5. Na tela de edição/cadastro, o usuário preenche ou altera os dados da categoria
6. Após validação, os dados são salvos no sistema
7. O usuário pode retornar à tela de pesquisa após completar as operações

## Validações

- **Campo Nome**: É obrigatório e não pode estar em branco
- **Campo Tipo**: É obrigatório selecionar uma das opções disponíveis
- Todas as validações são verificadas antes de gravar o registro
- Mensagens de erro específicas são exibidas quando as validações falham

## Permissões

O sistema verifica as permissões do usuário para determinar:

- Se o usuário pode alterar registros (baseado em permissões de grupo ou acesso master)
- Se o usuário tem capacidade master para realizar operações mesmo sem permissões específicas

## Instruções Passo a Passo

### Como Pesquisar Categorias de Avisos

1. Acesse a tela de pesquisa de Categorias de Avisos
2. (Opcional) Digite um termo no campo Nome para filtrar por texto
3. (Opcional) Selecione um Tipo no combobox para filtrar por classificação
4. Clique no botão de pesquisa (ícone de lupa)
5. Os resultados serão exibidos na tabela abaixo

### Como Criar uma Nova Categoria de Aviso

1. Na tela de pesquisa, clique no botão Novo (ícone de adição)
2. Na tela de cadastro, preencha o campo Nome com a identificação da categoria
3. Selecione o Tipo da categoria no combobox (Leve, Média, Grave, Gravíssima)
4. Clique no botão Gravar para salvar o novo registro
5. Caso haja erros de validação, corrija-os conforme as mensagens exibidas

### Como Editar uma Categoria de Aviso

1. Na tela de pesquisa, localize o registro desejado (utilize os filtros se necessário)
2. Clique na linha correspondente ao registro que deseja editar
3. Na tela de edição, altere os campos desejados
4. Clique no botão Gravar para salvar as alterações
5. Caso haja erros de validação, corrija-os conforme as mensagens exibidas

### Como Excluir uma Categoria de Aviso

1. Na tela de pesquisa, localize o registro desejado
2. Clique na linha correspondente ao registro que deseja excluir
3. Na tela de edição, clique no botão Excluir
4. Confirme a exclusão quando solicitado

### Como Exportar os Dados para CSV

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

## Perguntas Frequentes

**P: Qual é a finalidade da Categoria de Avisos no sistema?**  
R: As Categorias de Avisos são utilizadas para classificar infrações e eventos registrados durante o monitoramento de veículos e motoristas, permitindo a priorização e tratamento adequado de acordo com a gravidade.

**P: Como as categorias são utilizadas em outras partes do sistema?**  
R: Estas categorias são associadas a eventos de monitoramento, como excessos de velocidade, infrações de trânsito e comportamentos de direção, permitindo a classificação e priorização conforme a severidade configurada.

**P: É possível ter duas categorias com o mesmo nome?**  
R: O sistema não apresenta validação explícita para nomes duplicados na interface, mas é recomendável utilizar nomes únicos para evitar confusão.

**P: Qual a diferença entre os tipos de categoria (Leve, Média, Grave, Gravíssima)?**  
R: Esta classificação define a severidade das ocorrências e pode influenciar em alertas, notificações e relatórios gerados pelo sistema, priorizando eventos mais graves.

**P: Por que não consigo excluir uma categoria?**  
R: Se o botão de exclusão está desabilitado, pode ser devido a:

1. Falta de permissões adequadas no sistema
2. A categoria está sendo referenciada por outros registros no sistema
3. Você está criando um novo registro que ainda não foi salvo

**P: Como posso ver quais avisos estão associados a uma categoria específica?**  
R: Esta funcionalidade específica não está disponível nesta tela. Você precisaria consultar relatórios ou outras telas do sistema que mostram os eventos e suas categorias.

**P: As alterações nas categorias afetam eventos históricos?**  
R: Geralmente, alterações na descrição ou tipo de uma categoria afetam tanto novos eventos quanto registros históricos que utilizem a categoria modificada.

## Regras de Negócio

1. As categorias de avisos são classificadas em quatro níveis de severidade: Leve, Média, Grave e Gravíssima
2. Cada categoria deve ter um nome descritivo que identifique claramente o tipo de ocorrência
3. O sistema verifica permissões do usuário antes de permitir alterações nos registros
4. Usuários com acesso master ou capacidade master podem realizar todas as operações independentemente das permissões específicas
5. A exclusão de categorias pode ser impedida caso existam eventos relacionados no sistema
6. As categorias cadastradas ficam disponíveis para uso em todo o sistema de monitoramento

Este documento fornece uma visão completa da funcionalidade de Categorias de Avisos, suas operações principais e fluxos de trabalho, ajudando os usuários a utilizar eficientemente esta parte do sistema de gerenciamento de frota.

# Cadastro de Motoristas

## Descrição Geral

O funcionalidade de cadastro e motoristas é um módulo da plataforma CONCEPT RASTREAMENTO que permite o cadastro, edição, controle e monitoramento completo das informações de motoristas. O sistema oferece funcionalidades para armazenar e gerenciar dados pessoais, documentação, permissões de acesso, histórico de atividades, documentos anexados e registros de folha de ponto, tudo integrado em uma única plataforma.

A interface foi desenvolvida para atender às necessidades de empresas que precisam gerenciar seus motoristas de forma eficiente, mantendo informações atualizadas sobre documentação, permissões de acesso e ocorrências trabalhistas. Para acessar a opção utilize o menu CONFIGURAÇÕES e a opção CADASTRO DE MOTORISTAS.

## Elementos da Interface

### Tela Principal de Listagem de Motoristas

#### Seção de Filtros

- **Nome**: Campo texto para filtrar motoristas pelo nome
- **Chaveiro**: Campo texto para filtrar pelo código do dispositivo de identificação
- **Validade CNH**: Dois seletores de data para filtrar por período
- **Divisão de Motoristas**: Seletor dropdown com as divisões cadastradas
- **Somente Ativos**: Caixa de seleção para exibir apenas motoristas ativos
- **CNH**: Campo texto para filtrar pelo número da CNH
- **Matrícula**: Campo texto para filtrar pela matrícula

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

- **Pesquisar**: Aplica os filtros configurados
- **Limpar Filtros**: Remove todos os filtros aplicados
- **Novo**: Abre o formulário para cadastro de novo motorista
- **Exportar para CSV**: Exporta a lista de motoristas para arquivo CSV
- **Importar CSV**: Abre o modal para importação de motoristas em lote
- **Arquivamento**: Exibe o número de motoristas selecionados e abre o modal de ações em lote

#### Tabela de Resultados

- **Colunas**: Numeração, botões de ação (adicionar/editar), divisão, nome, CPF, CNH, matrícula, telefones, chaveiro/cartão, validade CNH, ativação, observações
- **Funcionalidades**: Ordenação por colunas, redimensionamento de colunas, seleção de registros, os motoristas inativos terão a cor vermelha. Se estiver ativo terá a cor preta.

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

O formulário de cadastro e edição é organizado em 5 abas:

#### Aba DADOS

- **Divisão de Motoristas**: Campo dropdown obrigatório
- **Ativo**: Caixa de seleção para status do motorista (ativo por padrão)
- **Nome**: Campo texto obrigatório
- **Matrícula**: Campo texto opcional
- **CPF**: Campo texto com validação
- **RG**: Campo texto opcional
- **CNH**: Campo texto opcional
- **Categoria CNH**: Campo texto opcional para categorias (A, B, C, D, E)
- **Validade CNH**: Seletor de data
- **Validade Exame Toxicológico**: Seletor de data
- **Validade MOPP**: Seletor de data para certificado de Movimentação e Operação de Produtos Perigosos
- **Nome Customizado**: Campo para eventos personalizados
- **Validade**: Data associada ao evento personalizado
- **Chaveiro/Cartão**: Código do dispositivo de identificação (chaveiro ibutton ou cartão rfid ). Botões para converter o código em hexadecimal e botão para converter o código em decimal.
- **Data/Hora Início Uso Cartão**: Campo data/hora (obrigatório se informado o campo chaveiro)
- **Senha**: Campo texto para senha de acesso (mínimo 6 caracteres)
- **Endereços**: Campo texto multilinhas (limitado a 255 caracteres)
- **Telefones**: Campo texto multilinhas (limitado a 45 caracteres)
- **Observação**: Campo texto multilinhas (limitado a 1024 caracteres)

#### Aba ACESSO

- **Campo de Pesquisa**: Filtra a lista de acessos disponíveis
- **Acessos Disponíveis**: Lista dos grupos de acesso que podem ser atribuídos
- **Acessos Selecionados**: Lista dos grupos já atribuídos ao motorista

#### Aba HISTÓRICO

- Exibe a lista de chaveiros/cartões utilizados pelo motorista
- Colunas: Chaveiro, Data Início Uso, Criado em
- Botão para excluir registros selecionados

#### Aba ANEXOS

- Exibe documentos anexados ao cadastro do motorista
- Colunas: Arquivo, Criado às
- Área para upload de novos documentos
- Botões para visualizar e excluir anexos

#### Aba FOLHA DE PONTO

- Formulário para registro de ocorrências (lado esquerdo): 
    - **Tipo**: Dropdown com opções predefinidas (DSR-Folga, DC-Atestado Médico, COM-Compensação Banco de Horas, etc.)
    - **Data** ou **Período**: Campos de data única ou intervalo, dependendo da seleção
    - **Horas**: Exibido apenas para tipos específicos (Atestado Médico e Compensação Banco de Horas)
    - **Observação**: Campo texto multilinhas
    - Botões para Novo, Gravar e Excluir ocorrências
- Tabela de ocorrências registradas (lado direito)

### Modal de Importação CSV

- Instruções sobre formato esperado do arquivo
- Botão para download do arquivo modelo
- Área para seleção e upload do arquivo CSV
- Opção PREVIEW para simular a importação sem alterar dados
- Exibição de resultados após processamento

### Modal de Seleção em Lote

- Dropdown para seleção de Divisão de Motoristas
- Listas de Acessos Disponíveis e Selecionados
- Opção para remover grupos de acesso anteriores
- Tabela com motoristas selecionados
- Botões para alterar em lote, excluir em lote e limpar seleção

## Propósito e Fluxo de Trabalho

O sistema serve para gerenciar de forma centralizada todas as informações relacionadas aos motoristas de uma frota. Os principais objetivos são:

1. **Centralizar informações**: Mantém todos os dados dos motoristas em um único local
2. **Controlar documentação**: Monitora datas de validade de documentos como CNH, exame toxicológico e certificados
3. **Gerenciar permissões**: Controla quais veículos ou recursos cada motorista pode acessar
4. **Registrar ocorrências**: Mantém histórico de folgas, férias, afastamentos e outros eventos
5. **Anexar documentos**: Armazena arquivos relacionados a cada motorista
6. **Realizar operações em lote**: Facilita a atribuição de permissões ou divisões para múltiplos motoristas

### Fluxo de trabalho típico:

1. O administrador acessa a tela de listagem de motoristas
2. Utiliza os filtros para encontrar motoristas específicos
3. Seleciona um motorista para edição ou clica em "Novo" para cadastrar
4. Preenche as informações nas diversas abas (dados pessoais, acessos, anexos, ocorrências)
5. Salva as alterações para atualizar o cadastro
6. Quando necessário, utiliza as funções de importação/exportação para gerenciamento em massa

## Instruções Passo a Passo

### Como Cadastrar um Novo Motorista

1. Na tela de listagem, clique no botão "Novo" (ícone "+")
2. Na aba "DADOS", preencha os campos obrigatórios: 
    - Selecione a Divisão de Motoristas no dropdown
    - Mantenha marcada a caixa "Ativo" (padrão para novos motoristas)
    - Digite o Nome completo do motorista
3. Complete os campos opcionais conforme disponibilidade: 
    - Matrícula, CPF (com formato válido), RG
    - CNH e Categoria CNH
    - Selecione as datas de validade para CNH, Exame Toxicológico e MOPP
4. Se o motorista utilizará chaveiro/cartão: 
    - Digite o código do Chaveiro/Cartão
    - Obrigatoriamente informe a Data/Hora de início de uso
5. Para eventos personalizados: 
    - Preencha o Nome Customizado e sua respectiva data de Validade
6. Inclua informações de contato: 
    - Endereços (até 255 caracteres)
    - Telefones (até 45 caracteres)
    - Observações gerais (até 1024 caracteres)
7. Clique no botão "Gravar" para salvar o cadastro

### Como Gerenciar Acessos

1. Na ficha do motorista, clique na aba "ACESSO"
2. Para adicionar um acesso: 
    - Localize-o na lista de Acessos Disponíveis (use o campo de pesquisa se necessário)
    - Clique no botão "+" ao lado do acesso desejado
    - O acesso será movido para a lista de Acessos Selecionados
3. Para remover um acesso: 
    - Localize-o na lista de Acessos Selecionados
    - Clique no botão "-" ao lado do acesso
    - Obs: Usuários do tipo grupo não podem remover acessos marcados como "Master"
4. Clique em "Gravar" para salvar as alterações

### Como Anexar Documentos

1. Na ficha do motorista, acesse a aba "ANEXOS"
2. Na área de upload à direita, clique em "Anexar..."
3. Selecione o arquivo a ser enviado
4. O upload será realizado automaticamente
5. O arquivo aparecerá na listagem com data e hora do upload
6. Para visualizar um documento: 
    - Selecione-o na lista
    - Clique no botão "Ver"
7. Para excluir um anexo: 
    - Selecione-o na lista
    - Clique no botão "Excluir"
    - Confirme a exclusão

### Como Registrar Ocorrências na Folha de Ponto

1. Na ficha do motorista, acesse a aba "FOLHA DE PONTO"
2. No formulário à esquerda: 
    - Selecione o Tipo de ocorrência no dropdown (ex: DSR-Folga, DC-Atestado Médico)
    - Para ocorrências por data única, preencha o campo "Data"
    - Para ocorrências por período, informe "Data Início" e "Data Fim"
    - Para tipos específicos como "Compensação Banco de Horas", informe as Horas
    - Adicione uma Observação se necessário
3. Clique em "Gravar" para registrar a ocorrência
4. Para editar uma ocorrência existente: 
    - Selecione-a na tabela à direita
    - Os dados serão carregados no formulário
    - Faça as alterações necessárias e clique em "Gravar"
5. Para criar uma nova ocorrência, clique em "Novo"
6. Para excluir uma ocorrência: 
    - Selecione-a na tabela
    - Clique no botão "Excluir"
    - Confirme a exclusão

### Como Importar Motoristas via CSV

1. Na tela de listagem, clique no botão de importação (ícone de upload)
2. Leia as instruções sobre o formato esperado: 
    - Separador ponto e vírgula (;)
    - Primeira linha como cabeçalho
    - Campos necessários: NOME, MATRICULA, CPF, RG, CNH, CATEGORIA, VALIDADE CNH, etc.
3. Para obter um modelo, clique em "Arquivo Modelo"
4. Clique em "Selecione o arquivo" e escolha seu CSV
5. Opcional: Marque a opção "PREVIEW" para simular sem alterar dados
6. Clique no botão de upload para processar o arquivo
7. Analise o resultado exibido na área de mensagens

### Como Realizar Operações em Lote

1. Na tela de listagem, selecione os motoristas desejados clicando no botão "+" em cada linha
2. Alternativamente, clique em "Adicionar todos" para selecionar toda a lista
3. Clique no ícone de arquivo (com o número de selecionados) para abrir o modal
4. No modal de operações em lote: 
    - Selecione uma Divisão de Motoristas para atribuir (opcional)
    - Adicione Grupos de Acesso conforme necessário
    - Marque "Remover os grupos acessos anteriores" se desejar substituir (não adicionar)
5. Para aplicar as alterações, clique no botão com ícone de salvar
6. Para excluir os motoristas selecionados, clique no botão com ícone de lixeira
7. Para limpar a seleção, clique no botão amarelo com ícone de limpar

## Regras de Negócio

1. **Validação de CPF**: O sistema verifica automaticamente se o CPF informado é válido.
2. **Campos obrigatórios**:
    
    
    - Nome do motorista é sempre obrigatório
    - Data de ativação é obrigatória quando um chaveiro/cartão é informado
    - Nome Customizado e Validade são interdependentes (se um for informado, o outro é obrigatório)
3. **Senha**: Quando informada, deve ter no mínimo 6 caracteres.
4. **Status padrão**: Novos motoristas são criados com status "Ativo" por padrão.
5. **Histórico de utilização**: O sistema mantém registro de todos os chaveiros/cartões utilizados, com datas de início de uso.
6. **Controle de acesso**: Acessos marcados como "Master" não podem ser removidos por usuários com perfil de grupo.
7. **Folha de ponto**:
    
    
    - Apenas tipos específicos ("Atestado Médico" e "Compensação Banco de Horas") exigem informação de horas
    - Ocorrências podem ser por data única ou por período
8. **Importação CSV**:
    
    
    - Motoristas são atualizados (não duplicados) se já existirem identificadores como chaveiro, matrícula ou nome
    - A data de ativação é obrigatória para chaveiros
9. **Controle de permissões**:
    
    
    - A capacidade de editar, gravar e excluir depende do perfil do usuário
    - Usuários "Master" têm acesso total
    - Usuários "Grupo" dependem de permissões específicas
10. **Armazenamento de anexos**:
    
    
    - Documentos são armazenados em servidor AWS S3
    - O caminho segue o padrão: `[ID_CLIENTE]/[ID_MOTORISTA]/[NOME_ARQUIVO]`

## Perguntas Frequentes

### 1. Como faço para cadastrar um motorista com chaveiro/cartão?

Para cadastrar um motorista com chaveiro/cartão, preencha o código do dispositivo no campo "Chaveiro/Cartão" na aba DADOS. É obrigatório informar a "Data/Hora Início Uso Cartão", que aparecerá automaticamente quando você preencher o código do chaveiro. Esta data é fundamental para o sistema registrar quando o motorista começou a utilizar o dispositivo de identificação.

### 2. É possível atribuir diferentes grupos de acesso ao mesmo motorista?

Sim, cada motorista pode pertencer a múltiplos grupos de acesso. Na aba "ACESSO" do cadastro do motorista, você pode adicionar quantos grupos forem necessários clicando no botão "+" ao lado de cada grupo na lista de "Acessos Disponíveis". Os grupos selecionados aparecem na lista à direita e são salvos junto com o cadastro do motorista.

### 3. Como posso monitorar motoristas com documentação prestes a vencer?

Utilize os filtros de "Validade CNH" na tela de listagem para identificar motoristas com documentos próximos do vencimento. Defina um intervalo de datas correspondente ao período que deseja verificar (por exemplo, próximos 30 dias). Adicionalmente, você pode exportar a lista completa para CSV e criar relatórios personalizados com alertas de vencimento.

### 4. Como transferir um chaveiro/cartão de um motorista para outro?

Para transferir um chaveiro/cartão, primeiro você deve desativar o chaveiro do motorista atual (removendo o código ou alterando seu status) e depois atribuí-lo ao novo motorista, informando uma nova data de ativação. O sistema manterá o histórico completo de utilização do chaveiro, permitindo rastrear quais motoristas o utilizaram e em quais períodos.

### 5. Como registrar férias ou afastamento de um motorista?

Acesse a aba "FOLHA DE PONTO" no cadastro do motorista. No formulário à esquerda, selecione o tipo apropriado (como "FER - Férias" ou "AFT - Afastamento"), defina o período informando as datas de início e fim, adicione observações se necessário e clique em "Gravar". A ocorrência aparecerá na tabela à direita e ficará registrada no histórico do motorista.

### 6. Como fazer uma alteração em vários motoristas ao mesmo tempo?

Na tela de listagem, selecione os motoristas desejados clicando no botão "+" à esquerda de cada linha, ou use "Adicionar todos". Depois, clique no ícone de arquivo que mostra o número de motoristas selecionados. No modal que se abre, você pode definir uma divisão e/ou grupos de acesso para todos os motoristas selecionados. Marque "Remover os grupos acessos anteriores" se quiser substituir os grupos existentes.

### 7. O que acontece quando importo motoristas via CSV com dados já existentes?

Se o CSV contiver motoristas com código de chaveiro, matrícula ou nome já cadastrados no sistema, esses registros serão atualizados em vez de criar duplicatas. Para testar o resultado da importação sem fazer alterações reais, utilize a opção "PREVIEW", que simula o processo e exibe o que aconteceria se a importação fosse concluída.

### 8. É possível excluir um motorista que já possui histórico?

Sim, é possível excluir um motorista mesmo que ele tenha histórico, anexos ou registros de folha de ponto. O sistema manterá a integridade referencial dos dados. No entanto, essa operação deve ser usada com cautela, pois a exclusão é permanente e poderá afetar relatórios históricos.

### 9. Por que o campo de horas aparece apenas para alguns tipos de ocorrência?

O campo de horas é específico para ocorrências que precisam de controle de tempo, como "Atestado Médico" e "Compensação Banco de Horas". Para esses tipos, o sistema precisa registrar a quantidade de horas para cálculos trabalhistas, enquanto outros tipos de ocorrência como "Férias" ou "Folga" são controlados apenas por período de início e fim.

### 10. Posso ter motoristas com o mesmo chaveiro?

Não é recomendado atribuir o mesmo chaveiro a múltiplos motoristas simultaneamente, pois isso causaria conflitos de identificação. O sistema permite transferir um chaveiro de um motorista para outro, mas deve-se primeiro desativar a atribuição anterior antes de criar uma nova, garantindo que cada chaveiro esteja ativo para apenas um motorista por vez.

---

Esta documentação foi elaborada para o sistema de gerenciamento de motoristas da plataforma CONCEPT RASTREAMENTO, descrevendo suas funcionalidades, regras de negócio e procedimentos operacionais relacionados ao cadastro e controle de motoristas.

# Agendador de Relatórios

## descrição Geral

A funcionalidade de Agendamento de Relatórios é uma ferramenta projetada para automatizar a geração e distribuição periódica de relatórios dentro de um sistema de gerenciamento de frota. Esta funcionalidade permite aos usuários configurar a geração automática de relatórios específicos, como o Histórico de Cidades, determinando sua periodicidade (diária, semanal ou mensal) e configurando os destinatários que receberão estes relatórios por e-mail. Para acessar a opção utilize o menu CONFIGURAÇÕES e a opção AGENDAMENTO DE RELATÓRIOS.

O sistema é composto por duas telas principais:

- Tela de cadastro/edição de agendamento
- Tela de listagem de agendamentos configurados

## Elementos da Interface

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

#### Seção de Cabeçalho

- **Título:** "Agendador de Relatório"
- **Subtítulo:** "Relatório: Histórico de Cidades" (O nome do relatório selecionado)

#### Seção de Configuração Básica

- **Nome:** Campo de texto para identificação do agendamento 
    - Exemplo: "Agenda Histórico de Cidades Mensal"
    - Obrigatório
    - Sem limite específico de caracteres
- **Enviar às (hh:mm):** Campo de texto com máscara para horário 
    - Formato 24h (00:00 a 23:59)
    - Exemplo: "07:12"
    - Obrigatório
    - Determina o horário que o relatório será gerado e enviado

#### Seção de Periodicidade

- **Periodicização a cada:** Conjunto de campos para definir a frequência 
    - Campo numérico para quantidade (valor mínimo 1)
    - Dropdown para seleção da unidade de tempo 
        - Opções: "Dias", "Semanas", "Mês/Meses"
    - Obrigatório

#### Seção de Dias da Semana (visível apenas quando "Semanas" está selecionado)

- **E repetir:** Conjunto de checkboxes para os dias da semana 
    - Opções: Segunda, Terça, Quarta, Quinta, Sexta, Sábado, Domingo
    - Pelo menos um dia deve ser selecionado quando periodicidade é semanal
    - No exemplo, Sexta e Sábado estão selecionados

#### Seção de Data Limite

- **Até o dia:** Campo de data 
    - Formato: DD/MM/AAAA
    - Opcional
    - Define até quando o agendamento estará ativo

#### Seção de Destinatários

- **Destinatários:** Conjunto de 6 campos para e-mails 
    - Formato: e-mail válido (texto@domínio.com)
    - Apenas o primeiro é obrigatório
    - Nos demais campos aparecem placeholders: "Destinatário 2", "Destinatário 3", etc.
    - Exemplo do primeiro campo preenchido: "moisesf@gmail.com"

#### Seção Formato

- Indica o formato que o relatório será enviado por email. Os formatos póssíveis são PDF, XLS, TXT e RTF. Não permite alteração. Caso queria alterar o formato deve-se excluir o agendamento e criar um novo com o formato desejado.

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

- **Gravar:** Botão verde para salvar as configurações
- **Excluir:** Botão vermelho para remover o agendamento
- **Voltar:** Botão cinza para retornar à tela de listagem

### Tela de Listagem de Agendamentos

#### Seção de Cabeçalho

- **Título:** "Agendador de Relatórios"

#### Seção de Filtros

- **Filtros:** Seção expansível 
    - **Nome:** Campo de texto para filtrar pelo nome do agendamento
    - **Periodicidade:** Dropdown com opções de periodicidade
    - Botões de ação à direita (busca, exportação e adição)

#### Tabela de Agendamentos

- **Colunas:**
    - Nome: Nome do agendamento cadastrado
    - Relatório: Tipo de relatório configurado
    - Horário: Horário programado para execução
    - Periodicidade: Frequência configurada (exibida em formato textual)
    - Repetir Até: Data limite para o agendamento (quando definida)
    - Última Execução: Data e hora da última vez que o relatório foi executado
    - N.: Número sequencial ou contador
    - Formato: Formato que o relatório será enviado. Opções: PDF, XLS, TXT e RTF.

#### Dados Exibidos (exemplo)

- Um agendamento com nome "Agenda Histórico de Cidades Mensal"
- Relatório do tipo "Histórico de Cidades"
- Horário de execução às "07:12:00"
- Periodicidade "Toda semana \[ Sexta, Sábado \]"
- Última execução em "2025-03-14 07:19:38.0"
- Valor "0" na coluna N.

## Propósito e Fluxo de Trabalho

O propósito principal deste sistema é automatizar a geração e distribuição de relatórios, economizando tempo e garantindo que relatórios importantes sejam gerados de forma consistente e enviados aos interessados.

### Fluxo de trabalho básico:

1. O usuário acessa a tela de listagem de agendamentos
2. Para criar um novo agendamento, o usuário clica no botão de adicionar (ícone verde à direita)
3. Na tela de cadastro, o usuário: 
    - Seleciona o tipo de relatório (pré-configurado na tela)
    - Fornece um nome para identificar o agendamento
    - Define o horário para execução
    - Configura a periodicidade (diária, semanal ou mensal)
    - Se semanal, seleciona os dias da semana
    - Se mensal, define o dia do mês
    - Opcionalmente, define uma data limite para o agendamento
    - Insere pelo menos um e-mail de destinatário
4. O usuário clica em "Gravar" para salvar o agendamento
5. O sistema retorna à tela de listagem onde o novo agendamento aparece
6. O sistema, nos bastidores, executará o relatório conforme a programação e enviará aos destinatários

Para editar um agendamento existente, o usuário seleciona o registro na tabela de listagem. Para remover, utiliza o botão "Excluir" na tela de edição.

## Instruções Passo-a-Passo

### Como criar um novo agendamento de relatório:

1. Acesse a tela de listagem de agendamentos
2. Clique no botão verde à direita (ícone de adição)
3. Na tela de cadastro: 
    - Digite um nome descritivo para o agendamento
    - Defina o horário de envio no formato HH:MM
    - Configure a periodicidade: 
        - Digite o número no campo "Periodicização a cada"
        - Selecione a unidade de tempo (Dias, Semanas, Mês/Meses)
    - Se escolher periodicidade semanal: 
        - Marque as caixas correspondentes aos dias da semana desejados
    - Se escolher periodicidade mensal: 
        - Digite o dia do mês (1-31)
    - Opcionalmente, defina uma data limite no campo "Até o dia"
    - Preencha pelo menos o primeiro campo de e-mail destinatário
    - Adicione destinatários adicionais nos campos restantes, se necessário
4. Clique no botão "Gravar" para salvar o agendamento
5. O sistema retornará automaticamente à tela de listagem

### Como editar um agendamento existente:

1. Na tela de listagem, clique na linha do agendamento que deseja editar
2. Faça as alterações necessárias nos campos disponíveis
3. Clique no botão "Gravar" para salvar as modificações

### Como excluir um agendamento:

1. Na tela de listagem, clique na linha do agendamento que deseja excluir
2. Na tela de edição, clique no botão "Excluir" (vermelho)
3. Confirme a operação quando solicitado

### Como filtrar agendamentos na listagem:

1. Na seção de filtros, digite um termo no campo "Nome" para filtrar por nome do agendamento
2. Selecione uma opção no dropdown "Periodicidade" para filtrar por tipo de periodicidade
3. Clique no botão de busca (ícone de lupa) para aplicar os filtros

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

Com base na análise do sistema, podemos identificar as seguintes regras de negócio e validações:

1. **Validações de campos obrigatórios:**
    
    
    - O nome do agendamento deve ser preenchido
    - O horário de envio deve ser preenchido e válido
    - A periodicidade deve ser configurada
    - Se periodicidade for semanal, ao menos um dia da semana deve ser selecionado
    - Se periodicidade for mensal, o dia do mês deve ser válido (1-31)
    - Pelo menos um destinatário de e-mail deve ser fornecido
2. **Validações de formato:**
    
    
    - Horário deve estar no formato HH:MM (24h)
    - E-mails devem estar em formato válido
    - Data limite deve estar no formato DD/MM/AAAA e ser uma data futura
3. **Funcionalidade de repetição:**
    
    
    - Dependendo da periodicidade selecionada, os campos de configuração exibidos variam
    - Com periodicidade semanal, os checkboxes de dias da semana são mostrados
    - Com periodicidade mensal, um campo para o dia do mês é mostrado
4. **Automação:**
    
    
    - O sistema executa automaticamente os relatórios nos horários configurados
    - Os relatórios são enviados para os e-mails cadastrados
    - O sistema registra a data e hora da última execução

## Perguntas Frequentes (FAQ)

### 1. Como configuro um relatório para ser enviado diariamente?

Para configurar um relatório diário, selecione "Dias" no dropdown de periodicidade e coloque "1" no campo numérico. Defina o horário desejado e adicione os e-mails dos destinatários.

### 2. Posso configurar um relatório para ser enviado apenas em dias específicos da semana?

Sim. Selecione "Semanas" no dropdown de periodicidade e marque apenas os dias da semana desejados na seção "E repetir".

### 3. Como faço para que o relatório seja enviado uma vez por mês, sempre no mesmo dia?

Selecione "Mês/Meses" no dropdown de periodicidade, coloque "1" no campo numérico e especifique o dia do mês desejado.

### 4. O que acontece se eu configurar o dia 31 para um relatório mensal?

Para meses que não possuem o dia 31, o sistema executará o relatório no último dia do mês.

### 5. Posso limitar por quanto tempo um agendamento ficará ativo?

Sim. Utilize o campo "Até o dia" para definir uma data limite. Após essa data, o agendamento não será mais executado.

### 6. Quantos destinatários posso adicionar para receber o relatório?

O sistema permite até 6 endereços de e-mail diferentes como destinatários.

### 7. Como sei se o agendamento está funcionando corretamente?

Na tela de listagem, você pode verificar a coluna "Última Execução" que mostra a data e hora da última vez que o relatório foi executado com sucesso.

### 8. Posso pausar temporariamente um agendamento sem excluí-lo?

Não há uma função específica de pausa, mas você pode editar o agendamento e definir uma data no passado no campo "Até o dia" para desativá-lo, e depois alterar para uma data futura quando quiser reativá-lo.

### 9. O que acontece se eu não preencher o campo "Até o dia"?

Se não for definida uma data limite, o agendamento continuará ativo indefinidamente até que seja excluído manualmente.

### 10. Posso visualizar o conteúdo dos relatórios antes de agendar?

O sistema de agendamento não possui visualização prévia. Recomenda-se gerar o relatório manualmente primeiro para verificar seu conteúdo antes de configurar o agendamento.

Com base no arquivo `SenderAgendarRelatoriosFachada.java`, vou complementar a documentação anterior com detalhes importantes sobre o funcionamento interno do sistema de agendamento de relatórios, especialmente quanto aos mecanismos de execução e regras de processamento.

# Complemento

## Mecanismo de Execução Automática

O sistema utiliza um mecanismo automatizado (robô) para execução dos relatórios agendados. Este processo verifica periodicamente quais relatórios devem ser executados com base em suas configurações. Vamos detalhar seu funcionamento:

### Processo de Verificação e Envio

1. O sistema recupera a lista de relatórios agendados pendentes de envio via método `recuperarListaParaEnviar()`.
2. Para cada agendamento, realiza validações específicas de acordo com a periodicidade:
    
    
    - Verifica se o horário atual é igual ou posterior ao configurado
    - Confirma se o dia atual corresponde ao programado
    - Confirma se o relatório ainda não foi executado hoje
    - Verifica regras específicas para periodicidade semanal ou mensal
3. Quando um agendamento atende aos critérios, o sistema:
    
    
    - Autentica-se com as credenciais do cliente
    - Gera o relatório solicitado, convertendo os parâmetros conforme necessário
    - Envia o relatório por e-mail aos destinatários configurados
    - Registra a execução no histórico do agendamento

### Regras de Execução Detalhadas

#### Para Relatórios Mensais:

- Na primeira execução: verifica se o dia atual coincide com o dia programado e se o horário é válido
- Nas execuções seguintes: verifica se o mês atual corresponde ao próximo mês esperado após a última execução (considerando o passo de repetição configurado)
- Ajusta automaticamente para o último dia do mês quando o dia configurado não existe no mês atual (ex: dia 31 em fevereiro)

#### Para Relatórios Semanais:

- Na primeira execução: verifica se o dia atual da semana está entre os selecionados e se o horário é válido
- Nas execuções seguintes: verifica se a semana atual corresponde à próxima semana esperada após a última execução (considerando o passo de repetição configurado em semanas)
- Executa apenas nos dias da semana que foram marcados na configuração

### Ajuste Automático de Datas

O sistema possui um mecanismo inteligente para ajustar automaticamente as datas de início e fim dos relatórios:

1. Quando um relatório é agendado com um período específico (ex: últimos 30 dias), o sistema calcula a diferença entre a data do agendamento e a data atual.
2. Aplica essa diferença às datas de início e fim do período do relatório, mantendo a mesma amplitude relativa, mas atualizando-as para o momento atual.
3. Isso garante que relatórios periódicos sempre apresentem dados atualizados em relação ao momento de sua execução, não ficando presos ao período original do agendamento.

## Comunicação e Processamento

O sistema realiza as seguintes operações de comunicação na geração de relatórios:

1. **Autenticação**: Realiza autenticação segura usando um hash gerado a partir do ID do cliente e da empresa.
2. **Requisição de Relatório**: Constrói uma requisição HTTP com todos os parâmetros necessários para a geração do relatório.
3. **Processamento de Resposta**: Recebe e processa a resposta (geralmente um arquivo PDF), salvando-o temporariamente.
4. **Preparação de E-mail**: Utiliza um template personalizado contendo:
    
    
    - Nome do agendamento
    - Nome do cliente
    - Data e hora de geração
    - Nome descritivo do relatório
    - Período abrangido (data/hora início e fim)
    - Dados da empresa (nome fantasia e site)
5. **Envio**: Distribui o e-mail com o relatório anexado para todos os destinatários configurados.

## Tratamento de Erros e Situações Especiais

O sistema implementa as seguintes estratégias para lidar com situações excepcionais:

1. **Falhas de Autenticação**: Se a autenticação falhar, o sistema registra o erro e interrompe o processamento daquele relatório.
2. **Validação de E-mails**: Antes de enviar, valida cada endereço de e-mail configurado, utilizando apenas os que possuem formato válido.
3. **Datas Inexistentes**: Para relatórios mensais programados para dias que não existem em todos os meses (como dia 31), o sistema ajusta automaticamente para o último dia do mês.
4. **Parâmetros Dinâmicos**: Os parâmetros de data são recalculados dinamicamente a cada execução, garantindo que os relatórios sempre apresentem dados atualizados.
5. **Limite de Execução**: Respeita a configuração de data limite ("Até o dia"), não executando relatórios após essa data.

## Considerações Técnicas Adicionais

1. O sistema utiliza templates Velocity para a geração padronizada do corpo do e-mail.
2. Os arquivos de relatório são gerados como PDFs e anexados ao e-mail.
3. O registro de execução permite rastrear todas as gerações de relatórios, controlando a frequência e evitando duplicações.
4. A validação de horário usa a comparação com o horário do sistema, permitindo a execução mesmo se o momento exato for perdido (desde que o horário atual seja posterior ao programado).
5. O sistema mantém registro detalhado de logs para fins de auditoria e resolução de problemas.
6. Há um mecanismo de conversão entre diferentes formatos de data para garantir a compatibilidade entre os diversos componentes do sistema.

Esta complementação esclarece o funcionamento interno do sistema de agendamento, fornecendo uma visão mais completa de como os relatórios são processados, ajustados e enviados automaticamente conforme as configurações definidas pelo usuário.

# Controle de Acesso

## Visão Geral

A funcionalidade de Controle de Acesso é um módulo administrativo para controlar permissões de usuários na plataforma de gestão de frota. Este sistema permite criar, editar e gerenciar grupos de usuários com diferentes níveis de acesso e permissões, restringindo o acesso por horários específicos, endereços IP e vinculando veículos a cada grupo. Para acessar a opção utilize o menu CONFIGURAÇÕES e a opção CONTROLE DE ACESSO.

## Descrição da Interface

A interface do Sistema de Gerenciamento de Grupos de Acesso está organizada em cinco abas principais:

1. **DADOS**: Informações básicas do grupo de acesso
2. **PERMISSÕES**: Configuração de permissões para diferentes módulos do sistema
3. **HORÁRIOS**: Restrição de acesso por dias da semana e horários
4. **CONTROLE POR IP**: Restrição de acesso por endereços IP específicos
5. **VEÍCULOS**: Associação de veículos específicos ao grupo de acesso

### Elementos da Interface

#### Aba DADOS

- **Divisão**: Campo do tipo dropdown para selecionar a divisão à qual o grupo pertence
- **Nome**: Campo de texto para o nome do grupo (obrigatório)
- **Login**: Campo de texto para o login do grupo (obrigatório, mínimo 5 caracteres)
- **Senha**: Campo de senha com botão de visualização (obrigatório para novos grupos, mínimo 6 caracteres)
- **E-mail**: Campo de texto para o e-mail de contato do grupo (opcional, validação de formato de e-mail)
- **Descrição**: Área de texto para informações adicionais (opcional, limite de 2045 caracteres)
- **Checkboxes de permissões básicas**: 
    - Master? (acesso total)
    - Pode se Alterar? (edição de dados próprios)
    - Pode Bloquear? (bloquear outros usuários)
    - Visualizar Mapa?
    - Visualizar Grid?
    - Visualizar Percursos?
    - Visualizar Relatórios?
    - Visualizar Avisos?

#### Aba PERMISSÕES

- **Versão do Sistema**: Dropdown com opções BASIC, PRO e FAST (se disponível)
- **Botões de ação**: "Marcar Todos" e "Desmarcar Todos"
- Seções de permissões organizadas por categoria: 
    - **Dashboard**: Permissões para dashboard de Veículos, Despesas, Motoristas, Telemetria e Câmeras
    - **Controles de Frota**: Permissões para Agenda de Eventos, Tipo Item Eventos, Ocorrência de Veículo, etc.
    - **Receitas e Despesas**: Permissões para gestão financeira
    - **Pontos de Interesse**: Permissões para gerenciar locais no mapa
    - **Abastecimento Interno**: Permissões para controle de combustível
    - **Controle de Estoque**: Permissões para gerenciar peças e produtos
    - **Controle de Viagem**: Permissões para gestão de viagens e rotas
    - **Controle de Pneus**: Permissões para gestão de pneus
    - **Roteirização**: Permissões para planejamento de rotas
    - **Gerenciamento de Pedidos**: Permissões para gestão de pedidos
    - **Configurações**: Permissões para configurações do sistema
    - **Relatórios - Veículos**: Permissões para relatórios específicos de veículos
    - **Relatórios - Controle de Frota**: Permissões para relatórios de frota
    - **Relatórios - Roteirização**: Permissões para relatórios de rotas
    - **Relatórios - Entrada/Saída**: Permissões para relatórios de entrada/saída
    - **Relatórios - Telemetria**: Permissões para relatórios de telemetria
    - **Relatórios - Motoristas**: Permissões para relatórios de motoristas
    - **Relatórios - Pneus**: Permissões para relatórios de pneus

#### Aba HORÁRIOS

- **Seletor de Dia da Semana**: Dropdown com os dias da semana (Segunda a Domingo)
- **Hora Início**: Campo de hora para início do período permitido (formato HH:MM)
- **Hora Fim**: Campo de hora para fim do período permitido (formato HH:MM)
- **Botão de Adição**: Para adicionar um novo horário
- **Tabela de Horários**: 
    - Dia da Semana
    - Início
    - Fim
    - Botão de remoção

#### Aba CONTROLE POR IP

- **Campo IP**: Para inserir endereço IP permitido (formato xxx.xxx.xxx.xxx, permite uso de \* como coringa)
- **Botão de Adição**: Para adicionar um novo IP
- **Tabela de IPs Permitidos**: 
    - IP Permitido
    - Botão de remoção

#### Aba VEÍCULOS

- **Filtros para Veículos Disponíveis**: 
    - Categoria
    - Divisão
    - Tipo Veículo
    - Pesquisa (texto livre)
- **Filtros para Veículos Selecionados**: 
    - Categoria
    - Divisão
    - Tipo Veículo
    - Pesquisa (texto livre)
- **Lista de Veículos Disponíveis**: Exibe placas e informações dos veículos disponíveis
- **Lista de Veículos Selecionados**: Exibe placas e informações dos veículos associados ao grupo
- **Botões de ação**: 
    - Adicionar Todos: Adiciona todos os veículos filtrados
    - Adicionar: Adiciona o veículo selecionado
    - Remover: Remove o veículo selecionado
    - Remover Todos: Remove todos os veículos selecionados

#### Botões Principais (em todas as abas)

- **Gravar**: Salva as alterações
- **Excluir**: Remove o grupo (disponível apenas para grupos existentes)
- **Duplicar**: Cria uma cópia do grupo atual
- **Voltar**: Retorna à tela de listagem de grupos

## Fluxo de Trabalho

O sistema de Gerenciamento de Grupos de Acesso segue os seguintes fluxos principais:

### Fluxo de Listagem de Grupos

1. O usuário acessa a tela de listagem de grupos
2. O sistema exibe uma tabela com todos os grupos cadastrados
3. O usuário pode filtrar a lista por Nome, Login e Divisão
4. O usuário pode selecionar um grupo para edição ou criar um novo grupo

### Fluxo de Criação/Edição de Grupo

1. O usuário acessa o formulário (novo ou existente)
2. O usuário preenche os campos na aba DADOS
3. O usuário configura as permissões na aba PERMISSÕES
4. O usuário configura os horários permitidos na aba HORÁRIOS
5. O usuário configura os IPs permitidos na aba CONTROLE POR IP
6. O usuário associa veículos na aba VEÍCULOS
7. O usuário grava as alterações

### Fluxo de Duplicação de Grupo

1. O usuário seleciona um grupo existente
2. O usuário clica no botão "Duplicar"
3. O sistema cria uma cópia do grupo com as mesmas configurações
4. O usuário ajusta as informações necessárias
5. O usuário grava o novo grupo

### Fluxo de Exclusão de Grupo

1. O usuário seleciona um grupo existente
2. O usuário clica no botão "Excluir"
3. O sistema solicita confirmação
4. O usuário confirma a exclusão
5. O sistema remove o grupo

## Instruções Passo a Passo

### Como Criar um Novo Grupo de Acesso

1. Na tela de listagem, clique no botão "+" (Novo)
2. Preencha os campos obrigatórios na aba DADOS: 
    - Nome
    - Login
    - Senha
3. Selecione as permissões básicas desejadas
4. Mude para a aba PERMISSÕES
5. Selecione a versão do sistema
6. Marque as permissões específicas desejadas
7. Se necessário, restrinja o acesso por horários na aba HORÁRIOS
8. Se necessário, restrinja o acesso por IPs na aba CONTROLE POR IP
9. Se necessário, associe veículos na aba VEÍCULOS
10. Clique em "Gravar"

### Como Adicionar Restrição de Horário

1. Na aba HORÁRIOS, selecione o dia da semana
2. Digite a hora de início no formato HH:MM
3. Digite a hora de fim no formato HH:MM
4. Clique no botão "+" para adicionar
5. Repita o processo para cada dia/horário desejado

### Como Adicionar Restrição de IP

1. Na aba CONTROLE POR IP, digite o endereço IP no formato xxx.xxx.xxx.xxx 
    - Você pode usar \* como coringa (exemplo: 192.168.1.\*)
2. Clique no botão "+" para adicionar
3. Repita o processo para cada IP desejado

### Como Associar Veículos ao Grupo

1. Na aba VEÍCULOS, use os filtros para localizar os veículos desejados
2. Clique no botão "+" ao lado de cada veículo para adicioná-lo
3. Alternativamente, clique em "Adicionar Todos" para adicionar todos os veículos filtrados
4. Para remover veículos, clique no botão "-" ao lado do veículo ou em "Remover Todos"

### Como Duplicar um Grupo

1. Na tela de listagem, selecione o grupo desejado
2. Clique no botão "Duplicar"
3. O sistema criará uma cópia do grupo
4. Ajuste as informações conforme necessário
5. Clique em "Gravar"

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

### Validações da Aba DADOS

- Nome: Campo obrigatório
- Login: Campo obrigatório, mínimo 5 caracteres
- Senha: Obrigatória para novos grupos, mínimo 6 caracteres
- E-mail: Validação de formato de e-mail
- Descrição: Máximo 2045 caracteres

### Validações da Aba HORÁRIOS

- Os horários não podem se sobrepor para o mesmo dia da semana
- A hora de início deve ser anterior à hora de fim
- O formato deve ser HH:MM

### Validações da Aba CONTROLE POR IP

- O formato do IP deve ser válido (xxx.xxx.xxx.xxx)
- É permitido usar \* como coringa nas posições (exemplo: 192.168.*.*)
- Não é permitido cadastrar o mesmo IP mais de uma vez

### Regras de Permissões

- Usuários com perfil "Master" têm acesso a todas as funcionalidades
- Usuários com versão "BASIC" têm acesso limitado a funcionalidades básicas
- Usuários com versão "PRO" têm acesso a funcionalidades avançadas
- Usuários com versão "FAST" têm acesso a recursos específicos de alta performance
- A disponibilidade das funcionalidades depende da licença do cliente

### Restrições de Edição

- Usuários com acesso individual não podem criar ou editar grupos
- Usuários com acesso de grupo sem permissão "Master" têm limitações
- Usuários não podem alterar seus próprios grupos se não tiverem a permissão "Pode se Alterar"

## Perguntas Frequentes

### 1. Como funciona a restrição de horário?

R: A restrição de horário permite definir os dias da semana e horários específicos em que o grupo terá acesso ao sistema. Fora desses horários, o acesso será negado. Para configurar, acesse a aba HORÁRIOS e adicione os períodos permitidos.

### 2. É possível limitar o acesso apenas a certos endereços IP?

R: Sim, na aba CONTROLE POR IP, você pode adicionar os endereços IP que terão permissão para acessar o sistema com este grupo. Usuários tentando acessar de outros IPs receberão uma mensagem de acesso negado.

### 3. Como associar um veículo a mais de um grupo?

R: Um veículo pode ser associado a múltiplos grupos. Para isso, basta adicionar o veículo a cada grupo desejado através da aba VEÍCULOS. Não há limitação quanto ao número de grupos aos quais um veículo pode pertencer.

### 4. Qual a diferença entre as versões BASIC, PRO e FAST?

R: A versão BASIC oferece acesso às funcionalidades essenciais do sistema. A versão PRO adiciona recursos avançados como dashboards, controles detalhados de frota, roteirização e relatórios especializados. A versão FAST é uma variação com recursos de alta performance para ambientes específicos.

### 5. O que acontece se eu não associar nenhum veículo ao grupo?

R: Se nenhum veículo for associado ao grupo, os usuários deste grupo não terão acesso a nenhum veículo no sistema, mesmo tendo outras permissões configuradas. Para que possam visualizar e gerenciar veículos, é necessário associá-los na aba VEÍCULOS.

### 6. Posso criar um grupo sem restrições de horário ou IP?

R: Sim. Se não adicionar nenhuma restrição de horário ou IP, o grupo terá acesso irrestrito em relação a esses aspectos. As restrições só serão aplicadas se forem explicitamente configuradas.

### 7. Como duplicar um grupo existente?

R: Na tela de edição do grupo que deseja duplicar, clique no botão "Duplicar". O sistema criará uma cópia com todas as mesmas configurações, exceto pelo nome que deverá ser personalizado. Essa é uma forma rápida de criar grupos com configurações semelhantes.

### 8. Quais são as diferenças entre "Pode se Alterar" e "Pode Bloquear"?

R: A permissão "Pode se Alterar" permite que o usuário edite as configurações do próprio grupo. A permissão "Pode Bloquear" permite que o usuário bloqueie o acesso de outros grupos ou usuários ao sistema. São permissões independentes com propósitos diferentes.

### 9. O que significa a permissão "Master"?

R: A permissão "Master" concede acesso total ao sistema, permitindo configurar e acessar todas as funcionalidades disponíveis. Usuários com esta permissão podem criar, editar e excluir outros grupos, além de terem acesso irrestrito aos módulos do sistema.

### 10. Como configurar o acesso a relatórios específicos?

R: Na aba PERMISSÕES, existem seções específicas para diferentes tipos de relatórios (Veículos, Controle de Frota, Roteirização, etc.). Marque as caixas correspondentes aos relatórios que deseja permitir. Além disso, é necessário que a opção "Visualizar Relatórios" esteja marcada na aba DADOS.

# Dados de Contato

## Descrição da Interface

A tela "Alteração Dados de Contato" faz parte de um sistema de gerenciamento de frota veicular. Esta interface permite aos usuários visualizar e atualizar informações de contato associadas aos veículos cadastrados no sistema. A tela está dividida em duas seções principais:

1. **Seção Superior**: Área para inserção/edição de dados de contato com campos para responsáveis, e-mails e números de celular.
2. **Seção Inferior**: Tabela que exibe os veículos cadastrados e seus respectivos dados de contato.

A interface possui uma indicação de última confirmação (data e hora) e instruções claras para o usuário sobre como proceder para atualizar os dados ou confirmar que estão corretos. Para acessar a opção utilize o menu CONFIGURAÇÕES e a opção DADOS DE CONTATO.

## Elementos da Interface

### Cabeçalho

- **Título**: "Alteração Dados de Contato"
- **Informativo de última confirmação**: "Última confirmação em \[data\] \[hora\]" (exemplo: "14-01-25 15:29")
- **Instruções**: Texto explicativo sobre o envio de avisos e como atualizar os dados

### Seção de Edição (Superior)

- **Campos de entrada**: 
    - Responsável 1 (campo de texto)
    - Responsável 2 (campo de texto)
    - Email 1 (campo de texto com validação de email)
    - Email 2 (campo de texto com validação de email)
    - Celular 1 (campo de texto com validação para números de telefone)
    - Celular 2 (campo de texto com validação para números de telefone)
- **Botões**: 
    - "Atualizar Dados" (botão roxo para confirmar alterações)
    - "Os dados já estão atualizados" (botão branco para confirmar sem alterações)
    - Ícones de atualização (setas circulares) ao lado de cada campo

### Seção de Tabela (Inferior)

- **Cabeçalhos da tabela**:
    
    
    - Veículo
    - Placa
    - Responsável 1
    - Email 1
    - Telefone 1
    - Responsável 2
    - Email 2
    - Telefone 2
- **Registros de exemplo**:
    
    
    - Veículo: 12.170, Placa: XXX-2222, Email 1: $moises@concept.mx, Telefone 1: 86933011878
    - Veículo: Oroch, Placa: SLU-5D66, Email 1: $moises@concept.mx, Email 2: moises@concept.inf.br
    - Veículo: CG 125 FAN, Placa: ODX-1939, Responsável 1: Concept, Email 1: ramylos1@gmail.com, Email 2: moises@concept.inf.br
    - Veículo: CB-300, Placa: OEB-2320, Responsável 1: Concept, Email 1: $donotreply@concept.inf.br, Email 2: moises@concept.inf.br

## Propósito e Fluxo de Trabalho

### Propósito

Esta tela permite ao usuário gerenciar os contatos associados aos veículos da frota, garantindo que as informações estejam atualizadas para o recebimento de avisos e notificações relacionados aos veículos.

### Fluxo de Trabalho

1. O usuário acessa a tela para verificar os dados de contato existentes
2. Se os dados estiverem corretos, o usuário pode clicar em "Os dados já estão atualizados"
3. Se houver necessidade de alteração, o usuário preenche os campos na seção superior e clica em "Atualizar Dados"
4. O sistema atualiza as informações e envia os avisos para os contatos atualizados

## Validações e Regras

### Campos de Email

- Devem seguir o formato padrão de email (contendo @ e domínio válido)
- Aceitam diversos domínios, incluindo .mx, .com, .inf.br como mostrado nos exemplos

### Campos de Telefone

- Aceitam números com formato nacional (exemplo: 86933011878)
- Não exigem formatação específica com parênteses ou hífens

### Campos de Responsável

- Aceitam texto livre
- Podem conter nomes de pessoas ou empresas (exemplo: "Concept")

### Atualização de Dados

- A atualização feita nos campos superiores se aplica a todos os veículos listados na tabela
- O sistema mantém registro da última confirmação de dados com data e hora

## Instruções Passo a Passo

### Como verificar dados de contato

1. Acesse a tela "Alteração Dados de Contato"
2. Revise as informações exibidas na tabela de veículos
3. Confira se os responsáveis, emails e telefones estão corretos

### Como atualizar dados de contato

1. Acesse a tela "Alteração Dados de Contato"
2. Preencha os campos de Responsável, Email e Celular na seção superior
3. Clique no botão roxo "Atualizar Dados"
4. Verifique se a tabela foi atualizada com as novas informações
5. Observe a atualização do timestamp de "Última confirmação"

### Como confirmar dados sem alterações

1. Acesse a tela "Alteração Dados de Contato"
2. Verifique se os dados exibidos estão corretos
3. Clique no botão "Os dados já estão atualizados"
4. Observe a atualização do timestamp de "Última confirmação"

## Perguntas Frequentes

### 1. É possível atualizar dados de apenas um veículo específico?

Não, a interface está projetada para atualizar os dados de contato para todos os veículos listados.

### 2. Que tipo de avisos são enviados para esses contatos?

Os avisos gerados pelos veículos são enviados por email e pelo aplicativo, conforme informado na mensagem de instrução no topo da tela.

### 3. Posso cadastrar mais de dois responsáveis por veículo?

Não, o sistema permite apenas dois responsáveis por veículo, cada um com seu respectivo email e telefone.

### 4. Os dados são atualizados automaticamente no aplicativo?

Sim, após clicar em "Atualizar Dados", as informações serão atualizadas tanto no sistema web quanto no aplicativo.

### 5. É necessário preencher todos os campos?

Não, os campos são opcionais. É possível ter apenas um responsável ou deixar campos de telefone em branco, conforme visto nos exemplos na tabela.

### 6. Com que frequência devo confirmar os dados de contato?

Embora não haja uma regra específica, é recomendável verificar e confirmar os dados sempre que houver mudanças de pessoal ou informações de contato na empresa.

### 7. O que significa a mensagem "Para não exibir mais essa tela clique em 'Os dados já estão atualizados'"?

Esta opção permite ao usuário confirmar que os dados estão corretos e não precisará visualizar esta tela novamente até que haja necessidade de uma nova verificação.

## Comportamentos e Regras de Negócio

A tela implementa as seguintes regras e comportamentos:

- O sistema registra a data e hora da última confirmação dos dados para fins de auditoria
- Os dados de contato são essenciais para o recebimento de avisos gerados pelos veículos
- Os avisos são enviados tanto por email quanto pelo aplicativo móvel
- A interface centraliza a gestão de contatos para todos os veículos da frota
- Os campos têm validação para garantir que os emails estejam em formato correto
- O sistema permite a atualização por lote, aplicando os mesmos dados a vários veículos
- Há mecanismo para o usuário indicar que os dados estão atualizados sem fazer alterações
- A interface permite ocultar a tela para usuários que já confirmaram os dados

Esta tela é parte importante do sistema de comunicação da plataforma de gerenciamento de frota, garantindo que avisos importantes sobre os veículos cheguem aos responsáveis corretos.

# Divisão Controle de Acesso

## Descrição Geral

A funcionalidade de Divisões de Controle de Acesso permite ao usuário criar, visualizar, editar e excluir divisões utilizadas para organizar o acesso de grupos de veículos no sistema de gerenciamento de frota. A interface é dividida em duas telas principais: uma tela de listagem que mostra todas as divisões cadastradas e uma tela de cadastro/edição para gerenciar informações de cada divisão. Para acessar a opção utilize o menu CONFIGURAÇÕES e a opção DIVISÃO DE CONTROLE DE ACESSO.

## Elementos da Interface

### Tela de Listagem (Divisões de Controle de Acesso)

- **Título da Página**: "Divisões de Controle de Acesso" localizado no topo da página
- **Seção de Filtros**: Seção expansível que contém campos para filtragem dos registros 
    - **Campo Nome**: Campo de texto para filtrar divisões por nome
    - **Botões de Ação da Barra de Filtros**: 
        - Botão de busca (ícone de lupa)
        - Botão de limpar filtros (ícone "D")
        - Botão de adicionar novo registro (ícone "+")
        - Botão de impressão (ícone de impressora)
- **Tabela de Resultados**: 
    - **Cabeçalho**: Coluna "NOME" com formatação destacada
    - **Linhas de Dados**: Exibe as divisões cadastradas (exemplo: "Acesso de grupo", "clientes", "Divisão 1 Controle de Acesso", "Master")
- **Paginação**: No rodapé da tabela, mostrando "1 - 4 de 4" e controles de navegação entre páginas

### Tela de Cadastro/Edição (Divisão de Controle de Acesso)

- **Título da Página**: "Divisão de Controle de Acesso" localizado no topo da página
- **Formulário de Cadastro/Edição**: 
    - **Campo Nome**: Campo de texto obrigatório para inserir o nome da divisão 
        - Exemplo: "Divisão 1 Controle de Acesso"
- **Botões de Ação**: 
    - **Gravar**: Botão verde para salvar as informações
    - **Excluir**: Botão vermelho para remover a divisão
    - **Voltar**: Botão cinza para retornar à tela de listagem sem salvar alterações

## Propósito e Fluxo de Trabalho

A funcionalidade de Divisões de Controle de Acesso permite criar agrupamentos lógicos para organizar permissões e acessos aos veículos no sistema. Este módulo faz parte do sistema de segurança e controle de acesso, permitindo que diferentes grupos de usuários tenham acesso apenas a determinados conjuntos de veículos.

### Fluxo Básico:

1. O usuário acessa a tela de listagem para visualizar todas as divisões existentes
2. Para criar uma nova divisão, o usuário clica no botão de adicionar
3. Na tela de cadastro, o usuário preenche o nome da divisão e clica em "Gravar"
4. Para editar uma divisão existente, o usuário seleciona o registro na lista
5. Após a edição, o usuário clica em "Gravar" para salvar as alterações
6. Para excluir uma divisão, o usuário acessa a tela de edição e clica em "Excluir"

## Instruções Passo a Passo

### Como Visualizar Divisões Existentes

1. Acesse o menu principal do sistema
2. Navegue até a opção "Divisões de Controle de Acesso"
3. A tela exibirá automaticamente todas as divisões cadastradas
4. Utilize os filtros na parte superior para refinar a busca caso necessário

### Como Criar Nova Divisão

1. Na tela de listagem, clique no botão com ícone "+" (adicionar)
2. Na nova tela, preencha o campo "Nome" com o identificador desejado para a divisão
3. Clique no botão "Gravar" para salvar o novo registro
4. O sistema retornará à tela de listagem e exibirá a nova divisão na tabela

### Como Editar uma Divisão

1. Na tela de listagem, localize a divisão que deseja editar
2. Clique sobre o nome da divisão para abrir a tela de edição
3. Modifique o campo "Nome" conforme necessário
4. Clique no botão "Gravar" para salvar as alterações
5. O sistema confirmará a operação com uma mensagem de sucesso

### Como Excluir uma Divisão

1. Na tela de listagem, localize a divisão que deseja excluir
2. Clique sobre o nome da divisão para abrir a tela de edição
3. Clique no botão "Excluir"
4. Se a divisão não estiver associada a nenhum grupo, o sistema confirmará a exclusão
5. Se houver associações, o sistema exibirá uma mensagem informando a impossibilidade de exclusão

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

- O campo "Nome" é obrigatório para o cadastro de uma divisão
- Não é possível excluir uma divisão que esteja associada a controles de acesso
- Ao tentar excluir uma divisão com associações, o sistema exibirá uma mensagem informando quantos controles de acesso estão vinculados à divisão
- As divisões são utilizadas para agrupar veículos e definir permissões de acesso no sistema
- O sistema verifica a existência de grupos associados antes de permitir a exclusão de uma divisão
- As operações de gravação e exclusão são confirmadas por mensagens de sucesso ou erro

## Perguntas Frequentes

### O que são Divisões de Controle de Acesso?

Divisões de Controle de Acesso são agrupamentos lógicos utilizados para organizar veículos e definir permissões de acesso no sistema. Elas permitem segmentar a frota em grupos para facilitar o gerenciamento de quem pode visualizar e interagir com cada conjunto de veículos.

### Por que não consigo excluir uma divisão?

Não é possível excluir divisões que possuam controles de acesso associados. Isso evita a exclusão acidental de estruturas que estão em uso no sistema. Você precisa primeiro remover todas as associações com essa divisão antes de excluí-la.

### Como associar veículos a uma divisão?

Após criar a divisão, você deve acessar o módulo de Grupos de Veículos ou Controle de Acesso para realizar a associação dos veículos à divisão criada. Esta tela apenas gerencia as divisões, não as associações.

### Quantas divisões posso criar no sistema?

Não há um limite específico para o número de divisões que podem ser criadas. No entanto, é recomendável manter uma estrutura lógica que facilite o gerenciamento, evitando a criação excessiva de divisões.

### Como filtrar divisões na tela de listagem?

Utilize o campo de filtro "Nome" na seção de filtros. Digite o termo desejado e clique no botão de busca (ícone de lupa) para filtrar os resultados conforme o texto inserido.

### O que acontece se eu clicar em "Voltar" sem salvar as alterações?

As alterações realizadas não serão salvas, e o sistema retornará à tela de listagem mantendo os dados originais da divisão.

# Histórico de Acessos

## Visão Geral da Interface

A funcionalidade "Log de Acesso" apresenta um registro detalhado das atividades de login e navegação no sistema de gerenciamento de frota. Esta interface permite aos administradores e gestores visualizar, filtrar e monitorar todos os acessos ao sistema, incluindo informações como horários de entrada e saída, duração das sessões, endereços IP e o tipo de dispositivo utilizado.

A interface segue uma estrutura organizada com seção de filtros no topo e uma tabela de dados abaixo, facilitando o monitoramento e auditoria do sistema. Para acessar a opção utilize o menu CONFIGURAÇÕES e a opção HISTÓRICOS DE ACESSOS.

## Elementos da Interface

### Seção de Filtros

- **Título principal**: "Log Acesso" - Indica o propósito da tela
- **Seção Expansível**: "Filtros" - Pode ser expandida ou recolhida através do ícone de seta
- **Campo Período**: Permite selecionar um intervalo de datas 
    - Campo de data inicial (formato DD-MM-YYYY)
    - Texto "a" indicando intervalo
    - Campo de data final (formato DD-MM-YYYY)
- **Campo Nome**: Campo de texto para filtrar por nome de usuário
- **Botões de Ação**: 
    - Botão de pesquisa (ícone de lupa)
    - Botão de exportação (ícone de download)

### Tabela de Logs

A tabela principal apresenta os registros de acesso com as seguintes colunas:

- **NOME**: Nome do usuário que acessou o sistema
- **DATA/HORA**: Data e hora de início da sessão (formato DD-MM-YYYY HH:MM:SS)
- **DATA/HORA FIM**: Data e hora de término da sessão (formato DD-MM-YYYY HH:MM:SS)
- **TEMPO**: Duração da sessão no formato "Xmin YYs" (minutos e segundos)
- **IP CLIENTE**: Endereço IP do dispositivo utilizado para acesso
- **ORIGEM**: Método de acesso (WEB ou MOBILE)

### Paginação

- Contador de registros: "1 - 25 de 3226" (indica número total de registros)
- Botões de navegação: Setas para anterior/próximo
- Seletor de páginas: Números de página (1, 2, 3, ...) e indicador de páginas distantes (...)
- Números de página específicos: 128, 129, 130

## Propósito e Fluxo de Trabalho

O Log de Acesso serve como um registro de auditoria para rastrear e monitorar quem acessa o sistema, quando, por quanto tempo e a partir de qual dispositivo. Esta tela é fundamental para:

1. Monitoramento de segurança
2. Auditoria de acesso
3. Diagnóstico de problemas de conexão
4. Análise de padrões de uso do sistema

### Fluxo de Trabalho Típico:

1. O administrador acessa a tela de Log de Acesso
2. Define filtros para limitar a visualização (por data, nome ou ambos)
3. Visualiza os registros na tabela de resultados
4. Pode exportar os dados para análise adicional
5. Navega entre as páginas para visualizar todos os registros disponíveis

## Instruções Passo a Passo

### Como Filtrar Logs por Período

1. Acesse a tela "Log Acesso"
2. Clique na seção "Filtros" caso esteja recolhida
3. No campo "Período", insira a data inicial no formato DD-MM-YYYY
4. Insira a data final no formato DD-MM-YYYY
5. Clique no botão com ícone de lupa para aplicar o filtro
6. A tabela será atualizada mostrando apenas os registros dentro do período especificado

### Como Filtrar Logs por Nome de Usuário

1. Acesse a tela "Log Acesso"
2. Clique na seção "Filtros" caso esteja recolhida
3. No campo "Nome", digite o nome do usuário ou parte dele
4. Clique no botão com ícone de lupa para aplicar o filtro
5. A tabela mostrará apenas os registros correspondentes ao nome inserido

### Como Exportar Dados de Log

1. Acesse a tela "Log Acesso"
2. Aplique os filtros desejados para refinar os dados (opcional)
3. Clique no botão com ícone de download
4. O sistema exportará os dados filtrados em um formato padrão (geralmente CSV ou Excel)
5. Salve o arquivo no local desejado no seu computador

### Como Navegar Entre Páginas de Resultado

1. Acesse a tela "Log Acesso"
2. Na parte inferior da tela, localize a área de paginação
3. Para avançar, clique na seta à direita ou no número da página desejada
4. Para voltar, clique na seta à esquerda ou no número da página anterior
5. Para ir diretamente a uma página específica, clique no número correspondente
6. Para páginas muito distantes, utilize os números específicos (ex: 128, 129, 130)

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

### Regras de Filtro

- O período de data obedece a um formato válido (DD-MM-YYYY)
- A data inicial do período não pode ser posterior à data final
- O sistema limita a exibição a 25 registros por página
- Os nomes de usuário diferenciam entre "Master" (administrador do sistema) e outros usuários específicos como "Jose Neto" e "Ramytos"

### Validações de Tempo

- O sistema calcula automaticamente a duração da sessão quando há uma data/hora de fim
- Sessões ainda ativas ou encerradas irregularmente não têm data/hora de fim ou duração (mostradas como "-")
- O formato de duração segue o padrão "Xmin YYs" para minutos e segundos

### Comportamento de Origens

- As origens possíveis são "WEB" (acesso via navegador) e "MOBILE" (acesso via aplicativo móvel)
- Os endereços IP seguem um padrão consistente, indicando a rede de origem do acesso

## Perguntas Frequentes

### 1. Como identifico usuários com sessões anormalmente longas?

Você pode filtrar os logs por período e examinar a coluna "TEMPO" para identificar sessões com duração muito acima da média. Sessões longas podem indicar que o usuário deixou o sistema aberto sem atividade ou possíveis problemas de encerramento de sessão.

### 2. O que significa quando a coluna "DATA/HORA FIM" está vazia?

Quando a coluna "DATA/HORA FIM" mostra "-", significa que:

- A sessão pode estar ainda ativa
- O usuário não encerrou corretamente a sessão (fechou o navegador sem fazer logout)
- Houve algum problema técnico no registro do encerramento da sessão

### 3. Como posso verificar se houve tentativas de acesso não autorizadas?

Monitore endereços IP incomuns na coluna "IP CLIENTE" ou padrões de acesso fora do horário comercial. Você também pode filtrar por nomes de usuário específicos para verificar se há acessos em horários inesperados.

### 4. Como exportar apenas os logs de um usuário específico?

Utilize o campo "Nome" nos filtros para inserir o nome exato do usuário desejado. Após filtrar, clique no botão de exportação para baixar apenas os registros desse usuário.

### 5. É possível identificar se um usuário acessou via celular ou computador?

Sim, a coluna "ORIGEM" indica o método de acesso. "WEB" significa acesso via navegador (geralmente de um computador), enquanto "MOBILE" indica acesso pelo aplicativo móvel.

### 6. Por que alguns usuários aparecem com vários acessos em horários próximos?

Isso pode ocorrer por diversos motivos:

- Problemas de conectividade que forçaram múltiplos logins
- Sessões expiradas automaticamente pelo sistema
- O usuário fez logout e login novamente em curto espaço de tempo
- Acessos simultâneos de dispositivos diferentes

### 7. Como determinar o tempo médio de sessão dos usuários?

Exporte os dados para uma planilha e calcule a média da coluna "TEMPO". Alternativamente, observe os padrões na própria tabela para ter uma estimativa do tempo médio de sessão.

## Integração com Outros Módulos

O Log de Acesso está integrado com o sistema de autenticação e controle de usuários. Os registros apresentados na tela são gerados automaticamente a partir de:

1. Eventos de login (gera registro com DATA/HORA)
2. Eventos de logout (completa o registro com DATA/HORA FIM)
3. Informações de sessão (IP CLIENTE e ORIGEM)

Este módulo trabalha em conjunto com as configurações de segurança e políticas de acesso definidas nas configurações do sistema, fornecendo um registro completo para fins de conformidade e auditoria.

# Perfil de Cores de Velocidades no Percusos

## Descrição Geral

A funcionalidade "Perfil de Cores de Velocidades no Percurso" é uma funcionalidade do sistema de gerenciamento de frota que permite configurar faixas de velocidade com cores associadas. Este recurso auxilia na visualização e monitoramento das velocidades dos veículos durante percursos, facilitando a identificação de comportamentos de condução através de um código de cores.

O sistema permite criar múltiplos perfis de cores de velocidade, cada um com quatro faixas de velocidade distintas, onde cada faixa é representada por uma cor específica. Estes perfis podem ser utilizados para diferentes tipos de veículos ou percursos.

Para acessar a opção utilize o menu CONFIGURAÇÕES e a opção PERFIL DE CORES DE VELOCIDADES.

## Elementos da Interface

### Tela de Listagem

Esta tela apresenta uma tabela com os perfis de cores de velocidade cadastrados no sistema, contendo as seguintes informações:

- **Seção de Filtros:**
    
    
    - Campo "Nome": Entrada de texto para filtragem dos perfis por nome
    - Botões de ação: Pesquisar, Limpar Filtros, Novo e Exportar para CSV
- **Tabela de Perfis:**
    
    
    - Coluna "NOME": Nome do perfil de cores
    - Coluna "Faixa 1": Mostra uma amostra da cor e o intervalo de velocidade da primeira faixa
    - Coluna "Faixa 2": Mostra uma amostra da cor e o intervalo de velocidade da segunda faixa
    - Coluna "Faixa 3": Mostra uma amostra da cor e o intervalo de velocidade da terceira faixa
    - Coluna "Faixa 4": Mostra uma amostra da cor e o intervalo de velocidade da quarta faixa
- **Paginação:**
    
    
    - Indicador de registros exibidos (ex: "1 - 3 de 3")
    - Controles de navegação entre páginas

### Tela de Edição/Cadastro

Esta tela permite criar novos perfis ou editar os existentes:

- **Campos de Entrada:**
    
    
    - Campo "Nome": Entrada de texto para o nome do perfil (obrigatório)
    - **Seção Faixa 1:**
        
        
        - Seletor de cor: Permite escolher a cor para a faixa 1 (valor padrão: #FFFF00 - amarelo)
        - Campo "Velocidade Início": Valor numérico para o início da faixa 1 (obrigatório)
        - Campo "Velocidade Fim": Valor numérico para o fim da faixa 1 (obrigatório)
    - **Seção Faixa 2:**
        
        
        - Seletor de cor: Permite escolher a cor para a faixa 2 (valor padrão: #00FF00 - verde)
        - Campo "Velocidade Início": Valor numérico para o início da faixa 2 (obrigatório)
        - Campo "Velocidade Fim": Valor numérico para o fim da faixa 2 (obrigatório)
    - **Seção Faixa 3:**
        
        
        - Seletor de cor: Permite escolher a cor para a faixa 3 (valor padrão: #FF0000 - vermelho)
        - Campo "Velocidade Início": Valor numérico para o início da faixa 3 (obrigatório)
        - Campo "Velocidade Fim": Valor numérico para o fim da faixa 3 (obrigatório)
    - **Seção Faixa 4:**
        
        
        - Seletor de cor: Permite escolher a cor para a faixa 4 (valor padrão: #FFFFFF - branco)
        - Campo "Velocidade Início": Valor numérico para o início da faixa 4 (obrigatório)
        - Campo "Velocidade Fim": Valor numérico para o fim da faixa 4 (obrigatório)
- **Botões de Ação:**
    
    
    - Botão "Gravar": Salva as alterações ou o novo registro
    - Botão "Excluir": Remove o perfil selecionado (disponível apenas ao editar um perfil existente)
    - Botão "Voltar": Retorna à tela de listagem sem salvar alterações

## Validações

O sistema implementa as seguintes validações para garantir a integridade dos dados:

1. Todos os campos de velocidade são obrigatórios
2. O campo nome é obrigatório
3. Para cada faixa, o valor de início deve ser menor que o valor de fim
4. As faixas não podem ter intersecção, ou seja: 
    - O fim da Faixa 1 deve ser menor que o início da Faixa 2
    - O fim da Faixa 2 deve ser menor que o início da Faixa 3
    - O fim da Faixa 3 deve ser menor que o início da Faixa 4
5. As validações são realizadas ao tentar gravar o perfil

## Propósito e Fluxo de Trabalho

O propósito desta funcionalidade é permitir configurar diferentes perfis de cores associados a faixas de velocidade. Estes perfis podem ser utilizados para:

- Visualizar de forma clara as velocidades dos veículos em relatórios e mapas
- Facilitar a identificação de comportamentos de condução inadequados
- Personalizar a visualização de acordo com os tipos de veículos ou rotas

**Fluxo de trabalho típico:**

1. Usuário acessa a tela de listagem de perfis
2. O usuário pode filtrar, visualizar ou exportar a lista de perfis existentes
3. Para criar um novo perfil, o usuário clica no botão "Novo"
4. Para editar um perfil existente, o usuário clica na linha correspondente na tabela
5. Na tela de edição/cadastro, o usuário configura as faixas de velocidade e suas cores
6. Ao finalizar, o usuário grava ou cancela (volta) as alterações

## Instruções Passo a Passo

### Como Criar um Novo Perfil de Cores

1. Na tela de listagem, clique no botão com ícone "+" (Novo)
2. Preencha o campo "Nome" com um nome descritivo para o perfil
3. Configure as cores e os intervalos de velocidade para cada faixa: 
    - Clique no seletor de cor para escolher a cor desejada para cada faixa
    - Preencha os valores de início e fim para cada faixa de velocidade
    - Certifique-se de que não há sobreposição entre as faixas (o fim de uma faixa deve ser menor que o início da próxima)
4. Clique no botão "Gravar" para salvar o novo perfil
5. Se houver erros de validação, corrija os campos indicados e tente novamente

### Como Editar um Perfil Existente

1. Na tela de listagem, clique na linha do perfil que deseja editar
2. Modifique os campos desejados: 
    - Altere o nome do perfil, se necessário
    - Ajuste as cores clicando nos seletores de cor
    - Ajuste os valores de início e fim das faixas de velocidade
3. Clique no botão "Gravar" para salvar as alterações
4. Se houver erros de validação, corrija os campos indicados e tente novamente

### Como Excluir um Perfil

1. Na tela de listagem, clique na linha do perfil que deseja excluir
2. Na tela de edição, clique no botão "Excluir"
3. Confirme a exclusão quando solicitado

### Como Filtrar Perfis

1. Na tela de listagem, digite o nome ou parte do nome do perfil no campo "Nome"
2. Clique no botão com ícone de lupa (Pesquisar)
3. Para limpar o filtro, clique no botão com ícone de arquivo (Limpar Filtros)

### Como Exportar a Lista para CSV

1. Na tela de listagem, configure os filtros desejados (opcional)
2. Clique no botão com ícone de disquete (Exportar para CSV)
3. O arquivo será baixado automaticamente no formato CSV

## Perguntas Frequentes

### Qual é a finalidade dos perfis de cores de velocidade?

Os perfis de cores de velocidade são utilizados para visualizar graficamente as variações de velocidade dos veículos durante os percursos. Cada faixa de velocidade é representada por uma cor diferente, facilitando a identificação de comportamentos de condução, como excesso de velocidade ou velocidade abaixo do ideal.

### Quantas faixas de velocidade posso configurar em um perfil?

O sistema permite configurar exatamente 4 faixas de velocidade para cada perfil.

### As faixas de velocidade podem se sobrepor?

Não, as faixas de velocidade não podem se sobrepor. O sistema valida se o fim de uma faixa é menor que o início da próxima faixa.

### Como faço para aplicar um perfil de cores a um veículo ou rota?

A atribuição de perfis a veículos ou rotas é realizada em outra tela do sistema. Neste módulo, você apenas cria e gerencia os perfis disponíveis.

### É possível ter diferentes perfis para diferentes tipos de veículos?

Sim, você pode criar múltiplos perfis de cores com configurações específicas para diferentes tipos de veículos ou cenários de uso.

### O que acontece se eu excluir um perfil que está sendo utilizado?

O sistema verifica se o perfil está sendo utilizado antes de permitir a exclusão. Se estiver em uso, você receberá uma mensagem de erro indicando que o perfil não pode ser excluído.

### Como posso ver quais veículos estão utilizando um determinado perfil?

Esta funcionalidade não está disponível nesta tela. Consulte o módulo de gerenciamento de veículos para obter esta informação.

### Posso usar a mesma cor para diferentes faixas de velocidade?

Sim, é tecnicamente possível usar a mesma cor para diferentes faixas, mas não é recomendado, pois dificulta a visualização das diferentes faixas de velocidade.

### As velocidades são sempre medidas em qual unidade?

As velocidades são sempre medidas em quilômetros por hora (km/h), embora a unidade não seja explicitamente exibida na interface.

# Cadastro de Pessoas

### Descrição da Interface

A funcionalidade de Gerenciamento de Pessoas com RFID é composto por duas telas principais. A primeira tela apresenta uma lista de pessoas cadastradas com seus respectivos cartões/chaveiros RFID, permitindo pesquisa através de diversos filtros. A segunda tela é um formulário para cadastro e edição das informações de cada pessoa.

A interface possui um design limpo e organizado, com cores claras e elementos bem espaçados. Utiliza um esquema visual consistente com o restante do sistema de gerenciamento de frota, mantendo a identidade visual da aplicação. Para acessar a opção utilize o menu CONFIGURAÇÕES e a opção CADASTRO DE PESSOAS.

## Elementos da Interface

### Tela de Listagem

#### Seção de Filtros

- **Matrícula**: Campo de texto para filtrar por número de matrícula
- **Nome**: Campo de texto para filtrar por nome da pessoa
- **Chaveiro/Cartão**: Campo de texto para filtrar por código do chaveiro ou cartão RFID
- **Setor**: Campo de texto para filtrar por setor da empresa
- **Somente Ativos**: Caixa de seleção para exibir apenas pessoas com status ativo

#### Botões da Barra de Ferramentas

- **Pesquisa**: Botão com ícone de lupa que executa a pesquisa com os filtros definidos
- **Limpar Filtros**: Botão que limpa todos os campos de filtro
- **Novo**: Botão que direciona para a tela de cadastro de nova pessoa
- **Exportar para CSV**: Botão que exporta os dados da tabela em formato CSV

#### Tabela de Dados

- **Colunas**: Matrícula, Nome, Chaveiro/Cartão, Setor, Status
- **Valores de Status**: ATIVO ou INATIVO
- **Comportamento**: Ao clicar em uma linha, o sistema direciona para a tela de edição do registro selecionado

#### Paginação

- Exibe a quantidade de registros sendo mostrados e o total
- Controle de navegação entre páginas

### Tela de Cadastro/Edição

#### Campos do Formulário

- **Matrícula**: Campo de texto para o número de matrícula do funcionário
- **Nome**: Campo de texto para o nome completo da pessoa (campo obrigatório)
- **Código Chaveiro/Cartão**: Campo de texto para o código RFID do chaveiro ou cartão (campo obrigatório)
- **Setor**: Campo de texto para o setor de trabalho da pessoa
- **Status**: Caixa de seleção que indica se o registro está ativo ou inativo

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

- **Gravar**: Salva as informações no banco de dados
- **Excluir**: Remove o registro (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 módulo de Gerenciamento de Pessoas com RFID tem como objetivo administrar os usuários do sistema que possuem cartões ou chaveiros com tecnologia RFID para identificação. Estes dispositivos são utilizados para controle de acesso, registro de presença, ou identificação do condutor em veículos da frota.

### Fluxo de Trabalho Típico

1. O administrador acessa a tela de listagem para visualizar as pessoas já cadastradas
2. Pode filtrar os registros usando os campos de pesquisa para encontrar pessoas específicas
3. Para adicionar uma nova pessoa, clica no botão "Novo"
4. Para modificar um cadastro existente, clica na linha correspondente na tabela
5. Na tela de cadastro/edição, preenche ou altera os dados necessários
6. Finaliza a operação salvando, excluindo ou voltando para a listagem

Uma regra de negócio importante é que não é possível ter dois usuários diferentes com o mesmo código de chaveiro/cartão RFID ativos simultaneamente. Caso tente ativar um código já em uso por outra pessoa, o sistema exibirá uma mensagem de erro.

## Instruções Passo a Passo

### Como Pesquisar Pessoas Cadastradas

1. Acesse a tela de listagem de Pessoas RFID
2. Preencha um ou mais campos de filtro conforme necessário: 
    - Digite uma matrícula específica
    - Digite um nome ou parte do nome
    - Digite o código do chaveiro/cartão
    - Digite o setor desejado
    - Marque "Somente Ativos" se quiser ver apenas os registros ativos
3. Clique no botão de Pesquisa (ícone de lupa)
4. A tabela será atualizada com os resultados que correspondem aos filtros aplicados
5. Para limpar todos os filtros, clique no botão "Limpar Filtros"

### Como Cadastrar uma Nova Pessoa

1. Na tela de listagem, clique no botão "Novo"
2. Na tela de cadastro, preencha os campos: 
    - Matrícula (opcional)
    - Nome (obrigatório)
    - Código Chaveiro/Cartão (obrigatório)
    - Setor (opcional)
    - Status (marcado = ativo, desmarcado = inativo)
3. Clique no botão "Gravar" para salvar o cadastro
4. Se houver algum erro de validação ou campo obrigatório não preenchido, o sistema exibirá uma mensagem
5. Após o salvamento bem-sucedido, você será redirecionado para a tela de listagem

### Como Editar um Cadastro Existente

1. Na tela de listagem, localize o registro desejado (use os filtros se necessário)
2. Clique na linha correspondente ao registro que deseja editar
3. Na tela de edição, altere os campos conforme necessário
4. Clique em "Gravar" para salvar as alterações
5. Para retornar sem salvar, clique em "Voltar"

### Como Excluir um Cadastro

1. Na tela de listagem, localize e clique no registro que deseja excluir
2. Na tela de edição, clique no botão "Excluir"
3. Confirme a operação quando solicitado
4. Após a exclusão, você será redirecionado para a tela de listagem

### Como Exportar Dados para CSV

1. Na tela de listagem, aplique os filtros desejados para selecionar os registros
2. Clique no botão "Exportar para CSV" (ícone de salvar)
3. O arquivo será baixado automaticamente com o nome "PessoaRFID.csv"
4. Abra o arquivo com um programa compatível como Excel ou LibreOffice Calc

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

1. **Campos Obrigatórios**:
    
    
    - Nome: não pode ser deixado em branco
    - Código Chaveiro/Cartão: não pode ser deixado em branco
2. **Unicidade de Chaveiro/Cartão Ativo**:
    
    
    - Não é permitido ter dois usuários diferentes com o mesmo código de chaveiro/cartão marcados como ativos
    - Se tentar ativar um código já em uso, o sistema exibirá uma mensagem de erro indicando qual pessoa já está usando o código
3. **Persistência de Dados**:
    
    
    - Todos os dados são armazenados no banco de dados e podem ser recuperados a qualquer momento
    - A exclusão de um registro é permanente e não pode ser desfeita
4. **Controle de Acesso**:
    
    
    - As permissões de gravar e excluir são baseadas nas configurações de acesso do usuário
    - Usuários com permissão "Master" têm acesso total a todas as operações
    - Usuários com permissão de "Grupo" podem ter restrições de acordo com suas configurações

## Perguntas Frequentes

### 1. É possível ter duas pessoas usando o mesmo código de chaveiro/cartão?

Não se ambas estiverem com status ativo. O sistema impede que dois usuários diferentes tenham o mesmo código de chaveiro/cartão RFID ativos simultaneamente. No entanto, é possível reutilizar um código se o usuário anterior estiver com status inativo.

### 2. Como desativar temporariamente um chaveiro/cartão sem excluir o cadastro?

Basta editar o registro da pessoa e desmarcar a opção "Status". Isso mantém todos os dados no sistema, mas marca o registro como inativo.

### 3. Por que recebo um erro ao tentar cadastrar um novo usuário?

Os erros mais comuns são:

- Nome ou Código de Chaveiro/Cartão em branco (ambos são campos obrigatórios)
- Tentativa de ativar um Código de Chaveiro/Cartão que já está em uso por outra pessoa

### 4. Como faço para transferir um chaveiro/cartão de uma pessoa para outra?

Primeiro, desative o usuário atual (desmarcando a opção "Status" no cadastro). Depois, você pode atribuir o mesmo código a outro usuário.

### 5. Posso exportar apenas uma parte dos dados?

Sim, basta aplicar os filtros desejados na tela de listagem antes de clicar no botão "Exportar para CSV". Apenas os registros exibidos na tabela serão exportados.

### 6. O sistema limita a quantidade de registros que posso cadastrar?

Não há limite específico para a quantidade de pessoas que podem ser cadastradas no sistema. O limite depende apenas da capacidade do banco de dados.

### 7. Perdi o cartão/chaveiro físico. Como proceder no sistema?

Você pode desativar o cadastro atual (desmarcando a opção "Status") e criar um novo registro com o código do novo cartão/chaveiro que será fornecido ao usuário.

### 8. É possível utilizar o mesmo número de matrícula para pessoas diferentes?

Sim, o sistema não impõe restrições de unicidade para o campo de matrícula, apenas para o código do chaveiro/cartão quando ativo.

# Pontuação de Avisos

## Visão Geral

A funcionalidade de Pontuação de Avisos é uma ferramenta essencial para gerenciamento de frota que permite configurar pontuações para diferentes tipos de eventos ou avisos gerados pelos veículos. Estas pontuações são utilizadas para medir o desempenho dos motoristas e a performance da frota, através da atribuição de valores numéricos (geralmente negativos) a determinados comportamentos ou eventos.

O sistema é composto por duas interfaces principais:

1. Uma tela de listagem que mostra todas as pontuações configuradas
2. Uma tela de edição para criar ou modificar as pontuações

As pontuações são organizadas por categorias (como Segurança, Performance, Agilidade) e tipos de avisos específicos (como Excesso de Velocidade, Freada Brusca, etc.). Para acessar a opção utilize o menu CONFIGURAÇÕES e a opção PONTUAÇÃO DE AVISOS.

## Interface de Listagem (Pontuações Avisos)

### Elementos da Interface

#### Cabeçalho

- **Título**: "Pontuações Avisos" - Identifica a funcionalidade da tela

#### Seção de Filtros

- **Título do Painel**: "Filtros" - Painel expansível/retrátil
- **Campo "Tipo do Aviso"**: Dropdown que permite selecionar entre diversos tipos de avisos predefinidos
- **Campo "Categoria do Aviso"**: Dropdown que permite selecionar entre as categorias disponíveis
- **Botões de Ação**: 
    - **Pesquisar** (ícone de lupa): Executa a busca com os filtros selecionados
    - **Limpar Filtros** (ícone de arquivo): Restaura os filtros para seu estado inicial
    - **Novo** (ícone de adição): Redireciona para a tela de criação de nova pontuação
    - **Exportar para CSV** (ícone de salvar): Exporta os dados da tabela para um arquivo CSV

#### Tabela de Resultados

- **Colunas**: 
    - **CATEGORIA**: Exibe a categoria do aviso (ex.: Segurança, Performance, Agilidade)
    - **AVISO**: Exibe o tipo de aviso específico
    - **PONTUAÇÃO**: Exibe o valor numérico da pontuação (geralmente negativo)
- **Dados**: 
    - Cada linha representa uma configuração de pontuação para um tipo específico de aviso
    - Os valores de pontuação são mostrados com duas casas decimais

#### Paginação

- **Indicador de Registros**: Mostra a faixa de registros exibidos e o total disponível (ex.: "1 - 15 de 15")
- **Controles de Paginação**: Botões para navegar entre as páginas de resultados

## Interface de Edição (Pontuação Aviso)

### Elementos da Interface

#### Cabeçalho

- **Título**: "Pontuação Aviso" - Identifica a funcionalidade da tela

#### Formulário de Edição

- **Campo "Categoria do Aviso"**: Dropdown que permite selecionar a categoria do aviso (obrigatório) 
    - Valores possíveis: Segurança, Performance, Agilidade, etc.
- **Campo "Tipo do Aviso"**: Dropdown que permite selecionar o tipo específico de aviso (obrigatório) 
    - Valores possíveis: Excesso de Velocidade, Freada Brusca, RPM acima do limite, etc.
- **Campo "Pontuação"**: Campo numérico para inserir o valor da pontuação (obrigatório) 
    - Formato: Numérico com duas casas decimais
    - Valores típicos: Números negativos (ex.: -2,50, -10,01, -15,00)

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

- **Gravar**: Salva as alterações e retorna à tela de listagem
- **Excluir**: Remove a pontuação existente (visível apenas ao editar um registro existente)
- **Voltar**: Retorna à tela de listagem sem salvar alterações

#### Painel de Erros

- Exibe mensagens de validação quando o formulário contém erros

## Operações Principais

### Como Pesquisar Pontuações

1. Na tela de listagem, expanda o painel "Filtros" se ele estiver recolhido
2. Selecione um "Tipo do Aviso" no dropdown correspondente (opcional)
3. Selecione uma "Categoria do Aviso" no dropdown correspondente (opcional)
4. Clique no botão de pesquisa (ícone de lupa)
5. A tabela será atualizada mostrando apenas os registros que correspondem aos filtros aplicados

### Como Criar uma Nova Pontuação

1. Na tela de listagem, clique no botão "Novo" (ícone de adição)
2. Na tela de edição, selecione a "Categoria do Aviso" no dropdown correspondente
3. Selecione o "Tipo do Aviso" no dropdown correspondente
4. Digite o valor da "Pontuação" (geralmente um número negativo)
5. Clique no botão "Gravar"
6. Se todas as informações estiverem corretas, o sistema salvará a nova pontuação e redirecionará para a tela de listagem
7. Se houver erros de validação, eles serão exibidos no painel de erros

### Como Editar uma Pontuação Existente

1. Na tela de listagem, clique na linha da tabela correspondente à pontuação que deseja editar
2. Na tela de edição, modifique os campos conforme necessário: 
    - "Categoria do Aviso"
    - "Tipo do Aviso"
    - "Pontuação"
3. Clique no botão "Gravar"
4. Se todas as informações estiverem corretas, o sistema salvará as alterações e redirecionará para a tela de listagem
5. Se houver erros de validação, eles serão exibidos no painel de erros

### Como Excluir uma Pontuação

1. Na tela de listagem, clique na linha da tabela correspondente à pontuação que deseja excluir
2. Na tela de edição, clique no botão "Excluir"
3. O sistema removerá a pontuação e redirecionará para a 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 sistema gerará um arquivo CSV contendo os dados da tabela e iniciará o download

## Regras de Negócio

1. **Unicidade de Tipo de Aviso**:
    
    
    - Não é permitido configurar mais de uma pontuação para o mesmo tipo de aviso
    - Se o usuário tentar criar uma pontuação para um tipo de aviso que já existe, o sistema exibirá uma mensagem de erro
2. **Campos Obrigatórios**:
    
    
    - Todos os campos (Categoria do Aviso, Tipo do Aviso e Pontuação) são obrigatórios
    - Se algum campo não for preenchido, o sistema exibirá mensagens de validação
3. **Formato da Pontuação**:
    
    
    - As pontuações são representadas com duas casas decimais
    - Geralmente são valores negativos, indicando penalidades
4. **Permissões**:
    
    
    - A capacidade de gravar (criar/editar) e excluir pontuações depende das permissões do usuário
    - Usuários com acesso "Master" têm permissão total
    - Usuários com acesso "Grupo" dependem de configurações adicionais

## Perguntas Frequentes

### O que são as pontuações de avisos?

As pontuações de avisos são valores atribuídos a eventos específicos detectados durante a operação dos veículos. Geralmente são valores negativos que representam penalidades por comportamentos indesejados, como excesso de velocidade ou freadas bruscas. Estas pontuações são utilizadas para avaliar o desempenho dos motoristas e a eficiência da frota.

### Por que as pontuações são geralmente negativas?

As pontuações são concebidas como um sistema de penalidades, onde valores negativos representam deduções na avaliação de desempenho. Quanto mais negativa a pontuação, maior a penalidade associada ao evento.

### Como as categorias de avisos são utilizadas?

As categorias de avisos (como Segurança, Performance, Agilidade) ajudam a organizar os diferentes tipos de eventos monitorados. Elas permitem agrupar eventos relacionados e facilitar a análise por área de interesse.

### É possível ter mais de uma pontuação para o mesmo tipo de aviso?

Não, o sistema não permite configurar mais de uma pontuação para o mesmo tipo de aviso. Se você tentar criar uma nova pontuação para um tipo de aviso que já existe, o sistema exibirá uma mensagem de erro.

### Como as pontuações afetam o sistema de gerenciamento de frota?

As pontuações são utilizadas pelo sistema para calcular métricas de desempenho dos motoristas e da frota. Elas podem influenciar relatórios, dashboards e até mesmo alertas automatizados quando determinados limites são atingidos.

### Quem pode configurar as pontuações de avisos?

A capacidade de configurar pontuações depende das permissões do usuário no sistema. Usuários com acesso "Master" têm permissão total, enquanto usuários com acesso "Grupo" dependem de configurações adicionais.

### É possível exportar as configurações de pontuação?

Sim, na tela de listagem existe um botão "Exportar para CSV" que permite exportar todas as configurações de pontuação para um arquivo CSV.

### Por que algumas pontuações têm valores mais negativos que outras?

Os valores das pontuações refletem a gravidade dos eventos. Eventos mais críticos para a segurança ou eficiência operacional recebem pontuações mais negativas, indicando uma penalidade maior.

# Som de Avisos

## Descrição da Interface

A funcionalidade de Configuração de Som de Avisos é uma funcionalidade que permite aos usuários associar diferentes notificações sonoras a diversos tipos de alertas do sistema de gerenciamento de frota. Através desta interface, os administradores podem personalizar qual som será reproduzido para cada tipo de evento ou alerta detectado pelo sistema, proporcionando uma experiência auditiva personalizada que facilita a identificação rápida de situações específicas. Para acessar a opção utilize o menu CONFIGURAÇÕES e a opção SOM DE AVISOS.

A interface é composta por duas telas principais:

1. **Tela de Listagem**: Exibe todas as configurações existentes em formato tabular, com filtros e opções para adicionar, editar ou exportar registros.
2. **Tela de Edição/Cadastro**: Permite criar novas associações entre tipos de avisos e sons ou modificar as existentes.

## Elementos da Interface

### Tela de Listagem (Configurações do Som de Avisos)

#### Componentes de Filtro

- **Tipo do Aviso**: Campo de seleção (dropdown) que permite filtrar por um tipo específico de aviso 
    - Valores possíveis: Todos os tipos de avisos cadastrados no sistema (ex: Aceleração Brusca, Aviso Veículo Ligado, etc.)
    - Opcional (pode ser deixado em branco para exibir todos os registros)

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

- **Pesquisar** (ícone de lupa): Aplica os filtros selecionados à listagem
- **Limpar Filtros** (ícone de arquivo): Remove todos os critérios de filtro aplicados
- **Novo** (ícone de adição): Redireciona para a tela de cadastro de nova configuração
- **Exportar para CSV** (ícone de salvar): Gera um arquivo CSV com os dados da tabela atual

#### Tabela de Registros

- **Colunas**: 
    - **TIPO AVISO**: Exibe o nome do tipo de alerta (ex: Aceleração Brusca, Aviso Veículo Ligado)
    - **SOM**: Exibe o nome do arquivo de som associado ao aviso (ex: Notificacao 6)
- **Funcionalidade**: Clicar em qualquer linha da tabela redireciona para a tela de edição daquele registro

#### Controles de Paginação

- **Indicador de Registros**: Mostra a faixa de registros sendo exibida e o total (ex: 1-4 de 4)
- **Controles de Página**: Botões para navegar entre as páginas da tabela

### Tela de Edição/Cadastro (Configuração do Som de Aviso)

#### Campos de Formulário

- **Tipo do Aviso**: Campo de seleção obrigatório (dropdown) 
    - Valores possíveis: Lista completa de tipos de avisos do sistema (obtida de CONSTANTE\_TIPOS\_AVISOS\_SEM\_TODOS)
    - Validação: Campo obrigatório
- **Som**: Campo de seleção obrigatório (dropdown) com botão de reprodução ao lado 
    - Valores possíveis: Lista de arquivos de som disponíveis (obtida de CONSTANTE\_OPCAO\_NOME\_ARQUIVO\_SOM)
    - Funcionalidade adicional: Botão de reprodução (ícone de play) que permite ouvir o som selecionado
    - Validação: Campo obrigatório

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

- **Gravar**: Salva as alterações ou o novo registro
- **Excluir**: Remove a configuração (visível apenas ao editar um registro existente)
- **Voltar**: Retorna para a tela de listagem sem salvar alterações

#### Área de Exibição de Erros

- Componente que exibe mensagens de erro de validação quando necessário

## Propósito e Fluxo de Trabalho

### Propósito

Esta funcionalidade permite configurar quais sons serão emitidos para diferentes tipos de eventos no sistema de gerenciamento de frota. Isso possibilita aos usuários identificar rapidamente situações específicas através de alertas sonoros distintos, melhorando a eficiência no monitoramento da frota.

### Fluxo de Trabalho

1. **Visualização das Configurações Existentes**:
    
    
    - O usuário acessa a tela de listagem para ver todas as associações de som-aviso já configuradas
    - Pode filtrar a lista por tipo de aviso para localizar configurações específicas
2. **Criação de Nova Configuração**:
    
    
    - O usuário clica no botão "Novo"
    - Seleciona o tipo de aviso desejado
    - Escolhe um som da lista de opções
    - Pode testar o som usando o botão de reprodução
    - Confirma a criação clicando em "Gravar"
3. **Edição de Configuração Existente**:
    
    
    - O usuário clica em uma linha da tabela de configurações
    - Modifica o tipo de aviso e/ou o som associado
    - Pode testar o novo som usando o botão de reprodução
    - Confirma as alterações clicando em "Gravar"
4. **Exclusão de Configuração**:
    
    
    - O usuário acessa a tela de edição de uma configuração existente
    - Clica no botão "Excluir"
    - Sistema remove a associação entre aquele tipo de aviso e o som
5. **Exportação de Dados**:
    
    
    - O usuário pode exportar as configurações em formato CSV para análise externa

## Instruções Passo a Passo

### Como Visualizar e Filtrar Configurações

1. Acesse o menu principal e selecione "Configurações do Som de Avisos"
2. A tela exibirá uma tabela com todas as configurações existentes
3. Para filtrar por tipo de aviso: 
    - Clique no dropdown "Tipo do Aviso"
    - Selecione o tipo desejado na lista
    - Clique no botão de pesquisa (ícone de lupa)
4. Para limpar os filtros, clique no botão com ícone de arquivo

### Como Criar uma Nova Configuração de Som

1. Na tela de listagem, clique no botão com ícone de adição ("+")
2. No formulário que aparece: 
    - Selecione o "Tipo do Aviso" no primeiro dropdown
    - Selecione o "Som" no segundo dropdown
    - Para ouvir o som selecionado, clique no botão de play ao lado
3. Clique no botão "Gravar" para salvar a configuração
4. Se houver erros de validação, eles serão exibidos na parte superior do formulário

### Como Editar uma Configuração Existente

1. Na tabela de configurações, clique na linha que deseja editar
2. No formulário que aparece, modifique os campos desejados: 
    - Altere o "Tipo do Aviso" e/ou o "Som"
    - Para ouvir o som selecionado, clique no botão de play
3. Clique no botão "Gravar" para salvar as alterações

### Como Excluir uma Configuração

1. Na tabela de configurações, clique na linha que deseja excluir
2. Na tela de edição, clique no botão "Excluir"
3. Confirme a ação quando solicitado pelo sistema
4. O sistema retornará automaticamente para a tela de listagem

### Como Exportar as Configurações para CSV

1. Na tela de listagem, aplique os filtros desejados (opcional)
2. Clique no botão com ícone de salvar
3. O sistema irá gerar e baixar um arquivo CSV contendo os dados exibidos na tabela

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

### Validações de Formulário

- Tanto o "Tipo do Aviso" quanto o "Som" são campos obrigatórios
- O sistema valida se ambos os campos foram preenchidos antes de permitir o salvamento
- Ao tentar salvar sem preencher os campos obrigatórios, mensagens de erro serão exibidas

### Permissões e Restrições

- A capacidade de editar e excluir configurações depende do nível de permissão do usuário
- Usuários com capacidade "Master" sempre podem modificar as configurações
- Usuários com acesso de grupo precisam ter permissão específica para alterações
- O botão "Excluir" só é exibido quando se está editando um registro existente (com ID)

### Processo de Salvamento

- Ao gravar uma configuração, o sistema verifica se é uma inserção (novo registro) ou atualização
- Uma mesma configuração não pode ser duplicada (mesmo tipo de aviso com mesmo som)
- Após o salvamento, o usuário é redirecionado automaticamente para a tela de listagem

## Perguntas Frequentes

### Como saber qual som é o mais adequado para cada tipo de aviso?

Recomendamos que sons mais intensos ou distintos sejam associados a eventos críticos que exigem atenção imediata (como colisões ou falhas graves). Sons mais suaves podem ser usados para notificações informativas. Você pode testar cada som usando o botão de reprodução antes de confirmar a escolha.

### Posso ter mais de um tipo de aviso com o mesmo som?

Sim, é possível configurar vários tipos de avisos para utilizarem o mesmo arquivo de som. No entanto, isso pode reduzir a capacidade de identificação rápida do tipo de alerta apenas pelo áudio.

### É possível adicionar novos sons ao sistema?

Os sons disponíveis são predefinidos pelo sistema. Para adicionar novos arquivos de som, entre em contato com o administrador do sistema ou com o suporte técnico.

### O que acontece se eu excluir uma configuração de som?

Ao excluir uma configuração, aquele tipo específico de aviso não terá mais um som associado. Isso significa que quando esse evento ocorrer, nenhuma notificação sonora será reproduzida.

### Como a configuração de sons afeta a experiência em dispositivos móveis?

As configurações de som são aplicadas a todas as plataformas, incluindo aplicativos móveis. Certifique-se de que os sons escolhidos sejam adequados tanto para uso em escritório quanto em dispositivos móveis.

### Existe um limite de configurações que posso criar?

Não há um limite específico para o número de configurações, mas recomenda-se criar apenas as necessárias para facilitar a gestão. Idealmente, cada tipo de aviso importante deveria ter sua própria configuração de som.

### As configurações são aplicadas imediatamente?

Sim, assim que você salva uma configuração, ela é aplicada imediatamente no sistema. Todos os novos eventos do tipo configurado utilizarão o som associado.