sync Wdipl with Staging 2

This commit is contained in:
rizwanisready
2024-07-26 16:27:41 +05:30
parent 8d212430ec
commit 4afbfb33f7

View File

@@ -31,6 +31,7 @@ from django.views.decorators.http import require_POST
from django.conf import settings
from django.views.generic.base import TemplateView
from django.db.models import Q
# Create your views here.
@@ -434,30 +435,33 @@ def validate_coupon(request):
except Subscription.DoesNotExist:
return JsonResponse({"error": "Subscription not found."}, status=404)
# If no coupon code is provided, assume no discount and proceed
if not coupon_code:
return JsonResponse({"message": "No coupon code provided."}, status=200)
# Validating Coupon
if coupon_code:
try:
coupon = Coupon.objects.get(coupon_code=coupon_code)
if not coupon.is_valid():
return JsonResponse({"error": "Coupon is not valid."}, status=400)
if coupon.discount_amount and coupon.discount_amount > subscription.amount:
return JsonResponse(
{"error": "Coupon discount amount exceeds subscription amount."},
status=400,
)
if (
coupon.discount_percentage
and (coupon.discount_percentage / Decimal("100")) * subscription.amount
> subscription.amount
):
return JsonResponse(
{
"error": "Coupon discount percentage exceeds subscription amount."
},
status=400,
)
except Coupon.DoesNotExist:
return JsonResponse({"error": "Coupon not found."}, status=404)
try:
coupon = Coupon.objects.get(coupon_code=coupon_code)
if not coupon.is_valid():
return JsonResponse({"error": "Coupon is not valid."}, status=400)
if coupon.discount_amount and coupon.discount_amount > subscription.amount:
return JsonResponse(
{"error": "Coupon discount amount exceeds subscription amount."},
status=400,
)
if (
coupon.discount_percentage
and (coupon.discount_percentage / Decimal("100")) * subscription.amount
> subscription.amount
):
return JsonResponse(
{"error": "Coupon discount percentage exceeds subscription amount."},
status=400,
)
except Coupon.DoesNotExist:
return JsonResponse({"error": "Coupon not found."}, status=404)
return JsonResponse({"message": "Coupon is valid."}, status=200)
@csrf_exempt