charge_subscriptions.py 1.2 KB

1234567891011121314151617181920212223242526272829303132
  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. try:
  12. date = datetime.datetime.strptime(args[0], '%Y-%m-%d').date()
  13. except IndexError:
  14. date = datetime.date.today()
  15. except ValueError:
  16. raise CommandError(
  17. 'Please enter a valid date : YYYY-mm-dd (ex: 2011-07-04)')
  18. if options['verbosity'] >= 2:
  19. self.stdout.write(
  20. 'Create invoices for all members for the date : %s' % date)
  21. with respect_language(settings.LANGUAGE_CODE):
  22. invoices = create_all_members_invoices_for_a_period(date)
  23. if invoices > 0 or options['verbosity'] >= 2:
  24. self.stdout.write(
  25. u'%d invoices were created' % len(invoices))