Pular para o conteúdo
← Voltar para os cases

Faturamento triangulado entre empresas, à prova de reprocessamento

O pedido nasce como insumo, passa por corte e é faturado como produto acabado por outra empresa do grupo. Controle de etapa idempotente e estorno em cascata quando uma nota é cancelada.

Setor
Indústria têxtil com corte e varejo
Período
2026
Atuação
Autoria integral
Escala
7 entregas incrementais em 4 semanas

2

empresas do grupo no mesmo fluxo

3

chaves no controle de etapa (romaneio, item, etapa)

7

entregas incrementais em 4 semanas

Tecnologias

InterSystems IRISObjectScriptGatilhos do ERPNF-eIntegração com PDV (Almode)Log de alterações nativo

Desafio

Uma indústria têxtil vende tecido cortado. O pedido nasce com o insumo, passa por uma operação de corte na matriz, vira produto acabado por uma tabela de equivalência e é transferido para a filial, que fatura para o cliente final. O ERP padrão não conhece esse desenho: para ele, cada empresa vê só a sua metade.

A primeira versão funcionava no caminho feliz. A produção trouxe o resto: um romaneio encerrado duas vezes com onze segundos de diferença duplicou a saída de estoque; cancelar a nota da filial apagava o pedido espelho em vez de devolvê-lo ao monitor; e a quantidade atendida era estornada duas vezes, uma pela customização e outra pela rotina padrão.

Solução

Idempotência por etapa. O encerramento do romaneio gera a saída do insumo e a entrada do acabado. Passei a registrar o progresso por romaneio, item e etapa: se o processo cai no meio e roda de novo, ele continua de onde parou e não repete movimento já feito.

Estorno em cascata. Cancelar a nota da filial ou a nota de transferência agora desfaz, na ordem certa, a quantidade atendida, os lançamentos do romaneio, o comprometido e o aceite, e recria o pedido espelho na filial. Cada estorno verifica se o padrão já fez a sua parte antes de fazer a dele. A dupla subtração foi diagnosticada lendo o log de alterações nativo do ERP, nó a nó, até achar quem gravava o quê.

Tradução no ponto certo. A troca de insumo por acabado acontecia na montagem da tela, então só abrir a tela já gravava dado. Mudei para o gatilho imediatamente anterior à geração da nota, com reversão no cancelamento da seleção.

Imposto da filial. O CFOP é recalculado e o ICMS usa a alíquota da UF da filial, não a do cliente do pedido, que é o que o padrão aplicaria.

Os casos que já tinham ficado inconsistentes foram corrigidos por scripts com simulação, backup e escopo conferido na base, um por incidente.

Resultado

Reprocessar deixou de ser perigoso: uma etapa que falha pode rodar de novo sem duplicar estoque. Cancelar uma nota passou a deixar pedido, estoque e espelho coerentes nas duas empresas, sem ajuste manual de dado. Tudo isso entrou por gatilhos, sem alterar o código do produto.

O que esse case mostra

Idempotência num ERP legado, sem transação distribuída, se constrói com controle explícito de etapa. Bug de dado se resolve com investigação no log, não com palpite. E customização convive com a rotina padrão quando cada estorno sabe o que o outro já fez.

Travou em algum termo? Tem um glossário. Glossário