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” (criada na primeira vez, reutilizada depois).
- Fornecedor da compra.
- Valor = total da compra.
- Vencimento = 30 dias após recebimento (editável depois).
Parcelar a conta a pagar
No momento de receber a compra, você escolhe se quer dividir o valor em N parcelas (1 a 36):
- Quantidade de parcelas — default 1 (à vista).
- Primeiro vencimento — default hoje, editável.
- Intervalo entre parcelas — default 30 dias.
O total é dividido igualmente; o centavo residual fica na última parcela. Cada parcela é uma AccountPayable separada, com vencimento escalonado e descrição "NF X/N".
Importar NF-e do fornecedor
Em vez de digitar a compra à mão, você pode subir o XML da NF-e que o fornecedor te mandou:
- Compras → Importar NF-e e selecione o arquivo
.xml. - O Jefacil identifica o fornecedor pelo CNPJ do emitente (cria fornecedor draft se ainda não existir — você completa endereço/IE depois).
- Mapeia cada item por SKU (campo
cProdda nota). Itens cujo SKU não está cadastrado aparecem como não mapeados no resultado — você cadastra os produtos faltantes e reimporta. - Cria a Compra com status
PENDING. Você revisa, ajusta o que precisar, e clica em Receber pra dar entrada de estoque + gerar a(s) conta(s) a pagar (ver parcelamento acima).
Se nenhum item da nota bater com o seu cadastro, o import é abortado com a lista do que faltou — o Jefacil não cria Compra incompleta. Se os produtos batem mas não estão vinculados à loja ativa, mesmo erro: vincule pelo Catálogo e tente de novo.
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.