diff --git a/wizard/acc_operation_import_wizard.py b/wizard/acc_operation_import_wizard.py
index dfa2e28db2e2270c8a2e86a5f488b27e1165d55d..2c356a0a2ddf2d0fbe164b88b634b179489d79f0 100644
--- a/wizard/acc_operation_import_wizard.py
+++ b/wizard/acc_operation_import_wizard.py
@@ -3,13 +3,18 @@
 import base64
 import csv
 import io
+import logging
 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__)
 
 
 class AccOperationImportWizard(models.TransientModel):
@@ -55,7 +60,7 @@ class AccOperationImportWizard(models.TransientModel):
     # ------------------------------------------------------
     # Business methods
     # ------------------------------------------------------
-    def delete_existing_data(self, data_filename, counter_id):
+    def _delete_existing_data(self, data_filename, counter_id):
         message = ""
         # Suppression des données si déjà existantes
         date_begin_str = data_filename[1]
@@ -78,35 +83,65 @@ class AccOperationImportWizard(models.TransientModel):
             computed_data_type = "autocons"
 
         domain_all = [
-            ("date_slot", ">=", start_datetime),
-            ("date_slot", "<", end_datetime),
             ("acc_operation_id", "=", self.operation_id.id),
-            ("comp_data_type", "=", computed_data_type),
-            ("acc_counter_id", "=", counter_id.id),
+            ("acc_counter_id", "=", counter_id),
         ]
-        rec_ids = self.env[self.model].search(domain_all)
+        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]),
+                ],
+            ]
+        )
+        rec_ids = self.env[self.model].search(domain_cdc)
         if rec_ids:
-            message += "Suppression des enregistrements existants ... <br/>"
+            message += "Suppression des enregistrements existants de courbes ... <br/>"
             rec_ids.unlink()
-            message += "Suppression des enregistrements existants OK <br/>"
+            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):
         self.env[self.model].create(curve_data)
 
-    def update_partner_id(self, data_filename, counter_id):
+    def _update_partner_id(self, data_filename, counter_id):
         date_begin_str = data_filename[1]
         date_end_str = data_filename[2]
         date_format = "%d%m%Y"
-        date_begin_obj = datetime.strptime(date_begin_str, date_format)
-        date_end_obj = datetime.strptime(date_end_str, date_format) + relativedelta(
-            days=1
-        )
+        date_begin_obj = datetime.strptime(date_begin_str, date_format).date()
+        date_end_obj = (
+            datetime.strptime(date_end_str, date_format) + relativedelta(days=1)
+        ).date()
         # Update partner_id for retrieved cdc
         domain = [
             ("acc_operation_id", "=", self.operation_id.id),
-            ("acc_counter_id", "=", counter_id.id or False),
+            ("acc_counter_id", "=", counter_id),
             (
                 "prm_type",
                 "=",
@@ -115,7 +150,11 @@ class AccOperationImportWizard(models.TransientModel):
         ]
         self.env["acc.counter.period"]._get_periods_from_interval(
             domain, date_begin_obj, date_end_obj
-        )._update_cdc_partner_id(model=self.model)
+        ).update_cdc_partner_id(
+            model=self.model,
+            date_start=date_begin_obj,
+            date_end=date_end_obj,
+        )
 
     def valid_import(self):
         message = ""
@@ -126,22 +165,29 @@ class AccOperationImportWizard(models.TransientModel):
             + self.model
             + "</h1>"
         )
+
         for file in self.attachment_ids:
+            _logger.debug(f"Processing file {file.name} - Start")
             message += (
                 "<p><strong>Fichier "
                 + file.name
                 + "</strong><br/>Début Import ... <br/>"
             )
             data_filename = file.name.split("_")
+            date_format = "%d%m%Y"
             id_pdm = data_filename[0]
+            start_date = datetime.strptime(data_filename[1], date_format).date()
+            end_date = (
+                datetime.strptime(data_filename[2], date_format) + relativedelta(days=1)
+            ).date()
 
-            counter_id = self.env["acc.counter"].search([("name", "=", id_pdm)])
+            counter_id = self.env["acc.counter"].search([("name", "=", id_pdm)]).id
             data_filename[3] = data_filename[3].lower()
 
             if data_filename[3] not in ["prod", "surplus"]:
                 data_filename[3] = data_filename[3][:-1]
 
-            message += self.delete_existing_data(
+            message += self._delete_existing_data(
                 data_filename=data_filename, counter_id=counter_id
             )
 
@@ -152,6 +198,8 @@ class AccOperationImportWizard(models.TransientModel):
             csv_reader = csv.reader(file_decode, delimiter=";")
             file_reader.extend(csv_reader)
 
+            curves_to_create = []
+
             # Create Data for the CDC
             message += "Lecture et import des données ... <br/>"
             for row in file_reader:
@@ -175,11 +223,11 @@ class AccOperationImportWizard(models.TransientModel):
                     else:
                         timestamp = timestamp + timedelta(minutes=timestep)
 
-                    self.create_curve(
+                    curves_to_create.append(
                         {
                             "name": file.name,
                             "acc_operation_id": self.operation_id.id,
-                            "acc_counter_id": counter_id.id,
+                            "acc_counter_id": counter_id,
                             "comp_data_type": data_filename[3],
                             "power": power,
                             "date_slot": timestamp,
@@ -187,10 +235,27 @@ class AccOperationImportWizard(models.TransientModel):
                         }
                     )
 
-            self.update_partner_id(data_filename, counter_id)
+            _logger.debug(f"Processing file {file.name} - Curves creation")
+            message += "Création des courbes<br/>"
+            self.create_curve(curves_to_create)
+
+            if self.model == "acc.enedis.cdc":
+                _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)
+
+                _logger.debug(f"Processing file {file.name} - Generating daily curves")
+                message += "Génération des données agrégées au jour<br/>"
+                self.env["acc.enedis.cdc.day"].generate(
+                    acc_operation_id=self.operation_id.id,
+                    acc_counter_id=counter_id,
+                    start_date=start_date,
+                    end_date=end_date,
+                )
 
             message += "Fin de l'import des données OK<br/>"
             # Suppression du fichier après création des enregistrements
+            _logger.debug(f"Processing file {file.name} - Remove file")
             message += "Suppression du fichier " + file.name + " ...<br/>"
             file.unlink()
             message += "Suppression OK </p>"