Add basic login.
[wolnelektury.git] / src / club / management / commands / send_receipts.py
index d29c372..402cd08 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 datetime import timedelta
 import traceback
 #
 from datetime import timedelta
 import traceback
@@ -8,6 +8,7 @@ from django.utils.timezone import now
 from club.models import PayUOrder
 from funding.models import Funding
 from paypal.models import BillingAgreement
 from club.models import PayUOrder
 from funding.models import Funding
 from paypal.models import BillingAgreement
+from pz.models import Payment
 
 
 class Command(BaseCommand):
 
 
 class Command(BaseCommand):
@@ -18,6 +19,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']
@@ -36,11 +40,20 @@ class Command(BaseCommand):
         )
         emails.update(
             Funding.objects.exclude(email='').filter(
         )
         emails.update(
             Funding.objects.exclude(email='').filter(
-                payed_at__year=year
+                completed_at__year=year
             ).order_by('email').values_list(
                 'email', flat=True
             ).distinct()
         )
             ).order_by('email').values_list(
                 'email', flat=True
             ).distinct()
         )
+        emails.update(
+            Payment.objects.exclude(debit__email='').filter(
+                realised=True,
+                is_dd=True,
+                booking_date__year=year,
+            ).order_by('debit__email').values_list(
+                'debit__email', flat=True
+            ).distinct()
+        )
 
         if options['emails']:
             emails = options['emails'].split(',')
 
         if options['emails']:
             emails = options['emails'].split(',')
@@ -48,6 +61,7 @@ class Command(BaseCommand):
         for email in emails:
             print(email)
             try:
         for email in emails:
             print(email)
             try:
-                PayUOrder.send_receipt(email, year)
+                PayUOrder.send_receipt(email, year, resend=options['resend'])
             except:
                 print('ERROR')
             except:
                 print('ERROR')
+                raise