Merge pull request #4262 from expsa/younes_dev_odex25_hr

IMP reasons lateness
This commit is contained in:
kchyounes19 2025-08-19 16:01:28 +01:00 committed by GitHub
commit ac09f7449d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 32 additions and 8 deletions

View File

@ -17,12 +17,12 @@ class HrReasonsLateness(models.Model):
job_id = fields.Many2one(related="employee_id.job_id", readonly=True)
employee_id = fields.Many2one('hr.employee', 'Employee Id', default=lambda item: item.get_user_id())
state = fields.Selection([('draft', _('Draft')),
('send', _('Send')),
('direct_manager', _('Direct Manager')),
('hr_manager', _('HR Manager')),
('refused', _('Refused'))], default="draft")
('send', _('Waiting Direct Manager')),
('direct_manager', _('Waiting HR')),
('hr_manager', _('Approved')),
('refused', _('Refused'))], default="draft", tracking=True)
company_id = fields.Many2one(related='employee_id.company_id')
employee_no = fields.Char(related='employee_id.emp_no', string='Employee Number',store=True)
employee_no = fields.Char(related='employee_id.emp_no', string='Employee Number', store=True)
is_branch = fields.Many2one(related='department_id.branch_name', store=True, readonly=True)
def unlink(self):
@ -59,7 +59,15 @@ class HrReasonsLateness(models.Model):
transaction.process_attendance_scheduler_queue(day, self.employee_id)
def direct_manager(self):
self.state = "direct_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.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))
def set_to_draft(self):
self.state = "draft"
@ -67,3 +75,16 @@ class HrReasonsLateness(models.Model):
def refused(self):
self.state = "refused"
def action_open_related_attendance_transaction(self):
hr_attendance_transaction = self.env['hr.attendance.transaction'].search(
[('employee_id', '=', self.employee_id.id), ('date', '=', self.latest_date)]).ids
action = {
'type': 'ir.actions.act_window',
'name': _('Attendance Transaction'),
'res_model': 'hr.attendance.transaction',
'view_mode': 'form',
'domain': [('id', 'in', hr_attendance_transaction)],
'target': 'current',
}
return action

View File

@ -13,7 +13,7 @@
<field name="model">hr.reasons.lateness</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<group>
<tree>
<field name="employee_no" string="Employee Number"/>
<field name="employee_id" string="Employee"/>
<field name="department_id" string="Department"/>
@ -22,7 +22,7 @@
<field name="latest_date" string="lateness Date"/>
<field name="reasons" string="Reasons"/>
<field name="state" string="State"/>
</group>
</tree>
</field>
</record>
@ -52,6 +52,9 @@
statusbar_visible="draft,send,direct_manager,hr_manager,refused"/>
</header>
<sheet>
<div class="oe_button_box" name="button_box">
<button icon="fa-list" string="Attendance Transaction" name="action_open_related_attendance_transaction" type="object"/>
</div>
<group>
<group>
<field name="request_date" string="Request Date" readonly="1" />