From 8de94020051a20831e89079218c98fd0d12d2cde Mon Sep 17 00:00:00 2001
From: benjamin <benjamin@le-filament.com>
Date: Tue, 21 Feb 2023 15:54:49 +0100
Subject: [PATCH] [add] update action archive for coop

---
 models/res_partner.py | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/models/res_partner.py b/models/res_partner.py
index 3b55f10..b3f3b49 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
     # ------------------------------------------------------
-- 
GitLab