Detalhes do Contrato
Pré-requisitos de acesso
- Permissão (módulo):
viewContracts(para ver) — a ação de editar exigemanageContracts - Licença/Feature: Nenhuma.
- Contêiner do menu: GERAL → grupo Contratos (acessada a partir da Lista de contratos)
O que é / quando usar
Tela de consulta completa de um contrato: dados gerais (tipo, valor total, tipo de pagamento, token, valor parcial, número de parcelas, vigência), dados do cliente (nome, documento, e-mail, contato) e a lista de parcelas com competência, valor e status (pendente, paga, vencida, cancelada). É a visão usada para conferir um contrato antes de aceitar, editar ou conciliar pagamentos. É uma rota de detalhe (/manage-contracts/details/:id), não um item direto do menu.
Pré-condições
- Permissão:
viewContractspara abrir;manageContractspara o atalho de edição. Permissão dupla — enum CPM no backend + módulo dinâmico no DB. - Licença/Feature: Nenhuma.
- Dependências de outras telas: chega-se aqui pela Lista de contratos (ícone visualizar).
Passo a passo
- Na Lista de contratos, clique no ícone visualizar (olho) da linha desejada.
- Confira o cartão do contrato (tipo, valor total, tipo de pagamento, parcela, parcelas, vigência).
- Confira o cartão Dados do cliente.
- Role até a tabela de Pagamentos e verifique a competência e o status de cada parcela.
- Para alterar, clique no ícone editar (lápis) no cartão do contrato — leva ao formulário de edição.
Campos exibidos
| Bloco | Campo | O que mostra | Origem do dado |
|---|---|---|---|
| Contrato | Título / data de criação | Nome do contrato e quando foi criado | title, createdAt |
| Contrato | Tipo | Tipo de contrato | contractType.name |
| Contrato | Valor total | Total do contrato (BigNumber; 2 casas fiat / 6 token) | totalValue |
| Contrato | Tipo de pagamento | Fiat ou token | paymentType |
| Contrato | Token | ID do token de cobrança (só quando pagamento = token) | paymentTokenId |
| Contrato | Valor parcial | Valor de uma parcela | payments[0].amount |
| Contrato | Nº de parcelas | Quantidade de parcelas geradas | payments.length |
| Contrato | Vigência | Período de validade (início → fim) | initialDate, endDate |
| Cliente | Nome / Documento / E-mail / Contato | Identificação do cliente | client.{name,cpf,cnpj,passport,email,phone} |
| Parcelas | Data (competência) | Data de competência da parcela | payments[].competence |
| Parcelas | Valor | Valor da parcela | payments[].amount |
| Parcelas | Status | pendente / paga / vencida / cancelada | payments[].status |
Ações e modais
- Editar (lápis): navega para o formulário de edição (
/manage-contracts/edit/:id). - Voltar: retorna à listagem (volta no histórico).
- Paginação de parcelas: a tabela pagina no cliente (fatia o array
paymentscarregado), sem nova requisição.
Regras de negócio / cuidados
Atenção
- O status de cada parcela é a fonte de verdade da conciliação: paga = debitada com sucesso; vencida (
overdue) = tentativa de débito falhou (sem saldo ou banking off); pendente = ainda não venceu/processou; cancelada = anulada junto com o contrato. - Parcela vencida não é reprocessada automaticamente no mesmo ciclo: o scheduler diário tentará novamente nos próximos dias enquanto o contrato estiver aceito e a competência ≤ hoje.
- Valores financeiros: total e parcelas são BigNumber — exibidos com 2 casas (fiat) ou 6 (token). Não arredonde manualmente.
- Aceite do cliente: parcelas só são cobradas após o cliente aceitar o contrato (no app Midas, em "Meu perfil → Ver contratos"). Enquanto o contrato estiver pendente, nenhuma parcela é debitada.