Vouchers: Fix label on redemption page

This commit is contained in:
Raphael Michel
2022-10-25 14:59:40 +02:00
parent a29dbd88ac
commit 45f579caf2
4 changed files with 13 additions and 9 deletions

View File

@@ -581,6 +581,10 @@ class Voucher(LoggedModel):
else:
return bool(subevent.seating_plan) if subevent else self.event.seating_plan
@property
def min_usages_remaining(self):
return max(1, self.min_usages - self.redeemed)
@classmethod
def annotate_budget_used_orders(cls, qs):
opq = OrderPosition.objects.filter(

View File

@@ -530,11 +530,11 @@ class CartManager:
ops.append((listed_price - price_after_voucher, self.VoucherOperation(p, voucher, price_after_voucher)))
for voucher, cnt in list(voucher_use_diff.items()):
if 0 < cnt < (voucher.min_usages - voucher.redeemed):
if 0 < cnt < voucher.min_usages_remaining:
raise CartError(
_(error_messages['voucher_min_usages']) % {
'voucher': voucher.code,
'number': (voucher.min_usages - voucher.redeemed),
'number': voucher.min_usages_remaining,
}
)
@@ -943,7 +943,7 @@ class CartManager:
for voucher, count in vouchers.items():
if not voucher or count == 0:
continue
if count < (voucher.min_usages - voucher.redeemed):
if count < voucher.min_usages_remaining:
self._operations = [o for o in self._operations if not (
isinstance(o, self.AddOperation) and o.voucher.pk == voucher.pk
)]
@@ -953,13 +953,13 @@ class CartManager:
self._operations.append(self.RemoveOperation(position=p))
err = _(error_messages['voucher_min_usages_removed']) % {
'voucher': voucher.code,
'number': (voucher.min_usages - voucher.redeemed),
'number': voucher.min_usages_remaining,
}
if not err:
raise CartError(
_(error_messages['voucher_min_usages']) % {
'voucher': voucher.code,
'number': (voucher.min_usages - voucher.redeemed),
'number': voucher.min_usages_remaining,
}
)
return err

View File

@@ -722,10 +722,10 @@ def _check_positions(event: Event, now_dt: datetime, positions: List[CartPositio
delete(cp)
for voucher, cnt in v_usages.items():
if 0 < cnt < voucher.min_usages - voucher.redeemed:
if 0 < cnt < voucher.min_usages_remaining:
raise OrderError(error_messages['voucher_min_usages'], {
'voucher': voucher.code,
'number': (voucher.min_usages - voucher.redeemed),
'number': voucher.min_usages_remaining,
})
# Check prices