def process_request(request, product: cmod.Product): if request.method == 'POST': form = BuyNowForm(request.POST) form.product = product if form.is_valid(): if request.user.is_authenticated: cart = request.user.get_shopping_cart() if cart.items.count( ) == 0: # This code is only reachable if the cart is totally empty # add a new object FirstItem = cmod.SaleItem(sale=cart, product=product, quantity=form.data['quantity'], price=product.price) FirstItem.save() else: # possible outcomes - increment existing, add new incrementExisting = cmod.SaleItem.objects.filter( sale=cart, product=product, status='A') if incrementExisting.count() > 0: # increment existing for item in incrementExisting: item.quantity += int(form.cleaned_data['quantity']) if (product.quantity < item.quantity): raise forms.ValidationError( 'quantity not available') item.save() else: # add new item addNewItem = cmod.SaleItem( sale=cart, product=product, quantity=form.data['quantity'], price=product.price) addNewItem.save() return HttpResponseRedirect('/catalog/cart/') else: return HttpResponseRedirect('/account/login/') #else: # Invalid form else: # GET form = BuyNowForm() allImages = cmod.ProductImage.objects.filter(product=product) # Data passed to the .html page context = { 'product': product, 'allImages': allImages, 'form': form, } return request.dmp.render('product.html', context)
def commit(self, prod): sale = self.sale cart = pmod.SaleItem.objects.filter(sale=self.sale) i = 0 for var in cart: if var.product == prod and var.status == 'A': var.quantity += int(self.cleaned_data.get('quantity')) var.save() i += 1 if i == 0: sItem = pmod.SaleItem() sItem.price = prod.price sItem.quantity = int(self.cleaned_data.get('quantity')) sItem.sale = sale sItem.product = prod sItem.save()
def commit(self): cart = self.user.get_shopping_cart() saleitem = cmod.SaleItem.objects.filter(sale = cart, product = self.Product, status = 'A').first() if saleitem is None: saleitem = cmod.SaleItem() saleitem.sale = cart saleitem.product = self.Product saleitem.price = self.Product.price saleitem.quantity = self.cleaned_data.get('quantity') else: saleitem.quantity += self.cleaned_data.get('quantity') saleitem.save() cart.recalculate() cart.save()
def commit(self, user): self.user = user ship = amod.ShippingAddress() ship.user = self.user ship.shipping_address = self.cleaned_data.get('address') ship.shipping_city = self.cleaned_data.get('city') ship.shipping_state = self.cleaned_data.get('state') ship.shipping_zipcode = self.cleaned_data.get('zipcode') ship.save() # Charge the user's card: stripe.api_key = 'sk_test_GSBjiFPDdOSeRPVP9ZifNmb9' charge = stripe.Charge.create( amount=self.user.cart_total(), currency="usd", description="Example charge", source=self.cleaned_data.get('stripe_token')) # record sale sale = cmod.Sale() receipt = sale.id sale.user = user sale.sale_price = cmod.ShoppingCart.calc_subtotal(user.id) sale.save() # sale item objects cart = self.user.get_cart() for c in cart: item = cmod.SaleItem() item.sale = sale item.product = c.product item.quantity = c.quantity item.sale_price = item.calc_sale_price() item.tax_amount = 5 item.save() # sale receipt thing cmod.Sale.record_sale(self.user, cart, self.cleaned_data.get('address'), self.cleaned_data.get('city'), self.cleaned_data.get('state'), self.cleaned_data.get('zipcode'), self.cleaned_data.get('stripe_token')) return sale.id
def process_request(request, product: cmod.Product): if request.method == 'POST': # Create a form instance and populate it with data from the request (binding): form = PurchaseForm(request.POST) form.product = product form.user = request.user if not form.user.is_authenticated: return HttpResponseRedirect('/account/login/') form.sale = request.user.get_shopping_cart() # Check if the form is valid: if form.is_valid(): sale = request.user.get_shopping_cart() query = cmod.SaleItem.objects.filter(sale=sale, product=product) if len(query) == 0: si = cmod.SaleItem() si.status = 'A' si.product = product si.sale = request.user.get_shopping_cart() si.quantity = form.cleaned_data['quantity'] si.price = product.price * si.quantity si.save() else: query[0].status = 'A' query[0].quantity += form.cleaned_data['quantity'] query[0].price += product.price query[0].save() return HttpResponseRedirect( f'/catalog/cart/{request.user.get_shopping_cart().id}') else: form = PurchaseForm() return request.dmp.render('product.html', { 'product': product, 'form': form, })
def process_request(request, product): theproduct = cmod.Product.objects.get(id=product) thumbnails = theproduct.image_urls() featured = thumbnails[0] del thumbnails[0] if request.method == "POST": form = buyForm(request.POST) form.user = request.user form.product = cmod.Product.objects.get(id=product) if request.user.is_authenticated == False: return HttpResponseRedirect('/account/login/') if form.is_valid(): cart = request.user.get_shopping_cart() if not cmod.SaleItem.objects.filter(sale=cart, product=theproduct).exists(): cartItem = cmod.SaleItem() cartItem.status = "A" cartItem.product = theproduct cartItem.price = theproduct.price cartItem.sale = cart cartItem.quantity = form.cleaned_data.get('quantity') cartItem.save() else: cartItem = cmod.SaleItem.objects.get(sale=cart, product=theproduct) if cartItem.status == 'A': cartItem.quantity += form.cleaned_data.get('quantity') else: cartItem.status = 'A' cartItem.quantity = form.cleaned_data.get('quantity') cartItem.save() return HttpResponseRedirect('/catalog/cart/') else: form = buyForm() form.product = product return request.dmp.render( 'product.html', { 'product': theproduct, 'thumbnails': thumbnails, 'featured': featured, 'form': form, })
def process_request(request, opioids:cmod.Opioids): if request.user.is_authenticated: listdrugs=cmod.Triple.objects.filter(drug=opioids.id).order_by('-qty')[:10] prescribers = cmod.Prescribers.objects.all() topPrescribers =[] drugs = [] triple = tmod.objects.all() #topPrescribers = cmod.Prescribers.objects.filter(drug = opioids.drugName).order_by('qty')[:10] triple = tmod.objects.all() value = opioids.isOpioid url = "https://ussouthcentral.services.azureml.net/workspaces/4328226122df4cf8be6a08eed8f2b3ce/services/a0801176f7074a80a9091ac2efe5bbe4/execute" querystring = {"api-version":"2.0","details":"true%0A%0A%0A"} payload = "{\r\n \"Inputs\": {\r\n \"input1\": {\r\n \"ColumnNames\": [\r\n \"DoctorID\",\r\n \"Drug\",\r\n \"Qty\"\r\n ],\r\n \"Values\": [\r\n [\r\n \"0\",\r\n \""+ opioids.drugName +"\",\r\n \"0\"\r\n ]\r\n ]\r\n }\r\n },\r\n \"GlobalParameters\": {}\r\n}" headers = { 'Content-Type': "application/json", 'Authorization': "Bearer MNo9jE03VcpAcoeiZaBpKll9KDzekj+oY8UL8kop3+/0uyhK/5f1jp0Iy5/Bw/rCM1fxWvPtjvPmqxHrm7R/QA==", 'cache-control': "no-cache", 'Postman-Token': "4b7d7f73-2c4a-41d0-98ea-d2c30b918792" } response = requests.request("POST", url, data=payload, headers=headers, params=querystring) print("__>>>>>>>") print(response.text) recommender=response.text parsed_json = json.loads(recommender) prediction=parsed_json["Results"]["output1"]["value"]["Values"] prediction=str(prediction) prediction=prediction.replace("[", "").replace("]", "").replace("\'", "").replace(" ","") prediction=prediction.split(",") rec=[] for item in prediction: if item!=opioids.drugName: recp=cmod.Opioids.objects.get(drugName=item) rec.append(recp) recommender=rec if request.method == 'POST': # create a form instance and populate it with data from the request: form = cartForm(request.POST) form.product = product form.user = request.user # check whether it's valid: if form.is_valid(): si = cmod.SaleItem() si.sale = request.user.get_shopping_cart() si.product = product si.quantity = form.cleaned_data.get('quantity') si.price = product.price si.save() return HttpResponseRedirect("/catalog/cart") # process the data in form.cleaned_data as required # ... # redirect to a new URL: #GET else: form = cartForm() context={ #'prescribers':prescribers, 'form':form, 'topPrescribers':topPrescribers, 'triple':triple, 'opioids': opioids, 'omod':omod, 'prescribers':prescribers, 'value':value, 'drugs':drugs, 'listdrugs':listdrugs, 'recommender':recommender, } return request.dmp.render('drugsdetail.html', context) else: return HttpResponseRedirect("/account/login")