1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
# # -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from datetime import datetime
from odoo.tests import tagged
from odoo.addons.hr_work_entry_holidays.tests.common import TestWorkEntryHolidaysBase
@tagged('work_entry_multi_contract')
class TestWorkEntryHolidaysMultiContract(TestWorkEntryHolidaysBase):
def test_multi_contract_holiday(self):
# Leave during second contract
leave = self.create_leave(datetime(2015, 11, 17), datetime(2015, 11, 20), name="Doctor Appointment", employee_id=self.jules_emp.id)
leave.action_approve()
start = datetime(2015, 11, 1, 0, 0, 0)
end_generate = datetime(2015, 11, 30, 23, 59, 59)
work_entries = self.jules_emp.contract_ids._generate_work_entries(start, end_generate)
work_entries.action_validate()
work_entries = work_entries.filtered(lambda we: we.contract_id == self.contract_cdi)
work = work_entries.filtered(lambda line: line.work_entry_type_id == self.env.ref('hr_work_entry.work_entry_type_attendance'))
leave = work_entries.filtered(lambda line: line.work_entry_type_id == self.work_entry_type_leave)
self.assertEqual(sum(work.mapped('duration')), 49, "It should be 49 hours of work this month for this contract")
self.assertEqual(sum(leave.mapped('duration')), 28, "It should be 28 hours of leave this month for this contract")
|