sync Wdipl with Staging 2
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user