feat: ajoute la consommation hedbo passée des fournitures
This commit is contained in:
parent
374da7c644
commit
986fc71f20
@ -38,7 +38,14 @@ class DocumentInline(admin.TabularInline):
|
||||
|
||||
|
||||
class FournitureAdmin(admin.ModelAdmin):
|
||||
list_display = ["nom", "ordre", "couleur", "conditionnement", "emballage"]
|
||||
list_display = [
|
||||
"nom",
|
||||
"ordre",
|
||||
"couleur",
|
||||
"conditionnement",
|
||||
"emballage",
|
||||
"consommation",
|
||||
]
|
||||
list_editable = ["ordre", "couleur", "conditionnement", "emballage"]
|
||||
inlines = [
|
||||
DocumentInline,
|
||||
@ -46,6 +53,10 @@ class FournitureAdmin(admin.ModelAdmin):
|
||||
actions = None
|
||||
save_as = True
|
||||
|
||||
@admin.display
|
||||
def consommation(self, obj):
|
||||
return obj.consommation()
|
||||
|
||||
|
||||
admin_site.register(models.Fourniture, FournitureAdmin)
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
import datetime
|
||||
from uuid import uuid4
|
||||
|
||||
from django.db import models
|
||||
@ -61,6 +62,30 @@ class Fourniture(models.Model):
|
||||
def __str__(self):
|
||||
return f"{self.nom}"
|
||||
|
||||
def consommation(self):
|
||||
"""Renvois la consommation de la semaine passée"""
|
||||
today = datetime.date.today()
|
||||
sevendays = datetime.timedelta(days=7)
|
||||
fournées = Fournée.objects.filter(date__gte=today-sevendays)
|
||||
coulées_id = fournées.values('coulée')
|
||||
quantités_coulées = [
|
||||
q * pi / pb
|
||||
for pi, pb, q in Ingrédient.objects.filter(
|
||||
recette__coulée__in=coulées_id, fourniture=self
|
||||
).values_list(
|
||||
'recette__coulée__quantité',
|
||||
'recette__poids_de_base',
|
||||
'quantité',
|
||||
)]
|
||||
quantité = clean(sum(quantités_coulées)) if quantités_coulées else 0
|
||||
r = f"{quantité} kg"
|
||||
if quantité and self.conditionnement:
|
||||
r += (
|
||||
f" soit {clean(quantité/self.conditionnement)} "
|
||||
+ f"{self.emballage}"
|
||||
)
|
||||
return r
|
||||
|
||||
|
||||
class Ingrédient(models.Model):
|
||||
class Meta:
|
||||
|
Loading…
x
Reference in New Issue
Block a user