diff --git a/hr_expense_advance_clearing/models/hr_expense_sheet.py b/hr_expense_advance_clearing/models/hr_expense_sheet.py index 805ac4f12..1ae2221d5 100644 --- a/hr_expense_advance_clearing/models/hr_expense_sheet.py +++ b/hr_expense_advance_clearing/models/hr_expense_sheet.py @@ -243,7 +243,9 @@ def _prepare_bills_vals(self): # Advance Sheets with no residual left if self.advance_sheet_residual <= 0.0: raise ValidationError( - self.env._(f"Advance: {self.name} has no amount to clear") + self.env._( + "Advance: %(name)s has no amount to clear", name=self.name + ) ) res.update( { @@ -255,6 +257,18 @@ def _prepare_bills_vals(self): ) return res + def _check_can_approve(self): + """Check advance residual before approval""" + for sheet in self.filtered("advance_sheet_id"): + if sheet.advance_sheet_residual <= 0.0: + raise ValidationError( + self.env._( + "Advance: %(name)s has no amount to clear", + name=sheet.advance_sheet_id.name, + ) + ) + return super()._check_can_approve() + def open_clear_advance(self): self.ensure_one() result = self.env["ir.actions.act_window"]._for_xml_id(