Skip to content

Financial Reports — Developer Guide

Slug financial-reports. Hard dependency on accounting via module_dependencies. Service: FinancialReportService (trial balance, P&L, balance sheet, aged receivables). Catalog version 1.1.1. Aged receivables uses historical open balances as of the selected date.

Permissions

financial-reports.view only for MVP.

API

JSON reports plus streamed CSV export (same query params; permission financial-reports.view):

MethodPath
GET/financial-reports/trial-balance
GET/financial-reports/profit-and-loss
GET/financial-reports/balance-sheet
GET/financial-reports/aged-receivables
GET/financial-reports/trial-balance/export
GET/financial-reports/profit-and-loss/export
GET/financial-reports/balance-sheet/export

See tenant-v1-financial-reports.md.

Frontend

  • Route /financial-reports
  • Report kinds: TB / P&L / BS / Aged Receivables
  • Currency formatting, classic two-pane Balance Sheet (Assets = L+E check; Net Income = fiscal YTD), report chrome, Export CSV for TB / P&L / BS
  • Playwright (tenant project, dedicated login session — separate from Accounting):
    • Full module: npm run test:e2e:financial-reports:modules / :headed — seed posted journals, TB / P&L / Balance Sheet
    • Authz: npm run test:e2e:financial-reports:authz / :headed/403, hard-dep install block, API gate
    • Smoke + all: npm run test:e2e:financial-reports / :headed
    • Combined Finance: npm run test:e2e:finance / :headed

Tests

Pest: tests/Feature/Tenant/FinancialReports/FinancialReportTest.php (report math, CSV export cases, install blocked without Accounting).

Official documentation for the EloSync SaaS Platform.