def busca(produtoid: int): # Busca por produto produto = Produto() produto.select(produtoid) if produto.id_produto == 0: return json_response(message='Produto não encontrado!', data=[]), 404 return json_response(message='Produto encontrado!', data=[produto]), 200
def populate_from_request(produto: Produto): # Atribui valores do post ao model produto.descricao = request.form['descricao'] produto.valor = request.form['valor'].replace('.', '').replace(',', '.') if 'imagem' in request.files and request.files['imagem'].filename != '': produto.imagem = "data:" + request.files[ 'imagem'].content_type + ";base64," + str( base64.b64encode(request.files['imagem'].read()), "utf-8")
def edicao_form(produtoid: int): if session['user']['grupo'] == 'admin': # Página de edição produto = Produto() produto.select(produtoid) if produto.id_produto == 0: return redirect(url_for('produto.lista')) return render_template('form_produto.html', produto=produto) return render_template('403.html'), 403
def cadastro(): if session['user']['grupo'] == 'admin': # Cadastro via ajax produto = Produto() populate_from_request(produto) identifier = produto.insert() if identifier > 0: return json_response(message='Produto cadastrado!', data=[produto], redirect=url_for('produto.lista')), 201 else: return json_response( message='Não foi possível cadastrar o produto', data=[]), 400 return json_response( message='Você não tem permissão para realizar esta ação', data=[]), 403
def select(self, id_pedido): """Seleciona todos os produtos do pedido""" c = self.db.con.cursor() c.execute( """SELECT id_pedido, id_produto, quantidade, valor, observacao FROM tb_pedido_produtos WHERE id_pedido = %s""", id_pedido) list_all: List[PedidoProduto] = [] for row in c: prod = Produto() produto = PedidoProduto() produto.id_pedido = row[0] produto.id_produto = row[1] produto.quantidade = row[2] produto.valor = row[3] produto.observacao = row[4] produto.produto = prod.select(produto.id_produto) list_all.append(produto) c.close() return list_all
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)
def edicao(produtoid): if session['user']['grupo'] == 'admin': # Edição via ajax # Verifica se produto existe produto = Produto() produto.select(produtoid) if produto.id_produto == 0: return json_response(message='Produto não encontrado!', data=[], redirect=url_for('produto.lista')), 404 populate_from_request(produto) rows = produto.update() if rows > 0: return json_response(message='Produto atualizado!', data=[produto]), 200 else: return json_response(message='Não foi possível editar o produto', data=[]), 400 return json_response( message='Você não tem permissão para realizar esta ação', data=[]), 403
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)
def __init__(self, id_pedido=0, id_produto=0, quantidade=0, valor=0, observacao="", produto=None): super().__init__() self.id_pedido = id_pedido self.id_produto = id_produto self.quantidade = quantidade self.valor = valor self.observacao = observacao if produto is None: produto = Produto() self.produto = produto
def remocao(produtoid): if session['user']['grupo'] == 'admin': # Remoção via ajax # Verifica se usuário existe produto = Produto() produto.select(produtoid) if produto.id_produto == 0: return json_response(message='Produto não encontrado!', data=[], redirect=url_for('produto.lista')), 404 if produto.bought(): return json_response( message='Produto presente em um pedido não pode ser removido!', data=[]), 403 rows = produto.delete() if rows > 0: return json_response(message='Produto removido!', data=[produto], redirect=url_for('produto.lista')), 200 else: return json_response(message='Não foi possível remover o produto', data=[]), 400 return json_response( message='Você não tem permissão para realizar esta ação', data=[]), 403
def cadastro_form(): if session['user']['grupo'] == 'admin': # Página de cadastro produto = Produto() return render_template("form_produto.html", produto=produto) return render_template('403.html'), 403
def lista(): if session['user']['grupo'] == 'admin': produto = Produto() produtos = produto.all() return render_template("lista_produto.html", lista=produtos) return render_template('403.html'), 403