Files
clientflow_backend/RELEASE_NOTES_v4928_1_5_37.md

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=$?"
```