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")
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)
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')
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 })
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
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
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'))
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")
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
def delete_order(order_id): deleting_order = Order.objects.get(pk=order_id) Order.delete(deleting_order)
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)