示例#1
0
def updateOrderProduct():
    total_price = 0
    order_number = random.randint(0,999999)
    order = getOrderByCartStatus(session['user_id'])
    for i in OrderProduct.listOrderProductById(order.id):
        total_price += i.price*i.quantity
    Order.updateOrderStatus(order.id, OrderStatus.getNameStatus('Created').id, total_price, order_number)
    return make_response(jsonify({'message':'success'}),200)
示例#2
0
def v_update_order_details():
    js = request.json
    id = js.get('id')
    gift = True if js.get('gift') else False
    status = "Delivered" if js.get('status') else "Ordered"
    delivery_date = js.get('delivery_date')
    update_order_details(id, gift, status, delivery_date)
    if status == "Delivered":
        Order.set_user_level(id)
    return make_response(jsonify({'message': 'success'}), 200)
示例#3
0
def ordersPage():
    user_id = session['user_id']
    filter = ({'name': request.args.get('name_input'),
                   'order_option': request.args.get('order_option'),
                   'status_option': request.args.get('status_option')})
    records_per_page = int(request.args.get('table_size'))
    page = int(request.args.get('page'))
    sort_by = request.args.get('sort_by')
    index_sort = request.args.get('index_sort')
    prods, records_amount = Order.listOrders(user_id, page, records_per_page, sort_by, index_sort, filter)
    orders_list = []
    for i in prods:
        if i.assignee:
            first_name = i.assignee.first_name
            last_name = i.assignee.last_name
            role_id = i.assignee.role.name
        else:
            last_name = ''
            first_name = ''
            role_id = ''
        if i.delivery_date is None:
            delivery_date = 'undefined'
        else:
            delivery_date = i.delivery_date
        orders_list.append({'order_id': i.id, 'order_number': i.order_number, 'delivery_date': str(delivery_date),
                            'orderStatus': i.status.name, 'total_price': str(i.total_price), 'assignee': first_name+' '+
                            last_name, 'maxDiscount': i.discount, 'role': role_id})
    return make_response(jsonify(orders=orders_list, records_amount=records_amount,
                                 records_per_page=records_per_page), 200)
示例#4
0
def order_grid(id):
    assingee_list = UserDao.getUserByRoleName('Merchandiser')
    assingee_arr = []
    for i in assingee_list:
         assingee_arr.append({'id': i.id, 'name': i.login})
    if id==0:
        return render_template('order.html',assingee_arr=assingee_arr,order_id=id)
    else:
        get_order=Order.get_order(id)
        status_id=get_order.status.id
    if status_id >=3 and get_order.user_id==session['user_id']:
       return render_template('order.html',assingee_arr=assingee_arr,order_id=id)
    else:
        if (Order.get_order(id).user_id == session["user_id"]) or\
                (Order.get_order(id).assignee_id == session["user_id"]):
            if (session["role"] == "Merchandiser") and (Order.get_order(id).status.name == "Pending"):
                update_order_details(id, gift=False, status="Ordered", delivery_date=None)
            return render_template('order_details.html')
        else:
            return "You have not permission to access this page"
示例#5
0
def orders():
    status_id = request.args.get('status_id')
    assignee_id = request.args.get('assignee_id')
    records_per_page = int(request.args.get('table_size'))
    page = int(request.args.get('page'))
    orders, records_amount = Order.pagerByFilterOrder(status_id, assignee_id, page, records_per_page)
    orders_arr = []
    for i in orders:
        orders_arr.append({'id': i.id, 'user_id': (i.user.first_name + " " + i.user.last_name), 'status_id': i.status.name,
        'total_price': str(i.total_price), 'assignee_id' : i.assignee.role.name if i.assignee else None, 'delivery_address': i.delivery_address, 'comment': i.comment})
    return make_response(jsonify(orders=orders_arr, records_amount=records_amount,
                                 records_per_page=records_per_page), 200)
示例#6
0
def unique_number():
    user_id=session['user_id']
    js = request.json
    order_id=0
    if not (js['unique_order_number']):
        while not order_id:
            data=random.randint(1,999999)
            data_string=str(data)
            order_id=Order.add_order_number(user_id,data_string.zfill(6))
        unique_number=data_string.zfill(6)
        message='success'

    else:
        data_string=str(js['unique_order_number'])
        order_id=Order.add_order_number(user_id,data_string.zfill(6))
        if order_id:
            message='success'
            unique_number=data_string.zfill(6)
        else:
            message='not unique'
            unique_number=''
    response = make_response(jsonify({'message':message,'unique_order_number':unique_number,'order_id':order_id}), 200)
    return response
示例#7
0
def page_order():
    user_id = session['user_id']
    filter = ({'name': request.args.get('name_input'),
                   'order_option': request.args.get('order_option'),
                   'status_option': request.args.get('status_option')})
    records_per_page = int(request.args.get('table_size'))
    page = int(request.args.get('page'))
    sort_by = request.args.get('sort_by')
    order_sort_by = request.args.get('order_sort_by')
    prods, records_amount = Order.pagerByFilterByMerchandiser(user_id, page, records_per_page, sort_by, order_sort_by, filter)
    orders_list = []
    for i in prods:
        orders_list.append({'order_id': str(i.id), 'order_number': str(i.order_number), 'orderStatus': OrderStatus.get_status(i.status_id).name,'total_price': str(i.total_price),
                            'user':i.user.first_name+' '+i.user.last_name,
                            'role': i.assignee.role.name})
    return make_response(jsonify(orders=orders_list, records_amount=records_amount,
                                 records_per_page=records_per_page), 200)

# add @filter@
示例#8
0
def product_order_update(order_dict,method):
    order_id=int(order_dict['order_id'])
    amount=0
    order = Order.get_order(order_id)
    quantity_dict=order_dict['product_quantity']
    if order_dict.get('assignee'):
        assignee=int(order_dict['assignee'])
    else:
         assignee=None
    if (order_dict['preferable_delivery_date']):
        preferable_delivery_date=int(order_dict['preferable_delivery_date'])/1000
        preferable_delivery_date=(datetime.datetime.fromtimestamp(preferable_delivery_date).strftime('%Y-%m-%d'))
    else:
        preferable_delivery_date=0
    for i in quantity_dict:
        dimension_id=i['dimension_id']
        product_id=i['product_id']
        quantity=i['quantity']
        validate_quantity(product_id,dimension_id,quantity,'update')
        dimension_number=i['dimension_number']
        get_product=get_product_by_id(product_id)
        price = get_product.price
        amount= amount + price*quantity*dimension_number
        order_product= OrderProduct.get_order_product(order_id,product_id,dimension_id)
        if order_product:
            order_product.quantity=quantity
        else:
            order_product= OrderProduct.add_order_product(order_id,product_id,dimension_id,quantity,price)
        OrderProduct.changeTriggerStatus(order_dict['order_id'],i['product_id'],i['dimension_id'])

    if method == 'POST':
        order.status_id = 3
    else:
        order.status_id = 4
    order.total_price = amount
    order.assignee_id = assignee
    order.preferable_delivery_date=preferable_delivery_date
    db_session.commit()
示例#9
0
def get_order_by_id(id):
    validate_order_id(id)
    order_by_id = Order.get_order(id)
    return order_by_id
示例#10
0
def deleteOrder(id):
    Order.deleteOrder(id)
    resp = make_response(jsonify({'message': 'success'}), 200)
    return resp
示例#11
0
def getOrderByCartStatus(user_id):
    validateUserIdInOrder(user_id)
    return Order.getOrderByStatus(user_id)
示例#12
0
def update_order_details(id, gift, status, delivery_date):
    if delivery_date:
        delivery_date = datetime.strptime(delivery_date, '%m/%d/%Y')
    Order.update_order_details(id, gift, status, delivery_date)
示例#13
0
def update_orders(id, status_id, delivery_id,
                  delivery_address, comment):
    Order.update_current_order(id, status_id, delivery_id,
                  delivery_address, comment)
示例#14
0
def addProductToCartStatus(user_id, product_id, status, value, price):
    order = Order.getOrderByStatus(user_id)
    if  OrderProduct.get_order_product(order.id, product_id, status):
        OrderProduct.updateSumQuantity(order.id, product_id, status, value)
    else:
        OrderProduct.add_order_product(order.id, product_id, status, value, price)
示例#15
0
def addOrderWithStatusCart(user_id):
    if Order.getOrderByStatus(user_id) is None:
        Order.add_order(user_id,date.today(), OrderStatus.getNameStatus('Cart').id)
示例#16
0
def validateUserIdInOrder(user_id):
    if user_id is None:
        raise ValidationException("Order id is required field")
    if not Order.getOrderByStatus(user_id):
        raise NotFoundException("Unable to find order with given id")
示例#17
0
def validate_order_id(id):
    if id is None:
        raise ValidationException("Order id is required field")
    if not Order.get_order(id):
        raise NotFoundException("Unable to find order with given id")
示例#18
0
def getListOrder():
    return Order.getAllOrders()