TaxReckon.php
745 Bytes
<?php
namespace App\Traits;
/**
 * 个税
 * Class Tax
 * @package App\Traits
 */
trait TaxReckon
{
    /**
     * 个人所得税
     * @param $tax_amount
     * @return float|int|mixed|string
     */
    public function reckonPersonTax($tax_amount)
    {
        $min        =   env('TAX_MIN');
        $max        =   env('TAX_MAX');
        $min_rate   =   env('TAX_MIN_RATE');
        $max_rate   =   env('TAX_MAX_RATE');
        if ($tax_amount <= $min) {
            return 0.00;
        } elseif ($tax_amount > $max) {
            return round($tax_amount * $max_rate, env('TAX_DECIMAL'));
        } else {
            return round(bcsub($tax_amount, $min, env('TAX_DECIMAL')) * $min_rate, env('TAX_DECIMAL'));
        }
    }
}