diff --git a/models/acc_operation.py b/models/acc_operation.py
index 3e84cda6a6d7539ca29ceded90b9dc2767f836d4..b9396c5308835289c2539cd8b798904d10e6af75 100644
--- a/models/acc_operation.py
+++ b/models/acc_operation.py
@@ -44,7 +44,7 @@ class AccOperation(models.Model):
                 la date de début de mois
         """
         # Get last date slot recorded
-        last_record = self.get_the_last_day()
+        last_record = self.get_last_cdc_record()
         date_start, date_end = self.get_last_day("month", last_record)
         query = """
             SELECT
@@ -78,11 +78,10 @@ class AccOperation(models.Model):
         raw_data = self.env.cr.fetchall()
         return raw_data[0][1], raw_data[0][2], raw_data[0][3], date_start
 
-    def get_the_last_day(self):
+    def get_last_cdc_record(self):
         """
-        Fonction retournant la date du dernier enregistrement
+        @returns: last acc.enedis.cdc record in operations
         """
-
         # Get last date slot recorded
         last_record = (
             self.env["acc.enedis.cdc"]
@@ -125,23 +124,16 @@ class AccOperation(models.Model):
                 avec un enreisgtrement pour l'opération donnée moins 1 an
                 la date de fin est égale à la dernière date
                 avec un enreisgtrement pour l'opération donnée
-        :param  scale: type d'affichage des graphes
+        :param str scale: type d'affichage des graphes
                        (day/week/month/semestre/year)
-                last_record: Dernier enregistrement dans la base
-        :return: une date de début et une date de fin
+        :param object last_record: Dernier enregistrement dans la base
+        @returns: une date de début et une date de fin
         """
 
         # Convert end datetime to timezone
-        last_day_start = last_record.date_slot.replace(hour=0, minute=0, second=0)
-        last_day_end = last_day_start + relativedelta(days=1)
-        # Get end time slot for previous month with timezone
-        # Manage if date is the last day of the month
-        if fields.Date.to_date(last_day_start) == fields.Date.to_date(
-            date_utils.end_of(last_record.date_slot, "month")
-        ):
-            end_month = last_day_end.replace(day=1)
-        else:
-            end_month = last_day_start.replace(day=1)
+        last_day_start = date_utils.start_of(last_record.date_slot, "day")
+        last_day_end = date_utils.end_of(last_record.date_slot, "day")
+        end_month = date_utils.end_of(last_record.date_slot, "month")
 
         if scale == "semestre":
             date_end = end_month
@@ -157,7 +149,7 @@ class AccOperation(models.Model):
             date_end = last_day_end
         # month by default
         else:
-            date_start = end_month - relativedelta(months=1)
+            date_start =  date_utils.start_of(end_month, "month")
             date_end = end_month
 
         return date_start, date_end
@@ -514,7 +506,7 @@ class AccOperation(models.Model):
             chart_data.update(chart_data_prod)
 
         result_graph["chart_data"] = chart_data
-        last_record = self.get_the_last_day()
+        last_record = self.get_last_cdc_record()
         date_deb, date_max = self.get_last_day("day", last_record)
         date_max = date_max.strftime("%d/%m/%Y")
         date_min = self.date_start_contract