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