From 2da6b1ff8e3435e7f0f3a73680ea48d788c30ebf Mon Sep 17 00:00:00 2001 From: Mazen Abdo Date: Sun, 24 Aug 2025 13:57:25 +0300 Subject: [PATCH] fix --- odex25_hr/hr_base/models/hr_base.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/odex25_hr/hr_base/models/hr_base.py b/odex25_hr/hr_base/models/hr_base.py index 955d76eff..55d4cf50b 100644 --- a/odex25_hr/hr_base/models/hr_base.py +++ b/odex25_hr/hr_base/models/hr_base.py @@ -252,17 +252,22 @@ class HrEmployee(models.Model): @api.model def _default_emp_code(self): - seq = self.env['ir.sequence'].next_by_code('hr.employee') or '/' + seq = self.env['ir.sequence'].next_by_code('hr.employee') or '1' + emp_seq = self.env['hr.employee'].search([('active', 'in', [False, True])]) numbers = [int(emp.emp_no) for emp in emp_seq if emp.emp_no and emp.emp_no.isdigit()] + max_number = max(numbers) if numbers else 0 - # 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 '/' + if seq.isdigit(): + if int(seq) != (max_number + 1): + currnt_sequence = self.env['ir.sequence'].search([('code', '=', 'hr.employee')], limit=1) + if currnt_sequence: + currnt_sequence.write({'number_next_actual': max_number + 1}) + seq = str(max_number + 1) + else: + seq = str(max_number + 1) return str(seq)