diff --git a/models/scop_period.py b/models/scop_period.py index 25d756218de4d6e44c21fe6e0a19096432420e75..dc9ff4233196f2ffff41101a37bf8ae2021bc7d0 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)