Módulo: Controle de Entregas / Viagens
Plataforma: Carto360 (PostgreSQL + telas dinâmicas)
Última atualização: 29/08/2026
O sistema controla a logística de entregas, do faturamento até o pagamento do frete ao motorista. O fluxo é:
Pedido faturado → Geração de Carga → Romaneio → Encerramento → Relatórios
(disponível) (monta a viagem) (impressão) (entregas/retornos)
Finalidade: montar uma nova viagem selecionando pedidos e definindo entregas.
Filtros disponíveis:
Como usar:
Atalhos de teclado (nos produtos):
Validações:
Identificação visual:
Função chamada ao gerar: fn_viagem_gerar
Função que lista os pedidos: fn_viagem_pendentes
Finalidade: imprimir a lista de itens para o motorista.
Como acessar: botão de impressão na tela de geração (após gerar) ou na tela de encerramento.
Conteúdo:
Observação: o frete não aparece por item — apenas o total no rodapé.
Função chamada: fn_viagem_romaneio
Finalidade: registrar o que foi entregue e o que retornou.
Filtros disponíveis:
Como usar:
Comportamentos:
Funções chamadas:
fn_viagem_lista — lista as viagensfn_viagem_itens — itens da viagem no modalfn_viagem_finalizar — grava o encerramentoFinalidade: consultar viagens do período com itens, status e frete.
Filtros disponíveis:
Conteúdo:
Regras de exibição:
Impressão: botão "Imprimir Relatório" gera PDF em formato A4.
Funções chamadas:
fn_viagem_lista — cabeçalho e totaisfn_viagem_itens_periodo — itens do períodoTodas as funções ficam no schema public.
Lista os pedidos/itens faturados disponíveis para montar viagem.
| Parâmetro | Tipo | Descrição |
|---|---|---|
| p_filial_id | varchar | ID(s) da filial. Aceita múltiplos separados por vírgula, ou 0/vazio para todas |
| p_data_ini | varchar | Data inicial (YYYY-MM-DD) |
| p_data_fim | varchar | Data final (YYYY-MM-DD) |
Retorna: filial, dados do pedido, cliente, endereço, produto, quantidade, valor do item (já com abatimento) e forma de pagamento.
Regras: exclui itens já em viagem, itens devolvidos e aplica o abatimento por forma de pagamento configurada.
Cria uma nova viagem com os itens selecionados.
| Parâmetro | Tipo | Descrição |
|---|---|---|
| p_fatura_item_ids | varchar | IDs dos itens separados por vírgula |
| p_pessoa_id | varchar | ID do motorista |
| p_placa | varchar | Placa do veículo (opcional) |
| p_fretes | varchar | Frete por pedido no formato fatura=valor;fatura=valor |
| p_entidade_id | varchar | ID da entidade |
| p_filial_id | varchar | ID da filial |
| p_usuario_id | varchar | ID do usuário logado |
| p_observacao | varchar | Observação da viagem (opcional) |
| p_tipos | varchar | Tipo por item no formato itemId:E,itemId:R |
Retorna: OK:<numero_viagem> em caso de sucesso, ou ERRO: <motivo>.
Grava: cabeçalho da viagem, frete por pedido (tabela c_viagem_entrega_pedido) e itens com o valor congelado (com abatimento).
Retorna os dados para impressão do romaneio.
| Parâmetro | Tipo | Descrição |
|---|---|---|
| p_numero_viagem | numeric | Número da viagem |
Retorna: dados da viagem e itens de Entrega (frete mostrado apenas na 1ª linha de cada pedido).
Retorna os itens de uma viagem (usado no modal de encerramento).
| Parâmetro | Tipo | Descrição |
|---|---|---|
| p_viagem_id | varchar | ID da viagem |
Retorna: itens da viagem (exceto Retirados), com valor, frete e status.
Retorna os itens das viagens de um período (usado no relatório operacional).
| Parâmetro | Tipo | Descrição |
|---|---|---|
| p_filial_id | varchar | ID(s) da filial |
| p_data_ini | varchar | Data inicial |
| p_data_fim | varchar | Data final |
| p_status | varchar | Status da viagem (ou TODAS) |
| p_pessoa_id | varchar | ID do motorista (opcional) |
Retorna: itens com valor (com abatimento), frete por pedido, status e tipo.
Retorna o cabeçalho e totais das viagens de um período.
| Parâmetro | Tipo | Descrição |
|---|---|---|
| p_filial_id | varchar | ID(s) da filial |
| p_data_ini | varchar | Data inicial |
| p_data_fim | varchar | Data final |
| p_status | varchar | Status (ou TODAS) |
Retorna: por viagem — nº, data, motorista, placa, status, total de itens, entregues, retornados e valor do frete.
Cálculo do frete:
| Função | Finalidade |
|---|---|
| fn_viagem_finalizar | Grava o encerramento (itens entregues/retornados e motivo) |
| fn_viagem_motoristas | Busca motoristas por nome (usado no modal de seleção) |
| fn_tratar_filiais | Trata o filtro de filiais (aceita * e múltiplos IDs) |
| Campo | Descrição |
|---|---|
| c_viagem_entrega_id | Identificador único da viagem |
| numero_viagem | Número sequencial |
| data_viagem | Data da viagem |
| c_pessoa_id | Motorista |
| placa_veiculo | Placa |
| valor_pago | Total do frete |
| status | GERADA ou FINALIZADA |
| data_finalizacao | Data do encerramento |
| observacao | Observações |
| Campo | Descrição |
|---|---|
| c_viagem_entrega_item_id | Identificador único do item |
| c_viagem_entrega_id | Viagem a que pertence |
| c_fatura_id / c_fatura_item_id | Origem do faturamento |
| quantidade | Quantidade |
| valor_item | Valor do item (congelado, com abatimento) |
| tipo_entrega | E (Entrega) ou R (Retirada) |
| status | CARREGADO, ENTREGUE, RETORNADO ou RETIRADO |
| motivo_retorno | Motivo (quando retornado) |
| Campo | Descrição |
|---|---|
| c_viagem_entrega_pedido_id | Identificador único |
| c_viagem_entrega_id | Viagem a que pertence |
| c_fatura_id | Pedido |
| valor_frete | Valor do frete do pedido |
Por que existe: o frete é por pedido, não por item. Assim o valor não é duplicado quando um pedido tem vários itens, nem se perde quando um item retorna.
O frete é informado e cobrado por pedido, independente do número de itens. No romaneio e relatórios ele aparece uma única vez por pedido.
| Status | Significado |
|---|---|
| CARREGADO | Item na viagem, aguardando entrega |
| ENTREGUE | Entregue ao cliente |
| RETORNADO | Voltou sem ser entregue (com motivo) |
| RETIRADO | Cliente retirou na loja |
Alguns métodos de pagamento têm abatimento percentual configurado (tabela c_abatimento_metodo_pagamento). Quando um pedido usa esse método:
Itens já devolvidos (tabela c_fatura_devolucao_item) não aparecem na lista de pedidos disponíveis.
Verifique se:
Se o frete total estiver muito alto, pode ser cache da tela. Atualize a página. O frete correto é por pedido, somado uma vez.
O valor com abatimento é gravado no momento da viagem. Viagens antigas (geradas antes da configuração de abatimento) mostram o valor cheio. Viagens novas mostram o valor com desconto.
Confirme que a viagem tem itens ativos e que o número/ID informado está correto.
Verifique o período e o status selecionados. Se o filtro de motorista estiver em "Todos", a busca traz todas as viagens.
Documentação gerada para a equipe de suporte. Em caso de dúvidas sobre regras específicas, consultar o responsável técnico do módulo.