fix(fournée): uniformise et corrige le traitement des décimaux
This commit is contained in:
parent
1b5630c7e9
commit
bc7aba0cb5
@ -10,6 +10,12 @@ import nested_admin
|
||||
|
||||
from . import models
|
||||
|
||||
def clean(d):
|
||||
if d == d.to_integral():
|
||||
return d.quantize(Decimal(1))
|
||||
else:
|
||||
return d.quantize(Decimal('1.000')).normalize()
|
||||
|
||||
|
||||
class MyAdminSite(admin.AdminSite):
|
||||
site_header = "Fournée 2.0"
|
||||
@ -188,14 +194,14 @@ class FournéeAdmin(nested_admin.NestedModelAdmin):
|
||||
self.message_user(
|
||||
request,
|
||||
f"Création d'une coulée de "
|
||||
f"{pâte_manquante.normalize()} kg "
|
||||
f"{clean(pâte_manquante)} kg "
|
||||
f"pour la pâte {pâte_nom}.",
|
||||
)
|
||||
elif pâte_manquante < 0:
|
||||
self.message_user(
|
||||
request,
|
||||
f"Attention la pâte {pâte_nom} est prévue "
|
||||
f"en excès ({-pâte_manquante.normalize()} kg en trop)",
|
||||
f"en excès ({-clean(pâte_manquante)} kg en trop)",
|
||||
messages.WARNING,
|
||||
)
|
||||
|
||||
@ -234,10 +240,10 @@ class FournéeAdmin(nested_admin.NestedModelAdmin):
|
||||
for i in ingrédients:
|
||||
quantités.append([
|
||||
i,
|
||||
(c.quantité / c.pâte.poids_de_base * sum(
|
||||
clean(c.quantité / c.pâte.poids_de_base * sum(
|
||||
c.pâte.ingrédient_set.filter(pk=i.pk)
|
||||
.values_list("quantité", flat=True)
|
||||
)).quantize(Decimal('1.000')).normalize(),
|
||||
))
|
||||
])
|
||||
|
||||
masse_coulée = sum(
|
||||
@ -250,12 +256,12 @@ class FournéeAdmin(nested_admin.NestedModelAdmin):
|
||||
problems = ""
|
||||
elif masse_coulée > masse_commandée:
|
||||
problems = (
|
||||
f"{(masse_coulée - masse_commandée).normalize()} "
|
||||
f"{clean(masse_coulée - masse_commandée)} "
|
||||
"kg coulés en trop !!"
|
||||
)
|
||||
elif masse_coulée < masse_commandée:
|
||||
problems = (
|
||||
f"{(masse_commandée - masse_coulée).normalize()} "
|
||||
f"{clean(masse_commandée - masse_coulée)} "
|
||||
"kg coulés en moins !!"
|
||||
)
|
||||
extra_context["coulées"].append([problems, ingrédients, quantités])
|
||||
@ -280,7 +286,7 @@ class FournéeAdmin(nested_admin.NestedModelAdmin):
|
||||
[None, sum(obj.coulée_set.values_list('quantité', flat=True))]
|
||||
]
|
||||
for i in ingrédients:
|
||||
total = sum([
|
||||
total = clean(sum([
|
||||
qté * qté_unit / unit
|
||||
for qté, qté_unit, unit in
|
||||
obj.coulée_set.filter(
|
||||
@ -291,7 +297,7 @@ class FournéeAdmin(nested_admin.NestedModelAdmin):
|
||||
'pâte__ingrédient__quantité',
|
||||
'pâte__poids_de_base',
|
||||
)
|
||||
]).quantize(Decimal('1.000')).normalize()
|
||||
]))
|
||||
totaux.append([i, total])
|
||||
extra_context["totaux_coulées"] = totaux
|
||||
|
||||
@ -307,22 +313,22 @@ class FournéeAdmin(nested_admin.NestedModelAdmin):
|
||||
for p in pains:
|
||||
if c.réservation_set.filter(pain__nom=p).exists():
|
||||
tmp.append(
|
||||
sum(
|
||||
clean(sum(
|
||||
c.réservation_set.filter(pain__nom=p).values_list(
|
||||
"quantité", flat=True
|
||||
)
|
||||
).normalize()
|
||||
))
|
||||
)
|
||||
else:
|
||||
tmp.append("")
|
||||
extra_context["divisions"].append(tmp)
|
||||
totaux = [sum(obj.coulée_set.values_list('quantité', flat=True))]
|
||||
for p in pains:
|
||||
total = sum(
|
||||
total = clean(sum(
|
||||
obj.commande_set.filter(pains__nom=p).values_list(
|
||||
"réservation__quantité", flat=True
|
||||
)
|
||||
).normalize()
|
||||
))
|
||||
totaux.append(total)
|
||||
extra_context["totaux_divisions"] = totaux
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user