From 4b92716092eb1166cfe6d85b4f984c86950e2920 Mon Sep 17 00:00:00 2001 From: Alice Andres Date: Sat, 21 Jan 2023 02:23:25 +0100 Subject: [PATCH] feat: poc inventory amount value and lint --- kfet/templates/kfet/inventory_read.html | 14 ++++++++++--- kfet/views.py | 28 ++++++++++++++++++++++--- 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/kfet/templates/kfet/inventory_read.html b/kfet/templates/kfet/inventory_read.html index 9a9275f8..0d98e2d8 100644 --- a/kfet/templates/kfet/inventory_read.html +++ b/kfet/templates/kfet/inventory_read.html @@ -48,30 +48,38 @@ Stock avant Stock après Erreur + Valeur - {% regroup inventoryarts by article.category as category_list %} + {% regroup inventoryarts by article.category.name as category_list %} {% for category in category_list %} - {{ category.grouper.name }} + {{ category.grouper }} {% for inventoryart in category.list %} - + {{ inventoryart.article.name }} {{ inventoryart.stock_old }} {{ inventoryart.stock_new }} {{ inventoryart.stock_error }} + {{ inventoryart.amount_new }} {% endfor %} {% endfor %} + + + Total + {{ total_amount }} + + diff --git a/kfet/views.py b/kfet/views.py index 569e42a5..fdfb1b0d 100644 --- a/kfet/views.py +++ b/kfet/views.py @@ -14,7 +14,18 @@ from django.contrib.auth.models import Permission, User from django.contrib.messages.views import SuccessMessageMixin from django.core.exceptions import SuspiciousOperation from django.db import transaction -from django.db.models import Count, F, Max, OuterRef, Prefetch, Q, Subquery, Sum +from django.db.models import ( + Count, + DecimalField, + ExpressionWrapper, + F, + Max, + OuterRef, + Prefetch, + Q, + Subquery, + Sum, +) from django.forms import ValidationError, formset_factory from django.http import ( Http404, @@ -2013,12 +2024,23 @@ class InventoryRead(DetailView): def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) - inventoryarticles = ( + inventory_articles = ( InventoryArticle.objects.select_related("article", "article__category") .filter(inventory=self.object) + .annotate( + amount_new=ExpressionWrapper( + F("stock_new") * F("article__price"), + output_field=DecimalField( + max_digits=6, decimal_places=2, default=0 + ), + ) + ) .order_by("article__category__name", "article__name") ) - context["inventoryarts"] = inventoryarticles + context["inventoryarts"] = inventory_articles + context["total_amount"] = inventory_articles.aggregate(total=Sum("amount_new"))[ + "total" + ] return context