From b8081bdfff24dfe59e983221fc04379a00dde31b Mon Sep 17 00:00:00 2001 From: Dang Van Loc Date: Fri, 18 Aug 2023 09:13:38 +0000 Subject: [PATCH] [IMP] hr_holidays: split function get employees closes odoo/odoo#132445 X-original-commit: 5ea9e895860ec2f97bd86a5090df9f96a5fdfbb5 Signed-off-by: Sofie Gvaladze (sgv) --- addons/hr_holidays/models/hr_leave.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/addons/hr_holidays/models/hr_leave.py b/addons/hr_holidays/models/hr_leave.py index da166f15ce7..31fbd7327d6 100644 --- a/addons/hr_holidays/models/hr_leave.py +++ b/addons/hr_holidays/models/hr_leave.py @@ -1195,6 +1195,18 @@ class HolidaysRequest(models.Model): def _get_leaves_on_public_holiday(self): return self.filtered(lambda l: l.employee_id and not l.number_of_days) + def _get_employees_from_holiday_type(self): + self.ensure_one() + if self.holiday_type == 'employee': + employees = self.employee_ids + elif self.holiday_type == 'category': + employees = self.category_id.employee_ids + elif self.holiday_type == 'company': + employees = self.env['hr.employee'].search([('company_id', '=', self.mode_company_id.id)]) + else: + employees = self.department_id.member_ids + return employees + def action_validate(self): current_employee = self.env.user.employee_id leaves = self._get_leaves_on_public_holiday() @@ -1217,14 +1229,7 @@ class HolidaysRequest(models.Model): if leave.holiday_type != 'employee' or\ (leave.holiday_type == 'employee' and len(leave.employee_ids) > 1): - if leave.holiday_type == 'employee': - employees = leave.employee_ids - elif leave.holiday_type == 'category': - employees = leave.category_id.employee_ids - elif leave.holiday_type == 'company': - employees = self.env['hr.employee'].search([('company_id', '=', leave.mode_company_id.id)]) - else: - employees = leave.department_id.member_ids + employees = leave._get_employees_from_holiday_type() conflicting_leaves = self.env['hr.leave'].with_context( tracking_disable=True,