omaralalwi/laravel-taxify

Laravel Taxify 为 Laravel 应用程序提供了一套辅助函数和类,用于简化税务(增值税)计算。它允许开发者轻松地将税务计算功能集成到他们的项目中。它提供了一种简单高效的方法,旨在简化税务处理流程。


README

Laravel Taxify

Laravel Taxify 提供了一套辅助函数和类,用于简化 Laravel 应用程序中的税务(增值税)计算。它允许开发者轻松地将税务计算功能集成到他们的项目中,提供多税务配置设置和(固定、百分比)方式。它提供了一种简单高效的方法,旨在简化税务处理流程。

要求

Laravel 8.x 或更高版本,对于 2.x 版本。

安装

composer require omaralalwi/laravel-taxify

发布包的配置文件

php artisan vendor:publish --tag=laravel-taxify-config

兼容性

对于运行 Laravel 版本 7.x 及更早版本的应用程序,请使用版本 1.0.4

composer require omaralalwi/laravel-taxify:^1.0.4

使用方法

可用的辅助函数

laravel taxify 提供了许多辅助函数以简化使用。

  • calculateTax().
  • calculateTaxForCollection().
  • getTaxAmount() .
  • getTaxRate() .
  • getTaxType() .
  • getTaxRateAsPercentage() .

计算金额的税费

  • 使用 calculateTax 获取作为对象的税费(默认)。
$amount = 250;
$taxAmount = calculateTax($amount,'profileName')->tax_amount; // 37.5

另一种获取详细结果的方式.

$amount = 250;
$tax = calculateTax($amount,'profileName');

结果(对象)

 $tax = {
    "amount_with_tax": 287.5,
    "tax_amount": 37.5,
    "tax_rate": 0.15,
  }

另一种方式,您可以将 $asArray(第三个参数)设置为 true,以获取数组格式的结果

$amount = 250;
$tax = calculateTax($amount,'profileName',true);

结果

$tax = [
    "amount_with_tax" => 287.5,
    "tax_amount" => 37.5,
    "tax_rate" => 0.15,
  ]

另一种仅获取税费金额的方式,作为数组

$amount = 250;
$taxAmount = calculateTax($amount,'',true)['tax_amount'];

注意:第二个参数指的是配置文件中的配置文件,我们将其设置为 null 以使用默认配置文件,第二个参数可以接受(default,null,'')这三个值都表示 default

计算金额集合的税费

类似于 calculateTax,但这是针对多个金额。

  • 使用 calculateTaxForCollection 通过传递金额数组(第一个参数)-> 结果以对象形式返回(默认)。
// you can pass number as float or integer
$productAmount = 250;
$featureAmount = 70.5;
$sarrantyAmount = 30.60;
$chargeAmount = 90;

$tax = calculateTaxForCollection([$productAmount,$featureAmount, $sarrantyAmount, $chargeAmount]);

结果(对象)

$tax = {
    "amount_with_tax": 507.265,
    "tax_amount": 66.165,
    "tax_rate": 0.15,
  }
$taxAmount = $tax->tax_amount // 507.265

要获取金额集合的税费作为数组结果,只需将第三个参数设置为 true,如下所示。

$tax = calculateTaxForCollection([$productAmount,$featureAmount, $sarrantyAmount, $chargeAmount],'',true);

结果(数组)

$tax = [
    "amount_with_tax" => 507.265,
    "tax_amount" => 66.165,
    "tax_rate" => 0.15,
  ]

获取作为数值的税费金额

  • 使用 getTaxAmount 获取税费金额作为数字
$amount = 250;
getTaxAmount($amount); // Result 25

获取税率或税费金额

  • 使用 getTaxRate 获取税率或金额(根据配置文件中指定配置文件中配置的税率类型)
getTaxRate()
// Result 0.15
getTaxRate('sales') // fore specific profile
// Result 50 , here the result is fixed number because the profile type is fixed amount Not percentage

如果配置文件中的税率类型是 fixed,则返回金额(将税率视为金额),否则返回税率。

注意:对于默认配置文件,无需传递 `profileName。

获取税率类型

  • 使用 getTaxType 可以获取税率类型
getTaxType('profileName')
// Result: fixed or percentage // depend on profile settings

获取作为百分比数字的税率(10%,15%)- 仅适用于百分比配置文件

可以获取税率百分比

  • 可以获取税率百分比(仅适用于百分比类型)
getTaxRateAsPercentage();  // Result '10.00%'

注意:对于默认配置文件,无需传递它

配置

环境变量

发布配置文件后。

您可以通过将以下默认配置键添加到您的 .env 文件中来配置 Laravel Taxify。如果不添加这些,则将使用默认值。

对于百分比税率

DEFAULT_TAXIFY_PROFILE="default"
TAXIFY_DEFAULT_RATE="0.10"
TAXIFY_DEFAULT_TYPE="percentage"

固定税率的示例配置

DEFAULT_TAXIFY_PROFILE="default"
TAXIFY_DEFAULT_RATE=50
TAXIFY_DEFAULT_TYPE="fixed"

注意: TAXIFY_DEFAULT_RATE 是一个数字,表示当类型为 percentage 时为税率,当类型为 fixed 时为金额。

您可以在 config/taxify.php 中添加多个税务配置文件。

功能

  • 计算单个金额或一系列金额的税费
  • 作为个体,检索任何配置文件的税费金额、税率和类型
  • 作为个体,检索任何配置文件的一个金额或一系列金额的税费金额 amount_with_taxtax_amounttax_rate
  • 获取作为百分比的税率(仅适用于百分比类型)
  • 通过环境变量轻松自定义配置选项
  • 易于使用的辅助函数
  • 支持所有 PHP 和 Laravel 版本
  • 异常处理:强大的错误处理以确保平稳运行和易于调试
  • 日志记录:自动记录错误和异常,以更好地跟踪错误和调试
  • 单元测试

测试

php artisan test --filter TaxifyTest

贡献

请参阅贡献指南以获取详细信息。

待办事项

此待办事项列表包含我们计划要工作的任务,您可以从中选择一个并开发它,如果您想做出贡献。

安全性

如果您发现任何与安全相关的问题,请通过电子邮件发送至 omaralwi2010@gmail.com

鸣谢

许可协议

MIT 许可协议 (MIT)。请参阅许可文件以获取更多信息。