diff --git a/models/scop_cotisation_cg.py b/models/scop_cotisation_cg.py
index c4f1bf174542e5e651a47f8209979c3eccb6f86d..15459e2dad5617b15d4588e312f1be953d1937b2 100644
--- a/models/scop_cotisation_cg.py
+++ b/models/scop_cotisation_cg.py
@@ -764,20 +764,38 @@ class ScopCotisation(models.Model):
     def get_liasse(self, member):
         self.ensure_one()
         Liasse = self.env["scop.liasse.fiscale"]
-        liasse_ids = Liasse.search(
-            [
-                ("partner_id", "=", member.id),
-                ("is_qualified", "=", True),
-                ("year", ">", 0),
-                "|",
-                "|",
-                ("L2052_FL", ">", 0),
-                ("av_lf", ">", 0),
-                ("av_cg", ">", 0),
-            ],
-            order="year desc",
-        )
-
+        # Recherche bordereau précédent
+        bdx = self.env["scop.bordereau"].search([
+            ("partner_id", "=", member.id),
+            ("year", "=", str(int(self.year) - 1))
+        ])
+        liasse_ids = None
+        if bdx:
+            # Recherche liasse année suivante
+            liasse_ids = Liasse.search(
+                [
+                    ("partner_id", "=", member.id),
+                    ("is_qualified", "=", True),
+                    ("year", "=", bdx.liasse_fiscale_id.year + 1),
+                ],
+                order="type_id",
+            )
+        # Si pas de liasse année suivante, on cherche la dernière liasse éligible
+        if not liasse_ids:
+            liasse_ids = Liasse.search(
+                [
+                    ("partner_id", "=", member.id),
+                    ("is_qualified", "=", True),
+                    ("year", ">", 0),
+                    "|",
+                    "|",
+                    ("L2052_FL", ">", 0),
+                    ("av_lf", "!=", 0),
+                    ("av_cg", "!=", 0),
+                ],
+                order="year desc",
+            )
+        # Si pas de liasse cette année, on cherche les liasses sans année
         if not liasse_ids:
             liasse_ids = Liasse.search(
                 [
@@ -786,8 +804,8 @@ class ScopCotisation(models.Model):
                     "|",
                     "|",
                     ("L2052_FL", ">", 0),
-                    ("av_lf", ">", 0),
-                    ("av_cg", ">", 0),
+                    ("av_lf", "!=", 0),
+                    ("av_cg", "!=", 0),
                 ],
                 order="id desc",
             )
diff --git a/models/scop_liasse_fiscale.py b/models/scop_liasse_fiscale.py
index 04d0ddf134c2d5280b4896290d276a67b49211d3..a047d3472c032b2b2770502135867cf84f5e4fd6 100644
--- a/models/scop_liasse_fiscale.py
+++ b/models/scop_liasse_fiscale.py
@@ -65,8 +65,9 @@ class ScopLiasseFiscale(models.Model):
         @return float : cotisation
         """
         for liasse in self:
-            # Calcul VA la plus avantageuse
             liasse.read(["av_lf", "av_cg", "L2052_FL"])
+
+            # Calcul VA la plus avantageuse
             if liasse.av_lf != 0:
                 if liasse.av_lf > liasse.av_cg:
                     va = liasse.av_cg
@@ -76,6 +77,7 @@ class ScopLiasseFiscale(models.Model):
                 va = liasse.av_cg
 
             ca = liasse.L2052_FL
+
             if liasse.dureeExercice and liasse.dureeExercice not in (0, 12):
                 va = va * (12 / liasse.dureeExercice)
                 ca = ca * (12 / liasse.dureeExercice)