O módulo financeiro cobre:
- Contas a pagar (fornecedor cobrou, tem que pagar).
- Contas a receber (cliente te deve).
- Fluxo de caixa (agregação por dia/semana/mês).
- Conciliação bancária (OFX/CSV, veja guia dedicado).
Auto-geração
O sistema preenche essas contas automaticamente em dois momentos:
Compra recebida → conta a pagar
Quando você recebe uma Compra (módulo Compras) com status RECEIVED, o sistema cria uma AccountPayable vinculada:
- Categoria “Compras de Mercadoria” (criada na primeira vez, reutilizada depois).
- Fornecedor da compra.
- Valor = total da compra.
- Vencimento = 30 dias após recebimento (editável depois).
Venda fiado → conta a receber
Quando um operador registra venda com pagamento FIADO, o sistema cria uma AccountReceivable:
- Categoria “Vendas a Prazo”.
- Cliente da venda.
- Valor = soma dos pagamentos fiado.
- Vencimento = 30 dias (ou N parcelas escalonadas se configurado — veja Limite de crédito e parcelamento).
Ambas podem ser criadas manualmente também.
Categorias
Financeiro → Categorias — CRUD de categorias de RECEITA e DESPESA. O tenant começa com algumas sugeridas (Aluguel, Energia, Salários, Vendas a Prazo, Vendas à Vista). Você adiciona/remove conforme quiser.
Cada conta é obrigada a ter uma categoria. O relatório de DRE agrupa por categoria.
Pagamentos parciais
Uma conta a pagar de R$1.000 pode ser quitada em várias parcelas:
- Pagar R$300 →
paid_amount: 300, status: PENDING. - Pagar + R$500 →
paid_amount: 800, status: PENDING. - Pagar + R$200 →
paid_amount: 1000, status: PAID, paid_at: hoje.
Funciona igual em receber. O status vira PAID automaticamente quando paid_amount >= amount - 0.001.
OVERDUE
O sistema não tem um status OVERDUE no banco — ele é computado. Uma conta aparece como vencida quando:
status = PENDING AND due_date < hoje
Isso mantém o schema simples e evita ter que “virar” status toda noite via cron.
Cancelamento
- Cancelar a conta = status
CANCELED. Não volta pra PENDING. - Cancelar a venda/compra origem = sistema automaticamente cancela a conta atrelada que ainda estava
PENDING(parcelas já pagas não são tocadas).
Fluxo de caixa
Financeiro → Fluxo de caixa. Agrupa:
- Entradas (AccountReceivable PAID no período + vendas à vista do PDV)
- Saídas (AccountPayable PAID no período + sangrias do caixa)
- Saldo = entradas − saídas
Gráfico CSS-only por dia/semana/mês. Pra análise mais profunda, veja Relatórios → DRE.