3.0 KiB
3.0 KiB
ClientFlow v4928.1.5.129 — coerência da Reconciliação e tasks operacionais
Objetivo
Evitar que vendas Odoo já ligadas continuem na Reconciliação com ações obsoletas, impedir regressões da oportunidade e garantir que ações de expedição aparecem no Centro de Trabalho.
Alterações
Reconciliação Odoo
- Antes de criar um candidato, o sincronizador procura uma ligação exata em
operation_linkspor ID Odoo ou número da venda. - Uma ligação exata e única faz com que o candidato antigo seja resolvido como
linked, sem alterar oportunidade, fase, valor ou documentos. - Mais de uma ligação exata gera
conflict; nunca é resolvida automaticamente. - Correspondências por nome, cliente ou valor continuam a exigir decisão do operador.
- A interface passa a indicar vendas já ligadas, candidatos obsoletos resolvidos e conflitos.
Proteção contra regressão
Ao ligar nova evidência a uma oportunidade existente:
- compara a fase sugerida com a fase atual;
- preserva a fase e a ação atuais quando já estão no mesmo nível ou mais avançadas;
- não cria
SEND_INVOICEquando já existe fatura Jasmin ligada; - recalcula a próxima ação pelo motor central depois da transação.
Expedição
- O motor central continua a usar
SHIP_ORDERcomo decisão de domínio. - A task persistida é normalizada para
CREATE_SHIPMENT. - Fila:
logistica. - Texto do operador:
Enviar encomenda. - A task não é concluída por mensagens Chatwoot e não depende de Packlink.
Correção dos candidatos atuais
Novo script:
python scripts/apply_reconciliation_coherence_fixes.py
O script é dry-run por defeito. Só considera seguro um candidato Odoo que tenha exatamente uma ligação exata a uma oportunidade aberta.
Aplicação direcionada:
python scripts/apply_reconciliation_coherence_fixes.py \
--sale S00324 \
--sale S00325 \
--sale S00326 \
--apply
O script:
- resolve os candidatos como já ligados;
- preserva fase, valor, documentos e
operation_links; - materializa a próxima task calculada pelo motor central;
- não altera BBKW/S00323 porque não existe ligação exata.
Auditoria
Incluído o auditor read-only v128.1 em:
scripts/audit_reconciliation_coherence.py
Depois da correção:
python scripts/audit_reconciliation_coherence.py \
--days 3 \
--limit 500 \
--live odoo,jasmin \
--max-live 30
Packlink
A configuração por defeito continua:
PACKLINK_ENABLED=false
CREATE_SHIPMENT representa trabalho logístico do operador e não ativa Packlink. Packlink só poderá ser usado quando a integração for reativada explicitamente.
Segurança
- dry-run por defeito;
- correspondência automática apenas por ID/número exato;
- exatamente uma oportunidade aberta;
- sem correção automática de diferenças de valor;
- sem criação automática de oportunidade para BBKW;
- sem regressão de fase;
- criação de tasks idempotente.
Validação
508 testes aprovados