From f4a34b77e39e0dcc84418762f0a199c1d2e833f5 Mon Sep 17 00:00:00 2001
From: Benjamin <benjamin@le-filament.com>
Date: Tue, 15 Dec 2020 18:22:53 +0100
Subject: [PATCH] [fix] duplication error ur_regional_convention_id and
 ur_financial_system_id

---
 models/calendar.py | 34 +++++++++++++++++++++-------------
 1 file changed, 21 insertions(+), 13 deletions(-)

diff --git a/models/calendar.py b/models/calendar.py
index bafa4e3..a32ad11 100644
--- a/models/calendar.py
+++ b/models/calendar.py
@@ -178,6 +178,7 @@ class CGScopCalendar(models.Model):
     @api.onchange('coop_id')
     def _onchange_coop_id(self):
         # affiche l'adresse de la coop sur le RDV
+        context = self.env.context
         address = ''
         if self.coop_id.street:
             address += self.coop_id.street + '\n'
@@ -190,19 +191,22 @@ class CGScopCalendar(models.Model):
         if self.coop_id.city:
             address += self.coop_id.city
         self.location = address
-        # affiche le Dispositif Financier par défaut sur le RDV
-        # si il n'y a pas de date limite du dispositif
-        # ou si la date du RDV est inférieure à la date limite du dispositif
-        if not self.coop_id.ur_financial_system_date or \
-           fields.Date.to_date(self.start) <= self.coop_id.ur_financial_system_date:
-            self.ur_financial_system_id = self.coop_id.ur_financial_system_id
-        # affiche la Convention par défaut sur le RDV
-        # si il n'y a pas de date limite de la convention
-        # ou si la date du RDV est inférieure à la date limite de la convention
-        if not self.coop_id.ur_regional_convention_date or \
-           fields.Date.to_date(self.start) <= self.coop_id.ur_regional_convention_date:
-            self.ur_regional_convention_id = self.coop_id.\
-                ur_regional_convention_id
+
+        # changement dispositifs si différent de action dupliquer
+        if not context.get('duplicate'):
+            # affiche le Dispositif Financier par défaut sur le RDV
+            # si il n'y a pas de date limite du dispositif
+            # ou si la date du RDV est inférieure à la date limite du dispositif
+            if not self.coop_id.ur_financial_system_date or \
+               fields.Date.to_date(self.start) <= self.coop_id.ur_financial_system_date:
+                self.ur_financial_system_id = self.coop_id.ur_financial_system_id
+            # affiche la Convention par défaut sur le RDV
+            # si il n'y a pas de date limite de la convention
+            # ou si la date du RDV est inférieure à la date limite de la convention
+            if not self.coop_id.ur_regional_convention_date or \
+               fields.Date.to_date(self.start) <= self.coop_id.ur_regional_convention_date:
+                self.ur_regional_convention_id = self.coop_id.\
+                    ur_regional_convention_id
 
     # ------------------------------------------------------
     # Contrains
@@ -372,7 +376,11 @@ class CGScopCalendar(models.Model):
                     'default_stop': event.stop,
                     'default_allday': event.allday,
                     'default_type': event.type,
+                    'default_format': event.format,
+                    'default_ur_id': event.ur_id.id,
                     'default_ur_financial_system_id': event.ur_financial_system_id.id,
+                    'default_ur_regional_convention_id': event.ur_regional_convention_id.id,
+                    'duplicate': True
                 },
             }
 
-- 
GitLab