Example #1
0
 def post(self, request):
     customer = request.session.get('customer')
     if not customer:
         messages.warning(
             request, f'You to have login to check out, please login now.')
         return redirect('login')
     else:
         address = request.POST.get('address')
         phone = request.POST.get('phone')
         cart = request.session.get('cart')
         products = Product.get_products_by_id(list(cart.keys()))
         for product in products:
             order = Order(customer=Customer(id=customer),
                           product=product,
                           price=product.price,
                           quantity=cart.get(str(product.id)),
                           address=address,
                           phone=phone)
             request.session['cart'] = {}
             order.placeOrder()
         messages.success(
             request,
             f'Thank you for purchasing!!! Please click on Orders tab to view your orders.'
         )
         return redirect('cart')
Example #2
0
    def get(self, request):
        product_ids = list(request.session.get("cart").keys())
        products = Product.get_products_by_id(product_ids)

        print(products)

        return render(request, "cart.html", {"products": products})
Example #3
0
    def post(self, request):
        address = request.POST.get('address')
        phone = request.POST.get('phone')
        GrandTotal = int(request.POST.get('GrandTotal'))
        customer = request.session.get('customer')
        cart = request.session.get('cart')
        products = Product.get_products_by_id(list(cart.keys()))
        error_message = None
        error_message = self.validateCustomer(address,phone)

        if not error_message:
            orderID = random.randint(0,9999)
            for product in products:
                order = Order(customer=Customer(id=customer),
                          product=product,
                          price=product.price,
                          address=address,
                          phone=phone,
                          grandtotal=GrandTotal,
                          orderId=orderID,
                          quantity=cart.get(str(product.id)))
                order.save()
            request.session['cart'] = {}
            messages.success(request,"Order placed successfully!")
            return redirect('orders')
        else:
            messages.warning(request,error_message)
            return redirect('cart')
 def get(self , request):
     ids = list(request.session.get('cart').keys())
     products = Product.get_products_by_id(ids)
     print(products)
     date_time = datetime.datetime.now()
     # print(date_time)
     return render(request , 'cart.html' , {'products' : products, 'date_time':date_time} )
Example #5
0
    def get(self, request):

        ids = list(request.session.get('cart').keys())

        products = Product.get_products_by_id(ids)
        print(products)
        return render(request, 'cart.html', {'products': products})
Example #6
0
    def post(self, request):
        address = request.POST.get('address')
        phone = request.POST.get('phone')
        customer = request.session.get('customer')
        cart = request.session.get('cart')
        products = Product.get_products_by_id(list(cart.keys()))

        if customer:

          for product in products:
            order = Order(customer=Customer(id=customer),
                          product=product,

                          brandname=product.brandname,
                          variety=product.variety,
                          weight=product.weight,
                          price=product.price,
                          address=address,
                          phone=phone,

                          quantity=cart.get(str(product.id)))

            order.save();

          request.session['cart'] = {}
          return redirect('cart')

        else:
            return redirect('login')
Example #7
0
    def post(self, request):
        addressline1 = request.POST.get('addressline1')
        addressline2 = request.POST.get('addressline2')
        phone = request.POST.get('phone')
        customer = request.session.get('customer')
        cart = request.session.get('cart')
        city = request.session.get('city')
        pincode = request.session.get('pincode')
        state = request.session.get('state')
        products = Product.get_products_by_id(list(cart.keys()))
        print(addressline1, addressline2, city, state, pincode, phone,
              customer, cart, products)

        for product in products:
            print(cart.get(str(product.id)))
            order = Order(customer=Customer(id=customer),
                          product=product,
                          price=product.price,
                          city=city,
                          state=state,
                          address1=addressline1,
                          address2=addressline2,
                          pincode=pincode,
                          phone=phone,
                          quantity=cart.get(str(product.id)))
            order.save()
        request.session['cart'] = {}

        return redirect('cart')
Example #8
0
 def get(self, request):
     if request.session.get('cart'):
         ids = list(request.session.get('cart').keys())
         products = Product.get_products_by_id(ids)
         return render(request, 'cart.html', {'products' : products})
     else:
         return HttpResponse('<h1>Your cart is empty...</h1>')
Example #9
0
 def get(self,request):
     try:
         print('id', request.session.get('cart').keys())
         ids  = list(request.session.get('cart').keys())
         products = Product.get_products_by_id(ids)
         return render(request, 'cart.html',{'products': products})
     except Exception as e:
         print('2222')
         print(str(e))
         # return render(request, 'cart.html')
Example #10
0
	def post(self , request):
		address = request.POST.get('address')
		phone = request.POST.get('phone')
		customer = request.session.get('customer')
		cart = request.session.get('cart')
		products = Product.get_products_by_id(list(cart.keys()))

		for product in products:
			order = Order(customer = Customer(id=customer) , product = product , price = product.price , address = address , phone = phone , quantity = cart.get(str(product.id)))
			order.save()
		request.session['cart'] = {}
		return redirect('addcart')
Example #11
0
def profil_prp(request):
    iqre = request.GET['iqre']
    product_list = []
    iqre = int(iqre)
    product_list.append(iqre)
    categories = Category.get_all_categories()
    products = Product.get_products_by_id(product_list)
    print(products)
    dec = {}
    dec['categories'] = categories
    dec['products'] = products
    #prop={'products':products}
    return render(request, 'profil_prp.html', dec)
Example #12
0
    def post(self, request):
        phone = request.POST.get('phone')
        customer = request.session.get('customer')
        cart = request.session.get('cart')
        products = Product.get_products_by_id(list(cart.keys()))
        print(phone, customer, cart, products)

        for product in products:
            order = Order(customer=Customer(id=customer),
                          product=product,
                          price=product.price,
                          phone=phone,
                          rental_time=cart.get(str(product.id)))
            order.save()
        request.session['cart'] = {}
        return redirect('cart')
Example #13
0
    def post(self, request):
        address = request.POST.get('address')
        phone = request.POST.get('phone')
        name = request.POST.get('name')
        zipcode = request.POST.get('zipcode')
        customer = request.session.get('customer')
        cart = request.session.get('cart')

        customer = request.session.get('customer')
        invoices = Invoice.get_invoice_by_customer(customer)

        products = Product.get_products_by_id(list(cart.keys()))
        print(address, phone, customer, cart, products)

        for product in products:
            print(cart.get(str(product.id)))
            order = Order(customer=Customer(id=customer),
                          product=product,
                          price=price_totalp(product, cart),
                          address=address,
                          phone=phone,
                          name=name,
                          zipcode=zipcode,
                          quantity=cart.get(str(product.id)))
            order.save()
            customer = request.session.get('customer')
            invoices = Invoice.get_invoice_by_customer(customer)
            invoices.delete()
        for product in products:
            print(cart.get(str(product.id)))
            invoice = Invoice(customer=Customer(id=customer),
                          product=product,
                          price=price_totalp(product, cart),
                          finalprice = price_total(product  , cart),
                          toalprice = total_cart_price(products , cart),
                          gst = gstprice(products , cart),
                          address=address,
                          phone=phone,
                          name=name,
                          zipcode=zipcode,
                          quantity=cart.get(str(product.id)))

            invoice.save()
        request.session['cart'] = {}

        return redirect('invoice')
Example #14
0
 def post(self, request):
     address = request.POST.get('address')
     phone = request.POST.get('phone')
     customer = request.session.get('customer')
     cart = request.session.get('cart')
     products = Product.get_products_by_id(list(cart.keys()))
     print(address, phone, customer, cart, products)
     for product in products:
         order = Orders(customer=Customer(id=customer),
                        product=product,
                        price=product.price,
                        address=address,
                        phone=phone,
                        quantity=cart.get(str(product.id)))
         if customer:
             order.placeOrder()
         else:
             return redirect('login')
     request.session['cart'] = {}
     return redirect('cart')
Example #15
0
    def post(self, request):
        address = request.POST.get('address')
        phone = request.POST.get('phone')
        customer = request.session.get('customer')
        cart = request.session.get('cart')
        products = Product.get_products_by_id(list(cart.keys()))
        print(address, phone, customer, cart, products)

        for product in products:
            print(cart.get(str(product.id)))
            order = Order(customer=Customer(id=customer),
                          product=product,
                          price=product.price,
                          address=address,
                          phone=phone,
                          quantity=cart.get(str(product.id)))
            order.save()
        request.session['cart'] = {}
        messages.success(request, '¡GRACIAS POR TU COMPRA! UN REPARTIDOR HA SIDO ASIGNADO A TU PEDIDO.')
        return redirect('cart')
Example #16
0
    def post(self, request):
        address = request.POST.get('address')
        phone = request.POST.get('phone')
        customer = request.session.get('customer')
        cart = request.session.get('cart')
        products = Product.get_products_by_id(list(cart.keys()))
        # print(address, phone, customer, cart, products)

        # iteration over products to save each order having a particular product object
        for product in products:
            order = Order(address=address,
                          phone=phone,
                          customer=Customer(id=customer),
                          product=product,
                          quantity=cart.get(str(product.id)),
                          price=product.price)
            order.placeOrder()
        # for clearing cart after placing the orders
        request.session['cart'] = {}

        return redirect('cart')
Example #17
0
    def post(self, request):
        address = request.POST.get("address")
        phone = request.POST.get("phone")
        customer = request.session.get("customer_id")
        cart = request.session.get("cart")
        products = Product.get_products_by_id(list(cart.keys()))
        print(address, phone, customer, cart, "\t\t++++", products)

        for product in products:
            order = Order(
                customer=Customer(id=customer),
                product=product,
                address=address,
                phone=phone,
                price=product.price,
                quantity=cart.get(str(product.id)),
            )
            print(order.placeOrder())
            request.session["cart"] = {}

        return redirect("cart")
Example #18
0
    def post(self,request):
        address = request.POST.get('address')
        phone = request.POST.get('phone')
        customer = request.session.get('customer_id')
        cart = request.session.get('cart')
        products = Product.get_products_by_id(list(cart.keys()))
        # print(address, phone, customer,cart,products)

        for product in products:
            #create order object
            order = Order(
                customer = Customer(id=customer),
                product = product,
                price = product.price,
                phone = phone,
                address = address,
                quantity = cart.get(str(product.id))
            )
            #order save
            order.placeOrder()
        #cart clear
        request.session['cart'] ={}
        return redirect('cart')
    def post(self, request):
        order_date = request.POST.get('order_date')
        radio_btn = request.POST.get('radio_btn')
        customer = request.session.get('customer')
        cart = request.session.get('cart')
        products = Product.get_products_by_id(list(cart.keys()))
        print(order_date, radio_btn, customer, cart, products)

        for product in products:
            print(cart.get(str(product.id)))
            completion_date = datetime.now() + timedelta(
                days=product.complition_time)
            order = Order(customer=Customer(id=customer),
                          product=product,
                          service_provider=product.service_provider,
                          price=product.price,
                          Service_date=order_date,
                          Time_slots=radio_btn,
                          complition_date=completion_date,
                          quantity=cart.get(str(product.id)))
            order.save()
        request.session['cart'] = {}

        return redirect('cart')
Example #20
0
def checkout(request):
    ids = list(request.session.get('cart').keys())
    products = Product.get_products_by_id(ids)
    return render(request, 'checkout.html', {'products': products})
Example #21
0
    def post(self, request):
        address = request.POST.get('address')
        phone = request.POST.get('phone')
        customer = request.session.get('customer')
        cart = request.session.get('cart')
        products = Product.get_products_by_id(list(cart.keys()))
        #print(address, phone, customer, cart, products)

        emailfrom = settings.EMAIL_HOST_USER
        subject ='Thank you for placing order'
        message ='Here is your Product: '

        productlist=[]
        #Productkeys.objects.all().update (used=False)
        for product in products:
            message1 = ' '
            message2 = ' '
            message1=message1+product.name+' - '
            quantity = int(cart.get(str(product.id)))
            #print(message1)
            #print(product.id)
            #print(quantity)
            #print(Productkeys.objects.filter(products__id=product.id)[:quantity])
            objectproductkeys=Productkeys.objects.filter(products__id=product.id )
            #objectproductkeys=Productkeys.objects.filter(Q(products__id=product.id) & Q(Productkeys.objects.filter(used=False)))[:quantity]
            #objectproductkeys=Productkeys.objects.filter(products__id=product.id).exclude(Productkeys.objects.filter(used=True))[:quantity]

            quantitycount=0

            for objectproductkey in objectproductkeys:
                if(objectproductkey.used==False):

                    objectproductkey.used=True
                    objectproductkey.save()
                    quantitycount=quantitycount+1

                    if len(objectproductkeys)!=1:
                        message2=message2+str(objectproductkey.productkey)+' ; '
                    else :
                        message2 = message2 + str(objectproductkey.productkey)
                    if(quantitycount==quantity):
                        break

                    #print(message2)
                #if len(products)!=1:
                   # message2=message2+' , '

            #print(message1+message2)
            productlist.append(message1+message2)
        print(productlist)












        recipentemail=Customer.objects.filter(id=customer)[0].email
        #print(Customer.objects.filter(id=customer)[0].email)
        finalmessage = ' '
        for itemsx in productlist:
            finalmessage = finalmessage+itemsx+', '
        recipent = [recipentemail, ]
        send_mail(subject,message+finalmessage, emailfrom, recipent)

        for product in products:
            print(cart.get(str(product.id)))
            order = Order(customer=Customer(id=customer),
                          product=product,
                          price=product.price,
                          address=address,
                          phone=phone,
                          quantity=cart.get(str(product.id)))
            order.save()
        request.session['cart'] = {}

        return redirect('cart')
Example #22
0
    def post(self, request):
        payment = request.POST.get('payment')
        fullname = request.POST.get('fullname')
        mobilenumber = request.POST.get('mobilenumber')
        pincode = request.POST.get('pincode')
        flat = request.POST.get('flat')
        area = request.POST.get('area')
        landmark = request.POST.get('landmark')
        city = request.POST.get('city')
        state = request.POST.get('state')

        # validation
        values = {
            'payment': payment,
            'fullname': fullname,
            'mobilenumber': mobilenumber,
            'pincode': pincode,
            'flat': flat,
            'area': area,
            'landmark': landmark,
            'city': city,
            'state': state
        }
        error_message = None
        if (not payment):
            error_message = "Select Payment Options !!!"
        elif (not state):
            error_message = "Select State Required !!!"

        customer = request.user
        cart = request.session.get('cart')
        products = Product.get_products_by_id(list(cart.keys()))
        customer_obj = customer
        order_id_list = []
        amount = 0
        transactionid = uuid.uuid1().hex
        if not error_message:
            for product in products:
                order = Order(customer=customer,
                              product=product,
                              price=product.price,
                              quantity=cart.get(str(product.id)))
                order.placeOrder()
                order_id_list.append(order.id)
                amount = amount + order.price * order.quantity
            if payment == "online":
                orderidmerge = Orderidmerge(customer=customer,
                                            transactionid=transactionid,
                                            orderid=order_id_list,
                                            amount=amount,
                                            payment="online")
            else:
                orderidmerge = Orderidmerge(customer=customer,
                                            transactionid=transactionid,
                                            orderid=order_id_list,
                                            amount=amount,
                                            payment="cod")
            orderidmerge.save()

            shippingaddress = Shippingaddress(
                order=Orderidmerge(id=orderidmerge.id),
                fullname=fullname,
                mobilenumber=mobilenumber,
                pincode=pincode,
                flat=flat,
                area=area,
                landmark=landmark,
                city=city,
                state=state)
            shippingaddress.save()
            if payment == "online":

                param_dict = {
                    'MID': 'LgWYcs58579287008550',
                    'ORDER_ID': str(orderidmerge.transactionid),
                    'TXN_AMOUNT': str(amount),
                    'CUST_ID': str(customer_obj.email),
                    'INDUSTRY_TYPE_ID': 'Retail',
                    'WEBSITE': 'WEBSTAGING',
                    'CHANNEL_ID': 'WEB',
                    'CALLBACK_URL': 'http://127.0.0.1:8000/handlerequest/',
                }
                param_dict['CHECKSUMHASH'] = Checksum.generate_checksum(
                    param_dict, MERCHANT_KEY)
                return render(request, 'paytm.html',
                              {'param_dict': param_dict})
            else:

                cart_obj = Cart.get_cart_by_customer(customer)
                cart_obj.delete()
                request.session['cart'] = {}
                response_dict = {
                    'RESPCODE': "01",
                    'ORDERID': orderidmerge.transactionid,
                }
                return render(request, 'paymentstatus.html',
                              {'response': response_dict})
        else:
            data = {'error': error_message, 'values': values}
            return render(request, 'checkout.html', data)
def recommendation(request):
    df = pd.read_csv(
        'C:/Users/ACER/Documents/Sem 8/Review 2/eshopdjango-master/store/models/pbrght.csv'
    )
    #print(df)
    df1 = df.groupby('id')['prod_brought'].apply(list).reset_index()
    #print(df1)
    pid = pd.read_csv(
        'C:/Users/ACER/Documents/Sem 8/Review 2/eshopdjango-master/store/models/Product_details.csv'
    )
    #print(pid)
    df5 = pd.read_csv(
        'C:/Users/ACER/Documents/Sem 8/Review 2/eshopdjango-master/store/models/ctgryProduct_details.csv'
    )
    #print(df5)
    #########new recmndtn
    df6 = pd.read_csv(
        'C:/Users/ACER/Documents/Sem 8/Review 2/eshopdjango-master/store/models/pbrght1.csv'
    )
    grppbrght = df6.groupby('c_id')['prod_brought'].apply(list).reset_index()
    #print(grppbrght)
    relation = pd.read_csv(
        'C:/Users/ACER/Documents/Sem 8/Review 2/eshopdjango-master/store/models/relation.csv'
    )
    #print(relation)
    for i in range(0, len(relation['name'])):
        relation['dob'][i] = pd.to_datetime(
            relation['dob'][i]).strftime("%m/%d")
    #print(relation)
    grpprd = df5.groupby('c_id')['name'].apply(list).reset_index()
    #print(grpprd)
    it = []
    itm = []
    itm1 = []
    for i in range(0, len(df1['prod_brought'])):
        lst = df1['prod_brought'][i]
        #print(lst)
        item = lst[0]
        #print(item)
        if (len(df1['prod_brought'][i]) == 1):
            continue
            print(i)
        item1 = lst[randint(1, len(df1['prod_brought'][i]) - 1)]
        #print(item1)
        #print("rule"+ str(i)+":"+item +"->"+item1)
        #store this part in dcitionary
        it.append(str(i))
        itm.append(item)
        itm1.append(item1)
    rule = {'id': it, "item": itm, "item1": itm1}
    #print(rule)
    s = pd.DataFrame(rule)

    #print(s)
    def Merge(dict1, dict2):
        return (dict2.update(dict1))

    prid = []
    prdnm = []
    cprid = []
    cprdnm = []
    for i in range(0, len(df1['prod_brought'])):
        lst = df1['prod_brought'][i]
        #print(lst)
        item = lst[0]
        #print(item)
        if (len(df1['prod_brought'][i]) == 1):
            continue
            print(i)
        item1 = lst[randint(1, len(df1['prod_brought'][i]) - 1)]
        #print(item1)
        #print("rule"+ str(i)+":"+item +"->"+item1)
        for i in range(0, len(pid)):
            if (pid['name'][i] == item1):
                prid.append(pid['id'][i])
                prdnm.append(item1)

        for i in range(0, len(pid)):
            if (pid['name'][i] == item):
                cprid.append(pid['id'][i])
                cprdnm.append(item)
    data = {'Prod_id': prid, 'Prod_name': prdnm}
    data1 = {'CP_id': cprid, 'CP_name': cprdnm}
    Merge(data, data1)
    df3 = pd.DataFrame(data1)
    #print(df3)
    #print(data)
    #print(data1)
    lcpnm = list(df3['CP_name'])
    lpnm = list(df3['Prod_name'])

    #i=int(input("id:"))
    #h=df.loc[df['id'] == i, 'prod_brought'].iloc[0]
    #print("product brought is",h)
    #if(h in lcpnm):
    #  k=lcpnm.index(h)
    #  print("the recommended item is",lpnm[k])

    id = int(input("id:"))
    cbday = pd.read_csv(
        'C:/Users/ACER/Documents/Sem 8/Review 2/eshopdjango-master/store/models/custbdayd.csv'
    )
    x = len(cbday['id'])
    from datetime import datetime
    today = datetime.now().date().strftime("%m/%d/%Y")
    todaydm = datetime.now().date().strftime("%m/%d")
    for i in range(0, len(cbday['id'])):
        cbday['birthday'][i] = pd.to_datetime(
            cbday['birthday'][i]).strftime("%m/%d")
    #print(cbday)

    for i in range(0, len(cbday['id'])):
        if (cbday['birthday'][i] == todaydm):
            #cday={'user_id':cbday['user_id'][i],'birthday':cbday['birthday'][i]}
            #print(cday)
            uid = cbday['id'][i]
            #print(True)
            #print(uid)
            if (id == uid):
                for i in range(0, len(df1['id'])):
                    if (df1['id'][i] == uid):
                        k = random.choice(df1.loc[df1['id'] == uid,
                                                  'prod_brought'].iloc[0])
                        #print(k)
                for i in range(0, len(df3['Prod_name'])):
                    if (df3['Prod_name'][i] == k):
                        z = df3['Prod_id'][i]
                        #print(df3['Prod_id'][i])
                    if (df3['CP_name'][i] == k):
                        z = df3['CP_id'][i]
                    #print(df3['CP_id'][i])
                #print(z)

                for i in range(0, len(df5)):
                    if (df5['id'][i] == z):
                        cid = df5['c_id'][i]
                #print(cid)
                ctgry = []
                for i in range(0, len(grppbrght)):
                    if (grppbrght['c_id'][i] == cid):
                        ctgry.append(
                            list(duplicates(grppbrght['prod_brought'][i])))
                x = []
                x = ctgry[0]
                #print(x)
                y1 = []
                for i in range(0, len(df5)):
                    for j in range(0, len(x)):
                        if (df5['name'][i] == x[j]):
                            y1.append(df5['id'][i])
                list_set = set(y1)
                y1 = (list(list_set))
                print("recommend products for you is", y1)
                for i in range(0, len(relation['user_id'])):
                    if (relation['user_id'][i] == id):
                        #print(relation['dob'][i])
                        if (relation['dob'][i] == todaydm):
                            ccid = relation['c_id'][i]
                            ctgry1 = []
                            for i in range(0, len(grppbrght)):
                                if (grppbrght['c_id'][i] == ccid):
                                    ctgry1.append(
                                        list(
                                            duplicates(
                                                grppbrght['prod_brought'][i])))
                            x1 = []
                            x1 = ctgry1[0]
                            #print(x)
                            y1 = []
                            for i in range(0, len(df5)):
                                for j in range(0, len(x1)):
                                    if (df5['name'][i] == x1[j]):
                                        y1.append(df5['id'][i])
                            #y1.extend(y)
                            list_set = set(y1)
                            y1 = (list(list_set))
                            print("relation rcmd", y1)

                        else:
                            print("relation birthday is yet to come")
                #print(y1)
                products = Product.get_products_by_id(y1)
                print('Myoutput', products)
                return render(request, 'recommendation.html',
                              {'products': products})

            else:
                print("your birthday is yet to come")
                for i in range(0, len(relation['user_id'])):
                    if (relation['user_id'][i] == id):
                        print(relation['dob'][i])
                        if (relation['dob'][i] == todaydm):
                            ccid = relation['c_id'][i]
                            ctgry1 = []
                            for i in range(0, len(grppbrght)):
                                if (grppbrght['c_id'][i] == ccid):
                                    ctgry1.append(
                                        list(
                                            duplicates(
                                                grppbrght['prod_brought'][i])))
                            #print("category", ctgry1)
                            x1 = []
                            x1 = ctgry1[0]
                            #print(x)
                            y1 = []
                            for i in range(0, len(df5)):
                                for j in range(0, len(x1)):
                                    if (df5['name'][i] == x1[j]):
                                        y1.append(df5['id'][i])

                            list_set = set(y1)
                            y2 = (list(list_set))
                            print("rcmnd relation", y2)

                        else:
                            print("relation birthday is yet to come")
                #print(y1)

                products = Product.get_products_by_id(y2)
                print('Myoutput', products)
                return render(request, 'recommendation.html',
                              {'products': products})