Files
enterprise-addons/l10n_ch_hr_payroll/tests/test_swissdec_cases.py
T

457 lines
21 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from datetime import datetime, date
from odoo.addons.l10n_ch_hr_payroll.tests.swissdec_5_0 import TestSwissdec5Common
from odoo.tests.common import tagged
from freezegun import freeze_time
from odoo.tools import file_open
import json
@tagged('post_install_l10n', 'post_install', '-at_install', 'swissdec_payroll')
class TestSwissdecTestCases(TestSwissdec5Common):
@freeze_time("2024-01-01")
def test_yearly_retrospective_2021_11(self):
identifier = "yearly_retrospective_2021_11"
generated_dict = self.yearly_retrospective_2021_11._get_declaration()
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_yearly_retrospective_2021_12(self):
identifier = "yearly_retrospective_2021_12"
generated_dict = self.yearly_retrospective_2021_12._get_declaration()
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_yearly_retrospective_2022_01(self):
identifier = "yearly_retrospective_2022_01"
generated_dict = self.yearly_retrospective_2022_01._get_declaration()
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_yearly_retrospective_2022_02(self):
identifier = "yearly_retrospective_2022_02"
generated_dict = self.yearly_retrospective_2022_02._get_declaration()
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_yearly_retrospective_2022_03(self):
identifier = "yearly_retrospective_2022_03"
generated_dict = self.yearly_retrospective_2022_03._get_declaration()
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_yearly_retrospective_2022_04(self):
identifier = "yearly_retrospective_2022_04"
generated_dict = self.yearly_retrospective_2022_04._get_declaration()
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_yearly_retrospective_2022_05(self):
identifier = "yearly_retrospective_2022_05"
generated_dict = self.yearly_retrospective_2022_05._get_declaration()
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_yearly_retrospective_2022_06(self):
identifier = "yearly_retrospective_2022_06"
generated_dict = self.yearly_retrospective_2022_06._get_declaration()
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_yearly_retrospective_2022_07(self):
identifier = "yearly_retrospective_2022_07"
generated_dict = self.yearly_retrospective_2022_07._get_declaration()
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_yearly_retrospective_2022_08(self):
identifier = "yearly_retrospective_2022_08"
generated_dict = self.yearly_retrospective_2022_08._get_declaration()
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_yearly_retrospective_2022_09(self):
identifier = "yearly_retrospective_2022_09"
generated_dict = self.yearly_retrospective_2022_09._get_declaration()
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_yearly_retrospective_2022_10(self):
identifier = "yearly_retrospective_2022_10"
generated_dict = self.yearly_retrospective_2022_10._get_declaration()
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_yearly_retrospective_2022_11(self):
identifier = "yearly_retrospective_2022_11"
generated_dict = self.yearly_retrospective_2022_11._get_declaration()
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_yearly_retrospective_2022_12(self):
identifier = "yearly_retrospective_2022_12"
generated_dict = self.yearly_retrospective_2022_12._get_declaration()
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_yearly_retrospective_2023_01(self):
identifier = "yearly_retrospective_2023_01"
generated_dict = self.yearly_retrospective_2023_01._get_declaration()
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_yearly_retrospective_2023_02(self):
identifier = "yearly_retrospective_2023_02"
generated_dict = self.yearly_retrospective_2023_02._get_declaration()
self._compare_with_truth_base("yearly_retrospective", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_ema_declaration_2021_11(self):
identifier = "ema_declaration_2021_11"
generated_dict = self.ema_declaration_2021_11._get_declaration()
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_ema_declaration_2021_12(self):
identifier = "ema_declaration_2021_12"
generated_dict = self.ema_declaration_2021_12._get_declaration()
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_ema_declaration_2022_01(self):
identifier = "ema_declaration_2022_01"
generated_dict = self.ema_declaration_2022_01._get_declaration()
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_ema_declaration_2022_02(self):
identifier = "ema_declaration_2022_02"
generated_dict = self.ema_declaration_2022_02._get_declaration()
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_ema_declaration_2022_03(self):
identifier = "ema_declaration_2022_03"
generated_dict = self.ema_declaration_2022_03._get_declaration()
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_ema_declaration_2022_04(self):
identifier = "ema_declaration_2022_04"
generated_dict = self.ema_declaration_2022_04._get_declaration()
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_ema_declaration_2022_05(self):
identifier = "ema_declaration_2022_05"
generated_dict = self.ema_declaration_2022_05._get_declaration()
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_ema_declaration_2022_06(self):
identifier = "ema_declaration_2022_06"
generated_dict = self.ema_declaration_2022_06._get_declaration()
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_ema_declaration_2022_07(self):
identifier = "ema_declaration_2022_07"
generated_dict = self.ema_declaration_2022_07._get_declaration()
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_ema_declaration_2022_08(self):
identifier = "ema_declaration_2022_08"
generated_dict = self.ema_declaration_2022_08._get_declaration()
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_ema_declaration_2022_09(self):
identifier = "ema_declaration_2022_09"
generated_dict = self.ema_declaration_2022_09._get_declaration()
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_ema_declaration_2022_10(self):
identifier = "ema_declaration_2022_10"
generated_dict = self.ema_declaration_2022_10._get_declaration()
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_ema_declaration_2022_11(self):
identifier = "ema_declaration_2022_11"
generated_dict = self.ema_declaration_2022_11._get_declaration()
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_ema_declaration_2022_12(self):
identifier = "ema_declaration_2022_12"
generated_dict = self.ema_declaration_2022_12._get_declaration()
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_ema_declaration_2023_01(self):
identifier = "ema_declaration_2023_01"
generated_dict = self.ema_declaration_2023_01._get_declaration()
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_ema_declaration_2023_02(self):
identifier = "ema_declaration_2023_02"
generated_dict = self.ema_declaration_2023_02._get_declaration()
self._compare_with_truth_base("ema_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_statistic_declaration_2021_11(self):
identifier = "statistic_declaration_2021_11"
generated_dict = self.statistic_declaration_2021_11._get_declaration()
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_statistic_declaration_2021_12(self):
identifier = "statistic_declaration_2021_12"
generated_dict = self.statistic_declaration_2021_12._get_declaration()
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_statistic_declaration_2022_01(self):
identifier = "statistic_declaration_2022_01"
generated_dict = self.statistic_declaration_2022_01._get_declaration()
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_statistic_declaration_2022_02(self):
identifier = "statistic_declaration_2022_02"
generated_dict = self.statistic_declaration_2022_02._get_declaration()
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_statistic_declaration_2022_03(self):
identifier = "statistic_declaration_2022_03"
generated_dict = self.statistic_declaration_2022_03._get_declaration()
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_statistic_declaration_2022_04(self):
identifier = "statistic_declaration_2022_04"
generated_dict = self.statistic_declaration_2022_04._get_declaration()
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_statistic_declaration_2022_05(self):
identifier = "statistic_declaration_2022_05"
generated_dict = self.statistic_declaration_2022_05._get_declaration()
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_statistic_declaration_2022_06(self):
identifier = "statistic_declaration_2022_06"
generated_dict = self.statistic_declaration_2022_06._get_declaration()
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_statistic_declaration_2022_07(self):
identifier = "statistic_declaration_2022_07"
generated_dict = self.statistic_declaration_2022_07._get_declaration()
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_statistic_declaration_2022_08(self):
identifier = "statistic_declaration_2022_08"
generated_dict = self.statistic_declaration_2022_08._get_declaration()
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_statistic_declaration_2022_09(self):
identifier = "statistic_declaration_2022_09"
generated_dict = self.statistic_declaration_2022_09._get_declaration()
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_statistic_declaration_2022_10(self):
identifier = "statistic_declaration_2022_10"
generated_dict = self.statistic_declaration_2022_10._get_declaration()
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_statistic_declaration_2022_11(self):
identifier = "statistic_declaration_2022_11"
generated_dict = self.statistic_declaration_2022_11._get_declaration()
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_statistic_declaration_2022_12(self):
identifier = "statistic_declaration_2022_12"
generated_dict = self.statistic_declaration_2022_12._get_declaration()
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_statistic_declaration_2023_01(self):
identifier = "statistic_declaration_2023_01"
generated_dict = self.statistic_declaration_2023_01._get_declaration()
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_statistic_declaration_2023_02(self):
identifier = "statistic_declaration_2023_02"
generated_dict = self.statistic_declaration_2023_02._get_declaration()
self._compare_with_truth_base("statistic_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_is_declaration_2021_11(self):
identifier = "is_declaration_2021_11"
generated_dict = self.is_declaration_2021_11._get_declaration()
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_is_declaration_2021_12(self):
identifier = "is_declaration_2021_12"
generated_dict = self.is_declaration_2021_12._get_declaration()
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_is_declaration_2022_01(self):
identifier = "is_declaration_2022_01"
generated_dict = self.is_declaration_2022_01._get_declaration()
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_is_declaration_2022_02(self):
identifier = "is_declaration_2022_02"
generated_dict = self.is_declaration_2022_02._get_declaration()
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_is_declaration_2022_03(self):
identifier = "is_declaration_2022_03"
generated_dict = self.is_declaration_2022_03._get_declaration()
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_is_declaration_2022_04(self):
identifier = "is_declaration_2022_04"
generated_dict = self.is_declaration_2022_04._get_declaration()
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_is_declaration_2022_05(self):
identifier = "is_declaration_2022_05"
generated_dict = self.is_declaration_2022_05._get_declaration()
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_is_declaration_2022_06(self):
identifier = "is_declaration_2022_06"
generated_dict = self.is_declaration_2022_06._get_declaration()
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_is_declaration_2022_07(self):
identifier = "is_declaration_2022_07"
generated_dict = self.is_declaration_2022_07._get_declaration()
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_is_declaration_2022_08(self):
identifier = "is_declaration_2022_08"
generated_dict = self.is_declaration_2022_08._get_declaration()
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_is_declaration_2022_09(self):
identifier = "is_declaration_2022_09"
generated_dict = self.is_declaration_2022_09._get_declaration()
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_is_declaration_2022_10(self):
identifier = "is_declaration_2022_10"
generated_dict = self.is_declaration_2022_10._get_declaration()
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_is_declaration_2022_11(self):
identifier = "is_declaration_2022_11"
generated_dict = self.is_declaration_2022_11._get_declaration()
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_is_declaration_2022_12(self):
identifier = "is_declaration_2022_12"
generated_dict = self.is_declaration_2022_12._get_declaration()
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_is_declaration_2023_01(self):
identifier = "is_declaration_2023_01"
generated_dict = self.is_declaration_2023_01._get_declaration()
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_is_declaration_2023_02(self):
identifier = "is_declaration_2023_02"
generated_dict = self.is_declaration_2023_02._get_declaration()
self._compare_with_truth_base("is_declaration", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_rectificate_2022_01(self):
identifier = "rectificate_2022_01"
generated_dict = self.rectificate_2022_01._get_declaration()
self._compare_with_truth_base("rectificate", identifier, generated_dict)
@freeze_time("2024-01-01")
def test_yearly_prospective_2023_01(self):
identifier = "yearly_prospective_2023_01"
generated_dict = self.yearly_prospective_2023_01._get_declaration()
self._compare_with_truth_base("yearly_prospective", identifier, generated_dict)
@freeze_time("2025-12-16")
def test_lpp_basis_report_with_employee_creation(self):
"""
Test employee creation for Swiss company while having duplicate LPP reports.
"""
swiss_company = self.env.company
lpp_report_1 = self.env['l10n.ch.lpp.basis.report'].create({
'year': datetime.now().year,
'month': str(datetime.now().month),
'company_id': swiss_company.id,
})
lpp_report_2 = lpp_report_1.copy()
employee = self.env['hr.employee'].create({
'name': 'Test Employee',
'company_id': swiss_company.id,
})
self.assertTrue(employee.exists())
self.assertEqual(employee.company_id, swiss_company)
self.assertEqual(lpp_report_1.year, 2025)
self.assertEqual(lpp_report_1.month, '12')
self.assertEqual(lpp_report_2.year, 2025)
self.assertEqual(lpp_report_2.month, '12')
@freeze_time("2023-01-01")
def test_is_declaration_perception_2022_06(self):
# Load perception commission IS Rates
rates_to_load = [
('BE_PEL', 'BE_PEL.json'),
('TI_PEL', 'TI_PEL.json'),
('VD_PEL', 'VD_PEL.json'),
]
for xml_id, file_name in rates_to_load:
rule_parameter = self.env['hr.rule.parameter'].create({
'name': f'CH Withholding Tax: {xml_id}',
'code': f'l10n_ch_withholding_tax_rates_{xml_id}',
'country_id': self.env.ref('base.ch').id,
})
self.env['hr.rule.parameter.value'].create({
'parameter_value': json.load(file_open(f'l10n_ch_hr_payroll/tests/data/is_rates/{file_name}')),
'rule_parameter_id': rule_parameter.id,
'date_from': date(2021, 1, 1),
})
identifier = "is_declaration_perception_2022_06"
self.is_declaration_2022_06.action_prepare_data()
generated_dict = self.is_declaration_2022_06._get_declaration()
self._compare_with_truth_base("is_declaration_perception", identifier, generated_dict)