From b0528aafb0413ea2e0ac75bb3746fb16dc3ad04d 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, 10 Mar 2026 16:36:28 +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_holiday/models/inherit_hr_leave.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/yuthon_holiday/models/inherit_hr_leave.py b/yuthon_holiday/models/inherit_hr_leave.py index e60e7294a..14e5274af 100644 --- a/yuthon_holiday/models/inherit_hr_leave.py +++ b/yuthon_holiday/models/inherit_hr_leave.py @@ -1117,7 +1117,15 @@ class HolidaysRequestBatch(models.Model): # 5. 扣减有效待提交额度(优先扣上年) for leave in valid_pending_leaves: - leave_days = leave.number_of_days_display or 0.0 + start_datetime = leave.date_from + end_datetime = leave.date_to + if not start_datetime or not end_datetime: + leave_days = 0.0 + else: + time_diff_seconds = (end_datetime - start_datetime).total_seconds() + time_diff_hours = time_diff_seconds / 3600.0 + leave_days = round(time_diff_hours / 8, 2) + leave_type_name = leave.holiday_status_id.name if leave_type_name not in leave_type_mapping or leave_days <= 0: continue