Test Special Date Changes (+10 squashed commits)

Squashed commits:
[26bd4e74] US Payslip
[1a1ef897] PA Pennsylvania
[ece62752] HI Hawaii
[f2fd9980] [FIX] l10n_us_hr_payroll: Virginia 2021 test had 2020 dates
[cc9f76f8] WA Washington
[24835fc1] PA Pennsylvania
[fe3cd269] IA Iowa
[6f034b07] DE Delaware
[2e6835e0] AL Alabama
[70a2caa1] [FIX] l10n_us_hr_payroll: Removed Debug From Maine Test
This commit is contained in:
Jared Self
2021-01-25 09:26:10 -07:00
parent 0a74a71909
commit d6f800fe26
13 changed files with 33 additions and 43 deletions

View File

@@ -33,10 +33,10 @@
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
</record>
<!-- https://labor.hawaii.gov/ui/tax-rate-schedule-and-weekly-benefit-amount/ -->
<record id="rule_parameter_us_hi_suta_rate_2020" model="hr.rule.parameter.value">
<record id="rule_parameter_us_hi_suta_rate_2021" model="hr.rule.parameter.value">
<field name="parameter_value">5.2</field>
<field name="rule_parameter_id" ref="rule_parameter_us_hi_suta_rate"/>
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
<field name="date_from" eval="datetime(2021, 1, 1).date()"/>
</record>
</data>

View File

@@ -202,8 +202,7 @@
<field name="condition_select">python</field>
<field name="condition_python">result = is_us_state(payslip, 'WA') and payslip.contract_id.us_payroll_config_value('workers_comp_ee_code') and worked_days.WORK100 and worked_days.WORK100.number_of_hours and payslip.rule_parameter(payslip.contract_id.us_payroll_config_value('workers_comp_er_code')) </field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = worked_days.WORK100.number_of_hours,
-payslip.rule_parameter(payslip.contract_id.us_payroll_config_value('workers_comp_er_code'))
<field name="amount_python_compute">result, result_rate = worked_days.WORK100.number_of_hours, -payslip.rule_parameter(payslip.contract_id.us_payroll_config_value('workers_comp_er_code'))
</field>
<field name="partner_id" ref="res_partner_us_wa_dor_lni"/>
<field name="appears_on_payslip" eval="False"/>
@@ -218,9 +217,7 @@
<field name="condition_select">python</field>
<field name="condition_python">result = is_us_state(payslip, 'WA') and payslip.contract_id.us_payroll_config_value('workers_comp_ee_code') and worked_days.WORK100 and worked_days.WORK100.number_of_hours and payslip.rule_parameter(payslip.contract_id.us_payroll_config_value('workers_comp_ee_code'))</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = worked_days.WORK100.number_of_hours,
-payslip.rule_parameter(payslip.contract_id.us_payroll_config_value('workers_comp_ee_code'))
</field>
<field name="amount_python_compute">result, result_rate = worked_days.WORK100.number_of_hours, -payslip.rule_parameter(payslip.contract_id.us_payroll_config_value('workers_comp_ee_code'))</field>
<field name="partner_id" ref="res_partner_us_wa_dor_lni"/>
<field name="appears_on_payslip" eval="True"/>
</record>

View File

@@ -7,7 +7,7 @@ class TestSpecial(TestUsPayslip):
employee = self._createEmployee()
# so the schedule_pay is now on the Structure...
contract = self._createContract(employee, wage=salary, schedule_pay='semi-monthly')
payslip = self._createPayslip(employee, '2019-01-01', '2019-01-14')
payslip = self._createPayslip(employee, '2020-01-01', '2020-01-14')
payslip.compute_sheet()
def test_payslip_sum_behavior(self):
@@ -28,8 +28,8 @@ class TestSpecial(TestUsPayslip):
'condition_python': 'result = 1',
'amount_select': 'code',
'amount_python_compute': '''
ytd_category = payslip.sum_category('test_sum_behavior', '2020-01-01', '2021-01-01')
ytd_rule = payslip.sum('test_sum_behavior', '2020-01-01', '2021-01-01')
ytd_category = payslip.sum_category('test_sum_behavior', '2021-01-01', '2022-01-01')
ytd_rule = payslip.sum('test_sum_behavior', '2021-01-01', '2022-01-01')
result = 0.0
if ytd_category != ytd_rule:
# error
@@ -42,7 +42,7 @@ elif ytd_rule == 0.0:
salary = 80000.0
employee = self._createEmployee()
contract = self._createContract(employee, wage=salary, schedule_pay='bi-weekly')
payslip = self._createPayslip(employee, '2019-12-30', '2020-01-12')
payslip = self._createPayslip(employee, '2020-12-30', '2021-01-12')
payslip.compute_sheet()
cats = self._getCategories(payslip)
self.assertEqual(cats['test_sum_behavior'], 1.0)
@@ -51,7 +51,7 @@ elif ytd_rule == 0.0:
# Basic date_from behavior.
self.env['ir.config_parameter'].set_param('hr_payroll.payslip.sum_behavior', 'date_from')
# The the date_from on the last payslip will not be found
payslip = self._createPayslip(employee, '2020-01-13', '2020-01-27')
payslip = self._createPayslip(employee, '2021-01-13', '2021-01-27')
payslip.compute_sheet()
cats = self._getCategories(payslip)
self.assertEqual(cats['test_sum_behavior'], 1.0)
@@ -59,7 +59,7 @@ elif ytd_rule == 0.0:
# date_to behavior.
self.env['ir.config_parameter'].set_param('hr_payroll.payslip.sum_behavior', 'date_to')
# The date_to on the last payslip is found
payslip = self._createPayslip(employee, '2020-01-13', '2020-01-27')
payslip = self._createPayslip(employee, '2021-01-13', '2021-01-27')
payslip.compute_sheet()
cats = self._getCategories(payslip)
self.assertEqual(cats['test_sum_behavior'], 0.0)
@@ -104,14 +104,14 @@ result += payslip.sum_category('ALW', str(year) + '-01-01', str(year+1) + '-01-0
salary = 80000.0
employee = self._createEmployee()
contract = self._createContract(employee, wage=salary, schedule_pay='bi-weekly')
payslip = self._createPayslip(employee, '2020-01-01', '2020-01-14')
payslip = self._createPayslip(employee, '2021-01-01', '2021-01-14')
payslip.compute_sheet()
cats = self._getCategories(payslip)
rules = self._getRules(payslip)
self.assertEqual(rules['RECURSION_TEST'], 200.0)
process_payslip(payslip)
payslip = self._createPayslip(employee, '2020-01-15', '2020-01-27')
payslip = self._createPayslip(employee, '2021-01-15', '2021-01-27')
payslip.compute_sheet()
cats = self._getCategories(payslip)
rules = self._getRules(payslip)

View File

@@ -29,8 +29,8 @@ class TestUsALPayslip(TestUsPayslip):
def test_2021_taxes_example(self):
self._test_er_suta('AL', self.AL_UNEMP, date(2021, 1, 1), wage_base=self.AL_UNEMP_MAX_WAGE)
self._test_sit(10000.0, 'S', False, 0.0, 1.0, 'weekly', date(2021, 1, 1), 349.08)
self._test_sit(850.0, 'M', False, 0.0, 2.0, 'weekly', date(2021, 1, 1), 29.98)
self._test_sit(5000.0, 'H', False, 0.0, 2.0, 'bi-weekly', date(2021, 1, 1), 191.15)
self._test_sit(20000.0, 'MS', False, 2.0, 0, 'monthly', date(2021, 1, 1), 757.6)
self._test_sit(10000.0, 'S', False, 0.0, 1.0, 'weekly', date(2021, 1, 1), 349.37)
self._test_sit(850.0, 'M', False, 0.0, 2.0, 'weekly', date(2021, 1, 1), 30.00)
self._test_sit(5000.0, 'H', False, 0.0, 2.0, 'bi-weekly', date(2021, 1, 1), 191.33)
self._test_sit(20000.0, 'MS', False, 2.0, 0, 'monthly', date(2021, 1, 1), 758.86)
self._test_sit(5500.0, '', True, 2.0, 150, 'weekly', date(2021, 1, 1), 0.00)

View File

@@ -30,7 +30,7 @@ class TestUsDEPayslip(TestUsPayslip):
def test_2021_taxes_example(self):
self._test_er_suta('DE', self.DE_UNEMP, date(2021, 1, 1), wage_base=self.DE_UNEMP_MAX_WAGE)
self._test_sit(480.77, 'single', 0.0, 1.0, 'weekly', date(2021, 1, 1), 13.84)
self._test_sit(480.77, 'single', 0.0, 1.0, 'weekly', date(2021, 1, 1), 13.88)
self._test_sit(5000.0, 'single', 0.0, 2.0, 'monthly', date(2021, 1, 1), 211.93)
self._test_sit(5000.0, 'single', 10.0, 1.0, 'monthly', date(2021, 1, 1), 231.1)
self._test_sit(20000.0, 'married', 0.0, 3.0, 'quarterly', date(2021, 1, 1), 876.0)

View File

@@ -29,8 +29,8 @@ class TestUsIAPayslip(TestUsPayslip):
def test_2021_taxes_example(self):
self._test_er_suta('IA', self.IA_UNEMP, date(2021, 1, 1), wage_base=self.IA_UNEMP_MAX_WAGE)
self._test_sit(2100.0, False, 0.0, 3.0, 'bi-weekly', date(2021, 1, 1), 79.13)
self._test_sit(2100.0, False, 0.0, 3.0, 'bi-weekly', date(2021, 1, 1), 79.31)
self._test_sit(3000.0, True, 10.0, 1.0, 'bi-weekly', date(2021, 1, 1), 0.00)
self._test_sit(300.0, False, 0.0, 1.0, 'weekly', date(2021, 1, 1), 6.14)
self._test_sit(5000.0, False, 0.0, 1.0, 'monthly', date(2021, 1, 1), 217.60)
self._test_sit(7500.0, False, 10.0, 2.0, 'semi-monthly', date(2021, 1, 1), 420.87)
self._test_sit(5000.0, False, 0.0, 1.0, 'monthly', date(2021, 1, 1), 218.06)
self._test_sit(7500.0, False, 10.0, 2.0, 'semi-monthly', date(2021, 1, 1), 421.71)

View File

@@ -33,9 +33,6 @@ class TestUsMEPayslip(TestUsPayslip):
# todo: not calculating correctly according to https://www.maine.gov/revenue/sites/maine.gov.revenue/files/inline-files/21_wh_tab_instr_1.pdf
# See examples on page 7
import pydevd_pycharm
pydevd_pycharm.settrace('192.168.1.134', port=6900, stdoutToServer=True, stderrToServer=True)
self._test_er_suta('ME', self.ME_UNEMP, date(2021, 1, 1), wage_base=self.ME_UNEMP_MAX_WAGE)
self._test_sit(300.0, 'single', 0.0, False, 2, 'weekly', date(2021, 1, 1), 0.0)
self._test_sit(1800.0, 'single', 0.0, False, 2, 'bi-weekly', date(2021, 1, 1), 6.00)

View File

@@ -24,7 +24,7 @@ class TestUsPAPayslip(TestUsPayslip):
wage=salary,
state_id=self.get_us_state('PA'))
self._log('2019 Pennsylvania tax first payslip:')
self._log('2020 Pennsylvania tax first payslip:')
payslip = self._createPayslip(employee, '2020-01-01', '2020-01-31')
payslip.compute_sheet()
cats = self._getCategories(payslip)

View File

@@ -18,13 +18,13 @@ class TestUsPAPayslip(TestUsPayslip):
self._test_ee_suta('PA', self.EE_PA_UNEMP, date(2021, 1, 1))
salary = 4166.67
wh = -127.90
wh = -127.92
employee = self._createEmployee()
contract = self._createContract(employee,
wage=salary,
state_id=self.get_us_state('PA'))
self._log('2019 Pennsylvania tax first payslip:')
self._log('2021 Pennsylvania tax first payslip:')
payslip = self._createPayslip(employee, '2021-01-01', '2021-01-31')
payslip.compute_sheet()
cats = self._getCategories(payslip)

View File

@@ -40,16 +40,6 @@ class TestUsPayslip2020(TestUsPayslip):
contract = self._createContract(employee, wage=salary)
self._log(contract.read())
self._log('2019 tax last slip')
payslip = self._createPayslip(employee, '2019-12-01', '2019-12-31')
payslip.compute_sheet()
self._log(payslip.read())
process_payslip(payslip)
# Ensure amounts are there, they shouldn't be added in the next year...
cats = self._getCategories(payslip)
self.assertTrue(cats['ER_US_940_FUTA'], self.FUTA_MAX_WAGE * self.FUTA)
self._log('2020 tax first payslip:')
payslip = self._createPayslip(employee, '2020-01-01', '2020-01-31')
payslip.compute_sheet()

View File

@@ -42,6 +42,7 @@ class TestUsPayslip2021(TestUsPayslip):
self._log('2020 tax last slip')
payslip = self._createPayslip(employee, '2020-12-01', '2020-12-31')
self.assertEqual(payslip.contract_id, contract)
payslip.compute_sheet()
self._log(payslip.read())
process_payslip(payslip)
@@ -52,6 +53,8 @@ class TestUsPayslip2021(TestUsPayslip):
self._log('2021 tax first payslip:')
payslip = self._createPayslip(employee, '2021-01-01', '2021-01-31')
payslip.compute_sheet()
cats = self._getCategories(payslip)
rules = self._getRules(payslip)
# Employee
@@ -71,6 +74,7 @@ class TestUsPayslip2021(TestUsPayslip):
self._log('2021 tax second payslip:')
payslip = self._createPayslip(employee, '2021-02-01', '2021-02-28')
payslip.compute_sheet()
cats = self._getCategories(payslip)
rules = self._getRules(payslip)
@@ -85,6 +89,7 @@ class TestUsPayslip2021(TestUsPayslip):
# Make a new payslip, this one will have reached Medicare Additional (employee only)
self._log('2021 tax third payslip:')
payslip = self._createPayslip(employee, '2021-03-01', '2021-03-31')
payslip.compute_sheet()
cats = self._getCategories(payslip)
rules = self._getRules(payslip)
@@ -97,6 +102,7 @@ class TestUsPayslip2021(TestUsPayslip):
self._log('2021 tax fourth payslip:')
payslip = self._createPayslip(employee, '2021-04-01', '2021-04-30')
payslip.compute_sheet()
cats = self._getCategories(payslip)
rules = self._getRules(payslip)

View File

@@ -46,15 +46,15 @@ class TestUsVaPayslip(TestUsPayslip):
va_va4_sit_other_exemptions=va_va4_sit_other_exemptions,
state_id=self.get_us_state('VA'),
)
payslip = self._createPayslip(employee, '2020-01-01', '2020-01-31')
payslip = self._createPayslip(employee, '2021-01-01', '2021-01-31')
payslip.compute_sheet()
cats = self._getCategories(payslip)
# Instead of PayrollEqual after initial first round of testing.
self.assertPayrollAlmostEqual(cats.get('EE_US_SIT', 0.0), -expected)
return payslip
def test_2020_taxes(self):
self._test_er_suta('VA', self.VA_UNEMP, date(2020, 1, 1), wage_base=self.VA_UNEMP_MAX_WAGE)
def test_2021_taxes(self):
self._test_er_suta('VA', self.VA_UNEMP, date(2021, 1, 1), wage_base=self.VA_UNEMP_MAX_WAGE)
salary = 5000.0

View File

@@ -61,7 +61,7 @@ class TestUsWAPayslip(TestUsPayslip):
self._log('2021 Washington tax first payslip:')
payslip = self._createPayslip(employee, '2021-01-01', '2021-01-31')
hours_in_period = payslip.worked_days_line_ids.filtered(lambda l: l.code == 'WORK100').number_of_hours
self.assertPayrollAlmostEqual(hours_in_period, 169) # only asserted to test algorithm
self.assertPayrollAlmostEqual(hours_in_period, 168.0) # only asserted to test algorithm
payslip.compute_sheet()
rules = self._getRules(payslip)