From af6a3d470b55ed4b3d8b206e5e5ac57f794949ae Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20-=20Le=20Filament?= <remi@le-filament.com>
Date: Mon, 24 Mar 2025 12:04:19 +0100
Subject: [PATCH] [REF] use curve_mixin functions

---
 wizard/acc_operation_import_wizard.py | 58 ++++++---------------------
 1 file changed, 12 insertions(+), 46 deletions(-)

diff --git a/wizard/acc_operation_import_wizard.py b/wizard/acc_operation_import_wizard.py
index 2c356a0..85faabf 100644
--- a/wizard/acc_operation_import_wizard.py
+++ b/wizard/acc_operation_import_wizard.py
@@ -9,10 +9,8 @@ from datetime import datetime, timedelta
 from dateutil.relativedelta import relativedelta
 
 from odoo import fields, models
-from odoo.osv import expression
 
 from odoo.addons.api_connector.tools.date_utils import local_to_utc
-from odoo.addons.oacc.models.acc_enedis_cdc_day import COMP_DATA_TYPE_MAP
 
 _logger = logging.getLogger(__name__)
 
@@ -71,60 +69,26 @@ class AccOperationImportWizard(models.TransientModel):
             days=1
         )
 
-        # Vérification si des données existent déjà
-        # pour cet intervalle de date
-        start_datetime = local_to_utc(date_begin_obj, "Europe/Paris")
-        end_datetime = local_to_utc(date_end_obj, "Europe/Paris")
-
         computed_data_type = data_filename[3].lower()
         if computed_data_type == "conso":
             computed_data_type = "cons"
         elif computed_data_type == "autoconso":
             computed_data_type = "autocons"
 
-        domain_all = [
-            ("acc_operation_id", "=", self.operation_id.id),
-            ("acc_counter_id", "=", counter_id),
-        ]
-        domain_cdc = expression.AND(
-            [
-                domain_all,
-                [
-                    ("date_slot", ">=", start_datetime),
-                    ("date_slot", "<", end_datetime),
-                    ("comp_data_type", "=", computed_data_type),
-                ],
-            ]
-        )
-        domain_cdc_day = expression.AND(
-            [
-                domain_all,
-                [
-                    ("date_slot", ">=", date_begin_obj.date()),
-                    ("date_slot", "<", date_end_obj.date()),
-                    ("comp_data_type", "=", COMP_DATA_TYPE_MAP[computed_data_type]),
-                ],
-            ]
+        # Vérification si des données existent déjà pour cet intervalle de date
+        rec_ids = self.env[self.model].search(
+            self._get_read_group_domain(
+                acc_operation_id=self.operation_id.id,
+                start_date=date_begin_obj,
+                end_date=date_end_obj,
+                values_type=[computed_data_type],
+                exclude_empty_partner=False,
+            )
         )
-        rec_ids = self.env[self.model].search(domain_cdc)
         if rec_ids:
             message += "Suppression des enregistrements existants de courbes ... <br/>"
             rec_ids.unlink()
             message += "Suppression des enregistrements existants de courbes OK <br/>"
-
-        if self.model == "acc.enedis.cdc":
-            day_rec_ids = self.env["acc.enedis.cdc.day"].search(domain_cdc_day)
-            if day_rec_ids:
-                message += (
-                    "Suppression des enregistrements existants de courbes "
-                    "agrégées au jour ... <br/>"
-                )
-                day_rec_ids.unlink()
-                message += (
-                    "Suppression des enregistrements existants de courbes "
-                    "agrégées au jour OK <br/>"
-                )
-
         return message
 
     def create_curve(self, curve_data):
@@ -240,7 +204,9 @@ class AccOperationImportWizard(models.TransientModel):
             self.create_curve(curves_to_create)
 
             if self.model == "acc.enedis.cdc":
-                _logger.debug(f"Processing file {file.name} - Update partner_id on curves")
+                _logger.debug(
+                    f"Processing file {file.name} - Update partner_id on curves"
+                )
                 message += "Mise à jour du contact associé aux courbes<br/>"
                 self._update_partner_id(data_filename, counter_id)
 
-- 
GitLab