diff --git a/odex25_hr/attendances/i18n/ar_001.po b/odex25_hr/attendances/i18n/ar_001.po index af2d1d2a4..84a6ada0d 100644 --- a/odex25_hr/attendances/i18n/ar_001.po +++ b/odex25_hr/attendances/i18n/ar_001.po @@ -2183,3 +2183,15 @@ msgstr "رقم الموظف" msgid "Branch" msgstr "الفروع" +#. module: attendances +#: code:addons/attendances/models/hr_attendance_register.py:0 +#, python-format +msgid "Sorry, The Approval For The Direct Manager '%s' Only OR HR Manager!" +msgstr "للأسف، لموافقة المدير المباشر '%s' فقط او مدير الموارد البشرية !" + +#. module: attendances +#: code:addons/attendances/models/hr_attendance_register.py:0 +#, python-format +msgid "Sorry, The Refuse For The Direct Manager '%s' Only OR HR Manager!" +msgstr "للأسف، لرفض المدير المباشر '%s' فقط او مدير الموارد البشرية !" + diff --git a/odex25_hr/attendances/models/hr_attendance_register.py b/odex25_hr/attendances/models/hr_attendance_register.py index d30d8dfe5..91a3cd56e 100644 --- a/odex25_hr/attendances/models/hr_attendance_register.py +++ b/odex25_hr/attendances/models/hr_attendance_register.py @@ -77,7 +77,29 @@ class HrAttendanceRegister(models.Model): self.state = "send" def direct_manager(self): - self.state = "direct_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': 'direct_manager'}) + else: + raise exceptions.Warning(_("Sorry, The Approval For The Direct Manager '%s' Only OR HR Manager!")%(rec.employee_id.parent_id.name)) + else: + rec.write({'state': 'direct_manager'}) + + #Refuse For The Direct Manager + def direct_manager_refused(self): + 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.refused() + else: + raise exceptions.Warning(_("Sorry, The Refuse For The Direct Manager '%s' Only OR HR Manager!") % (manager.name)) + else: + rec.refused() def hr_manager(self): extract_date = datetime.strptime(str(self.action_date), "%Y-%m-%d %H:%M:%S").date() diff --git a/odex25_hr/attendances/views/hr_attendance_register_view.xml b/odex25_hr/attendances/views/hr_attendance_register_view.xml index 833f19740..5b80be530 100644 --- a/odex25_hr/attendances/views/hr_attendance_register_view.xml +++ b/odex25_hr/attendances/views/hr_attendance_register_view.xml @@ -38,7 +38,7 @@