X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/e16f5c5d7985b8e501c6810abf5e540326e392f1..f59de09387c7ceb7d6ab2ccf6ea25cb4be8dacb5:/src/club/models.py diff --git a/src/club/models.py b/src/club/models.py index c40428def..eb1439084 100644 --- a/src/club/models.py +++ b/src/club/models.py @@ -161,6 +161,15 @@ class Schedule(models.Model): club = Club.objects.first() return club.get_description_for_amount(self.amount, self.monthly) + def is_custom_amount(self): + club = Club.objects.first() + if not self.amount: + return False + if self.monthly: + return not club.monthlyamount_set.filter(amount=self.amount).exists() + else: + return not club.singleamount_set.filter(amount=self.amount).exists() + def initiate_payment(self, request): return self.get_payment_method().initiate(request, self) @@ -192,6 +201,20 @@ class Schedule(models.Model): def is_recurring(self): return self.monthly or self.yearly + def n_paypal_payments(self, since, until): + # TODO: pull BA payments. + t = self.payed_at + if t is None: return 0 + c = 0 + until = min(until, now()) + t += timedelta(days=1) + while t < until: + if t >= since: + c += 1 + m = datetime(t.year, t.month, 1) + t += ((m + timedelta(days=31)).replace(day=1)) - m + return c + def set_payed(self): since = self.expires_at n = now() @@ -505,6 +528,8 @@ class PayUOrder(payu_models.Order): receipt = cls.generate_receipt(email, year) if receipt: content, optout, payments = receipt + else: + return ctx = { "email": email, "year": year,