From af6a3d470b55ed4b3d8b206e5e5ac57f794949ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20-=20Le=20Filament?= <remi@le-filament.com> Date: Mon, 24 Mar 2025 12:04:19 +0100 Subject: [PATCH] [REF] use curve_mixin functions --- wizard/acc_operation_import_wizard.py | 58 ++++++--------------------- 1 file changed, 12 insertions(+), 46 deletions(-) diff --git a/wizard/acc_operation_import_wizard.py b/wizard/acc_operation_import_wizard.py index 2c356a0..85faabf 100644 --- a/wizard/acc_operation_import_wizard.py +++ b/wizard/acc_operation_import_wizard.py @@ -9,10 +9,8 @@ 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__) @@ -71,60 +69,26 @@ class AccOperationImportWizard(models.TransientModel): days=1 ) - # Vérification si des données existent déjà - # pour cet intervalle de date - start_datetime = local_to_utc(date_begin_obj, "Europe/Paris") - end_datetime = local_to_utc(date_end_obj, "Europe/Paris") - computed_data_type = data_filename[3].lower() if computed_data_type == "conso": computed_data_type = "cons" elif computed_data_type == "autoconso": computed_data_type = "autocons" - domain_all = [ - ("acc_operation_id", "=", self.operation_id.id), - ("acc_counter_id", "=", counter_id), - ] - 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]), - ], - ] + # Vérification si des données existent déjà pour cet intervalle de date + rec_ids = self.env[self.model].search( + self._get_read_group_domain( + acc_operation_id=self.operation_id.id, + start_date=date_begin_obj, + end_date=date_end_obj, + values_type=[computed_data_type], + exclude_empty_partner=False, + ) ) - rec_ids = self.env[self.model].search(domain_cdc) if rec_ids: message += "Suppression des enregistrements existants de courbes ... <br/>" rec_ids.unlink() 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): @@ -240,7 +204,9 @@ class AccOperationImportWizard(models.TransientModel): self.create_curve(curves_to_create) if self.model == "acc.enedis.cdc": - _logger.debug(f"Processing file {file.name} - Update partner_id on curves") + _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) -- GitLab