54 lines
2.2 KiB
Python
54 lines
2.2 KiB
Python
|
# # -*- coding: utf-8 -*-
|
||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||
|
|
||
|
from .common import TestWorkEntryBase
|
||
|
|
||
|
from datetime import datetime
|
||
|
|
||
|
from odoo.tests import tagged
|
||
|
|
||
|
@tagged('-at_install', 'post_install')
|
||
|
class TestGlobalTimeOff(TestWorkEntryBase):
|
||
|
|
||
|
def test_gto_other_calendar(self):
|
||
|
# Tests that a global time off in another calendar does not affect work entry generation
|
||
|
# for other calendars
|
||
|
other_calendar = self.env['resource.calendar'].create({
|
||
|
'name': 'other calendar',
|
||
|
})
|
||
|
start = datetime(2018, 1, 1, 0, 0, 0)
|
||
|
end = datetime(2018, 1, 1, 23, 59, 59)
|
||
|
leave = self.env['resource.calendar.leaves'].create({
|
||
|
'date_from': start,
|
||
|
'date_to': end,
|
||
|
'calendar_id': other_calendar.id,
|
||
|
'work_entry_type_id': self.work_entry_type_leave.id,
|
||
|
})
|
||
|
contract = self.richard_emp.contract_ids
|
||
|
contract.state = 'open'
|
||
|
contract.date_generated_from = start
|
||
|
contract.date_generated_to = start
|
||
|
work_entries = contract.generate_work_entries(start.date(), end.date())
|
||
|
self.assertEqual(work_entries.work_entry_type_id.id, contract._get_default_work_entry_type_id())
|
||
|
work_entries.unlink()
|
||
|
contract.date_generated_from = start
|
||
|
contract.date_generated_to = start
|
||
|
leave.calendar_id = contract.resource_calendar_id
|
||
|
work_entries = contract.generate_work_entries(start.date(), end.date())
|
||
|
self.assertEqual(work_entries.work_entry_type_id, leave.work_entry_type_id)
|
||
|
|
||
|
def test_gto_no_calendar(self):
|
||
|
start = datetime(2018, 1, 1, 0, 0, 0)
|
||
|
end = datetime(2018, 1, 1, 23, 59, 59)
|
||
|
leave = self.env['resource.calendar.leaves'].create({
|
||
|
'date_from': start,
|
||
|
'date_to': end,
|
||
|
'work_entry_type_id': self.work_entry_type_leave.id,
|
||
|
})
|
||
|
contract = self.richard_emp.contract_ids
|
||
|
contract.state = 'open'
|
||
|
contract.date_generated_from = start
|
||
|
contract.date_generated_to = start
|
||
|
work_entries = contract.generate_work_entries(start.date(), end.date())
|
||
|
self.assertEqual(work_entries.work_entry_type_id, leave.work_entry_type_id)
|