mirror of
https://github.com/pretix/pretix.git
synced 2026-05-08 15:44:02 +00:00
Correctly display payment fee on the order detail page
This commit is contained in:
@@ -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 %}
|
||||||
|
|||||||
@@ -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,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user