示例#1
0
def create_order():
    '''
    创建订单
    '''
    if not current_user.is_authenticated():
        return redirect(url_for('general.index'))    
    form = OrderForm()
    if not form.validate_on_submit():
        return render_template('order/create.html', form=form, nav_order_manage='active')

    
    file = request.files['supp_info'] 
    if file :   
        if not allowed_file(file.filename):
            fail("file type error")
            return render_template('order/create.html', form=form, nav_order_manage='active')

    user = UserBiz.get_user_by_email(form.user_email.data)

    cs = AdminBiz.get_admin_by_email(form.cs_email.data)
    solverid = 0
    if form.solver_email.data:
        solver = AdminBiz.get_solver_by_email(form.solver_email.data)
        solverid = solver.id


    order = Order(user.id, cs.id, solverid, form.require_time.data, form.expect_time.data, 
        form.title.data, form.expect_hour.data, form.expect_order_price.data, form.grade.data, 0, \
        form.description.data, form.extra_item.data, form.extra_money.data, form.log.data)

    
    try:
        ret = OrderBiz.create_order(order)
    except DaixieError as e:
        fail(e)
        return render_template('order/create.html', form=form, nav_order_manage='active')   

    if file :
        order_id = order.id
        save_file_with_order_id(order_id, file)
        order.supp_info = secure_filename(file.filename)
    
    try:
        OrderBiz.edit_order(order)
    except DaixieError as e:
        fail(e)
        return render_template('order/create.html', form=form, nav_order_manage='active')

    success(ret)
    return redirect(url_for('.my_list'))
示例#2
0
def edit_order_for_admin(id):
    if not current_user.is_authenticated() :
        return redirect(url_for('general.index'))    
    if current_user.type != Admin.ADMIN_TYPE.ADMIN:
        fail(u"用户权限不足")
        return redirect(url_for('general.index'))

    order = OrderBiz.get_order_by_id(id).first()
    form = AdminEditOrderForm(obj=order)
    if not form.validate_on_submit():
        return render_template('order/edit_order_for_admin.html', form=form, id=id, order=order, nav_order_manage='active')
    
    file = request.files['supp_info']    
    
    cs = AdminBiz.get_admin_by_email(form.cs_email.data)
    solver = AdminBiz.get_solver_by_email(form.solver_email.data)

    order.cs_id = cs.id
    order.solver_id = solver.id
    print "order status:", order.status, "form status :", form.status.data
    if order.status>=1 and order.status <= form.status.data:
        order.status = form.status.data
    order.require_time = form.require_time.data
    order.expect_time = form.expect_time.data
    order.title = form.title.data
    order.description = form.description.data
    order.log = form.log.data
    order.grade = form.grade.data
    order.expect_hour = form.expect_hour.data
    order.actual_hour = form.actual_hour.data
    order.extra_item = form.extra_item.data
    if order.status == '3' and form.actual_order_price.data != 0 and form.actual_order_price.data is not None:
        order.actual_order_price = form.actual_order_price.data

    if file:
        save_file_with_order_id(id, file)
        order.supp_info = secure_filename(file.filename)

    #修改订单
    try:
        ret = OrderBiz.edit_order(order)
        success(ret)
    except DaixieError as e:
        fail(e)
        return render_template('order/edit_order_for_admin.html', form=form, id=id, order=order, nav_order_manage='active')

    return redirect(url_for('admin.home'))
示例#3
0
def edit_order_for_cs(id):
    if not current_user.is_authenticated():
        return redirect(url_for('general.index'))
    if current_user.type != Admin.ADMIN_TYPE.CS:
        fail(u"用户权限不足")
        return redirect(url_for('general.index'))

    order = OrderBiz.get_order_by_id(id).first()
    form = CSEditOrderForm(obj=order)
    form.log.data = ''
    if not form.validate_on_submit():
        print "show order editing"
        return render_template('order/edit_order_for_cs.html', form=form, id=   id, order=order, nav_order_manage='active')
    
    file = request.files['supp_info']    
    if order.status>='1' and order.status <= form.status.data:
        order.status = form.status.data
    order.expect_time = form.expect_time.data
    order.title = form.title.data
    order.description = form.description.data
    order.log = order.log+form.log.data
    order.grade = form.grade.data
    order.expect_hour = form.expect_hour.data
    order.actual_hour = form.actual_hour.data

    if order.status == '3' and form.actual_order_price.data != 0 and form.actual_order_price is not None:
        order.actual_order_price = form.actual_order_price.data

    if file:
        save_file_with_order_id(id, file)
        print file.name
        order.supp_info = secure_filename(file.filename)

    #修改订单
    try:
        ret = OrderBiz.edit_order(order)
        success(ret)
    except DaixieError as e:
        fail(e)
        return render_template('order/edit_order_for_cs.html', form=form, id=id, order=order, nav_order_manage='active')

    return redirect(url_for('admin.home'))