forked from CGM_Public/pretix_original
Treat partially paid expired orders as overpaid orders (Z#23147757) (#3990)
* Treat partially paid expired orders as overpaid orders (Z#23147757) * Use is_overpaid from annotate_overpayments in OrderFilterForm * Revert change to pending sum * Show warning on order page --------- Co-authored-by: Mira Weller <weller@rami.io>
This commit is contained in:
@@ -451,9 +451,9 @@ class Order(LockModel, LoggedModel):
|
||||
if results:
|
||||
qs = qs.annotate(
|
||||
is_overpaid=Case(
|
||||
When(~Q(status=Order.STATUS_CANCELED) & Q(pending_sum_t__lt=-1e-8),
|
||||
When(~Q(status__in=(Order.STATUS_CANCELED, Order.STATUS_EXPIRED)) & Q(pending_sum_t__lt=-1e-8),
|
||||
then=Value(1)),
|
||||
When(Q(status=Order.STATUS_CANCELED) & Q(pending_sum_rc__lt=-1e-8),
|
||||
When(Q(status__in=(Order.STATUS_CANCELED, Order.STATUS_EXPIRED)) & Q(pending_sum_rc__lt=-1e-8),
|
||||
then=Value(1)),
|
||||
default=Value(0),
|
||||
output_field=models.IntegerField()
|
||||
@@ -468,7 +468,7 @@ 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),
|
||||
When(Q(status__in=(Order.STATUS_CANCELED, Order.STATUS_EXPIRED)) & Q(pending_sum_rc__gt=1e-8),
|
||||
then=Value(1)),
|
||||
default=Value(0),
|
||||
output_field=models.IntegerField()
|
||||
|
||||
@@ -309,11 +309,8 @@ class OrderFilterForm(FilterForm):
|
||||
elif s in ('p', 'n', 'e', 'c', 'r'):
|
||||
qs = qs.filter(status=s)
|
||||
elif s == 'overpaid':
|
||||
qs = Order.annotate_overpayments(qs, refunds=False, results=False, sums=True)
|
||||
qs = qs.filter(
|
||||
Q(~Q(status=Order.STATUS_CANCELED) & Q(pending_sum_t__lt=0))
|
||||
| Q(Q(status=Order.STATUS_CANCELED) & Q(pending_sum_rc__lt=0))
|
||||
)
|
||||
qs = Order.annotate_overpayments(qs, refunds=False, results=True, sums=False)
|
||||
qs = qs.filter(is_overpaid=True)
|
||||
elif s == 'rc':
|
||||
qs = qs.filter(
|
||||
cancellation_requests__isnull=False
|
||||
|
||||
@@ -124,6 +124,13 @@
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
{% elif order.status == "e" and order.payment_refund_sum != 0 %}
|
||||
<div class="alert alert-warning">
|
||||
{% blocktrans trimmed with amount=order.payment_refund_sum|money:request.event.currency %}
|
||||
This order is expired even though it received payments of {{ amount }}. You can choose to refund
|
||||
the money below or reactivate it by extending the payment deadline.
|
||||
{% endblocktrans %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="row">
|
||||
|
||||
Reference in New Issue
Block a user