[IMP] hr_holidays: split function get employees

closes odoo/odoo#132445

X-original-commit: 5ea9e895860ec2f97bd86a5090df9f96a5fdfbb5
Signed-off-by: Sofie Gvaladze (sgv) <sgv@odoo.com>
This commit is contained in:
Dang Van Loc
2023-08-21 14:15:19 +02:00
parent a4b9050ec5
commit b8081bdfff
+13 -8
View File
@@ -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,