diff --git a/addons/hr_holidays/models/hr_leave.py b/addons/hr_holidays/models/hr_leave.py index 2916cb5eaeb..3adb808df6a 100644 --- a/addons/hr_holidays/models/hr_leave.py +++ b/addons/hr_holidays/models/hr_leave.py @@ -471,6 +471,11 @@ class HolidaysRequest(models.Model): def create(self, values): """ Override to avoid automatic logging of creation """ employee_id = values.get('employee_id', False) + leave_type_id = values.get('holiday_status_id') + leave_type = self.env['hr.leave.type'].browse(leave_type_id) + if leave_type.validation_type == 'no_validation': + values.update({'state': 'confirm'}) + if not values.get('department_id'): values.update({'department_id': self.env['hr.employee'].browse(employee_id).department_id.id}) holiday = super(HolidaysRequest, self.with_context(mail_create_nolog=True, mail_create_nosubscribe=True)).create(values) @@ -479,6 +484,10 @@ class HolidaysRequest(models.Model): holiday._onchange_employee_id() if 'number_of_days' not in values and ('date_from' in values or 'date_to' in values): holiday._onchange_leave_dates() + if leave_type.validation_type == 'no_validation': + holiday.sudo().action_validate() + holiday.message_subscribe(partner_ids=[holiday._get_responsible_for_approval().partner_id.id]) + holiday.sudo().message_post(body=_("The leave has been automatically approved"), subtype="mt_comment") # Message from OdooBot (sudo) holiday.activity_update() return holiday diff --git a/addons/hr_holidays/models/hr_leave_type.py b/addons/hr_holidays/models/hr_leave_type.py index 802039a388c..3f9572b2614 100644 --- a/addons/hr_holidays/models/hr_leave_type.py +++ b/addons/hr_holidays/models/hr_leave_type.py @@ -63,9 +63,10 @@ class HolidaysType(models.Model): compute='_compute_group_days_leave', string='Group Leaves') company_id = fields.Many2one('res.company', string='Company', default=lambda self: self.env.user.company_id) validation_type = fields.Selection([ - ('hr', 'Human Resource officer'), - ('manager', 'Employee Manager'), - ('both', 'Double Validation')], default='hr', string='Validation By') + ('no_validation', 'No Validation'), + ('hr', 'Payroll Officer'), + ('manager', 'Team Leader'), + ('both', 'Team Leader and Payroll Officer')], default='hr', string='Validation By') allocation_type = fields.Selection([ ('fixed', 'Fixed by HR'), ('fixed_allocation', 'Fixed by HR + allocation request'),