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):
|
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"]
|
list_editable = ["ordre", "couleur", "conditionnement", "emballage"]
|
||||||
inlines = [
|
inlines = [
|
||||||
DocumentInline,
|
DocumentInline,
|
||||||
@ -46,6 +53,10 @@ class FournitureAdmin(admin.ModelAdmin):
|
|||||||
actions = None
|
actions = None
|
||||||
save_as = True
|
save_as = True
|
||||||
|
|
||||||
|
@admin.display
|
||||||
|
def consommation(self, obj):
|
||||||
|
return obj.consommation()
|
||||||
|
|
||||||
|
|
||||||
admin_site.register(models.Fourniture, FournitureAdmin)
|
admin_site.register(models.Fourniture, FournitureAdmin)
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import datetime
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
@ -61,6 +62,30 @@ class Fourniture(models.Model):
|
|||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"{self.nom}"
|
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 Ingrédient(models.Model):
|
||||||
class Meta:
|
class Meta:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user