From 0cf3fccb6b022dd7497e4ff05130b1dca6c63d9f 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: Wed, 4 Mar 2026 11:36:50 +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_attendance/models/card_approval.py | 38 ++++++++++---------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/yuthon_hr_attendance/models/card_approval.py b/yuthon_hr_attendance/models/card_approval.py index 7e2a8e4d6..d61535f66 100644 --- a/yuthon_hr_attendance/models/card_approval.py +++ b/yuthon_hr_attendance/models/card_approval.py @@ -40,28 +40,30 @@ class CardApprovals(models.Model): @api.depends('users_id') def _compute_number_cards_replaced(self): - vacation_date = (self.attendance_id.current_data).replace(day=1) - vacation_report = self.env['yuthon.vacation.reports'].search([ - ('employee_id', '=', self.users_id.employee_ids.id), - ('vacation_date', '=', vacation_date), - ], limit=1) - if vacation_report: - vacation_report.vacation_date() - self.number_cards_replaced = vacation_report.number_card - else: - self.number_cards_replaced = 0 + if self.attendance_id: + vacation_date = (self.attendance_id.current_data).replace(day=1) + vacation_report = self.env['yuthon.vacation.reports'].search([ + ('employee_id', '=', self.users_id.employee_ids.id), + ('vacation_date', '=', vacation_date), + ], limit=1) + if vacation_report: + vacation_report.vacation_date() + self.number_cards_replaced = vacation_report.number_card + else: + self.number_cards_replaced = 0 @api.constrains("users_id", "attendance_id") def _check_user(self): - vacation_date = (self.attendance_id.current_data).replace(day=1) - vacation_report = self.env['yuthon.vacation.reports'].search([ - ('employee_id', '=', self.users_id.employee_ids.id), - ('vacation_date', '=', vacation_date), - ], limit=1) - if vacation_report: - if vacation_report.number_card >= 4: - raise UserError("该员工当月已补卡超过4次,超过最大额!") + if self.attendance_id: + vacation_date = (self.attendance_id.current_data).replace(day=1) + vacation_report = self.env['yuthon.vacation.reports'].search([ + ('employee_id', '=', self.users_id.employee_ids.id), + ('vacation_date', '=', vacation_date), + ], limit=1) + if vacation_report: + if vacation_report.number_card >= 4: + raise UserError("该员工当月已补卡超过4次,超过最大额!") @api.onchange('attendance_id') def onchange_replacement_time(self):