diff --git a/models/acc_operation.py b/models/acc_operation.py index a342776b9f775ccc5ddd3c32649df723bea9dee8..7b6574c38d48c49fca3a23a0a1bf94680c20a60c 100644 --- a/models/acc_operation.py +++ b/models/acc_operation.py @@ -151,31 +151,45 @@ class AccOperation(models.Model): timezone.utc ).replace(tzinfo=None) - self.env["acc.enedis.cdc"].create( - { - "name": file.name, - "acc_operation_id": self.id, - "acc_counter_id": counter_id.id or False, - "comp_data_type": computed_data_type, - "power": row[1], - "date_slot": slot_datetime_tz, - "date_slot_utc": date_slot_utc, - } - ) - # Create 2nd slot 30-60min - self.env["acc.enedis.cdc"].create( - { - "name": file.name, - "acc_operation_id": self.id, - "acc_counter_id": counter_id.id or False, - "comp_data_type": computed_data_type, - "power": row[2], - "date_slot": slot_datetime_tz - + timedelta(minutes=30), - "date_slot_utc": date_slot_utc - + timedelta(minutes=30), - } - ) + # Begin Check doublon + domain_all = [ + ("date_slot", "=", slot_datetime_tz), + ("acc_operation_id", "=", self.id), + ("comp_data_type", "=", computed_data_type), + ("acc_counter_id", "=", counter_id.id) + ] + + acc_enedis_cdc_id = self.env["acc.enedis.cdc"].search( + domain_all) + # End check doublon + + if not acc_enedis_cdc_id: + + self.env["acc.enedis.cdc"].create( + { + "name": file.name, + "acc_operation_id": self.id, + "acc_counter_id": counter_id.id or False, + "comp_data_type": computed_data_type, + "power": row[1], + "date_slot": slot_datetime_tz, + "date_slot_utc": date_slot_utc, + } + ) + # Create 2nd slot 30-60min + self.env["acc.enedis.cdc"].create( + { + "name": file.name, + "acc_operation_id": self.id, + "acc_counter_id": counter_id.id or False, + "comp_data_type": computed_data_type, + "power": row[2], + "date_slot": slot_datetime_tz + + timedelta(minutes=30), + "date_slot_utc": date_slot_utc + + timedelta(minutes=30), + } + ) # Logs information logs self.env["acc.enedis.import.logs"].create(