diff --git a/src/backoffice/templates/ticket_stats.html b/src/backoffice/templates/ticket_stats.html index ba890026..a4c2ad20 100644 --- a/src/backoffice/templates/ticket_stats.html +++ b/src/backoffice/templates/ticket_stats.html @@ -20,6 +20,7 @@ Total Income Total Cost Total Profit + Avg. Ticket Price @@ -32,6 +33,7 @@ {{ tt.total_income|floatformat:"2" }} DKK {{ tt.total_cost|floatformat:"2" }} DKK {{ tt.total_profit|floatformat:"2" }} DKK + {{ tt.avg_ticket_price|floatformat:"2" }} DKK {% endfor %} diff --git a/src/tickets/models.py b/src/tickets/models.py index eb2a0450..6caf201c 100644 --- a/src/tickets/models.py +++ b/src/tickets/models.py @@ -53,12 +53,22 @@ class TicketTypeQuerySet(models.QuerySet): .values("total_profit")[:1] ) + avg_ticket_price = Subquery( + TicketType.objects.annotate(units=Sum(quantity)) + .annotate(income=Sum(income)) + .annotate(avg_ticket_price=F("income") / F("units")) + .filter(pk=OuterRef("pk")) + .values("avg_ticket_price")[:1], + output_field=models.DecimalField(), + ) + return self.annotate( shopticket_count=shopticket_count, total_units_sold=total_units_sold, total_income=total_income, total_cost=total_cost, total_profit=total_profit, + avg_ticket_price=avg_ticket_price, ).distinct()