Correctly display payment fee on the order detail page

This commit is contained in:
Raphael Michel
2016-06-06 23:56:26 +02:00
parent a7fc8e19fb
commit fd2c293521
3 changed files with 7 additions and 4 deletions

View File

@@ -85,9 +85,9 @@
</div> </div>
<div class="col-md-3 col-xs-6 col-md-offset-5 price"> <div class="col-md-3 col-xs-6 col-md-offset-5 price">
<strong>{{ event.currency }} {{ cart.payment_fee|floatformat:2 }}</strong> <strong>{{ event.currency }} {{ cart.payment_fee|floatformat:2 }}</strong>
{% if event.settings.tax_rate_default %} {% if cart.payment_fee_tax_rate %}
<br/> <br/>
<small>{% blocktrans trimmed with rate=event.settings.tax_rate_default %} <small>{% blocktrans trimmed with rate=cart.payment_fee_tax_rate %}
incl. {{ rate }}% taxes incl. {{ rate }}% taxes
{% endblocktrans %}</small> {% endblocktrans %}</small>
{% endif %} {% endif %}

View File

@@ -24,7 +24,7 @@ class CartMixin:
'item__questions', 'answers' 'item__questions', 'answers'
)) ))
def get_cart(self, answers=False, queryset=None, payment_fee=None): def get_cart(self, answers=False, queryset=None, payment_fee=None, payment_fee_tax_rate=None):
queryset = queryset or CartPosition.objects.filter( queryset = queryset or CartPosition.objects.filter(
cart_id=self.request.session.session_key, event=self.request.event cart_id=self.request.session.session_key, event=self.request.event
) )
@@ -65,6 +65,7 @@ class CartMixin:
total = sum(p.total for p in positions) total = sum(p.total for p in positions)
payment_fee = payment_fee or self.get_payment_fee(total) payment_fee = payment_fee or self.get_payment_fee(total)
payment_fee_tax_rate = payment_fee_tax_rate or self.request.event.settings.tax_rate_default
try: try:
minutes_left = max(min(p.expires for p in positions) - now(), timedelta()).seconds // 60 if positions else 0 minutes_left = max(min(p.expires for p in positions) - now(), timedelta()).seconds // 60 if positions else 0
@@ -76,6 +77,7 @@ class CartMixin:
'raw': cartpos, 'raw': cartpos,
'total': total + payment_fee, 'total': total + payment_fee,
'payment_fee': payment_fee, 'payment_fee': payment_fee,
'payment_fee_tax_rate': payment_fee_tax_rate,
'answers': answers, 'answers': answers,
'minutes_left': minutes_left, 'minutes_left': minutes_left,
} }

View File

@@ -88,7 +88,8 @@ class OrderDetails(EventViewMixin, OrderDetailMixin, CartMixin, TemplateView):
ctx['download_buttons'] = self.download_buttons ctx['download_buttons'] = self.download_buttons
ctx['cart'] = self.get_cart( ctx['cart'] = self.get_cart(
answers=True, answers=True,
queryset=OrderPosition.objects.filter(order=self.order) queryset=OrderPosition.objects.filter(order=self.order),
payment_fee=self.order.payment_fee, payment_fee_tax_rate=self.order.payment_fee_tax_rate
) )
ctx['invoices'] = list(self.order.invoices.all()) ctx['invoices'] = list(self.order.invoices.all())
if self.order.status == Order.STATUS_PENDING: if self.order.status == Order.STATUS_PENDING: