feat: ajoute la consommation hedbo passée des fournitures

This commit is contained in:
François Poulain 2024-06-20 21:53:36 +02:00
parent 374da7c644
commit 986fc71f20
2 changed files with 37 additions and 1 deletions

View File

@ -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)

View File

@ -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: