Abivia Ledger
General Ledger and Journal Package for Laravel
Ledger is a full-featured implementation of the core of any good accounting system, a double-entry journal and general ledger. It is not a complete accounting solution, but rather the minimum for keeping track of financial transactions.
Ledger is designed to add reliable accounting features to an application without limiting flexibility. Ledger provides nearly congruent PHP and JSON APIs. There is no user interface.
Ledger features:
- Full double-entry accounting system with audit trail capability.
- Multi-currency support.
- Support for multiple business units.
- Sub-journal support.
- Multilingual.
- Integrates via direct controller access or through JSON API.
- Atomic transactions with concurrent update blocking.
- Reference system supports soft linking to other ERP components.
- Designed for Laravel from the ground up.
Installation and Configuration
Install Ledger with composer:
composer require abivia/ledger
Publish Configurations
php artisan ledger:install
Create database tables
php artisan vendor:publish --provider=Abivia\Ledger\LedgerServiceProvider
Configuration
The configuration file is installed as config\ledger.php
Setting | Default | Purpose |
---|---|---|
api | true | Enables API routes. |
chartPath | null | Specifies a custom path for Chart of Accounts templates. The default is to use the package path. |
middleware | ['api'] | List of middleware for Ledger routes. |
prefix | 'api/ledger' | Route prefix. |
Environment
Ledger's audit log can be set via LEDGER_LOG_CHANNEL
. If a custom
log isn't set, LOG_CHANNEL
is used.
Basic Use
- Create the ledger by passing a Create message to the account controller.
- Start posting transactions by passing Entry messages to the journal entry controller.
- Query the ledger by posting EntryQuery messages to the journal entry controller.
- Get reports by passing Report messages to the report controller.
Code, Issues, Support
Source code is hosted on GitHub at https://github.com/abivia/ledger.
Issues, questions, and pull requests can be submitted via GitHub at https://github.com/abivia/ledger/issues.
Security issues should be emailed to ledger@abivia.com.
Contributions and feedback are welcomed.
Donations
If you want to help support this project, click here: