# Importação de Pedidos por Arquivo Excel

## Descrição da Interface

O módulo "**Importação de Pedidos**" é uma ferramenta do sistema de gerenciamento de frota "CONCEPT RASTREAMENTO" que permite aos usuários importar dados de pedidos a partir de arquivos externos (XLSX, XLS ou CSV) para o sistema. A tela é dividida em três seções principais:

1. Uma seção superior com um título "Importação de Pedidos" e um mapa interativo que ocupa aproximadamente 40% da altura da tela.
2. Uma barra de ferramentas com botões de ação e opções de filtro.
3. Uma tabela de dados que exibe os pedidos importados com múltiplas colunas para visualização e validação dos dados.

O layout é moderno e funcional, otimizado para facilitar a visualização e validação de dados de pedidos antes da importação final.

Para acessar clique no menu **ROTEIRIZAÇÃO** opção **IMPORTAÇÃO DE PEDIDOS.**

## Elementos da Interface

### Mapa Interativo

- **Tipo**: Componente de mapa do Google
- **Funcionalidade**: Exibe a localização geográfica dos pedidos com marcadores
- **Controles**: Zoom in/out, arrastar para navegar
- **Propósito**: Validação visual das coordenadas dos pedidos

### Botões de Ação

- **Importar**: Abre um diálogo para selecionar e carregar arquivos de pedidos
- **Planilha Modelo**: Permite baixar um modelo de planilha para preenchimento

### Opções de Filtro

- **Exibir somente pedidos com erro**: Checkbox que filtra a visualização para mostrar apenas os pedidos com erros de validação
- **Aceitar Todos Duplicados**: Botão que marca todos os pedidos duplicados como aceitos
- **Aceitar Duplicado**: Botão que marca o pedido selecionado como aceito (ativo apenas quando um pedido duplicado está selecionado)
- **Gravar Pedidos**: Botão que inicia o processo de salvar os pedidos validados no sistema

### Tabela de Pedidos

A tabela contém as seguintes colunas:

1. **Seleção**: Coluna para selecionar pedidos individuais
2. **Status**: Ícone indicando o estado de validação do pedido
3. **Pedido**: Número identificador do pedido
4. **Data**: Data do pedido (formato YYYY-MM-DD)
5. **Hora**: Horário do pedido (formato HH:MM)
6. **Qtd**: Quantidade de itens no pedido
7. **R$**: Valor monetário total do pedido
8. **Descrição**: Descrição textual do pedido
9. **Ponto Interesse**: Código do ponto de interesse associado
10. **Endereço**: Endereço de entrega do pedido
11. **Zona**: Área geográfica de entrega
12. **Vendedor**: Nome do vendedor responsável
13. **Loja**: Estabelecimento de origem
14. **Peso**: Peso total do pedido
15. **Volume**: Volume total do pedido
16. **Hora Inicial**: Horário inicial da janela de entrega
17. **Hora Final**: Horário final da janela de entrega
18. **T. Atendimento**: Tempo estimado de atendimento
19. **Carregamento**: Número do carregamento
20. **Nota Fiscal**: Número da nota fiscal
21. **Latitude**: Coordenada geográfica (latitude)
22. **Longitude**: Coordenada geográfica (longitude)

### Diálogos (Popups)

1. **Diálogo de Importação de Arquivo**:
    
    
    - Título: "Selecione o arquivo que deseja importar"
    - Checkbox: "Arquivo do Control?" - para indicar se o arquivo vem do sistema Control
    - Componente de upload de arquivo: Aceita arquivos .xlsx, .xls, ou .csv
    - Área de mensagem: Exibe feedback sobre o resultado do upload
2. **Diálogo de Gravação de Pedidos**:
    
    
    - Título: "Informe o número do lote"
    - Campo de entrada: Para o número do lote
    - Botão: "Gravar Pedidos" - ativado apenas quando a entrada é válida e não há erros nos pedidos

### Paginação

- Indicador de número de registros: Mostra o intervalo atual e total de registros
- Controles de navegação: Botões para avançar/retroceder páginas
- Contador: "1 - 0 de 0" (quando não há dados)

## Validações e Tipos de Dados

### Campos da Tabela e Suas Validações

1. **Pedido**:
    
    
    - Tipo: Texto/Numérico
    - Validação: Deve ser único no sistema (gera erro de duplicação)
    - Obrigatório: Sim
2. **Data**:
    
    
    - Tipo: Data
    - Formato: YYYY-MM-DD
    - Validação: Data válida
    - Obrigatório: Sim
3. **Hora**:
    
    
    - Tipo: Hora
    - Formato: HH:MM
    - Validação: Horário válido entre 00:00 e 23:59
    - Obrigatório: Sim
4. **Qtd**:
    
    
    - Tipo: Numérico
    - Validação: Número inteiro positivo
    - Obrigatório: Sim
5. **R$**:
    
    
    - Tipo: Monetário
    - Validação: Valor numérico com até duas casas decimais
    - Obrigatório: Sim
6. **Descrição**:
    
    
    - Tipo: Texto
    - Obrigatório: Não
7. **Ponto Interesse**:
    
    
    - Tipo: Texto/Código
    - Validação: Deve existir no cadastro de pontos de interesse
    - Obrigatório: Não, mas recomendado
8. **Endereço**:
    
    
    - Tipo: Texto
    - Obrigatório: Sim, se não houver ponto de interesse
9. **Zona**:
    
    
    - Tipo: Referência
    - Validação: Deve existir no cadastro de zonas
    - Obrigatório: Sim
10. **Vendedor**:
    
    
    - Tipo: Referência
    - Validação: Deve existir no cadastro de vendedores
    - Obrigatório: Sim
11. **Loja**:
    
    
    - Tipo: Referência
    - Validação: Deve existir no cadastro de lojas
    - Obrigatório: Sim
12. **Peso**:
    
    
    - Tipo: Numérico
    - Validação: Valor positivo
    - Obrigatório: Não
13. **Volume**:
    
    
    - Tipo: Numérico
    - Validação: Valor positivo
    - Obrigatório: Não
14. **Hora Inicial**:
    
    
    - Tipo: Hora
    - Formato: HH:MM
    - Validação: Horário válido entre 00:00 e 23:59
    - Obrigatório: Não
15. **Hora Final**:
    
    
    - Tipo: Hora
    - Formato: HH:MM
    - Validação: Horário válido entre 00:00 e 23:59, deve ser posterior à Hora Inicial
    - Obrigatório: Não
16. **T. Atendimento**:
    
    
    - Tipo: Numérico
    - Validação: Valor positivo (em minutos)
    - Obrigatório: Não
17. **Carregamento**:
    
    
    - Tipo: Texto/Numérico
    - Obrigatório: Não
18. **Nota Fiscal**:
    
    
    - Tipo: Texto/Numérico
    - Obrigatório: Não
19. **Latitude**:
    
    
    - Tipo: Coordenada geográfica
    - Validação: Valor decimal válido entre -90 e 90
    - Obrigatório: Sim
20. **Longitude**:
    
    
    - Tipo: Coordenada geográfica
    - Validação: Valor decimal válido entre -180 e 180
    - Obrigatório: Sim

### Status de Validação de Pedidos

Os pedidos podem ter os seguintes estados de validação:

- **Válido**: Sem erros de validação
- **Erro**: Problemas com campos obrigatórios ou formatos inválidos
- **Erro de Latitude/Longitude**: Coordenadas inválidas ou ausentes
- **Duplicado**: Número de pedido já existente no sistema

## Propósito e Fluxo de Trabalho

O propósito desta tela é permitir a importação eficiente e validação de pedidos a partir de arquivos externos. O sistema está projetado para validar os dados antes da importação final, ajudando a garantir a integridade dos dados.

### Fluxo de Trabalho Principal:

1. O usuário clica no botão "Importar" para iniciar o processo.
2. No diálogo de importação, o usuário pode marcar se o arquivo é proveniente do sistema Control.
3. O usuário seleciona um arquivo para upload (.xlsx, .xls ou .csv).
4. O sistema processa o arquivo e apresenta os dados na tabela, realizando validações automáticas.
5. Os pedidos com erros são destacados, e o usuário pode filtrar para visualizar apenas esses registros.
6. O usuário pode resolver problemas, como aceitar pedidos duplicados.
7. Os pontos de entrega são exibidos no mapa para verificação visual.
8. Após validar todos os pedidos, o usuário clica em "Gravar Pedidos".
9. No diálogo de gravação, o usuário insere um número de lote (ou usa o gerado automaticamente).
10. O sistema salva os pedidos e oferece a opção de iniciar o processo de roteirização.

### Regras de Negócio:

- Os pedidos com o mesmo número são tratados como duplicados e precisam de aprovação manual.
- Os pedidos sem coordenadas geográficas válidas são marcados com erro.
- As referências (Zona, Vendedor, Loja) devem existir no cadastro do sistema.
- O sistema pode gerar automaticamente um número de lote para organizar os pedidos.
- Após a gravação, o sistema permite iniciar imediatamente o processo de roteirização.

## Instruções Passo a Passo

### Como Importar Pedidos

1. **Preparação do Arquivo**:
    
    
    - Recomenda-se usar o modelo de planilha baixado através do botão "Planilha Modelo".
    - Preencha todos os campos obrigatórios para cada pedido.
    - Salve o arquivo em formato Excel (.xlsx ou .xls) ou CSV (.csv).
2. **Upload do Arquivo**:
    
    
    - Clique no botão "Importar" na barra de ferramentas.
    - No diálogo exibido, marque a opção "Arquivo do Control?" se aplicável.
    - Clique na área de upload ou no botão "Anexar..." para selecionar o arquivo.
    - Selecione o arquivo desejado em seu computador.
3. **Validação dos Dados**:
    
    
    - Após o upload, o sistema processará o arquivo e exibirá os pedidos na tabela.
    - Verifique as mensagens de feedback na área de resultado.
    - Os pedidos com erros terão um ícone de status indicativo.
    - Utilize o checkbox "Exibir somente pedidos com erro" para filtrar problemas.
4. **Resolução de Problemas**:
    
    
    - Para pedidos duplicados, selecione o registro e clique em "Aceitar Duplicado".
    - Para aceitar todos os pedidos duplicados de uma vez, clique em "Aceitar Todos Duplicados".
    - Para pedidos com erros de coordenadas, verifique os valores de latitude e longitude.
    - Observe o mapa para confirmar visualmente a localização dos pedidos.
5. **Gravação dos Pedidos**:
    
    
    - Após validar todos os pedidos, clique no botão "Gravar Pedidos".
    - No diálogo exibido, insira um número de lote ou use o gerado automaticamente.
    - Clique em "Gravar Pedidos" para confirmar.
    - Após a gravação bem-sucedida, o sistema oferecerá a opção de iniciar a roteirização.

### Como Baixar o Modelo de Planilha

1. Clique no botão "Planilha Modelo" na barra de ferramentas.
2. O arquivo modelo MODELO\_IMPORTACAO\_PEDIDOS.xlsx será baixado para seu computador.
3. Abra o arquivo e preencha-o com os dados dos pedidos a serem importados.

## Perguntas Frequentes

### 1. Quais formatos de arquivo são aceitos para importação?

O sistema aceita arquivos nos formatos Excel (.xlsx, .xls) e CSV (.csv). É recomendável utilizar o modelo de planilha fornecido pelo sistema para garantir a compatibilidade.

### 2. O que significa a opção "Arquivo do Control"?

Esta opção deve ser marcada quando o arquivo de importação é proveniente do sistema Control, que possui um formato específico. O sistema adaptará a leitura do arquivo para esse formato especial.

### 3. Como resolver pedidos com erro de coordenadas?

Pedidos com erros de latitude e longitude precisam ter esses valores corrigidos. Você pode verificar visualmente no mapa se as coordenadas estão corretas. Se necessário, corrija os valores no arquivo original e faça o upload novamente, ou ajuste manualmente os registros com problemas.

### 4. Por que alguns pedidos aparecem como duplicados?

Pedidos são considerados duplicados quando seu número já existe no sistema ou quando há múltiplos pedidos com o mesmo número no arquivo de importação. Você pode usar as opções "Aceitar Duplicado" ou "Aceitar Todos Duplicados" para prosseguir com a importação mesmo assim.

### 5. O que é o número de lote?

O número de lote é um identificador único para o conjunto de pedidos importados. Ele é utilizado para organizar os pedidos e facilitar a roteirização posterior. O sistema pode gerar automaticamente um número de lote, ou você pode especificar um de sua preferência.

### 6. Como funciona a roteirização após a importação?

Após gravar os pedidos com sucesso, o sistema oferece a opção de iniciar o processo de roteirização. Se aceito, você será redirecionado para a tela de roteirização, onde poderá definir rotas otimizadas para entrega dos pedidos importados.

### 7. Posso importar pedidos sem coordenadas geográficas?

Não. As coordenadas de latitude e longitude são obrigatórias para todos os pedidos, pois são essenciais para o processo de roteirização. Pedidos sem coordenadas válidas serão marcados com erro e não poderão ser importados até que esses dados sejam fornecidos.

### 8. Quais são os campos obrigatórios para importação?

Os campos obrigatórios são: Número do Pedido, Data, Hora, Quantidade, Valor, Zona, Vendedor, Loja, Latitude e Longitude. Além disso, é necessário fornecer um Endereço se não houver um Ponto de Interesse associado.

### 9. Como corrigir erros de referência (Zona, Vendedor, Loja)?

Esses erros ocorrem quando as referências no arquivo não existem no cadastro do sistema. Você precisa verificar os códigos ou nomes utilizados e ajustá-los para corresponder aos registros válidos no sistema. Consulte as listas de Zonas, Vendedores e Lojas disponíveis se necessário.

### 10. O que acontece se eu fechar a tela antes de gravar os pedidos?

Se você fechar a tela antes de gravar os pedidos, todos os dados importados e validações realizadas serão perdidos. É necessário completar o processo de importação e gravação para que os pedidos sejam salvos no sistema.

## Considerações Técnicas

A tela de "Importação de Pedidos" foi implementada com Vue.js para o frontend e Java para o backend. A comunicação entre cliente e servidor ocorre via requisições HTTP, com troca de dados em formato JSON ou XML.

O sistema realiza validações tanto no cliente quanto no servidor para garantir a integridade dos dados. O mapa interativo utiliza a API do Google Maps para exibir visualmente a localização dos pedidos.

A interface foi projetada para ser responsiva e funcionar em diferentes tamanhos de tela, com foco na usabilidade e eficiência operacional. A tabela de dados utiliza o componente AgGrid para exibição dos pedidos, permitindo ordenação, filtragem e seleção de registros.

O processo de importação foi otimizado para lidar com grandes volumes de dados, realizando o processamento em lotes quando necessário.