Add management command
This commit is contained in:
		
					parent
					
						
							
								0e84081880
							
						
					
				
			
			
				commit
				
					
						8dc00c9dd9
					
				
			
		
					 1 changed files with 28 additions and 0 deletions
				
			
		
							
								
								
									
										28
									
								
								hosting/management/commands/fetch_stripe_bills.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								hosting/management/commands/fetch_stripe_bills.py
									
										
									
									
									
										Normal 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))) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue