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