CashSettlement registra a prestação de contas de dinheiro recebido em vendas que confirmam pagamento em espécie. Ele agrupa pagamentos CASH por cooperativa, período e recorte operacional opcional, sem persistir valores calculáveis como valor esperado ou diferença.
Campos
| Campo | Tipo | Descrição |
|---|---|---|
cashSettlementId | UUID | Identificador único |
cooperativeId | UUID | Cooperativa beneficiária dos pagamentos conciliados |
transportOperatorId | UUID? | Permissionário usado como recorte do fechamento, quando aplicável |
periodStart | DateTime | Início do período conciliado |
periodEnd | DateTime | Fim do período conciliado |
declaredAmount | Int | Valor em centavos declarado |
receivedAmount | Int? | Valor em centavos recebido ou conferido pela operação |
status | CashSettlementStatus | Status da prestação de contas |
submittedBy | UUID? | Usuário que enviou a prestação de contas |
submittedAt | DateTime? | Data de envio |
reviewedBy | UUID? | Usuário que aprovou ou rejeitou a prestação de contas |
reviewedAt | DateTime? | Data da revisão |
createdBy | UUID? | Usuário que criou o registro, quando aplicável |
createdAt | DateTime | Data de criação |
updatedBy | UUID? | Usuário que fez a última atualização, quando aplicável |
updatedAt | DateTime | Data da última atualização |
Relacionamentos
- Relaciona-se com Cooperative por
cooperativeId. - Relaciona-se com TransportOperator por
transportOperatorId, quando o fechamento é recortado por permissionário. - Relaciona-se com múltiplos Payment por
Payment.cashSettlementId. - A prestação de contas não persiste
driverId; o usuário responsável entra por auditoria (submittedBy,createdBy,reviewedBy).
Regras de Negócio
- A prestação de contas agrupa pagamentos com
method = CASHestatus = PAID. - O pagamento em dinheiro fica confirmado para o Customer no momento em que o dinheiro é aceito; a prestação de contas é um processo financeiro posterior.
declaredAmounté informado pelo responsável pelo fechamento ou pela operação.receivedAmounté preenchido quando a operação confere ou recebe o dinheiro.- O valor esperado é derivado dos Payments vinculados ao fechamento e não deve ser persistido.
- A diferença entre valor esperado, declarado e recebido é derivada em consulta e não deve ser persistida.
- Payments vinculados ao fechamento devem pertencer à mesma cooperativa e janela operacional do settlement.
- Quando
transportOperatorIdfor preenchido, todos os pagamentos vinculados devem pertencer ao mesmo permissionário no contexto do Ticket/Trip. - Aprovar ou rejeitar a prestação de contas não altera silenciosamente o status dos Payments nem dos Tickets já emitidos.
- Uma prestação rejeitada exige correção, novo fechamento ou tratativa operacional auditável.
Enums
CashSettlementStatus
| Valor | Descrição |
|---|---|
OPEN | Fechamento em preparação |
SUBMITTED | Prestação enviada para conferência |
APPROVED | Prestação aprovada pela operação |
REJECTED | Prestação rejeitada por divergência ou inconsistência |
CANCELED | Fechamento cancelado antes da aprovação |