Skip to content

Finance

Internal documentation for the Finance module — double-entry accounting, maker-checker, AR/AP, bank reconciliation, GST (India), TDS (India), period locks, vouchers, invoices, and the full report catalog.

Audience: finance / ops staff who use these features daily, and developers who maintain them.

Pages

  • Overview — module map, double-entry model, maker-checker, period lock, tab layout, permission summary.
  • Chart of accountsAccount entity, the 5-way classification enum, the seeded canonical chart, per-party sub-ledgers, event → account linkage.
  • Double-entry engine — invariants, createJournalWithLines, state machine, concurrency guard pattern, idempotency, FX capture, posting-paths index. Developer deep dive.
  • Maker-checker — segregation of duties: approve / reject / reverse self-guards, bulk behaviour, override permissions, failure modes.
  • Audit trailAuditLog schema, two writer layers (semantic + trigger), query patterns, retention, what auditors ask for.
  • India compliance — one-page unified view of GST, TDS, registration artifacts, deadlines calendar, gap list.
  • Permissions matrix (finance) — finance permission catalog, role × permission grid, how to grant access.
  • Journals — lifecycle, FX capture, concurrency guards, audit log, reversal semantics.
  • AR aging — open customer invoices by bucket.
  • AP aging — supplier + agent payables by bucket.
  • Bank reconciliation — CSV import, auto-match, manual match.
  • GST (India) — GSTIN, HSN/SAC, GSTR-1 / GSTR-3B, GSTN portal client (stub).
  • TDS (India) — 194C / 194J / 194Q, calculator, 26Q CSV.
  • Reports — full catalog (Day Book, Trial Balance, P&L, Balance Sheet, Cash Flow, Group P&L, aging, GST, settlements, cancellations, etc.).
  • Vouchers — receipt / payment / contra forms.
  • Invoices (finance lens) — customer + group invoices, GSTIN / HSN, permissions.
  • docs/PERMISSIONS.md — authoritative permission catalog (see the finance.* section).
  • docs/ALHUDA_ERP_FINANCE_REPORTS.md — older reports spec, retained for historical context.