1.8 KiB
1.8 KiB
ClientFlow v4926.8.2
Objetivo
Evitar que uma oportunidade associe/importa um orçamento Jasmin antigo, fechado, convertido ou anulado quando existe um orçamento/proforma aberto mais recente para o mesmo cliente fiscal.
Alterações
- Classificação de ciclo de vida dos documentos Jasmin a partir de
payload.record:documentStatusDescriptiondocumentStatusdocumentLineStatusDescriptionstatusWasCompletedisDeletedisDraft
- Candidatos Jasmin agora são ordenados por:
- aberto/válido primeiro;
- quotation/proforma antes de invoice;
- data/série mais recente;
- score de match fiscal.
- Documentos fechados/convertidos/anulados aparecem apenas como auditoria e o botão fica desativado.
link_and_import_jasmin_candidate_asyncrejeita importação de candidato não aberto/válido.- Novo botão na UI: Sincronizar Jasmin para buscar documentos recentes antes de escolher candidato.
- Novo botão na UI: Substituir atual, para trocar um orçamento/proforma importado por engano por um candidato aberto mais recente.
- Novo script de inspeção:
scripts/inspect_jasmin_candidates_for_opportunity.py
- Novo script de reparação:
scripts/replace_jasmin_document_for_opportunity.py
Operação segura
Para diagnosticar:
PYTHONPATH=. python scripts/inspect_jasmin_candidates_for_opportunity.py \
--opportunity-id <OPPORTUNITY_ID> \
--sync \
--days 30
Para substituir por um candidato válido:
PYTHONPATH=. python scripts/replace_jasmin_document_for_opportunity.py \
--opportunity-id <OPPORTUNITY_ID> \
--item-id <RECONCILIATION_ITEM_ID> \
--dry-run
PYTHONPATH=. python scripts/replace_jasmin_document_for_opportunity.py \
--opportunity-id <OPPORTUNITY_ID> \
--item-id <RECONCILIATION_ITEM_ID>