From e1e1e9cf1cce94b90fa0508d5fa6a742226e470c Mon Sep 17 00:00:00 2001
From: Benjamin <benjamin@le-filament.com>
Date: Mon, 9 Nov 2020 19:46:53 +0100
Subject: [PATCH] =?UTF-8?q?[fix]=20gestion=20annulation=20date=20d=C3=A9c?=
 =?UTF-8?q?=C3=A8s?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 models/scop_period.py | 38 ++++++++++++++++++++++----------------
 1 file changed, 22 insertions(+), 16 deletions(-)

diff --git a/models/scop_period.py b/models/scop_period.py
index 25d7562..dc9ff42 100644
--- a/models/scop_period.py
+++ b/models/scop_period.py
@@ -71,22 +71,28 @@ class ScopPeriod(models.Model):
     @api.multi
     def write(self, vals):
         for period in self:
-            partner_vals = dict(vals)
-            # Suppression des valeurs à ne pas remonter à l'organisme
-            partner_vals.pop('partner_id', False)
-            partner_vals.pop('id_riga', False)
-            partner_vals.pop('start', False)
-            partner_vals.pop('comments', False)
+            if period == period.partner_id.scop_period_ids[0]:
+                partner_vals = dict(vals)
+                # Suppression des valeurs à ne pas remonter à l'organisme
+                partner_vals.pop('partner_id', False)
+                partner_vals.pop('id_riga', False)
+                partner_vals.pop('start', False)
+                partner_vals.pop('comments', False)
 
-            # Si la date de fin est modifiée et que l'organisme est décédé
-            # on remonte la date de décès
-            if partner_vals.get('end', False):
-                if partner_vals.get('end_reason', False) == 'deces' or period.end_reason == 'deces':
-                    partner_vals.update({
-                        'dissolution_date': partner_vals.get('end')
-                    })
-            partner_vals.pop('end', False)
+                # Si la date de fin est modifiée et que l'organisme est décédé
+                # on remonte la date de décès
+                if 'end' in partner_vals:
+                    if partner_vals.get('end_reason', False) == 'deces' or period.end_reason == 'deces':
+                        partner_vals.update({
+                            'dissolution_date': partner_vals.get('end')
+                        })
+                    if not partner_vals.get('end'):
+                        partner_vals.update({
+                            'dissolution_date': None
+                        })
 
-            # Update partner
-            period.partner_id.write(partner_vals)
+                partner_vals.pop('end', False)
+
+                # Update partner
+                period.partner_id.write(partner_vals)
         return super(ScopPeriod, self).write(vals)
-- 
GitLab