From 9adf7ebaba59c3e7a504aecbc5281aa682c1fa9d Mon Sep 17 00:00:00 2001
From: Remi <remi@le-filament.com>
Date: Tue, 15 Oct 2019 15:22:28 +0200
Subject: [PATCH] =?UTF-8?q?Calcul=20de=20lic=C3=A9it=C3=A9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 datas/res.partner.rgpd.origin.csv | 16 ++++++------
 models/res_partner.py             | 43 ++++++++++++++++++++++++++++---
 2 files changed, 48 insertions(+), 11 deletions(-)

diff --git a/datas/res.partner.rgpd.origin.csv b/datas/res.partner.rgpd.origin.csv
index a916794..e1521a3 100644
--- a/datas/res.partner.rgpd.origin.csv
+++ b/datas/res.partner.rgpd.origin.csv
@@ -1,13 +1,13 @@
 id,name
 rgpd_origin_1,"Fiche contact, site internet"
-rgpd_origin_2,Prospect journée d'info coll
+rgpd_origin_2,"Prospect journée d'info coll"
 rgpd_origin_3,"Prospect (salon, rdv, internet…)"
-rgpd_origin_4,Dossiers d'adhésion
-rgpd_origin_5,Dossiers Liste ministère
+rgpd_origin_4,"Dossiers d'adhésion"
+rgpd_origin_5,"Dossiers Liste ministère"
 rgpd_origin_6,"Dossiers annuels non LM (scic, scop47)"
-rgpd_origin_7,Salariés CG
-rgpd_origin_8,Salariés UR
-rgpd_origin_9,Salariés Fédération
-rgpd_origin_10,Elus
+rgpd_origin_7,"Salariés CG"
+rgpd_origin_8,"Salariés UR"
+rgpd_origin_9,"Salariés Fédération"
+rgpd_origin_10,"Elus"
 rgpd_origin_11,"VIP, Officiels"
-rgpd_origin_12,Fournisseurs
+rgpd_origin_12,"Fournisseurs"
diff --git a/models/res_partner.py b/models/res_partner.py
index 8baa611..81ee4f8 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -334,7 +334,9 @@ class ScopPartner(models.Model):
          ("consent", "Consentement"),
          ("legitimate", "Intérêt légitime"),
          ("none", "Aucune")],
-        string="Licéité du contact", default="none")
+        string="Licéité du contact",
+        compute="_compute_contact_legality",
+        store=True)
 
     # Champs pour partenaires
     organization_type_id = fields.Many2one(
@@ -472,8 +474,6 @@ class ScopPartner(models.Model):
 
     @api.multi
     def scop_send_to_cg(self):
-        # TODO - add call to API function
-
         self.write({
             'project_status': '5_cg',
         })
@@ -495,6 +495,43 @@ class ScopPartner(models.Model):
         })
         return True
 
+    @api.depends('contact_origin_id',
+                 'parent_id.cooperative_form_id',
+                 'parent_id.membership_status')
+    def _compute_contact_legality(self):
+        for partner in self:
+            partner.contact_legality = 'none'
+            if (partner.contact_origin_id.name ==
+                    "Fiche contact, site internet"):
+                partner.contact_legality = 'consent'
+            if partner.contact_origin_id.name in (
+                    "Prospect journée d'info coll",
+                    "Prospect (salon, rdv, internet…)",
+                    "Elus"):
+                partner.contact_legality = 'legitimate'
+            if (partner.contact_origin_id.name in (
+                    "Salariés CG", "Salariés UR", "Salariés Fédération")):
+                partner.contact_legality = 'employee'
+            if (partner.contact_origin_id.name in (
+                    "Elus", "VIP, Officiels", "Fournisseurs")):
+                partner.contact_legality = 'legitimate'
+            if not partner.is_company and partner.parent_id:
+                parent = partner.parent_id
+                if (partner.contact_origin_id.name in (
+                        "Dossiers d'adhésion",
+                        "Dossiers annuels non LM (scic, scop47)")
+                        and parent.cooperative_form_id
+                        and parent.membership_status == "member"):
+                    partner.contact_legality = 'customer'
+                if (partner.contact_origin_id.name == (
+                        "Dossiers annuels non LM (scic, scop47)")
+                        and parent.membership_status != "member"):
+                    partner.contact_legality = 'legitimate'
+                if (partner.contact_origin_id.name == (
+                        "Dossiers Liste ministère")
+                        and parent.cooperative_form_id.name == "SCIC"):
+                    partner.contact_legality = 'customer'
+
 
 class ResPartneCertification(models.Model):
     _name = "res.partner.certification"
-- 
GitLab