def add_to_order(request, *args, **kwargs): if request.method == "GET": return render(request, "restaurant/order.php") if request.method == "POST": order = Order() cart = FoodCart.objects.filter(session_key=request.session.session_key, checked_out=False) total = 0 for item in cart: total += item.get_total restaurant = item.restaurant total += restaurant.delivery_charge order.total_price = total order.paid = False first_name = request.POST.get("first_name", "") middle_name = request.POST.get("middle_name", "") last_name = request.POST.get("last_name", "") email = request.POST.get("email", "") contact_number = request.POST.get("contact", "") address_line1 = request.POST.get("address1", "") address_line2 = request.POST.get("address2", "") city = request.POST.get("city", "") state = request.POST.get("state", "") zip = request.POST.get("zip", "") order.first_name = first_name order.last_name = last_name order.middle_name = middle_name order.email = email order.contact_number = contact_number order.address_line1 = address_line1 order.address_line2 = address_line2 order.city = city order.state = state order.zip_code = zip if 'comment' in request.POST: message = request.POST.get('comment', '') order.note = message order.payment = 1 last_order = Order.objects.last() if last_order: order_id = last_order.id order_id = order_id + 1 else: order_id = 1 id_string = randomString() + str(order_id) if Order.objects.filter(id_string=id_string).exists(): id_string = randomString() + str(order_id) order.id_string = id_string else: order.id_string = id_string order.status = 1 order._runsignal = False order._approved = False order._prepared = False order.save() for item in cart: order.cart.add(item) item.checked_out = True item.save() order._runsignal = False order._approved = False order._prepared = False order.save() return HttpResponseRedirect('/')
def post(self, request, *args, **kwargs): serializer = self.get_serializer(data=request.data) if not serializer.is_valid(): return Response({ 'status': False, 'msg': serializer.errors }, status=status.HTTP_400_BAD_REQUEST) validated_data = serializer.validated_data order = Order() # get logged in user user = request.user note = validated_data.get("note", "") address_line1 = validated_data.get("address_line1", "") address_line2 = validated_data.get("address_line2", "") city = validated_data.get("city", "") state = validated_data.get("state", "") zip_code = validated_data.get("zip_code", "") payment = validated_data.get("payment", 1) # get total price from cart of user if not FoodCart.objects.filter(user=user, checked_out=False).exists(): return Response({ "status": False, "msg": "Order placement failed", "errors": { "cart": ["Nothing in cart to place order."] } }) total = 0 for item in FoodCart.objects.filter(user=user, checked_out=False): total += item.get_total restaurant = item.restaurant total += restaurant.delivery_charge order.note = note order.address_line1 = address_line1 order.address_line2 = address_line2 order.city = city order.state = state order.zip_code = zip_code order.total_price = total order.payment = payment order.user = user order.paid = False last_order = Order.objects.last() if last_order: order_id = Order.objects.last().id order_id = order_id + 1 else: order_id = 1 id_string = randomString() + str(order_id) if Order.objects.filter(id_string=id_string).exists(): id_string = randomString() + str(order_id) order.id_string = id_string order.status = 1 order._runsignal = False order.save() for item in FoodCart.objects.filter(user=user, checked_out=False): order.cart.add(item) item.checked_out = True item.save() order._runsignal = True order.save() return Response({ 'status': True, 'msg': 'Order placed successfully.' }, status=status.HTTP_200_OK)