2022-04-25 18:37:26 +02:00
|
|
|
from django.db.models import Sum
|
|
|
|
from django.views.generic import TemplateView
|
|
|
|
|
|
|
|
from purchase.models import Basket, PaymentMethod, Product
|
2022-04-25 18:59:32 +02:00
|
|
|
from purchase.views.utils import ProtectedViewsMixin
|
2022-04-25 18:37:26 +02:00
|
|
|
|
|
|
|
|
2022-04-25 18:59:32 +02:00
|
|
|
class ReportsView(ProtectedViewsMixin, TemplateView):
|
|
|
|
permission_required = ["purchase.view_basket"]
|
2022-04-25 18:37:26 +02:00
|
|
|
template_name = "purchase/reports.html"
|
|
|
|
|
|
|
|
def get_context_data(self, **kwargs):
|
|
|
|
context = super().get_context_data(**kwargs)
|
|
|
|
context.update(
|
|
|
|
{
|
|
|
|
"total": Basket.objects.priced().aggregate(total=Sum("price"))["total"],
|
|
|
|
"products": Product.objects.with_turnover().with_sold(),
|
2022-04-25 18:59:32 +02:00
|
|
|
"payment_methods": PaymentMethod.objects.with_turnover().with_sold(),
|
|
|
|
"no_payment_method": Basket.objects.no_payment_method().priced(),
|
2022-04-25 18:37:26 +02:00
|
|
|
}
|
|
|
|
)
|
|
|
|
return context
|