vasilgerginski/filament-accounting

A Filament plugin for managing expenses, incomes and their types

Installs: 5

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/vasilgerginski/filament-accounting

v1.0.0 2025-12-03 15:16 UTC

This package is auto-updated.

Last update: 2025-12-03 15:18:00 UTC


README

A Filament v3 plugin for managing expenses, incomes, and their types in Laravel applications.

Features

  • Expenses Management: Track expenses with CAPEX/OPEX categorization and amortization percentages
  • Expense Types: Categorize your expenses with types
  • Incomes Management: Track incomes with optional user/client association
  • Income Types: Categorize your incomes with types
  • Charts & Stats: Visual dashboards with pie charts and statistics widgets
  • Date Range Filters: Filter data by date ranges
  • Configurable: Customize currency, navigation group, and more

Installation

From Packagist (when published)

composer require vasilgerginski/filament-accounting

Local Development

Add the repository to your composer.json:

{
    "repositories": [
        {
            "type": "path",
            "url": "packages/vasilgerginski/filament-accounting"
        }
    ]
}

Then require the package:

composer require vasilgerginski/filament-accounting:@dev

Setup

1. Publish and run migrations

php artisan vendor:publish --tag="filament-accounting-migrations"
php artisan migrate

2. Publish config (optional)

php artisan vendor:publish --tag="filament-accounting-config"

3. Register the plugin in your Filament Panel

In your AdminPanelProvider.php:

use VasilGerginski\FilamentAccounting\FilamentAccountingPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        // ...
        ->plugins([
            FilamentAccountingPlugin::make(),
        ]);
}

Configuration

The configuration file allows you to customize:

return [
    // Navigation group name
    'navigation_group' => 'Accounting',

    // Currency settings
    'currency' => 'EUR',
    'currency_symbol' => '',
    'currency_label' => 'EUR',

    // User relationship for incomes
    'enable_user_relation' => true,
    'user_model' => 'App\\Models\\User',
    'user_label' => 'Client',
    'user_role_filter' => null, // e.g., 'client'

    // Enable/disable specific resources
    'resources' => [
        'expenses' => true,
        'expense_types' => true,
        'incomes' => true,
        'income_types' => true,
    ],
];

Customizing Resources

You can enable/disable specific resources in the plugin:

FilamentAccountingPlugin::make()
    ->expenses(true)
    ->expenseTypes(true)
    ->incomes(true)
    ->incomeTypes(false), // Disable income types

License

MIT License. See LICENSE for more information.