diff --git a/models/acc_operation.py b/models/acc_operation.py index 8f5c655887a38f3328f220be4f130633b552ff83..14ea31135a7c71a30944d990d632cc5ba1ba1cb8 100644 --- a/models/acc_operation.py +++ b/models/acc_operation.py @@ -1,9 +1,9 @@ # Copyright 2023 Le Filament (<http://www.le-filament.com>) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). import logging -from datetime import date, datetime +from datetime import date, datetime, timezone -import pytz +from dateutil import tz from dateutil.relativedelta import relativedelta from odoo import _, fields, models @@ -120,7 +120,10 @@ class AccOperation(models.Model): + str(fields.Datetime.today()) ) # message += self.with_delay(description=desc).get_definitive_load_curves( - self.with_delay(description=desc).get_definitive_load_curves( + # self.with_delay(description=desc).get_definitive_load_curves( + # date_end, date_start, usage_point_id, "cons" + # ) + self.get_definitive_load_curves( date_end, date_start, usage_point_id, "cons" ) @@ -136,7 +139,14 @@ class AccOperation(models.Model): + " - Date: " + str(fields.Datetime.today()) ) - self.with_delay(description=desc).get_definitive_load_curves( + # self.with_delay(description=desc).get_definitive_load_curves( + # # message += self.with_delay(description=desc).get_definitive_load_curves( + # date_end, + # date_start, + # usage_point_id, + # "prod", + # ) + self.get_definitive_load_curves( # message += self.with_delay(description=desc).get_definitive_load_curves( date_end, date_start, @@ -189,13 +199,15 @@ class AccOperation(models.Model): type_curve = curve["type"] for point in curve["interval_reading"]: - dt = pytz.utc.localize( - datetime.strptime(point["timestamp"], "%Y-%m-%dT%H:%M:%SZ") + date_slot = datetime.strptime(point["timestamp"], "%Y-%m-%dT%H:%M:%SZ") + + slot_datetime_tz = datetime.strftime(date_slot, "%Y-%m-%d %H:%M:%S") + slot_date_tz = datetime.fromisoformat(slot_datetime_tz).replace( + tzinfo=tz.gettz("Europe/Paris") ) - date_slot = fields.Datetime.to_string( - dt.astimezone(pytz.timezone("Europe/Paris")) + date_slot_utc = slot_date_tz.astimezone(timezone.utc).replace( + tzinfo=None ) - date_slot_utc = fields.Datetime.to_string(dt) self.env["acc.enedis.cdc"].create( { @@ -205,7 +217,7 @@ class AccOperation(models.Model): "comp_data_type": type_curve, "power": point["value"], "date_slot": date_slot, - "date_slot_utc": date_slot_utc, + "date_slot_utc": date_slot_utc } ) message += "Fin du traitement des données\n" @@ -223,13 +235,13 @@ class AccOperation(models.Model): ) date_start_it = self.date_start_contract - date_end_it = self.date_start_contract + relativedelta(months=1, days=-1) + date_end_it = self.date_start_contract + relativedelta(months=1) i = 1 while i < nb_months: self.curves(date_start_it, date_end_it) date_start_it = date_start_it + relativedelta(months=1) - date_end_it = date_start_it + relativedelta(months=1, days=-1) + date_end_it = date_start_it + relativedelta(months=1) i += 1 def perimeter(self): diff --git a/wizards/acc_operation_wizard.py b/wizards/acc_operation_wizard.py index 2930c0dcba00879fd0186f978f2fe4a47b87b191..44f5803c7bb4de2a9d246d3effd95326b4ea833a 100644 --- a/wizards/acc_operation_wizard.py +++ b/wizards/acc_operation_wizard.py @@ -24,7 +24,7 @@ class AccOperationWizard(models.TransientModel): "acc.operation", default=lambda self: self._default_operation_id() ) date_start = fields.Date("Date de début") - date_end = fields.Date("Date de fin") + date_end = fields.Date("Date de fin (exclue)") prm_cons_ids = fields.Many2many( "acc.counter", relation="acc_counter_cons_rel", diff --git a/wizards/acc_operation_wizard_confirm.py b/wizards/acc_operation_wizard_confirm.py index a05e1c25cd9fb29bc7f0029becc5992ea90d51c3..c37b85e8b9b82bf170a2a2a9ac5db1af72d032c7 100644 --- a/wizards/acc_operation_wizard_confirm.py +++ b/wizards/acc_operation_wizard_confirm.py @@ -13,7 +13,7 @@ class AccOperationWizardConfirm(models.TransientModel): # ------------------------------------------------------ operation_id = fields.Many2one("acc.operation") date_start = fields.Date("Date de début") - date_end = fields.Date("Date de fin") + date_end = fields.Date("Date de fin (exclue)") prm_cons_ids = fields.Many2many( "acc.counter", relation="acc_counter_cons_confirm_rel",