From 1f99890bc2969af0ffff049d8749e0f9a6c95173 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 22 Jun 2026 09:12:52 +0200 Subject: [PATCH] Apply suggestion from @pajowu Co-authored-by: pajowu --- src/pretix/base/models/orders.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/pretix/base/models/orders.py b/src/pretix/base/models/orders.py index 857d2e7e77..8a07e15f6e 100644 --- a/src/pretix/base/models/orders.py +++ b/src/pretix/base/models/orders.py @@ -378,12 +378,14 @@ class Order(LockModel, LoggedModel): )) LogEntry.bulk_create_and_postprocess(logs_create) - vouchers = OrderPosition.objects.filter( + voucher_ids = OrderPosition.objects.filter( order__in=orders, voucher__isnull=False ).exclude(order__status=Order.STATUS_CANCELED).values_list("voucher_id", flat=True) - for v_id in vouchers: - Voucher.objects.filter(pk=v_id).update(redeemed=Greatest(0, F('redeemed') - 1)) + voucher_usages = Counter(voucher_ids) + for v_id, usage_count in voucher_usages.items(): + Voucher.objects.filter(pk=v_id).update(redeemed=Greatest(0, F('redeemed') - usage_count)) + GiftCardTransaction.objects.filter(payment__order__in=orders).update(payment=None) GiftCardTransaction.objects.filter(refund__order__in=orders).update(refund=None)