Skip to content
GitLab
Explorer
Connexion
Navigation principale
Rechercher ou aller à…
Projet
O
oacc_overview_cdc
Gestion
Activité
Membres
Labels
Programmation
Tickets
Tableaux des tickets
Jalons
Code
Requêtes de fusion
Dépôt
Branches
Validations
Étiquettes
Graphe du dépôt
Comparer les révisions
Analyse
Données d'analyse des chaînes de valeur
Analyse des contributeurs
Données d'analyse du dépôt
Aide
Aide
Support
Documentation de GitLab
Comparer les forfaits GitLab
Forum de la communauté GitLab
Contribuer à GitLab
Donner votre avis
Raccourcis clavier
?
Extraits de code
Groupes
Projets
Ce projet est archivé. Le dépôt et les autres ressources du projet sont en lecture seule.
Afficher davantage de fils d'Ariane
Le Filament
Opération Auto-Consommation Collective
oacc_overview_cdc
Validations
d1c6c947
Valider
d1c6c947
rédigé
Il y a 1 an
par
Julien - Le Filament
Parcourir les fichiers
Options
Téléchargements
Correctifs
Plain Diff
[UPD] Typo from rust
parent
70b460e5
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion
!1
16.0 add date
Modifications
1
Afficher les modifications d'espaces
En ligne
Côte à côte
Affichage de
1 fichier modifié
models/acc_operation.py
+26
-14
26 ajouts, 14 suppressions
models/acc_operation.py
avec
26 ajouts
et
14 suppressions
models/acc_operation.py
+
26
−
14
Voir le fichier @
d1c6c947
# Copyright 2023 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import
pytz
from
datetime
import
datetime
,
time
import
pytz
from
dateutil.relativedelta
import
relativedelta
from
odoo
import
_
,
models
from
odoo.exceptions
import
ValidationError
,
UserError
from
odoo.exceptions
import
UserError
,
ValidationError
from
odoo.osv
import
expression
from
odoo.tools
import
date_utils
...
...
@@ -46,10 +48,11 @@ class AccOperation(models.Model):
# Get last date slot recorded
last_record
=
self
.
get_last_cdc_record
()
start_date
,
end_date
=
self
.
get_interval
(
"
month
"
,
last_record
)
end_date_mo
u
nth
=
end_date
+
relativedelta
(
days
=
1
)
end_date_month
=
end_date
+
relativedelta
(
days
=
1
)
query
=
"""
SELECT
date_trunc(
'
month
'
, cdc.date_slot AT TIME ZONE
'
UTC
'
AT TIME ZONE
'
Europe/Paris
'
) AS date_slot,
date_trunc(
'
month
'
, cdc.date_slot AT TIME ZONE
'
UTC
'
\
AT TIME ZONE
'
Europe/Paris
'
) AS date_slot,
(SUM( (CASE
WHEN cdc.comp_data_type =
'
cons
'
THEN cdc.power
ELSE 0 END) )/2) / 1000 as conso_tot,
...
...
@@ -67,12 +70,13 @@ class AccOperation(models.Model):
cdc.acc_operation_id = %s
AND cdc.date_slot >= %s
AND cdc.date_slot < %s
GROUP BY date_trunc(
'
month
'
, cdc.date_slot AT TIME ZONE
'
UTC
'
AT TIME ZONE
'
Europe/Paris
'
);
GROUP BY date_trunc(
'
month
'
, cdc.date_slot AT TIME ZONE
'
UTC
'
\
AT TIME ZONE
'
Europe/Paris
'
);
"""
query_params
=
(
self
.
id
,
self
.
_convert_time
(
start_date
),
self
.
_convert_time
(
end_date_mo
u
nth
),
self
.
_convert_time
(
end_date_month
),
)
self
.
env
.
cr
.
execute
(
query
,
query_params
)
raw_data
=
self
.
env
.
cr
.
fetchone
()
...
...
@@ -197,7 +201,8 @@ class AccOperation(models.Model):
query
=
"""
SELECT
date_trunc(%s, cdc.date_slot AT TIME ZONE
'
UTC
'
AT TIME ZONE
'
Europe/Paris
'
) AS date_slot,
date_trunc(%s, cdc.date_slot AT TIME ZONE
'
UTC
'
\
AT TIME ZONE
'
Europe/Paris
'
) AS date_slot,
(SUM( (CASE
WHEN cdc.comp_data_type =
'
cons
'
THEN cdc.power ELSE 0 END) )/2) / 1000 as cons,
...
...
@@ -217,7 +222,8 @@ class AccOperation(models.Model):
AND cdc.date_slot >= %s
AND cdc.date_slot <= %s
AND cdc.partner_id IN %s
GROUP BY date_trunc(%s, cdc.date_slot AT TIME ZONE
'
UTC
'
AT TIME ZONE
'
Europe/Paris
'
)
GROUP BY date_trunc(%s, cdc.date_slot AT TIME ZONE
'
UTC
'
\
AT TIME ZONE
'
Europe/Paris
'
)
ORDER BY date_slot ASC;
"""
query_params
=
(
...
...
@@ -266,7 +272,8 @@ class AccOperation(models.Model):
query
=
"""
SELECT
date_trunc(
'
day
'
, cdc.date_slot AT TIME ZONE
'
UTC
'
AT TIME ZONE
'
Europe/Paris
'
) AS date_slot,
date_trunc(
'
day
'
, cdc.date_slot AT TIME ZONE
'
UTC
'
\
AT TIME ZONE
'
Europe/Paris
'
) AS date_slot,
(SUM( (CASE
WHEN cdc.comp_data_type =
'
autocons
'
THEN cdc.power ELSE 0 END) )/2) / 1000 as autocons,
...
...
@@ -284,7 +291,8 @@ class AccOperation(models.Model):
AND cdc.date_slot >= %s
AND cdc.date_slot <= %s
AND cdc.partner_id IN %s
GROUP BY date_trunc(
'
day
'
, cdc.date_slot AT TIME ZONE
'
UTC
'
AT TIME ZONE
'
Europe/Paris
'
)
GROUP BY date_trunc(
'
day
'
, cdc.date_slot AT TIME ZONE
'
UTC
'
\
AT TIME ZONE
'
Europe/Paris
'
)
ORDER BY date_slot ASC;
"""
query_params
=
(
...
...
@@ -329,7 +337,8 @@ class AccOperation(models.Model):
query
=
"""
SELECT
date_trunc(%s, cdc.date_slot AT TIME ZONE
'
UTC
'
AT TIME ZONE
'
Europe/Paris
'
) AS date_slot,
date_trunc(%s, cdc.date_slot AT TIME ZONE
'
UTC
'
\
AT TIME ZONE
'
Europe/Paris
'
) AS date_slot,
((SUM((CASE
WHEN cdc.comp_data_type =
'
prod
'
THEN cdc.power
ELSE 0 END))
...
...
@@ -348,7 +357,8 @@ class AccOperation(models.Model):
AND cdc.date_slot >= %s
AND cdc.date_slot <= %s
AND cdc.partner_id IN %s
GROUP BY date_trunc(%s, cdc.date_slot AT TIME ZONE
'
UTC
'
AT TIME ZONE
'
Europe/Paris
'
)
GROUP BY date_trunc(%s, cdc.date_slot AT TIME ZONE
'
UTC
'
\
AT TIME ZONE
'
Europe/Paris
'
)
ORDER BY date_slot ASC;
"""
query_params
=
(
...
...
@@ -393,7 +403,8 @@ class AccOperation(models.Model):
query
=
"""
SELECT
date_trunc(
'
day
'
, cdc.date_slot AT TIME ZONE
'
UTC
'
AT TIME ZONE
'
Europe/Paris
'
) AS date_slot,
date_trunc(
'
day
'
, cdc.date_slot AT TIME ZONE
'
UTC
'
\
AT TIME ZONE
'
Europe/Paris
'
) AS date_slot,
((SUM((CASE
WHEN cdc.comp_data_type =
'
prod
'
THEN cdc.power
ELSE 0 END))
...
...
@@ -412,7 +423,8 @@ class AccOperation(models.Model):
AND cdc.date_slot >= %s
AND cdc.date_slot <= %s
AND cdc.partner_id IN %s
GROUP BY date_trunc(
'
day
'
, cdc.date_slot AT TIME ZONE
'
UTC
'
AT TIME ZONE
'
Europe/Paris
'
)
GROUP BY date_trunc(
'
day
'
, cdc.date_slot AT TIME ZONE
'
UTC
'
\
AT TIME ZONE
'
Europe/Paris
'
)
ORDER BY date_slot ASC;
"""
query_params
=
(
...
...
Ce diff est replié.
Cliquez pour l'agrandir.
Aperçu
0%
Chargement en cours
Veuillez réessayer
ou
joindre un nouveau fichier
.
Annuler
You are about to add
0
people
to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Enregistrer le commentaire
Annuler
Veuillez vous
inscrire
ou vous
se connecter
pour commenter