# Rotas de Viagens

## Descrição Geral

O módulo "**Rotas de Viagem"** é uma ferramenta completa projetada para criar, gerenciar e otimizar rotas de viagem para frotas de veículos. A interface permite aos usuários definir rotas personalizadas através da adição de pontos geográficos (cidades, endereços ou pontos de interesse), visualizar essas rotas em um mapa interativo, e calcular distâncias precisas entre os pontos estabelecidos.

Para acessar clique no menu **VIAGENS** opção **ROTAS DE VIAGENS**.

## Elementos da Interface

### Tela de Pesquisa (Lista de Rotas)

Esta tela principal apresenta as rotas cadastradas no sistema, com opções de filtro e navegação.

#### Componentes:

- **Cabeçalho**: "Rotas de Controle de Viagem"
- **Seção de Filtros**:
    
    
    - Campo de texto "Nome" para pesquisa de rotas por nome
    - Botões de ação: 
        - Pesquisar (ícone de lupa)
        - Limpar Filtros (ícone de arquivo)
        - Novo (ícone de adição)
        - Exportar para CSV (ícone de salvar)
- **Tabela de Resultados** com colunas:
    
    
    - Nome: Nome da rota cadastrada
    - Cidades: Lista de cidades/pontos que compõem a rota, separadas por |
    - A tabela permite seleção de linha para edição
- **Paginação** na parte inferior da tabela mostrando:
    
    
    - Informação de registros exibidos (ex: "1-17 de 49")
    - Botões de navegação entre páginas

### Tela de Edição/Cadastro

Esta tela permite a criação e edição detalhada de rotas de viagem.

#### Componentes:

- **Cabeçalho**: "Rota de Controle de Viagem"
- **Campo Nome**: Campo de texto para definir o nome da rota
- **Botões de Ação Principal**:
    
    
    - Gravar: Salva as alterações na rota
    - Excluir: Remove a rota (visível apenas em modo de edição)
    - Voltar: Retorna à tela de pesquisa
    - Criar Perímetro: Gera perímetro baseado na rota atual
    - Otimizar Todas: Reorganiza todos os pontos para otimizar percurso
    - Otimizar Intermediárias: Reorganiza apenas pontos intermediários
- **Informações de Cálculo**:
    
    
    - Distância: Mostra a distância total da rota em km
    - Distância (ida/volta): Mostra o dobro da distância para considerar retorno
- **Seção de Adição de Pontos**:
    
    
    - Campo "Endereço do Local": Permite digitar e pesquisar endereços a serem adicionados
    - Campo "Ponto de Interesse": Dropdown para selecionar pontos de interesse pré-cadastrados
    - Botão "Imprimir lista": Gera relatório imprimível dos pontos da rota
- **Tabela de Cidades/Pontos** com colunas:
    
    
    - Índice: Número sequencial do ponto na rota
    - Cidade: Nome da cidade/local/ponto
    - Ações: Botões para excluir o ponto e alterar sua posição (mover para cima/baixo)
- **Mapa Interativo**: Ocupa a metade direita da tela e exibe:
    
    
    - Pontos marcados na sequência da rota
    - Linha de traçado da rota entre os pontos
    - Controles de zoom (+ e -)
    - Opções de visualização (Mapa/Satélite)

### Janela de Criação de Perímetro

Uma janela modal para configurar a criação de perímetros baseados na rota.

#### Componentes:

- **Título**: "Criar perímetro a partir da rota"
- **Campo Numérico**: "Distância em Metros" (mínimo 400)
- **Seletor de Cor**: Para definir a cor do perímetro
- **Botão**: "Criar Perímetro"
- **Áreas de mensagem**: Para exibir erros ou confirmações

### Tela de Impressão de Lista

Uma tela específica para visualização e impressão de relatório de itinerário.

#### Componentes:

- **Cabeçalho**: "Lista de Itinerários da Rota de Viagem - \[Nome da Rota\]"
- **Botões**: 
    - Imprimir: Envia para impressora
    - Voltar: Retorna à tela de edição
- **Tabela de Pontos** com colunas: 
    - Número sequencial
    - Cidade/Local

## Fluxo de Trabalho e Funcionalidades

### Pesquisa de Rotas

1. O usuário acessa a tela de pesquisa
2. Pode filtrar por nome da rota
3. Visualiza as rotas existentes em formato de tabela
4. Pode selecionar uma rota para edição ou criar uma nova

### Criação/Edição de Rota

1. O usuário preenche o nome da rota
2. Adiciona pontos utilizando: 
    - Pesquisa de endereços: Digita no campo "Endereço do Local" e pressiona Enter ou o botão de adição
    - Seleção de pontos de interesse: Escolhe um ponto no dropdown e clica no botão de adição
3. Visualiza os pontos adicionados na tabela e no mapa
4. Pode reorganizar os pontos: 
    - Manualmente: Usando os botões de mover para cima/baixo
    - Automaticamente: Usando os botões de otimização
5. Verifica as distâncias calculadas
6. Salva a rota usando o botão "Gravar"

### Otimização de Rotas

- **Otimizar Todas**: Reorganiza todos os pontos da rota para criar o percurso mais eficiente
- **Otimizar Intermediárias**: Mantém os pontos inicial e final, reorganizando apenas os intermediários

### Criação de Perímetro

1. O usuário clica no botão "Criar Perímetro"
2. Define a distância em metros (mínimo 400m)
3. Escolhe uma cor para o perímetro
4. Confirma a criação do perímetro

### Impressão de Lista

1. O usuário clica no botão "Imprimir lista"
2. Visualiza o relatório formatado para impressão
3. Pode imprimir ou voltar à tela de edição

## Regras de Negócio

1. **Validações do Formulário**:
    
    
    - Nome da rota é obrigatório
    - Uma rota deve ter pelo menos um ponto
    - Uma rota não pode exceder 45 pontos
    - Ao criar perímetro, a distância mínima é de 400 metros da rota
2. **Cálculo de Distâncias**:
    
    
    - O sistema calcula automaticamente a distância total da rota em km
    - A distância ida/volta é o dobro da distância calculada
    - Para rotas com mais de 23 pontos, o sistema divide o cálculo em segmentos
3. **Manipulação de Pontos**:
    
    
    - Um ponto pode ser removido da rota
    - Um ponto pode ser movido para cima ou para baixo na sequência
    - O primeiro ponto não pode ser movido para cima
    - O último ponto não pode ser movido para baixo
4. **Otimização de Rotas**:
    
    
    - A otimização total reorganiza todos os pontos
    - A otimização de intermediárias mantém fixos os pontos de início e fim
    - A otimização requer pelo menos 2 pontos na rota
5. **Criação de Perímetro**:
    
    
    - Requer que a rota tenha nome definido
    - Requer que a rota esteja visualizada no mapa
    - A distância mínima é de 400 metros da linha da rota
    - Uma cor deve ser definida para o perímetro

## Instruções Passo a Passo

### Como Criar uma Nova Rota

1. Na tela de pesquisa, clique no botão com ícone de adição (Novo)
2. Na tela de edição, digite um nome para a rota no campo "Nome"
3. Adicione pontos usando um dos métodos: 
    - Digite um endereço no campo "Endereço do Local" e pressione Enter ou o botão de adição
    - Selecione um ponto de interesse no dropdown e clique no botão de adição
4. Observe os pontos sendo adicionados à tabela e ao mapa
5. Verifique a distância calculada e ajuste a rota se necessário
6. Clique em "Gravar" para salvar a rota

### Como Editar uma Rota Existente

1. Na tela de pesquisa, localize a rota desejada (use o filtro se necessário)
2. Clique na linha da rota para abrir a tela de edição
3. Modifique o nome se necessário
4. Adicione novos pontos ou remova pontos existentes
5. Reorganize os pontos usando os botões de movimento ou otimização
6. Clique em "Gravar" para salvar as alterações

### Como Otimizar uma Rota

1. Na tela de edição, adicione todos os pontos desejados na rota
2. Para otimizar toda a rota, clique em "Otimizar Todas"
3. Para manter os pontos inicial e final e otimizar apenas os intermediários, clique em "Otimizar Intermediárias"
4. Observe a reorganização dos pontos na tabela e no mapa
5. Verifique a nova distância calculada
6. Caso esteja satisfeito, clique em "Gravar"

### Como Criar um Perímetro a partir da Rota

1. Na tela de edição, verifique se a rota está nomeada e visualizada no mapa
2. Clique no botão "Criar Perímetro"
3. Digite a distância desejada em metros (mínimo 400)
4. Selecione uma cor para o perímetro
5. Clique em "Criar Perímetro"
6. Aguarde a mensagem de confirmação

### Como Imprimir a Lista de Pontos da Rota

1. Na tela de edição, clique no botão "Imprimir lista"
2. Na nova tela, verifique se a lista está correta
3. Clique no botão "Imprimir"
4. Selecione sua impressora e configure as opções de impressão
5. Confirme a impressão

## Perguntas Frequentes

### Gerais

**P: Qual é o limite máximo de pontos que posso adicionar em uma rota?**  
R: Uma rota pode ter no máximo 45 pontos. O sistema exibirá um erro se você tentar adicionar mais pontos.

**P: Como faço para ver a distância total de uma rota incluindo retorno?**  
R: A distância ida/volta é calculada automaticamente e exibida abaixo da distância simples na tela de edição.

**P: Posso adicionar o mesmo local mais de uma vez na rota?**  
R: Sim, o sistema permite adicionar o mesmo local (endereço ou ponto de interesse) múltiplas vezes em uma rota.

### Pontos e Endereços

**P: Como adiciono um endereço que não está na lista de pontos de interesse?**  
R: Digite o endereço no campo "Endereço do Local" e pressione Enter ou clique no botão de adição. O sistema tentará geocodificar o endereço.

**P: O que acontece se um endereço não for encontrado?**  
R: O sistema exibirá uma mensagem informando que o endereço não foi encontrado. Tente especificar melhor o endereço ou use coordenadas.

**P: Como reorganizo a ordem dos pontos na rota?**  
R: Use os botões de seta para cima e para baixo na tabela de pontos para mover cada ponto individualmente, ou use os botões de otimização para reorganizar automaticamente.

### Otimização

**P: Qual a diferença entre "Otimizar Todas" e "Otimizar Intermediárias"?**  
R: "Otimizar Todas" reorganiza todos os pontos da rota para encontrar o caminho mais eficiente. "Otimizar Intermediárias" mantém os pontos inicial e final fixos, reorganizando apenas os pontos intermediários.

**P: A otimização garante sempre o caminho mais curto?**  
R: A otimização busca o caminho mais eficiente considerando as estradas disponíveis e restrições de tráfego, mas pode haver variações dependendo de condições específicas.

### Perímetros

**P: O que é um perímetro de rota e para que serve?**  
R: Um perímetro é uma área ao redor da rota que pode ser usada para monitoramento ou análise. Por exemplo, pode ser usado para alertas quando veículos saem do perímetro esperado.

**P: Por que a distância mínima para criar um perímetro é de 400 metros?**  
R: Esta é uma restrição do sistema para garantir que o perímetro seja amplo o suficiente para cobrir variações normais de rota e possíveis desvios pequenos.

**P: O que acontece com o perímetro quando modifico a rota?**  
R: Perímetros são entidades separadas. Se você modificar a rota, precisará criar um novo perímetro baseado na rota atualizada.

### Impressão e Exportação

**P: Como exporto minha lista de rotas para Excel?**  
R: Na tela de pesquisa, clique no botão "Exportar para CSV". O arquivo gerado pode ser aberto no Excel.

**P: A impressão da lista inclui o mapa?**  
R: Não, a impressão da lista inclui apenas os nomes dos pontos na ordem da rota, sem o mapa.

**P: Posso imprimir o mapa com a rota traçada?**  
R: Sim, na tela de edição há um botão para imprimir o mapa atual com a rota traçada e os pontos marcados.