mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
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:
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user