mirror of
https://github.com/bringout/oca-ocb-hr.git
synced 2026-04-24 02:32:05 +02:00
19.0 vanilla
This commit is contained in:
parent
a1137a1456
commit
e1d89e11e3
2789 changed files with 1093187 additions and 605897 deletions
106
odoo-bringout-oca-ocb-hr/hr/tests/test_calendar_sync.py
Normal file
106
odoo-bringout-oca-ocb-hr/hr/tests/test_calendar_sync.py
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
from odoo.fields import Datetime, Date
|
||||
from odoo.addons.hr.tests.common import TestHrCommon
|
||||
from odoo.tests import Form
|
||||
|
||||
|
||||
class TestContractCalendars(TestHrCommon):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super().setUpClass()
|
||||
cls.calendar_richard = cls.env['resource.calendar'].create({'name': 'Calendar of Richard'})
|
||||
cls.employee.resource_calendar_id = cls.calendar_richard
|
||||
# force old date to test new version to be created.
|
||||
cls.employee.version_id.date_version = Date.to_date('2015-01-01')
|
||||
|
||||
cls.calendar_35h = cls.env['resource.calendar'].create({'name': '35h calendar'})
|
||||
|
||||
cls.contract_cdd_values = {
|
||||
'date_version': Date.to_date('2016-01-01'),
|
||||
'date_start': Date.to_date('2016-01-01'),
|
||||
'name': 'First CDD Contract for Richard',
|
||||
'resource_calendar_id': cls.calendar_35h.id,
|
||||
'wage': 5000.0,
|
||||
}
|
||||
|
||||
cls.contract_fully_flexible_values = {
|
||||
'date_version': Date.to_date('2017-01-01'),
|
||||
'date_start': Date.to_date('2017-01-01'),
|
||||
'name': 'Fully Flexible Contract for Richard',
|
||||
'resource_calendar_id': False,
|
||||
'wage': 5000.0,
|
||||
}
|
||||
|
||||
def test_contract_state_incoming_to_open(self):
|
||||
# Employee's calendar should change
|
||||
self.assertEqual(self.employee.resource_calendar_id, self.calendar_richard)
|
||||
cdd = self.employee.create_version(self.contract_cdd_values)
|
||||
self.assertEqual(self.employee.version_id.id, cdd.id, "The version of the employee should be updated to the last version.")
|
||||
self.assertEqual(self.employee.resource_calendar_id, cdd.resource_calendar_id, "The employee should have the calendar of its contract.")
|
||||
|
||||
def test_set_fully_flexible_contract_should_change_resource_calendar(self):
|
||||
# Setting a running contract with fully flexible calendar should set the employee's calendar to False (fully flexible)
|
||||
self.assertEqual(self.employee.resource_calendar_id, self.calendar_richard)
|
||||
flexijob = self.employee.create_version(self.contract_fully_flexible_values)
|
||||
self.assertEqual(self.employee.version_id.id, flexijob.id, "The version of the employee should be updated to the last version.")
|
||||
self.assertFalse(self.employee.resource_calendar_id, "The employee should have a fully flexible calendar.")
|
||||
|
||||
def test_contract_transfer_leaves(self):
|
||||
|
||||
def create_calendar_leave(start, end, resource=None):
|
||||
return self.env['resource.calendar.leaves'].create({
|
||||
'name': 'leave name',
|
||||
'date_from': start,
|
||||
'date_to': end,
|
||||
'resource_id': resource.id if resource else None,
|
||||
'calendar_id': self.employee.resource_calendar_id.id,
|
||||
'time_type': 'leave',
|
||||
})
|
||||
|
||||
start = Datetime.to_datetime('2015-11-17 07:00:00')
|
||||
end = Datetime.to_datetime('2015-11-20 18:00:00')
|
||||
leave1 = create_calendar_leave(start, end, resource=self.employee.resource_id)
|
||||
|
||||
start = Datetime.to_datetime('2015-11-25 07:00:00')
|
||||
end = Datetime.to_datetime('2015-11-28 18:00:00')
|
||||
leave2 = create_calendar_leave(start, end, resource=self.employee.resource_id)
|
||||
|
||||
# global leave
|
||||
start = Datetime.to_datetime('2015-11-25 07:00:00')
|
||||
end = Datetime.to_datetime('2015-11-28 18:00:00')
|
||||
leave3 = create_calendar_leave(start, end)
|
||||
|
||||
self.calendar_richard.transfer_leaves_to(self.calendar_35h, resources=self.employee.resource_id, from_date=Date.to_date('2015-11-21'))
|
||||
|
||||
self.assertEqual(leave1.calendar_id, self.calendar_richard, "It should stay in Richard's calendar")
|
||||
self.assertEqual(leave3.calendar_id, self.calendar_richard, "Global leave should stay in original calendar")
|
||||
self.assertEqual(leave2.calendar_id, self.calendar_35h, "It should be transferred to the other calendar")
|
||||
|
||||
# Transfer global leaves
|
||||
self.calendar_richard.transfer_leaves_to(self.calendar_35h, resources=None, from_date=Date.to_date('2015-11-21'))
|
||||
|
||||
self.assertEqual(leave3.calendar_id, self.calendar_35h, "Global leave should be transfered")
|
||||
|
||||
def test_calendar_no_desync(self):
|
||||
""" resource_calendar_id cannot be desync between employee and version last version """
|
||||
self.employee.create_version(self.contract_cdd_values)
|
||||
self.assertEqual(self.employee.resource_calendar_id, self.calendar_35h)
|
||||
self.assertEqual(self.employee.version_id.resource_calendar_id, self.calendar_35h)
|
||||
self.assertEqual(self.employee.version_ids[0].resource_calendar_id, self.calendar_richard)
|
||||
calendar_38h = self.env['resource.calendar'].create({'name': '38h calendar'})
|
||||
self.employee.resource_calendar_id = calendar_38h
|
||||
self.assertEqual(self.employee.version_id.resource_calendar_id, calendar_38h)
|
||||
self.assertEqual(self.employee.version_ids[0].resource_calendar_id, self.calendar_richard)
|
||||
|
||||
def test_employee_resource_contract_without_and_with_date_from(self):
|
||||
"""
|
||||
Test setting the resource with an employee contract on resource leave without and with start date.
|
||||
"""
|
||||
leave_form = Form(self.env['resource.calendar.leaves'])
|
||||
leave_form.date_from = False
|
||||
|
||||
leave_form.resource_id = self.employee.resource_id
|
||||
self.assertFalse(leave_form.calendar_id)
|
||||
|
||||
leave_form.date_from = Datetime.to_datetime('2018-01-01 07:00:00')
|
||||
self.assertEqual(leave_form.calendar_id, self.employee.version_id.resource_calendar_id)
|
||||
Loading…
Add table
Add a link
Reference in a new issue