diff --git a/src/pretix/base/models/vouchers.py b/src/pretix/base/models/vouchers.py index 0c8759b370..ee345237f3 100644 --- a/src/pretix/base/models/vouchers.py +++ b/src/pretix/base/models/vouchers.py @@ -234,7 +234,7 @@ class Voucher(LoggedModel): certain percentage. If the voucher does not modify the price, the original price will be returned. """ - if self.value: + if self.value is not None: if self.price_mode == 'set': return self.value elif self.price_mode == 'subtract': diff --git a/src/tests/base/test_models.py b/src/tests/base/test_models.py index 38029fb6d7..0c9d5b5f53 100644 --- a/src/tests/base/test_models.py +++ b/src/tests/base/test_models.py @@ -421,6 +421,10 @@ class VoucherTestCase(BaseQuotaTestCase): v = Voucher.objects.create(event=self.event, price_mode='set', value=Decimal('10.00')) v.calculate_price(Decimal('23.42')) == Decimal('10.00') + def test_calculate_price_set_zero(self): + v = Voucher.objects.create(event=self.event, price_mode='set', value=Decimal('0.00')) + v.calculate_price(Decimal('23.42')) == Decimal('0.00') + def test_calculate_price_subtract(self): v = Voucher.objects.create(event=self.event, price_mode='subtract', value=Decimal('10.00')) v.calculate_price(Decimal('23.42')) == Decimal('13.42')