diff --git a/models/res_partner.py b/models/res_partner.py
index 3b55f1051bb4d009a9667caa0b2ce4e24938d632..b3f3b495b5f2a60e87980c3e0fd7240519e6d3fa 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -7,7 +7,7 @@ import time
 from datetime import datetime, timedelta
 
 from odoo import _, api, fields, models
-from odoo.exceptions import ValidationError
+from odoo.exceptions import UserError, ValidationError
 
 _logger = logging.getLogger(__name__)
 
@@ -44,6 +44,11 @@ class ScopPartner(models.Model):
         except Exception:
             return [("is_company", "=", True)]
 
+    # Inherit parent
+    active = fields.Boolean(
+        tracking=True,
+    )
+
     # Infos générales - champs non affichés
     is_cooperative = fields.Boolean("Est une coopérative")
     current_user_ur_id = fields.Many2one(
@@ -847,6 +852,24 @@ class ScopPartner(models.Model):
             partner.commercial_company_name or partner.sudo().parent_id.name,
         )
 
+    def action_archive(self):
+        """
+        Lève une erreur si une coopérative qui n'est pas à l'état abandonné fait partie des
+        items à archiver
+        """
+        coop_ids = self.filtered(
+            lambda p: p.is_cooperative and p.project_status != "7_abandonne"
+        )
+        if coop_ids:
+            raise UserError(
+                _(
+                    "Il n'est pas possible d'archiver une coopérative qui n'est pas en "
+                    "statut abandonné."
+                )
+            )
+        else:
+            return super().action_archive()
+
     # ------------------------------------------------------
     # Computed Fields
     # ------------------------------------------------------