From a2635e6fb903b45bf4e4665a6a4695ef57605850 Mon Sep 17 00:00:00 2001 From: PCoder Date: Thu, 28 Nov 2019 12:51:02 +0530 Subject: [PATCH 1/2] Update customuser add stripe import remark --- ...10_customuser_import_stripe_bill_remark.py | 20 +++++++++++++++++++ membership/models.py | 4 ++++ 2 files changed, 24 insertions(+) create mode 100644 membership/migrations/0010_customuser_import_stripe_bill_remark.py diff --git a/membership/migrations/0010_customuser_import_stripe_bill_remark.py b/membership/migrations/0010_customuser_import_stripe_bill_remark.py new file mode 100644 index 00000000..6e824e3e --- /dev/null +++ b/membership/migrations/0010_customuser_import_stripe_bill_remark.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.4 on 2019-11-28 07:19 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('membership', '0009_deleteduser'), + ] + + operations = [ + migrations.AddField( + model_name='customuser', + name='import_stripe_bill_remark', + field=models.TextField(default='', help_text='Indicates any issues while importing stripe bills'), + ), + ] diff --git a/membership/models.py b/membership/models.py index 1a622bd5..df5a5326 100644 --- a/membership/models.py +++ b/membership/models.py @@ -82,6 +82,10 @@ class CustomUser(AbstractBaseUser, PermissionsMixin): help_text=_( 'Designates whether the user can log into this admin site.'), ) + import_stripe_bill_remark = models.TextField( + default="", + help_text="Indicates any issues while importing stripe bills" + ) objects = MyUserManager() From b683a5ac44bf5f392a9dd72f782343e1e110a912 Mon Sep 17 00:00:00 2001 From: PCoder Date: Thu, 28 Nov 2019 13:38:45 +0530 Subject: [PATCH 2/2] Save import remark --- .../management/commands/fetch_stripe_bills.py | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/hosting/management/commands/fetch_stripe_bills.py b/hosting/management/commands/fetch_stripe_bills.py index ed26b13f..b3331ddb 100644 --- a/hosting/management/commands/fetch_stripe_bills.py +++ b/hosting/management/commands/fetch_stripe_bills.py @@ -1,3 +1,4 @@ +import datetime import logging from django.core.management.base import BaseCommand @@ -19,6 +20,10 @@ class Command(BaseCommand): def handle(self, *args, **options): try: for email in options['customer_email']: + self.stdout.write( + self.style.SUCCESS( + "---------------------------------------------") + ) stripe_utils = StripeUtils() user = CustomUser.objects.get(email=email) if hasattr(user, 'stripecustomer'): @@ -39,7 +44,9 @@ class Command(BaseCommand): ) if all_invoices_response['error'] is not None: self.stdout.write(self.style.ERROR(all_invoices_response['error'])) - exit(1) + user.import_stripe_bill_remark += "{}: {},".format(datetime.datetime.now(), all_invoices_response['error']) + user.save() + continue all_invoices = all_invoices_response['response_object'] self.stdout.write(self.style.SUCCESS("Obtained {} invoices".format(len(all_invoices) if all_invoices is not None else 0))) num_invoice_created = 0 @@ -54,6 +61,10 @@ class Command(BaseCommand): if MonthlyHostingBill.create(invoice) is not None: num_invoice_created += 1 else: + user.import_stripe_bill_remark += "{}: Import failed - {},".format( + datetime.datetime.now(), + invoice['invoice_id']) + user.save() logger.error("Did not import invoice for %s" "" % str(invoice)) self.stdout.write( @@ -62,9 +73,9 @@ class Command(BaseCommand): else: self.stdout.write(self.style.SUCCESS( 'Customer email %s does not have a stripe customer.' % email)) - self.stdout.write( - self.style.SUCCESS( - "---------------------------------------------") - ) + user.import_stripe_bill_remark += "{}: No stripecustomer,".format( + datetime.datetime.now() + ) + user.save() except Exception as e: print(" *** Error occurred. Details {}".format(str(e)))