From a3095f07b9f9dfeadc467d52d7a4bba349994348 Mon Sep 17 00:00:00 2001
From: Julien Ortet <julien@le-filament.com>
Date: Mon, 5 May 2025 17:02:20 +0200
Subject: [PATCH 1/3] [ADD] add daily perimeter cron

---
 data/cron_data.xml      | 13 +++++++++++++
 models/acc_operation.py | 32 ++++++++++++++++++++++++++++----
 2 files changed, 41 insertions(+), 4 deletions(-)

diff --git a/data/cron_data.xml b/data/cron_data.xml
index 5892e3d..5f91835 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 journalières</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 00: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..05bd73a 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",
@@ -103,6 +104,9 @@ class AccOperation(models.Model):
     def _get_monthly_enedis_data(self, from_cron):
         return self._perimeter(from_cron)
 
+    def _get_daily_enedis_data(self, from_cron):
+        return self._perimeter(from_cron)
+
     @api.model
     def get_monthly_enedis_data(self, from_cron):
         """
@@ -116,6 +120,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._get_daily_enedis_data(from_cron)
+            except ValidationError:
+                continue
+
     # ------------------------------------------------------
     # API functions
     # ------------------------------------------------------
@@ -193,7 +210,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 +240,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 +289,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


From 54f884dcb93b2f993fc214f459f58b6f4ced0ffb Mon Sep 17 00:00:00 2001
From: Julien Ortet <julien@le-filament.com>
Date: Mon, 5 May 2025 17:04:22 +0200
Subject: [PATCH 2/3] [UPD] typo

---
 data/cron_data.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/data/cron_data.xml b/data/cron_data.xml
index 5f91835..fea8f87 100644
--- a/data/cron_data.xml
+++ b/data/cron_data.xml
@@ -15,7 +15,7 @@
             <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 journalières</field>
+            <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>
-- 
GitLab


From 4ecd5fa28655100fe6358c31cef196edca05a1a7 Mon Sep 17 00:00:00 2001
From: Julien Ortet <julien@le-filament.com>
Date: Mon, 5 May 2025 17:14:09 +0200
Subject: [PATCH 3/3] [UPD] change cron hour

---
 data/cron_data.xml      | 2 +-
 models/acc_operation.py | 5 +----
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/data/cron_data.xml b/data/cron_data.xml
index fea8f87..4d28a36 100644
--- a/data/cron_data.xml
+++ b/data/cron_data.xml
@@ -22,7 +22,7 @@
             <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 00:00:00</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" />
diff --git a/models/acc_operation.py b/models/acc_operation.py
index 05bd73a..b68a2e7 100644
--- a/models/acc_operation.py
+++ b/models/acc_operation.py
@@ -104,9 +104,6 @@ class AccOperation(models.Model):
     def _get_monthly_enedis_data(self, from_cron):
         return self._perimeter(from_cron)
 
-    def _get_daily_enedis_data(self, from_cron):
-        return self._perimeter(from_cron)
-
     @api.model
     def get_monthly_enedis_data(self, from_cron):
         """
@@ -129,7 +126,7 @@ class AccOperation(models.Model):
             [("client_id", "!=", False), ("secret_id", "!=", False)]
         ):
             try:
-                operation._get_daily_enedis_data(from_cron)
+                operation._perimeter(from_cron)
             except ValidationError:
                 continue
 
-- 
GitLab