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