Save tax id in billing address even if no StripeCustomer
This commit is contained in:
		
					parent
					
						
							
								74d1bbb6d3
							
						
					
				
			
			
				commit
				
					
						9310f72cf9
					
				
			
		
					 2 changed files with 27 additions and 15 deletions
				
			
		|  | @ -167,7 +167,7 @@ def validate_vat_number(stripe_customer_id, billing_address_id): | ||||||
|                     } |                     } | ||||||
|             else: |             else: | ||||||
|                 tax_id_obj = create_tax_id( |                 tax_id_obj = create_tax_id( | ||||||
|                     stripe_customer_id, billing_address.vat_number, |                     stripe_customer_id, billing_address_id, | ||||||
|                     "ch_vat" if billing_address.country.lower() == "ch" else "eu_vat") |                     "ch_vat" if billing_address.country.lower() == "ch" else "eu_vat") | ||||||
|     else: |     else: | ||||||
|         return { |         return { | ||||||
|  | @ -184,11 +184,19 @@ def validate_vat_number(stripe_customer_id, billing_address_id): | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def create_tax_id(stripe_customer_id, vat_number, type): | def create_tax_id(stripe_customer_id, billing_address_id, type): | ||||||
|  |     try: | ||||||
|  |         billing_address = BillingAddress.objects.get(id=billing_address_id) | ||||||
|  |     except BillingAddress.DoesNotExist as dne: | ||||||
|  |         billing_address = None | ||||||
|  |         logger.debug("BillingAddress does not exist for %s" % billing_address_id) | ||||||
|  |     except BillingAddress.MultipleObjectsReturned as mor: | ||||||
|  |         logger.debug("Multiple BillingAddress exist for %s" % billing_address_id) | ||||||
|  |         billing_address = BillingAddress.objects.filter(billing_address_id).order_by('-id').first() | ||||||
|     stripe_utils = StripeUtils() |     stripe_utils = StripeUtils() | ||||||
|     tax_id_response = stripe_utils.create_tax_id_for_user( |     tax_id_response = stripe_utils.create_tax_id_for_user( | ||||||
|         stripe_customer_id, |         stripe_customer_id, | ||||||
|         vat_number=vat_number, |         vat_number=billing_address.vat_number, | ||||||
|         type=type |         type=type | ||||||
|     ) |     ) | ||||||
| 
 | 
 | ||||||
|  | @ -197,16 +205,21 @@ def create_tax_id(stripe_customer_id, vat_number, type): | ||||||
|     if not tax_id_obj: |     if not tax_id_obj: | ||||||
|         return tax_id_response |         return tax_id_response | ||||||
| 
 | 
 | ||||||
|  |     try: | ||||||
|         stripe_customer = StripeCustomer.objects.get(stripe_id=stripe_customer_id) |         stripe_customer = StripeCustomer.objects.get(stripe_id=stripe_customer_id) | ||||||
|         billing_address_set = set() |         billing_address_set = set() | ||||||
|         for ho in stripe_customer.hostingorder_set.all(): |         for ho in stripe_customer.hostingorder_set.all(): | ||||||
|         if ho.billing_address.vat_number==vat_number: |             if ho.billing_address.vat_number == billing_address.vat_number: | ||||||
|                 billing_address_set.add(ho.billing_address) |                 billing_address_set.add(ho.billing_address) | ||||||
|         for b_address in billing_address_set: |         for b_address in billing_address_set: | ||||||
|             b_address.stripe_tax_id = tax_id_obj.id |             b_address.stripe_tax_id = tax_id_obj.id | ||||||
| 
 | 
 | ||||||
|         ub_addresses = stripe_customer.user.billing_addresses.filter( |         ub_addresses = stripe_customer.user.billing_addresses.filter( | ||||||
|         vat_number=vat_number) |             vat_number=billing_address.vat_number) | ||||||
|         for ub_address in ub_addresses: |         for ub_address in ub_addresses: | ||||||
|             ub_address.stripe_tax_id = tax_id_obj.id |             ub_address.stripe_tax_id = tax_id_obj.id | ||||||
|  |     except StripeCustomer.DoesNotExist as dne: | ||||||
|  |         logger.debug("StripeCustomer %s does not exist" % stripe_customer_id) | ||||||
|  |         billing_address.stripe_tax_id = tax_id_obj.id | ||||||
|  |         billing_address.save() | ||||||
|     return tax_id_obj |     return tax_id_obj | ||||||
|  |  | ||||||
|  | @ -524,7 +524,6 @@ class PaymentOrderView(FormView): | ||||||
|                         email=user_email, |                         email=user_email, | ||||||
|                         token=token, |                         token=token, | ||||||
|                         customer_name=user_name) |                         customer_name=user_name) | ||||||
|                     customer.save() |  | ||||||
| 
 | 
 | ||||||
|             billing_address = address_form.save() |             billing_address = address_form.save() | ||||||
|             request.session["billing_address_id"] = billing_address.id |             request.session["billing_address_id"] = billing_address.id | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue