diff --git a/src/pretix/base/models/orders.py b/src/pretix/base/models/orders.py
index 3d29afcb28..f0fa566d2d 100644
--- a/src/pretix/base/models/orders.py
+++ b/src/pretix/base/models/orders.py
@@ -333,6 +333,9 @@ class Order(LockModel, LoggedModel):
payment_sum=payment_sum_sq,
refund_sum=refund_sum_sq,
)
+ qs = qs.annotate(
+ payment_refund_sum=Coalesce(payment_sum_sq, 0) - Coalesce(refund_sum_sq, 0),
+ )
qs = qs.annotate(
pending_sum_t=F('total') - Coalesce(payment_sum_sq, 0) + Coalesce(refund_sum_sq, 0),
diff --git a/src/pretix/control/templates/pretixcontrol/orders/index.html b/src/pretix/control/templates/pretixcontrol/orders/index.html
index 4aae96bbfb..0de899f797 100644
--- a/src/pretix/control/templates/pretixcontrol/orders/index.html
+++ b/src/pretix/control/templates/pretixcontrol/orders/index.html
@@ -113,7 +113,7 @@
-
{% trans "Order total" %}
+ | {% trans "Order paid / total" %}
|
{% trans "Positions" %} |
@@ -158,6 +158,13 @@
{% elif o.is_pending_with_full_payment %}
{% trans "FULLY PAID" %}
{% endif %}
+ {% if o.payment_refund_sum == o.total or o.payment_refund_sum == 0 %}
+
+ {% endif %}
+ {{ o.payment_refund_sum|money:request.event.currency }} /
+ {% if o.payment_refund_sum == o.total or o.payment_refund_sum == 0 %}
+
+ {% endif %}
{{ o.total|money:request.event.currency }}
{{ o.pcnt|default_if_none:"0" }} |
diff --git a/src/pretix/control/views/orders.py b/src/pretix/control/views/orders.py
index b8f05fa59f..3ed0638cf5 100644
--- a/src/pretix/control/views/orders.py
+++ b/src/pretix/control/views/orders.py
@@ -153,7 +153,7 @@ class OrderList(OrderSearchMixin, EventPermissionRequiredMixin, PaginationMixin,
annotated = {
o['pk']: o
for o in
- Order.annotate_overpayments(Order.objects).filter(
+ Order.annotate_overpayments(Order.objects, sums=True).filter(
pk__in=[o.pk for o in ctx['orders']]
).annotate(
pcnt=Subquery(s, output_field=IntegerField()),