From d6f85d44590be31899e36f56036dda63cecab5e8 Mon Sep 17 00:00:00 2001 From: benjamin <benjamin@le-filament.com> Date: Thu, 5 Dec 2024 19:56:01 +0100 Subject: [PATCH] [ADD] DDETS check --- models/scop_liste_ministere.py | 27 +++++++++++++++++++++++++++ views/scop_liste_ministere.xml | 15 +++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/models/scop_liste_ministere.py b/models/scop_liste_ministere.py index 370b481..c65700e 100644 --- a/models/scop_liste_ministere.py +++ b/models/scop_liste_ministere.py @@ -48,6 +48,11 @@ class ScopListeMinistere(models.Model): # CHAMPS LISTE MINISTERE # ----- active = fields.Boolean(default=True, tracking=True) + is_wrong_ddets = fields.Boolean( + string="Incohérence DDETS", + compute="_compute_is_wrong_ddets", + search="_search_is_wrong_ddets" + ) partner_id = fields.Many2one( "res.partner", string="Coopérative", @@ -673,6 +678,28 @@ class ScopListeMinistere(models.Model): # ------------------------------------------------------ # Computed fields # ------------------------------------------------------ + def _compute_is_wrong_ddets(self): + for lm in self: + lm.is_wrong_ddets = False + if lm.partner_id and lm.direccte_id and lm.status not in ["6_transmis", "7_cloture"]: + if lm.partner_id.zip_departement != lm.direccte_id.zip_departement: + lm.is_wrong_ddets = True + + def _search_is_wrong_ddets(self, operator, value): + if operator not in ('=', '!='): + raise UserError(_('Opérateur invalide %s', operator)) + + lm_ids = self.search([("status", "not in", ["6_transmis", "7_cloture"])]) + wrong_lm_ids = lm_ids.filtered( + lambda lm: lm.partner_id and lm.direccte_id and lm.partner_id.zip_departement != lm.direccte_id.zip_departement + ) + if (operator == '=' and value is True) or (operator in ('<>', '!=') and value is False): + values = wrong_lm_ids + else: + values = lm_ids - wrong_lm_ids + + return [('id', 'in', values.ids)] + @api.depends( "scop_liasse_fiscale_id", "scop_liasse_fiscale_id.L2050_DCLO", diff --git a/views/scop_liste_ministere.xml b/views/scop_liste_ministere.xml index 26b914d..6e11f14 100644 --- a/views/scop_liste_ministere.xml +++ b/views/scop_liste_ministere.xml @@ -70,6 +70,12 @@ domain="[('is_dead', '=', False)]" /> <separator /> + <filter + name="is_wrong_ddets_filter" + string="Incohérence affectation DDETS" + domain="[('is_wrong_ddets', '=', True)]" + /> + <separator /> <filter name="is_jo_published" string="Publié au J.O." @@ -532,6 +538,15 @@ name="direccte_id" options="{'no_create': 1, 'no_edit': 1}" /> + <field name="is_wrong_ddets" invisible="1" /> + <div + class="alert alert-danger" + role="alert" + colspan="2" + attrs="{'invisible': [('is_wrong_ddets', '!=', True)]}" + > + La DDETS ne semble pas être affectée correctement ! + </div> </group> <group string="Pointage des documents"> <field name="pointage_lettre_agrement" /> -- GitLab