diff --git a/odex25_hr/employee_requests/i18n/ar_001.po b/odex25_hr/employee_requests/i18n/ar_001.po index 23def5db0..1288f69da 100644 --- a/odex25_hr/employee_requests/i18n/ar_001.po +++ b/odex25_hr/employee_requests/i18n/ar_001.po @@ -3807,3 +3807,16 @@ msgstr "للأسف، لموافقة المدير المباشر '%s' فقط او #, python-format msgid "Sorry, The Approval For The Department Manager '%s' Only OR HR Manager!" msgstr "للأسف، لموافقة مدير الإدارة '%s' فقط او مدير الموارد البشرية !" + +#. module: hr_holidays_public +#: code:addons/employee_requests/models/employee_overtime_request.py:0 +#: code:addons/employee_requests/models/hr_personal_permission.py:0 +#, python-format +msgid "Sorry, The Refuse For The Direct Manager '%s' Only OR HR Manager!" +msgstr "للأسف، لرفض المدير المباشر '%s' فقط او مدير الموارد البشرية !" + +#. module: hr_holidays_public +#: code:addons/employee_requests/models/employee_overtime_request.py:0 +#, python-format +msgid "Sorry, The Refuse For The Department Manager '%s' Only !" +msgstr "للأسف، لرفض مدير الإدارة '%s' فقط او مدير الموارد البشرية !" diff --git a/odex25_hr/employee_requests/models/employee_overtime_request.py b/odex25_hr/employee_requests/models/employee_overtime_request.py index 83a141ecf..40696e705 100644 --- a/odex25_hr/employee_requests/models/employee_overtime_request.py +++ b/odex25_hr/employee_requests/models/employee_overtime_request.py @@ -146,28 +146,30 @@ class employee_overtime_request(models.Model): self.state = "submit" def direct_manager(self): - self.chick_not_mission() - #self.state = "direct_manager" for rec in self: - if rec.employee_id.parent_id: - if rec.employee_id.parent_id.user_id.id == rec.env.uid or rec.env.company.hr_manager_id.user_id.id == rec.env.uid: - rec.write({'state': 'direct_manager'}) - else: + rec.chick_not_mission() + manager = rec.sudo().employee_id.parent_id + hr_manager = rec.sudo().employee_id.user_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'}) + else: + rec.write({'state': 'direct_manager'}) def financial_manager(self): - self.chick_not_mission() - #self.state = "financial_manager" for rec in self: - if rec.employee_id.coach_id: - if rec.employee_id.coach_id.user_id.id == rec.env.uid or rec.env.company.hr_manager_id.user_id.id == rec.env.uid: - rec.write({'state': 'financial_manager'}) - else: - raise exceptions.Warning(_("Sorry, The Approval For The Department Manager '%s' Only OR HR Manager!")%(rec.employee_id.coach_id.name)) - else: - rec.write({'state': 'financial_manager'}) + rec.chick_not_mission() + manager = rec.sudo().employee_id.coach_id + hr_manager = rec.sudo().employee_id.user_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': 'financial_manager'}) + else: + raise exceptions.Warning(_("Sorry, The Approval For The Department Manager '%s' Only OR HR Manager!")%(rec.employee_id.coach_id.name)) + else: + rec.write({'state': 'financial_manager'}) def hr_aaproval(self): self.chick_not_mission() @@ -236,6 +238,32 @@ class employee_overtime_request(models.Model): def refused(self): self.state = "refused" + #Refuse For The Direct Manager Only + def direct_manager_refused(self): + for rec in self: + manager = rec.sudo().employee_id.parent_id + hr_manager = rec.sudo().employee_id.user_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() + + #Refuse For The Department Manager Only + def dep_manager_refused(self): + for rec in self: + manager = rec.sudo().employee_id.coach_id + hr_manager = rec.sudo().employee_id.user_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 Department Manager '%s' Only !")%(rec.employee_id.coach_id.name)) + else: + rec.refused() + def unlink(self): for i in self: if i.state != 'draft': diff --git a/odex25_hr/employee_requests/models/hr_personal_permission.py b/odex25_hr/employee_requests/models/hr_personal_permission.py index b30e36e96..8809ea5b1 100644 --- a/odex25_hr/employee_requests/models/hr_personal_permission.py +++ b/odex25_hr/employee_requests/models/hr_personal_permission.py @@ -292,15 +292,16 @@ class HrPersonalPermission(models.Model): self.state = "send" def direct_manager(self): - #self.state = "direct_manager" for rec in self: - if rec.employee_id.parent_id: - if rec.employee_id.parent_id.user_id.id == rec.env.uid or rec.env.company.hr_manager_id.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'}) + manager = rec.sudo().employee_id.parent_id + hr_manager = rec.sudo().employee_id.user_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'}) def approve(self): self.state = "approve" @@ -309,6 +310,19 @@ class HrPersonalPermission(models.Model): def refused(self): self.state = "refused" + #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.user_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 get_user_id(self): employee_id = self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1) if employee_id: diff --git a/odex25_hr/employee_requests/views/employee_overtime_request.xml b/odex25_hr/employee_requests/views/employee_overtime_request.xml index d97f6cba0..2d64cfef4 100644 --- a/odex25_hr/employee_requests/views/employee_overtime_request.xml +++ b/odex25_hr/employee_requests/views/employee_overtime_request.xml @@ -30,12 +30,12 @@