Merge pull request #5134 from expsa/JAZ-3842

[IMP] exp_official_mission: adjust approval process
This commit is contained in:
abdurrahman-saber 2025-11-01 12:31:21 +02:00 committed by GitHub
commit 873a7e580c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 18 additions and 7 deletions

View File

@ -30,9 +30,10 @@ 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')),
('hr_aaproval', _('Wait Approval')), ('accounting_manager_final', _('Waiting Accounting Manager')),
('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')
@ -550,6 +551,12 @@ class HrOfficialMission(models.Model):
self.state = "send" self.state = "send"
def direct_manager(self): def direct_manager(self):
if self.mission_type.related_with_financial:
self.state = 'accounting_manager'
else:
self.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()
@ -621,7 +628,10 @@ 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()
self.state = "hr_aaproval" if self.mission_type.related_with_financial:
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:

View File

@ -27,7 +27,8 @@
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="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"
@ -40,11 +41,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="HR Approve" class="oe_highlight" type="object" <button name="approve" string="Accounting Manager Final Approve" class="oe_highlight" type="object"
states="hr_aaproval" groups="hr.group_hr_user"/> states="accounting_manager_final" groups="hr_base.group_account_manager"/>
<button name="refused" string="Refused" class="oe_highlight" type="object" <button name="refused" string="Refused" class="oe_highlight" type="object"
states="hr_aaproval" states="accounting_manager_final"
groups="hr_base.group_general_manager,hr_base.group_executive_manager"/> groups="hr_base.group_general_manager,hr_base.group_executive_manager,hr_base.group_account_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"