Download the PHP package ekmungai/eloquent-ifrs without Composer
On this page you can find all versions of the php package ekmungai/eloquent-ifrs. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package eloquent-ifrs
Eloquent IFRS
This Package enables any Laravel application to generate International Financial Reporting Standards compatible Financial Statements by providing a fully featured and configurable Double Entry accounting subsystem.
The package supports multiple Entities (Companies), Account Categorization, Transaction assignment, Start of Year Opening Balances and accounting for VAT Transactions. Transactions are also protected against tampering via direct database changes ensuring the integrity of the Ledger. Outstanding amounts for clients and suppliers can also be displayed according to how long they have been outstanding using configurable time periods (Current, 31 - 60 days, 61 - 90 days etc). Finally, the package supports the automated posting of forex difference transactions both within the reporting period as well as translating foreign denominated account balances at a set closing rate.
This package is a community initiative of microbooks.io.
Table of contents
- Eloquent IFRS
- Table of contents
- Installation
- For production
- For development
- Configuration
- Usage
- DB Collision
- Examples
- Changelog
- Getting Involved
- Contributing
- Roadmap
- License
- References
Installation
Use composer to Install the package into your laravel or lumen application. Eloquent IFRS requires PHP version 8.0.2 and Eloquent version 8 and above.
For production
If using Lumen, make sure to register the package with your application by adding the IFRSServiceProvider
to the app.php
in the bootstrap folder.
Then run migrations to create the database tables.
For development
Clone this repo, and then run Composer in local repo root to pull in dependencies.
To run the tests:
Configuration
The package installs with the default settings as regards the names of Accounts/Transactions Types, Report Titles and Section names as well as Accounts Codes. To adjust these settings use the Laravel artisan publish command to install the ifrs configuration to your application's config folder where you can edit it.
Usage
Full documentation for this package can be found here.
DB Collision
Publish configuration file with vendor:publish
if your User
model is different from App\User
and update the namespace of your User
model.
Open your User
model and implement the below interfaces and also include the trait as well.
Examples
This simple example covers the four scenarios to demonstrate the use of the package. First, a description of a Cash Sale to a customer, then a Credit Sale (Invoice) to a client, then a Cash Purchase for an operations expense and finally a Credit Purchase (Bill) from a Supplier for a non operations purpose (Asset Purchase).
First we'll setup the Company (Reporting Entity) and required Accounts to record the Transactions. (Assuming that a registered User already exists):
We also need the VAT Rates that apply to the Entity:
Now we'll set up some Accounts:
Now we will create some Transactions in the Ledger, afterwards we will generate some reports. First though, it require a reporting period:
Now that all Accounts are prepared, we can create the first Transaction, a Cash Sale:
So far the Transaction has only one side of the double entry, so we create a Line Item for the other side:
The rest of the transactions:
We can assign the receipt to partially clear the Invoice above:
The Income Statement (Profit and Loss):
The Balance Sheet:
While the Income Statement and Balance Sheet are the ultimate goal for end year (IFRS) reporting, the package also provides intermediate period reports including Account Statement, which shows a chronological listing of all Transactions posted to an account ending with the current balance for the account; and Account Schedule, which is similar to an Account Statement with the difference that rather than list all Transactions that constitute the ending balance the report only shows the outstanding (Uncleared) Transactions.
In the above example:
Changelog
Please see CHANGELOG for more information about recent changes.
Getting Involved
I am acutely aware that as a professionally trained Accountant I may have used some conventions, definitions and styles that while seemingly obvious to me, might not be so clear to another developer. I would therefore welcome and greatly appreciate any feedback on the ease of use of the package so I can make it more useful to as many people as possible.
Contributing
- Fork it
- Create your feature branch (
git checkout -b feature/fooBar
) - Write tests for the feature
- Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request
Roadmap
- [x] Add Cashflow Statement
- [x] Laravel 8 Compatibility
- [x] Add Multicurrency support
- [x] Expand Taxation Functionality
License
This software is distributed for free under the MIT License
References
- This package is heavily influenced by chippyash/simple-accounts-3 and scottlaurent/accounting.
- Special thanks to paschaldev for his brilliant work in preventing collisions with already existing db tables.
All versions of eloquent-ifrs with dependencies
illuminate/database Version ^10.0|^11.0
illuminate/auth Version ^10.0|^11.0
doctrine/dbal Version ^2.10|^3.1