import logging from django.core.management.base import BaseCommand from uncloud_auth.models import User from uncloud_pay.models import Order, Bill from django.core.exceptions import ObjectDoesNotExist from datetime import timedelta, date from django.utils import timezone from uncloud_pay.models import Bill BILL_PAYMENT_DELAY=timedelta(days=10) logger = logging.getLogger(__name__) class Command(BaseCommand): help = 'Generate bills and charge customers if necessary.' def add_arguments(self, parser): pass # TODO: use logger.* def handle(self, *args, **options): # Iterate over all 'active' users. # TODO: filter out inactive users. users = User.objects.all() print("Processing {} users.".format(users.count())) for user in users: now = timezone.now() Bill.generate_for( year=now.year, month=now.month, user=user, allowed_delay=BILL_PAYMENT_DELAY) # We're done for this round :-) print("=> Done.")