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 @@
-