示例#1
0
def edicao(pedidoid):
    # Edição via ajax
    # Verifica se pedido existe
    pedido = Pedido()
    pedido.select(pedidoid)
    if pedido.id_pedido == 0:
        return json_response(message='Pedido não encontrado!',
                             data=[],
                             redirect=url_for('pedido.lista')), 404

    if session['user']['id_cliente'] != pedido.id_cliente and session['user'][
            'grupo'] != 'admin':
        return json_response(
            message='Você não tem permissão para realizar esta ação',
            data=[]), 403

    populate_from_request(pedido)

    if session['user']['grupo'] != 'admin':
        pedido.id_cliente = session['user']['id_cliente']

    rows = pedido.update()
    if rows > 0:
        return json_response(message='Pedido atualizado!', data=[pedido]), 200
    else:
        return json_response(message='Não foi possível editar o pedido',
                             data=[]), 400
示例#2
0
def populate_from_request(pedido: Pedido):
    # Atribui valores do post ao model
    pedido.id_cliente = request.form['id_cliente']
    pedido.observacao = request.form['observacao']
    pedido.data_hora = request.form['data_hora']
    pedido.produtos = []
    dicti = request.form.to_dict(flat=False)
    produtos = []

    key = 0
    for id_produto in dicti['produto[][id_produto]']:
        produtos.append(PedidoProduto())
        produtos[key].id_produto = id_produto
        key = key + 1

    key = 0
    for quantidade in dicti['produto[][quantidade]']:
        produtos[key].quantidade = quantidade
        key = key + 1

    key = 0
    for total in dicti['produto[][total]']:
        produtos[key].valor = total.replace('.', '').replace(',', '.')
        key = key + 1

    key = 0
    for observacao in dicti['produto[][observacao]']:
        produtos[key].observacao = observacao
        key = key + 1

    pedido.produtos = produtos
示例#3
0
def cadastro():
    # Cadastro via ajax
    pedido = Pedido()
    populate_from_request(pedido)
    if session['user']['grupo'] != 'admin':
        pedido.id_cliente = session['user']['id_cliente']

    identifier = pedido.insert()
    if identifier > 0:
        return json_response(message='Pedido cadastrado!',
                             data=[pedido],
                             redirect=url_for('pedido.lista')), 201
    else:
        return json_response(message='Não foi possível cadastrar o pedido',
                             data=[]), 400
示例#4
0
def cadastro_form():
    # Página de cadastro
    pedido = Pedido()
    pedido.produtos.append(PedidoProduto())
    cliente = Cliente()
    if session['user']['grupo'] == 'admin':
        clientes = cliente.all()
    else:
        clientes = []
        cliente.select(session['user']['id_cliente'])
        clientes.append(cliente)
        pedido.id_cliente = cliente.id_cliente
        pedido.cliente = cliente
    produto = Produto()
    produtos = produto.all()
    return render_template('form_pedido.html',
                           pedido=pedido,
                           clientes=clientes,
                           produtos=produtos)
示例#5
0
def edicao_form(pedidoid: int):
    # Página de edição
    pedido = Pedido()
    pedido.select(pedidoid)
    if pedido.id_pedido == 0:
        return redirect(url_for('pedido.lista'))
    if session['user']['id_cliente'] != pedido.id_cliente and session['user'][
            'grupo'] != 'admin':
        return render_template('403.html'), 403
    cliente = Cliente()
    if session['user']['grupo'] == 'admin':
        clientes = cliente.all()
    else:
        clientes = []
        cliente.select(session['user']['id_cliente'])
        clientes.append(cliente)
        pedido.id_cliente = cliente.id_cliente
        pedido.cliente = cliente
    produto = Produto()
    produtos = produto.all()
    return render_template('form_pedido.html',
                           pedido=pedido,
                           clientes=clientes,
                           produtos=produtos)