diff --git a/models/acc_operation.py b/models/acc_operation.py index 997c79e9d1b4ec7de2eacd54ffaa351c2202f4c1..e2acb7a865f0ee66af890e0976586ea434343c5a 100644 --- a/models/acc_operation.py +++ b/models/acc_operation.py @@ -2,11 +2,11 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). import base64 -import pytz -from datetime import datetime, timedelta +from datetime import datetime, timedelta, timezone from io import StringIO import pandas as pd +from dateutil import tz from odoo import _, api, fields, models from odoo.exceptions import UserError @@ -123,6 +123,8 @@ class AccOperation(models.Model): ) computed_data_type = data_filename[3].lower() + if computed_data_type != "prod" and computed_data_type != "surplus": + computed_data_type = data_filename[3].lower()[:-1] file_decode = StringIO(base64.b64decode(file.datas).decode("UTF-8")) file_decode.seek(0) @@ -133,8 +135,18 @@ class AccOperation(models.Model): # Create Data for the CDC for row in reader.values: # Create 1st slot 0-30min - date_slot = datetime.strptime(row[0], "%d/%m/%Y %H:%M") - date_slot_utc = fields.Datetime.to_string(date_slot) + slot_datetime_tz = datetime.strptime( + row[0], "%d/%m/%Y %H:%M" + ) + slot_tz = datetime.strftime( + slot_datetime_tz, "%Y-%m-%d %H:%M:%S" + ) + slot_date_tz = datetime.fromisoformat(slot_tz).replace( + tzinfo=tz.gettz("Europe/Paris") + ) + date_slot_utc = slot_date_tz.astimezone( + timezone.utc + ).replace(tzinfo=None) self.env["acc.enedis.cdc"].create( { @@ -143,16 +155,11 @@ class AccOperation(models.Model): "acc_counter_id": counter_id.id or False, "comp_data_type": computed_data_type, "power": row[1], - "date_slot": date_slot, + "date_slot": slot_datetime_tz, "date_slot_utc": date_slot_utc, } ) # Create 2nd slot 30-60min - date_slot_30 = datetime.strptime(row[0], "%d/%m/%Y %H:%M") + timedelta(minutes=30) - - date_slot_utc = fields.Datetime.to_string(date_slot_30) - - # date_slot_utc = fields.Datetime.to_string(date_slot_30) self.env["acc.enedis.cdc"].create( { "name": file.name, @@ -160,8 +167,10 @@ class AccOperation(models.Model): "acc_counter_id": counter_id.id or False, "comp_data_type": computed_data_type, "power": row[2], - "date_slot": date_slot_30, - "date_slot_utc": date_slot_utc, + "date_slot": slot_datetime_tz + + timedelta(minutes=30), + "date_slot_utc": date_slot_utc + + timedelta(minutes=30), } ) diff --git a/views/acc_operation_views.xml b/views/acc_operation_views.xml index 98233790f94d5e6afa723281769e70634ea65af8..779e54cab3c41cfe8c5515a404cc04b1ffaa3f6d 100644 --- a/views/acc_operation_views.xml +++ b/views/acc_operation_views.xml @@ -25,7 +25,12 @@ <field name="arch" type="xml"> <form string="Opération"> <header> - <button string="Intégration des données ENEDIS" type="object" class="btn-primary" name="import_enedis_data"/> + <button + string="Intégration des données ENEDIS" + type="object" + class="btn-primary" + name="import_enedis_data" + /> </header> <sheet> <widget diff --git a/views/res_partner_views.xml b/views/res_partner_views.xml index 1b7f4596b21fa247345ddef5c882fde3b002e586..f3b6f3c45a1833d6f8910d5d2175f8453f0fca18 100644 --- a/views/res_partner_views.xml +++ b/views/res_partner_views.xml @@ -42,7 +42,10 @@ <field name="is_producer" /> <field name="is_consumer" /> <field name="is_pmo" /> - <field name="mail_contact_pmo" attrs="{'invisible': [('is_pmo', '!=', True)]}"/> + <field + name="mail_contact_pmo" + attrs="{'invisible': [('is_pmo', '!=', True)]}" + /> <field name="is_buyer_surplus" /> </field> <xpath expr="//notebook" position="inside">