def cart(): form = OrderForm() my_cart = session.get('cart', []) title = f"Блюд в корзине: {len(my_cart)}" if my_cart else "Ваша корзина пуста" products = [Meal.query.get(product_id) for product_id in my_cart] total_amount = sum(product.price for product in products) total_amount_msg = f"Всего товаров на {total_amount} рублей" if request.method == 'GET' and current_user.is_authenticated: form.username.data = current_user.username form.email.data = current_user.email if current_user.address: form.address.data = current_user.address if form.validate_on_submit(): new_order = Order() new_order.amount = total_amount new_order.state = OrderState.query.filter( OrderState.title == 'новый').first() new_order.user = current_user db.session.add(new_order) for item in my_cart: meal = Meal.query.get(item) new_order.meals.append(meal) db.session.commit() session['cart'] = [] return redirect('/ordered/') return render_template('cart.html', form=form, products=products, title=title, total_amount=total_amount_msg)
def get_order(): choises = [(type.name, type.name) for type in Type.query.all()] form = OrderForm(choises) if form.validate_on_submit(): type = Type.query.filter(Type.name == form.product_type.data).one() model = form.model.data product = Product.query.filter(Product.model == model, Product.type_id == type.id).first() if product is None: flash( 'Sorry, we don\'t have such product. Please check input fields' ) return render_template('order.html', title='Order Page', form=form) count = int(form.product_count.data) if product.count < count: flash( 'Currently we don\'t have so much products. Please choose smaller number' ) return render_template('order.html', title='Order Page', form=form) order = Order(customer=current_user, product=product, price=product.price * count) db.session.add(order) db.session.commit() flash('You successfully bought {}'.format(order)) return redirect(url_for('get_order')) # elif request.method == 'GET': # choises = [(type.name, type.name) for type in Type.query.all()] # form.product_type.choices = choises return render_template('order.html', title='Order Page', form=form)
def order(): form = OrderForm() outputInfo = '' if current_user.is_authenticated: if int(current_user.get_id()) is 1: return redirect(url_for('index')) con = db.engine.connect() if form.validate_on_submit(): userid = int(current_user.get_id()) stockNumber = form.stocknumber.data part = con.execute('SELECT * FROM Part WHERE stocknumber = {0}'.format(stockNumber)).fetchone() if not part: outputInfo = 'No part matches the stock number you typed in.' return render_template('Order.html',Info=outputInfo,title='Order Info',form=form) else: originQty = part[4] if (originQty > 1): con.execute('UPDATE Part SET quantity = {0} WHERE stocknumber = {1}'.format((originQty-1),stockNumber)) else: con.execute('DELETE FROM Part WHERE stocknumber = {0}'.format(stockNumber)) sql_section = 'INSERT INTO [Order] (customer_id, part_id) VALUES ({0}, {1})'.format(userid,stockNumber) con.execute(sql_section) db.session.commit() outputInfo = 'Successfully Ordered!' return render_template('Order.html',Info=outputInfo,title='Order Info',form=form) return render_template('Order.html',Info=outputInfo,title='Order Info',form=form)
def add_order(): form = OrderForm() choice = [] # users = User.query.all() # for u in users: # label = u.name # value = u.username # choice.append((value,label)) # form.buyer.choices = choice form.update_choices() if form.validate_on_submit(): order_status = dict(form.order_status.choices).get( form.order_status.data) buyer = User.query.filter_by(username=form.buyer.data).first() order = Orders(amount=form.amount.data, order_status=order_status, buyer=buyer) db.session.add(order) db.session.commit() message = "*{}'s* Taobao order of SGD *{}* has been added.".format( order.buyer.name, order.amount) #message = '*' + buyer_name + '*' + ' has added a Taobao order of SGD ' + '*' + str(amount) + '*' + ' successfully. \n*Order Status:* ' + status api_result = sendtelegram(message) flash("Order added.", "success") if api_result is True: flash("Sent telegram message successfully", 'success') else: flash("Error sending telegram message", 'danger') return redirect(url_for('add_order')) return render_template('add_order.html', form=form)
def order(current_order): form = OrderForm() current_order = Order.query.filter_by(id=current_order).first() if form.validate_on_submit(): current_order.adress = form.adress.data current_order.phone_number = form.phone.data db.session.commit() return redirect(url_for('order_submit')) return render_template('order.html', form=form)
def add_order(): form = OrderForm() clients = controllers.find_all_clients() form.client.choices = [(client.id, client.name) for client in clients] if form.validate_on_submit(): order = controllers.add_order(form) return redirect(url_for('order', id=order.id)) else: return render_template('new_order.html', form=form)
def edit_order(id): form = OrderForm() clients = controllers.find_all_clients() form.client.choices = [(client.id, client.name) for client in clients] if form.validate_on_submit(): order = controllers.edit_order(id, form) return redirect(url_for('order', id=order.id)) elif request.method == 'GET': order = controllers.find_order(id) controllers.fill_order_form(order, form) return render_template('edit_order.html', order=order, form=form)
def cart(): form = OrderForm() if form.validate_on_submit(): order_service.create_order(form) return redirect('/ordered') else: if request.method == 'GET' and session.get('user'): form.name.default = session['user']['name'] form.email.default = session['user']['email'] form.address.default = session['user']['address'] form.process() return render_template('cart.html', form=form, cart=cart_service.get_cart())
def table(id): form = OrderForm() if form.validate_on_submit(): french_fries = form.french_fries.data dr_pepper = form.dr_pepper.data jambalaya = form.jambalaya.data order = Order.query.filter(Order.table_id == id).all() if order: pass else: order = Order() return render_template("orders.html")
def change(id): order = Order.query.get(id) form = OrderForm(obj=order) if form.validate_on_submit(): order.address = form.address.data order.phone = form.phone.data order.text = form.text.data db.session.add(order) db.session.commit() flash('Заказ успешно изменен.') bot.notify_change(order.client, order.volunteer, order) return redirect(url_for('.given')) return render_template('orders_change.html', form=form)
def create(): """Создание заказа""" form = OrderForm(obj=current_user) if form.validate_on_submit(): order = Order(address=form.address.data, phone=form.phone.data, client_id=current_user.id, text=form.text.data) db.session.add(order) db.session.commit() flash('Успешно добавлен/изменён заказ.') return redirect(url_for('.given')) return render_template('orders_create.html', form=form)
def add_order(): order_form = OrderForm(request.form) if order_form.validate_on_submit(): order = Order(title=order_form.title.data, service=order_form.service.data, price=order_form.price.data, status=order_form.status.data, customer=order_form.customer_id.data) db_session.add(order) db_session.commit() flash('Thanks') return redirect(url_for('settings')) return redirect(url_for('settings'))
def index(): print(current_user) tracker = current_user.tracker[0] form = OrderForm() form.carrier.choices = [('Maersk Line', 'Maersk Line')] orders_db = tracker.orders.all() orders = [] for order in orders_db: delete = DeleteButton() delete.order_id.data = order.id orders.append([order, delete]) if form.validate_on_submit(): tracker.create_order(form.orderName.data, form.po.data, form.container.data, form.carrier.data, form.dueDate.data) return redirect(url_for('index')) for order in orders: a = request.form b = dict(a) print(b) if "submit" in b and "order_id" in b: print(order[0].id) print(b["order_id"]) if order[1].is_submitted() and b["submit"] == ['Delete Order']: qry = Order.query.get(int(b["order_id"][0])) db.session.delete(qry) db.session.commit() orders_db = tracker.orders.all() orders = [] for order in orders_db: delete = DeleteButton() delete.order_id.data = order.id orders.append([order, delete]) return render_template('index.html', title='Hello World', orders=orders, form=form) return render_template('index.html', title='Hello World', orders=orders, form=form)
def order(): form = OrderForm() if form.validate_on_submit(): new_order = Order(address=form.address.data, latlon=','.join([form.lat.data, form.lng.data]), lat=float(form.lat.data), lng=float(form.lng.data), load=form.load.data) db.session.add(new_order) db.session.commit() flash('Order added') return redirect(url_for('index')) return render_template('order.html', title='Orders', form=form)
def orders(): form = OrderForm() shop_session = sfy.Session(session['shop_url'], '2019-04', session['token']) # activate the shopify session to use resources. sfy.ShopifyResource.activate_session(shop_session) if request.method == 'POST': if form.validate_on_submit(): generate_orders(form.number_of_orders_field.data,\ form.number_of_line_items_field.data,\ form.max_qty_sold_field.data,\ form.start_date.data,\ form.end_date.data,\ session['shop_url'],\ session['token']) return render_template('orders.html', form=form)
def order(): form = OrderForm() if form.validate_on_submit(): address = request.form.get('autocomplete') geocode_result = gmaps.geocode(address)[0]['geometry']['location'] latlon = str(geocode_result['lat'])+','+str(geocode_result['lng']) order = Order(address = address, latlon=latlon, load=form.load.data) db.session.add(order) db.session.commit() flash('order added') return redirect(url_for('index')) return render_template('order.html', title='Orders', form=form)
def make_order(dishname): dish = Dish.query.filter_by(dish_name=dishname).first_or_404() form = OrderForm() if form.validate_on_submit(): order = Order(quantity=form.quantity.data, status="ongoing", dish=dish, buyer=current_user) dish.current_order_number += 1 db.session.add(order) notice = "Dear chef %s, you have a new order made by user %s for your dish %s." % ( dish.seller.username, current_user.username, dish.dish_name) msg = Message(author=None, recipient=dish.seller, body=notice) db.session.add(msg) dish.seller.add_notification('unread_message_count', dish.seller.new_messages()) db.session.commit() flash('Your order is successful!') return redirect(url_for('index')) return render_template('order.html', dish=dish, form=form)
def group_order(gid): form = OrderForm() if form.validate_on_submit(): order = Orders(username=form.username.data, groupId=gid, orderName=form.orderName.data, quantity=form.quantity.data, size=form.size.data) db.session.add(order) db.session.commit() order_details = Grouporder.query.get(gid) total_friends_expected = order_details.n_friends order_till_now = Orders.query.filter_by(groupId=gid) if total_friends_expected == order_till_now.count(): email_to_list = [order_details.username] email_from = '*****@*****.**' email.send_email( email_from, email_to_list, "Order status ", render_template('returnStatus.html', order=order_till_now)) flash('Your order placed Successfully {}'.format(form.username.data)) return redirect('/index') return render_template('orderForm.html', form=form)
def create_order(): """ Creates an order. """ form = OrderForm() print(request.get_json()) # Get the csrf_token from the request cookie and put it into the # form manually to validate_on_submit can be used form['csrf_token'].data = request.cookies['csrf_token'] if form.validate_on_submit(): virtual_bool = form.data['virtual'] == "True" order = Order(nonprofit_id=form.data['nonprofit_id'], title=form.data['title'], description=form.data['description'], location=form.data['location'], start_time=form.data['start_time'], duration=form.data['duration'], karma=form.data['karma'], virtual=virtual_bool) db.session.add(order) db.session.commit() return order.to_dict() return 'invalid form'
def order(): """ Create an ORDER form After ORDER form is submitted, create it in the database Next, loop over cart and make a CartItem for each item. This will create an Order that contains many order items You can then access an Order and query the CartItems directly. On successful completion of an order, flash a success message """ form = OrderForm() products = [] if session['cart']: for key, value in session['cart'].items(): product = Product.query.filter_by(id=key).first() products.append({ 'id': key, 'item': product.name, 'quantity': value['quantity'], 'price': product.price, 'subtotal': (product.price * value['quantity']), 'image_url': product.image_url }) if form.validate_on_submit(): order = Order(first_name=form.data['first_name'], last_name=form.data['last_name'], email=form.data['email'], address=form.data['address'], postal_code=form.data['postal_code'], city=form.data['city']) order.save() return redirect(url_for('order_confirm', id=order.id)) return render_template('order.html', form=form, products=products)
def suppliersort(): # hack to quickly get sorting to work. Basically just duplicating index a bunch ########## Display Table ############ inventories = [] inv_for_display = InventoryItems.query.order_by(InventoryItems.supplier_id, InventoryItems.id) # default ordering if current_user.supplier_id: # if they are a supplier, they should only see their own products inv_for_display = inv_for_display.filter_by(supplier_id=current_user.supplier_id) else: # otherwise, check for a delivery confirmation responses = read_response() #dictionary of emails refresh = False if responses: for order_id in responses: order = Orders.query.filter_by(id=order_id).first() if order.is_confirmed or order.is_confirmed == False: # unconfirmed/undenined orders are None continue # this order has already been confirmed or declined and the db updated. The email has not been deleted yet. Ignore it if responses[order_id]: # if the order was confirmed order.is_confirmed = True db.session.add(order) db.session.commit() ####### Update the inventory quantities ######## order_inventory = InventoryInOrder.query.filter_by(order_id=order_id).all() for ordered_inv in order_inventory: ordered_inv.inventory.SKUs += ordered_inv.SKUs db.session.add(ordered_inv.inventory) db.session.commit() flash("Note: Order number {} was confirmed. Expected delivery date of {}. The database has been updated."\ .format(order_id, order.order_ETA)) refresh = True else: order.is_confirmed = False db.session.add(order) db.session.commit() flash("Note: Order number {} was declined".format(order_id)) refresh = True if refresh: return redirect(url_for('suppliersort')) # refresh the page to show the user the flashed messages for inventory in inv_for_display.all(): inventories.append({ 'id':inventory.id, 'item_name':inventory.item_name, 'inventory_type':inventory.inventory_type, 'supplier':inventory.supplier.name, 'SKUs':inventory.SKUs, 'lead_time':inventory.lead_time, 'ordering_cost':inventory.ordering_cost, 'holding_cost':inventory.holding_cost, 'variable_cost':inventory.variable_cost, 'demand':inventory.demand, 'EOQ':EOQ(inventory.ordering_cost, inventory.holding_cost,inventory.demand), 'reorder_point':reorder_point(inventory.lead_time, inventory.demand) }) ############ Place an Order ################ form = OrderForm() if form.validate_on_submit(): product = InventoryItems.query.filter_by(id=form.product_id.data).first() order = Orders(user_id=current_user.id, supplier_id=product.supplier_id, order_ETA=datetime.utcnow().date() + timedelta(days=product.lead_time)) db.session.add(order) db.session.commit() inv_in_order = InventoryInOrder(order_id=order.id, SKUs=form.quantity.data, inventory_id=product.id) db.session.add(inv_in_order) db.session.commit() send_order(order.id) flash('Placed an order for {} SKUs of {}. Pending supplier confirmation.'.format(inv_in_order.SKUs, product.item_name)) return redirect(url_for('suppliersort')) return render_template('suppliersort.html', title='Home', inventories=inventories, form=form)