diff --git a/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html b/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html index b6576458e..b8583fe6a 100644 --- a/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html +++ b/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html @@ -85,9 +85,9 @@
{{ event.currency }} {{ cart.payment_fee|floatformat:2 }} - {% if event.settings.tax_rate_default %} + {% if cart.payment_fee_tax_rate %}
- {% blocktrans trimmed with rate=event.settings.tax_rate_default %} + {% blocktrans trimmed with rate=cart.payment_fee_tax_rate %} incl. {{ rate }}% taxes {% endblocktrans %} {% endif %} diff --git a/src/pretix/presale/views/__init__.py b/src/pretix/presale/views/__init__.py index 73a9af3e0..3bcce57f7 100644 --- a/src/pretix/presale/views/__init__.py +++ b/src/pretix/presale/views/__init__.py @@ -24,7 +24,7 @@ class CartMixin: '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( 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) 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: 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, 'total': total + payment_fee, 'payment_fee': payment_fee, + 'payment_fee_tax_rate': payment_fee_tax_rate, 'answers': answers, 'minutes_left': minutes_left, } diff --git a/src/pretix/presale/views/order.py b/src/pretix/presale/views/order.py index 1964ad8bc..0daf80cd1 100644 --- a/src/pretix/presale/views/order.py +++ b/src/pretix/presale/views/order.py @@ -88,7 +88,8 @@ class OrderDetails(EventViewMixin, OrderDetailMixin, CartMixin, TemplateView): ctx['download_buttons'] = self.download_buttons ctx['cart'] = self.get_cart( 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()) if self.order.status == Order.STATUS_PENDING: