From b613bdd5240b2730a6b4b71e0420436ca094ec05 Mon Sep 17 00:00:00 2001
From: Julien Ortet <julien@le-filament.com>
Date: Tue, 18 Mar 2025 16:12:46 +0100
Subject: [PATCH] [ADD] generate agg data when import cdc

---
 wizard/acc_operation_import_wizard.py | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/wizard/acc_operation_import_wizard.py b/wizard/acc_operation_import_wizard.py
index dfa2e28..b4a753f 100644
--- a/wizard/acc_operation_import_wizard.py
+++ b/wizard/acc_operation_import_wizard.py
@@ -126,6 +126,10 @@ class AccOperationImportWizard(models.TransientModel):
             + self.model
             + "</h1>"
         )
+
+        start_dates = []
+        end_dates = []
+
         for file in self.attachment_ids:
             message += (
                 "<p><strong>Fichier "
@@ -133,7 +137,10 @@ class AccOperationImportWizard(models.TransientModel):
                 + "</strong><br/>Début Import ... <br/>"
             )
             data_filename = file.name.split("_")
+            date_format = "%d%m%Y"
             id_pdm = data_filename[0]
+            start_dates.append(datetime.strptime(data_filename[1], date_format))
+            end_dates.append(datetime.strptime(data_filename[2], date_format))
 
             counter_id = self.env["acc.counter"].search([("name", "=", id_pdm)])
             data_filename[3] = data_filename[3].lower()
@@ -188,6 +195,24 @@ class AccOperationImportWizard(models.TransientModel):
                     )
 
             self.update_partner_id(data_filename, counter_id)
+            message += "Génération des données agrégées<br/>"
+            domain = [
+                ("acc_operation_id", "=", self.operation_id.id),
+                ("date_slot", ">=", min(start_dates)),
+                ("date_slot", "<", max(end_dates)),
+            ]
+
+            # Vérification si des données existent déjà
+            # pour cet intervalle de date
+            rec_ids = self.env["acc.enedis.cdc.agg"].search(domain)
+            if rec_ids:
+                rec_ids.unlink()
+
+            self.env["acc.enedis.cdc.agg"].generate(
+                acc_operation_id=self.operation_id.id,
+                start_date=min(start_dates),
+                end_date=max(end_dates),
+            )
 
             message += "Fin de l'import des données OK<br/>"
             # Suppression du fichier après création des enregistrements
-- 
GitLab