diff --git a/wizard/acc_operation_import_wizard.py b/wizard/acc_operation_import_wizard.py index a0d4994373c89397f41c9efb6e4f1f2d26cd7a61..e18f1d06cadecadc97b7c68317b80754647cac34 100644 --- a/wizard/acc_operation_import_wizard.py +++ b/wizard/acc_operation_import_wizard.py @@ -1,8 +1,12 @@ # Copyright (c) 2024- Le Filament (https://le-filament.com) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +import logging + from odoo import fields, models +_logger = logging.getLogger(__name__) + class AccOperationImportWizard(models.TransientModel): _inherit = "acc.operation.import.wizard" @@ -42,3 +46,42 @@ class AccOperationImportWizard(models.TransientModel): # ------------------------------------------------------ # Business methods # ------------------------------------------------------ + def by_file_post_action( + self, counter_id, filename, data_filename, start_date, end_date + ): + message = super().by_file_post_action( + counter_id=counter_id, + filename=filename, + data_filename=data_filename, + start_date=start_date, + end_date=end_date, + ) + + if self.model == "acc.enedis.cdc": + _logger.debug(f"Processing file {filename} - 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 {filename} - Generating daily curves") + message += "Génération des données agrégées au jour<br/>" + self.env["acc.enedis.cdc.day"].populate_daily_aggregated_data( + acc_operation_id=self.operation_id.id, + acc_counter_id=counter_id, + start_date=start_date, + end_date=end_date, + ) + # We recompute prorata only if prod or surplus counter + if data_filename[3] in ("prod", "surplus"): + self.env["acc.enedis.cdc.prorata"].populate_daily_prorata( + acc_operation_id=self.operation_id.id, + start_date=start_date, + end_date=end_date, + ) + return message + + def global_post_action(self): + message = super().global_post_action() + message += "Génération des données statiques<br/>" + self.operation_id.set_static_data() + self.operation_id.is_cdc_data_exists = True + return message