From 83625693f679d140ec324bf882b06f5accf20707 Mon Sep 17 00:00:00 2001 From: Remi <remi@le-filament.com> Date: Mon, 21 Oct 2019 18:43:07 +0200 Subject: [PATCH] Ajout checks raison sociale / SIRET / SIREN --- models/res_partner.py | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/models/res_partner.py b/models/res_partner.py index 00ff6bc..c899fb1 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -397,13 +397,52 @@ class ScopPartner(models.Model): coop.seed_end = datetime.today().date() + timedelta(2556) else: coop.seed_end = False - @api.onchange('organization_type_id') def onchange_organization_type_id(self): for partner in self: partner.organization_subtype_id = False + @api.onchange('name') + def onchange_name(self): + if self.search_count([('name', '=ilike', self.name)]) > 0: + return { + 'warning': { + 'title': "Attention", + 'message': "Ce nom / cette raison sociale existe déjà, " + + "merci de vérifier que vous n'êtes pas en " + + "train de créer un doublon"}} + + @api.constrains('siret') + def _check_siret(self): + if self.siret: + siren = self.siret[:9] + if (self.search_count([('siret', '=like', siren+"%"), + ('is_cooperative', "=", True)]) > 1): + raise ValidationError( + "Ce SIREN existe déjà parmi les coopératives") + elif self.search_count([('siret', '=', self.siret)]) > 1: + raise ValidationError("Ce SIRET existe déjà") + + @api.onchange('siret') + def onchange_siret(self): + if self.siret: + siren = self.siret[:9] + if self.search_count([('siret', '=like', self.siret)]) > 0: + return { + 'warning': { + 'title': "Attention", + 'message': "Ce SIRET existe déjà, merci de vérifier " + + "que vous n'êtes pas en train de créer un" + + " doublon"}} + elif self.search_count([('siret', '=like', siren+"%")]) > 0: + return { + 'warning': { + 'title': "Attention", + 'message': "Ce SIREN existe déjà, merci de vérifier " + + "que vous n'êtes pas en train de créer un" + + " doublon"}} + def _create_period(self, partner): new_period = self.env['scop.period'].create({ 'partner_id': partner.id, -- GitLab