cart place holder
This commit is contained in:
+17
-9
@@ -74,17 +74,25 @@ class OrderModel(models.Model):
|
||||
super().save(*args, **kwargs)
|
||||
|
||||
|
||||
def discount_list(self):
|
||||
items_with_discount = self.items.filter(product__discount__gt=0)
|
||||
discount_amount_dict = {f'{item.product}': item.product.discount for item in items_with_discount}
|
||||
|
||||
if self.discount_code:
|
||||
|
||||
if self.discount_code.is_valid():
|
||||
discount_amount_dict['discount_code_discount'] = 10
|
||||
else:
|
||||
self.discount = None
|
||||
self.save()
|
||||
|
||||
return discount_amount_dict
|
||||
|
||||
def discount(self):
|
||||
pass
|
||||
# total_with_item_discount = sum(item.total_with_discount() for item in self.items.all())
|
||||
# if self.discount_code:
|
||||
# if not self.discount_code.is_valid():
|
||||
# raise DiscountNotAvailableError('این کد تخفیف دیگر معتبر نیست')
|
||||
# discount_percent = self.discount_code.percent
|
||||
# return total_with_item_discount * ((100 - discount_percent) / 100)
|
||||
# return total_with_item_discount
|
||||
|
||||
|
||||
# return total_with_item_discount * ((100 - discount_percent) / 100)
|
||||
# discount_percent = self.discount_code.percent
|
||||
pass
|
||||
def tax(self):
|
||||
return self.total_without_tax() * 0.2
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from rest_framework import serializers
|
||||
from .models import OrderItemModel, OrderModel, DiscountCode
|
||||
from product.serializers import ProductVariantSerialzier
|
||||
|
||||
from account.serializers import UserAddressSerializer
|
||||
class DiscountCodeSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = DiscountCode
|
||||
@@ -20,11 +20,44 @@ class OrderItemSerailzier(serializers.ModelSerializer):
|
||||
|
||||
class CartSerializer(serializers.ModelSerializer):
|
||||
items = OrderItemSerailzier(many=True)
|
||||
discount = serializers.SerializerMethodField()
|
||||
cart_total = serializers.SerializerMethodField()
|
||||
tax = serializers.SerializerMethodField()
|
||||
final_price = serializers.SerializerMethodField()
|
||||
discount_code = serializers.SerializerMethodField()
|
||||
class Meta:
|
||||
model = OrderModel
|
||||
fields = ['address', 'created_at', 'is_paid', 'status', 'discount_code', 'items']
|
||||
fields = [ 'discount_code', 'items', 'cart_total', 'discount', 'tax', 'final_price']
|
||||
|
||||
|
||||
def get_discount_code(self, obj):
|
||||
return obj.discount_code.code if obj.discount_code else None
|
||||
|
||||
def get_discount(self, obj):
|
||||
return [
|
||||
{
|
||||
'product_name': 'iphone 13',
|
||||
'dicount': '20%',
|
||||
'discount_amount': '100,000 تومان'
|
||||
},
|
||||
{
|
||||
'product_name': 'iphone 12',
|
||||
'dicount': '10%',
|
||||
'discount_amount': '50,000 تومان'
|
||||
},
|
||||
]
|
||||
|
||||
def get_tax(self, obj):
|
||||
return 1000
|
||||
|
||||
def get_cart_total(self, obj):
|
||||
return 10000
|
||||
|
||||
def get_final_price(self, obj):
|
||||
return 8000
|
||||
|
||||
|
||||
|
||||
class OrderSerializer(serializers.ModelSerializer):
|
||||
count = serializers.SerializerMethodField()
|
||||
images = serializers.SerializerMethodField()
|
||||
|
||||
Reference in New Issue
Block a user