commit
9b319a2341
|
|
@ -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' فقط او مدير الموارد البشرية !"
|
||||
|
|
|
|||
|
|
@ -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':
|
||||
|
|
|
|||
|
|
@ -129,7 +129,8 @@ class HrPersonalPermission(models.Model):
|
|||
number_of_per = item.employee_id.contract_id.working_hours.permission_number
|
||||
employee_permissions = self.search([
|
||||
('employee_id', '=', item.employee_id.id),
|
||||
('state', '=', 'approve'),
|
||||
('state', 'in', ('send','approve') ),
|
||||
#('state', '=', 'approve'),
|
||||
('date_from', '>=', date_from),
|
||||
('date_to', '<=', date_to)])
|
||||
|
||||
|
|
@ -166,7 +167,8 @@ class HrPersonalPermission(models.Model):
|
|||
# number_of_per = item.employee_id.contract_id.working_hours.permission_number
|
||||
# employee_permissions = self.search([
|
||||
# ('employee_id', '=', item.employee_id.id),
|
||||
# ('state', '=', 'approve'),
|
||||
# ('state', 'in', ('send','approve') ),
|
||||
# #('state', '=', 'approve'),
|
||||
# ('date_from', '>=', date_from),
|
||||
# ('date_to', '<=', date_to)])
|
||||
|
||||
|
|
@ -331,15 +333,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"
|
||||
|
|
@ -348,6 +351,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:
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
<field name="view_mode">tree,form,calendar</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_permission_calendar">
|
||||
<record model="ir.ui.view" id="view_permission_calendar">
|
||||
<field name="name">hr.personal.permission.calendar</field>
|
||||
<field name="model">hr.personal.permission</field>
|
||||
<field name="arch" type="xml">
|
||||
|
|
@ -25,21 +25,30 @@
|
|||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<header>
|
||||
<button name="send" string="Submit" class="oe_highlight" type="object" states="draft" groups="base.group_user"/>
|
||||
<button name="send" string="Submit" class="oe_highlight" type="object"
|
||||
states="draft" groups="base.group_user"/>
|
||||
|
||||
<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" states="send" groups="hr_base.group_division_manager"/>
|
||||
<button name="direct_manager" string="Direct Manager Approve" class="oe_highlight" type="object"
|
||||
states="send" groups="hr_base.group_division_manager"/>
|
||||
<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" states="direct_manager" groups="hr.group_hr_user"/>
|
||||
<button name="refused" string="Refuse" class="oe_highlight" type="object" states="direct_manager" groups="hr.group_hr_user"/>
|
||||
<button name="draft_state" string="RE-Draft" class="oe_highlight" type="object" states="approve" groups="hr.group_hr_user"/>
|
||||
<button name="draft_state" string="RE-Draft" class="oe_highlight" type="object" states="refused" groups="hr.group_hr_user" confirm="Are you sure to Reset To Draft This Record?"/>
|
||||
<button name="approve" string="HR Approve" class="oe_highlight" type="object"
|
||||
states="direct_manager" groups="hr.group_hr_user"/>
|
||||
<button name="refused" string="Refuse" class="oe_highlight" type="object"
|
||||
states="direct_manager" groups="hr.group_hr_user"/>
|
||||
<button name="draft_state" string="RE-Draft" class="oe_highlight" type="object"
|
||||
states="approve" groups="hr.group_hr_user"/>
|
||||
<button name="draft_state" string="RE-Draft" class="oe_highlight" type="object"
|
||||
states="refused" groups="hr.group_hr_user" confirm="Are you sure to Reset To Draft This Record?"/>
|
||||
<field name="state" widget="statusbar"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<group>
|
||||
<group string="Permission Info">
|
||||
<field name="date" string="Date Request" attrs="{'readonly':[('state','!=','draft')],'required':1}"/>
|
||||
<field name="date" string="Date Request"
|
||||
attrs="{'readonly':[('state','!=','draft')],'required':1}"/>
|
||||
|
||||
<!-- <label for='time_permission_from' string="Time"/>
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
|
|
@ -51,28 +60,36 @@
|
|||
<field name="time_permission_to" widget="float_time" attrs="{'readonly':[('state' , '!=' , 'draft')],'required':1}"/>
|
||||
</div>
|
||||
</div> -->
|
||||
<field name="date_from" string="Date From" attrs="{'readonly':[('state' , '!=' , 'draft')],'required':1}"/>
|
||||
<field name="date_to" string="Date To" attrs="{'readonly':[('state' , '!=' , 'draft')],'required':1}"/>
|
||||
|
||||
<field name="date_from" string="Date From"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')],'required':1}"/>
|
||||
<field name="date_to" string="Date To"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')],'required':1}"/>
|
||||
<field name="duration" string="Duration" attrs="{'readonly':1}" widget="float_time"/>
|
||||
<field name="balance" string="Permission Limit" readonly="1" widget="float_time"/>
|
||||
<field name="permission_number" force_save="True" string="Permission Per Month" widget="float_time"/>
|
||||
<field name="type_exit" string="Type Exit" attrs="{'readonly':[('state','!=','draft')]}"/>
|
||||
<field name="type_exit" string="Type Exit"
|
||||
attrs="{'readonly':[('state','!=','draft')]}"/>
|
||||
</group>
|
||||
<group string="Employee Info">
|
||||
<field name="company_id" groups="base.group_multi_company" readonly="1"/>
|
||||
<field name="from_hr_department" string="Another Employee" attrs="{'readonly':[('state','!=','draft')]}"/>
|
||||
<field name="employee_id" string="Employee" attrs="{'readonly': ['|',('from_hr_department','=',False),('state','!=','draft')],'required':True}"/>
|
||||
<field name="company_id" groups="base.group_multi_company" readonly="1"/>
|
||||
<field name="from_hr_department" string="Another Employee"
|
||||
attrs="{'readonly':[('state','!=','draft')]}"/>
|
||||
<field name="employee_id" string="Employee"
|
||||
attrs="{'readonly': ['|',('from_hr_department','=',False),('state','!=','draft')],'required':True}"/>
|
||||
<field name="employee_no" string="Employee No" readonly="1"/>
|
||||
<field name="job_id" string="Job Title" readonly="1"/>
|
||||
<field name="department_id" string="Department" readonly="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="mission_purpose" string="Reasons" attrs="{'readonly':[('state','!=','draft')]}"/>
|
||||
<field name="mission_purpose" string="Reasons"
|
||||
attrs="{'readonly':[('state','!=','draft')]}"/>
|
||||
</group>
|
||||
<!--notebook>
|
||||
<page string="Attachments" name="attachments">
|
||||
<field name="attach_ids" string="Attachments" attrs="{'readonly':[('state','!=','draft')]}">
|
||||
<field name="attach_ids" string="Attachments"
|
||||
attrs="{'readonly':[('state','!=','draft')]}">
|
||||
<tree editable="bottom">
|
||||
<field name="name" string="attachment Name"/>
|
||||
<field name="datas" string="file content"/>
|
||||
|
|
@ -80,12 +97,15 @@
|
|||
</field>
|
||||
</page>
|
||||
<page string="Refusal Causes" name="refusal_causes">
|
||||
<field name="refuse_cause" placeholder="Refuse Cause .........." attrs="{'readonly':[('state','!=','draft')]}"/>
|
||||
<field name="refuse_cause" placeholder="Refuse Cause .........."
|
||||
attrs="{'readonly':[('state','!=','draft')]}"/>
|
||||
</page>
|
||||
<page string="Information" name="information">
|
||||
<group>
|
||||
<field name="approved_by" string="Approved By" attrs="{'readonly':[('state','!=','draft')]}"/>
|
||||
<field name="refused_by" string="Refused By" attrs="{'readonly':[('state','!=','draft')]}"/>
|
||||
<field name="approved_by" string="Approved By"
|
||||
attrs="{'readonly':[('state','!=','draft')]}"/>
|
||||
<field name="refused_by" string="Refused By"
|
||||
attrs="{'readonly':[('state','!=','draft')]}"/>
|
||||
</group>
|
||||
</page>
|
||||
</notebook-->
|
||||
|
|
@ -109,7 +129,7 @@
|
|||
<!--field name="employee_no" string="Employee No"/-->
|
||||
<field name="date_from" string="Date From"/>
|
||||
<field name="date_to" string="Date To"/>
|
||||
<field name="duration" string="Duration"/>
|
||||
<field name="duration" string="Duration" widget="float_time"/>
|
||||
<field name="state" string="Status"/>
|
||||
</tree>
|
||||
</field>
|
||||
|
|
|
|||
|
|
@ -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' فقط او مدير الموارد البشرية !"
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
Loading…
Reference in New Issue