liberusoftware / module-accounting-financial-statements
Profit and loss, balance sheet, cash flow, equity, comparative, dimensional, and drill-through statements.
Package info
github.com/liberusoftware/module-accounting-financial-statements
Type:liberu-module
pkg:composer/liberusoftware/module-accounting-financial-statements
Requires
- php: ^8.5
- illuminate/database: ^13.38.0
- illuminate/support: ^13.38.0
- liberusoftware/module-accounting-chart-of-accounts: ^1.0
- liberusoftware/module-accounting-core: ^1.0
- liberusoftware/module-accounting-general-ledger: ^1.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-11-02 15:01:55 UTC
README
The accounting-financial-statements module provides reproducible, book-scoped reports over posted General Ledger entries: profit and loss, balance sheet, cash flow, changes in equity, comparative periods, dimension filters, and journal-line drill-through.
Public query boundary
StatementQuery is the only reporting boundary. It does not mutate ledger data or serialize application models. Every query verifies that the book exists, validates ISO dates and date ordering, bounds dimension keys to safe scalar filters, and includes the applied dimensions in its result. Only posted journal entries are included.
$statement = app(\Liberu\Accounting\FinancialStatements\Queries\StatementQuery::class) ->profitAndLoss($bookId, '2026-01-01', '2026-01-31', ['department' => 'sales']);
Invalid dates, reversed periods, missing books, and malformed dimensions throw InvalidStatementRequest. Balance sheets include a balance_check value so operators can detect an unbalanced report without guessing from presentation output. Drill-through returns journal identifiers, dates, descriptions, amounts, and dimensions for the selected account.
Presentation packages
module-accounting-financial-statements-apipublishes authenticated, ability-scoped GET operations under/api/v1/accounting/financial-statementsand RFC 9457-style invalid-request responses.module-accounting-financial-statements-filamentregisters an opt-in Filament 5 page atfinancial-statements/{bookId}.module-accounting-financial-statements-livewireregisters the explicit Livewire 4 aliasmodule-accounting-financial-statements::statementswith authenticated typed state and selectable statement types.
Presentation adapters call StatementQuery; they do not reproduce ledger aggregation or access private storage from another module.
Verification
php artisan module:validate
php artisan test tests/Feature/AccountingFinancialStatementsTest.php --compact
php -d memory_limit=512M vendor/bin/phpstan analyse modules/accounting-financial-statements modules/accounting-financial-statements-api modules/accounting-financial-statements-filament modules/accounting-financial-statements-livewire --no-progress