From 8d7ccccc9b9e65f2930900e9d720d08290e55256 Mon Sep 17 00:00:00 2001 From: catvayor Date: Mon, 3 Mar 2025 17:15:19 +0100 Subject: [PATCH] feat(bda/place): show amount left to pay --- bda/templates/bda/resume_places.html | 10 ++++++++++ bda/views.py | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/bda/templates/bda/resume_places.html b/bda/templates/bda/resume_places.html index fb314f1d..6c5a2d51 100644 --- a/bda/templates/bda/resume_places.html +++ b/bda/templates/bda/resume_places.html @@ -11,9 +11,19 @@ {{place.spectacle.date}} {% if place.double %}deux places{%else%}une place{% endif %} {% if place.spectacle.listing %}sur listing{% else %}place physique{% endif %} + + {% if place.unpaid == 0 %} + Payé + {% elif place.unpaid == 1 %} + Une place à payer ({{place.unpaid_price|floatformat}}€) + {% else %} + Deux places à payer ({{place.unpaid_price|floatformat}}€) + {% endif %} + {% endfor %} +

Reste à payer : {{ unpaid|floatformat }}€

Total à payer : {{ total|floatformat }}€


Ne manque pas un spectacle avec le diff --git a/bda/views.py b/bda/views.py index d8852674..1f949181 100644 --- a/bda/views.py +++ b/bda/views.py @@ -114,6 +114,7 @@ def places(request, tirage_id): "spectacle__date", "spectacle" ).select_related("spectacle", "spectacle__location") total = sum(place.spectacle.price for place in places) + unpaid = 0 filtered_places = [] places_dict = {} spectacles = [] @@ -124,6 +125,8 @@ def places(request, tirage_id): places_dict[place.spectacle].double = True else: place.double = False + place.unpaid = 0 + place.unpaid_price = 0 places_dict[place.spectacle] = place spectacles.append(place.spectacle) filtered_places.append(place) @@ -132,6 +135,12 @@ def places(request, tirage_id): warning = True else: dates.append(date) + + if not place.paid: + unpaid += place.spectacle.price + places_dict[place.spectacle].unpaid += 1 + places_dict[place.spectacle].unpaid_price += place.spectacle.price + # On prévient l'utilisateur s'il a deux places à la même date if warning: messages.warning( @@ -147,6 +156,7 @@ def places(request, tirage_id): "places": filtered_places, "tirage": tirage, "total": total, + "unpaid": unpaid, }, )