charge_subscriptions.py 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. # -*- coding: utf-8 -*-
  2. import datetime
  3. from django.core.management.base import BaseCommand, CommandError
  4. from django.conf import settings
  5. from coin.utils import respect_language
  6. from coin.billing.create_subscriptions_invoices import create_all_members_invoices_for_a_period
  7. class Command(BaseCommand):
  8. args = '[date=2011-07-04]'
  9. help = 'Create invoices for members subscriptions for date specified (or today if no date passed)'
  10. def handle(self, *args, **options):
  11. verbosity = int(options['verbosity'])
  12. try:
  13. date = datetime.datetime.strptime(args[0], '%Y-%m-%d').date()
  14. except IndexError:
  15. date = datetime.date.today()
  16. except ValueError:
  17. raise CommandError(
  18. 'Please enter a valid date : YYYY-mm-dd (ex: 2011-07-04)')
  19. if verbosity >= 2:
  20. self.stdout.write(
  21. 'Create invoices for all members for the date : %s' % date)
  22. with respect_language(settings.LANGUAGE_CODE):
  23. invoices = create_all_members_invoices_for_a_period(date)
  24. if invoices > 0 or verbosity >= 2:
  25. self.stdout.write(
  26. u'%d invoices were created' % len(invoices))