34 lines
1.7 KiB
Markdown
34 lines
1.7 KiB
Markdown
# ClientFlow v4928.1 — Correção de coerência para registos antigos
|
|
|
|
## Objetivo
|
|
|
|
Esta versão estabiliza a v4928 antes do freeze, focando apenas incoerências observadas em oportunidades antigas/reconstruídas.
|
|
|
|
## Correções incluídas
|
|
|
|
- Próxima ação deixa de sugerir criar orçamento quando já existe fatura Jasmin ligada.
|
|
- `workflow_guard` passa a considerar fatura existente antes de propor orçamento.
|
|
- Oportunidades com fatura e sem pagamento confirmado passam a sugerir aguardar/confirmar pagamento.
|
|
- Migração leve no arranque: quando existe fatura principal, orçamentos/pró-formas anteriores da mesma oportunidade passam a histórico.
|
|
- Oportunidades com fatura e sem task pendente são marcadas em `metadata.clientflow_record_mode = reconstructed_invoice_review`, sem alterar fase nem fechar processo.
|
|
- Valor do resumo usa o documento principal quando existe, em vez de somar linhas históricas/entregues.
|
|
- Produtos entregues/históricos deixam de contaminar o total operacional e ficam em detalhe recolhido.
|
|
- Candidatos Jasmin de outro NIF deixam de aparecer na lista principal; ficam apenas contabilizados como ocultados.
|
|
- Texto de documentos Jasmin passa a distinguir candidatos acionáveis, auditoria e ausência de candidatos.
|
|
- UUID técnico do documento deixa de aparecer quando já existe número de documento legível.
|
|
- Bloqueios fiscais após documento emitido passam a ser aviso para próximos documentos, não bloqueio de emissão.
|
|
|
|
## Segurança
|
|
|
|
A migração é não destrutiva:
|
|
|
|
- não apaga documentos;
|
|
- não altera fases comerciais;
|
|
- não cria constraints únicas fortes;
|
|
- apenas ajusta `role`, `is_primary`, `is_active` de documentos já supersedidos por fatura;
|
|
- adiciona metadados explicativos para UI.
|
|
|
|
## Validação
|
|
|
|
`207 passed`.
|