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):