diff --git a/data/cron_data.xml b/data/cron_data.xml index 5892e3d9e5cd5020e3305891d87017d092683a14..4d28a3687d291135c439dc90f94f672eb3855a3a 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 cbea18715ae0e5e4ded28124f03db7b8d74931e3..b68a2e7f1393d126330f7144f0edb8c39e9bd7cb 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/>"