- How do I install this package in a Laravel 11 project with Jetstream and Livewire?
- Run `composer require alimarchal/laravel-chart-of-accounts`, then set `ACCOUNTING_UI_DRIVER=blade` in your `.env` file before running migrations. The package includes Livewire components out-of-the-box for Jetstream, so no additional frontend setup is needed beyond the standard Laravel installation.
- Does this package support multi-currency accounting with automatic exchange rate handling?
- Yes, the package includes built-in multi-currency support using the Money facade. Exchange rates can be configured manually or integrated with third-party services like `laravel-money`. All journal entries and reports respect currency conversions, and the system enforces balance consistency across currencies.
- Can I use this with Inertia.js and React for a modern frontend?
- Absolutely. The package supports Inertia/React natively. Set `ACCOUNTING_UI_DRIVER=inertia` in your `.env` file, and it will generate the necessary API endpoints and React components. The included REST API is versioned and works seamlessly with Inertia’s data fetching.
- What Laravel versions are officially supported, and is there backward compatibility?
- The package supports Laravel 10, 11, 12, and 13. It requires PHP 8.2+. While the core functionality is designed to be backward-compatible, test thoroughly in your environment, especially if migrating from Laravel 9 or earlier, as some Eloquent and service container behaviors may differ.
- How does bank reconciliation work, and can it handle high-frequency transactions?
- Bank reconciliation is handled via the `ReconcileBankStatement` action, which matches transactions between your accounting records and bank statements. For high-frequency transactions, the package uses database transactions and optimistic locking to prevent race conditions. However, for real-time bank feeds, consider implementing a queue worker to process reconciliations asynchronously.
- Are there built-in financial reports, or do I need to create them manually?
- The package includes 10+ pre-built financial reports, such as trial balances, income statements, and balance sheets. These reports are generated via Eloquent queries and can be customized or extended. You can also build custom reports using the package’s query builder methods for `JournalEntry` and `Account`.
- How do I customize the account types or add domain-specific rules?
- The core `Account` and `JournalEntry` models are extensible. You can add custom attributes, validation rules, or business logic via model observers, accessors, or service providers. The package also supports custom actions, so you can create domain-specific operations (e.g., `ApplyTaxRule`, `ValidateCustomAccountType`) without modifying the core code.
- Does this package include audit trails or support for regulatory compliance?
- Yes, the package enforces double-entry accounting at the database level, ensuring no imbalances. For audit trails, you can enable Laravel’s built-in `audit_log` package or extend the `JournalEntry` model to log changes. The package also supports soft deletes and events (e.g., `JournalEntryCreated`) for triggering downstream processes like audit logging.
- What are the performance considerations for large datasets or high transaction volumes?
- The package is optimized for performance with indexed migrations and batch operations. For large datasets, ensure your `journal_entries` table has proper indexes on `date`, `account_id`, and `currency`. For high-frequency transactions, use database transactions and consider queueing reconciliation tasks. Test with your expected load to validate response times for reports.
- Are there alternatives to this package, and how does it compare?
- Alternatives include `spatie/laravel-accounting` (simpler, less feature-rich) and `accounting/laravel-accounting` (more enterprise-focused but heavier). This package stands out for its frontend agnosticism (Inertia/React/Blade), built-in multi-currency support, and comprehensive reporting. If you need GAAP/IFRS compliance or advanced tax features, you may need to extend it or pair it with a specialized library.