# 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`.