def associate(): try: data = request.json except: print "no json in request" return something_missing() try: qr_code = QrCode.query.filter(QrCode.uid == data["uuid"])[0] except: return as_msg("no such qr code present") try: order_id = data["order_id"] address = data["address"] customer_name = data["customer_name"] product_name = data["product_name"] phone_no = data["phone_number"] except: return something_missing() order = Order() order.address = address order.customer_name = customer_name order.product_name = product_name order.phone_number = phone_number order.order_id = order_id qr_code.order_id = order_id qr_code.set_associated_on() db.session.add(order) db.session.add(qr_code) db.session.commit() return jsonify({"msg": "successfully associated"})
def complete_order(request): request.session.set_expiry(0) cart = request.session["cart"] order = Order() order.first_name = request.POST["first_name"] order.last_name = request.POST["last_name"] order.address = request.POST["address"] order.city = request.POST["city"] order.payment_method = request.POST["payment"] order.payment_data = request.POST["payment_data"] order.items = gen_items_list(cart) request.session["cart"] = [] return render(request, "mystore/complete_order.html", None)
def completeOrder(request): request.session.set_expiry(0) cart = request.session['cart'] order = Order() order.first_name = request.POST['first_name'] order.last_name = request.POST['last_name'] order.address = request.POST['address'] order.city = request.POST['city'] order.payment_method = request.POST['payment'] order.payment_data = request.POST['payment_data'] order.items = genItemsList(cart) request.session['cart'] = [] return render(request, "complete_order.html", None)
def completeOrder(request): request.session.set_expiry(0) cart = request.session['cart'] order = Order() order.first_name = request.POST['first_name'] order.last_name = request.POST['last_name'] order.address = request.POST['address'] order.city = request.POST['city'] order.payment_method = request.POST['payment'] order.payment_data = request.POST['payment_data'] order.items = genItemsList(cart) request.session['cart'] = [] return render(request, "complete_order.html", None)
def completeOrder(request): cart = request.session['cart'] request.session.set_expiry(0) ctx = {'cart':cart, 'cart_size':len(cart), 'cart_items':cartItems(cart), 'total_price': priceCart(cart)} order = Order() order.items = genItemsList(cart) order.first_name = request.POST['first_name'] order.last_name = request.POST['last_name'] order.address = request.POST['address'] order.city = request.POST['city'] order.payment_data = request.POST['payment_data'] order.fulfilled = False order.payment_method = request.POST['payment'] order.save() request.session['cart'] = [] return render(request, "complete_order.html", ctx)
def show_form(): form = OrderForm() if form.validate_on_submit(): bitcoin = bitcoinrpc.connect_to_local() order = Order().populate_from_order_form(form) order.address = bitcoin.getnewaddress() db.session.add(order) for gb_form in form.group_buys: db.session.add(GroupBuy(order = order ).populate_from_groupbuy_form(gb_form)) db.session.commit() return redirect(url_for(".order_completed", address = order.address)) return render_template("index.html", form = form, prices = prices, site_name = app.config["SITE_NAME"])
def completeOrder(request): request.session.set_expiry(0) cart = request.session['cart'] ctx = { 'cart': cart, 'cart_size': len(cart), 'cart_items': cartItems(cart), 'total_price': priceCart(cart) } order = Order() order.first_name = request.POST['first_name'] order.last_name = request.POST['last_name'] order.address = request.POST['address'] order.city = request.POST['city'] order.payment_method = request.POST['payment'] order.payment_data = request.POST['payment_data'] order.items = genItemsList(cart) order.save() request.session['cart'] = [] return render(request, "complete_order.html", ctx)
def get_orders(client): resto_company = RestoCompany.get() resto_client = RestoClient.get(client) resto_history = get_resto_history(resto_company, resto_client).get('history', []) orders = [] any_venue = get_venues()[0] # for timezone offset for resto_venue_history in resto_history: for resto_order in resto_venue_history.get('local_history', []): order_id = resto_order['resto_id'] or resto_order['order_id'] order = Order(id=order_id) order.client_id = client.key.id() if resto_order['status'] is not None: order.status = _get_status_from_resto_status( resto_company, resto_order['status']) else: resto_order['status'] = READY_ORDER order.number = int( resto_order['number']) if resto_order['number'] else None order.address = _get_address(resto_order['address']) order.venue_id = resto_order['venue_id'] order.total_sum = resto_order['sum'] local_delivery_time = datetime.fromtimestamp(resto_order['date']) order.delivery_time = local_delivery_time - timedelta( hours=any_venue.timezone_offset) order.delivery_time_str = local_delivery_time.strftime( STR_DATETIME_FORMAT) if resto_order['payment_type'] is not None: order.payment_type_id = int(PAYMENT_TYPE_MAP[int( resto_order['payment_type'])]) else: order.payment_type_id = CASH_PAYMENT_TYPE order.delivery_type = SELF if resto_order['self'] else DELIVERY order.item_details = [ _get_item_details(resto_item) for resto_item in resto_order['items'] ] orders.append(order) return orders
def cart(): deleted = session['deleted'] session['deleted'] = False form = OrderForm() if form.validate_on_submit(): order = Order() user = db.session.query(User).get(session['user_id']) order.user_id = user.id order.amount = sum(list(map(int, session.get('cart_price')))) order.name = flask.request.form.get('name') order.phone = flask.request.form.get('phone') order.address = flask.request.form.get('address') order.mail = flask.request.form.get('mail') order.date = datetime.now() order.status = 'Принят' meals = list(map(int, session.get('cart_id'))) for meal in meals: meal = db.session.query(Meal).get(meal) order.meals.append(meal) db.session.add(order) db.session.commit() session['cart_id'] = [] session['cart_price'] = [] return redirect('/ordered/') else: meals = [] for meal in session.get('cart_id'): meal = db.session.query(Meal).get(meal) meals.append(meal) # Проверяем прошел ли пользователь аутентификацию if session.get('user_id'): user = db.session.query(User).get(session['user_id']) form.mail.data = user.mail return render_template('cart.html', meals=meals, form=form, deleted=deleted)
def generate_fake_data(): fake = Faker('es_ES') fake.add_provider(PhoneNumberProvider) for _ in range(100): pass new_fake_client = Client() new_fake_client.name = fake.name() new_fake_client.address = fake.address() new_fake_client.id_city = random.randint(1, 3) new_fake_client.telephone_number = fake.phone_number() new_fake_client.active = 1 db.session.add(new_fake_client) for _ in range(100): new_fake_order = Order() new_fake_order.id_client = random.randint(1, 99) new_fake_order.date = fake.date_between_dates( date_start=datetime(2021, 1, 1), date_end=datetime(2021, 2, 26)).isoformat() new_fake_order.address = fake.address() new_fake_order.current_status = Order.DELIVERED_STATUS new_fake_order.is_delivery = random.randint(0, 1) == 1 new_fake_order.telephone_number = fake.phone_number() text = fake.text() new_fake_order.observations = (text[:255]) if len(text) > 255 else text new_order_line = OrderLine() new_order_line.id_product = 2 new_order_line.quantity = 1 new_order_line.unitary_price = 210 new_order_line.total_price = 210 new_fake_order.order_lines.append(new_order_line) db.session.add(new_fake_order) db.session.commit()
def add_order_address(order: Order, raw_message: str) -> str: order.address = raw_message order.ready = 2 db.set_order_address(order) logger.info('Client added addrees') return 'Заказ оформлен!'
def create_order(request): args = { 'form': OrderForm(), 'delivery_mass': DeliveryType.objects.all(), 'user': request.user, 'user_active': request.user.is_authenticated(), 'cart_sum': get_sum(request), } args.update(csrf(request)) is_valid = True if request.user.is_authenticated(): ord = Order() ord.first_name = request.user.first_name ord.last_name = request.user.last_name ord.email = request.user.email ord.phone = request.user.phone ord.city = request.user.city ord.address = request.user.address args['form'] = OrderForm(instance=ord) if request.POST: if request.POST.get('first_name', "") == "": args['user_inform_error'] = True args['first_name_error'] = "error_field" is_valid = False if request.POST.get('last_name', "") == "": args['user_inform_error'] = True args['last_name_error'] = "error_field" is_valid = False if request.POST.get('email', "") == "": args['user_inform_error'] = True args['email_error'] = "error_field" is_valid = False if request.POST.get('phone', "") == "": args['user_inform_error'] = True args['phone_error'] = "error_field" is_valid = False if request.POST.get('city', "") == "": args['address_inform_error'] = True args['city_error'] = "error_field" is_valid = False if request.POST.get('address', "") == "": args['address_inform_error'] = True args['address_error'] = "error_field" is_valid = False if request.POST.get('delivery', "") == "": args['delivery_error'] = "выберите тип доставки" args['delivery_error'] = "error_field" is_valid = False if 'register' in request.POST: try: email = request.POST.get('email', "") User.objects.get(email=email) args['register_error'] = "Пользователь с таким email уже разегистрирован" is_valid = False except User.DoesNotExist: pass form = OrderForm(request.POST) if is_valid and form.is_valid(): order = form.save(commit=False) delivery = DeliveryType.objects.get(id=request.POST['delivery']) order.delivery = delivery.title order.delivery_price = delivery.price order.status = 0 print(get_sum(request)) order.sum = get_sum(request) if request.user.is_authenticated(): order.user = request.user order.save() cart = get_cart(request) if cart: for pr in CartProduct.objects.filter(cart=cart): if pr.product.sale_status: pr.price_order = pr.product.price_sale else: pr.price_order = pr.product.price pr.save() order.products.add(pr) else: args['cart_error'] = "в вашей корзине ничего нет" order.save() if 'register' in request.POST: new_user = User() new_user.first_name = request.POST.get('first_name', "") new_user.last_name = request.POST.get('last_name', "") new_user.email = request.POST.get('email', "") new_user.phone = request.POST.get('phone', "") new_user.city = request.POST.get('city', "") new_user.address = request.POST.get('address', "") new_user.username = translit(new_user.first_name) + "_" + random_str(6) password = random_str(7) new_user.set_password(password) new_user.save() # отправка уведомления user = auth.authenticate(username=new_user.username, password=password) if user is not None and user.is_active: auth.login(request, user) return redirect("/orders/reg_thanks/") elif request.user.is_authenticated(): request.user.last_name = request.POST.get('last_name', "") request.user.first_name = request.POST.get('first_name', "") request.user.phone = request.POST.get('phone', "") request.user.city = request.POST.get('city', "") request.user.address = request.POST.get('address', "") request.user.save() return redirect("/orders/thanks/") args['form'] = form return render_to_response("create_order.html", args)
def create_order(request): args = { 'user': request.user, 'form': OrderForm(), 'delivery_mass': DeliveryType.objects.all(), 'user_active': request.user.is_authenticated(), 'cart_sum': get_sum(request), } args.update(csrf(request)) is_valid = True if request.user.is_authenticated(): ord = Order() ord.first_name = request.user.first_name ord.last_name = request.user.last_name ord.email = request.user.email ord.phone = request.user.phone ord.index = request.user.index ord.address = request.user.address # index args['form'] = OrderForm(instance=ord) if request.POST: if request.POST.get('delivery', "") == "": args['delivery_error'] = "- выберите тип доставки" is_valid = False form = OrderForm(request.POST) if is_valid and form.is_valid(): order = form.save(commit=False) delivery = DeliveryType.objects.get(id=request.POST['delivery']) order.delivery = delivery.title order.delivery_price = delivery.price order.status = 0 if request.user.is_authenticated(): order.user = request.user order.sum = delivery.price + get_sum(request) order.save() cart = get_cart(request) if cart: for pr in CartProduct.objects.filter(cart=cart): pr.cart = None pr.save() order.products.add(pr) else: args['cart_error'] = "в вашей корзине ничего нет" order.save() if request.user.is_authenticated(): request.user.first_name = request.POST.get('first_name', "") request.user.last_name = request.POST.get('last_name', "") request.user.phone = request.POST.get('phone', "") request.user.address = request.POST.get('address', "") request.user.index = request.POST.get('index', "") request.user.save() email = request.POST.get('email', "") t = get_template('create_order_sender.html') html_content = t.render(Context({ 'hello': 'Спасибо за заказ на <a href="http://darya-shop.ru">darya-shop.ru</a>!', 'user_active': request.user.is_authenticated(), 'order': order, 'order_status': STATUSES_LIST[order.status], 'products': order.products.all(), })) msg = EmailMultiAlternatives("Заказ на Darya-Shop", html_content, "*****@*****.**", [email, "*****@*****.**"]) msg.attach_alternative(html_content, "text/html") msg.send() return redirect("/orders/thanks/") args['form'] = form return render_to_response("create_order.html", args)