I
Isis Control

Vendendo no atacado pra cliente recorrente, duas ferramentas financeiras protegem o caixa: limite de crédito por cliente e parcelamento do fiado em N recebíveis escalonados.

Definir o limite de crédito

Clientes → editar → Limite de crédito (R$).

  • Null / vazio → sem limite (default).
  • Valor em R$ → o sistema calcula o saldo em aberto do cliente (soma dos AccountReceivable PENDING ou OVERDUE) e recusa novas vendas fiado que ultrapassariam esse teto.

Exemplo: cliente com limite R$ 5.000 já tem R$ 3.200 em aberto. Nova venda fiado de R$ 2.000 é aprovada (R$ 5.200 — espera, não: 3200 + 2000 = 5200 > 5000). Então ela seria recusada com 422 credit_limit_exceeded.

O que o usuário vê

No PDV (ainda não tem cliente pré-checkout) ou no dialog de faturamento do pedido, quando o cliente tem limite:

LIMITE DE CRÉDITO
Limite:     R$ 5.000,00
Em aberto:  R$ 3.200,00
Após:       R$ 5.200,00   ← vermelho quando estoura

Banner amarelo = vai ficar próximo do limite, operador decide. Banner vermelho = vai estourar, submit bloqueado.

Sobrepor o limite

Quando o operador é MANAGER (ou OWNER/ADMIN), aparece um checkbox “Sobrepor limite (responsabilidade do gerente)”. Marcando, o submit libera.

SELLER e CASHIER não veem o checkbox — eles precisam pedir aprovação física pro gerente, que marca e confirma.

Parcelamento

No dialog de faturamento (pedido) ou futura integração com boleto, ao escolher FIADO, aparecem campos extras:

  • Parcelas (1 a 36).
  • A cada N dias (default 30).

Com 3 parcelas e 30 dias, o sistema cria 3 receivables:

parcela 1 → vence em 30 dias
parcela 2 → vence em 60 dias
parcela 3 → vence em 90 dias

Valor dividido em partes iguais, com a última absorvendo centavo residual (ex.: R$100/3 = 33,33 + 33,33 + 33,34). Total sempre bate.

Consultar histórico de crédito

Financeiro → Contas a receber filtrado por cliente mostra tudo: parcelas abertas, pagas, vencidas. paid_amount acumula pagamentos parciais (cliente paga R$500 de uma parcela de R$800, saldo fica R$300 até fechar).

Cancelamento automático

Quando você cancela uma venda (ou invoice cancela um pedido), todas as parcelas em PENDING viram CANCELED. Parcelas que já foram pagas (paid_amount > 0) não são tocadas — vira caso pra contador decidir se devolve, compensa ou dá crédito.

Integração futura com boleto

O parcelamento hoje só funciona em fiado genérico (vira AccountReceivable sem canal de cobrança). Quando a integração Asaas entrar no ar (prevista pós-deploy), cada parcela vira BOLETO registrado com:

  • Link pro boleto em payment.boleto_url
  • Código de barras
  • Webhook de baixa automática quando o cliente paga

Sem mudar nada no fluxo de UI.