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