[REV] exp_official_mission: revert old code

This commit is contained in:
younes 2025-11-19 15:11:37 +01:00
parent 90ed3b025b
commit 7addc8a742
4 changed files with 24 additions and 49 deletions

View File

@ -30,10 +30,9 @@ class HrOfficialMission(models.Model):
mission_purpose = fields.Text() mission_purpose = fields.Text()
state = fields.Selection([('draft', _('Draft')), state = fields.Selection([('draft', _('Draft')),
('send', _('Waiting Direct Manager')), ('send', _('Waiting Direct Manager')),
('accounting_manager', _('Waiting Accounting Manager')),
('direct_manager', _('Waiting Department Manager')), ('direct_manager', _('Waiting Department Manager')),
('depart_manager', _('Wait HR Department')), ('depart_manager', _('Wait HR Department')),
('accounting_manager_final', _('Waiting Accounting Manager')), ('hr_aaproval', _('Wait Approval')),
('approve', _('Approved')), ('approve', _('Approved')),
('refused', _('Refused'))], default="draft", tracking=True) ('refused', _('Refused'))], default="draft", tracking=True)
duration_type = fields.Selection(default='days', related='mission_type.duration_type') duration_type = fields.Selection(default='days', related='mission_type.duration_type')
@ -551,26 +550,24 @@ class HrOfficialMission(models.Model):
self.state = "send" self.state = "send"
def direct_manager(self): 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.chick_employee_ids()
self.employee_ids.chick_not_overtime() self.employee_ids.chick_not_overtime()
self.employee_ids.compute_Training_cost_emp() self.employee_ids.compute_Training_cost_emp()
self.employee_ids.write({'status': 'approved'}) 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': if self.mission_type.approve_by == 'direct_manager':
return self.approve() self.approve()
return self._reset_to_action()
# Refuse For The Direct Manager Only # Refuse For The Direct Manager Only
def direct_manager_refused(self): def direct_manager_refused(self):
@ -624,10 +621,7 @@ class HrOfficialMission(models.Model):
self.employee_ids.chick_not_overtime() self.employee_ids.chick_not_overtime()
self.employee_ids.compute_Training_cost_emp() self.employee_ids.compute_Training_cost_emp()
if self.mission_type.related_with_financial: self.state = "hr_aaproval"
self.state = "accounting_manager_final"
else:
self.approve()
def get_ticket_cost(self, employee): def get_ticket_cost(self, employee):
for rec in self: for rec in self:
@ -764,12 +758,6 @@ class HrOfficialMission(models.Model):
def refused(self): def refused(self):
self.state = 'refused' self.state = 'refused'
self.reset_emp_work_state() 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): def reset_emp_work_state(self):
if self.mission_type.work_state and self.mission_type.duration_type == 'days': if self.mission_type.work_state and self.mission_type.duration_type == 'days':

View File

@ -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_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_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_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
1 id name model_id:id group_id/id perm_read perm_write perm_create perm_unlink
15 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
16 access_hr_mission_type_account_emp access_hr_mission_type_account model_hr_mission_type_account base.group_user 1 0 0 0
17 access_mission_table access_mission_table model_mission_table base.group_user 1 1 1 1
18
access_hr_official_mission_accounting_manager hr.official.mission.accounting.manager model_hr_official_mission hr_base.group_account_manager 1 1 0 0

View File

@ -18,19 +18,12 @@
<field name="name">Division manager: views missions of its subordinates</field> <field name="name">Division manager: views missions of its subordinates</field>
<field name="model_id" ref="model_hr_official_mission"/> <field name="model_id" ref="model_hr_official_mission"/>
<field name="domain_force">['|',('department_id2.manager_id.user_id','=',user.id), <field name="domain_force">['|',('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])]
</field> </field>
<field name="groups" <field name="groups"
eval="[(4, ref('hr_base.group_department_manager')),(4, ref('hr_base.group_division_manager')),]"/> eval="[(4, ref('hr_base.group_department_manager')),(4, ref('hr_base.group_division_manager')),]"/>
</record> </record>
<record id="hr_official_mission_accounting_manager_rule" model="ir.rule">
<field name="name">Accounting Manager: views missions that needs approval</field>
<field name="model_id" ref="model_hr_official_mission"/>
<field name="domain_force">['|',('state','in',['accounting_manager','accounting_manager_final', 'approve', 'refused']),('employee_ids.employee_id.user_id','in',user.ids)]</field>
<field name="groups" eval="[(4, ref('hr_base.group_account_manager'))]"/>
</record>
<record id="hr_official_mission_hr_rule" model="ir.rule"> <record id="hr_official_mission_hr_rule" model="ir.rule">
<field name="name">Allow HR : views missions of all employees</field> <field name="name">Allow HR : views missions of all employees</field>
<field name="model_id" ref="model_hr_official_mission"/> <field name="model_id" ref="model_hr_official_mission"/>
@ -74,7 +67,7 @@
<field name="name">Division manager: views missions of its subordinates</field> <field name="name">Division manager: views missions of its subordinates</field>
<field name="model_id" ref="model_hr_official_mission_employee"/> <field name="model_id" ref="model_hr_official_mission_employee"/>
<field name="domain_force">['|',('employee_id.department_id.manager_id.user_id','=',user.id), <field name="domain_force">['|',('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])]
</field> </field>
<field name="groups" eval="[(4, ref('hr_base.group_department_manager')),(4, ref('hr_base.group_division_manager')),]"/> <field name="groups" eval="[(4, ref('hr_base.group_department_manager')),(4, ref('hr_base.group_division_manager')),]"/>
</record> </record>
@ -83,7 +76,7 @@
<field name="name">Allow HR : views missions of all employees</field> <field name="name">Allow HR : views missions of all employees</field>
<field name="model_id" ref="model_hr_official_mission_employee"/> <field name="model_id" ref="model_hr_official_mission_employee"/>
<field name="domain_force">[(1 ,'=', 1)]</field> <field name="domain_force">[(1 ,'=', 1)]</field>
<field name="groups" eval="[(4, ref('hr_base.group_account_manager')), <field name="groups" eval="[(3, ref('hr_base.group_account_manager')),
(4, ref('hr_base.group_executive_manager')), (4, ref('hr_base.group_executive_manager')),
(4, ref('hr_base.group_general_manager')), (4, ref('hr_base.group_general_manager')),
(4, ref('hr.group_hr_manager')), (4, ref('hr.group_hr_manager')),

View File

@ -27,11 +27,7 @@
states="send" groups="hr_base.group_division_manager"/> states="send" groups="hr_base.group_division_manager"/>
<button name="direct_manager_refused" string="Refused" class="oe_highlight" type="object" <button name="direct_manager_refused" string="Refused" class="oe_highlight" type="object"
states="send" groups="hr_base.group_division_manager"/> states="send" groups="hr_base.group_division_manager"/>
<button name="accounting_manager" string="Accounting Manager Approve" class="oe_highlight" type="object"
states="accounting_manager" groups="hr_base.group_account_manager"/>
<button name="refused" string="Refused" class="oe_highlight" type="object"
states="accounting_manager"
groups="hr_base.group_account_manager"/>
<button name="depart_manager" string="Department Manager" class="oe_highlight" type="object" <button name="depart_manager" string="Department Manager" class="oe_highlight" type="object"
states="direct_manager" groups="hr_base.group_department_manager"/> states="direct_manager" groups="hr_base.group_department_manager"/>
<button name="dep_manager_refused" string="Refused" class="oe_highlight" type="object" <button name="dep_manager_refused" string="Refused" class="oe_highlight" type="object"
@ -44,11 +40,11 @@
states="depart_manager" states="depart_manager"
groups="hr_base.group_general_manager,hr_base.group_executive_manager"/> groups="hr_base.group_general_manager,hr_base.group_executive_manager"/>
<button name="approve" string="Accounting Manager Final Approve" class="oe_highlight" type="object" <button name="approve" string="HR Approve" class="oe_highlight" type="object"
states="accounting_manager_final" groups="hr_base.group_account_manager"/> states="hr_aaproval" groups="hr.group_hr_user"/>
<button name="refused" string="Refused" class="oe_highlight" type="object" <button name="refused" string="Refused" class="oe_highlight" type="object"
states="accounting_manager_final" states="hr_aaproval"
groups="hr_base.group_account_manager"/> groups="hr_base.group_general_manager,hr_base.group_executive_manager"/>
<button name="draft_state" string="RE-Draft" class="oe_highlight" type="object" <button name="draft_state" string="RE-Draft" class="oe_highlight" type="object"
states="approve,refused" groups="hr.group_hr_user" states="approve,refused" groups="hr.group_hr_user"