Skip to content
Extraits de code Groupes Projets
Valider 91ddcd9b rédigé par Juliana's avatar Juliana
Parcourir les fichiers

[UPD]Change format date slot

parent 94e22574
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -2,11 +2,11 @@ ...@@ -2,11 +2,11 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import base64 import base64
import pytz from datetime import datetime, timedelta, timezone
from datetime import datetime, timedelta
from io import StringIO from io import StringIO
import pandas as pd import pandas as pd
from dateutil import tz
from odoo import _, api, fields, models from odoo import _, api, fields, models
from odoo.exceptions import UserError from odoo.exceptions import UserError
...@@ -123,6 +123,8 @@ class AccOperation(models.Model): ...@@ -123,6 +123,8 @@ class AccOperation(models.Model):
) )
computed_data_type = data_filename[3].lower() 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 = StringIO(base64.b64decode(file.datas).decode("UTF-8"))
file_decode.seek(0) file_decode.seek(0)
...@@ -133,8 +135,18 @@ class AccOperation(models.Model): ...@@ -133,8 +135,18 @@ class AccOperation(models.Model):
# Create Data for the CDC # Create Data for the CDC
for row in reader.values: for row in reader.values:
# Create 1st slot 0-30min # Create 1st slot 0-30min
date_slot = datetime.strptime(row[0], "%d/%m/%Y %H:%M") slot_datetime_tz = datetime.strptime(
date_slot_utc = fields.Datetime.to_string(date_slot) 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( self.env["acc.enedis.cdc"].create(
{ {
...@@ -143,16 +155,11 @@ class AccOperation(models.Model): ...@@ -143,16 +155,11 @@ class AccOperation(models.Model):
"acc_counter_id": counter_id.id or False, "acc_counter_id": counter_id.id or False,
"comp_data_type": computed_data_type, "comp_data_type": computed_data_type,
"power": row[1], "power": row[1],
"date_slot": date_slot, "date_slot": slot_datetime_tz,
"date_slot_utc": date_slot_utc, "date_slot_utc": date_slot_utc,
} }
) )
# Create 2nd slot 30-60min # 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( self.env["acc.enedis.cdc"].create(
{ {
"name": file.name, "name": file.name,
...@@ -160,8 +167,10 @@ class AccOperation(models.Model): ...@@ -160,8 +167,10 @@ class AccOperation(models.Model):
"acc_counter_id": counter_id.id or False, "acc_counter_id": counter_id.id or False,
"comp_data_type": computed_data_type, "comp_data_type": computed_data_type,
"power": row[2], "power": row[2],
"date_slot": date_slot_30, "date_slot": slot_datetime_tz
"date_slot_utc": date_slot_utc, + timedelta(minutes=30),
"date_slot_utc": date_slot_utc
+ timedelta(minutes=30),
} }
) )
......
...@@ -25,7 +25,12 @@ ...@@ -25,7 +25,12 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Opération"> <form string="Opération">
<header> <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> </header>
<sheet> <sheet>
<widget <widget
......
...@@ -42,7 +42,10 @@ ...@@ -42,7 +42,10 @@
<field name="is_producer" /> <field name="is_producer" />
<field name="is_consumer" /> <field name="is_consumer" />
<field name="is_pmo" /> <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 name="is_buyer_surplus" />
</field> </field>
<xpath expr="//notebook" position="inside"> <xpath expr="//notebook" position="inside">
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter