Exemplo n.º 1
0
def checkout_success(request):
    if request.META.get('HTTP_REFERER') is not None:
        if request.method == 'POST':
            basket = request.session['basket']
            user_id = request.session['account']['user_id']
            user = User.objects.get(user_id=user_id)
            name = request.session['checkout']['name']
            total = request.session['basket_total']
            street = request.session['checkout']['street']
            postcode = request.session['checkout']['street']
            city = request.session['checkout']['city']
            country = request.session['checkout']['country']
            date = datetime.datetime.today().strftime('%d-%m-%Y')

            order = Order(user_id=user,
                          name=name,
                          total=total,
                          street_name=street,
                          postcode=postcode,
                          city=city,
                          country=country,
                          date=date)
            order.save()
            msg_template = ""
            for key, value in basket.items():
                product = Product.objects.get(product_id=int(key))
                product_order = ProductOrder(order_id=order,
                                             product_id=product,
                                             quantity=value)
                product_order.save()
                msg_template = msg_template + str(value) + "x " + product.product_name + " - "\
                             + str(product.price * float(value)) + " \n"

            context = {}

            fromaddr = '*****@*****.**'
            toaddrs = request.session['account']['email']
            msg = 'Hi, ' + request.session['account'][
                'name'] + "\n\nHere is your order:\n\n"
            msg = msg + msg_template
            msg = msg + "-----------------------------"
            msg = msg + "\nTotal: " + str(
                total) + "\n\nThanks for shopping with us,\nMKA Technologies"
            username = '******'
            password = '******'
            server = smtplib.SMTP('smtp.gmail.com:587')
            server.ehlo()
            server.starttls()
            server.login(username, password)
            server.sendmail(fromaddr, toaddrs, msg)
            server.quit()

            request.session['basket'] = {}

            return render(request, 'website/checkout-success.html', context)
    return HttpResponseBadRequest("Invalid request")
Exemplo n.º 2
0
 def finish_order(self):
     order = Order(user=self.user)
     order.save()
     order.cart.set(self.cart)
     self.cart.delete()
     self.bot.sendMessage(self.update.message.chat_id,
                          text=constants.messages[self.get_lang()][constants.finished_message],
                          reply_markup=markups.home_markup(self.get_lang()))
     command_logging(user=self.user,
                     message_id=self.update.message.message_id,
                     text=self.update.message.text,
                     from_menu=constants.finish_order,
                     to_menu=constants.home)
Exemplo n.º 3
0
def purchased_view(request, pk):
    ''' purchased  '''
    order = Order()
    order.product = Product.objects.get(id=pk)
    order.user = request.user
    order.price = order.product.price
    order.save()
    return render(request, 'product/charge.html')
Exemplo n.º 4
0
def make_order(request):
    products = ''
    try:
        products = Product.objects.filter(id__in=request.session['products'])
    except KeyError:
        request.session['products'] = []
    total_price, total_count = 0, 0
    for item in products:
        total_price = item.price + total_price
        total_count += 1
    form = OrderForm(request.POST)
    if request.method == "POST":
        # create a form instance:

        if request.session['products']:
            if form.is_valid():
                name = request.POST.get('name')
                email = request.POST.get('email')
                products = Product.objects.filter(
                    id__in=request.session['products']).values('id')
                q = Order(name_user=name,
                          email_user=email,
                          product_ids=products,
                          total_price=total_price,
                          total_count=total_count)
                q.save()

                messages.info(request, 'we took the order')
                # clear the session
                request.session.flush()
                return HttpResponseRedirect('/')
        else:
            messages.info(request, 'cart is empty')
    else:
        form = OrderForm()
    return render(
        request, 'product/cart.html', {
            'form': form,
            'products': products,
            'total_price': total_price,
            'total_count': total_count
        })
Exemplo n.º 5
0
def get_orders(session, **kwargs):
    ses_products = session['products']
    orders = []
    for s_product_id in ses_products:
        product = Product.objects.get(pk=s_product_id)
        if kwargs:
            order = Order(order_details=kwargs.get('order_details'),
                          product_id=product.id,
                          title=product.title,
                          description=product.description,
                          price=product.price,
                          quantity=ses_products[s_product_id],
                          img_url=product.img_url)
        else:
            order = Order(product_id=product.id,
                          title=product.title,
                          description=product.description,
                          price=product.price,
                          quantity=ses_products[s_product_id],
                          img_url=product.img_url)
        orders.append(order)
    return orders
Exemplo n.º 6
0
def create_order(customer_id, product_id, delivery_time):
    customer = Customer.objects.get(pk=customer_id)
    product = Product.objects.get(pk=product_id)

    new_order = Order(customer=customer, product=product)
    new_order.timestamp = timezone.now()
    new_order.delivery_time = delivery_time
    new_order.save()
    return new_order
Exemplo n.º 7
0
def complete_order(request):
    if request.method == 'POST':
        form = CheckoutFormValidation(request.POST, request.FILES)
        if form.is_valid():

            request.session.modified = True
            received_request = request.POST
            name = received_request.get('name')
            email = received_request.get('email')
            subtotal = request.session['subtotal']
            products = json.dumps(request.session['products'])
            order = Order(name=name,
                          email=email,
                          subtotal=subtotal,
                          order_details=products)
            order.save()

            html_product_list = ""

            currency = Currency.objects.get(title='hrn')
            currency_rate = currency.value
            email_subtotal = round(subtotal * currency_rate, 2)

            for product in request.session['products']:
                html_product_list += "<ul><li>" + product.get('title') + "</li><li>Price - " + str((product.get('price'))* currency_rate) \
                                     + "</li><li>Quantity - " + str(product.get('quantity')) + "</li></ul><hr>"

            send_email(name, email_subtotal, html_product_list)

            del request.session['products']
            del request.session['subtotal']
            messages.info(request, 'Order created successfully')
        else:
            messages.info(request, 'Wrong input parameters')
            return HttpResponseRedirect(reverse('product:checkout'))

    return HttpResponseRedirect(reverse('product:index'))
Exemplo n.º 8
0
def add_order(request):
	liveProducts = list(Product.objects.filter(product_status="LIVE_APPROVED", profile_id=request.user.id))
	orderedProducts = random.sample(liveProducts, k=20)
	o = Order(
		order_reference_number=1,
		status='FOR_SHIPPING',
		user_id=request.user.id,
		username=request.user.username,
		creation_date=datetime.datetime.now
	)
	o.save()

	for orderedProduct in orderedProducts:
		op = OrderedProduct.objects.create(
			product = orderedProduct, 
			order=o, 
			quantity=1, 
			product_price=orderedProduct.product_price, 
			product_name=orderedProduct.product_name, 
			product_description=orderedProduct.product_description, 
			cover_image_url=orderedProduct.cover_image_url, 
		)
		op.save()
	return HttpResponseRedirect("/orders/#all")
Exemplo n.º 9
0
 def preauth(self, promo=None):
     product = Product.objects.get(sku=self.sku)
     try:
         order = Order.objects.get(content_type__pk=self.content_type.id,
                                   object_id=self.id,
                                   status='preauth')
     except Order.DoesNotExist:
         if promo:
             promo = Promo.objects.get(code=promo.lower())
         order = Order(content_object=self,
                       product=product,
                       user=self.project_manager,
                       status='preauth',
                       promo=promo)
         order.save()
         order.charge()
     return order
Exemplo n.º 10
0
def delete_order(order_id):
    deleting_order = Order.objects.get(pk=order_id)
    Order.delete(deleting_order)
Exemplo n.º 11
0
def api(request):
    if request.method == 'POST':
        data = json.loads(request.body)
        order_data = data['order']
        order = Order()
        if request.user.id != 1 and User.objects.filter(
                pk=request.user.id, groups__name='customer').exists():
            order.c_id = Customer.objects.get(
                user__id=request.user.id)  #instance
            order.order_type = 'Online_buy'
        else:
            order.c_id = None
            order.order_type = 'Local_buy'
        order.total_price = order_data['total_price']
        if order_data['promotion'] == 0:
            order.promo_id = None
        else:
            order.promo_id = Promotion.objects.get(pk=order_data['promotion'])
        order.save()
        for item in order_data['cart']:
            order_list = Order_list()
            order_list.amount = item['amount']
            order_list.unit_price = item['price_incTopping']
            order_list.d_id = Drink_info.objects.get(pk=item['id'])
            special = Special(special_type=item['kind'].capitalize())
            special.save()
            order_list.special_id = special
            order_list.order_id = order
            order_list.save()
            if item['kind'] == 'juice':
                juice = Juice()
                juice.special_id = special
                juice.save()
                for fruit in item['fruit']:
                    jf = Juice_fruit()
                    jf.juice = juice
                    jf.fruit = Fruit.objects.get(pk=fruit['id'])
                    jf.amount = 1
                    jf.save()
                for option in item['topping_list']:
                    jo = Juice_option()
                    jo.juice = juice
                    jo.option = Option.objects.get(pk=option['id'])
                    jo.amount = option['amount']
                    jo.save()
            elif item['kind'] == 'coffee':
                coffee = Coffee_and_other()
                coffee.specials = special
                coffee.sweetness = item['sweetness']
                coffee.save()
                for option in item['topping_list']:
                    co = Coffee_and_other_option()
                    co.option = Option.objects.get(pk=option['id'])
                    co.Coffee_and_other = coffee
                    co.amount = option['amount']
                    co.save()
            #order.save()
        return JsonResponse(order_data, status=200)