From 91ddcd9bac58ab2d075773b9609c3c83ca931161 Mon Sep 17 00:00:00 2001
From: Juliana <juliana@le-filament.com>
Date: Mon, 19 Sep 2022 18:23:21 +0200
Subject: [PATCH] [UPD]Change format date slot

---
 models/acc_operation.py       | 33 +++++++++++++++++++++------------
 views/acc_operation_views.xml |  7 ++++++-
 views/res_partner_views.xml   |  5 ++++-
 3 files changed, 31 insertions(+), 14 deletions(-)

diff --git a/models/acc_operation.py b/models/acc_operation.py
index 997c79e..e2acb7a 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 9823379..779e54c 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 1b7f459..f3b6f3c 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">
-- 
GitLab