Fix display price for vouchers with all_bundles_included

This commit is contained in:
Raphael Michel
2024-01-22 17:43:11 +01:00
parent 0938bf3246
commit 6474240d49

View File

@@ -335,12 +335,14 @@ def get_grouped_items(event, subevent=None, voucher=None, channel='web', require
original_price = item_price_override.get(item.pk, item.default_price) original_price = item_price_override.get(item.pk, item.default_price)
if voucher: if voucher:
price = voucher.calculate_price(original_price) price = voucher.calculate_price(original_price)
include_bundled = not voucher.all_bundles_included
else: else:
price = original_price price = original_price
include_bundled = True
item.display_price = item.tax(price, currency=event.currency, include_bundled=True) item.display_price = item.tax(price, currency=event.currency, include_bundled=include_bundled)
if item.free_price and item.free_price_suggestion is not None: if item.free_price and item.free_price_suggestion is not None:
item.suggested_price = item.tax(max(price, item.free_price_suggestion), currency=event.currency, include_bundled=True) item.suggested_price = item.tax(max(price, item.free_price_suggestion), currency=event.currency, include_bundled=include_bundled)
else: else:
item.suggested_price = item.display_price item.suggested_price = item.display_price
@@ -384,17 +386,19 @@ def get_grouped_items(event, subevent=None, voucher=None, channel='web', require
original_price = var_price_override.get(var.pk, var.price) original_price = var_price_override.get(var.pk, var.price)
if voucher: if voucher:
price = voucher.calculate_price(original_price) price = voucher.calculate_price(original_price)
include_bundled = not voucher.all_bundles_included
else: else:
price = original_price price = original_price
include_bundled = True
var.display_price = var.tax(price, currency=event.currency, include_bundled=True) var.display_price = var.tax(price, currency=event.currency, include_bundled=include_bundled)
if item.free_price and var.free_price_suggestion is not None: if item.free_price and var.free_price_suggestion is not None:
var.suggested_price = item.tax(max(price, var.free_price_suggestion), currency=event.currency, var.suggested_price = item.tax(max(price, var.free_price_suggestion), currency=event.currency,
include_bundled=True) include_bundled=include_bundled)
elif item.free_price and item.free_price_suggestion is not None: elif item.free_price and item.free_price_suggestion is not None:
var.suggested_price = item.tax(max(price, item.free_price_suggestion), currency=event.currency, var.suggested_price = item.tax(max(price, item.free_price_suggestion), currency=event.currency,
include_bundled=True) include_bundled=include_bundled)
else: else:
var.suggested_price = var.display_price var.suggested_price = var.display_price