inisiatif/laravel-budget

印尼 zakat inisiatif 的预算私有集成

2.2.1 2024-09-02 04:35 UTC

This package is auto-updated.

Last update: 2024-09-02 04:36:23 UTC


README

PHPUnit Psalm Laravel Pint Latest Version on Packagist Total Downloads

印尼 zakat inisiatif 内部使用的用于访问年度预算的包。

使用的 Laravel 版本为 ^9.43 或 ^10.0

安装

您可以使用 composer 安装

composer require inisiatif/laravel-budget

如果需要,您可以发布迁移文件并使用以下命令运行它

php artisan vendor:publish --tag="budget-migrations"
php artisan migrate

您也可以使用以下命令发布配置文件

php artisan vendor:publish --tag="budget-config"

以下是发布配置文件的内容

<?php

declare(strict_types=1);

return [
    /**
     * This is connection database must be available in database config
     */
    'connection' => env('LARAVEL_BUDGET_ELOQUENT_CONNECTION', env('DB_CONNECTION', 'sqlite')),

    /**
     * This is table name for budget
     */
    'table' => env('LARAVEL_BUDGET_ELOQUENT_TABLE', 'budgets'),

    /**
     * Indicated must be running migration, internally used in testing
     */
    'migration' => env('LARAVEL_BUDGET_ELOQUENT_MIGRATION', false),

    /**
     * Column name mapping, you can change this value is column name is different
     */
    'columns' => [
        'id' => 'id',
        'code' => 'code',
        'description' => 'description',
        'total_amount' => 'total_amount',
        'usage_amount' => 'usage_amount',
        'is_over' => 'is_over',
    ],

    /**
     * Column type for version column
     *
     * Support: int, string, json
     */
    'version_column_type' => 'int',

    /**
     * Column version name
     */
    'version_column_name' => 'year',

    /**
     * For json type fill using json path, ex : `version->year`
     */
    'version_json_column_path' => null,

    /**
     * Disable or enable timestamps in model
     */
    'model_uses_timestamps' => true,
];

使用方法

模型

此库发布了一些与使用的预算模型相关的配置。

默认模型为 Inisiatif\LaravelBudget\Models\Budget,如果想要使用其他模型,您需要在 AppServiceProviderboot 方法中注册它。

use Inisiatif\LaravelBudget\LaravelBudget;

LaravelBudget::useBudgetModelClass('Acme\Models\Budget');

请确保您创建的模型是 Inisiatif\LaravelBudget\Models\BudgetModel 的子类。

除了可以使用自己的模型外,库还允许您更改与表格相关的某些设置。

数据库连接

使用的数据库连接可以通过使用 env LARAVEL_BUDGET_ELOQUENT_CONNECTION 来更改,默认值是从 default 数据库配置中获取的。

您必须确保在 config/database.php 中使用了可用的连接名称。

表格

默认情况下,使用的表格名称为 budgets,符合 Laravel 的约定。您可以使用 env LARAVEL_BUDGET_ELOQUENT_TABLE 来调整表格名称。

除了表格名称外,您还可以通过更改配置来映射使用的列。

'columns' => [
    'id' => 'id',
    'code' => 'code',
    'description' => 'description',
    'total_amount' => 'total_amount',
    'usage_amount' => 'usage_amount',
    'is_over' => 'is_over',
],

有关配置的更详细信息,请参阅配置文件。

REST API

此库提供了一些 REST API 端点,您需要先在 routes/api.php 中注册路由。

// File routes/api.php

use Inisiatif\LaravelBudget\LaravelBudget;

LaravelBudget::routes();
  1. 列出预算

    GET /api/budget
    GET /api/budget?version=2023
    GET /api/budget?code=CODE001
    GET /api/budget?description=Foo
    

    您可以添加 limit 参数来增加输出数据量,默认值为 15

  2. 输出当前预算版本,版本通常基于年份

    GET /api/budget/current
    GET /api/budget/current?code=CODE001
    GET /api/budget/current?description=Foo
    

    您可以添加 limit 参数来增加输出数据量,默认值为 15

  3. 使用 codeid 显示一个预算

    GET /api/budget/CODE001
    GET /api/budget/1
    

显示的 JSON 对象

{
    "id": 1,
    "code": "CODE001",
    "description": "Anggaran pengembangan aplikasi",
    "total_amount": 100000000.00,
    "usage_amount": 0.00,
    "balance_amount": 100000000.00,
    "is_over": false,
    "is_limit_reached": false
}

预算余额

此库还提供了通过添加和减少 usage 来更改余额的方法。

// Sebelumnya anda harus menganbil budget dari database

$budget->increaseUsage(1000); // Untuk menambah penggunaan anggaran sebanyak 1000
$budget->decreaseUsage(500); // Untuk mengurasi penggunaan anggaran sebanyak 500

测试

composer test

更新日志

请参阅 更新日志 了解最近更改的详细信息。

安全漏洞

请查看 我们的安全策略 了解如何报告安全漏洞。

致谢

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件