From 1d2923f138635174aa73d8493fb548ba2c74a698 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Tue, 31 Mar 2026 17:12:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yuthon_hr_employee/models/yuthon_medical_manage.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/yuthon_hr_employee/models/yuthon_medical_manage.py b/yuthon_hr_employee/models/yuthon_medical_manage.py index 269dbea9c..f6dd6904e 100644 --- a/yuthon_hr_employee/models/yuthon_medical_manage.py +++ b/yuthon_hr_employee/models/yuthon_medical_manage.py @@ -73,10 +73,18 @@ class YuthonMedicalManage(models.Model): ], order='start_date desc', limit=1) rule = valid_rules - # 基础额度计算(根据年龄递增规则) + id_card = employee.identification_id.strip() if employee.identification_id else '' + birth_str = id_card[6:14] + birth_date = datetime.strptime(birth_str, '%Y%m%d').date() + + # 计算周岁(今天 - 出生日期) + today = fields.Date.today() + age = 0 + if birth_date: + age = today.year - birth_date.year base_quota = rule.base_amount - if employee.old >= rule.starting_age and rule.increase_interval_years > 0 and rule.increment_amount > 0: - exceed_age_years = employee.old - rule.starting_age + if age >= rule.starting_age and rule.increase_interval_years > 0 and rule.increment_amount > 0: + exceed_age_years = age - rule.starting_age increment_times = exceed_age_years // rule.increase_interval_years base_quota += rule.increment_amount * increment_times