Collect paypal transactions
[wolnelektury.git] / src / paypal / models.py
index 6d45bcd..69d2f00 100644 (file)
@@ -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)