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'));
        }
    }


}