Merge pull request #4314 from expsa/dev_odex25_hr

Dev odex25 hr
This commit is contained in:
mazenmuhamad 2025-08-24 16:41:13 +03:00 committed by GitHub
commit be15cf9640
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 25 additions and 21 deletions

View File

@ -27,6 +27,24 @@ class HrEmployee(models.Model):
_inherit = "hr.employee"
_order = 'id'
@api.model
def _default_emp_code(self):
seq = self.env['ir.sequence'].next_by_code('hr.employee') or '/'
emp_seq = self.env['hr.employee'].search([('active', 'in', [False, True])])
# Get the maximum current employee number
max_number = 0
if emp_seq:
max_number = max(int(emp.emp_no) for emp in emp_seq if emp.emp_no and emp.emp_no.isdigit())
# Ensure the sequence matches the max number + 1
if int(seq) != (max_number + 1):
currnt_sequence = self.env['ir.sequence'].search([('code', '=', 'hr.employee')], limit=1)
currnt_sequence.write({'number_next_actual': max_number + 1})
seq = self.env['ir.sequence'].next_by_code('hr.employee') or '/'
return str(seq)
# iqama fields in employee view
identity_number = fields.Char(compute_sudo=True, compute='_compute_identity_number', string='Identity Number',store=True)
iqama_creat_date = fields.Date(related="iqama_number.issue_date", readonly=True,string="Iqama Issue Date")
@ -84,7 +102,11 @@ class HrEmployee(models.Model):
r_name = fields.Char("Name")
# fields of page work information in employees view
emp_no = fields.Char(string="Employee number", tracking=True, default=lambda self: self._default_emp_code())
emp_no = fields.Char(
string="Employee number",
tracking=True,
default=lambda self: self._default_emp_code()
)
english_name = fields.Char(string="English Name")
home_no = fields.Char()
present_address = fields.Char()
@ -249,26 +271,7 @@ class HrEmployee(models.Model):
help='New participants who have no prior periods of contribution under the GOSI.')
gosi_years = fields.Integer(string="GOSI Years", compute='_compute_gosi_years', store=True,
help='GOSI Years According To The New activation Date Until Today')
@api.model
def _default_emp_code(self):
seq = self.env['ir.sequence'].next_by_code('hr.employee') or '/'
emp_seq = self.env['hr.employee'].search([('active', 'in', [False, True])])
# Get the maximum current employee number
max_number = 0
if emp_seq:
max_number = max(int(emp.emp_no) for emp in emp_seq if emp.emp_no and emp.emp_no.isdigit())
# Ensure the sequence matches the max number + 1
if int(seq) != (max_number + 1):
currnt_sequence = self.env['ir.sequence'].search([('code', '=', 'hr.employee')], limit=1)
currnt_sequence.write({'number_next_actual': max_number + 1})
seq = self.env['ir.sequence'].next_by_code('hr.employee') or '/'
return str(seq)
@api.depends('new_gosi')
def _compute_gosi_years(self):
for emp in self:

View File

@ -162,6 +162,7 @@ class Employee(models.Model):
employee.leave_date_to = leave_data.get(employee.id, {}).get('leave_date_to')
employee.current_leave_state = leave_data.get(employee.id, {}).get('current_leave_state')
employee.current_leave_id = leave_data.get(employee.id, {}).get('current_leave_id')
employee.is_absent = leave_data.get(employee.id) and leave_data.get(employee.id, {}).get('current_leave_state') in ['validate']
def _compute_leaves_count(self):
leaves = self.env['hr.holidays'].read_group([