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)
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)
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)
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"
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)
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
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@
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()
def get_order_by_id(id): validate_order_id(id) order_by_id = Order.get_order(id) return order_by_id
def deleteOrder(id): Order.deleteOrder(id) resp = make_response(jsonify({'message': 'success'}), 200) return resp
def getOrderByCartStatus(user_id): validateUserIdInOrder(user_id) return Order.getOrderByStatus(user_id)
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)
def update_orders(id, status_id, delivery_id, delivery_address, comment): Order.update_current_order(id, status_id, delivery_id, delivery_address, comment)
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)
def addOrderWithStatusCart(user_id): if Order.getOrderByStatus(user_id) is None: Order.add_order(user_id,date.today(), OrderStatus.getNameStatus('Cart').id)
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")
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")
def getListOrder(): return Order.getAllOrders()