diff --git a/hr_payroll_slip_ytd/tests/__init__.py b/hr_payroll_slip_ytd/tests/__init__.py new file mode 100644 index 00000000..63a156de --- /dev/null +++ b/hr_payroll_slip_ytd/tests/__init__.py @@ -0,0 +1 @@ +from . import test_hr_payslip_ytd diff --git a/hr_payroll_slip_ytd/tests/test_hr_payslip_ytd.py b/hr_payroll_slip_ytd/tests/test_hr_payslip_ytd.py new file mode 100644 index 00000000..6a563da6 --- /dev/null +++ b/hr_payroll_slip_ytd/tests/test_hr_payslip_ytd.py @@ -0,0 +1,31 @@ +from odoo.addons.hr_payroll.tests.common import TestPayslipBase + + +class TestPayslipYtd(TestPayslipBase): + def test_00_payslip_ytd(self): + richard_payslip = self.env['hr.payslip'].create({ + 'name': 'Payslip of Richard', + 'employee_id': self.richard_emp.id, + 'contract_id': self.richard_emp.contract_id.id, + }) + + richard_payslip.compute_sheet() + richard_payslip.action_payslip_done() + basic_line = richard_payslip.line_ids.filtered(lambda l: l.code == 'BASIC') + self.assertEqual(basic_line.amount, 5000.0) + ytd = richard_payslip.ytd('BASIC', allow_draft=False) + self.assertEqual(ytd, {'total': 5000.0, 'quantity': 1.0, 'amount': 5000.0}) + + richard_payslip_next = self.env['hr.payslip'].create({ + 'name': 'Payslip of Richard', + 'employee_id': self.richard_emp.id, + 'contract_id': self.richard_emp.contract_id.id, + }) + + richard_payslip_next.compute_sheet() + basic_line = richard_payslip_next.line_ids.filtered(lambda l: l.code == 'BASIC') + self.assertEqual(basic_line.amount, 5000.0) + ytd = richard_payslip_next.ytd('BASIC', allow_draft=True) + self.assertEqual(ytd, {'total': 10000.0, 'quantity': 2.0, 'amount': 10000.0}) + ytd = richard_payslip_next.ytd('BASIC', allow_draft=False) + self.assertEqual(ytd, {'total': 5000.0, 'quantity': 1.0, 'amount': 5000.0})