[ 10 => [ [ 'income' => 4000, 'rate' => 0, 'constant' => 0 ], [ 'income' => 4000, 'rate' => 4.55, 'constant' => 0 ], ], 20 => [ [ 'income' => 8000, 'rate' => 0, 'constant' => 0 ], [ 'income' => 8000, 'rate' => 4.55, 'constant' => 0 ], ], ], 20200101 => [ 10 => [ [ 'income' => 4000, 'rate' => 0, 'constant' => 0 ], [ 'income' => 4000, 'rate' => 4.63, 'constant' => 0 ], ], 20 => [ [ 'income' => 8000, 'rate' => 0, 'constant' => 0 ], [ 'income' => 8000, 'rate' => 4.63, 'constant' => 0 ], ], ], //2018 - No Change 20170101 => [ 10 => [ [ 'income' => 2300, 'rate' => 0, 'constant' => 0 ], [ 'income' => 2300, 'rate' => 4.63, 'constant' => 0 ], ], 20 => [ [ 'income' => 8650, 'rate' => 0, 'constant' => 0 ], [ 'income' => 8650, 'rate' => 4.63, 'constant' => 0 ], ], ], 20150101 => [ 10 => [ [ 'income' => 2300, 'rate' => 0, 'constant' => 0 ], [ 'income' => 2300, 'rate' => 4.63, 'constant' => 0 ], ], 20 => [ [ 'income' => 8600, 'rate' => 0, 'constant' => 0 ], [ 'income' => 8600, 'rate' => 4.63, 'constant' => 0 ], ], ], 20130101 => [ 10 => [ [ 'income' => 2200, 'rate' => 0, 'constant' => 0 ], [ 'income' => 2200, 'rate' => 4.63, 'constant' => 0 ], ], 20 => [ [ 'income' => 8300, 'rate' => 0, 'constant' => 0 ], [ 'income' => 8300, 'rate' => 4.63, 'constant' => 0 ], ], ], 20110101 => [ 10 => [ [ 'income' => 2100, 'rate' => 0, 'constant' => 0 ], [ 'income' => 2100, 'rate' => 4.63, 'constant' => 0 ], ], 20 => [ [ 'income' => 7900, 'rate' => 0, 'constant' => 0 ], [ 'income' => 7900, 'rate' => 4.63, 'constant' => 0 ], ], ], 20090101 => [ 10 => [ [ 'income' => 2050, 'rate' => 0, 'constant' => 0 ], [ 'income' => 2050, 'rate' => 4.63, 'constant' => 0 ], ], 20 => [ [ 'income' => 7750, 'rate' => 0, 'constant' => 0 ], [ 'income' => 7750, 'rate' => 4.63, 'constant' => 0 ], ], ], 20070101 => [ 10 => [ [ 'income' => 1900, 'rate' => 0, 'constant' => 0 ], [ 'income' => 1900, 'rate' => 4.63, 'constant' => 0 ], ], 20 => [ [ 'income' => 7200, 'rate' => 0, 'constant' => 0 ], [ 'income' => 7200, 'rate' => 4.63, 'constant' => 0 ], ], ], 20060101 => [ 10 => [ [ 'income' => 1850, 'rate' => 0, 'constant' => 0 ], [ 'income' => 1850, 'rate' => 4.63, 'constant' => 0 ], ], 20 => [ [ 'income' => 7000, 'rate' => 0, 'constant' => 0 ], [ 'income' => 7000, 'rate' => 4.63, 'constant' => 0 ], ], ], ]; var $state_options = [ //2018 - No Change 20170101 => [ 'allowance' => 4050, ], 20150101 => [ 'allowance' => 4000, ], 20130101 => [ 'allowance' => 3900, ], 20110101 => [ 'allowance' => 3700, ], 20090101 => [ 'allowance' => 3650, ], 20070101 => [ 'allowance' => 3400, ], 20060101 => [ 'allowance' => 3300, ], ]; var $state_ui_options = [ 20220101 => [ 'wage_base' => 17000, 'new_employer_rate' => 1.7 ], 20210101 => [ 'wage_base' => 13600, 'new_employer_rate' => 1.7 ], 20200101 => [ 'wage_base' => 13600, 'new_employer_rate' => 1.7 ], 20190101 => [ 'wage_base' => 13100, 'new_employer_rate' => 1.7 ], ]; function getStatePayPeriodDeductionRoundedValue( $amount ) { return $this->RoundNearestDollar( $amount ); } function getStateAnnualTaxableIncome() { $annual_income = $this->getAnnualTaxableIncome(); $state_allowance = $this->getStateAllowanceAmount(); $income = bcsub( $annual_income, $state_allowance ); Debug::text( 'State Annual Taxable Income: ' . $income, __FILE__, __LINE__, __METHOD__, 10 ); return $income; } function getStateAllowanceAmount() { $retarr = $this->getDataFromRateArray( $this->getDate(), $this->state_options ); if ( $retarr == false ) { return false; } $allowance_arr = $retarr['allowance']; if ( $this->getDate() >= 20200101 ) { //Allowances discontined with Federal 2020 W4 change. //This has switched to dollars now, but its the same field. // So if its 10 or less, ignore it. If its more than 10 treat it as dollars. if ( $this->getStateAllowance() > 10 ) { $retval = $this->getStateAllowance(); } else { $retval = 0; } } else { $retval = bcmul( $this->getStateAllowance(), $allowance_arr ); } Debug::text( 'State Allowance Amount: ' . $retval, __FILE__, __LINE__, __METHOD__, 10 ); return $retval; } function _getStateTaxPayable() { $annual_income = $this->getStateAnnualTaxableIncome(); $retval = 0; if ( $annual_income > 0 ) { $rate = $this->getData()->getStateRate( $annual_income ); $state_constant = $this->getData()->getStateConstant( $annual_income ); $state_rate_income = $this->getData()->getStateRatePreviousIncome( $annual_income ); $retval = bcadd( bcmul( bcsub( $annual_income, $state_rate_income ), $rate ), $state_constant ); //$retval = bcadd( bcmul( $annual_income, $rate ), $state_constant ); } if ( $retval < 0 ) { $retval = 0; } Debug::text( 'State Annual Tax Payable: ' . $retval, __FILE__, __LINE__, __METHOD__, 10 ); return $retval; } } ?>