37 lines
1.8 KiB
Markdown
37 lines
1.8 KiB
Markdown
# v4928.1.5.37 — terminal flow guard + Odoo sync panel
|
|
|
|
Combina a correção `v4928.1.5.36_terminal_opportunity_flow_guard` com a nova área `v1.5.37_odoo_sync_panel`.
|
|
|
|
## Inclui de v1.5.36
|
|
|
|
- Oportunidades em fase terminal deixam de recomendar follow-ups como próxima ação.
|
|
- Follow-ups pendentes podem ser fechados em lote quando a oportunidade já está concluída.
|
|
- O fluxo operacional passa a marcar fatura como concluída quando existe fatura atual emitida.
|
|
- O chip da decisão seguinte usa o `action_code` real da task pendente.
|
|
|
|
## Novo em v1.5.37
|
|
|
|
- Novo painel **Estado Odoo** no detalhe da oportunidade.
|
|
- Botão **Sincronizar Odoo agora** por oportunidade, equivalente ao fluxo manual de Jasmin.
|
|
- Painel mostra venda Odoo ligada, cliente/valor Odoo, estado físico, entregas/pickings e produção/preparação.
|
|
- Lista vendas Odoo ligadas/candidatas a partir de `reconciliation_items`.
|
|
- Ação para associar uma venda Odoo candidata à oportunidade e atualizar `operation_links`.
|
|
- Partial HTMX `/opportunities/{opportunity_id}/partials/odoo-status`.
|
|
- Auditoria read-only `scripts/audit_odoo_opportunity_sync.py` para oportunidades avançadas sem venda/estado físico Odoo sincronizado.
|
|
|
|
## Segurança operacional
|
|
|
|
- O painel não chama Odoo ao abrir a oportunidade; a sincronização é manual para evitar lentidão e efeitos colaterais.
|
|
- A associação de candidato Odoo reutiliza a reconciliação existente e não cria documentos fiscais.
|
|
- O botão de sincronização apenas lê Odoo e atualiza `operation_links`/estado físico ClientFlow.
|
|
|
|
## Validação recomendada
|
|
|
|
```bash
|
|
python -m compileall -q app scripts tests
|
|
python -m pytest -q
|
|
python scripts/audit_system_health.py; echo "EXIT_CODE=$?"
|
|
python scripts/audit_deep_system.py --window-hours 72 --sample-limit 25; echo "EXIT_CODE=$?"
|
|
python scripts/audit_odoo_opportunity_sync.py; echo "EXIT_CODE=$?"
|
|
```
|