From 0dc57cde3e8e384bc7b57b7b74bc5c12e277598a 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: Sat, 9 May 2026 18:56:53 +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 --- .../models/yuthon_vacation_reports.py | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/yuthon_hr_attendance/models/yuthon_vacation_reports.py b/yuthon_hr_attendance/models/yuthon_vacation_reports.py index 4a85f00f8..63e7ae8a3 100644 --- a/yuthon_hr_attendance/models/yuthon_vacation_reports.py +++ b/yuthon_hr_attendance/models/yuthon_vacation_reports.py @@ -824,13 +824,23 @@ class YuthonVacationReports(models.Model): is_late = is_early = is_no = is_work = is_abnormal = 0 probation_days = regular_days = expatriation_days = 0 actual_attendance = leave_total_days = 0 - is_retired = rec.employee_id.user_state in ('leave', 'withdraw') + is_retired = False + employee = rec.employee_id + vacation_date = rec.vacation_date # 每月1号 + if employee and vacation_date: + if employee.user_state in ('leave', 'withdraw'): + contract = employee.contract_id + leave_date = False + # 优先取合同中止日期 + if contract and contract.end_date: + leave_date = contract.end_date + if leave_date and leave_date >= vacation_date: + is_retired = False + else: + is_retired = True - # 核心:外出天数统计(按workflow_id去重) - go_out_days = 0.0 # 外出总天数 - processed_workflow_ids = set() # 已处理的workflow_id(去重) - - # 外派相关变量 + go_out_days = 0.0 + processed_workflow_ids = set() is_outside = exp_has_return = False exp_start_date = exp_end_return = exp_end_date = None