[FIX] hr_contract: unsual days of the correct company
When we create public holidays, we can create global ones that will apply to all 'Working Hours' of the company. When you create such a public holiday, it is displayed as a an unusual day for all employees of all companies that have a contract. The issue comes from the the fact that we use a sudo to get the contract of the employees and then we call '_get_unusual_day' on the Working Hours of the contract in sudo. So when we catch the global ones (wihtout Working Hours) it takes them from all companies as we are in sudo and it won't apply the record rule. closes odoo/odoo#144981 X-original-commit: 349762e28461f795d4e8bd3110556b5a80f92d49 Signed-off-by: Pierre Masereel (pim) <pim@odoo.com>
This commit is contained in:
@@ -134,7 +134,7 @@ class Employee(models.Model):
|
||||
for contract in employee_contracts:
|
||||
tmp_date_from = max(date_from_date, contract.date_start)
|
||||
tmp_date_to = min(date_to_date, contract.date_end) if contract.date_end else date_to_date
|
||||
unusual_days.update(contract.resource_calendar_id._get_unusual_days(
|
||||
unusual_days.update(contract.resource_calendar_id.sudo(False)._get_unusual_days(
|
||||
datetime.combine(fields.Date.from_string(tmp_date_from), time.min).replace(tzinfo=UTC),
|
||||
datetime.combine(fields.Date.from_string(tmp_date_to), time.max).replace(tzinfo=UTC)
|
||||
))
|
||||
|
||||
Reference in New Issue
Block a user