From 857c3593b917ec0d7713e0bd608b052fba1d66f9 Mon Sep 17 00:00:00 2001 From: Julien - Le Filament <julien@le-filament.com> Date: Tue, 6 May 2025 08:42:24 +0200 Subject: [PATCH] 16.0 get daily perimeter --- data/cron_data.xml | 13 +++++++++++++ models/acc_operation.py | 29 +++++++++++++++++++++++++---- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/data/cron_data.xml b/data/cron_data.xml index 5892e3d..4d28a36 100644 --- a/data/cron_data.xml +++ b/data/cron_data.xml @@ -14,5 +14,18 @@ <field name="doall" eval="False" /> <field name="active" eval="True" /> </record> + <record model="ir.cron" id="ir_cron_get_daily_data"> + <field name="name">Enedis récupération données quotidiennes</field> + <field name="model_id" ref="oacc.model_acc_operation" /> + <field name="state">code</field> + <field name="code">model.get_daily_enedis_data(from_cron=True)</field> + <field name="user_id" ref="base.user_root" /> + <field name="interval_number">1</field> + <field name="interval_type">days</field> + <field name="nextcall">2025-05-05 23:00:00</field> + <field name="numbercall">-1</field> + <field name="doall" eval="False" /> + <field name="active" eval="True" /> + </record> </data> </odoo> diff --git a/models/acc_operation.py b/models/acc_operation.py index cbea187..b68a2e7 100644 --- a/models/acc_operation.py +++ b/models/acc_operation.py @@ -92,7 +92,8 @@ class AccOperation(models.Model): "params": { "title": _("Actualisation du périmètre."), "type": "info", - "message": "Le périmètre de l'opération a bien été mis à jour dans les onglets 'Points d'injection' et 'Points de soutirage'.", + "message": "Le périmètre de l'opération a bien été mis à jour dans " + "les onglets 'Points d'injection' et 'Points de soutirage'.", "sticky": True, "next": { "type": "ir.actions.act_window_close", @@ -116,6 +117,19 @@ class AccOperation(models.Model): except ValidationError: continue + @api.model + def get_daily_enedis_data(self, from_cron): + """ + get perimeter monthly (function used in cron job) + """ + for operation in self.search( + [("client_id", "!=", False), ("secret_id", "!=", False)] + ): + try: + operation._perimeter(from_cron) + except ValidationError: + continue + # ------------------------------------------------------ # API functions # ------------------------------------------------------ @@ -193,7 +207,10 @@ class AccOperation(models.Model): lambda p: p.start_date == usage_point_start and p.end_date == usage_point_end ): - message += "Les dates de début et de fin sont identiques à celles déjà enregistrées dans Elocoop.<br/>" + message += ( + "Les dates de début et de fin sont identiques à celles " + "déjà enregistrées dans Elocoop.<br/>" + ) elif counter_period_ids.filtered( lambda p: p.start_date == usage_point_start ): @@ -220,7 +237,8 @@ class AccOperation(models.Model): message += ( "De nouvelles dates sont renvoyées par Enedis : veuillez" " renseigner le participant lié dans l’onglet " - "'Points de soutirage / Point d’injection' (en fonction du cas)<br/>" + "'Points de soutirage / Point d’injection' " + "(en fonction du cas)<br/>" ) except ValidationError as e: message += ( @@ -268,7 +286,10 @@ class AccOperation(models.Model): # If delivery counter add to first priority group if exist if usage_point_prm_type == "delivery": if self.check_priority_groups(counter=counter_id): - message += "Ajout du nouveau PRM au premier groupe de priorité<br/>" + message += ( + "Ajout du nouveau PRM au premier groupe " + "de priorité<br/>" + ) message += "Fin de la création du PRM<br/>" -- GitLab