diff --git a/aleksis/apps/paweljong/models.py b/aleksis/apps/paweljong/models.py index eda36d648f461e2ab322a54a750bc57249f53b76..8121c655a7ce6ba7a684e40ec0d5742a0faba10e 100644 --- a/aleksis/apps/paweljong/models.py +++ b/aleksis/apps/paweljong/models.py @@ -194,7 +194,7 @@ class Event(ExtensibleModel): def individual_cost(self, request=None): if request and request.user.is_authenticated and Voucher.objects.filter(event=self, person=request.user.person, used=False).exists(): voucher = Voucher.objects.get(event=self, person=request.user.person, used=False) - individual_cost = voucher.discount * self.cost / 100 + individual_cost = (100 - voucher.discount) * self.cost / 100 return individual_cost else: return self.cost diff --git a/aleksis/apps/paweljong/views.py b/aleksis/apps/paweljong/views.py index a1d84e06272e69c607c733cfc02e38c19ccf165d..e0773416e8862660af7e848c0a8570c31b145a45 100644 --- a/aleksis/apps/paweljong/views.py +++ b/aleksis/apps/paweljong/views.py @@ -541,13 +541,14 @@ class RegisterEventWizardView(SessionWizardView): cleaned_data_consent = self.get_cleaned_data_for_step("consent") if cleaned_data_financial["voucher_code"]: - vouchers = Voucher.objects.filter( - person=person, event=event, used=False, code=cleaned_data_financial["voucher_code"] - ) - if vouchers: - voucher = vouchers.first() - else: - messages.error(self.request, _("You entered an invalid voucher code!")) + if getattr(self.request.user, "person", None): + vouchers = Voucher.objects.filter( + person=self.request.user.person, event=event, used=False, code=cleaned_data_financial["voucher_code"] + ) + if vouchers: + voucher = vouchers.first() + else: + messages.error(self.request, _("You entered an invalid voucher code!")) # Create email address if cleaned_data_email: