From c086446bac5d1cdf65f2849efe0f36de024d3f6a Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Tue, 18 Jan 2022 15:31:40 -0800 Subject: [PATCH] [FIX] hr_payroll_attendance: exception with .exists() --- hr_payroll_attendance/models/hr_attendance.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/hr_payroll_attendance/models/hr_attendance.py b/hr_payroll_attendance/models/hr_attendance.py index 6baa4832..70aec37c 100644 --- a/hr_payroll_attendance/models/hr_attendance.py +++ b/hr_payroll_attendance/models/hr_attendance.py @@ -14,9 +14,11 @@ class HrAttendance(models.Model): if isinstance(vals_list, dict): vals_list = [vals_list] - payslips = self.env['hr.payslip'].sudo().browse([d.get('payslip_id', 0) for d in vals_list]) - if any(p.state not in ('draft', 'verify') for p in payslips.exists()): - raise ValidationError('Cannot create attendance linked to payslip that is not draft.') + payslip_ids = [i for i in set([d.get('payslip_id', 0) for d in vals_list]) if i != 0] + if payslip_ids: + payslips = self.env['hr.payslip'].sudo().browse(payslip_ids) + if payslips.filtered(lambda p: p.state not in ('draft', 'verify')): + raise ValidationError('Cannot create attendance linked to payslip that is not draft.') return super().create(vals_list) def write(self, values):