Skip to content

Lista de Contratos

Pré-requisitos de acesso

  • Permissão (módulo): viewContracts (para ver a listagem) OU manageContracts (para criar/editar/excluir)
  • Licença/Feature: Nenhuma.
  • Contêiner do menu: GERAL → grupo Contratos

O que é / quando usar

Tela central de gestão dos contratos firmados com os clientes — acordos formais com valor total, vigência, tipo de pagamento (fiat ou token) e um cronograma de parcelas. O operador busca, filtra, cria, edita e exclui contratos, e controla o débito automático de cada um. É o ponto de partida para acessar os Detalhes do contrato e o formulário de Criar/Editar contrato.

Pré-condições

  • Permissão: viewContracts para ver a listagem; manageContracts para os botões Novo, Editar e Excluir (eles aparecem condicionados por *appHasPermission="'manageContracts'"). Permissão dupla — enum CPM no backend + módulo dinâmico no DB.
  • Licença/Feature: Nenhuma.
  • Dependências de outras telas: os Tipos de contrato precisam existir antes de criar um contrato — ver Tipos de contrato. Para débito automático em fiat, a feature DIGITAL_BANKING precisa estar habilitada.

Passo a passo

  1. Acesse o menu Contratos → Lista de contratos.
  2. Use a busca (por nome ou e-mail do cliente) e os filtros de tipo e de valor (operador de comparação + valor).
  3. Para abrir um contrato, clique em visualizar (olho) → vai para os detalhes.
  4. Para editar, clique em editar (lápis). Para excluir, clique em excluir (lixeira) — disponível apenas em status permitidos.
  5. Para criar, clique em Novo.
  6. Ligue/desligue o Débito automático pelo toggle da linha; confirme no bottom-sheet.

Filtros e colunas

Filtro/ColunaO que mostraOrigem do dado
Busca (nome ou e-mail)Filtra contratos pelo clienteEnviada como searchInput (debounce de 1s)
TipoFiltra por tipo de contrato cadastradoselectedFilterType (nome do tipo); "Todos" remove o filtro
Operador de comparaçãoComo comparar o valor: igual, maior, maior ou igual, menor, menor ou igualcomparisonOperatorsó filtra junto com um valor preenchido
Filtrar por valorValor numérico de comparaçãosearchAmountInput — sozinho não filtra sem operador
Contrato (Título)Nome do contratotitle
ValorTotal do contrato com símbolo da moeda (fiat) ou ID do tokentotalValue (BigNumber; 2 casas em fiat, 6 em token)
StatusEstado do contrato (pendente, aceito, cancelado, negado, finalizado)status
ClienteE-mail do clienteclient.email
Débito automáticoToggle de débito automático por linhaautomaticDebit
AçõesVisualizar / Editar / Excluir

TIP

O filtro por valor exige operador + valor juntos. Inserir só o valor não filtra; escolher só o operador também não. Esse é o comportamento esperado, não um bug.

Ações e modais

  • Novo: vai para o formulário de criação (/manage-contracts/create). Requer manageContracts.
  • Visualizar (olho): abre os Detalhes do contrato.
  • Editar (lápis): abre o formulário em modo edição. Requer manageContracts.
  • Excluir (lixeira): só aparece quando o status é pendente ou aceito. Abre bottom-sheet de confirmação; ao confirmar, chama deleteContract.
  • Débito automático (toggle): ao alternar, abre bottom-sheet de confirmação (texto distinto para ligar/desligar). Confirmando, chama updateContract; se o operador cancelar, o toggle volta ao estado anterior.

Regras de negócio / cuidados

Atenção

  • Exclusão restrita: só é possível excluir contratos em status pendente ou aceito. Após finalizado/cancelado/negado, a lixeira fica oculta.
  • Débito automático = cobrança real: quando ligado, o scheduler diário debita automaticamente do saldo do cliente as parcelas com competência vencida (de contratos aceitos). Desligar transfere a responsabilidade ao cliente, que passa a pagar manualmente pela tela de contratos no app Midas.
  • O scheduler só processa contratos com status aceito — um contrato pendente não é cobrado mesmo com débito automático ligado, pois o cliente ainda não aceitou.
  • Valores financeiros: o total é BigNumber; a tela exibe com 2 casas para fiat e 6 para token. Não arredonde manualmente.
  • Status APPROVED / saldo: o débito automático em fiat exige DIGITAL_BANKING ativo e saldo na conta digital do cliente; se faltar saldo, a parcela vai para vencida (overdue) e o cliente/admin é notificado por e-mail.

Telas relacionadas