Collect paypal transactions
[wolnelektury.git] / src / paypal / models.py
index 3baf99e..69d2f00 100644 (file)
@@ -1,5 +1,5 @@
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
-# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
 #
 # from django.contrib.auth import get_user_model
 from django.contrib.auth.models import User
@@ -25,3 +25,21 @@ class BillingAgreement(models.Model):
     def get_donations(self, year):
         from .rest import get_donations
         return get_donations(self.agreement_id, year)
+
+    def update_donations(self, year):
+        from .rest import get_donations
+        for donation in get_donations(self.agreement_id, year):
+            Donation.objects.get_or_create(
+                transaction_id=donation['transaction_id'],
+                defaults={
+                    'timestamp': donation['timestamp'],
+                    'amount': donation['amount'],
+                }
+            )
+
+
+class Donation(models.Model):
+    billing_agreement = models.ForeignKey(BillingAgreement, models.CASCADE)
+    transaction_id = models.CharField(max_length=255, db_index=True)
+    timestamp = models.DateTimeField()
+    amount = models.DecimalField(decimal_places=2, max_digits=10)