feat(kfet): more values and formatting

This commit is contained in:
Alice 2023-01-23 20:53:02 +01:00
parent 4b92716092
commit 429e611daa
3 changed files with 25 additions and 14 deletions

View file

@ -61,7 +61,7 @@ ul {
} }
.table td.no-padding { .table td.no-padding {
padding:0; padding:0 !important;
} }
.table thead { .table thead {

View file

@ -48,7 +48,6 @@
<td>Stock avant</td> <td>Stock avant</td>
<td>Stock après</td> <td>Stock après</td>
<td>Erreur</td> <td>Erreur</td>
<td>Valeur</td>
</tr> </tr>
</thead> </thead>
{% regroup inventoryarts by article.category.name as category_list %} {% regroup inventoryarts by article.category.name as category_list %}
@ -68,16 +67,17 @@
</td> </td>
<td>{{ inventoryart.stock_old }}</td> <td>{{ inventoryart.stock_old }}</td>
<td>{{ inventoryart.stock_new }}</td> <td>{{ inventoryart.stock_new }}</td>
<td>{{ inventoryart.stock_error }}</td> <td>{{ inventoryart.stock_error }} / {{ inventoryart.amount_error|floatformat:"-2" }} €</td>
<td>{{ inventoryart.amount_new }}</td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
{% endfor %} {% endfor %}
<tbody> <tbody>
<tr class="section"> <tr class="section">
<th colspan="4">Total</th> <td>Valeurs totales</td>
<td>{{ total_amount }}</td> <td>{{ total_amount_old|floatformat:"-2" }} €</td>
<td>{{ total_amount_new|floatformat:"-2" }} €</td>
<td>{{ total_amount_error|floatformat:"-2" }} €</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View file

@ -2024,23 +2024,34 @@ class InventoryRead(DetailView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
output_field = DecimalField(max_digits=10, decimal_places=2, default=0)
inventory_articles = ( inventory_articles = (
InventoryArticle.objects.select_related("article", "article__category") InventoryArticle.objects.select_related("article", "article__category")
.filter(inventory=self.object) .filter(inventory=self.object)
.annotate( .annotate(
amount_new=ExpressionWrapper( amount_error=ExpressionWrapper(
F("stock_new") * F("article__price"), F("stock_error") * F("article__price"), output_field=output_field
output_field=DecimalField(
max_digits=6, decimal_places=2, default=0
),
) )
) )
.order_by("article__category__name", "article__name") .order_by("article__category__name", "article__name")
) )
context["inventoryarts"] = inventory_articles context["inventoryarts"] = inventory_articles
context["total_amount"] = inventory_articles.aggregate(total=Sum("amount_new"))[ stats = inventory_articles.aggregate(
"total" new=ExpressionWrapper(
] Sum(F("stock_new") * F("article__price")), output_field=output_field
),
error=Sum("amount_error"),
old=ExpressionWrapper(
Sum(F("stock_old") * F("article__price")), output_field=output_field
),
)
context.update(
{
"total_amount_old": stats["old"],
"total_amount_new": stats["new"],
"total_amount_error": stats["error"],
}
)
return context return context