TimeTrex Community Edition v16.2.0
This commit is contained in:
86
classes/payroll_deduction/CA/AB.class.php
Normal file
86
classes/payroll_deduction/CA/AB.class.php
Normal file
@@ -0,0 +1,86 @@
|
||||
<?php
|
||||
/*********************************************************************************
|
||||
*
|
||||
* TimeTrex is a Workforce Management program developed by
|
||||
* TimeTrex Software Inc. Copyright (C) 2003 - 2021 TimeTrex Software Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Affero General Public License version 3 as published by
|
||||
* the Free Software Foundation with the addition of the following permission
|
||||
* added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
|
||||
* WORK IN WHICH THE COPYRIGHT IS OWNED BY TIMETREX, TIMETREX DISCLAIMS THE
|
||||
* WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||
* details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License along
|
||||
* with this program; if not, see http://www.gnu.org/licenses or write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA.
|
||||
*
|
||||
*
|
||||
* You can contact TimeTrex headquarters at Unit 22 - 2475 Dobbin Rd. Suite
|
||||
* #292 West Kelowna, BC V4T 2E9, Canada or at email address info@timetrex.com.
|
||||
*
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License
|
||||
* version 3, these Appropriate Legal Notices must retain the display of the
|
||||
* "Powered by TimeTrex" logo. If the display of the logo is not reasonably
|
||||
* feasible for technical reasons, the Appropriate Legal Notices must display
|
||||
* the words "Powered by TimeTrex".
|
||||
*
|
||||
********************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* @package PayrollDeduction\CA
|
||||
*/
|
||||
class PayrollDeduction_CA_AB extends PayrollDeduction_CA {
|
||||
var $provincial_income_tax_rate_options = [
|
||||
//No Changes in 2022.
|
||||
//No Changes in 2021.
|
||||
//No Changes in 2020.
|
||||
20190101 => [
|
||||
[ 'income' => 131220, 'rate' => 10, 'constant' => 0 ],
|
||||
[ 'income' => 157464, 'rate' => 12, 'constant' => 2624 ],
|
||||
[ 'income' => 209952, 'rate' => 13, 'constant' => 4199 ],
|
||||
[ 'income' => 314928, 'rate' => 14, 'constant' => 6299 ],
|
||||
[ 'income' => 314928, 'rate' => 15, 'constant' => 9448 ],
|
||||
],
|
||||
20180101 => [
|
||||
[ 'income' => 128145, 'rate' => 10, 'constant' => 0 ],
|
||||
[ 'income' => 153773, 'rate' => 12, 'constant' => 2563 ],
|
||||
[ 'income' => 205031, 'rate' => 13, 'constant' => 4101 ],
|
||||
[ 'income' => 307547, 'rate' => 14, 'constant' => 6151 ],
|
||||
[ 'income' => 307547, 'rate' => 15, 'constant' => 9226 ],
|
||||
],
|
||||
20170101 => [
|
||||
[ 'income' => 126625, 'rate' => 10, 'constant' => 0 ],
|
||||
[ 'income' => 151950, 'rate' => 12, 'constant' => 2533 ],
|
||||
[ 'income' => 202600, 'rate' => 13, 'constant' => 4052 ],
|
||||
[ 'income' => 303900, 'rate' => 14, 'constant' => 6078 ],
|
||||
[ 'income' => 303900, 'rate' => 15, 'constant' => 9117 ],
|
||||
],
|
||||
20151001 => [ //01-Oct-2015 (Option 1)
|
||||
[ 'income' => 125000, 'rate' => 10, 'constant' => 0 ],
|
||||
[ 'income' => 150000, 'rate' => 12, 'constant' => 2500 ],
|
||||
[ 'income' => 200000, 'rate' => 13, 'constant' => 4000 ],
|
||||
[ 'income' => 300000, 'rate' => 14, 'constant' => 6000 ],
|
||||
[ 'income' => 300000, 'rate' => 15, 'constant' => 9000 ],
|
||||
],
|
||||
20040101 => [
|
||||
[ 'income' => 0, 'rate' => 10, 'constant' => 0 ],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
?>
|
419
classes/payroll_deduction/CA/BC.class.php
Normal file
419
classes/payroll_deduction/CA/BC.class.php
Normal file
@@ -0,0 +1,419 @@
|
||||
<?php
|
||||
/*********************************************************************************
|
||||
*
|
||||
* TimeTrex is a Workforce Management program developed by
|
||||
* TimeTrex Software Inc. Copyright (C) 2003 - 2021 TimeTrex Software Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Affero General Public License version 3 as published by
|
||||
* the Free Software Foundation with the addition of the following permission
|
||||
* added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
|
||||
* WORK IN WHICH THE COPYRIGHT IS OWNED BY TIMETREX, TIMETREX DISCLAIMS THE
|
||||
* WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||
* details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License along
|
||||
* with this program; if not, see http://www.gnu.org/licenses or write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA.
|
||||
*
|
||||
*
|
||||
* You can contact TimeTrex headquarters at Unit 22 - 2475 Dobbin Rd. Suite
|
||||
* #292 West Kelowna, BC V4T 2E9, Canada or at email address info@timetrex.com.
|
||||
*
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License
|
||||
* version 3, these Appropriate Legal Notices must retain the display of the
|
||||
* "Powered by TimeTrex" logo. If the display of the logo is not reasonably
|
||||
* feasible for technical reasons, the Appropriate Legal Notices must display
|
||||
* the words "Powered by TimeTrex".
|
||||
*
|
||||
********************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* @package PayrollDeduction\CA
|
||||
*/
|
||||
class PayrollDeduction_CA_BC extends PayrollDeduction_CA {
|
||||
var $provincial_income_tax_rate_options = [
|
||||
20220101 => [
|
||||
[ 'income' => 43070, 'rate' => 5.06, 'constant' => 0 ],
|
||||
[ 'income' => 86141, 'rate' => 7.7, 'constant' => 1137 ],
|
||||
[ 'income' => 98901, 'rate' => 10.5, 'constant' => 3549 ],
|
||||
[ 'income' => 120094, 'rate' => 12.29, 'constant' => 5319 ],
|
||||
[ 'income' => 162832, 'rate' => 14.7, 'constant' => 8214 ],
|
||||
[ 'income' => 227091, 'rate' => 16.8, 'constant' => 11633 ],
|
||||
[ 'income' => 227091, 'rate' => 20.50, 'constant' => 20035 ],
|
||||
],
|
||||
20210101 => [
|
||||
[ 'income' => 42184, 'rate' => 5.06, 'constant' => 0 ],
|
||||
[ 'income' => 84369, 'rate' => 7.7, 'constant' => 1114 ],
|
||||
[ 'income' => 96866, 'rate' => 10.5, 'constant' => 3476 ],
|
||||
[ 'income' => 117623, 'rate' => 12.29, 'constant' => 5210 ],
|
||||
[ 'income' => 159483, 'rate' => 14.7, 'constant' => 8045 ],
|
||||
[ 'income' => 222420, 'rate' => 16.8, 'constant' => 11394 ],
|
||||
[ 'income' => 222420, 'rate' => 20.50, 'constant' => 19623 ],
|
||||
],
|
||||
20200701 => [
|
||||
[ 'income' => 41725, 'rate' => 5.06, 'constant' => 0 ],
|
||||
[ 'income' => 83451, 'rate' => 7.7, 'constant' => 1102 ],
|
||||
[ 'income' => 95812, 'rate' => 10.5, 'constant' => 3438 ],
|
||||
[ 'income' => 116344, 'rate' => 12.29, 'constant' => 5153 ],
|
||||
[ 'income' => 157748, 'rate' => 14.7, 'constant' => 7957 ],
|
||||
[ 'income' => 220000, 'rate' => 16.8, 'constant' => 11270 ],
|
||||
[ 'income' => 220000, 'rate' => 24.2, 'constant' => 27550 ],
|
||||
],
|
||||
20200101 => [
|
||||
[ 'income' => 41725, 'rate' => 5.06, 'constant' => 0 ],
|
||||
[ 'income' => 83451, 'rate' => 7.7, 'constant' => 1102 ],
|
||||
[ 'income' => 95812, 'rate' => 10.5, 'constant' => 3438 ],
|
||||
[ 'income' => 116344, 'rate' => 12.29, 'constant' => 5153 ],
|
||||
[ 'income' => 157748, 'rate' => 14.7, 'constant' => 7957 ],
|
||||
[ 'income' => 157748, 'rate' => 16.8, 'constant' => 11270 ],
|
||||
],
|
||||
20190101 => [
|
||||
[ 'income' => 40707, 'rate' => 5.06, 'constant' => 0 ],
|
||||
[ 'income' => 81416, 'rate' => 7.7, 'constant' => 1075 ],
|
||||
[ 'income' => 93476, 'rate' => 10.5, 'constant' => 3354 ],
|
||||
[ 'income' => 113506, 'rate' => 12.29, 'constant' => 5028 ],
|
||||
[ 'income' => 153900, 'rate' => 14.7, 'constant' => 7763 ],
|
||||
[ 'income' => 153900, 'rate' => 16.8, 'constant' => 10995 ],
|
||||
],
|
||||
20180101 => [
|
||||
[ 'income' => 39676, 'rate' => 5.06, 'constant' => 0 ],
|
||||
[ 'income' => 79353, 'rate' => 7.7, 'constant' => 1047 ],
|
||||
[ 'income' => 91107, 'rate' => 10.5, 'constant' => 3269 ],
|
||||
[ 'income' => 110630, 'rate' => 12.29, 'constant' => 4900 ],
|
||||
[ 'income' => 150000, 'rate' => 14.7, 'constant' => 7566 ],
|
||||
[ 'income' => 150000, 'rate' => 16.8, 'constant' => 10716 ],
|
||||
],
|
||||
20170101 => [
|
||||
[ 'income' => 38898, 'rate' => 5.06, 'constant' => 0 ],
|
||||
[ 'income' => 77797, 'rate' => 7.7, 'constant' => 1027 ],
|
||||
[ 'income' => 89320, 'rate' => 10.5, 'constant' => 3205 ],
|
||||
[ 'income' => 108460, 'rate' => 12.29, 'constant' => 4804 ],
|
||||
[ 'income' => 108460, 'rate' => 14.7, 'constant' => 7418 ],
|
||||
],
|
||||
20160101 => [
|
||||
[ 'income' => 38210, 'rate' => 5.06, 'constant' => 0 ],
|
||||
[ 'income' => 76421, 'rate' => 7.7, 'constant' => 1009 ],
|
||||
[ 'income' => 87741, 'rate' => 10.5, 'constant' => 3149 ],
|
||||
[ 'income' => 106543, 'rate' => 12.29, 'constant' => 4719 ],
|
||||
[ 'income' => 106543, 'rate' => 14.7, 'constant' => 7287 ],
|
||||
],
|
||||
20150101 => [
|
||||
[ 'income' => 37869, 'rate' => 5.06, 'constant' => 0 ],
|
||||
[ 'income' => 75740, 'rate' => 7.7, 'constant' => 1000 ],
|
||||
[ 'income' => 86958, 'rate' => 10.5, 'constant' => 3120 ],
|
||||
[ 'income' => 105592, 'rate' => 12.29, 'constant' => 4677 ],
|
||||
[ 'income' => 151050, 'rate' => 14.7, 'constant' => 7222 ],
|
||||
[ 'income' => 151050, 'rate' => 16.8, 'constant' => 10394 ],
|
||||
],
|
||||
20140101 => [
|
||||
[ 'income' => 37606, 'rate' => 5.06, 'constant' => 0 ],
|
||||
[ 'income' => 75213, 'rate' => 7.7, 'constant' => 993 ],
|
||||
[ 'income' => 86354, 'rate' => 10.5, 'constant' => 3099 ],
|
||||
[ 'income' => 104858, 'rate' => 12.29, 'constant' => 4644 ],
|
||||
[ 'income' => 150000, 'rate' => 14.7, 'constant' => 7172 ],
|
||||
[ 'income' => 150000, 'rate' => 16.8, 'constant' => 10322 ],
|
||||
],
|
||||
20130101 => [
|
||||
[ 'income' => 37568, 'rate' => 5.06, 'constant' => 0 ],
|
||||
[ 'income' => 75138, 'rate' => 7.7, 'constant' => 992 ],
|
||||
[ 'income' => 86268, 'rate' => 10.5, 'constant' => 3096 ],
|
||||
[ 'income' => 104754, 'rate' => 12.29, 'constant' => 4640 ],
|
||||
[ 'income' => 104754, 'rate' => 14.7, 'constant' => 7164 ],
|
||||
],
|
||||
20120101 => [
|
||||
[ 'income' => 37013, 'rate' => 5.06, 'constant' => 0 ],
|
||||
[ 'income' => 74028, 'rate' => 7.7, 'constant' => 977 ],
|
||||
[ 'income' => 84993, 'rate' => 10.5, 'constant' => 3050 ],
|
||||
[ 'income' => 103205, 'rate' => 12.29, 'constant' => 4571 ],
|
||||
[ 'income' => 103205, 'rate' => 14.7, 'constant' => 7059 ],
|
||||
],
|
||||
20110101 => [
|
||||
[ 'income' => 36146, 'rate' => 5.06, 'constant' => 0 ],
|
||||
[ 'income' => 72293, 'rate' => 7.7, 'constant' => 954 ],
|
||||
[ 'income' => 83001, 'rate' => 10.5, 'constant' => 2978 ],
|
||||
[ 'income' => 100787, 'rate' => 12.29, 'constant' => 4464 ],
|
||||
[ 'income' => 100787, 'rate' => 14.7, 'constant' => 6893 ],
|
||||
],
|
||||
20100101 => [
|
||||
[ 'income' => 35859, 'rate' => 5.06, 'constant' => 0 ],
|
||||
[ 'income' => 71719, 'rate' => 7.7, 'constant' => 947 ],
|
||||
[ 'income' => 82342, 'rate' => 10.5, 'constant' => 2955 ],
|
||||
[ 'income' => 99987, 'rate' => 12.29, 'constant' => 4429 ],
|
||||
[ 'income' => 99987, 'rate' => 14.7, 'constant' => 6838 ],
|
||||
],
|
||||
20090101 => [
|
||||
[ 'income' => 35716, 'rate' => 5.06, 'constant' => 0 ],
|
||||
[ 'income' => 71433, 'rate' => 7.7, 'constant' => 943 ],
|
||||
[ 'income' => 82014, 'rate' => 10.5, 'constant' => 2943 ],
|
||||
[ 'income' => 99588, 'rate' => 12.29, 'constant' => 4411 ],
|
||||
[ 'income' => 99588, 'rate' => 14.7, 'constant' => 6811 ],
|
||||
],
|
||||
20080701 => [
|
||||
[ 'income' => 35016, 'rate' => 5.13, 'constant' => 0 ],
|
||||
[ 'income' => 70033, 'rate' => 7.81, 'constant' => 938 ],
|
||||
[ 'income' => 80406, 'rate' => 10.50, 'constant' => 2822 ],
|
||||
[ 'income' => 97636, 'rate' => 12.29, 'constant' => 4262 ],
|
||||
[ 'income' => 97636, 'rate' => 14.70, 'constant' => 6615 ],
|
||||
],
|
||||
20080101 => [
|
||||
[ 'income' => 35016, 'rate' => 5.35, 'constant' => 0 ],
|
||||
[ 'income' => 70033, 'rate' => 8.15, 'constant' => 980 ],
|
||||
[ 'income' => 80406, 'rate' => 10.50, 'constant' => 2626 ],
|
||||
[ 'income' => 97636, 'rate' => 12.29, 'constant' => 4065 ],
|
||||
[ 'income' => 97636, 'rate' => 14.70, 'constant' => 6419 ],
|
||||
],
|
||||
20070701 => [
|
||||
[ 'income' => 34397, 'rate' => 5.35, 'constant' => 0 ],
|
||||
[ 'income' => 68794, 'rate' => 8.15, 'constant' => 963 ],
|
||||
[ 'income' => 78984, 'rate' => 10.5, 'constant' => 2580 ],
|
||||
[ 'income' => 95909, 'rate' => 12.3, 'constant' => 4001 ],
|
||||
[ 'income' => 95909, 'rate' => 14.7, 'constant' => 6303 ],
|
||||
],
|
||||
20070101 => [
|
||||
[ 'income' => 34397, 'rate' => 6.05, 'constant' => 0 ],
|
||||
[ 'income' => 68794, 'rate' => 9.15, 'constant' => 1066 ],
|
||||
[ 'income' => 78984, 'rate' => 11.70, 'constant' => 2821 ],
|
||||
[ 'income' => 95909, 'rate' => 13.70, 'constant' => 4400 ],
|
||||
[ 'income' => 95909, 'rate' => 14.70, 'constant' => 5359 ],
|
||||
],
|
||||
20060101 => [
|
||||
[ 'income' => 33755, 'rate' => 6.05, 'constant' => 0 ],
|
||||
[ 'income' => 67511, 'rate' => 9.15, 'constant' => 1046 ],
|
||||
[ 'income' => 77511, 'rate' => 11.7, 'constant' => 2768 ],
|
||||
[ 'income' => 94121, 'rate' => 13.7, 'constant' => 4318 ],
|
||||
[ 'income' => 94121, 'rate' => 14.7, 'constant' => 5259 ],
|
||||
],
|
||||
20050701 => [
|
||||
[ 'income' => 33061, 'rate' => 6.05, 'constant' => 0 ],
|
||||
[ 'income' => 66123, 'rate' => 9.15, 'constant' => 1007 ],
|
||||
[ 'income' => 75917, 'rate' => 11.7, 'constant' => 2663 ],
|
||||
[ 'income' => 92185, 'rate' => 13.7, 'constant' => 4155 ],
|
||||
[ 'income' => 92185, 'rate' => 14.7, 'constant' => 5151 ],
|
||||
],
|
||||
20050101 => [
|
||||
[ 'income' => 33061, 'rate' => 6.05, 'constant' => 0 ],
|
||||
[ 'income' => 66123, 'rate' => 9.15, 'constant' => 1025 ],
|
||||
[ 'income' => 75917, 'rate' => 11.7, 'constant' => 2711 ],
|
||||
[ 'income' => 92185, 'rate' => 13.7, 'constant' => 4229 ],
|
||||
[ 'income' => 92185, 'rate' => 14.7, 'constant' => 5151 ],
|
||||
],
|
||||
20040101 => [
|
||||
[ 'income' => 32476, 'rate' => 6.05, 'constant' => 0 ],
|
||||
[ 'income' => 64954, 'rate' => 9.15, 'constant' => 1007 ],
|
||||
[ 'income' => 74575, 'rate' => 11.7, 'constant' => 2663 ],
|
||||
[ 'income' => 90555, 'rate' => 13.7, 'constant' => 4155 ],
|
||||
[ 'income' => 90555, 'rate' => 14.7, 'constant' => 5060 ],
|
||||
],
|
||||
20030101 => [
|
||||
[ 'income' => 32476, 'rate' => 6.05, 'constant' => 0 ],
|
||||
[ 'income' => 64954, 'rate' => 9.15, 'constant' => 1007 ],
|
||||
[ 'income' => 74575, 'rate' => 11.7, 'constant' => 2663 ],
|
||||
[ 'income' => 90555, 'rate' => 13.7, 'constant' => 4155 ],
|
||||
[ 'income' => 90555, 'rate' => 14.7, 'constant' => 5060 ],
|
||||
],
|
||||
20020101 => [
|
||||
[ 'income' => 32476, 'rate' => 6.05, 'constant' => 0 ],
|
||||
[ 'income' => 64954, 'rate' => 9.15, 'constant' => 1007 ],
|
||||
[ 'income' => 74575, 'rate' => 11.7, 'constant' => 2663 ],
|
||||
[ 'income' => 90555, 'rate' => 13.7, 'constant' => 4155 ],
|
||||
[ 'income' => 90555, 'rate' => 14.7, 'constant' => 5060 ],
|
||||
],
|
||||
20010101 => [
|
||||
[ 'income' => 32476, 'rate' => 6.05, 'constant' => 0 ],
|
||||
[ 'income' => 64954, 'rate' => 9.15, 'constant' => 1007 ],
|
||||
[ 'income' => 74575, 'rate' => 11.7, 'constant' => 2663 ],
|
||||
[ 'income' => 90555, 'rate' => 13.7, 'constant' => 4155 ],
|
||||
[ 'income' => 90555, 'rate' => 14.7, 'constant' => 5060 ],
|
||||
],
|
||||
];
|
||||
|
||||
/*
|
||||
Provincial tax reduction
|
||||
*/
|
||||
var $provincial_tax_reduction_options = [
|
||||
20220101 => [
|
||||
'income1' => 21867,
|
||||
'income2' => 35659,
|
||||
'amount' => 491, //S2
|
||||
'rate' => 0.0356,
|
||||
],
|
||||
20210101 => [
|
||||
'income1' => 21418,
|
||||
'income2' => 34929,
|
||||
'amount' => 481,
|
||||
'rate' => 0.0356,
|
||||
],
|
||||
20200101 => [
|
||||
'income1' => 21185,
|
||||
'income2' => 34556,
|
||||
'amount' => 476,
|
||||
'rate' => 0.0356,
|
||||
],
|
||||
20190101 => [
|
||||
'income1' => 20668,
|
||||
'income2' => 33702,
|
||||
'amount' => 464,
|
||||
'rate' => 0.0356,
|
||||
],
|
||||
20180101 => [
|
||||
'income1' => 20144,
|
||||
'income2' => 32868.72,
|
||||
'amount' => 453,
|
||||
'rate' => 0.0356,
|
||||
],
|
||||
20170101 => [
|
||||
'income1' => 19749,
|
||||
'income2' => 32220.91,
|
||||
'amount' => 444,
|
||||
'rate' => 0.0356,
|
||||
],
|
||||
20160701 => [ //01-Jul-2016
|
||||
'income1' => 19629,
|
||||
'income2' => 31673.20,
|
||||
'amount' => 436,
|
||||
'rate' => 0.0362,
|
||||
],
|
||||
20160101 => [
|
||||
'income1' => 19171,
|
||||
'income2' => 31628.14,
|
||||
'amount' => 436,
|
||||
'rate' => 0.035,
|
||||
],
|
||||
20150701 => [ //01-Jul-2015
|
||||
'income1' => 19673,
|
||||
'income2' => 31567.74,
|
||||
'amount' => 452,
|
||||
'rate' => 0.038,
|
||||
],
|
||||
20150101 => [
|
||||
'income1' => 18327,
|
||||
'income2' => 31202,
|
||||
'amount' => 412,
|
||||
'rate' => 0.032,
|
||||
],
|
||||
20140101 => [
|
||||
'income1' => 18200,
|
||||
'income2' => 30981.25,
|
||||
'amount' => 409,
|
||||
'rate' => 0.032,
|
||||
],
|
||||
20130101 => [
|
||||
'income1' => 18181,
|
||||
'income2' => 30962.25,
|
||||
'amount' => 409,
|
||||
'rate' => 0.032,
|
||||
],
|
||||
20120101 => [
|
||||
'income1' => 17913,
|
||||
'income2' => 30506.75,
|
||||
'amount' => 403,
|
||||
'rate' => 0.032,
|
||||
],
|
||||
20110101 => [
|
||||
'income1' => 17493,
|
||||
'income2' => 29805.50,
|
||||
'amount' => 394,
|
||||
'rate' => 0.032,
|
||||
],
|
||||
20100101 => [
|
||||
'income1' => 17354,
|
||||
'income2' => 29541.50,
|
||||
'amount' => 390,
|
||||
'rate' => 0.032,
|
||||
],
|
||||
20090101 => [
|
||||
'income1' => 17285,
|
||||
'income2' => 29441.25,
|
||||
'amount' => 389,
|
||||
'rate' => 0.032,
|
||||
],
|
||||
20080101 => [
|
||||
'income1' => 16946,
|
||||
'income2' => 28852.25,
|
||||
'amount' => 381,
|
||||
'rate' => 0.032,
|
||||
],
|
||||
20070701 => [ //07-Jul-2007
|
||||
'income1' => 16646,
|
||||
'income2' => 28364.75,
|
||||
'amount' => 375,
|
||||
'rate' => 0.032,
|
||||
],
|
||||
20070101 => [
|
||||
'income1' => 16646,
|
||||
'income2' => 27062.67,
|
||||
'amount' => 375,
|
||||
'rate' => 0.032,
|
||||
],
|
||||
20060101 => [
|
||||
'income1' => 16336,
|
||||
'income2' => 26558.22,
|
||||
'amount' => 368,
|
||||
'rate' => 0.032,
|
||||
],
|
||||
20050101 => [
|
||||
'income1' => 16000,
|
||||
'income2' => 26000,
|
||||
'amount' => 360,
|
||||
'rate' => 0.032,
|
||||
],
|
||||
];
|
||||
|
||||
function getProvincialTaxReduction() {
|
||||
$A = $this->getAnnualTaxableIncome();
|
||||
$T4 = $this->getProvincialBasicTax();
|
||||
// $V1 = $this->getProvincialSurtax();
|
||||
// $Y = 0;
|
||||
$S = 0;
|
||||
|
||||
Debug::text( 'BC Specific - Province: ' . $this->getProvince(), __FILE__, __LINE__, __METHOD__, 10 );
|
||||
$tax_reduction_data = $this->getProvincialTaxReductionData( $this->getDate() );
|
||||
if ( is_array( $tax_reduction_data ) ) {
|
||||
if ( $A <= $tax_reduction_data['income1'] ) {
|
||||
Debug::text( 'S: Annual Income less than: ' . $tax_reduction_data['income1'], __FILE__, __LINE__, __METHOD__, 10 );
|
||||
if ( $T4 > $tax_reduction_data['amount'] ) {
|
||||
$S = $tax_reduction_data['amount'];
|
||||
} else {
|
||||
$S = $T4;
|
||||
}
|
||||
} else if ( $A > $tax_reduction_data['income1'] && $A <= $tax_reduction_data['income2'] ) {
|
||||
Debug::text( 'S: Annual Income less than ' . $tax_reduction_data['income2'], __FILE__, __LINE__, __METHOD__, 10 );
|
||||
|
||||
$tmp_S = bcsub( $tax_reduction_data['amount'], bcmul( bcsub( $A, $tax_reduction_data['income1'] ), $tax_reduction_data['rate'] ) );
|
||||
Debug::text( 'Tmp_S: ' . $tmp_S, __FILE__, __LINE__, __METHOD__, 10 );
|
||||
|
||||
if ( $T4 > $tmp_S ) {
|
||||
$S = $tmp_S;
|
||||
} else {
|
||||
$S = $T4;
|
||||
}
|
||||
unset( $tmp_S );
|
||||
}
|
||||
}
|
||||
Debug::text( 'aS: ' . $S, __FILE__, __LINE__, __METHOD__, 10 );
|
||||
|
||||
if ( $S < 0 ) {
|
||||
$S = 0;
|
||||
}
|
||||
|
||||
Debug::text( 'bS: ' . $S, __FILE__, __LINE__, __METHOD__, 10 );
|
||||
|
||||
return $S;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
1210
classes/payroll_deduction/CA/Data.class.php
Normal file
1210
classes/payroll_deduction/CA/Data.class.php
Normal file
File diff suppressed because it is too large
Load Diff
102
classes/payroll_deduction/CA/MB.class.php
Normal file
102
classes/payroll_deduction/CA/MB.class.php
Normal file
@@ -0,0 +1,102 @@
|
||||
<?php
|
||||
/*********************************************************************************
|
||||
*
|
||||
* TimeTrex is a Workforce Management program developed by
|
||||
* TimeTrex Software Inc. Copyright (C) 2003 - 2021 TimeTrex Software Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Affero General Public License version 3 as published by
|
||||
* the Free Software Foundation with the addition of the following permission
|
||||
* added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
|
||||
* WORK IN WHICH THE COPYRIGHT IS OWNED BY TIMETREX, TIMETREX DISCLAIMS THE
|
||||
* WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||
* details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License along
|
||||
* with this program; if not, see http://www.gnu.org/licenses or write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA.
|
||||
*
|
||||
*
|
||||
* You can contact TimeTrex headquarters at Unit 22 - 2475 Dobbin Rd. Suite
|
||||
* #292 West Kelowna, BC V4T 2E9, Canada or at email address info@timetrex.com.
|
||||
*
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License
|
||||
* version 3, these Appropriate Legal Notices must retain the display of the
|
||||
* "Powered by TimeTrex" logo. If the display of the logo is not reasonably
|
||||
* feasible for technical reasons, the Appropriate Legal Notices must display
|
||||
* the words "Powered by TimeTrex".
|
||||
*
|
||||
********************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* @package PayrollDeduction\CA
|
||||
*/
|
||||
class PayrollDeduction_CA_MB extends PayrollDeduction_CA {
|
||||
var $provincial_income_tax_rate_options = [
|
||||
20220101 => [
|
||||
[ 'income' => 34431, 'rate' => 10.8, 'constant' => 0 ],
|
||||
[ 'income' => 74416, 'rate' => 12.75, 'constant' => 671 ],
|
||||
[ 'income' => 74416, 'rate' => 17.4, 'constant' => 4132 ],
|
||||
],
|
||||
20210101 => [
|
||||
[ 'income' => 33723, 'rate' => 10.8, 'constant' => 0 ],
|
||||
[ 'income' => 72885, 'rate' => 12.75, 'constant' => 658 ],
|
||||
[ 'income' => 72885, 'rate' => 17.4, 'constant' => 4047 ],
|
||||
],
|
||||
20200101 => [
|
||||
[ 'income' => 33389, 'rate' => 10.8, 'constant' => 0 ],
|
||||
[ 'income' => 72164, 'rate' => 12.75, 'constant' => 651 ],
|
||||
[ 'income' => 72164, 'rate' => 17.4, 'constant' => 4007 ],
|
||||
],
|
||||
20190101 => [
|
||||
[ 'income' => 32670, 'rate' => 10.8, 'constant' => 0 ],
|
||||
[ 'income' => 70610, 'rate' => 12.75, 'constant' => 637 ],
|
||||
[ 'income' => 70610, 'rate' => 17.4, 'constant' => 3920 ],
|
||||
],
|
||||
20180101 => [
|
||||
[ 'income' => 31843, 'rate' => 10.8, 'constant' => 0 ],
|
||||
[ 'income' => 68821, 'rate' => 12.75, 'constant' => 621 ],
|
||||
[ 'income' => 68821, 'rate' => 17.4, 'constant' => 3821 ],
|
||||
],
|
||||
20170101 => [
|
||||
[ 'income' => 31465, 'rate' => 10.8, 'constant' => 0 ],
|
||||
[ 'income' => 68005, 'rate' => 12.75, 'constant' => 614 ],
|
||||
[ 'income' => 68005, 'rate' => 17.4, 'constant' => 3776 ],
|
||||
],
|
||||
20090101 => [
|
||||
[ 'income' => 31000, 'rate' => 10.8, 'constant' => 0 ],
|
||||
[ 'income' => 67000, 'rate' => 12.75, 'constant' => 605 ],
|
||||
[ 'income' => 67000, 'rate' => 17.4, 'constant' => 3720 ],
|
||||
],
|
||||
20080101 => [
|
||||
[ 'income' => 30544, 'rate' => 10.90, 'constant' => 0 ],
|
||||
[ 'income' => 66000, 'rate' => 12.75, 'constant' => 565 ],
|
||||
[ 'income' => 66000, 'rate' => 17.40, 'constant' => 3634 ],
|
||||
],
|
||||
20070101 => [
|
||||
[ 'income' => 30544, 'rate' => 10.9, 'constant' => 0 ],
|
||||
[ 'income' => 65000, 'rate' => 13.0, 'constant' => 641 ],
|
||||
[ 'income' => 65000, 'rate' => 17.4, 'constant' => 3501 ],
|
||||
],
|
||||
20060101 => [
|
||||
[ 'income' => 30544, 'rate' => 10.9, 'constant' => 0 ],
|
||||
[ 'income' => 65000, 'rate' => 13.5, 'constant' => 794 ],
|
||||
[ 'income' => 65000, 'rate' => 17.4, 'constant' => 3329 ],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
?>
|
203
classes/payroll_deduction/CA/NB.class.php
Normal file
203
classes/payroll_deduction/CA/NB.class.php
Normal file
@@ -0,0 +1,203 @@
|
||||
<?php
|
||||
/*********************************************************************************
|
||||
*
|
||||
* TimeTrex is a Workforce Management program developed by
|
||||
* TimeTrex Software Inc. Copyright (C) 2003 - 2021 TimeTrex Software Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Affero General Public License version 3 as published by
|
||||
* the Free Software Foundation with the addition of the following permission
|
||||
* added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
|
||||
* WORK IN WHICH THE COPYRIGHT IS OWNED BY TIMETREX, TIMETREX DISCLAIMS THE
|
||||
* WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||
* details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License along
|
||||
* with this program; if not, see http://www.gnu.org/licenses or write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA.
|
||||
*
|
||||
*
|
||||
* You can contact TimeTrex headquarters at Unit 22 - 2475 Dobbin Rd. Suite
|
||||
* #292 West Kelowna, BC V4T 2E9, Canada or at email address info@timetrex.com.
|
||||
*
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License
|
||||
* version 3, these Appropriate Legal Notices must retain the display of the
|
||||
* "Powered by TimeTrex" logo. If the display of the logo is not reasonably
|
||||
* feasible for technical reasons, the Appropriate Legal Notices must display
|
||||
* the words "Powered by TimeTrex".
|
||||
*
|
||||
********************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* @package PayrollDeduction\CA
|
||||
*/
|
||||
class PayrollDeduction_CA_NB extends PayrollDeduction_CA {
|
||||
var $provincial_income_tax_rate_options = [
|
||||
20220101 => [
|
||||
[ 'income' => 44887, 'rate' => 9.40, 'constant' => 0 ],
|
||||
[ 'income' => 89775, 'rate' => 14.82, 'constant' => 2433 ],
|
||||
[ 'income' => 145955, 'rate' => 16.52, 'constant' => 3959 ],
|
||||
[ 'income' => 166280, 'rate' => 17.84, 'constant' => 5886 ],
|
||||
[ 'income' => 166280, 'rate' => 20.30, 'constant' => 9976 ],
|
||||
],
|
||||
20210701 => [
|
||||
[ 'income' => 43835, 'rate' => 9.12, 'constant' => 0 ], //9.4% is the new rate, but 9.12 is the pro-rated rate. Cummulative Avg formula may be incorrect due to this.
|
||||
[ 'income' => 87671, 'rate' => 14.82, 'constant' => 2499 ],
|
||||
[ 'income' => 142534, 'rate' => 16.52, 'constant' => 3989 ],
|
||||
[ 'income' => 162383, 'rate' => 17.84, 'constant' => 5870 ],
|
||||
[ 'income' => 162383, 'rate' => 20.30, 'constant' => 9865 ],
|
||||
],
|
||||
20210101 => [
|
||||
[ 'income' => 43835, 'rate' => 9.68, 'constant' => 0 ],
|
||||
[ 'income' => 87671, 'rate' => 14.82, 'constant' => 2253 ],
|
||||
[ 'income' => 142534, 'rate' => 16.52, 'constant' => 3744 ],
|
||||
[ 'income' => 162383, 'rate' => 17.84, 'constant' => 5625 ],
|
||||
[ 'income' => 162383, 'rate' => 20.30, 'constant' => 9620 ],
|
||||
],
|
||||
20200101 => [
|
||||
[ 'income' => 43401, 'rate' => 9.68, 'constant' => 0 ],
|
||||
[ 'income' => 86803, 'rate' => 14.82, 'constant' => 2231 ],
|
||||
[ 'income' => 141122, 'rate' => 16.52, 'constant' => 3706 ],
|
||||
[ 'income' => 160776, 'rate' => 17.84, 'constant' => 5569 ],
|
||||
[ 'income' => 160776, 'rate' => 20.30, 'constant' => 9524 ],
|
||||
],
|
||||
20190101 => [
|
||||
[ 'income' => 42592, 'rate' => 9.68, 'constant' => 0 ],
|
||||
[ 'income' => 85184, 'rate' => 14.82, 'constant' => 2189 ],
|
||||
[ 'income' => 138491, 'rate' => 16.52, 'constant' => 3637 ],
|
||||
[ 'income' => 157778, 'rate' => 17.84, 'constant' => 5465 ],
|
||||
[ 'income' => 157778, 'rate' => 20.30, 'constant' => 9347 ],
|
||||
],
|
||||
20180101 => [
|
||||
[ 'income' => 41675, 'rate' => 9.68, 'constant' => 0 ],
|
||||
[ 'income' => 83351, 'rate' => 14.82, 'constant' => 2142 ],
|
||||
[ 'income' => 135510, 'rate' => 16.52, 'constant' => 3559 ],
|
||||
[ 'income' => 154382, 'rate' => 17.84, 'constant' => 5348 ],
|
||||
[ 'income' => 154382, 'rate' => 20.30, 'constant' => 9146 ],
|
||||
],
|
||||
20170101 => [
|
||||
[ 'income' => 41059, 'rate' => 9.68, 'constant' => 0 ],
|
||||
[ 'income' => 82119, 'rate' => 14.82, 'constant' => 2110 ],
|
||||
[ 'income' => 133507, 'rate' => 16.52, 'constant' => 3506 ],
|
||||
[ 'income' => 152100, 'rate' => 17.84, 'constant' => 5269 ],
|
||||
[ 'income' => 152100, 'rate' => 20.30, 'constant' => 9010 ],
|
||||
],
|
||||
20160701 => [
|
||||
[ 'income' => 40492, 'rate' => 9.68, 'constant' => 0 ],
|
||||
[ 'income' => 80985, 'rate' => 14.82, 'constant' => 2081 ],
|
||||
[ 'income' => 131664, 'rate' => 16.52, 'constant' => 3458 ],
|
||||
[ 'income' => 150000, 'rate' => 17.84, 'constant' => 5196 ],
|
||||
[ 'income' => 250000, 'rate' => 19.60, 'constant' => 7836 ],
|
||||
[ 'income' => 250000, 'rate' => 14.85, 'constant' => -4039 ], //Rate change was prorated for the year, so this will be changing in 2017.
|
||||
],
|
||||
20160101 => [
|
||||
[ 'income' => 40492, 'rate' => 9.68, 'constant' => 0 ],
|
||||
[ 'income' => 80985, 'rate' => 14.82, 'constant' => 2081 ],
|
||||
[ 'income' => 131664, 'rate' => 16.52, 'constant' => 3458 ],
|
||||
[ 'income' => 150000, 'rate' => 17.84, 'constant' => 5196 ],
|
||||
[ 'income' => 250000, 'rate' => 21.00, 'constant' => 9936 ],
|
||||
[ 'income' => 250000, 'rate' => 25.75, 'constant' => 21811 ],
|
||||
],
|
||||
20150701 => [
|
||||
[ 'income' => 39973, 'rate' => 9.68, 'constant' => 0 ],
|
||||
[ 'income' => 79946, 'rate' => 14.82, 'constant' => 2055 ],
|
||||
[ 'income' => 129975, 'rate' => 16.52, 'constant' => 3414 ],
|
||||
[ 'income' => 150000, 'rate' => 17.84, 'constant' => 5129 ],
|
||||
[ 'income' => 250000, 'rate' => 24.16, 'constant' => 14609 ],
|
||||
[ 'income' => 250000, 'rate' => 33.66, 'constant' => 38359 ],
|
||||
],
|
||||
20150101 => [
|
||||
[ 'income' => 39973, 'rate' => 9.68, 'constant' => 0 ],
|
||||
[ 'income' => 79946, 'rate' => 14.82, 'constant' => 2055 ],
|
||||
[ 'income' => 129975, 'rate' => 16.52, 'constant' => 3414 ],
|
||||
[ 'income' => 129975, 'rate' => 17.84, 'constant' => 5129 ],
|
||||
],
|
||||
20140101 => [
|
||||
[ 'income' => 39305, 'rate' => 9.68, 'constant' => 0 ],
|
||||
[ 'income' => 78609, 'rate' => 14.82, 'constant' => 2020 ],
|
||||
[ 'income' => 127802, 'rate' => 16.52, 'constant' => 3357 ],
|
||||
[ 'income' => 127802, 'rate' => 17.84, 'constant' => 5044 ],
|
||||
],
|
||||
20130701 => [
|
||||
[ 'income' => 38954, 'rate' => 9.68, 'constant' => 0 ],
|
||||
[ 'income' => 77908, 'rate' => 14.82, 'constant' => 2002 ],
|
||||
[ 'income' => 126662, 'rate' => 16.52, 'constant' => 3327 ],
|
||||
[ 'income' => 126662, 'rate' => 17.84, 'constant' => 4999 ],
|
||||
],
|
||||
20130101 => [
|
||||
[ 'income' => 38954, 'rate' => 9.1, 'constant' => 0 ],
|
||||
[ 'income' => 77908, 'rate' => 12.10, 'constant' => 1169 ],
|
||||
[ 'income' => 126662, 'rate' => 12.40, 'constant' => 1402 ],
|
||||
[ 'income' => 126662, 'rate' => 14.30, 'constant' => 3809 ],
|
||||
],
|
||||
20120101 => [
|
||||
[ 'income' => 38190, 'rate' => 9.1, 'constant' => 0 ],
|
||||
[ 'income' => 76380, 'rate' => 12.10, 'constant' => 1146 ],
|
||||
[ 'income' => 124178, 'rate' => 12.40, 'constant' => 1375 ],
|
||||
[ 'income' => 124178, 'rate' => 14.30, 'constant' => 3734 ],
|
||||
],
|
||||
20110701 => [
|
||||
[ 'income' => 37150, 'rate' => 9.1, 'constant' => 0 ],
|
||||
[ 'income' => 74300, 'rate' => 12.10, 'constant' => 1115 ],
|
||||
[ 'income' => 120796, 'rate' => 12.40, 'constant' => 1337 ],
|
||||
[ 'income' => 120796, 'rate' => 15.90, 'constant' => 1700 ],
|
||||
],
|
||||
20110101 => [
|
||||
[ 'income' => 37150, 'rate' => 9.1, 'constant' => 0 ],
|
||||
[ 'income' => 74300, 'rate' => 12.10, 'constant' => 1115 ],
|
||||
[ 'income' => 120796, 'rate' => 12.40, 'constant' => 1337 ],
|
||||
[ 'income' => 120796, 'rate' => 12.70, 'constant' => 1700 ],
|
||||
],
|
||||
20100101 => [
|
||||
[ 'income' => 36421, 'rate' => 9.3, 'constant' => 0 ],
|
||||
[ 'income' => 72843, 'rate' => 12.50, 'constant' => 1165 ],
|
||||
[ 'income' => 118427, 'rate' => 13.30, 'constant' => 1748 ],
|
||||
[ 'income' => 118427, 'rate' => 14.30, 'constant' => 2932 ],
|
||||
],
|
||||
20090701 => [
|
||||
[ 'income' => 35707, 'rate' => 9.18, 'constant' => 0 ],
|
||||
[ 'income' => 71415, 'rate' => 13.53, 'constant' => 1550 ],
|
||||
[ 'income' => 116105, 'rate' => 15.20, 'constant' => 2749 ],
|
||||
[ 'income' => 116105, 'rate' => 16.05, 'constant' => 3736 ],
|
||||
],
|
||||
20090101 => [
|
||||
[ 'income' => 35707, 'rate' => 10.12, 'constant' => 0 ],
|
||||
[ 'income' => 71415, 'rate' => 15.48, 'constant' => 1914 ],
|
||||
[ 'income' => 116105, 'rate' => 16.8, 'constant' => 2857 ],
|
||||
[ 'income' => 116105, 'rate' => 17.95, 'constant' => 4192 ],
|
||||
],
|
||||
20080101 => [
|
||||
[ 'income' => 34836, 'rate' => 10.12, 'constant' => 0 ],
|
||||
[ 'income' => 69673, 'rate' => 15.48, 'constant' => 1867 ],
|
||||
[ 'income' => 113273, 'rate' => 16.80, 'constant' => 2787 ],
|
||||
[ 'income' => 113273, 'rate' => 17.95, 'constant' => 4090 ],
|
||||
],
|
||||
20070701 => [
|
||||
[ 'income' => 34186, 'rate' => 10.56, 'constant' => 0 ],
|
||||
[ 'income' => 68374, 'rate' => 16.14, 'constant' => 1908 ],
|
||||
[ 'income' => 111161, 'rate' => 17.08, 'constant' => 2550 ],
|
||||
[ 'income' => 111161, 'rate' => 18.06, 'constant' => 3640 ],
|
||||
],
|
||||
20070101 => [
|
||||
[ 'income' => 34186, 'rate' => 9.68, 'constant' => 0 ],
|
||||
[ 'income' => 68374, 'rate' => 14.82, 'constant' => 1757 ],
|
||||
[ 'income' => 111161, 'rate' => 16.52, 'constant' => 2920 ],
|
||||
[ 'income' => 111161, 'rate' => 17.84, 'constant' => 4387 ],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
?>
|
270
classes/payroll_deduction/CA/NL.class.php
Normal file
270
classes/payroll_deduction/CA/NL.class.php
Normal file
@@ -0,0 +1,270 @@
|
||||
<?php
|
||||
/*********************************************************************************
|
||||
*
|
||||
* TimeTrex is a Workforce Management program developed by
|
||||
* TimeTrex Software Inc. Copyright (C) 2003 - 2021 TimeTrex Software Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Affero General Public License version 3 as published by
|
||||
* the Free Software Foundation with the addition of the following permission
|
||||
* added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
|
||||
* WORK IN WHICH THE COPYRIGHT IS OWNED BY TIMETREX, TIMETREX DISCLAIMS THE
|
||||
* WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||
* details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License along
|
||||
* with this program; if not, see http://www.gnu.org/licenses or write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA.
|
||||
*
|
||||
*
|
||||
* You can contact TimeTrex headquarters at Unit 22 - 2475 Dobbin Rd. Suite
|
||||
* #292 West Kelowna, BC V4T 2E9, Canada or at email address info@timetrex.com.
|
||||
*
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License
|
||||
* version 3, these Appropriate Legal Notices must retain the display of the
|
||||
* "Powered by TimeTrex" logo. If the display of the logo is not reasonably
|
||||
* feasible for technical reasons, the Appropriate Legal Notices must display
|
||||
* the words "Powered by TimeTrex".
|
||||
*
|
||||
********************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* @package PayrollDeduction\CA
|
||||
*/
|
||||
class PayrollDeduction_CA_NL extends PayrollDeduction_CA {
|
||||
var $provincial_income_tax_rate_options = [
|
||||
20220101 => [
|
||||
[ 'income' => 39147, 'rate' => 8.7, 'constant' => 0 ],
|
||||
[ 'income' => 78294, 'rate' => 14.50, 'constant' => 2271 ],
|
||||
[ 'income' => 139780, 'rate' => 15.80, 'constant' => 3288 ],
|
||||
[ 'income' => 195693, 'rate' => 17.80, 'constant' => 6084 ],
|
||||
[ 'income' => 250000, 'rate' => 19.80, 'constant' => 9998 ],
|
||||
[ 'income' => 500000, 'rate' => 20.80, 'constant' => 12498 ],
|
||||
[ 'income' => 1000000, 'rate' => 21.30, 'constant' => 14998 ],
|
||||
[ 'income' => 1000000, 'rate' => 21.80, 'constant' => 19998 ],
|
||||
],
|
||||
20210101 => [
|
||||
[ 'income' => 38081, 'rate' => 8.7, 'constant' => 0 ],
|
||||
[ 'income' => 76161, 'rate' => 14.5, 'constant' => 2209 ],
|
||||
[ 'income' => 135973, 'rate' => 15.8, 'constant' => 3199 ],
|
||||
[ 'income' => 190363, 'rate' => 17.3, 'constant' => 5238 ],
|
||||
[ 'income' => 190363, 'rate' => 18.3, 'constant' => 7142 ],
|
||||
],
|
||||
20200101 => [
|
||||
[ 'income' => 37929, 'rate' => 8.7, 'constant' => 0 ],
|
||||
[ 'income' => 75858, 'rate' => 14.5, 'constant' => 2200 ],
|
||||
[ 'income' => 135432, 'rate' => 15.8, 'constant' => 3186 ],
|
||||
[ 'income' => 189604, 'rate' => 17.3, 'constant' => 5218 ],
|
||||
[ 'income' => 189604, 'rate' => 18.3, 'constant' => 7114 ],
|
||||
],
|
||||
20190101 => [
|
||||
[ 'income' => 37591, 'rate' => 8.7, 'constant' => 0 ],
|
||||
[ 'income' => 75181, 'rate' => 14.5, 'constant' => 2180 ],
|
||||
[ 'income' => 134224, 'rate' => 15.8, 'constant' => 3158 ],
|
||||
[ 'income' => 187913, 'rate' => 17.3, 'constant' => 5171 ],
|
||||
[ 'income' => 187913, 'rate' => 18.3, 'constant' => 7050 ],
|
||||
],
|
||||
20180101 => [
|
||||
[ 'income' => 36923, 'rate' => 8.7, 'constant' => 0 ],
|
||||
[ 'income' => 73852, 'rate' => 14.5, 'constant' => 2142 ],
|
||||
[ 'income' => 131850, 'rate' => 15.8, 'constant' => 3102 ],
|
||||
[ 'income' => 184590, 'rate' => 17.3, 'constant' => 5080 ],
|
||||
[ 'income' => 184590, 'rate' => 18.3, 'constant' => 6925 ],
|
||||
],
|
||||
20170101 => [
|
||||
[ 'income' => 35851, 'rate' => 8.7, 'constant' => 0 ],
|
||||
[ 'income' => 71701, 'rate' => 14.5, 'constant' => 2079 ],
|
||||
[ 'income' => 128010, 'rate' => 15.8, 'constant' => 3011 ],
|
||||
[ 'income' => 179214, 'rate' => 17.3, 'constant' => 4932 ],
|
||||
[ 'income' => 179214, 'rate' => 18.3, 'constant' => 6724 ],
|
||||
],
|
||||
20160701 => [
|
||||
[ 'income' => 35148, 'rate' => 8.7, 'constant' => 0 ],
|
||||
[ 'income' => 70295, 'rate' => 14.5, 'constant' => 2039 ],
|
||||
[ 'income' => 125500, 'rate' => 15.8, 'constant' => 2952 ],
|
||||
[ 'income' => 175700, 'rate' => 17.3, 'constant' => 4835 ],
|
||||
[ 'income' => 175700, 'rate' => 18.3, 'constant' => 6592 ],
|
||||
],
|
||||
20160101 => [
|
||||
[ 'income' => 35148, 'rate' => 7.7, 'constant' => 0 ],
|
||||
[ 'income' => 70295, 'rate' => 12.5, 'constant' => 1687 ],
|
||||
[ 'income' => 125500, 'rate' => 13.3, 'constant' => 2249 ],
|
||||
[ 'income' => 175700, 'rate' => 14.3, 'constant' => 3504 ],
|
||||
[ 'income' => 175700, 'rate' => 15.3, 'constant' => 5261 ],
|
||||
],
|
||||
20150701 => [
|
||||
[ 'income' => 35008, 'rate' => 7.7, 'constant' => 0 ],
|
||||
[ 'income' => 70015, 'rate' => 12.5, 'constant' => 1680 ],
|
||||
[ 'income' => 125000, 'rate' => 13.3, 'constant' => 2241 ],
|
||||
[ 'income' => 175000, 'rate' => 14.3, 'constant' => 3491 ],
|
||||
[ 'income' => 175000, 'rate' => 15.3, 'constant' => 5241 ],
|
||||
],
|
||||
20150101 => [
|
||||
[ 'income' => 35008, 'rate' => 7.7, 'constant' => 0 ],
|
||||
[ 'income' => 70015, 'rate' => 12.5, 'constant' => 1680 ],
|
||||
[ 'income' => 70015, 'rate' => 13.3, 'constant' => 2241 ],
|
||||
],
|
||||
20140101 => [
|
||||
[ 'income' => 34254, 'rate' => 7.7, 'constant' => 0 ],
|
||||
[ 'income' => 68508, 'rate' => 12.5, 'constant' => 1644 ],
|
||||
[ 'income' => 68508, 'rate' => 13.3, 'constant' => 2192 ],
|
||||
],
|
||||
20130101 => [
|
||||
[ 'income' => 33748, 'rate' => 7.7, 'constant' => 0 ],
|
||||
[ 'income' => 67496, 'rate' => 12.5, 'constant' => 1620 ],
|
||||
[ 'income' => 67496, 'rate' => 13.3, 'constant' => 2160 ],
|
||||
],
|
||||
20120101 => [
|
||||
[ 'income' => 32893, 'rate' => 7.7, 'constant' => 0 ],
|
||||
[ 'income' => 65785, 'rate' => 12.5, 'constant' => 1579 ],
|
||||
[ 'income' => 65785, 'rate' => 13.3, 'constant' => 2105 ],
|
||||
],
|
||||
20110101 => [
|
||||
[ 'income' => 31904, 'rate' => 7.7, 'constant' => 0 ],
|
||||
[ 'income' => 63807, 'rate' => 12.5, 'constant' => 1531 ],
|
||||
[ 'income' => 63807, 'rate' => 13.3, 'constant' => 2042 ],
|
||||
],
|
||||
20100701 => [
|
||||
[ 'income' => 31278, 'rate' => 7.7, 'constant' => 0 ],
|
||||
[ 'income' => 62556, 'rate' => 12.5, 'constant' => 1501 ],
|
||||
[ 'income' => 62556, 'rate' => 13.3, 'constant' => 2002 ],
|
||||
],
|
||||
20100101 => [
|
||||
[ 'income' => 31278, 'rate' => 7.7, 'constant' => 0 ],
|
||||
[ 'income' => 62556, 'rate' => 12.8, 'constant' => 1595 ],
|
||||
[ 'income' => 62556, 'rate' => 15.5, 'constant' => 3284 ],
|
||||
],
|
||||
20090101 => [
|
||||
[ 'income' => 31061, 'rate' => 7.7, 'constant' => 0 ],
|
||||
[ 'income' => 62121, 'rate' => 12.8, 'constant' => 1584 ],
|
||||
[ 'income' => 62121, 'rate' => 15.5, 'constant' => 3261 ],
|
||||
],
|
||||
20080701 => [
|
||||
[ 'income' => 30215, 'rate' => 7.7, 'constant' => 0 ],
|
||||
[ 'income' => 60429, 'rate' => 12.8, 'constant' => 1541 ],
|
||||
[ 'income' => 60429, 'rate' => 15.5, 'constant' => 3173 ],
|
||||
],
|
||||
20080101 => [
|
||||
[ 'income' => 30215, 'rate' => 8.7, 'constant' => 0 ],
|
||||
[ 'income' => 60429, 'rate' => 13.8, 'constant' => 1541 ],
|
||||
[ 'income' => 60429, 'rate' => 16.5, 'constant' => 3173 ],
|
||||
],
|
||||
20070701 => [
|
||||
[ 'income' => 30182, 'rate' => 8.7, 'constant' => 0 ],
|
||||
[ 'income' => 60364, 'rate' => 13.8, 'constant' => 1539 ],
|
||||
[ 'income' => 60364, 'rate' => 16.5, 'constant' => 3169 ],
|
||||
],
|
||||
20070101 => [
|
||||
[ 'income' => 29590, 'rate' => 10.57, 'constant' => 0 ],
|
||||
[ 'income' => 59180, 'rate' => 16.16, 'constant' => 1654 ],
|
||||
[ 'income' => 59180, 'rate' => 18.02, 'constant' => 2755 ],
|
||||
],
|
||||
];
|
||||
|
||||
function getAdditionalProvincialSurtax() {
|
||||
/*
|
||||
V2 =
|
||||
|
||||
Where A < 20,000
|
||||
V2 = 0
|
||||
|
||||
Where A >
|
||||
*/
|
||||
|
||||
$V2 = 0;
|
||||
|
||||
if ( $this->getDate() >= 20160701 && $this->getDate() < 20200101 ) { //V2 was removed for NL as of 2020.
|
||||
$A = $this->getAnnualTaxableIncome();
|
||||
|
||||
$tmp_V2_threshold = 1000;
|
||||
|
||||
if ( $A < 50000 ) {
|
||||
//This should result in V2 = 0
|
||||
$tmp_A_threshold = 0;
|
||||
$tmp_V2_constant = 0;
|
||||
} else if ( $A > 50000 && $A <= 55000 ) {
|
||||
$tmp_A_threshold = bcsub( $A, 50000 );
|
||||
$tmp_V2_constant = 0;
|
||||
} else if ( $A > 55000 && $A <= 60000 ) {
|
||||
$tmp_A_threshold = bcsub( $A, 55000 );
|
||||
$tmp_V2_constant = 100;
|
||||
} else if ( $A > 60000 && $A <= 65000 ) {
|
||||
$tmp_A_threshold = bcsub( $A, 60000 );
|
||||
$tmp_V2_constant = 200;
|
||||
} else if ( $A > 65000 && $A <= 70000 ) {
|
||||
$tmp_A_threshold = bcsub( $A, 65000 );
|
||||
$tmp_V2_constant = 300;
|
||||
} else if ( $A > 70000 && $A <= 75000 ) {
|
||||
$tmp_A_threshold = bcsub( $A, 70000 );
|
||||
$tmp_V2_constant = 400;
|
||||
} else if ( $A > 75000 && $A <= 80000 ) {
|
||||
$tmp_A_threshold = bcsub( $A, 75000 );
|
||||
$tmp_V2_constant = 500;
|
||||
} else if ( $A > 80000 && $A <= 100000 ) {
|
||||
$tmp_A_threshold = bcsub( $A, 80000 );
|
||||
$tmp_V2_constant = 600;
|
||||
} else if ( $A > 100000 && $A <= 125000 ) {
|
||||
$tmp_A_threshold = bcsub( $A, 100000 );
|
||||
$tmp_V2_constant = 700;
|
||||
} else if ( $A > 125000 && $A <= 175000 ) {
|
||||
$tmp_A_threshold = bcsub( $A, 125000 );
|
||||
$tmp_V2_constant = 800;
|
||||
} else if ( $A > 175000 && $A <= 250000 ) {
|
||||
$tmp_A_threshold = bcsub( $A, 175000 );
|
||||
$tmp_V2_constant = 900;
|
||||
} else if ( $A > 250000 && $A <= 300000 ) {
|
||||
$tmp_A_threshold = bcsub( $A, 250000 );
|
||||
$tmp_V2_constant = 1000;
|
||||
} else if ( $A > 300000 && $A <= 350000 ) {
|
||||
$tmp_A_threshold = bcsub( $A, 300000 );
|
||||
$tmp_V2_constant = 1100;
|
||||
} else if ( $A > 350000 && $A <= 400000 ) {
|
||||
$tmp_A_threshold = bcsub( $A, 350000 );
|
||||
$tmp_V2_constant = 1200;
|
||||
} else if ( $A > 400000 && $A <= 450000 ) {
|
||||
$tmp_A_threshold = bcsub( $A, 400000 );
|
||||
$tmp_V2_constant = 1300;
|
||||
} else if ( $A > 450000 && $A <= 500000 ) {
|
||||
$tmp_A_threshold = bcsub( $A, 450000 );
|
||||
$tmp_V2_constant = 1400;
|
||||
} else if ( $A > 500000 && $A <= 550000 ) {
|
||||
$tmp_A_threshold = bcsub( $A, 500000 );
|
||||
$tmp_V2_constant = 1500;
|
||||
} else if ( $A > 550000 && $A <= 600000 ) {
|
||||
$tmp_A_threshold = bcsub( $A, 550000 );
|
||||
$tmp_V2_constant = 1600;
|
||||
} else if ( $A > 600000 ) {
|
||||
$tmp_A_threshold = bcsub( $A, 600000 );
|
||||
$tmp_V2_constant = 1700;
|
||||
}
|
||||
|
||||
if ( $tmp_A_threshold < $tmp_V2_threshold ) {
|
||||
$V2 = bcmul( 0.10, $tmp_A_threshold );
|
||||
} else {
|
||||
$V2 = bcmul( 0.10, $tmp_V2_threshold );
|
||||
}
|
||||
|
||||
if ( $tmp_V2_constant > 0 ) {
|
||||
$V2 += $tmp_V2_constant;
|
||||
}
|
||||
}
|
||||
Debug::text( 'V2: ' . $V2, __FILE__, __LINE__, __METHOD__, 10 );
|
||||
|
||||
return $V2;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
105
classes/payroll_deduction/CA/NS.class.php
Normal file
105
classes/payroll_deduction/CA/NS.class.php
Normal file
@@ -0,0 +1,105 @@
|
||||
<?php
|
||||
/*********************************************************************************
|
||||
*
|
||||
* TimeTrex is a Workforce Management program developed by
|
||||
* TimeTrex Software Inc. Copyright (C) 2003 - 2021 TimeTrex Software Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Affero General Public License version 3 as published by
|
||||
* the Free Software Foundation with the addition of the following permission
|
||||
* added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
|
||||
* WORK IN WHICH THE COPYRIGHT IS OWNED BY TIMETREX, TIMETREX DISCLAIMS THE
|
||||
* WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||
* details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License along
|
||||
* with this program; if not, see http://www.gnu.org/licenses or write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA.
|
||||
*
|
||||
*
|
||||
* You can contact TimeTrex headquarters at Unit 22 - 2475 Dobbin Rd. Suite
|
||||
* #292 West Kelowna, BC V4T 2E9, Canada or at email address info@timetrex.com.
|
||||
*
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License
|
||||
* version 3, these Appropriate Legal Notices must retain the display of the
|
||||
* "Powered by TimeTrex" logo. If the display of the logo is not reasonably
|
||||
* feasible for technical reasons, the Appropriate Legal Notices must display
|
||||
* the words "Powered by TimeTrex".
|
||||
*
|
||||
********************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* @package PayrollDeduction\CA
|
||||
*/
|
||||
class PayrollDeduction_CA_NS extends PayrollDeduction_CA {
|
||||
var $provincial_income_tax_rate_options = [
|
||||
//No Changes 2012 thru 2022.
|
||||
20110101 => [
|
||||
[ '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;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
148
classes/payroll_deduction/CA/NT.class.php
Normal file
148
classes/payroll_deduction/CA/NT.class.php
Normal file
@@ -0,0 +1,148 @@
|
||||
<?php
|
||||
/*********************************************************************************
|
||||
*
|
||||
* TimeTrex is a Workforce Management program developed by
|
||||
* TimeTrex Software Inc. Copyright (C) 2003 - 2021 TimeTrex Software Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Affero General Public License version 3 as published by
|
||||
* the Free Software Foundation with the addition of the following permission
|
||||
* added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
|
||||
* WORK IN WHICH THE COPYRIGHT IS OWNED BY TIMETREX, TIMETREX DISCLAIMS THE
|
||||
* WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||
* details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License along
|
||||
* with this program; if not, see http://www.gnu.org/licenses or write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA.
|
||||
*
|
||||
*
|
||||
* You can contact TimeTrex headquarters at Unit 22 - 2475 Dobbin Rd. Suite
|
||||
* #292 West Kelowna, BC V4T 2E9, Canada or at email address info@timetrex.com.
|
||||
*
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License
|
||||
* version 3, these Appropriate Legal Notices must retain the display of the
|
||||
* "Powered by TimeTrex" logo. If the display of the logo is not reasonably
|
||||
* feasible for technical reasons, the Appropriate Legal Notices must display
|
||||
* the words "Powered by TimeTrex".
|
||||
*
|
||||
********************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* @package PayrollDeduction\CA
|
||||
*/
|
||||
class PayrollDeduction_CA_NT extends PayrollDeduction_CA {
|
||||
var $provincial_income_tax_rate_options = [
|
||||
20220101 => [
|
||||
[ 'income' => 45462, 'rate' => 5.9, 'constant' => 0 ],
|
||||
[ 'income' => 90927, 'rate' => 8.6, 'constant' => 1227 ],
|
||||
[ 'income' => 147826, 'rate' => 12.2, 'constant' => 4501 ],
|
||||
[ 'income' => 147826, 'rate' => 14.05, 'constant' => 7236 ],
|
||||
],
|
||||
20210101 => [
|
||||
[ 'income' => 44396, 'rate' => 5.9, 'constant' => 0 ],
|
||||
[ 'income' => 88796, 'rate' => 8.6, 'constant' => 1199 ],
|
||||
[ 'income' => 144362, 'rate' => 12.2, 'constant' => 4395 ],
|
||||
[ 'income' => 144362, 'rate' => 14.05, 'constant' => 7066 ],
|
||||
],
|
||||
20200101 => [
|
||||
[ 'income' => 43957, 'rate' => 5.9, 'constant' => 0 ],
|
||||
[ 'income' => 87916, 'rate' => 8.6, 'constant' => 1187 ],
|
||||
[ 'income' => 142932, 'rate' => 12.2, 'constant' => 4352 ],
|
||||
[ 'income' => 142932, 'rate' => 14.05, 'constant' => 6996 ],
|
||||
],
|
||||
20190101 => [
|
||||
[ 'income' => 43137, 'rate' => 5.9, 'constant' => 0 ],
|
||||
[ 'income' => 86277, 'rate' => 8.6, 'constant' => 1165 ],
|
||||
[ 'income' => 140267, 'rate' => 12.2, 'constant' => 4271 ],
|
||||
[ 'income' => 140267, 'rate' => 14.05, 'constant' => 6866 ],
|
||||
],
|
||||
20180101 => [
|
||||
[ 'income' => 42209, 'rate' => 5.9, 'constant' => 0 ],
|
||||
[ 'income' => 84420, 'rate' => 8.6, 'constant' => 1140 ],
|
||||
[ 'income' => 137248, 'rate' => 12.2, 'constant' => 4179 ],
|
||||
[ 'income' => 137248, 'rate' => 14.05, 'constant' => 6718 ],
|
||||
],
|
||||
20170101 => [
|
||||
[ 'income' => 41585, 'rate' => 5.9, 'constant' => 0 ],
|
||||
[ 'income' => 83172, 'rate' => 8.6, 'constant' => 1123 ],
|
||||
[ 'income' => 135219, 'rate' => 12.2, 'constant' => 4117 ],
|
||||
[ 'income' => 135219, 'rate' => 14.05, 'constant' => 6619 ],
|
||||
],
|
||||
20160101 => [
|
||||
[ 'income' => 41011, 'rate' => 5.9, 'constant' => 0 ],
|
||||
[ 'income' => 82024, 'rate' => 8.6, 'constant' => 1107 ],
|
||||
[ 'income' => 133353, 'rate' => 12.2, 'constant' => 4060 ],
|
||||
[ 'income' => 133353, 'rate' => 14.05, 'constant' => 6527 ],
|
||||
],
|
||||
20150101 => [
|
||||
[ 'income' => 40484, 'rate' => 5.9, 'constant' => 0 ],
|
||||
[ 'income' => 80971, 'rate' => 8.6, 'constant' => 1093 ],
|
||||
[ 'income' => 131641, 'rate' => 12.2, 'constant' => 4008 ],
|
||||
[ 'income' => 131641, 'rate' => 14.05, 'constant' => 6443 ],
|
||||
],
|
||||
20140101 => [
|
||||
[ 'income' => 39808, 'rate' => 5.9, 'constant' => 0 ],
|
||||
[ 'income' => 79618, 'rate' => 8.6, 'constant' => 1075 ],
|
||||
[ 'income' => 129441, 'rate' => 12.2, 'constant' => 3941 ],
|
||||
[ 'income' => 129441, 'rate' => 14.05, 'constant' => 6336 ],
|
||||
],
|
||||
20130101 => [
|
||||
[ 'income' => 39453, 'rate' => 5.9, 'constant' => 0 ],
|
||||
[ 'income' => 78908, 'rate' => 8.6, 'constant' => 1065 ],
|
||||
[ 'income' => 128286, 'rate' => 12.2, 'constant' => 3906 ],
|
||||
[ 'income' => 128286, 'rate' => 14.05, 'constant' => 6279 ],
|
||||
],
|
||||
20120101 => [
|
||||
[ 'income' => 38679, 'rate' => 5.9, 'constant' => 0 ],
|
||||
[ 'income' => 77360, 'rate' => 8.6, 'constant' => 1044 ],
|
||||
[ 'income' => 125771, 'rate' => 12.2, 'constant' => 3829 ],
|
||||
[ 'income' => 125771, 'rate' => 14.05, 'constant' => 6156 ],
|
||||
],
|
||||
20110101 => [
|
||||
[ 'income' => 37626, 'rate' => 5.9, 'constant' => 0 ],
|
||||
[ 'income' => 75253, 'rate' => 8.6, 'constant' => 1016 ],
|
||||
[ 'income' => 122345, 'rate' => 12.2, 'constant' => 3725 ],
|
||||
[ 'income' => 122345, 'rate' => 14.05, 'constant' => 5988 ],
|
||||
],
|
||||
20100101 => [
|
||||
[ 'income' => 37106, 'rate' => 5.9, 'constant' => 0 ],
|
||||
[ 'income' => 74214, 'rate' => 8.6, 'constant' => 1002 ],
|
||||
[ 'income' => 120656, 'rate' => 12.2, 'constant' => 3674 ],
|
||||
[ 'income' => 120656, 'rate' => 14.05, 'constant' => 5906 ],
|
||||
],
|
||||
20090101 => [
|
||||
[ 'income' => 36885, 'rate' => 5.9, 'constant' => 0 ],
|
||||
[ 'income' => 73772, 'rate' => 8.6, 'constant' => 996 ],
|
||||
[ 'income' => 119936, 'rate' => 12.2, 'constant' => 3652 ],
|
||||
[ 'income' => 119936, 'rate' => 14.05, 'constant' => 5871 ],
|
||||
],
|
||||
20080101 => [
|
||||
[ 'income' => 35986, 'rate' => 5.90, 'constant' => 0 ],
|
||||
[ 'income' => 71973, 'rate' => 8.60, 'constant' => 972 ],
|
||||
[ 'income' => 117011, 'rate' => 12.20, 'constant' => 3563 ],
|
||||
[ 'income' => 117011, 'rate' => 14.05, 'constant' => 5727 ],
|
||||
],
|
||||
20070101 => [
|
||||
[ 'income' => 35315, 'rate' => 5.90, 'constant' => 0 ],
|
||||
[ 'income' => 70631, 'rate' => 8.60, 'constant' => 954 ],
|
||||
[ 'income' => 114830, 'rate' => 12.20, 'constant' => 3496 ],
|
||||
[ 'income' => 114830, 'rate' => 14.05, 'constant' => 5621 ],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
?>
|
148
classes/payroll_deduction/CA/NU.class.php
Normal file
148
classes/payroll_deduction/CA/NU.class.php
Normal file
@@ -0,0 +1,148 @@
|
||||
<?php
|
||||
/*********************************************************************************
|
||||
*
|
||||
* TimeTrex is a Workforce Management program developed by
|
||||
* TimeTrex Software Inc. Copyright (C) 2003 - 2021 TimeTrex Software Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Affero General Public License version 3 as published by
|
||||
* the Free Software Foundation with the addition of the following permission
|
||||
* added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
|
||||
* WORK IN WHICH THE COPYRIGHT IS OWNED BY TIMETREX, TIMETREX DISCLAIMS THE
|
||||
* WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||
* details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License along
|
||||
* with this program; if not, see http://www.gnu.org/licenses or write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA.
|
||||
*
|
||||
*
|
||||
* You can contact TimeTrex headquarters at Unit 22 - 2475 Dobbin Rd. Suite
|
||||
* #292 West Kelowna, BC V4T 2E9, Canada or at email address info@timetrex.com.
|
||||
*
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License
|
||||
* version 3, these Appropriate Legal Notices must retain the display of the
|
||||
* "Powered by TimeTrex" logo. If the display of the logo is not reasonably
|
||||
* feasible for technical reasons, the Appropriate Legal Notices must display
|
||||
* the words "Powered by TimeTrex".
|
||||
*
|
||||
********************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* @package PayrollDeduction\CA
|
||||
*/
|
||||
class PayrollDeduction_CA_NU extends PayrollDeduction_CA {
|
||||
var $provincial_income_tax_rate_options = [
|
||||
20220101 => [
|
||||
[ 'income' => 47862, 'rate' => 4.0, 'constant' => 0 ],
|
||||
[ 'income' => 95724, 'rate' => 7.0, 'constant' => 1436 ],
|
||||
[ 'income' => 155625, 'rate' => 9.0, 'constant' => 3350 ],
|
||||
[ 'income' => 155625, 'rate' => 11.5, 'constant' => 7241 ],
|
||||
],
|
||||
20210101 => [
|
||||
[ 'income' => 46740, 'rate' => 4.0, 'constant' => 0 ],
|
||||
[ 'income' => 93480, 'rate' => 7.0, 'constant' => 1402 ],
|
||||
[ 'income' => 151978, 'rate' => 9.0, 'constant' => 3272 ],
|
||||
[ 'income' => 151978, 'rate' => 11.5, 'constant' => 7071 ],
|
||||
],
|
||||
20200101 => [
|
||||
[ 'income' => 46277, 'rate' => 4.0, 'constant' => 0 ],
|
||||
[ 'income' => 92555, 'rate' => 7.0, 'constant' => 1388 ],
|
||||
[ 'income' => 150473, 'rate' => 9.0, 'constant' => 3239 ],
|
||||
[ 'income' => 150473, 'rate' => 11.5, 'constant' => 7001 ],
|
||||
],
|
||||
20190101 => [
|
||||
[ 'income' => 45414, 'rate' => 4.0, 'constant' => 0 ],
|
||||
[ 'income' => 90829, 'rate' => 7.0, 'constant' => 1362 ],
|
||||
[ 'income' => 147667, 'rate' => 9.0, 'constant' => 3179 ],
|
||||
[ 'income' => 147667, 'rate' => 11.5, 'constant' => 6871 ],
|
||||
],
|
||||
20180101 => [
|
||||
[ 'income' => 44437, 'rate' => 4.0, 'constant' => 0 ],
|
||||
[ 'income' => 88874, 'rate' => 7.0, 'constant' => 1333 ],
|
||||
[ 'income' => 144488, 'rate' => 9.0, 'constant' => 3111 ],
|
||||
[ 'income' => 144488, 'rate' => 11.5, 'constant' => 6723 ],
|
||||
],
|
||||
20170101 => [
|
||||
[ 'income' => 43780, 'rate' => 4.0, 'constant' => 0 ],
|
||||
[ 'income' => 87560, 'rate' => 7.0, 'constant' => 1313 ],
|
||||
[ 'income' => 142353, 'rate' => 9.0, 'constant' => 3065 ],
|
||||
[ 'income' => 142353, 'rate' => 11.5, 'constant' => 6623 ],
|
||||
],
|
||||
20160101 => [
|
||||
[ 'income' => 43176, 'rate' => 4.0, 'constant' => 0 ],
|
||||
[ 'income' => 86351, 'rate' => 7.0, 'constant' => 1295 ],
|
||||
[ 'income' => 140388, 'rate' => 9.0, 'constant' => 3022 ],
|
||||
[ 'income' => 140388, 'rate' => 11.5, 'constant' => 6532 ],
|
||||
],
|
||||
20150101 => [
|
||||
[ 'income' => 42622, 'rate' => 4.0, 'constant' => 0 ],
|
||||
[ 'income' => 85243, 'rate' => 7.0, 'constant' => 1279 ],
|
||||
[ 'income' => 138586, 'rate' => 9.0, 'constant' => 2984 ],
|
||||
[ 'income' => 138586, 'rate' => 11.5, 'constant' => 6448 ],
|
||||
],
|
||||
20140101 => [
|
||||
[ 'income' => 41909, 'rate' => 4.0, 'constant' => 0 ],
|
||||
[ 'income' => 83818, 'rate' => 7.0, 'constant' => 1257 ],
|
||||
[ 'income' => 136270, 'rate' => 9.0, 'constant' => 2934 ],
|
||||
[ 'income' => 136270, 'rate' => 11.5, 'constant' => 6340 ],
|
||||
],
|
||||
20130101 => [
|
||||
[ 'income' => 41535, 'rate' => 4.0, 'constant' => 0 ],
|
||||
[ 'income' => 83071, 'rate' => 7.0, 'constant' => 1246 ],
|
||||
[ 'income' => 135054, 'rate' => 9.0, 'constant' => 2907 ],
|
||||
[ 'income' => 135054, 'rate' => 11.5, 'constant' => 6284 ],
|
||||
],
|
||||
20120101 => [
|
||||
[ 'income' => 40721, 'rate' => 4.0, 'constant' => 0 ],
|
||||
[ 'income' => 81442, 'rate' => 7.0, 'constant' => 1222 ],
|
||||
[ 'income' => 132406, 'rate' => 9.0, 'constant' => 2850 ],
|
||||
[ 'income' => 132406, 'rate' => 11.5, 'constant' => 6161 ],
|
||||
],
|
||||
20110101 => [
|
||||
[ 'income' => 39612, 'rate' => 4.0, 'constant' => 0 ],
|
||||
[ 'income' => 79224, 'rate' => 7.0, 'constant' => 1188 ],
|
||||
[ 'income' => 128800, 'rate' => 9.0, 'constant' => 2773 ],
|
||||
[ 'income' => 128800, 'rate' => 11.5, 'constant' => 5993 ],
|
||||
],
|
||||
20100101 => [
|
||||
[ 'income' => 39065, 'rate' => 4.0, 'constant' => 0 ],
|
||||
[ 'income' => 78130, 'rate' => 7.0, 'constant' => 1172 ],
|
||||
[ 'income' => 127021, 'rate' => 9.0, 'constant' => 2735 ],
|
||||
[ 'income' => 127021, 'rate' => 11.5, 'constant' => 5910 ],
|
||||
],
|
||||
20090101 => [
|
||||
[ 'income' => 38832, 'rate' => 4.0, 'constant' => 0 ],
|
||||
[ 'income' => 77664, 'rate' => 7.0, 'constant' => 1165 ],
|
||||
[ 'income' => 126264, 'rate' => 9.0, 'constant' => 2718 ],
|
||||
[ 'income' => 126264, 'rate' => 11.5, 'constant' => 5875 ],
|
||||
],
|
||||
20080101 => [
|
||||
[ 'income' => 37885, 'rate' => 4, 'constant' => 0 ],
|
||||
[ 'income' => 75770, 'rate' => 7, 'constant' => 1137 ],
|
||||
[ 'income' => 123184, 'rate' => 9, 'constant' => 2652 ],
|
||||
[ 'income' => 123184, 'rate' => 11.5, 'constant' => 5732 ],
|
||||
],
|
||||
20070101 => [
|
||||
[ 'income' => 37178, 'rate' => 4.0, 'constant' => 0 ],
|
||||
[ 'income' => 74357, 'rate' => 7.0, 'constant' => 1115 ],
|
||||
[ 'income' => 120887, 'rate' => 9.0, 'constant' => 2602 ],
|
||||
[ 'income' => 120887, 'rate' => 11.5, 'constant' => 5625 ],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
?>
|
457
classes/payroll_deduction/CA/ON.class.php
Normal file
457
classes/payroll_deduction/CA/ON.class.php
Normal file
@@ -0,0 +1,457 @@
|
||||
<?php
|
||||
/*********************************************************************************
|
||||
*
|
||||
* TimeTrex is a Workforce Management program developed by
|
||||
* TimeTrex Software Inc. Copyright (C) 2003 - 2021 TimeTrex Software Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Affero General Public License version 3 as published by
|
||||
* the Free Software Foundation with the addition of the following permission
|
||||
* added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
|
||||
* WORK IN WHICH THE COPYRIGHT IS OWNED BY TIMETREX, TIMETREX DISCLAIMS THE
|
||||
* WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||
* details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License along
|
||||
* with this program; if not, see http://www.gnu.org/licenses or write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA.
|
||||
*
|
||||
*
|
||||
* You can contact TimeTrex headquarters at Unit 22 - 2475 Dobbin Rd. Suite
|
||||
* #292 West Kelowna, BC V4T 2E9, Canada or at email address info@timetrex.com.
|
||||
*
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License
|
||||
* version 3, these Appropriate Legal Notices must retain the display of the
|
||||
* "Powered by TimeTrex" logo. If the display of the logo is not reasonably
|
||||
* feasible for technical reasons, the Appropriate Legal Notices must display
|
||||
* the words "Powered by TimeTrex".
|
||||
*
|
||||
********************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* @package PayrollDeduction\CA
|
||||
*/
|
||||
class PayrollDeduction_CA_ON extends PayrollDeduction_CA {
|
||||
var $provincial_income_tax_rate_options = [
|
||||
20220101 => [
|
||||
[ 'income' => 46226, 'rate' => 5.05, 'constant' => 0 ],
|
||||
[ 'income' => 92454, 'rate' => 9.15, 'constant' => 1895 ],
|
||||
[ 'income' => 150000, 'rate' => 11.16, 'constant' => 3754 ],
|
||||
[ 'income' => 220000, 'rate' => 12.16, 'constant' => 5254 ],
|
||||
[ 'income' => 220000, 'rate' => 13.16, 'constant' => 7454 ],
|
||||
],
|
||||
20210101 => [
|
||||
[ 'income' => 45142, 'rate' => 5.05, 'constant' => 0 ],
|
||||
[ 'income' => 90287, 'rate' => 9.15, 'constant' => 1851 ],
|
||||
[ 'income' => 150000, 'rate' => 11.16, 'constant' => 3666 ],
|
||||
[ 'income' => 220000, 'rate' => 12.16, 'constant' => 5166 ],
|
||||
[ 'income' => 220000, 'rate' => 13.16, 'constant' => 7366 ],
|
||||
],
|
||||
20200101 => [
|
||||
[ 'income' => 44740, 'rate' => 5.05, 'constant' => 0 ],
|
||||
[ 'income' => 89482, 'rate' => 9.15, 'constant' => 1834 ],
|
||||
[ 'income' => 150000, 'rate' => 11.16, 'constant' => 3633 ],
|
||||
[ 'income' => 220000, 'rate' => 12.16, 'constant' => 5133 ],
|
||||
[ 'income' => 220000, 'rate' => 13.16, 'constant' => 7333 ],
|
||||
],
|
||||
20190101 => [
|
||||
[ 'income' => 43906, 'rate' => 5.05, 'constant' => 0 ],
|
||||
[ 'income' => 87813, 'rate' => 9.15, 'constant' => 1800 ],
|
||||
[ 'income' => 150000, 'rate' => 11.16, 'constant' => 3565 ],
|
||||
[ 'income' => 220000, 'rate' => 12.16, 'constant' => 5065 ],
|
||||
[ 'income' => 220000, 'rate' => 13.16, 'constant' => 7265 ],
|
||||
],
|
||||
20180101 => [
|
||||
[ 'income' => 42960, 'rate' => 5.05, 'constant' => 0 ],
|
||||
[ 'income' => 85923, 'rate' => 9.15, 'constant' => 1761 ],
|
||||
[ 'income' => 150000, 'rate' => 11.16, 'constant' => 3488 ],
|
||||
[ 'income' => 220000, 'rate' => 12.16, 'constant' => 4988 ],
|
||||
[ 'income' => 220000, 'rate' => 13.16, 'constant' => 7188 ],
|
||||
],
|
||||
20170101 => [
|
||||
[ 'income' => 42201, 'rate' => 5.05, 'constant' => 0 ],
|
||||
[ 'income' => 84404, 'rate' => 9.15, 'constant' => 1730 ],
|
||||
[ 'income' => 150000, 'rate' => 11.16, 'constant' => 3427 ],
|
||||
[ 'income' => 220000, 'rate' => 12.16, 'constant' => 4927 ],
|
||||
[ 'income' => 220000, 'rate' => 13.16, 'constant' => 7127 ],
|
||||
],
|
||||
20160101 => [
|
||||
[ 'income' => 41536, 'rate' => 5.05, 'constant' => 0 ],
|
||||
[ 'income' => 83075, 'rate' => 9.15, 'constant' => 1703 ],
|
||||
[ 'income' => 150000, 'rate' => 11.16, 'constant' => 3373 ],
|
||||
[ 'income' => 220000, 'rate' => 12.16, 'constant' => 4873 ],
|
||||
[ 'income' => 220000, 'rate' => 13.16, 'constant' => 7073 ],
|
||||
],
|
||||
20150101 => [
|
||||
[ 'income' => 40922, 'rate' => 5.05, 'constant' => 0 ],
|
||||
[ 'income' => 81847, 'rate' => 9.15, 'constant' => 1678 ],
|
||||
[ 'income' => 150000, 'rate' => 11.16, 'constant' => 3323 ],
|
||||
[ 'income' => 220000, 'rate' => 12.16, 'constant' => 4823 ],
|
||||
[ 'income' => 220000, 'rate' => 13.16, 'constant' => 7023 ],
|
||||
],
|
||||
20140901 => [
|
||||
[ 'income' => 40120, 'rate' => 5.05, 'constant' => 0 ],
|
||||
[ 'income' => 80242, 'rate' => 9.15, 'constant' => 1645 ],
|
||||
[ 'income' => 150000, 'rate' => 11.16, 'constant' => 3258 ],
|
||||
[ 'income' => 220000, 'rate' => 14.16, 'constant' => 7758 ],
|
||||
[ 'income' => 514090, 'rate' => 13.16, 'constant' => -6206 ],
|
||||
[ 'income' => 514090, 'rate' => 17.16, 'constant' => 14358 ],
|
||||
],
|
||||
20140101 => [
|
||||
[ 'income' => 40120, 'rate' => 5.05, 'constant' => 0 ],
|
||||
[ 'income' => 80242, 'rate' => 9.15, 'constant' => 1645 ],
|
||||
[ 'income' => 514090, 'rate' => 11.16, 'constant' => 3258 ],
|
||||
[ 'income' => 514090, 'rate' => 13.16, 'constant' => 13540 ],
|
||||
],
|
||||
20130101 => [
|
||||
[ 'income' => 39723, 'rate' => 5.05, 'constant' => 0 ],
|
||||
[ 'income' => 79448, 'rate' => 9.15, 'constant' => 1629 ],
|
||||
[ 'income' => 509000, 'rate' => 11.16, 'constant' => 3226 ],
|
||||
[ 'income' => 509000, 'rate' => 13.16, 'constant' => 13406 ],
|
||||
],
|
||||
20120101 => [
|
||||
[ 'income' => 39020, 'rate' => 5.05, 'constant' => 0 ],
|
||||
[ 'income' => 78043, 'rate' => 9.15, 'constant' => 1600 ],
|
||||
[ 'income' => 78043, 'rate' => 11.16, 'constant' => 3168 ],
|
||||
],
|
||||
20110101 => [
|
||||
[ 'income' => 37774, 'rate' => 5.05, 'constant' => 0 ],
|
||||
[ 'income' => 75550, 'rate' => 9.15, 'constant' => 1549 ],
|
||||
[ 'income' => 75550, 'rate' => 11.16, 'constant' => 3067 ],
|
||||
],
|
||||
20100101 => [
|
||||
[ 'income' => 37106, 'rate' => 5.05, 'constant' => 0 ],
|
||||
[ 'income' => 74214, 'rate' => 9.15, 'constant' => 1521 ],
|
||||
[ 'income' => 74214, 'rate' => 11.16, 'constant' => 3013 ],
|
||||
],
|
||||
20090101 => [
|
||||
[ 'income' => 36848, 'rate' => 6.05, 'constant' => 0 ],
|
||||
[ 'income' => 73698, 'rate' => 9.15, 'constant' => 1142 ],
|
||||
[ 'income' => 73698, 'rate' => 11.16, 'constant' => 2624 ],
|
||||
],
|
||||
20080101 => [
|
||||
[ 'income' => 36020, 'rate' => 6.05, 'constant' => 0 ],
|
||||
[ 'income' => 72041, 'rate' => 9.15, 'constant' => 1117 ],
|
||||
[ 'income' => 72041, 'rate' => 11.16, 'constant' => 2565 ],
|
||||
],
|
||||
20070101 => [
|
||||
[ 'income' => 35488, 'rate' => 6.05, 'constant' => 0 ],
|
||||
[ 'income' => 70976, 'rate' => 9.15, 'constant' => 1100 ],
|
||||
[ 'income' => 70976, 'rate' => 11.16, 'constant' => 2527 ],
|
||||
],
|
||||
20060101 => [
|
||||
[ 'income' => 34758, 'rate' => 6.05, 'constant' => 0 ],
|
||||
[ 'income' => 69517, 'rate' => 9.15, 'constant' => 1077 ],
|
||||
[ 'income' => 69517, 'rate' => 11.16, 'constant' => 2475 ],
|
||||
],
|
||||
];
|
||||
|
||||
/*
|
||||
Provincial surtax - V1
|
||||
*/
|
||||
var $provincial_surtax_options = [
|
||||
20220101 => [
|
||||
'income1' => 4991,
|
||||
'income2' => 6387,
|
||||
'rate1' => 0.20,
|
||||
'rate2' => 0.36,
|
||||
],
|
||||
20210101 => [
|
||||
'income1' => 4874,
|
||||
'income2' => 6237,
|
||||
'rate1' => 0.20,
|
||||
'rate2' => 0.36,
|
||||
],
|
||||
20200101 => [
|
||||
'income1' => 4830,
|
||||
'income2' => 6182,
|
||||
'rate1' => 0.20,
|
||||
'rate2' => 0.36,
|
||||
],
|
||||
20190101 => [
|
||||
'income1' => 4740,
|
||||
'income2' => 6067,
|
||||
'rate1' => 0.20,
|
||||
'rate2' => 0.36,
|
||||
],
|
||||
20180101 => [
|
||||
'income1' => 4638,
|
||||
'income2' => 5936,
|
||||
'rate1' => 0.20,
|
||||
'rate2' => 0.36,
|
||||
],
|
||||
20170101 => [
|
||||
'income1' => 4556,
|
||||
'income2' => 5831,
|
||||
'rate1' => 0.20,
|
||||
'rate2' => 0.36,
|
||||
],
|
||||
20160101 => [
|
||||
'income1' => 4484,
|
||||
'income2' => 5739,
|
||||
'rate1' => 0.20,
|
||||
'rate2' => 0.36,
|
||||
],
|
||||
20150101 => [
|
||||
'income1' => 4418,
|
||||
'income2' => 5654,
|
||||
'rate1' => 0.20,
|
||||
'rate2' => 0.36,
|
||||
],
|
||||
20140101 => [
|
||||
'income1' => 4331,
|
||||
'income2' => 5543,
|
||||
'rate1' => 0.20,
|
||||
'rate2' => 0.36,
|
||||
],
|
||||
20130101 => [
|
||||
'income1' => 4289,
|
||||
'income2' => 5489,
|
||||
'rate1' => 0.20,
|
||||
'rate2' => 0.36,
|
||||
],
|
||||
20120101 => [
|
||||
'income1' => 4213,
|
||||
'income2' => 5392,
|
||||
'rate1' => 0.20,
|
||||
'rate2' => 0.36,
|
||||
],
|
||||
20110101 => [
|
||||
'income1' => 4078,
|
||||
'income2' => 5219,
|
||||
'rate1' => 0.20,
|
||||
'rate2' => 0.36,
|
||||
],
|
||||
20100101 => [
|
||||
'income1' => 4006,
|
||||
'income2' => 5127,
|
||||
'rate1' => 0.20,
|
||||
'rate2' => 0.36,
|
||||
],
|
||||
20090101 => [
|
||||
'income1' => 4257,
|
||||
'income2' => 5370,
|
||||
'rate1' => 0.20,
|
||||
'rate2' => 0.36,
|
||||
],
|
||||
20080101 => [
|
||||
'income1' => 4162,
|
||||
'income2' => 5249,
|
||||
'rate1' => 0.20,
|
||||
'rate2' => 0.36,
|
||||
],
|
||||
20070101 => [
|
||||
'income1' => 4100,
|
||||
'income2' => 5172,
|
||||
'rate1' => 0.20,
|
||||
'rate2' => 0.36,
|
||||
],
|
||||
20060101 => [
|
||||
'income1' => 4016,
|
||||
'income2' => 5065,
|
||||
'rate1' => 0.20,
|
||||
'rate2' => 0.36,
|
||||
],
|
||||
];
|
||||
|
||||
/*
|
||||
Provincial tax reduction - S2
|
||||
*/
|
||||
var $provincial_tax_reduction_options = [
|
||||
20220101 => [
|
||||
'amount' => 257,
|
||||
],
|
||||
20210101 => [
|
||||
'amount' => 251,
|
||||
],
|
||||
20200101 => [
|
||||
'amount' => 249,
|
||||
],
|
||||
20190101 => [
|
||||
'amount' => 244,
|
||||
],
|
||||
20180101 => [
|
||||
'amount' => 239,
|
||||
],
|
||||
20170101 => [
|
||||
'amount' => 235,
|
||||
],
|
||||
20160101 => [
|
||||
'amount' => 231,
|
||||
],
|
||||
20150101 => [
|
||||
'amount' => 228,
|
||||
],
|
||||
20140101 => [
|
||||
'amount' => 223,
|
||||
],
|
||||
20130101 => [
|
||||
'amount' => 221,
|
||||
],
|
||||
20120101 => [
|
||||
'amount' => 217,
|
||||
],
|
||||
20110101 => [
|
||||
'amount' => 210,
|
||||
],
|
||||
20100101 => [
|
||||
'amount' => 206,
|
||||
],
|
||||
20090101 => [
|
||||
'amount' => 205,
|
||||
],
|
||||
20080101 => [
|
||||
'amount' => 201,
|
||||
],
|
||||
20070101 => [
|
||||
'amount' => 198,
|
||||
],
|
||||
20060101 => [
|
||||
'amount' => 194,
|
||||
],
|
||||
];
|
||||
|
||||
function getProvincialTaxReduction() {
|
||||
// $A = $this->getAnnualTaxableIncome();
|
||||
$T4 = $this->getProvincialBasicTax();
|
||||
$V1 = $this->getProvincialSurtax();
|
||||
$Y = 0;
|
||||
$S = 0;
|
||||
|
||||
Debug::text( 'ON Specific - Province: ' . $this->getProvince(), __FILE__, __LINE__, __METHOD__, 10 );
|
||||
$tax_reduction_data = $this->getProvincialTaxReductionData( $this->getDate() );
|
||||
if ( is_array( $tax_reduction_data ) ) {
|
||||
$tmp_Sa = bcadd( $T4, $V1 );
|
||||
$tmp_Sb = bcsub( bcmul( 2, bcadd( $tax_reduction_data['amount'], $Y ) ), bcadd( $T4, $V1 ) );
|
||||
|
||||
if ( $tmp_Sa < $tmp_Sb ) {
|
||||
$S = $tmp_Sa;
|
||||
} else {
|
||||
$S = $tmp_Sb;
|
||||
}
|
||||
}
|
||||
Debug::text( 'aS: ' . $S, __FILE__, __LINE__, __METHOD__, 10 );
|
||||
|
||||
if ( $S < 0 ) {
|
||||
$S = 0;
|
||||
}
|
||||
|
||||
Debug::text( 'bS: ' . $S, __FILE__, __LINE__, __METHOD__, 10 );
|
||||
|
||||
return $S;
|
||||
}
|
||||
|
||||
function getProvincialSurtax() {
|
||||
/*
|
||||
V1 =
|
||||
For Ontario
|
||||
Where T4 <= 4016
|
||||
V1 = 0
|
||||
|
||||
Where T4 > 4016 <= 5065
|
||||
V1 = 0.20 * ( T4 - 4016 )
|
||||
|
||||
Where T4 > 5065
|
||||
V1 = 0.20 * (T4 - 4016) + 0.36 * (T4 - 5065)
|
||||
|
||||
*/
|
||||
|
||||
$V1 = 0;
|
||||
$T4 = $this->getProvincialBasicTax();
|
||||
|
||||
$surtax_data = $this->getProvincialSurTaxData( $this->getDate() );
|
||||
if ( is_array( $surtax_data ) ) {
|
||||
if ( $T4 < $surtax_data['income1'] ) {
|
||||
$V1 = 0;
|
||||
} else if ( $T4 > $surtax_data['income1'] && $T4 <= $surtax_data['income2'] ) {
|
||||
$V1 = bcmul( $surtax_data['rate1'], bcsub( $T4, $surtax_data['income1'] ) );
|
||||
} else if ( $T4 > $surtax_data['income2'] ) {
|
||||
$V1 = bcadd( bcmul( $surtax_data['rate1'], bcsub( $T4, $surtax_data['income1'] ) ), bcmul( $surtax_data['rate2'], bcsub( $T4, $surtax_data['income2'] ) ) );
|
||||
}
|
||||
}
|
||||
|
||||
Debug::text( 'V1: ' . $V1, __FILE__, __LINE__, __METHOD__, 10 );
|
||||
|
||||
return $V1;
|
||||
}
|
||||
|
||||
function getAdditionalProvincialSurtax() {
|
||||
/*
|
||||
V2 =
|
||||
|
||||
Where A < 20,000
|
||||
V2 = 0
|
||||
|
||||
Where A >
|
||||
|
||||
*/
|
||||
|
||||
$A = $this->getAnnualTaxableIncome();
|
||||
$V2 = 0;
|
||||
|
||||
if ( $this->getDate() >= 20060101 ) {
|
||||
if ( $A < 20000 ) {
|
||||
$V2 = 0;
|
||||
} else if ( $A > 20000 && $A <= 36000 ) {
|
||||
$tmp_V2 = bcmul( 0.06, bcsub( $A, 20000 ) );
|
||||
|
||||
if ( $tmp_V2 > 300 ) {
|
||||
$V2 = 300;
|
||||
} else {
|
||||
$V2 = $tmp_V2;
|
||||
}
|
||||
} else if ( $A > 36000 && $A <= 48000 ) {
|
||||
$tmp_V2 = bcadd( 300, bcmul( 0.06, bcsub( $A, 36000 ) ) );
|
||||
|
||||
if ( $tmp_V2 > 450 ) {
|
||||
$V2 = 450;
|
||||
} else {
|
||||
$V2 = $tmp_V2;
|
||||
}
|
||||
} else if ( $A > 48000 && $A <= 72000 ) {
|
||||
$tmp_V2 = bcadd( 450, bcmul( 0.25, bcsub( $A, 48000 ) ) );
|
||||
|
||||
if ( $tmp_V2 > 600 ) {
|
||||
$V2 = 600;
|
||||
} else {
|
||||
$V2 = $tmp_V2;
|
||||
}
|
||||
} else if ( $A > 72000 && $A <= 200000 ) {
|
||||
$tmp_V2 = bcadd( 600, bcmul( 0.25, bcsub( $A, 72000 ) ) );
|
||||
|
||||
if ( $tmp_V2 > 750 ) {
|
||||
$V2 = 750;
|
||||
} else {
|
||||
$V2 = $tmp_V2;
|
||||
}
|
||||
} else if ( $A > 200000 ) {
|
||||
$tmp_V2 = bcadd( 750, bcmul( 0.25, bcsub( $A, 200000 ) ) );
|
||||
|
||||
if ( $tmp_V2 > 900 ) {
|
||||
$V2 = 900;
|
||||
} else {
|
||||
$V2 = $tmp_V2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Debug::text( 'V2: ' . $V2, __FILE__, __LINE__, __METHOD__, 10 );
|
||||
|
||||
return $V2;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
90
classes/payroll_deduction/CA/PE.class.php
Normal file
90
classes/payroll_deduction/CA/PE.class.php
Normal file
@@ -0,0 +1,90 @@
|
||||
<?php
|
||||
/*********************************************************************************
|
||||
*
|
||||
* TimeTrex is a Workforce Management program developed by
|
||||
* TimeTrex Software Inc. Copyright (C) 2003 - 2021 TimeTrex Software Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Affero General Public License version 3 as published by
|
||||
* the Free Software Foundation with the addition of the following permission
|
||||
* added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
|
||||
* WORK IN WHICH THE COPYRIGHT IS OWNED BY TIMETREX, TIMETREX DISCLAIMS THE
|
||||
* WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||
* details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License along
|
||||
* with this program; if not, see http://www.gnu.org/licenses or write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA.
|
||||
*
|
||||
*
|
||||
* You can contact TimeTrex headquarters at Unit 22 - 2475 Dobbin Rd. Suite
|
||||
* #292 West Kelowna, BC V4T 2E9, Canada or at email address info@timetrex.com.
|
||||
*
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License
|
||||
* version 3, these Appropriate Legal Notices must retain the display of the
|
||||
* "Powered by TimeTrex" logo. If the display of the logo is not reasonably
|
||||
* feasible for technical reasons, the Appropriate Legal Notices must display
|
||||
* the words "Powered by TimeTrex".
|
||||
*
|
||||
********************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* @package PayrollDeduction\CA
|
||||
*/
|
||||
class PayrollDeduction_CA_PE extends PayrollDeduction_CA {
|
||||
var $provincial_income_tax_rate_options = [
|
||||
//No Changes 2007 thru 2022.
|
||||
20070701 => [
|
||||
[ 'income' => 31984, 'rate' => 9.8, 'constant' => 0 ],
|
||||
[ 'income' => 63969, 'rate' => 13.8, 'constant' => 1279 ],
|
||||
[ 'income' => 63969, 'rate' => 16.7, 'constant' => 3134 ],
|
||||
],
|
||||
20070101 => [
|
||||
[ 'income' => 30754, 'rate' => 9.8, 'constant' => 0 ],
|
||||
[ 'income' => 61509, 'rate' => 13.8, 'constant' => 1230 ],
|
||||
[ 'income' => 61509, 'rate' => 16.7, 'constant' => 3014 ],
|
||||
],
|
||||
];
|
||||
|
||||
function getProvincialSurtax() {
|
||||
/*
|
||||
V1 =
|
||||
For PEI
|
||||
Where T4 <= 12500
|
||||
V1 = 0
|
||||
|
||||
Where T4 > 12500
|
||||
V1 = 0.10 * ( T4 - 12500 )
|
||||
*/
|
||||
|
||||
$T4 = $this->getProvincialBasicTax();
|
||||
$V1 = 0;
|
||||
|
||||
if ( $this->getDate() >= 20080101 ) {
|
||||
if ( $T4 <= 12500 ) {
|
||||
$V1 = 0;
|
||||
} else if ( $T4 > 12500 ) {
|
||||
$V1 = bcmul( 0.10, bcsub( $T4, 12500 ) );
|
||||
}
|
||||
}
|
||||
|
||||
Debug::text( 'V1: ' . $V1, __FILE__, __LINE__, __METHOD__, 10 );
|
||||
|
||||
return $V1;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
50
classes/payroll_deduction/CA/QC.class.php
Normal file
50
classes/payroll_deduction/CA/QC.class.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
/*********************************************************************************
|
||||
*
|
||||
* TimeTrex is a Workforce Management program developed by
|
||||
* TimeTrex Software Inc. Copyright (C) 2003 - 2021 TimeTrex Software Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Affero General Public License version 3 as published by
|
||||
* the Free Software Foundation with the addition of the following permission
|
||||
* added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
|
||||
* WORK IN WHICH THE COPYRIGHT IS OWNED BY TIMETREX, TIMETREX DISCLAIMS THE
|
||||
* WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||
* details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License along
|
||||
* with this program; if not, see http://www.gnu.org/licenses or write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA.
|
||||
*
|
||||
*
|
||||
* You can contact TimeTrex headquarters at Unit 22 - 2475 Dobbin Rd. Suite
|
||||
* #292 West Kelowna, BC V4T 2E9, Canada or at email address info@timetrex.com.
|
||||
*
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License
|
||||
* version 3, these Appropriate Legal Notices must retain the display of the
|
||||
* "Powered by TimeTrex" logo. If the display of the logo is not reasonably
|
||||
* feasible for technical reasons, the Appropriate Legal Notices must display
|
||||
* the words "Powered by TimeTrex".
|
||||
*
|
||||
********************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* @package PayrollDeduction\CA
|
||||
*/
|
||||
class PayrollDeduction_CA_QC extends PayrollDeduction_CA {
|
||||
}
|
||||
|
||||
?>
|
128
classes/payroll_deduction/CA/SK.class.php
Normal file
128
classes/payroll_deduction/CA/SK.class.php
Normal file
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
/*********************************************************************************
|
||||
*
|
||||
* TimeTrex is a Workforce Management program developed by
|
||||
* TimeTrex Software Inc. Copyright (C) 2003 - 2021 TimeTrex Software Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Affero General Public License version 3 as published by
|
||||
* the Free Software Foundation with the addition of the following permission
|
||||
* added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
|
||||
* WORK IN WHICH THE COPYRIGHT IS OWNED BY TIMETREX, TIMETREX DISCLAIMS THE
|
||||
* WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||
* details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License along
|
||||
* with this program; if not, see http://www.gnu.org/licenses or write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA.
|
||||
*
|
||||
*
|
||||
* You can contact TimeTrex headquarters at Unit 22 - 2475 Dobbin Rd. Suite
|
||||
* #292 West Kelowna, BC V4T 2E9, Canada or at email address info@timetrex.com.
|
||||
*
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License
|
||||
* version 3, these Appropriate Legal Notices must retain the display of the
|
||||
* "Powered by TimeTrex" logo. If the display of the logo is not reasonably
|
||||
* feasible for technical reasons, the Appropriate Legal Notices must display
|
||||
* the words "Powered by TimeTrex".
|
||||
*
|
||||
********************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* @package PayrollDeduction\CA
|
||||
*/
|
||||
class PayrollDeduction_CA_SK extends PayrollDeduction_CA {
|
||||
var $provincial_income_tax_rate_options = [
|
||||
20220101 => [
|
||||
[ 'income' => 46773, 'rate' => 10.5, 'constant' => 0 ],
|
||||
[ 'income' => 133638, 'rate' => 12.5, 'constant' => 935 ],
|
||||
[ 'income' => 133638, 'rate' => 14.5, 'constant' => 3608 ],
|
||||
],
|
||||
20210101 => [
|
||||
[ 'income' => 45677, 'rate' => 10.5, 'constant' => 0 ],
|
||||
[ 'income' => 130506, 'rate' => 12.5, 'constant' => 914 ],
|
||||
[ 'income' => 130506, 'rate' => 14.5, 'constant' => 3524 ],
|
||||
],
|
||||
//No Changes 2018 thru 2020.
|
||||
20170701 => [
|
||||
[ 'income' => 45225, 'rate' => 10.5, 'constant' => 0 ],
|
||||
[ 'income' => 129214, 'rate' => 12.5, 'constant' => 905 ],
|
||||
[ 'income' => 129214, 'rate' => 14.5, 'constant' => 3489 ],
|
||||
],
|
||||
20170101 => [
|
||||
[ 'income' => 45225, 'rate' => 11, 'constant' => 0 ],
|
||||
[ 'income' => 129214, 'rate' => 13, 'constant' => 905 ],
|
||||
[ 'income' => 129214, 'rate' => 15, 'constant' => 3489 ],
|
||||
],
|
||||
20160101 => [
|
||||
[ 'income' => 44601, 'rate' => 11, 'constant' => 0 ],
|
||||
[ 'income' => 127430, 'rate' => 13, 'constant' => 892 ],
|
||||
[ 'income' => 127430, 'rate' => 15, 'constant' => 3441 ],
|
||||
],
|
||||
20150101 => [
|
||||
[ 'income' => 44028, 'rate' => 11, 'constant' => 0 ],
|
||||
[ 'income' => 125795, 'rate' => 13, 'constant' => 881 ],
|
||||
[ 'income' => 125795, 'rate' => 15, 'constant' => 3396 ],
|
||||
],
|
||||
20140101 => [
|
||||
[ 'income' => 43292, 'rate' => 11, 'constant' => 0 ],
|
||||
[ 'income' => 123692, 'rate' => 13, 'constant' => 866 ],
|
||||
[ 'income' => 123692, 'rate' => 15, 'constant' => 3340 ],
|
||||
],
|
||||
20130101 => [
|
||||
[ 'income' => 42906, 'rate' => 11, 'constant' => 0 ],
|
||||
[ 'income' => 122589, 'rate' => 13, 'constant' => 858 ],
|
||||
[ 'income' => 122589, 'rate' => 15, 'constant' => 3310 ],
|
||||
],
|
||||
20120101 => [
|
||||
[ 'income' => 42065, 'rate' => 11, 'constant' => 0 ],
|
||||
[ 'income' => 120185, 'rate' => 13, 'constant' => 841 ],
|
||||
[ 'income' => 120185, 'rate' => 15, 'constant' => 3245 ],
|
||||
],
|
||||
20110101 => [
|
||||
[ 'income' => 40919, 'rate' => 11, 'constant' => 0 ],
|
||||
[ 'income' => 116911, 'rate' => 13, 'constant' => 818 ],
|
||||
[ 'income' => 116911, 'rate' => 15, 'constant' => 3157 ],
|
||||
],
|
||||
20100101 => [
|
||||
[ 'income' => 40354, 'rate' => 11, 'constant' => 0 ],
|
||||
[ 'income' => 115297, 'rate' => 13, 'constant' => 807 ],
|
||||
[ 'income' => 115297, 'rate' => 15, 'constant' => 3113 ],
|
||||
],
|
||||
20090101 => [
|
||||
[ 'income' => 40113, 'rate' => 11, 'constant' => 0 ],
|
||||
[ 'income' => 114610, 'rate' => 13, 'constant' => 802 ],
|
||||
[ 'income' => 114610, 'rate' => 15, 'constant' => 3094 ],
|
||||
],
|
||||
20080101 => [
|
||||
[ 'income' => 39135, 'rate' => 11, 'constant' => 0 ],
|
||||
[ 'income' => 111814, 'rate' => 13, 'constant' => 783 ],
|
||||
[ 'income' => 111814, 'rate' => 15, 'constant' => 3019 ],
|
||||
],
|
||||
20070101 => [
|
||||
[ 'income' => 38405, 'rate' => 11.0, 'constant' => 0 ],
|
||||
[ 'income' => 109720, 'rate' => 13.0, 'constant' => 768 ],
|
||||
[ 'income' => 109720, 'rate' => 15.0, 'constant' => 2963 ],
|
||||
],
|
||||
20060101 => [
|
||||
[ 'income' => 37579, 'rate' => 11, 'constant' => 0 ],
|
||||
[ 'income' => 107367, 'rate' => 13, 'constant' => 752 ],
|
||||
[ 'income' => 107367, 'rate' => 15, 'constant' => 2899 ],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
?>
|
196
classes/payroll_deduction/CA/YT.class.php
Normal file
196
classes/payroll_deduction/CA/YT.class.php
Normal file
@@ -0,0 +1,196 @@
|
||||
<?php
|
||||
/*********************************************************************************
|
||||
*
|
||||
* TimeTrex is a Workforce Management program developed by
|
||||
* TimeTrex Software Inc. Copyright (C) 2003 - 2021 TimeTrex Software Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Affero General Public License version 3 as published by
|
||||
* the Free Software Foundation with the addition of the following permission
|
||||
* added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
|
||||
* WORK IN WHICH THE COPYRIGHT IS OWNED BY TIMETREX, TIMETREX DISCLAIMS THE
|
||||
* WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||
* details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License along
|
||||
* with this program; if not, see http://www.gnu.org/licenses or write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA.
|
||||
*
|
||||
*
|
||||
* You can contact TimeTrex headquarters at Unit 22 - 2475 Dobbin Rd. Suite
|
||||
* #292 West Kelowna, BC V4T 2E9, Canada or at email address info@timetrex.com.
|
||||
*
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License
|
||||
* version 3, these Appropriate Legal Notices must retain the display of the
|
||||
* "Powered by TimeTrex" logo. If the display of the logo is not reasonably
|
||||
* feasible for technical reasons, the Appropriate Legal Notices must display
|
||||
* the words "Powered by TimeTrex".
|
||||
*
|
||||
********************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* @package PayrollDeduction\CA
|
||||
*/
|
||||
class PayrollDeduction_CA_YT extends PayrollDeduction_CA {
|
||||
var $provincial_income_tax_rate_options = [
|
||||
20220101 => [
|
||||
[ 'income' => 50197, 'rate' => 6.40, 'constant' => 0 ],
|
||||
[ 'income' => 100392, 'rate' => 9.00, 'constant' => 1305 ],
|
||||
[ 'income' => 155625, 'rate' => 10.90, 'constant' => 3213 ],
|
||||
[ 'income' => 500000, 'rate' => 12.80, 'constant' => 6169 ],
|
||||
[ 'income' => 500000, 'rate' => 15.00, 'constant' => 17169 ],
|
||||
],
|
||||
20210101 => [
|
||||
[ 'income' => 49020, 'rate' => 6.40, 'constant' => 0 ],
|
||||
[ 'income' => 98040, 'rate' => 9.00, 'constant' => 1275 ],
|
||||
[ 'income' => 151978, 'rate' => 10.90, 'constant' => 3137 ],
|
||||
[ 'income' => 500000, 'rate' => 12.80, 'constant' => 6025 ],
|
||||
[ 'income' => 500000, 'rate' => 15.00, 'constant' => 17025 ],
|
||||
],
|
||||
20200101 => [
|
||||
[ 'income' => 48535, 'rate' => 6.40, 'constant' => 0 ],
|
||||
[ 'income' => 97069, 'rate' => 9.00, 'constant' => 1262 ],
|
||||
[ 'income' => 150473, 'rate' => 10.90, 'constant' => 3106 ],
|
||||
[ 'income' => 500000, 'rate' => 12.80, 'constant' => 5965 ],
|
||||
[ 'income' => 500000, 'rate' => 15.00, 'constant' => 16965 ],
|
||||
],
|
||||
20190101 => [
|
||||
[ 'income' => 47630, 'rate' => 6.40, 'constant' => 0 ],
|
||||
[ 'income' => 95259, 'rate' => 9.00, 'constant' => 1238 ],
|
||||
[ 'income' => 147667, 'rate' => 10.90, 'constant' => 3048 ],
|
||||
[ 'income' => 500000, 'rate' => 12.80, 'constant' => 5854 ],
|
||||
[ 'income' => 500000, 'rate' => 15.00, 'constant' => 16854 ],
|
||||
],
|
||||
20180101 => [
|
||||
[ 'income' => 46605, 'rate' => 6.40, 'constant' => 0 ],
|
||||
[ 'income' => 93208, 'rate' => 9.00, 'constant' => 1212 ],
|
||||
[ 'income' => 144489, 'rate' => 10.90, 'constant' => 2983 ],
|
||||
[ 'income' => 500000, 'rate' => 12.80, 'constant' => 5728 ],
|
||||
[ 'income' => 500000, 'rate' => 15.00, 'constant' => 16728 ],
|
||||
],
|
||||
20170101 => [
|
||||
[ 'income' => 45916, 'rate' => 6.40, 'constant' => 0 ],
|
||||
[ 'income' => 91831, 'rate' => 9.00, 'constant' => 1194 ],
|
||||
[ 'income' => 142353, 'rate' => 10.90, 'constant' => 2939 ],
|
||||
[ 'income' => 500000, 'rate' => 12.80, 'constant' => 5643 ],
|
||||
[ 'income' => 500000, 'rate' => 15.00, 'constant' => 16643 ],
|
||||
],
|
||||
20160101 => [
|
||||
[ 'income' => 45282, 'rate' => 6.40, 'constant' => 0 ],
|
||||
[ 'income' => 90563, 'rate' => 9.00, 'constant' => 1177 ],
|
||||
[ 'income' => 140388, 'rate' => 10.90, 'constant' => 2898 ],
|
||||
[ 'income' => 500000, 'rate' => 12.80, 'constant' => 5565 ],
|
||||
[ 'income' => 500000, 'rate' => 15.00, 'constant' => 16565 ],
|
||||
],
|
||||
20150701 => [
|
||||
[ 'income' => 44701, 'rate' => 5.76, 'constant' => 0 ],
|
||||
[ 'income' => 89401, 'rate' => 8.32, 'constant' => 1144 ],
|
||||
[ 'income' => 138586, 'rate' => 10.36, 'constant' => 2968 ],
|
||||
[ 'income' => 500000, 'rate' => 12.84, 'constant' => 6405 ],
|
||||
[ 'income' => 500000, 'rate' => 17.24, 'constant' => 28405 ],
|
||||
],
|
||||
20150101 => [
|
||||
[ 'income' => 44701, 'rate' => 7.04, 'constant' => 0 ],
|
||||
[ 'income' => 89401, 'rate' => 9.68, 'constant' => 1180 ],
|
||||
[ 'income' => 138586, 'rate' => 11.44, 'constant' => 2754 ],
|
||||
[ 'income' => 138586, 'rate' => 12.76, 'constant' => 4583 ],
|
||||
],
|
||||
20140101 => [
|
||||
[ 'income' => 43953, 'rate' => 7.04, 'constant' => 0 ],
|
||||
[ 'income' => 87907, 'rate' => 9.68, 'constant' => 1160 ],
|
||||
[ 'income' => 136270, 'rate' => 11.44, 'constant' => 2708 ],
|
||||
[ 'income' => 136270, 'rate' => 12.76, 'constant' => 4506 ],
|
||||
],
|
||||
20130101 => [
|
||||
[ 'income' => 43561, 'rate' => 7.04, 'constant' => 0 ],
|
||||
[ 'income' => 87123, 'rate' => 9.68, 'constant' => 1150 ],
|
||||
[ 'income' => 135054, 'rate' => 11.44, 'constant' => 2683 ],
|
||||
[ 'income' => 135054, 'rate' => 12.76, 'constant' => 4466 ],
|
||||
],
|
||||
20120101 => [
|
||||
[ 'income' => 42707, 'rate' => 7.04, 'constant' => 0 ],
|
||||
[ 'income' => 85414, 'rate' => 9.68, 'constant' => 1127 ],
|
||||
[ 'income' => 132406, 'rate' => 11.44, 'constant' => 2631 ],
|
||||
[ 'income' => 132406, 'rate' => 12.76, 'constant' => 4379 ],
|
||||
],
|
||||
20110101 => [
|
||||
[ 'income' => 41544, 'rate' => 7.04, 'constant' => 0 ],
|
||||
[ 'income' => 83088, 'rate' => 9.68, 'constant' => 1097 ],
|
||||
[ 'income' => 128800, 'rate' => 11.44, 'constant' => 2559 ],
|
||||
[ 'income' => 128800, 'rate' => 12.76, 'constant' => 4259 ],
|
||||
],
|
||||
20100101 => [
|
||||
[ 'income' => 40970, 'rate' => 7.04, 'constant' => 0 ],
|
||||
[ 'income' => 81941, 'rate' => 9.68, 'constant' => 1082 ],
|
||||
[ 'income' => 127021, 'rate' => 11.44, 'constant' => 2524 ],
|
||||
[ 'income' => 127021, 'rate' => 12.76, 'constant' => 4200 ],
|
||||
],
|
||||
];
|
||||
|
||||
function getProvincialSurtax() {
|
||||
/*
|
||||
V1 =
|
||||
For YU
|
||||
Where T4 <= 6000
|
||||
V1 = 0
|
||||
|
||||
Where T4 > 6000
|
||||
V1 = 0.10 * ( T4 - 6000 )
|
||||
*/
|
||||
|
||||
$T4 = $this->getProvincialBasicTax();
|
||||
$V1 = 0;
|
||||
|
||||
//Repealed 01-Jul-2015 retroactively to 01-Jan-2015.
|
||||
if ( $this->getDate() >= 20080101 && $this->getDate() < 20150701 ) {
|
||||
if ( $T4 <= 6000 ) {
|
||||
$V1 = 0;
|
||||
} else if ( $T4 > 6000 ) {
|
||||
$V1 = bcmul( 0.05, bcsub( $T4, 6000 ) );
|
||||
}
|
||||
}
|
||||
|
||||
Debug::text( 'V1: ' . $V1, __FILE__, __LINE__, __METHOD__, 10 );
|
||||
|
||||
return $V1;
|
||||
}
|
||||
|
||||
function getProvincialEmploymentCredit() {
|
||||
/*
|
||||
K4P = The lesser of
|
||||
0.155 * A and
|
||||
0.155 * $1000
|
||||
*/
|
||||
|
||||
$K4P = 0;
|
||||
if ( $this->getProvince() == 'YT' && $this->getDate() >= 20130101 ) { //Yukon only currently.
|
||||
$tmp1_K4P = bcmul( $this->getData()->getProvincialLowestRate(), $this->getAnnualTaxableIncome() );
|
||||
$tmp2_K4P = bcmul( $this->getData()->getProvincialLowestRate(), $this->getData()->getFederalEmploymentCreditAmount() ); //This matches the federal employment credit amount currently.
|
||||
|
||||
if ( $tmp2_K4P < $tmp1_K4P ) {
|
||||
$K4P = $tmp2_K4P;
|
||||
} else {
|
||||
$K4P = $tmp1_K4P;
|
||||
}
|
||||
}
|
||||
|
||||
Debug::text( 'K4P: ' . $K4P, __FILE__, __LINE__, __METHOD__, 10 );
|
||||
|
||||
return $K4P;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
Reference in New Issue
Block a user