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 0000000000000000000000000000000000000000..8b160450e7915c67f64d0b280ca0c7c5da25e6a5 --- /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 8121c655a7ce6ba7a684e40ec0d5742a0faba10e..456e043cb1e0c8aadf8effaaf6e27006526ce270 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,