From ef8256eeb07d6cf8b2aae17bab089665f752fd5a Mon Sep 17 00:00:00 2001 From: Tom Teichler <tom.teichler@teckids.org> Date: Sun, 4 Jun 2023 16:50:43 +0200 Subject: [PATCH] Set price correct for event registration --- .../migrations/0023_eventregistration_cost.py | 18 ++++++++++++++++++ aleksis/apps/paweljong/models.py | 11 +++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 aleksis/apps/paweljong/migrations/0023_eventregistration_cost.py diff --git a/aleksis/apps/paweljong/migrations/0023_eventregistration_cost.py b/aleksis/apps/paweljong/migrations/0023_eventregistration_cost.py new file mode 100644 index 0000000..8b16045 --- /dev/null +++ b/aleksis/apps/paweljong/migrations/0023_eventregistration_cost.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.19 on 2023-06-04 14:54 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('paweljong', '0022_send_to_retracted_or_not_checked_in'), + ] + + operations = [ + migrations.AddField( + model_name='eventregistration', + name='cost', + field=models.IntegerField(blank=True, null=True, verbose_name='Cost in €'), + ), + ] diff --git a/aleksis/apps/paweljong/models.py b/aleksis/apps/paweljong/models.py index 8121c65..456e043 100644 --- a/aleksis/apps/paweljong/models.py +++ b/aleksis/apps/paweljong/models.py @@ -309,6 +309,13 @@ class EventRegistration(ExtensibleModel): checked_in = models.BooleanField(verbose_name=_("Checked in"), default=False) checked_in_date = models.DateTimeField(verbose_name=_("Checked in at"), null=True, blank=True) + cost = models.IntegerField(verbose_name=_("Cost in €"), null=True, blank=True) + + def save(self): + if not self.cost: + self.cost = self.event.cost + + def mark_checked_in(self): if not self.checked_in: self.checked_in = True @@ -372,7 +379,7 @@ class EventRegistration(ExtensibleModel): yield PurchasedItem( name=self.event.display_name, quantity=1, - price=Decimal(self.event.cost / 1.07), + price=Decimal(self.cost / 1.07), currency="EUR", sku="EVENT", tax_rate=7, @@ -394,7 +401,7 @@ class EventRegistration(ExtensibleModel): yield PurchasedItem( name=_("Voucher / Granted discount"), quantity=1, - price=Decimal(-1 * self.voucher.discount * (self.event.cost / 1.07) / 100), + price=Decimal(-1 * self.voucher.discount * (self.cost / 1.07) / 100), currency="EUR", sku="DISCO", tax_rate=7, -- GitLab