From ead755aa86944ec5bc8ab583cc11349cc5e8d92f Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 18 Aug 2021 17:35:28 +0200 Subject: [PATCH] Report canceled orders as underpaid if necessary --- src/pretix/base/models/orders.py | 2 ++ src/pretix/control/forms/filter.py | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/pretix/base/models/orders.py b/src/pretix/base/models/orders.py index ad159cf6f..476fa5a12 100644 --- a/src/pretix/base/models/orders.py +++ b/src/pretix/base/models/orders.py @@ -419,6 +419,8 @@ class Order(LockModel, LoggedModel): is_underpaid=Case( When(Q(status=Order.STATUS_PAID) & Q(pending_sum_t__gt=1e-8), then=Value(1)), + When(Q(status=Order.STATUS_CANCELED) & Q(pending_sum_rc__gt=1e-8), + then=Value(1)), default=Value(0), output_field=models.IntegerField() ) diff --git a/src/pretix/control/forms/filter.py b/src/pretix/control/forms/filter.py index 61dca42eb..9e577a7bb 100644 --- a/src/pretix/control/forms/filter.py +++ b/src/pretix/control/forms/filter.py @@ -304,8 +304,8 @@ class OrderFilterForm(FilterForm): elif s == 'underpaid': qs = Order.annotate_overpayments(qs, refunds=False, results=False, sums=True) qs = qs.filter( - status=Order.STATUS_PAID, - pending_sum_t__gt=0 + Q(status=Order.STATUS_PAID, pending_sum_t__gt=0) | + Q(status=Order.STATUS_CANCELED, pending_sum_rc__gt=0) ) elif s == 'cni': i = Invoice.objects.filter(