diff --git a/models/res_partner.py b/models/res_partner.py
index b160309840c20bba7c3548784d1ba451b6bf9cbc..3907a4b5040f0335ba5e379bdca5d4af4d6635fb 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -1212,11 +1212,11 @@ class ScopPartner(models.Model):
     )
     def _compute_last_effective(self):
         for partner in self:
-            lm = partner.staff_ids.sorted(key="effective_date", reverse=True)
-            if lm:
-                partner.staff_last = lm[0].staff_count
-                partner.staff_shareholder_last = lm[0].staff_shareholder_count
-                partner.staff_last_date = lm[0].effective_date
+            lines = partner._get_staff_lines()
+            if lines:
+                partner.staff_last = lines[0].staff_count
+                partner.staff_shareholder_last = lines[0].staff_shareholder_count
+                partner.staff_last_date = lines[0].effective_date
 
     def _compute_segment_nb(self):
         for partner in self:
@@ -1256,9 +1256,9 @@ class ScopPartner(models.Model):
             else:
                 partner.is_administrative = False
 
-    @api.depends("revision_next_exercice",
-                 "revision_same_exercice",
-                 )
+    @api.depends(
+        "revision_next_exercice", "revision_same_exercice",
+    )
     def _compute_revision_next_year(self):
         for partner in self:
             if partner.revision_same_exercice:
@@ -1741,6 +1741,10 @@ class ScopPartner(models.Model):
         cedex = f" CEDEX {self.postal_cedex}" if self.postal_cedex else ""
         return f"{street_address}\n{city_address}{cedex}"
 
+    def _get_staff_lines(self):
+        self.ensure_one()
+        return self.staff_ids.sorted(key="effective_date", reverse=True)
+
     # ------------------------------------------------------
     # CRON function
     # ------------------------------------------------------