def getOrderById(request, pk): try: order = Order.objects.get(_id=pk) serializer = OrderSerializer(order, many=False) return Response(serializer.data) except: return Response({'detail': 'Order does not exists'}, status=status.HTTP_400_BAD_REQUEST)
def getOrderById(request, pk): user=request.user order=Order.objects.get(_id=pk) try: if user.is_staff or order.user == user: serializer=OrderSerializer(order, many=False) return Response(serializer.data) else: return Response({'detail':'Not authorized'}, status=status.HTTP_400_BAD_REQUEST) except: return Response({'detail':'Order does not exist'}, status=status.HTTP_400_BAD_REQUEST)
def addOrderItems(request): user = request.user data = request.data orderItems = data['orderItems'] if orderItems and len(orderItems) == 0: return Response({'detail': 'No Order Items'}, status=status.HTTP_400_BAD_REQUEST) else: # (1) Create order order = Order.objects.create(user=user, paymentMethod=data['paymentMethod'], taxPrice=data['taxPrice'], shippingPrice=data['shippingPrice'], totalPrice=data['totalPrice']) # (2) Create shipping address shipping = ShippingAddress.objects.create( order=order, address=data['shippingAddress']['address'], city=data['shippingAddress']['city'], postalCode=data['shippingAddress']['postalCode'], country=data['shippingAddress']['country'], ) # (3) Create order items adn set order to orderItem relationship for i in orderItems: product = Product.objects.get(_id=i['product']) item = OrderItem.objects.create( product=product, order=order, name=product.name, quantity=i['quantity'], price=i['price'], image=product.image.url, ) # (4) Update stock product.countInStock -= item.quantity product.save() serializer = OrderSerializer(order, many=False) return Response(serializer.data)
def getOrderByID(request, pk): user = request.user try: order = Order.objects.get(_id=pk) if user.is_staff or order.user == user: serializer = OrderSerializer(order, many=False) return Response(serializer.data) else: return Response({'detail': 'Not Authorized to View This Order'}, status=status.HTTP_400_BAD_REQUEST) except: return Response({'detail': 'Order Does Not Exist'}, status=status.HTTP_400_BAD_REQUEST)
def addOrderItems(request): user = request.user data = request.data # orderItems sent from front end orderItems = data['orderItems'] #check if orderItems exist if orderItems and len(orderItems) == 0: return Response({'detail': 'No order items found.'}, status=status.HTTP_400_BAD_REQUEST) else: # create order order = Order.objects.create( user=user, paymentMethod=data['paymentMethod'], taxPrice=data['taxPrice'], shippingPrice=data['shippingPrice'], totalPrice=data['totalPrice'] ) # create shipping address shipping = ShippingAddress.objects.create( order=order, address=data['shippingAddress']['address'], city=data['shippingAddress']['city'], postalCode=data['shippingAddress']['postalCode'], country=data['shippingAddress']['country'] ) # create order items (add them to the database) for i in orderItems: product = Product.objects.get(_id=i['product']) # set orderItem relationship item = OrderItem.objects.create( product=product, order=order, name=product.name, qty=i['qty'], price=i['price'], image=product.image.url, ) # update stock product.countInStock -= item.qty product.save() serializer = OrderSerializer(order, many=False) return Response(serializer.data)
def addOrderItems(request): user = request.user data = request.data orderItems = data['orderItems'] if orderItems and len(orderItems) == 0: return Response({'detail': 'No Order Items'}, status=status.HTTP_400_BAD_REQUEST) else: # (1) CREATE ORDER order = Order.objects.create( user = user, paymentMethod = data['paymentMethod'], taxPrice = data['taxPrice'], shippingPrice = data['shippingPrice'], totalPrice = data['totalPrice'] ) # (2) CREATE SHIPPING ADDRESS shipping = ShippingAddress.objects.create( order = order, address = data['shippingAddress']['address'], city = data['shippingAddress']['city'], postalCode = data['shippingAddress']['postalCode'], country = data['shippingAddress']['country'] ) # (3) CREATE ORDER ITEMS AND SET ORDER TO ORDERITEM RELATIONSHIP for i in orderItems: product = Product.objects.get(_id=i['product']) item = OrderItem.objects.create( product = product, order = order, name = product.name, qty = i['qty'], price = i['price'], image = product.image.url, ) # (4) UPDATE STOCK product.countInStock -= item.qty product.save() serializer = OrderSerializer(order, many=False) return Response(serializer.data)
def addOrderItems(request): user = request.user data = request.data orderItems = data["orderItems"] if orderItems and len(orderItems) == 0: return Response({'detail': 'no Order Items'}, status=status.HTTP_400_BAD_REQUEST) else: # Create Order order = Order.objects.create(user=user, paymentMethod=data["paymentMethod"], taxPrice=data["taxPrice"], shippingPrice=data["shippingPrice"], totalPrice=data["totalPrice"]) # create shipping address shipping = ShippingAddress.objects.create( order=order, shippingPrice=data["shippingPrice"], address=data["shippingAddress"]["address"], city=data["shippingAddress"]["city"], postalCode=data["shippingAddress"]["postalCode"], country=data["shippingAddress"]["country"]) # order Item for i in orderItems: product = Product.objects.get(_id=i["product"]) orderItem = OrderItem.objects.create( product=product, order=order, name=product.name, qty=i["qty"], price=i["price"], image=product.image.url, ) # Update stock product.countInStock -= orderItem.qty product.save() serializer = OrderSerializer(order, many=False) return Response(serializer.data)
def getFarmersOrders(request): user = request.user farmerUser = UserSerializer(user, many=False) #Order.orderItem_set.all() #Order where order.id = OrderItem.orderid and orderItem.productId = product.id and product.user = user.userid and user=userıd #orderUsers = get_user_model().objects.get(id=user.id) #orderUsers. #query1= OrderItem.objects.all() #orders = Order.objects.filter(Q(_id_contains=query1) | Q(last_name__contains=query) productFilter = user.product_set.all() orderItem = OrderItem.objects.filter() orders = Order.objects.filter(user_id=user.id) serializer = OrderSerializer(orders, many=True) return Response(serializer.data)
def addOrderItems(request): data = request.data location = request.geolocation currency = str(location['raw_data']['currency_code']).lower() c = CurrencyConverter() convertion = round( c.convert(float(data['totalPrice']), 'MXN', currency.upper()), 2) print(convertion) stripe.api_key = settings.STRIPE_SECRET_KEY user = None payment_intent = None default_shipping_address = None order = None #Verify payment methods in stripe print("USER IS AUTHENTICATED: ", request.user.is_authenticated) orderItems = data['orderItems'] if orderItems and len(orderItems) == 0: return Response({'detail': 'No order items'}, status=status.HTTP_400_BAD_REQUEST) else: if request.user.is_authenticated: user = request.user user_shippings = ShippingAdress.objects.filter(user=user) if len(user_shippings) != 0: for user_shipping in user_shippings: if user_shipping.default == True: default_shipping_address = user_shipping break if str(data['paymentMethod']).lower() == 'stripe': payment_intent = stripe_payment_management(data, user, request, convertion, currency) # (1) Create order if payment_intent: order = Order.objects.create( user=user, paymentMethod=data['paymentMethod'], taxtPrice=Decimal(data['taxtPrice']), shippingPrice=Decimal(data['shippingPrice']), totalPrice=Decimal(data['totalPrice']), stripe_payment_intent=payment_intent.id, ) else: order = Order.objects.create( user=user, paymentMethod=data['paymentMethod'], taxtPrice=Decimal(data['taxtPrice']), shippingPrice=Decimal(data['shippingPrice']), totalPrice=Decimal(data['totalPrice']), ) coupon = str(data['coupon']) coupon_exists = Coupon.objects.filter(code=coupon.upper()).exists() if coupon_exists: coupon = Coupon.objects.get(code=coupon.upper()) if coupon.discount: order.discount = Decimal(coupon.discount) else: order.discount = Decimal(order.totalPrice) * Decimal( coupon.percentage) order.save() # (2) Create shipping address if default_shipping_address: default_shipping_address.order = order default_shipping_address.save() else: if request.user.is_authenticated: shipping = ShippingAdress.objects.create( user=user, order=order, address=data['ShippingAdress']['address'], postalCode=data['ShippingAdress']['postalCode'], country=data['ShippingAdress']['country'], city=data['ShippingAdress']['city'], ) else: shipping = ShippingAdress.objects.create( order=order, address=data['ShippingAdress']['address'], postalCode=data['ShippingAdress']['postalCode'], country=data['ShippingAdress']['country'], city=data['ShippingAdress']['city'], ) shipping.receiver_first_name = data['ShippingAdress'][ 'receiver_first_name'] shipping.receiver_last_name = data['ShippingAdress'][ 'receiver_last_name'] shipping.save() # (3) Create order items and set the order to order Item relationship for i in orderItems: product = Product.objects.get(_id=i['product']) item = OrderItem.objects.create( product=product, order=order, name=product.name, qty=i['qty'], price=i['price'], image=product.image.url, ) # (4) update Stock product.countInStock -= item.qty product.save() serializer = OrderSerializer(order, many=False) return Response(serializer.data)
def getOrders(request): user = request.user orders = Order.objects.all() serializer = OrderSerializer(orders, many=True) return Response(serializer.data)
def getMyOrders(request): user = request.user orders = user.order_set.all() serializer = OrderSerializer(orders, many=True) return Response(serializer.data)
def getOrders(request): orders = Order.objects.all() serializer = OrderSerializer(orders, many=True) # many or single object to serialize required # serializer required for every model we want to return return Response(serializer.data)
def addOrderItems(request): user = request.user data = request.data company = ShipmentCompany.objects.get(_id=1) selectedBox = Box.objects.get(_id=1) orderItems = data['orderItems'] if orderItems and len(orderItems) == 0: return Response({'detail': 'No Order Items'}, status=status.HTTP_400_BAD_REQUEST) else: #(1)Create Order order = Order.objects.create(user=user, paymentMethod=data['paymentMethod'], taxPrice=data['taxPrice'], shippingPrice=data['shippingPrice'], totalPrice=data['totalPrice']) #(2) Create Shipping Adress shipping = ShippingAddress.objects.create( order=order, address=data['shippingAddress']['address'], city=data['shippingAddress']['city'], postalCode=data['shippingAddress']['postalCode'], country=data['shippingAddress']['country'], isBoxDelivery=data['shippingAddress']['isBoxDelivery'], ) #(3) Create order items and ser order to orderItem relationship for i in orderItems: product = Product.objects.get(_id=i['product']) item = OrderItem.objects.create( product=product, order=order, name=product.name, qty=i['qty'], price=i['price'], image=product.image.url, ) #(4) Update stock product.countInStock -= item.qty product.save() #(5)Create Box Delivery or DirectDelivery if data['shippingAddress']['isBoxDelivery'] == True: company = ShipmentCompany.objects.get(_id=1) selectedBox = Box.objects.get(_id=1) boxDelivery = BoxDelivery.objects.create( shippingAddress=shipping, shipmentCompany=company, user=user, box=selectedBox, ) boxDelivery.save() else: directDel = DirectDelivery.objects.create( shippingAddress=shipping, shipmentCompany=company, ) serializer = OrderSerializer(order, many=False) return Response(serializer.data)