Objetivo
Centralizar todos os mecanismos de sistema (automatismos, APIs, webhooks, flags, filtros, travas) que operam no fluxo do pedido. Cada processo individual descreve o que a pessoa faz e o que o sistema faz naquela etapa — este documento é o índice inverso: dado um mecanismo de sistema, onde ele atua e qual processo o detalha.
Serve para responder perguntas como: “o que acontece automaticamente quando eu avanço para Ag. Impressão?”, “como funciona o pintar produto?”, “que flags existem no ERP?“.
Dois sistemas distintos
A Neofarma opera com dois sistemas que se comunicam por campos compartilhados, não por integração direta:
| Sistema | Escopo | Quem usa | O que contém |
|---|---|---|---|
| ERP de vendas | Ciclo comercial do pedido (Criado→Entregue) | Atendente, Administrativo, Expedição | Pedido de venda, cliente, produtos, preços, status, OCR, flags, filtro de previsão |
| Sistema de produção | Ciclo técnico (REQ→produto manipulado) | Atendente (cria REQ), Produção inteira | Pedido de produção (REQ), composição técnica, data/hora de retirada, séries |
A ponte entre eles é a atribuição de REQ + séries ao pedido de venda (ver Fase 2). A partir dessa atribuição, o casamento é determinístico por reqNumber + reqSerie.
Cada sistema tem filtros próprios que olham datas diferentes. Ver Dois sistemas, dois filtros para a tabela completa.
Mecanismos automáticos (webhooks e triggers)
1. Webhook de pagamento (Liberado → Pago)
- Trigger: Gateway de pagamento confirma pagamento
- O que faz: Avança o pedido de Liberado para Pago automaticamente. Neste momento, o ERP calcula a data de previsão de produção com base na hora do pagamento e no tipo de envio
- Exceção: Pagamento manual pela Gerente de Atendimento (crédito cliente) para urgências — sem webhook
- Processo que detalha: Cálculo automático da data de previsão de produção
2. Webhook de Ag. Impressão (Pago → Ag. Impressão)
- Trigger: Atendente avança pedido para Ag. Impressão (avanço manual, mas dispara webhook)
- O que faz: Dispara a conferência automática dos 3 documentos (OCR × Pedido × REQ). O agente verificador coleta dados, confere em dois níveis, e emite veredito
- Se aceito: Gera JSON consolidado + PDFs dos rótulos via API createLabel. Pedido permanece em Ag. Impressão
- Se rejeitado: Pedido volta para Pago com relatório de rejeição
- Processo que detalha: conferencia-automatica-ag-impressao
3. Avanço automático por produto (“pintar”)
- Mecanismo: Cada produto do pedido é marcado individualmente no sistema (“pintado”). Quando todos os produtos do pedido estão pintados, o sistema avança automaticamente para a próxima etapa
- Onde atua:
| Etapa | O que pinta | Quem pinta | Efeito quando todos pintados |
|---|---|---|---|
| Ag. Impressão → Impresso | Rótulo aberto | Setor de Impressão | Avança para Impresso → Ag. Triagem (automático) |
| Conferência 1 | Produto conferido × REQ | Conferente | Avança para Conferência 2 |
| Conferência 2 | Produto conferido × REQ × PV × OCR | Conferente | Avança para Produzido (Fechamento) |
| Ag. Fechamento → Fechado | Montagem da caixa confirmada | Conferente/Expedição ou Administrativo (12h) | Avança para Fechado |
- Regra: Se um produto não confere, não pintar. O pedido trava naquela etapa até todos os produtos serem resolvidos
- Processos que detalham: conferencia-producao (Conf. 1, 2 e Fechamento), Fase 3 (impressão)
API e geração de documentos
4. API createLabel (geração de rótulos)
- Input: JSON consolidado (gerado pela conferência automática)
- Output: PDFs dos rótulos — 1 PDF por unidade de cada produto (se PV tem produto X com quantidade 2, gera 2 rótulos)
- Dados que o rótulo contém: Nome do paciente (fonte prioritária: OCR), prescritor, composição (da REQ), posologia (do OCR), volume, forma farmacêutica
- Momento: Etapa Ag. Impressão, após veredito aceito da conferência automática
- Cristalização: Este é o ponto onde os dados se tornam físicos. Qualquer erro nos dados após esse ponto exige voltar até Pago para corrigir, regenerar JSON, e reimprimir
- Processo que detalha: Fase 4a
5. JSON consolidado (estrutura de dados verificada)
- O que é: Estrutura de dados que reúne informações dos 3 documentos (OCR, Pedido, REQ) após conferência automática. Cada campo indica a fonte, se há divergência, e o valor escolhido
- Quem consome: API createLabel (gera rótulos), Triagem (referência para alertas de data), Conferências 1 e 2 (referência de dados verificados)
- Estrutura completa: Ver Fase 4a — inclui bloco global (paciente, prescritor, comprador, destinatário, envio, datas, preço, contagem) e bloco por produto (identificação, apresentação, composição, posologia, pessoas, preço)
- Campos de destaque:
envio.conferencia_hora_tipo— resultado da validação hora × tipo de enviodatas.alerta— sinaliza divergência entre data de retirada e previsão (consumido pela Triagem)produtos[].composicao.ativos[].conferencia— resultado da comparação ativo a ativo entre OCR e REQ
6. Documentos gerados no PV (disponíveis após Ag. Impressão)
| # | Documento | Fonte | Geração | Quantidade |
|---|---|---|---|---|
| 1 | Prescrição (arquivo da receita) | OCR (receita digitalizada) | Anexada pelo Atendente | 1 por pedido |
| 2 | Validação da assinatura do prescritor | Sistema de validação | Gerada da assinatura digital | 1 por pedido |
| 3 | Comando de produção (ficha de pesagem) | REQ | Gerado dos dados da REQ | 1 por pedido (cobre todos os dígitos) |
| 4 | Rótulos | JSON consolidado → API createLabel | Gerados automaticamente | N rótulos (1 por unidade de cada produto) |
| 5 | Registro de entrega | Sistema (flag por produto) | Gerado se flag “registro de entrega” existe | 1 por produto com flag (só envio 19h) |
O Setor de Impressão imprime todos os 5 documentos — é executor puro. Detalhamento completo em Documentos disponíveis no PV após Ag. Impressão.
Flags e travas do ERP
7. Flag de alerta (bloqueio de expedição)
- Quem marca: Atendente, no pedido de venda dentro do ERP
- Efeito: Impede o sistema de avançar de Produzido para Postado. Pedido fica visível mas bloqueado na fila da Expedição
- Uso típico: “Cliente pediu para segurar envio”, “aguardando confirmação de endereço”
- Quem resolve: Atendente remove o flag após resolver a pendência
- Processo que detalha: Pré-requisitos para avançar de Produzido para Postado
8. Flag de prioridade
- Quem marca: Somente Gerente de Atendimento (atribuição exclusiva)
- Efeito: Previsão de produção automaticamente vira hoje. Exige reimpressão de documentos (rótulo/REQ impressa antes não reflete a prioridade)
- Uso típico: Pedido com retirada < previsão (antecipação), urgência
- Processo que detalha: Mecanismo de prioridade
9. Flag de registro de entrega (por produto)
- Quem marca: Quem cria o PV (Atendente ou Gerente de Atendimento), no campo do item dentro do pedido
- Efeito: Sistema gera automaticamente guia de transporte para aquele produto
- Escopo: Por produto (não por pedido) — num mesmo pedido 19h, pode haver produtos com e sem o flag
- Quem imprime: Setor de Impressão (regra); Conferente na Conf. 2 (fallback se não veio no pacote)
- Se não marcou: A guia não existe em nenhum lugar — o produto segue sem ela
- Processo que detalha: Registro de entrega especial (flag por produto, envio 19h)
10. Trava de consistência hora × tipo de envio
- O que trava: Sistema bloqueia avanço se hora :00 da REQ for inconsistente com tipo de envio do PV (ex: hora 15:00 mas tipo de envio é 12h)
- Quando desativa: Horas com :30 (esporádicos/extras) — a trava é desativada por definição
- Trava adicional: Todos os dígitos da REQ devem ter a mesma hora e a mesma data — se diferentes, trava
- Processo que detalha: Resumo das regras de validação de hora
11. Mecanismo de “segurar” pedido (não é flag)
- Como funciona: Atendente simplesmente não avança o pedido para Fechado, mesmo com todos os itens conferidos. Como o filtro da Expedição só mostra Fechados, o pedido não aparece na fila
- Diferença do flag de alerta: O flag bloqueia um pedido que já está em Fechado. O “segurar” impede que chegue a Fechado
- Processo que detalha: Mecanismo de “segurar” pedido
Filtros e filas de trabalho
12. Filtro padrão da produção
- Usado por: Triagem, Manipulação, Conferência 1, Conferência 2, Fechamento
- Lógica: Status = minha etapa + Data de retirada da REQ = hoje + Ordenação por hora (12:00→19:00, :30 intercalados)
- Sistema: Sistema de produção (não ERP de vendas)
- Processo que detalha: Como cada etapa enxerga o trabalho do dia
13. Filtro de previsão de produção (Administrativo D-1)
- Usado por: Administrativo, para preparar etiquetas e NFs do dia seguinte
- Lógica: Previsão de produção = amanhã (filtro “produção” do ERP de vendas)
- Sistema: ERP de vendas
- Diferença do filtro de produção: Olha previsão (calculada no Pago), não retirada (inserida na REQ). Na maioria dos casos coincidem, mas podem divergir
- Processo que detalha: Fase 1
14. Filtro da Expedição
- Usado por: Expedição
- Lógica: Status = Fechado + Sem filtro de data + Ordenação por tipo de envio/hora
- Sistema: ERP de vendas
- Diferença: Único filtro sem data — tudo que está Fechado é candidato a despacho
- Processo que detalha: Como a Expedição encontra o trabalho do dia
Cálculos automáticos
15. Cálculo de previsão de produção
- Momento: Instante do status Pago (webhook ou manual)
- Variáveis: Hora do pagamento (antes/depois das 14h) + tipo de envio do PV
- Resultado: D+1 para 17h/19h pagos antes das 14h; D+2 para 12h/15h pagos antes das 14h; +1 dia adicional se pago depois das 14h
- Cristalização: Calculada uma única vez. Mudar tipo de envio depois do Pago não recalcula a previsão
- Processo que detalha: Cálculo automático da data de previsão de produção
16. Numeração da REQ
- Formato: 6 dígitos sequenciais (ex: 204583). Cada produto do pedido recebe uma série sequencial (204583-1, 204583-2, 204583-3)
- Gerado por: Sistema de produção, ao criar o pedido de produção
- Uso: Identificador único do produto em todas as etapas seguintes. O casamento PV ↔ REQ é feito por
reqNumber + reqSerie - Processo que detalha: Fase 1
Integrações externas
17. Sistema externo de etiquetas
- Fluxo: Administrativo exporta CSV do ERP de vendas → importa no sistema de etiquetas → gera etiquetas + NFs → imprime
- Quando: D-1 (dia anterior à produção), antes das 19h
- Processo que detalha: Fase 1
18. Exportação de romaneio (CSV para transportadora)
- Fluxo: Expedição filtra Fechados por tipo de envio → exporta CSV do ERP → envia para transportadora
- Quando: D, fim do dia (19h). Um CSV por tipo de envio (12h, 15h, 17h, 19h). Pedidos :30 ficam fora do romaneio regular
- Processo que detalha: Fase 3
Gaps de sistema conhecidos
Gap: ausência do status Postado
Hoje “Fechado” é a última etapa no ERP, causando ambiguidade (Fechado hoje = pronto para enviar; Fechado ontem = deveria ter sido enviado). Workaround: voltar para Ag. Fechamento e avançar de novo. Solução futura: status Postado entre Fechado e Entregue. Ver Gap atual: ausência do status Postado.
Gap: previsão cristalizada no Pago
Mudar tipo de envio depois do Pago não recalcula a previsão. Se o tipo muda (ex: de 12h para 19h por pedido do cliente), a previsão continua com base no tipo original. Impacto: Administrativo pode gerar etiqueta baseada em previsão errada.
Relação com outros processos
Este documento é referência transversal para todos os processos da Cadeia 1:
- ciclo-pedido-executivo — cadeia completa Criado→Entregue
- geracao-req-producao — criação de REQ, atribuição, webhook Ag. Impressão
- conferencia-automatica-ag-impressao — conferência automática, JSON, createLabel
- conferencia-pedido-ocr — regras de conferência documental
- triagem-tecnica — triagem técnica, consumo de alertas do JSON
- manipulacao — manipulação, filtro padrão
- conferencia-producao — conferências 1, 2 e fechamento, pintar produto
- expedicao-e-transporte — expedição, flags, filtro da expedição
- faturamento-romaneio-rastreio — etiquetas D-1, romaneio CSV, rastreios
- regras-datas-filtros-producao — datas, filtros, tipos de envio, cálculos
- mapa-responsabilidades-etapas — quem faz o quê em cada etapa
Histórico de evolução
| Data | Mudança | Motivação |
|---|---|---|
| 2026-04-06 | Criação do documento centralizando 18 mecanismos de sistema já documentados nos processos individuais: webhooks (2), pintar (1), API (1), JSON (1), documentos PV (1), flags (3), travas (1), mecanismos (1), filtros (3), cálculos (2), integrações (2), gaps (2) | Sessão com João — agregar detalhes de sistema na documentação de processos |