Manu 1 2 4 5 7bis sans combo année
This commit is contained in:
+19
-6
@@ -513,6 +513,8 @@ def gestion_ordres():
|
||||
"total_prix_net": 0.0,
|
||||
"total_eng_brut": 0.0,
|
||||
"total_eng_net": 0.0,
|
||||
"plus_value": r["PlusValue"],
|
||||
"date_plusvalue": r["date_plusvalue"],
|
||||
}
|
||||
|
||||
groupes_dict[isin]["pieds"].append(pied_data)
|
||||
@@ -556,25 +558,36 @@ def gestion_ordres():
|
||||
try:
|
||||
with db.engine.begin() as conn:
|
||||
for isin, groupe in groupes_dict.items():
|
||||
# Utilisation d'une tolérance de décimales (ex: 1e-9) pour éviter les erreurs d'arrondi flottant
|
||||
if abs(groupe["total_quantite"]) < 1e-9:
|
||||
ordre_id = groupe["id"]
|
||||
total_eng_net = groupe["total_eng_net"]
|
||||
|
||||
# 1. Sauvegarde en base de données
|
||||
# Recherche de la date la plus grande (récente) parmi toutes les lignes (pieds) de l'ordre
|
||||
max_date = max((p["date_op"] for p in groupe["pieds"] if p["date_op"] is not None), default=None)
|
||||
|
||||
# 1. Mise à jour de l'état des lignes dans la table ordre_pied
|
||||
conn.execute(
|
||||
text(
|
||||
"UPDATE ordre_pied SET Etat = :nouvel_etat WHERE Id_entete ="
|
||||
" :ordre_id"
|
||||
"UPDATE ordre_pied SET Etat = :nouvel_etat WHERE Id_entete = :ordre_id"
|
||||
),
|
||||
{"nouvel_etat": "soldé", "ordre_id": ordre_id},
|
||||
)
|
||||
|
||||
# 2. Mise à jour immédiate en mémoire pour l'affichage dans le template
|
||||
# 2. Mise à jour de PlusValue et date_plusvalue dans la table ordre
|
||||
conn.execute(
|
||||
text(
|
||||
"UPDATE ordre SET PlusValue = :plus_value, date_plusvalue = :date_pv WHERE ID = :ordre_id"
|
||||
),
|
||||
{"plus_value": total_eng_net, "date_pv": max_date, "ordre_id": ordre_id},
|
||||
)
|
||||
|
||||
# 3. Mise à jour immédiate en mémoire pour l'affichage dans le template
|
||||
groupe["plus_value"] = total_eng_net
|
||||
groupe["date_plusvalue"] = max_date
|
||||
for pied in groupe["pieds"]:
|
||||
pied["etat"] = "soldé"
|
||||
|
||||
except Exception as e:
|
||||
# En cas d'erreur, SQLAlchemy gère le rollback automatique avec le bloc 'with connection.begin()'
|
||||
pass
|
||||
|
||||
groupes_ordres = list(groupes_dict.values())
|
||||
|
||||
Reference in New Issue
Block a user