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