Exemple #1
0
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)
Exemple #2
0
 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()
Exemple #3
0
    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()
Exemple #4
0
    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
Exemple #5
0
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,
    })
Exemple #6
0
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,
        })
Exemple #7
0
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")