Skip to content

Financeiro

Visão Geral

O módulo financeiro gerencia transações (receitas e despesas), contas bancárias, categorias configuráveis, e relatórios em PDF. Implementa um workflow de status: pendente → efetivada ou cancelada.

Models

Transaction

Namespace: App\Domain\Finance\Models\Transaction

CampoTipoDescrição
ulidstringIdentificador público
tipoenumreceita ou despesa
statusenumpendente, efetivada, cancelada
valordecimal(10,2)Valor da transação
transaction_category_idFKCategoria (Dízimo, Aluguel, etc.)
congregation_idFK nullableCongregação
bank_account_idFK nullableConta bancária
member_idFK nullableMembro (para dízimos/ofertas nominais)
forma_pagamentoenum nullabledinheiro, pix, cartao_credito, cartao_debito, transferencia, boleto, cheque
data_transacaodateData do lançamento
data_vencimentodate nullableVencimento (despesas)
data_pagamentodate nullableData da efetivação
descricaotext nullableDescrição livre
nota_fiscalstring nullableNúmero NF/recibo
cancelamento_motivotext nullableMotivo do cancelamento

Workflow de Status

pendente ──→ efetivada (via ConfirmTransactionAction)

    └──→ cancelada (via CancelTransactionAction, com motivo)
  • Pendente: pode ser editada, efetivada ou cancelada
  • Efetivada: imutável (não pode ser editada ou cancelada)
  • Cancelada: imutável, mantém registro visível com motivo

TransactionCategory

Categorias configuráveis por tipo.

CampoTipo
nomestring
tipoenum (receita/despesa)
is_activeboolean
sort_orderinteger

Categorias padrão (seeder):

  • Receita: Dízimo, Oferta, Campanha, Doação
  • Despesa: Aluguel, Água, Luz, Internet, Salário, Manutenção, Material de Limpeza, Material de Escritório

BankAccount

Contas bancárias opcionais (igrejas no plano Semente podem não usar).

CampoTipo
nomestring
bancostring nullable
agencia / contastring nullable
tipoenum (corrente/poupanca) nullable
chave_pixstring nullable
congregation_idFK nullable

Actions

ActionDescrição
CreateTransactionActionCria transação, dispara TransactionCreated
UpdateTransactionActionAtualiza (apenas pendentes), dispara TransactionUpdated
ConfirmTransactionActionMuda para efetivada + data_pagamento
CancelTransactionActionMuda para cancelada + motivo

Endpoints

Transações

MétodoRotaDescrição
GET/transactionsLista com filtros (tipo, status, categoria, período)
POST/transactionsCriar transação
GET/transactions/Detalhes
PUT/transactions/Atualizar (só pendentes)
DELETE/transactions/Soft delete
PATCH/transactions/{ulid}/confirmEfetivar transação
PATCH/transactions/{ulid}/cancelCancelar com motivo

Contas Bancárias

MétodoRotaDescrição
GET/POST/PUT/DELETE/bank-accountsCRUD completo

Categorias

MétodoRotaDescrição
GET/POST/PUT/DELETE/transaction-categoriesCRUD com filtro por tipo

Relatórios (PDF)

MétodoRotaDescrição
GET/reportsPágina de geração de relatórios
GET/reports/financialPDF do relatório de período
GET/reports/receipt/PDF do recibo individual

Dashboard

O dashboard (/dashboard) exibe KPIs financeiros e de membros:

KPIs: Membros ativos, Receitas/Despesas do mês (com variação %), Saldo, Dízimos, Membros por situação

Gráficos (Chart.js):

  • Barras: Receitas vs Despesas (últimos 6 meses)
  • Donut: Top 5 categorias de despesa do mês

Permissões

Permissãoadmin-igrejatesoureirosecretario
finance.view
finance.create
finance.edit
finance.delete
finance.confirm
bank-account.view
bank-account.manage