41 lines
1.7 KiB
Markdown
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`
|