diff --git a/report/scop_contribution_report.py b/report/scop_contribution_report.py index c999b79f28f1d415d6a93ac0e04e638219fc6349..ec3c52e3c4899e055c6344a9f65557d5cb0833b8 100644 --- a/report/scop_contribution_report.py +++ b/report/scop_contribution_report.py @@ -67,29 +67,32 @@ class ScopContributionReport(models.Model): def print_contribution(self): self.ensure_one() - bordereau = ( - self.env["scop.bordereau"] - .sudo() - .search( - [ - ("partner_id", "=", self.partner_id.id), - ("year", "=", self.year), - ("state", "not in", ["draft", "cancel"]), - ] + if self.has_bordereau(): + bordereau = ( + self.env["scop.bordereau"] + .sudo() + .search( + [ + ("partner_id", "=", self.partner_id.id), + ("year", "=", self.year), + ("state", "not in", ["draft", "cancel"]), + ] + ) ) - ) - if len(bordereau) == 1: - report_sudo = self.env.ref( - "cgscop_cotisation_cg.cgscop_bordereau_report" - ).sudo() - bordereau_pdf = report_sudo.with_user(SUPERUSER_ID)._render_qweb_pdf( - bordereau.id - )[0] - return base64.b64encode(bordereau_pdf) + if len(bordereau) == 1: + report_sudo = self.env.ref( + "cgscop_cotisation_cg.cgscop_bordereau_report" + ).sudo() + bordereau_pdf = report_sudo.with_user(SUPERUSER_ID)._render_qweb_pdf( + bordereau.id + )[0] + return base64.b64encode(bordereau_pdf) + else: + raise UserError( + _("Impossible de télécharger le bordereau associé à cette cotisation.") + ) else: - raise UserError( - _("Impossible de télécharger le bordereau associé à cette cotisation.") - ) + raise UserError(_("Pas de bordereau rattaché à cette cotisation.")) # ------------------------------------------------------ # Business method