Author page.
[wolnelektury.git] / src / club / management / commands / send_receipts.py
index bbe1209..69cc2f9 100644 (file)
@@ -7,6 +7,7 @@ from django.core.management.base import BaseCommand, CommandError
 from django.utils.timezone import now
 from club.models import PayUOrder
 from funding.models import Funding
 from django.utils.timezone import now
 from club.models import PayUOrder
 from funding.models import Funding
+from paypal.models import BillingAgreement
 
 
 class Command(BaseCommand):
 
 
 class Command(BaseCommand):
@@ -17,6 +18,9 @@ class Command(BaseCommand):
         parser.add_argument(
             '--emails',
             help='Send only to these emails.')
         parser.add_argument(
             '--emails',
             help='Send only to these emails.')
+        parser.add_argument(
+            '--resend', action='store_true',
+            help='This is a re-send.')
 
     def handle(self, *args, **options):
         year = options['year']
 
     def handle(self, *args, **options):
         year = options['year']
@@ -27,6 +31,12 @@ class Command(BaseCommand):
                 'schedule__email', flat=True
             ).distinct()
         )
                 'schedule__email', flat=True
             ).distinct()
         )
+        emails.update(
+            BillingAgreement.objects.all().order_by(
+                'schedule__email').values_list(
+                'schedule__email', flat=True
+            ).distinct()
+        )
         emails.update(
             Funding.objects.exclude(email='').filter(
                 payed_at__year=year
         emails.update(
             Funding.objects.exclude(email='').filter(
                 payed_at__year=year
@@ -40,4 +50,7 @@ class Command(BaseCommand):
 
         for email in emails:
             print(email)
 
         for email in emails:
             print(email)
-            PayUOrder.send_receipt(email, year)
+            try:
+                PayUOrder.send_receipt(email, year, resend=options['resend'])
+            except:
+                print('ERROR')