Wiki
Ciclo de vida das propostas
Analise do ciclo de vida das propostas no QuoteNode, das transicoes de estado e do rasto de auditoria.
Ciclo de vida das propostas
O QuoteNode trata a proposta como um objeto vivo com transicoes explicitas, nao como um simples documento exportado.
Estados principais
| Estado | Descricao | Editavel | Terminal |
|---|---|---|---|
| DRAFT | Proposta em preparacao | Sim | Nao |
| SENT | Proposta enviada ao cliente | Nao | Nao |
| OPENED | O cliente abriu o link publico | Nao | Nao |
| NEGOTIATION | O cliente respondeu com pergunta ou contraproposta | Nao | Nao |
| ACCEPTED | O cliente confirmou | Nao | Sim |
| REJECTED | O cliente recusou | Nao | Sim |
| EXPIRED | A validade terminou sem decisao | Nao | Sim |
| ARCHIVED | Arquivada manualmente pelo comercial | Nao | Sim |
Regras de transicao
DRAFT ----------> SENT
| |
| v
| OPENED
| |
| |--> NEGOTIATION
| | |
| |--> ACCEPTED
| |--> REJECTED
| `--> EXPIRED
|
`--> ARCHIVED
Transicoes validas
DRAFT -> SENTSENT -> OPENEDOPENED -> NEGOTIATIONOPENED -> ACCEPTEDOPENED -> REJECTEDSENT/OPENED/NEGOTIATION -> EXPIREDDRAFT -> ARCHIVEDNEGOTIATION -> ACCEPTEDNEGOTIATION -> REJECTED
Transicoes invalidas
SENT -> DRAFTACCEPTED -> qualquer outro estadoREJECTED -> qualquer outro estadoEXPIRED -> qualquer outro estadoARCHIVED -> qualquer outro estado
Quando uma proposta e enviada
DRAFT -> SENT
Ao passar de Draft para Sent:
- o sistema valida a proposta
- cria um snapshot imutavel
- prepara email e/ou link publico
- regista o evento em historico e auditoria
Se o envio usar link publico, tambem e criado um token aleatorio seguro cuja hash e guardada na base de dados.
Abertura, negociacao e aceitacao
SENT -> OPENED
Quando o cliente abre, responde, aceita ou rejeita a proposta, esses eventos sao refletidos na timeline e ajudam tanto o workflow operacional como o reporting.
Na passagem para OPENED, o sistema pode registar:
- timestamp
- IP ou versao anonimizada
- user agent
- pais obtido por GeoIP
OPENED -> ACCEPTED
Na passagem para ACCEPTED, o sistema pode ainda recolher dados opcionais de order intent e disparar notificacoes.
Snapshots
Os snapshots preservam:
- dados de cliente
- linhas e quantidades
- precos e descontos
- IVA
- branding
- template utilizado
Os snapshots nunca sao alterados. Se a proposta for reenviada apos alteracoes, o sistema cria uma nova versao de snapshot.
Audit trail
Cada transicao fica associada a:
- ator e perfil
- timestamp
- estado anterior
- estado seguinte
- IP de origem
- comentario opcional quando aplicavel
Os registos sao append-only e nao devem ser editados ou truncados.
Operacoes depois de estados terminais
Mesmo quando uma proposta chega a estado terminal, o QuoteNode permite reutilizacao segura:
- Clone - cria novo rascunho com os mesmos itens
- Extend validity - cria novo rascunho com nova data
- Update prices - recalcula com dados atuais de catalogo e FX
- Use as template - clona sem cliente ou sem pricing final
Todas estas operacoes criam uma nova proposta em DRAFT. A original permanece intacta.