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

[UPD]Pre commit

parent 912ec4eb
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
# Copyright 2023 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import models
from . import wizards
from . import models, wizards
......@@ -13,7 +13,7 @@
"views/acc_operation_views.xml",
# views menu
# wizard
"wizards/acc_operation_wizard_views.xml"
"wizards/acc_operation_wizard_views.xml",
],
"assets": {
"web._assets_primary_variables": [],
......
# Copyright 2023 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import logging
import pytz
from datetime import date, datetime
import pytz
from dateutil.relativedelta import relativedelta
from odoo import _, fields, models
from odoo.exceptions import UserError
......@@ -44,34 +45,6 @@ class AccOperation(models.Model):
# ------------------------------------------------------
# Actions
# ------------------------------------------------------
# def curves(self):
# self.ensure_one()
# message = self.get_curves()
#
# # Logs information
# log_id = self.env["acc.logs"].create(
# {
# "name": "Appel API Enedis Courbes du " + str(fields.Date.today()),
# "date_launched": fields.Datetime.now(),
# "type_log": "api",
# "message": message,
# "acc_operation_id": self.id,
# }
# )
#
# view_id = self.env.ref("oacc.acc_logs_form").id
# return {
# "name": "LOGS",
# "view_type": "form",
# "view_mode": "form",
# "views": [(view_id, "form")],
# "res_model": "acc.logs",
# "view_id": view_id,
# "type": "ir.actions.act_window",
# "res_id": log_id.id,
# "target": "new",
# "flags": {"initial_mode": "view"},
# }
def get_perimeter(self):
self.ensure_one()
......@@ -106,11 +79,8 @@ class AccOperation(models.Model):
# API functions
# ------------------------------------------------------
def curves(
self,
date_start,
date_end,
usage_point_cons_ids=None,
usage_point_prod_ids=None):
self, date_start, date_end, usage_point_cons_ids=None, usage_point_prod_ids=None
):
"""
Récupère les données de l'opération concernant le périmètre:
- liste des PRM
......@@ -134,36 +104,55 @@ class AccOperation(models.Model):
if usage_point_cons_ids:
# Traitement données de cons
message += "<br/><strong>Traitement des données de consommation</strong><br/>"
message += (
"<br/><strong>Traitement des données de consommation</strong><br/>"
)
for usage_point_id in usage_point_cons_ids:
desc = "Opération: " + self.name + " - PRM: " + usage_point_id.name + " - Date: " + str(fields.Datetime.today())
desc = (
"Opération: "
+ self.name
+ " - PRM: "
+ usage_point_id.name
+ " - Date: "
+ str(fields.Datetime.today())
)
# message += self.with_delay(description=desc).get_definitive_load_curves(
self.with_delay(description=desc).get_definitive_load_curves(
date_end,
date_start,
["cons,autocons,complement"],
usage_point_id)
date_end, date_start, ["cons,autocons,complement"], usage_point_id
)
if usage_point_prod_ids:
# Traitement données de prod
message += "<br/><strong>Traitement des données de production</strong><br/>"
for usage_point_id in usage_point_prod_ids:
desc = "Opération: " + self.name + " - PRM: " + usage_point_id.name + " - Date: " + str(
fields.Datetime.today())
desc = (
"Opération: "
+ self.name
+ " - PRM: "
+ usage_point_id.name
+ " - Date: "
+ str(fields.Datetime.today())
)
self.with_delay(description=desc).get_definitive_load_curves(
# message += self.with_delay(description=desc).get_definitive_load_curves(
date_end,
date_start,
["surplus,prod"],
usage_point_id)
usage_point_id,
)
message += (
"<br/><h1>Fin appel API Courbes: " + str(fields.Datetime.now()) + "</h1>"
)
# Logs information
log_id = self.env["acc.logs"].create(
self.env["acc.logs"].create(
{
"name": "Appel API Enedis Courbes du " + str(fields.Date.today()) + " - Période " + str(date_start) + " " + str(date_end),
"name": "Appel API Enedis Courbes du "
+ str(fields.Date.today())
+ " - Période "
+ str(date_start)
+ " "
+ str(date_end),
"date_launched": fields.Datetime.now(),
"type_log": "api",
"message": message,
......@@ -172,14 +161,21 @@ class AccOperation(models.Model):
)
def get_definitive_load_curves(
self, date_end, date_start, type_curve, usage_point_id):
self, date_end, date_start, type_curve, usage_point_id
):
message = str()
message += "PRM " + usage_point_id.name + "\n"
message += "Appel API ...\n"
curves_data = self._get_definitive_load_curves(
self.name, date_end, date_start, type_curve,
usage_point_id.name, self.client_id, self.secret_id)
self.name,
date_end,
date_start,
type_curve,
usage_point_id.name,
self.client_id,
self.secret_id,
)
message += "Appel API terminé. Traitement des données ...\n"
curves = curves_data.get("curves")
......
......@@ -13,11 +13,16 @@ class AccOperationWizard(models.TransientModel):
# Fields declaration
# ------------------------------------------------------
def _default_operation_id(self):
op = self.env['acc.operation'].browse(self.env.context.get('active_ids')[0] if self.env.context.get('active_ids') else [])
op = self.env["acc.operation"].browse(
self.env.context.get("active_ids")[0]
if self.env.context.get("active_ids")
else []
)
return op
operation_id = fields.Many2one(
"acc.operation", default=lambda self: self._default_operation_id())
"acc.operation", default=lambda self: self._default_operation_id()
)
date_start = fields.Date("Date de début")
date_end = fields.Date("Date de fin")
prm_cons_ids = fields.Many2many(
......@@ -26,14 +31,16 @@ class AccOperationWizard(models.TransientModel):
column1="cons_id",
column2="op_id",
domain=[("is_delivery", "=", True)],
string="PRM de soutirage")
string="PRM de soutirage",
)
prm_prod_ids = fields.Many2many(
"acc.counter",
relation="acc_counter_prod_rel",
column1="prod_id",
column2="op_id",
domain=[("is_injection", "=", True)],
string="PRM d'injection")
string="PRM d'injection",
)
# ------------------------------------------------------
# SQL Constraints
......@@ -66,7 +73,7 @@ class AccOperationWizard(models.TransientModel):
if (self.date_end - self.date_start).days > 31:
raise UserError(_("L'intervalle de temps ne doit pas dépasser 31 Jours"))
if (self.date_end <= self.date_start):
if self.date_end <= self.date_start:
raise UserError(_("La date de fin doit être supérieure à la date de début"))
self.operation_id.curves(
......
......@@ -32,12 +32,12 @@
string="Récupérer"
type="object"
/>
<button
class="btn btn-sm btn-primary"
name="get_curves_all"
string="Récupérer depuis le début"
type="object"
/>
<!-- <button-->
<!-- class="btn btn-sm btn-primary"-->
<!-- name="get_curves_all"-->
<!-- string="Récupérer depuis le début"-->
<!-- type="object"-->
<!-- />-->
<button
class="btn btn-sm btn-default"
special="cancel"
......
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