This commit is contained in:
Bakry 2024-07-21 14:11:56 +03:00
parent 154eed0b1d
commit ab964b31d7
8 changed files with 107 additions and 32 deletions

View File

@ -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' فقط او مدير الموارد البشرية !"

View File

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

View File

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

View File

@ -30,12 +30,12 @@
<button name="direct_manager" string="Direct Manager Approve" class="oe_highlight" type="object"
states="submit" groups="hr_base.group_division_manager"/>
<button name="refused" string="Refuse" class="oe_highlight" type="object"
<button name="direct_manager_refused" string="Refuse" class="oe_highlight" type="object"
states="submit" groups="hr_base.group_division_manager"/>
<button name="financial_manager" string="Department Manager" class="oe_highlight" type="object"
states="direct_manager" groups="hr_base.group_department_manager"/>
<button name="refused" string="Refuse" class="oe_highlight" type="object"
<button name="dep_manager_refused" string="Refuse" class="oe_highlight" type="object"
states="direct_manager" groups="hr_base.group_department_manager"/>
<button name="hr_aaproval" string="HR Approval" class="oe_highlight" type="object"

View File

@ -30,7 +30,7 @@
<button name="direct_manager" string="Direct Manager Approve" class="oe_highlight" type="object"
states="send" groups="hr_base.group_division_manager"/>
<button name="refused" string="Refuse" class="oe_highlight" type="object"
<button name="direct_manager_refused" string="Refuse" class="oe_highlight" type="object"
states="send" groups="hr_base.group_division_manager"/>
<button name="approve" string="HR Approve" class="oe_highlight" type="object"

View File

@ -875,7 +875,7 @@ msgstr "نوع الموظف"
#. module: hr_holidays_public
#: model:ir.model.fields,field_description:hr_holidays_public.field_hr_holidays__emp_number
msgid "Employee number"
msgstr ""
msgstr "رقم الموظف"
#. module: hr_holidays_public
#: model_terms:ir.ui.view,arch_db:hr_holidays_public.edit_holiday_status_form
@ -3589,3 +3589,9 @@ msgstr ""
#, python-format
msgid "Sorry, The Approval For The Direct Manager '%s' Only OR HR Manager!"
msgstr "للأسف، لموافقة المدير المباشر '%s' فقط او مدير الموارد البشرية !"
#. module: hr_holidays_public
#: code:addons/hr_holidays_public/models/hr_holidays.py:0
#, python-format
msgid "Sorry, The Refuse For The Direct Manager '%s' Only OR HR Manager!"
msgstr "للأسف، لرفض المدير المباشر '%s' فقط او مدير الموارد البشرية !"

View File

@ -983,8 +983,10 @@ class HRHolidays(models.Model):
_('Sorry This %s requires a Documents To Be Attached To Approve') % (self.holiday_status_id.name))
#The Approval For The Direct Manager only
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:
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._chick_leave_balance()
rec.write({'state': 'validate'})
else:
@ -1224,6 +1226,18 @@ class HRHolidays(models.Model):
self.check_allocation_balance_annual('addition')
item.write({'state': 'refuse'})
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.refuse()
else:
raise exceptions.Warning(_("Sorry, The Refuse For The Direct Manager '%s' Only OR HR Manager!") % (manager.name))
else:
rec.refuse()
@api.onchange('holiday_status_id')
def _get_holiday_related_date(self):
for item in self:

View File

@ -128,7 +128,7 @@
<button string="Direct Manager Approve" name="hr_manager" states="confirm" type="object"
groups="hr_base.group_division_manager" class="oe_highlight"/>
<button string="Refuse" name="refuse" states="confirm" type="object"
<button string="Refuse" name="direct_manager_refused" states="confirm" type="object"
groups="hr_base.group_division_manager" class="oe_highlight"/>
<button string="HR Manager Approve" name="financial_manager" type="object"