diff --git a/wizard/scop_deces_wizard.py b/wizard/scop_deces_wizard.py
index f82b085c5d999aa00dd4988cc37d0013115cbeab..9927c04566121ec785a345dd9f70506abc4af4e2 100644
--- a/wizard/scop_deces_wizard.py
+++ b/wizard/scop_deces_wizard.py
@@ -38,21 +38,27 @@ class ScopDecesWizard(models.TransientModel):
     @api.multi
     def deces_action(self):
         # Close previous period
-        last_period_id = self.env['scop.period'].browse(
-            self.last_period_id)
-        if last_period_id:
-            last_period_id.write({
-                'end': self.end,
-                'end_reason': 'autr',
-                'comments': self.comments,
-            })
-
-            # Update partner
-            partner = self.env['res.partner'].browse(self.partner_id)
-            partner.write({
-                'dissolution_date': self.end,
-                'dissolution_reason_id': self.dissolution_reason_id.id
-            })
-        else:
-            raise ValidationError(
-                "Il n'existe pas de période à fermer.")
+        for period in self:
+            last_period = self.env['scop.period'].browse(
+                period.last_period_id)
+            if last_period:
+                if period.end >= last_period.start:
+                    last_period.write({
+                        'end': period.end,
+                        'end_reason': 'autr',
+                        'comments': period.comments,
+                    })
+                else:
+                    raise ValidationError(
+                        "La date de fin doit être postèrieure à la date de " +
+                        "début : " + str(last_period.start))
+
+                # Update partner
+                partner = self.env['res.partner'].browse(period.partner_id)
+                partner.write({
+                    'dissolution_date': period.end,
+                    'dissolution_reason_id': period.dissolution_reason_id.id
+                })
+            else:
+                raise ValidationError(
+                    "Il n'existe pas de période à fermer.")
diff --git a/wizard/scop_period_wizard.py b/wizard/scop_period_wizard.py
index 75720da6167905d30bf724651be3680ea41aab99..616d7481d6a39c41d4a88e2b4fe84dcdf978d896 100644
--- a/wizard/scop_period_wizard.py
+++ b/wizard/scop_period_wizard.py
@@ -2,6 +2,7 @@
 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
 
 from odoo import api, fields, models
+from odoo.exceptions import ValidationError
 
 
 class ScopPeiodWizard(models.TransientModel):
@@ -162,53 +163,64 @@ class ScopPeiodWizard(models.TransientModel):
 
     @api.multi
     def create_period(self):
-        # Create new period
-        self.env['scop.period'].create({
-            'partner_id': self.partner_id,
-            'start': self.start,
-            'name': self.name,
-            'cooperative_form_id': self.cooperative_form_id.id,
-            'partner_company_type_id': self.partner_company_type_id.id,
-            'siret': self.siret,
-            'street': self.street,
-            'street2': self.street2,
-            'street3': self.street3,
-            'zip': self.zip,
-            'zip_id': self.zip_id.id,
-            'city': self.city,
-            'cedex': self.cedex,
-            'state_id': self.state_id.id,
-            'country_id': self.country_id.id,
-            'naf_id': self.naf_id.id,
-            'cae': self.cae
-        })
-
-        # Close previous period
-        previous_period = self.env['scop.period'].browse(
-            self.previous_period_id)
-        if previous_period:
-            previous_period.write({
-                'end': self.start,
-                'end_reason': self.end_reason,
-                'comments': self.comments,
-            })
-
-        # Update partner
-        partner = self.env['res.partner'].browse(self.partner_id)
-        partner.write({
-            'name': self.name,
-            'cooperative_form_id': self.cooperative_form_id.id,
-            'partner_company_type_id': self.partner_company_type_id.id,
-            'siret': self.siret,
-            'street': self.street,
-            'street2': self.street2,
-            'street3': self.street3,
-            'zip': self.zip,
-            'zip_id': self.zip_id.id,
-            'city': self.city,
-            'cedex': self.cedex,
-            'state_id': self.state_id.id,
-            'country_id': self.country_id.id,
-            'naf_id': self.naf_id.id,
-            'cae': self.cae
-        })
+        for period in self:
+            partner_values = {}
+            # Close previous period
+            previous_period = self.env['scop.period'].search(
+                [('partner_id', '=', self.env.context.get('active_id'))],
+                limit=1)
+            if previous_period:
+                if (previous_period.end and
+                        period.start >= previous_period.end):
+                    partner_values = {
+                        'dissolution_date': False,
+                        'dissolution_reason_id': False,
+                    }
+                else:
+                    raise ValidationError(
+                        "La nouvelle période ne peut commencer avant la "
+                        + "fin de la période précédente : "
+                        + str(previous_period.end))
+                if period.start >= previous_period.start:
+                    if not previous_period.end_reason:
+                        previous_period.write({
+                            'end': period.start,
+                            'end_reason': period.end_reason,
+                            'comments': period.comments,
+                        })
+                else:
+                    raise ValidationError(
+                        "La nouvelle période ne peut commencer avant la "
+                        + "période précédente : "
+                        + str(previous_period.start))
+
+            # Create new period
+            period_values = {
+                'start': period.start,
+                'partner_id': period.partner_id
+            }
+
+            values = {
+                'name': period.name,
+                'cooperative_form_id': period.cooperative_form_id.id,
+                'partner_company_type_id': period.partner_company_type_id.id,
+                'siret': period.siret,
+                'street': period.street,
+                'street2': period.street2,
+                'street3': period.street3,
+                'zip': period.zip,
+                'zip_id': period.zip_id.id,
+                'city': period.city,
+                'cedex': period.cedex,
+                'state_id': period.state_id.id,
+                'country_id': period.country_id.id,
+                'naf_id': period.naf_id.id,
+                'cae': period.cae
+            }
+            period_values.update(values)
+            self.env['scop.period'].create(period_values)
+
+            # Update partner
+            partner_values.update(values)
+            partner = self.env['res.partner'].browse(period.partner_id)
+            partner.write(partner_values)