API zásilkovna hotovo
This commit is contained in:
@@ -89,7 +89,7 @@ class Carrier(models.Model):
|
||||
|
||||
choice = models.CharField(max_length=20, choices=Role.choices, default=Role.STORE)
|
||||
|
||||
|
||||
# prodejce to přidá později
|
||||
zasilkovna = models.ForeignKey(
|
||||
'thirdparty.zasilkovna.Zasilkovna', on_delete=models.DO_NOTHING, null=True, blank=True, related_name="carriers"
|
||||
)
|
||||
@@ -98,13 +98,6 @@ class Carrier(models.Model):
|
||||
return f"{self.name} ({self.base_price} Kč)"
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
|
||||
#zásilkovna instance je vytvořena
|
||||
if self.choice == self.Role.ZASILKOVNA:
|
||||
self.packeta = PacketaShipment.objects.create()
|
||||
|
||||
elif self.choice == self.Role.STORE:
|
||||
self.packeta = None
|
||||
|
||||
super().save(*args, **kwargs)
|
||||
|
||||
@@ -161,10 +154,6 @@ class Order(models.Model):
|
||||
max_length=20, choices=Status.choices, default=Status.PENDING
|
||||
)
|
||||
|
||||
user = models.ForeignKey(
|
||||
settings.AUTH_USER_MODEL, related_name="orders", on_delete=models.CASCADE
|
||||
)
|
||||
|
||||
carrier = models.ForeignKey(
|
||||
Carrier, on_delete=models.CASCADE, null=True, blank=True, related_name="orders"
|
||||
)
|
||||
@@ -179,6 +168,10 @@ class Order(models.Model):
|
||||
currency = models.CharField(max_length=10, default="CZK")
|
||||
|
||||
# fakturační údaje (zkopírované z user profilu při objednávce)
|
||||
user = models.ForeignKey(
|
||||
settings.AUTH_USER_MODEL, on_delete=models.DO_NOTHING, related_name="orders", null=True, blank=True
|
||||
)
|
||||
|
||||
first_name = models.CharField(max_length=100)
|
||||
last_name = models.CharField(max_length=100)
|
||||
email = models.EmailField()
|
||||
@@ -218,10 +211,18 @@ class Order(models.Model):
|
||||
|
||||
return total
|
||||
|
||||
|
||||
def import_data_from_user(self):
|
||||
"""Import user data into order for billing purposes."""
|
||||
self.first_name = self.user.first_name
|
||||
self.last_name = self.user.last_name
|
||||
self.email = self.user.email
|
||||
self.phone = self.user.phone
|
||||
self.address = f"{self.user.street} {self.user.street_number}"
|
||||
self.city = self.user.city
|
||||
self.postal_code = self.user.postal_code
|
||||
self.country = self.user.country
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
|
||||
# Keep total_price always in sync with items and discount
|
||||
self.total_price = self.calculate_total_price()
|
||||
|
||||
@@ -255,4 +256,17 @@ class OrderItem(models.Model):
|
||||
return ValueError("Invalid discount code.")
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.product.name} x{self.quantity}"
|
||||
return f"{self.product.name} x{self.quantity}"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class Returning_order(models.Model):
|
||||
#FIXME: dodělat !!!
|
||||
order = models.ForeignKey(Order, related_name="returning_orders", on_delete=models.CASCADE)
|
||||
reason = models.TextField(blank=True)
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
|
||||
def __str__(self):
|
||||
return f"Returning Order #{self.order.id} - {self.created_at.strftime('%Y-%m-%d')}"
|
||||
Reference in New Issue
Block a user