diff --git a/odex25_hr/exp_official_mission/models/hr_official_mission.py b/odex25_hr/exp_official_mission/models/hr_official_mission.py
index bf0ba3e6e..5c982fa9b 100644
--- a/odex25_hr/exp_official_mission/models/hr_official_mission.py
+++ b/odex25_hr/exp_official_mission/models/hr_official_mission.py
@@ -30,10 +30,9 @@ class HrOfficialMission(models.Model):
mission_purpose = fields.Text()
state = fields.Selection([('draft', _('Draft')),
('send', _('Waiting Direct Manager')),
- ('accounting_manager', _('Waiting Accounting Manager')),
('direct_manager', _('Waiting Department Manager')),
('depart_manager', _('Wait HR Department')),
- ('accounting_manager_final', _('Waiting Accounting Manager')),
+ ('hr_aaproval', _('Wait Approval')),
('approve', _('Approved')),
('refused', _('Refused'))], default="draft", tracking=True)
duration_type = fields.Selection(default='days', related='mission_type.duration_type')
@@ -550,26 +549,24 @@ class HrOfficialMission(models.Model):
self.state = "send"
def direct_manager(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 and self.env.uid not in (manager.user_id.id, hr_manager.user_id.id):
- raise exceptions.Warning(_("Sorry, The Approval For The Direct Manager '%s' Only OR HR Manager!") % (manager.name))
-
- if rec.mission_type.related_with_financial:
- rec.state = 'accounting_manager'
- else:
- rec.accounting_manager()
-
- def accounting_manager(self):
# self.chick_employee_ids()
self.employee_ids.chick_not_overtime()
self.employee_ids.compute_Training_cost_emp()
self.employee_ids.write({'status': 'approved'})
- self.state = 'direct_manager'
+ self.state = 'depart_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': 'depart_manager'})
+ else:
+ raise exceptions.Warning(
+ _("Sorry, The Approval For The Direct Manager '%s' Only OR HR Manager!") % (manager.name))
+ else:
+ rec.write({'state': 'depart_manager'})
if self.mission_type.approve_by == 'direct_manager':
- return self.approve()
- return self._reset_to_action()
+ self.approve()
# Refuse For The Direct Manager Only
def direct_manager_refused(self):
@@ -623,10 +620,7 @@ class HrOfficialMission(models.Model):
self.employee_ids.chick_not_overtime()
self.employee_ids.compute_Training_cost_emp()
- if self.mission_type.related_with_financial:
- self.state = "accounting_manager_final"
- else:
- self.approve()
+ self.state = "hr_aaproval"
def get_ticket_cost(self, employee):
for rec in self:
@@ -763,12 +757,6 @@ class HrOfficialMission(models.Model):
def refused(self):
self.state = 'refused'
self.reset_emp_work_state()
-
- def _reset_to_action(self):
- if self.env.context.get('default_process_type') == 'mission':
- return self.env.ref('exp_official_mission.employee_official_mission_action').sudo().read()[0]
- else:
- return self.env.ref('exp_official_mission.employee_training_action').sudo().read()[0]
def reset_emp_work_state(self):
if self.mission_type.work_state and self.mission_type.duration_type == 'days':
diff --git a/odex25_hr/exp_official_mission/security/ir.model.access.csv b/odex25_hr/exp_official_mission/security/ir.model.access.csv
index 3310bce9e..55bdbbede 100644
--- a/odex25_hr/exp_official_mission/security/ir.model.access.csv
+++ b/odex25_hr/exp_official_mission/security/ir.model.access.csv
@@ -15,6 +15,4 @@ access_training_appraisal_wizard,training_appraisal_wizard,model_training_apprai
access_hr_mission_type_account_hr_user,access_hr_mission_type_account,model_hr_mission_type_account,hr.group_hr_user,1,1,1,1
access_hr_mission_type_account_emp,access_hr_mission_type_account,model_hr_mission_type_account,base.group_user,1,0,0,0
-access_mission_table,access_mission_table,model_mission_table,base.group_user,1,1,1,1
-access_hr_employee_accounting_manager,hr.employee.accounting.manager,hr.model_hr_employee,hr_base.group_account_manager,1,1,0,0
-access_hr_official_mission_accounting_manager,hr.official.mission.accounting.manager,model_hr_official_mission,hr_base.group_account_manager,1,1,0,0
\ No newline at end of file
+access_mission_table,access_mission_table,model_mission_table,base.group_user,1,1,1,1
\ No newline at end of file
diff --git a/odex25_hr/exp_official_mission/security/official_mission_security.xml b/odex25_hr/exp_official_mission/security/official_mission_security.xml
index fceabbcd6..820ecc413 100644
--- a/odex25_hr/exp_official_mission/security/official_mission_security.xml
+++ b/odex25_hr/exp_official_mission/security/official_mission_security.xml
@@ -18,19 +18,12 @@
Division manager: views missions of its subordinates
['|',('department_id2.manager_id.user_id','=',user.id),
- ('department_id2.parent_id.manager_id','child_of', user.employee_id.ids)]
+ ('department_id2.parent_id.manager_id.user_id','child_of', [user.id])]
-
- Accounting Manager: views missions that needs approval
-
- ['|',('state','in',['accounting_manager','accounting_manager_final', 'approve', 'refused']),('employee_ids.employee_id.user_id','in',user.ids)]
-
-
-
Allow HR : views missions of all employees
@@ -74,7 +67,7 @@
Division manager: views missions of its subordinates
['|',('employee_id.department_id.manager_id.user_id','=',user.id),
- ('employee_id.department_id.parent_id.manager_id','child_of', user.employee_id.ids)]
+ ('employee_id.department_id.parent_id.manager_id.user_id','child_of', [user.id])]
@@ -83,7 +76,7 @@
Allow HR : views missions of all employees
[(1 ,'=', 1)]
-
-
-
+
-
+
+ states="hr_aaproval"
+ groups="hr_base.group_general_manager,hr_base.group_executive_manager"/>