X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/a5d95bc65cbd0b8703471a2dddef0a48234bd265..db9aef85c43966b320f00f8832800affaf2d9505:/src/club/management/commands/send_receipts.py?ds=inline

diff --git a/src/club/management/commands/send_receipts.py b/src/club/management/commands/send_receipts.py
index e461b6854..d29c37274 100644
--- a/src/club/management/commands/send_receipts.py
+++ b/src/club/management/commands/send_receipts.py
@@ -6,11 +6,48 @@ import traceback
 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 paypal.models import BillingAgreement
 
 
 class Command(BaseCommand):
+    def add_arguments(self, parser):
+        parser.add_argument(
+            'year', type=int, metavar='YEAR',
+            help='Send receipts for the year.')
+        parser.add_argument(
+            '--emails',
+            help='Send only to these emails.')
+
     def handle(self, *args, **options):
-        year = 2019
-        for email in PayUOrder.objects.filter(completed_at__year=2019).order_by('schedule__email').values_list('schedule__email', flat=True).distinct():
+        year = options['year']
+        emails = set(
+            PayUOrder.objects.filter(
+                completed_at__year=year
+            ).order_by('schedule__email').values_list(
+                '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
+            ).order_by('email').values_list(
+                'email', flat=True
+            ).distinct()
+        )
+
+        if options['emails']:
+            emails = options['emails'].split(',')
+
+        for email in emails:
             print(email)
-            PayUOrder.send_receipt(email, year)
+            try:
+                PayUOrder.send_receipt(email, year)
+            except:
+                print('ERROR')