mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
[IMP] hr_payroll_attendance: normalize 'amount' on leave lines, require hibou_professional
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
# Part of Hibou Suite Professional. See LICENSE_PROFESSIONAL file for full copyright and licensing details.
|
||||
|
||||
from collections import defaultdict
|
||||
from odoo.tests import common
|
||||
|
||||
@@ -25,6 +27,18 @@ class TestUsPayslip(common.TransactionCase):
|
||||
'date_from': '2020-01-06',
|
||||
'date_to': '2020-01-19',
|
||||
})
|
||||
self.work_entry_type_leave = self.env['hr.work.entry.type'].create({
|
||||
'name': 'Test PTO',
|
||||
'code': 'TESTPTO',
|
||||
'is_leave': True,
|
||||
})
|
||||
self.leave_type = self.env['hr.leave.type'].create({
|
||||
'name': 'Test Paid Time Off',
|
||||
'time_type': 'leave',
|
||||
'allocation_type': 'no',
|
||||
'validity_start': False,
|
||||
'work_entry_type_id': self.work_entry_type_leave.id,
|
||||
})
|
||||
|
||||
def _setup_attendance(self, employee):
|
||||
# Total 127.37 hours in 2 weeks.
|
||||
@@ -137,3 +151,27 @@ class TestUsPayslip(common.TransactionCase):
|
||||
self.payslip.compute_sheet()
|
||||
cats = self._getCategories()
|
||||
self.assertAlmostEqual(cats['BASIC'], 3247.68, 2)
|
||||
|
||||
def test_with_leave(self):
|
||||
date_from = '2020-01-10'
|
||||
date_to = '2020-01-11'
|
||||
leave = self.env['hr.leave'].create({
|
||||
'name': 'Test Leave',
|
||||
'employee_id': self.employee.id,
|
||||
'holiday_status_id': self.leave_type.id,
|
||||
'date_to': date_to,
|
||||
'date_from': date_from,
|
||||
'number_of_days': 1,
|
||||
})
|
||||
leave.action_validate()
|
||||
self.assertEqual(leave.state, 'validate')
|
||||
self.payslip._onchange_employee()
|
||||
self.assertTrue(self.payslip.contract_id, 'No auto-discovered contract!')
|
||||
self.payslip.compute_sheet()
|
||||
self.assertTrue(self.payslip.worked_days_line_ids)
|
||||
|
||||
leave_line = self.payslip.worked_days_line_ids.filtered(lambda l: l.code == 'TESTPTO')
|
||||
self.assertTrue(leave_line)
|
||||
self.assertEqual(leave_line.number_of_days, 1.0)
|
||||
self.assertEqual(leave_line.number_of_hours, 8.0)
|
||||
self.assertEqual(leave_line.amount, 8.0 * self.test_hourly_wage)
|
||||
|
||||
Reference in New Issue
Block a user