From 8d9eb01e48ad5e6ef88fef590a8d57bd1b5e9b7f Mon Sep 17 00:00:00 2001 From: Abdurrahman Saber Date: Sat, 1 Nov 2025 12:43:33 +0200 Subject: [PATCH] [IMP] exp_official_mission: adjust approval process --- .../models/hr_official_mission.py | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/odex25_hr/exp_official_mission/models/hr_official_mission.py b/odex25_hr/exp_official_mission/models/hr_official_mission.py index 3a717a8aa..817d00992 100644 --- a/odex25_hr/exp_official_mission/models/hr_official_mission.py +++ b/odex25_hr/exp_official_mission/models/hr_official_mission.py @@ -551,10 +551,16 @@ class HrOfficialMission(models.Model): self.state = "send" def direct_manager(self): - if self.mission_type.related_with_financial: - self.state = 'accounting_manager' - else: - self.accounting_manager() + for rec in self: + manager = rec.sudo().employee_id.parent_id + hr_manager = rec.sudo().employee_id.company_id.hr_manager_id + if manager and self.env.uid not in (manager.user_id.id, hr_manager.user_id.id): + raise exceptions.Warning(_("Sorry, The Approval For The Direct Manager '%s' Only OR HR Manager!") % (manager.name)) + + if rec.mission_type.related_with_financial: + rec.state = 'accounting_manager' + else: + rec.accounting_manager() def accounting_manager(self): # self.chick_employee_ids() @@ -562,17 +568,6 @@ class HrOfficialMission(models.Model): self.employee_ids.compute_Training_cost_emp() self.employee_ids.write({'status': 'approved'}) self.state = 'depart_manager' - for rec in self: - manager = rec.sudo().employee_id.parent_id - hr_manager = rec.sudo().employee_id.company_id.hr_manager_id - if manager: - if manager.user_id.id == rec.env.uid or hr_manager.user_id.id == rec.env.uid: - rec.write({'state': 'depart_manager'}) - else: - raise exceptions.Warning( - _("Sorry, The Approval For The Direct Manager '%s' Only OR HR Manager!") % (manager.name)) - else: - rec.write({'state': 'depart_manager'}) if self.mission_type.approve_by == 'direct_manager': self.approve()