feat(coulees): ajoute de quoi refacturer le prix des MP
This commit is contained in:
parent
84ca038bdc
commit
8d06a30254
@ -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)} €")
|
||||
|
||||
|
||||
|
@ -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))
|
||||
|
Loading…
x
Reference in New Issue
Block a user