diff --git a/odex25_hr/hr_base/models/hr_base.py b/odex25_hr/hr_base/models/hr_base.py index 5eda6bd10..e9db2f121 100644 --- a/odex25_hr/hr_base/models/hr_base.py +++ b/odex25_hr/hr_base/models/hr_base.py @@ -258,12 +258,24 @@ class HrEmployee(models.Model): def _compute_gosi_years(self): for emp in self: years = 0 - date_activation = datetime.strptime(str(emp.sudo().company_id.gosi_active_date), '%Y-%m-%d') - if emp.new_gosi==True: - if date_activation: - today = date.today() - years = today.year - date_activation.year - ((today.month, today.day) < (date_activation.month, date_activation.day)) - emp.sudo().gosi_years = years + gosi_date = emp.sudo().company_id.gosi_active_date + + if emp.new_gosi and gosi_date: + try: + # gosi_active_date أصلاً Date field في Odoo، مش محتاج strptime + if isinstance(gosi_date, str): + date_activation = datetime.strptime(gosi_date, '%Y-%m-%d').date() + else: + date_activation = gosi_date # لو هو date object + + today = date.today() + years = today.year - date_activation.year - ( + (today.month, today.day) < (date_activation.month, date_activation.day) + ) + except Exception: + years = 0 + + emp.gosi_years = years @api.constrains('gosi_date','new_gosi') def _check_gosi_date(self):