diff --git a/src/pretix/presale/checkoutflow.py b/src/pretix/presale/checkoutflow.py index fd835a066..ca212a609 100644 --- a/src/pretix/presale/checkoutflow.py +++ b/src/pretix/presale/checkoutflow.py @@ -1,3 +1,5 @@ +from decimal import Decimal + from django.conf import settings from django.contrib import messages from django.core.exceptions import ValidationError @@ -460,7 +462,7 @@ class PaymentStep(QuestionsViewMixin, CartMixin, TemplateFlowStep): def _total_order_value(self): total = get_cart_total(self.request) total += sum([f.value for f in get_fees(self.request.event, self.request, total, self.invoice_address, None)]) - return total + return Decimal(total) @cached_property def provider_forms(self): diff --git a/src/pretix/presale/views/__init__.py b/src/pretix/presale/views/__init__.py index 4c4b0eff6..f1ae264ca 100644 --- a/src/pretix/presale/views/__init__.py +++ b/src/pretix/presale/views/__init__.py @@ -1,5 +1,6 @@ from collections import defaultdict from datetime import datetime, timedelta +from decimal import Decimal from functools import wraps from itertools import groupby @@ -198,7 +199,7 @@ def get_cart_total(request): else: request._cart_total_cache = CartPosition.objects.filter( cart_id=get_or_create_cart_id(request), event=request.event - ).aggregate(sum=Sum('price'))['sum'] or 0 + ).aggregate(sum=Sum('price'))['sum'] or Decimal('0.00') return request._cart_total_cache