1 # This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
2 # Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
4 from datetime import timedelta
6 from django.core.management.base import BaseCommand, CommandError
7 from django.utils.timezone import now
8 from club.models import PayUOrder
9 from funding.models import Funding
10 from paypal.models import BillingAgreement
11 from pz.models import Payment
14 class Command(BaseCommand):
15 def add_arguments(self, parser):
17 'year', type=int, metavar='YEAR',
18 help='Send receipts for the year.')
21 help='Send only to these emails.')
23 '--resend', action='store_true',
24 help='This is a re-send.')
26 def handle(self, *args, **options):
27 year = options['year']
29 PayUOrder.objects.filter(
30 completed_at__year=year
31 ).order_by('schedule__email').values_list(
32 'schedule__email', flat=True
36 BillingAgreement.objects.all().order_by(
37 'schedule__email').values_list(
38 'schedule__email', flat=True
42 Funding.objects.exclude(email='').filter(
43 completed_at__year=year
44 ).order_by('email').values_list(
49 Payment.objects.exclude(debit__email='').filter(
52 booking_date__year=year,
53 ).order_by('debit__email').values_list(
54 'debit__email', flat=True
59 emails = options['emails'].split(',')
64 PayUOrder.send_receipt(email, year, resend=options['resend'])