[ [ 'income' => 29590, 'rate' => 8.79, 'constant' => 0 ], [ 'income' => 59180, 'rate' => 14.95, 'constant' => 1823 ], [ 'income' => 93000, 'rate' => 16.67, 'constant' => 2841 ], [ 'income' => 150000, 'rate' => 17.5, 'constant' => 3613 ], [ 'income' => 150000, 'rate' => 21.0, 'constant' => 8863 ], ], 20100701 => [ [ 'income' => 29590, 'rate' => 8.79, 'constant' => 0 ], [ 'income' => 59180, 'rate' => 14.95, 'constant' => 1823 ], [ 'income' => 93000, 'rate' => 16.67, 'constant' => 2841 ], [ 'income' => 150000, 'rate' => 17.5, 'constant' => 3613 ], [ 'income' => 150000, 'rate' => 24.5, 'constant' => 14113 ], ], 20070101 => [ [ 'income' => 29590, 'rate' => 8.79, 'constant' => 0 ], [ 'income' => 59180, 'rate' => 14.95, 'constant' => 1823 ], [ 'income' => 93000, 'rate' => 16.67, 'constant' => 2841 ], [ 'income' => 93000, 'rate' => 17.5, 'constant' => 3613 ], ], ]; function getProvincialTotalClaimAmount() { /* BPA = Where A ≤ $25,000, BPA is equal to $11,481; Where A > $25,000 < $75,000, BPA is equal to: $11,481 – [(A – $25,000) × 6%)];* Where A ≥ $75,000, BPA is equal to $8,481 $11,481 High Basic Claim Amount -- **This should be set in Data.class.php** $8,481 Low Basic Claim Amount */ $BPA = parent::getProvincialTotalClaimAmount(); if ( $this->getDate() >= 20180101 && $BPA > 0 ) { $high_claim_amount = $this->getBasicProvinceClaimCodeAmount(); $low_claim_amount = 8481; $A = $this->getAnnualTaxableIncome(); if ( $A <= 25000 ) { $BPA = $high_claim_amount; } else if ( $A > 25000 && $A < 75000 ) { $BPA = bcsub( $high_claim_amount, bcmul( bcsub( $A, 25000 ), 0.06 ) ); } else if ( $A > 75000 ) { $BPA = $low_claim_amount; } Debug::text( 'BPA: ' . $BPA . ' Claim Amount: High: ' . $high_claim_amount . ' Low: ' . $low_claim_amount . ' A: ' . $A, __FILE__, __LINE__, __METHOD__, 10 ); } return $BPA; } } ?>