| 
									
										
										
										
											2016-04-10 16:12:43 -05:00
										 |  |  | from django.db import models | 
					
						
							| 
									
										
										
										
											2016-10-13 23:33:48 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | from membership.models import CustomUser | 
					
						
							| 
									
										
										
										
											2016-04-10 16:12:43 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-26 01:16:03 -05:00
										 |  |  | from .fields import CountryField | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-10 16:12:43 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-13 23:33:48 -05:00
										 |  |  | # Create your models here. | 
					
						
							| 
									
										
										
										
											2016-04-10 16:12:43 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-13 23:33:48 -05:00
										 |  |  | class BaseBillingAddress(models.Model): | 
					
						
							| 
									
										
										
										
											2017-07-16 15:23:18 +05:30
										 |  |  |     cardholder_name = models.CharField(max_length=100, default="") | 
					
						
							| 
									
										
										
										
											2016-04-26 01:16:03 -05:00
										 |  |  |     street_address = models.CharField(max_length=100) | 
					
						
							|  |  |  |     city = models.CharField(max_length=50) | 
					
						
							|  |  |  |     postal_code = models.CharField(max_length=50) | 
					
						
							|  |  |  |     country = CountryField() | 
					
						
							| 
									
										
										
										
											2019-12-25 08:31:40 +05:30
										 |  |  |     vat_number = models.CharField(max_length=100, default="", blank=True) | 
					
						
							| 
									
										
										
										
											2019-12-26 11:41:29 +05:30
										 |  |  |     stripe_tax_id = models.CharField(max_length=100, default="", blank=True) | 
					
						
							| 
									
										
										
										
											2019-12-25 11:00:04 +05:30
										 |  |  |     vat_number_validated_on = models.DateTimeField(blank=True, null=True) | 
					
						
							| 
									
										
										
										
											2019-12-26 19:35:50 +05:30
										 |  |  |     vat_validation_status = models.CharField(max_length=25, default="", | 
					
						
							|  |  |  |                                              blank=True) | 
					
						
							| 
									
										
										
										
											2016-04-26 01:16:03 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-13 23:33:48 -05:00
										 |  |  |     class Meta: | 
					
						
							|  |  |  |         abstract = True | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-29 17:34:40 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-13 23:33:48 -05:00
										 |  |  | class BillingAddress(BaseBillingAddress): | 
					
						
							| 
									
										
										
										
											2016-07-27 00:08:45 -05:00
										 |  |  |     def __str__(self): | 
					
						
							| 
									
										
										
										
											2019-12-21 08:52:06 +05:30
										 |  |  |         if self.vat_number: | 
					
						
							| 
									
										
										
										
											2019-12-26 19:55:28 +05:30
										 |  |  |             return "%s, %s, %s, %s, %s, %s %s %s %s" % ( | 
					
						
							| 
									
										
										
										
											2019-12-21 08:52:06 +05:30
										 |  |  |                 self.cardholder_name, self.street_address, self.city, | 
					
						
							| 
									
										
										
										
											2019-12-26 18:34:26 +05:30
										 |  |  |                 self.postal_code, self.country, self.vat_number, | 
					
						
							| 
									
										
										
										
											2019-12-26 19:55:28 +05:30
										 |  |  |                 self.stripe_tax_id, self.vat_number_validated_on, | 
					
						
							|  |  |  |                 self.vat_validation_status | 
					
						
							| 
									
										
										
										
											2019-12-21 08:52:06 +05:30
										 |  |  |             ) | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             return "%s, %s, %s, %s, %s" % ( | 
					
						
							|  |  |  |                 self.cardholder_name, self.street_address, self.city, | 
					
						
							|  |  |  |                 self.postal_code, self.country | 
					
						
							|  |  |  |             ) | 
					
						
							| 
									
										
										
										
											2016-07-27 00:08:45 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-26 01:16:03 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-13 23:33:48 -05:00
										 |  |  | class UserBillingAddress(BaseBillingAddress): | 
					
						
							|  |  |  |     user = models.ForeignKey(CustomUser, related_name='billing_addresses') | 
					
						
							|  |  |  |     current = models.BooleanField(default=True) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __str__(self): | 
					
						
							| 
									
										
										
										
											2019-12-21 10:05:58 +05:30
										 |  |  |         if self.vat_number: | 
					
						
							| 
									
										
										
										
											2019-12-26 19:55:28 +05:30
										 |  |  |             return "%s, %s, %s, %s, %s, %s %s %s %s" % ( | 
					
						
							| 
									
										
										
										
											2019-12-21 10:05:58 +05:30
										 |  |  |                 self.cardholder_name, self.street_address, self.city, | 
					
						
							| 
									
										
										
										
											2019-12-26 18:34:26 +05:30
										 |  |  |                 self.postal_code, self.country, self.vat_number, | 
					
						
							| 
									
										
										
										
											2019-12-26 19:55:28 +05:30
										 |  |  |                 self.stripe_tax_id, self.vat_number_validated_on, | 
					
						
							|  |  |  |                 self.vat_validation_status | 
					
						
							| 
									
										
										
										
											2019-12-21 10:05:58 +05:30
										 |  |  |             ) | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             return "%s, %s, %s, %s, %s" % ( | 
					
						
							|  |  |  |                 self.cardholder_name, self.street_address, self.city, | 
					
						
							|  |  |  |                 self.postal_code, self.country | 
					
						
							|  |  |  |             ) | 
					
						
							| 
									
										
										
										
											2016-10-13 23:33:48 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def to_dict(self): | 
					
						
							|  |  |  |         return { | 
					
						
							| 
									
										
										
										
											2017-07-16 22:34:49 +05:30
										 |  |  |             'Cardholder Name': self.cardholder_name, | 
					
						
							| 
									
										
										
										
											2016-10-13 23:33:48 -05:00
										 |  |  |             'Street Address': self.street_address, | 
					
						
							|  |  |  |             'City': self.city, | 
					
						
							|  |  |  |             'Postal Code': self.postal_code, | 
					
						
							|  |  |  |             'Country': self.country, | 
					
						
							| 
									
										
										
										
											2019-12-21 10:05:58 +05:30
										 |  |  |             'VAT Number': self.vat_number | 
					
						
							| 
									
										
										
										
											2016-10-13 23:33:48 -05:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-10 16:12:43 -05:00
										 |  |  | class ContactMessage(models.Model): | 
					
						
							|  |  |  |     name = models.CharField(max_length=200) | 
					
						
							|  |  |  |     email = models.EmailField() | 
					
						
							| 
									
										
										
										
											2017-03-22 11:18:10 -04:00
										 |  |  |     phone_number = models.CharField(max_length=200, blank=True) | 
					
						
							| 
									
										
										
										
											2016-04-10 16:12:43 -05:00
										 |  |  |     message = models.TextField() | 
					
						
							|  |  |  |     received_date = models.DateTimeField(auto_now_add=True) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __str__(self): | 
					
						
							| 
									
										
										
										
											2016-04-26 01:16:03 -05:00
										 |  |  |         return "%s - %s - %s" % (self.name, self.email, self.received_date) |