From 24a73663e562be65877879e2c03d62a09ca89213 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Sun, 9 Dec 2018 11:51:01 -0800 Subject: [PATCH] Refactor to mitigate the fact that eligible 401(k) contributions reduce taxable wage (gross) but not FICA/FUTA etc. This refactor bases all/most 'wage' categories off of BASIC instead of GROSS to allow all 'Income Tax' rules to continue to be based on GROSS. --- l10n_us_ca_hr_payroll/data/rules_2018.xml | 12 ++++++------ l10n_us_fl_hr_payroll/data/rules_2018.xml | 4 ++-- l10n_us_hr_payroll/data/rules_2018.xml | 10 +++++----- l10n_us_ks_hr_payroll/data/rules_2018.xml | 4 ++-- l10n_us_mo_hr_payroll/data/rules_2018.xml | 4 ++-- .../tests/test_us_mo_payslip_2018.py | 9 +++++---- l10n_us_nc_hr_payroll/data/rules_2018.xml | 4 ++-- l10n_us_nj_hr_payroll/data/rules_2018.xml | 16 ++++++++-------- l10n_us_ny_hr_payroll/data/rules_2018.xml | 4 ++-- l10n_us_oh_hr_payroll/data/rules_2018.xml | 4 ++-- l10n_us_pa_hr_payroll/data/rules_2018.xml | 4 ++-- .../tests/test_us_pa_payslip_2018.py | 2 +- l10n_us_tx_hr_payroll/data/rules_2018.xml | 4 ++-- l10n_us_va_hr_payroll/data/rules_2018.xml | 4 ++-- l10n_us_wa_hr_payroll/data/rules_2018.xml | 4 ++-- 15 files changed, 45 insertions(+), 44 deletions(-) diff --git a/l10n_us_ca_hr_payroll/data/rules_2018.xml b/l10n_us_ca_hr_payroll/data/rules_2018.xml index 8602b1bc..0cd42d36 100755 --- a/l10n_us_ca_hr_payroll/data/rules_2018.xml +++ b/l10n_us_ca_hr_payroll/data/rules_2018.xml @@ -19,10 +19,10 @@ ytd += contract.external_wages remaining = 7000.0 - ytd if remaining <= 0.0: result = 0 -elif remaining < categories.GROSS: +elif remaining < categories.BASIC: result = remaining else: - result = categories.GROSS + result = categories.BASIC @@ -63,10 +63,10 @@ ytd += contract.external_wages remaining = 7000.0 - ytd if remaining <= 0.0: result = 0 -elif remaining < categories.GROSS: +elif remaining < categories.BASIC: result = remaining else: - result = categories.GROSS + result = categories.BASIC @@ -107,10 +107,10 @@ ytd += contract.external_wages remaining = 114967.0 - ytd if remaining <= 0.0: result = 0 -elif remaining < categories.GROSS: +elif remaining < categories.BASIC: result = remaining else: - result = categories.GROSS + result = categories.BASIC diff --git a/l10n_us_fl_hr_payroll/data/rules_2018.xml b/l10n_us_fl_hr_payroll/data/rules_2018.xml index 7adabdbe..9fdc56da 100755 --- a/l10n_us_fl_hr_payroll/data/rules_2018.xml +++ b/l10n_us_fl_hr_payroll/data/rules_2018.xml @@ -18,10 +18,10 @@ ytd += contract.external_wages remaining = 7000.0 - ytd if remaining <= 0.0: result = 0 -elif remaining < categories.GROSS: +elif remaining < categories.BASIC: result = remaining else: - result = categories.GROSS + result = categories.BASIC diff --git a/l10n_us_hr_payroll/data/rules_2018.xml b/l10n_us_hr_payroll/data/rules_2018.xml index 8eb537ac..def495ee 100755 --- a/l10n_us_hr_payroll/data/rules_2018.xml +++ b/l10n_us_hr_payroll/data/rules_2018.xml @@ -19,10 +19,10 @@ ytd += contract.external_wages remaining = 128400.0 - ytd if remaining <= 0.0: result = 0 -elif remaining < categories.GROSS: +elif remaining < categories.BASIC: result = remaining else: - result = categories.GROSS + result = categories.BASIC @@ -34,7 +34,7 @@ else: python result = (payslip.date_to[:4] == '2018') and not contract.fica_exempt code - result = categories.GROSS + result = categories.BASIC @@ -577,10 +577,10 @@ ytd += contract.external_wages remaining = 7000.0 - ytd if remaining <= 0.0: result = 0 -elif remaining < categories.GROSS: +elif remaining < categories.BASIC: result = remaining else: - result = categories.GROSS + result = categories.BASIC diff --git a/l10n_us_ks_hr_payroll/data/rules_2018.xml b/l10n_us_ks_hr_payroll/data/rules_2018.xml index ea88f973..f5932fb9 100755 --- a/l10n_us_ks_hr_payroll/data/rules_2018.xml +++ b/l10n_us_ks_hr_payroll/data/rules_2018.xml @@ -18,10 +18,10 @@ ytd += contract.external_wages remaining = 14000.0 - ytd if remaining <= 0.0: result = 0 -elif remaining < categories.GROSS: +elif remaining < categories.BASIC: result = remaining else: - result = categories.GROSS + result = categories.BASIC diff --git a/l10n_us_mo_hr_payroll/data/rules_2018.xml b/l10n_us_mo_hr_payroll/data/rules_2018.xml index f51b6e24..5ad1ae1a 100755 --- a/l10n_us_mo_hr_payroll/data/rules_2018.xml +++ b/l10n_us_mo_hr_payroll/data/rules_2018.xml @@ -18,10 +18,10 @@ ytd += contract.external_wages remaining = 12500.0 - ytd if remaining <= 0.0: result = 0 -elif remaining < categories.GROSS: +elif remaining < categories.BASIC: result = remaining else: - result = categories.GROSS + result = categories.BASIC diff --git a/l10n_us_mo_hr_payroll/tests/test_us_mo_payslip_2018.py b/l10n_us_mo_hr_payroll/tests/test_us_mo_payslip_2018.py index e6239f7a..b2186f37 100755 --- a/l10n_us_mo_hr_payroll/tests/test_us_mo_payslip_2018.py +++ b/l10n_us_mo_hr_payroll/tests/test_us_mo_payslip_2018.py @@ -45,7 +45,7 @@ class TestUsMoPayslip(TestUsPayslip): # tax rates mo_unemp = contract.mo_unemp_rate(2018) / -100.0 - self._log('2018 Missouri tax first payslip:') + self._log('2018 Missouri tax single first payslip:') payslip = self._createPayslip(employee, '2018-01-01', '2018-01-31') payslip.compute_sheet() @@ -62,11 +62,12 @@ class TestUsMoPayslip(TestUsPayslip): # 5000 for single and married with spouse working, 10000 for married spouse not working us_withholding = min(5000, us_withholding) - + # 5000 + self._log(us_withholding) mo_taxable_income = gross_salary - standard_deduction - mo_allowance_calculated - us_withholding - # 48306.14 - self._log(mo_taxable_income) + # 44000.0 + self._log('%s = %s - %s - %s - %s' % (mo_taxable_income, gross_salary, standard_deduction, mo_allowance_calculated, us_withholding)) remaining_taxable_income = mo_taxable_income tax = 0.0 diff --git a/l10n_us_nc_hr_payroll/data/rules_2018.xml b/l10n_us_nc_hr_payroll/data/rules_2018.xml index d73ba291..967c21cc 100755 --- a/l10n_us_nc_hr_payroll/data/rules_2018.xml +++ b/l10n_us_nc_hr_payroll/data/rules_2018.xml @@ -17,10 +17,10 @@ ytd += contract.external_wages remaining = 7000.0 - ytd if remaining <= 0.0: result = 0 -elif remaining < categories.GROSS: +elif remaining < categories.BASIC: result = remaining else: - result = categories.GROSS + result = categories.BASIC diff --git a/l10n_us_nj_hr_payroll/data/rules_2018.xml b/l10n_us_nj_hr_payroll/data/rules_2018.xml index c581bd9a..3cd60ec8 100755 --- a/l10n_us_nj_hr_payroll/data/rules_2018.xml +++ b/l10n_us_nj_hr_payroll/data/rules_2018.xml @@ -19,10 +19,10 @@ ytd += contract.external_wages remaining = 33700.0 - ytd if remaining <= 0.0: result = 0 -elif remaining < categories.GROSS: +elif remaining < categories.BASIC: result = remaining else: - result = categories.GROSS + result = categories.BASIC @@ -82,10 +82,10 @@ ytd += contract.external_wages remaining = 33700.0 - ytd if remaining <= 0.0: result = 0 -elif remaining < categories.GROSS: +elif remaining < categories.BASIC: result = remaining else: - result = categories.GROSS + result = categories.BASIC @@ -144,10 +144,10 @@ ytd += contract.external_wages remaining = 33700.0 - ytd if remaining <= 0.0: result = 0 -elif remaining < categories.GROSS: +elif remaining < categories.BASIC: result = remaining else: - result = categories.GROSS + result = categories.BASIC @@ -183,10 +183,10 @@ ytd += contract.external_wages remaining = 33700.0 - ytd if remaining <= 0.0: result = 0 -elif remaining < categories.GROSS: +elif remaining < categories.BASIC: result = remaining else: - result = categories.GROSS + result = categories.BASIC diff --git a/l10n_us_ny_hr_payroll/data/rules_2018.xml b/l10n_us_ny_hr_payroll/data/rules_2018.xml index c10ea324..25aede53 100755 --- a/l10n_us_ny_hr_payroll/data/rules_2018.xml +++ b/l10n_us_ny_hr_payroll/data/rules_2018.xml @@ -19,10 +19,10 @@ ytd += contract.external_wages remaining = 11100.00 - ytd if remaining <= 0.0: result = 0 -elif remaining < categories.GROSS: +elif remaining < categories.BASIC: result = remaining else: - result = categories.GROSS + result = categories.BASIC diff --git a/l10n_us_oh_hr_payroll/data/rules_2018.xml b/l10n_us_oh_hr_payroll/data/rules_2018.xml index e2828c27..88d28eb8 100755 --- a/l10n_us_oh_hr_payroll/data/rules_2018.xml +++ b/l10n_us_oh_hr_payroll/data/rules_2018.xml @@ -18,10 +18,10 @@ ytd += contract.external_wages remaining = 9500.0 - ytd if remaining <= 0.0: result = 0 -elif remaining < categories.GROSS: +elif remaining < categories.BASIC: result = remaining else: - result = categories.GROSS + result = categories.BASIC diff --git a/l10n_us_pa_hr_payroll/data/rules_2018.xml b/l10n_us_pa_hr_payroll/data/rules_2018.xml index c8dd9e46..f35d4319 100755 --- a/l10n_us_pa_hr_payroll/data/rules_2018.xml +++ b/l10n_us_pa_hr_payroll/data/rules_2018.xml @@ -18,10 +18,10 @@ ytd += contract.external_wages remaining = 10000.0 - ytd if remaining <= 0.0: result = 0 -elif remaining < categories.GROSS: +elif remaining < categories.BASIC: result = remaining else: - result = categories.GROSS + result = categories.BASIC diff --git a/l10n_us_pa_hr_payroll/tests/test_us_pa_payslip_2018.py b/l10n_us_pa_hr_payroll/tests/test_us_pa_payslip_2018.py index 025caf5a..c047bb38 100755 --- a/l10n_us_pa_hr_payroll/tests/test_us_pa_payslip_2018.py +++ b/l10n_us_pa_hr_payroll/tests/test_us_pa_payslip_2018.py @@ -14,7 +14,7 @@ class TestUsPAPayslip(TestUsPayslip): wh = -127.92 employee = self._createEmployee() - employee.company_id.pa_unemp_employee_rate_2018 = 0.06~ + employee.company_id.pa_unemp_employee_rate_2018 = 0.06 employee.company_id.pa_unemp_company_rate_2018 = 3.6785 employee.company_id.pa_withhold_rate_2018 = 3.07 diff --git a/l10n_us_tx_hr_payroll/data/rules_2018.xml b/l10n_us_tx_hr_payroll/data/rules_2018.xml index 551f7426..6ca7845a 100755 --- a/l10n_us_tx_hr_payroll/data/rules_2018.xml +++ b/l10n_us_tx_hr_payroll/data/rules_2018.xml @@ -18,10 +18,10 @@ ytd += contract.external_wages remaining = 9000.0 - ytd if remaining <= 0.0: result = 0 -elif remaining < categories.GROSS: +elif remaining < categories.BASIC: result = remaining else: - result = categories.GROSS + result = categories.BASIC diff --git a/l10n_us_va_hr_payroll/data/rules_2018.xml b/l10n_us_va_hr_payroll/data/rules_2018.xml index 235a0cb8..45b3d34a 100755 --- a/l10n_us_va_hr_payroll/data/rules_2018.xml +++ b/l10n_us_va_hr_payroll/data/rules_2018.xml @@ -18,10 +18,10 @@ ytd += contract.external_wages remaining = 8000.0 - ytd if remaining <= 0.0: result = 0 -elif remaining < categories.GROSS: +elif remaining < categories.BASIC: result = remaining else: - result = categories.GROSS + result = categories.BASIC diff --git a/l10n_us_wa_hr_payroll/data/rules_2018.xml b/l10n_us_wa_hr_payroll/data/rules_2018.xml index a8271265..cf77a274 100755 --- a/l10n_us_wa_hr_payroll/data/rules_2018.xml +++ b/l10n_us_wa_hr_payroll/data/rules_2018.xml @@ -18,10 +18,10 @@ ytd += contract.external_wages remaining = 47300.0 - ytd if remaining <= 0.0: result = 0 -elif remaining < categories.GROSS: +elif remaining < categories.BASIC: result = remaining else: - result = categories.GROSS + result = categories.BASIC