diff --git a/addons/hr_holidays/models/hr_leave.py b/addons/hr_holidays/models/hr_leave.py index a0206269bce..32c757202a2 100644 --- a/addons/hr_holidays/models/hr_leave.py +++ b/addons/hr_holidays/models/hr_leave.py @@ -1046,7 +1046,7 @@ class HolidaysRequest(models.Model): def _validate_leave_request(self): """ Validate time off requests (holiday_type='employee') by creating a calendar event and a resource time off. """ - holidays = self.filtered(lambda request: request.holiday_type == 'employee') + holidays = self.filtered(lambda request: request.holiday_type == 'employee' and request.employee_id) holidays._create_resource_leave() meeting_holidays = holidays.filtered(lambda l: l.holiday_status_id.create_calendar_meeting) if meeting_holidays: diff --git a/addons/hr_holidays/tests/test_leave_requests.py b/addons/hr_holidays/tests/test_leave_requests.py index b8979791a4a..c0cabc9ccdc 100644 --- a/addons/hr_holidays/tests/test_leave_requests.py +++ b/addons/hr_holidays/tests/test_leave_requests.py @@ -531,3 +531,34 @@ class TestLeaveRequests(TestHrHolidaysCommon): 'date_to': '2021-09-08', 'number_of_days': 3, }) + + def test_company_leaves(self): + # First expired allocation + allocation = self.env['hr.leave.allocation'].create({ + 'name': 'Allocation', + 'holiday_type': 'company', + 'mode_company_id': self.env.company.id, + 'holiday_status_id': self.holidays_type_1.id, + 'number_of_days': 20, + 'state': 'confirm', + 'date_from': '2021-01-01', + }) + allocation.action_validate() + + req1_form = Form(self.env['hr.leave'].sudo()) + req1_form.employee_ids.add(self.employee_emp) + req1_form.employee_ids.add(self.employee_hrmanager) + req1_form.holiday_status_id = self.holidays_type_1 + req1_form.request_date_from = fields.Date.to_date('2021-12-06') + req1_form.request_date_to = fields.Date.to_date('2021-12-08') + + self.assertEqual(req1_form.number_of_days, 3) + req1_form.save().action_approve() + + req2_form = Form(self.env['hr.leave'].sudo()) + req2_form.employee_ids.add(self.employee_hruser) + req2_form.holiday_status_id = self.holidays_type_1 + req2_form.request_date_from = fields.Date.to_date('2021-12-06') + req2_form.request_date_to = fields.Date.to_date('2021-12-08') + + self.assertEqual(req2_form.number_of_days, 3)