centrex / laravel-accounting
Manage accounts in laravel
Requires
- php: ^8.1|^8.2|^8.3
- illuminate/database: ^10.0|^11.0
- illuminate/support: ^10.0|^11.0
- moneyphp/money: ^4.0
Requires (Dev)
- larastan/larastan: ^2.0
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.8
- orchestra/testbench: ^8.8
- pestphp/pest: ^2.30
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- rector/rector: ^1.1
- spatie/laravel-ray: ^1.26
README
This package to provide a simple drop-in trait to manage accruing balances for a given model. It can also be used to create double entry based projects where you would want to credit one journal and debit another.
Contents
Installation
You can install the package via composer:
composer require centrex/laravel-accounting
You can publish and run the migrations with:
php artisan vendor:publish --tag="accounting-migrations"
php artisan migrate
You can optionally publish the config file with:
php artisan vendor:publish --tag="accounting-config"
Usage
// Standard equation of accounting system
// Standard accounting statements
'statements' => [
'balance_sheet' => [
'accumulated' => true,
'name' => 'Balance Sheet',
'cash_only' => false,
'accounts' => ['Asset', 'Liability', 'Equity', 'Revenue', 'Expense']
],
'income' => [
'name' => 'Income',
'cash_only' => true,
'accounts' => ['Revenue', 'Expense', 'Other',]
],
'cash_flow' => [
'name' => 'Cash Flow',
'cash_only' => true,
'accounts' => ['Asset']
]
],
Testing
๐งน Keep a modern codebase with Pint:
composer lint
โ Run refactors using Rector
composer refacto
โ๏ธ Run static analysis using PHPStan:
composer test:types
โ Run unit tests using PEST
composer test:unit
๐ Run the entire test suite:
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Credits
License
The MIT License (MIT). Please see License File for more information.