cart place holder

This commit is contained in:
Parsa Nazer
2025-03-11 01:21:16 +03:30
parent 06b540d069
commit 4255910e81
2 changed files with 52 additions and 11 deletions
+17 -9
View File
@@ -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
+35 -2
View File
@@ -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()