Files
clientflow_backend/docs/CLIENTFLOW_V4926_8_1_NOTES.md
2026-06-09 22:55:58 +01:00

41 lines
1.7 KiB
Markdown

# ClientFlow v4926.8.1 — Jasmin candidate association + fiscal suggestion cleanup
## Objetivo
Corrige dois problemas observados no detalhe de oportunidade:
1. Quando já existe um orçamento Jasmin para o cliente, a oportunidade mostrava "Ainda sem documentos Jasmin" e não dava uma forma clara de associar o orçamento existente antes de criar novo.
2. Sugestões fiscais antigas `accepted` podiam continuar visíveis com `NIF —`, mesmo quando o cliente fiscal atual já tinha NIF correto.
## Alterações
### Documentos Jasmin
- O painel `Documentos Jasmin` passa a procurar documentos Jasmin compatíveis em `reconciliation_items` por:
- `customer_id` interno;
- NIF fiscal;
- NIF dentro do payload Jasmin;
- email;
- domínio no payload;
- nome fiscal exato.
- Se encontrar candidatos ainda não importados, mostra aviso: associar documento existente antes de criar novo.
- Novo botão por candidato: `Associar e importar`.
- Novo endpoint:
- `POST /opportunities/{opportunity_id}/jasmin/link-candidate/{item_id}`
- A ação liga o `reconciliation_item` à oportunidade e reaproveita o backfill Jasmin para importar:
- `commercial_documents`;
- `commercial_document_lines`;
- `opportunity_items`;
- `value_amount`;
- `product_interest`.
### Sugestões fiscais
- `list_fiscal_suggestions_for_opportunity` passa a fazer `LEFT JOIN customers` para preencher `suggested_nif`/`suggested_name` com o cliente interno quando a sugestão antiga tem NIF vazio.
- A UI deixa de mostrar sugestões `accepted` que apenas confirmam o cliente fiscal já ligado à oportunidade.
- Isto remove ruído como `SEMENTENERGIAS accepted NIF —` quando a ficha fiscal atual já mostra `NIF 516356216`.
## Validação
- `python -m compileall -q app scripts`