Esempio n. 1
0
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"})
Esempio n. 2
0
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)
Esempio n. 5
0
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)
Esempio n. 6
0
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"])
Esempio n. 7
0
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)
Esempio n. 8
0
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
Esempio n. 9
0
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)
Esempio n. 10
0
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()
Esempio n. 11
0
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 'Заказ оформлен!'
Esempio n. 12
0
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)
Esempio n. 13
0
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)