feat(coulees): ajoute de quoi refacturer le prix des MP

This commit is contained in:
François Poulain 2024-12-24 12:30:05 +01:00
parent 84ca038bdc
commit 8d06a30254
2 changed files with 29 additions and 1 deletions

View File

@ -198,4 +198,32 @@ class Coulée(models.Model):
def __str__(self):
return f"{self.pâte} ({clean(self.quantité)} kg)"
@staticmethod
def récapitulatif_des_coûts(**kwargs):
coulées = Coulée.objects.filter(**kwargs)
ingrédients = [
Fourniture.objects.get(nom=nom)
for nom in set(
coulées.values_list(
"pâte__ingrédient__fourniture__nom", flat=True
)
)
]
ingrédients.sort(key=lambda x: x.ordre)
poids_total = 0
for i in ingrédients:
poids = clean(sum([
qté * qté_unit / unit
for qté, qté_unit, unit in
coulées.filter(
pâte__ingrédient__fourniture__nom=i.nom
)
.values_list(
'quantité',
'pâte__ingrédient__quantité',
'pâte__poids_de_base',
)
]))
print(f"{i.nom: >20}\t{clean(poids):>12} kg\t ({i.prix} €/kg)\t {clean(poids * i.prix)}")

View File

@ -2,7 +2,7 @@ from decimal import Decimal
def clean(d):
if type(d) == int:
if isinstance(d, int):
return d
if d == d.to_integral():
return d.quantize(Decimal(1))