Add management command

This commit is contained in:
PCoder 2019-04-02 09:18:46 +02:00
parent 0e84081880
commit 8dc00c9dd9

View file

@ -0,0 +1,28 @@
from django.core.management.base import BaseCommand
from hosting.models import UserCardDetail
from membership.models import CustomUser
from utils.stripe_utils import StripeUtils
class Command(BaseCommand):
help = '''Fetches invoices from Stripe and creates bills for a given
customer in the MonthlyHostingBill model'''
def add_arguments(self, parser):
parser.add_argument('customer_email', nargs='+', type=str)
def handle(self, *args, **options):
try:
for email in options['customer_email']:
stripe_utils = StripeUtils()
user = CustomUser.objects.get(email=email)
if hasattr(user, 'stripecustomer'):
self.stdout.write(self.style.SUCCESS('Found %s. Fetching bills for him.' % email))
stripe_utils.get_all_invoices(
user.stripecustomer.stripe_id
)
else:
self.stdout.write(self.style.SUCCESS('Customer email %s does not have a stripe customer.' % email))
except Exception as e:
print(" *** Error occurred. Details {}".format(str(e)))