Jmeryar is a robust accounting application built with a focus on flexibility, transparency, and extensibility. Developed to streamline accounting processes, Jmeryar integrates key features for handling invoices, bills, payments, journal entries, inventory management, and more. It is designed for use in commercial environments and is versatile enough for both small businesses and enterprise applications.
debit
and credit
entry for accurate double-entry accounting.Install via Composer:
composer require xoshbin/jmeryar-accounting
Run migrations:
php artisan migrate
Publish vendor files:
php artisan vendor:publish --provider="Xoshbin\JmeryarAccounting\AccountingServiceProvider"
Install NPM dependencies and build assets:
npm install && npm run build
Add Accounting to your Filament plugin list in your FilamentServiceProvider:: (usually located in app/Providers/Filament/AdminPanelProvider.php)
use Xoshbin\JmeryarAccounting\Accounting; class AdminPanelProvider extends PanelProvider{ public function panel(Panel $panel): Panel { return $panel // some other configurations ->plugins([ new Accounting() ]); }}
Optional: Seed your database with base data:
php artisan jmeryaraccounting:install
This command will prompt you to enter essential data such as company information and base currency, and then populate your database with essential data including accounts, currencies, product categories, and taxes.
Optional: Fully seed the database with dummy data:
php artisan jmeryaraccounting:install --dummy
This command will populate your database with sample data including products, customers, suppliers, invoices, and bills.
Once you have completed the installation steps, you can start using Jmeryar Accounting in your application. Here are the basic steps to get started:
Create Products:
Create a Bill:
Create an Invoice:
Record Payments:
Visit the Dashboard:
Generate Reports:
Invoices and Bills are at the core of the application, allowing users to track customer sales and supplier purchases. Each has multiple items and supports automatic calculations of totals and due amounts.
Each time an item is added to a bill, a new inventory batch is created or updated. When an invoice item is sold, inventory is adjusted using FIFO, ensuring accurate cost tracking even with fluctuating prices.
The app utilizes double-entry accounting principles. Each transaction records a debit and a credit journal entry, which are associated with invoices, bills, or payments.
Payments are handled as polymorphic entities, which means a payment can belong to either a bill or an invoice. This allows flexibility in associating transactions with different types of accounts payable and receivable.
git checkout -b feature/your-feature-name
.git commit -m 'Add your feature'
.git push origin feature/your-feature-name
.We welcome contributions that improve the app, add features, or fix bugs.
This project is licensed under the LGPLv3 license.
This project makes use of the Filament package, which is licensed under the MIT license. The original copyright notice for Filament is included in this repository.
This package heavily depends on tests to ensure the accuracy of invoice and bill calculations, as well as the correctness of journal entries and inventory batches. Running tests is crucial to maintain the integrity of the accounting processes.
Use the following command to run the tests:
composer test
Writing tests:
When contributing to the project, ensure you write tests for any new features or bug fixes. Place your tests in the tests
directory and follow the existing structure and naming conventions.