Ejemplo n.º 1
0
def pag_vendas():
    if request.method == "GET":
        estoque_info = request.args.get('info')
        estoque = Estoque(estoque_info)

        #Insere a sessao na tabela de Sessoes e cria uma tabela Prod_vendidos para a sessão
        data_hora = datetime.now().strftime("%Y/%m/%d %H:%M:%S")
        sessao = Sessao(estoque_info, data_hora)
        sessao.sessao_nova()

        li_li_tup = Estoque.gerar_li_li_tup(estoque)
        
        return render_template('vendas.html', li_li_tup=li_li_tup, estoque=estoque.estoque)
Ejemplo n.º 2
0
def pag_estoque():
    # Metodos Get e Post para manter o nome do estoque na pagina
    if request.method == "GET":
        estoque_info = request.args.get('info')
    elif request.method == "POST":
        estoque_info = request.form["nome_estoque"]
    estoque = Estoque(estoque_info)
    estoque.criar_tabela()
    # Checando de o Botão " Vendas" foi pressionado
    if "vendas" in request.form:
        return redirect(url_for('pag_vendas',info=estoque.estoque))
    if "relatorios" in request.form:
        return redirect(url_for('pag_relatorios',info=estoque.estoque))
    if "n_estoque" in request.form:
        novo_estoque = request.form["novo_estoque"]
        antigo_estoque = estoque_info
        con = Estoque.alterar_estoque(antigo_estoque,novo_estoque)
        if con:
            estoque = Estoque(novo_estoque)
            li_li_tup = Estoque.gerar_li_li_tup(estoque)
            return render_template('estoque.html', li_li_tup=li_li_tup, estoque=estoque.estoque)
        else:
            li_li_tup = Estoque.gerar_li_li_tup(estoque)
            return render_template('estoque.html', li_li_tup=li_li_tup, estoque=estoque.estoque)

    if request.method == "POST":
        # Checando se o Botão "Atualizar Valores" foi pressionado
        if "atualizar" in request.form:
            # Função para Atualizar a tabela
            w = 0
            for prods in estoque.mostrar_estoque():
                z = str(w)
                prod = Produto(request.form["numero" + z], request.form["nome" + z], request.form["preço" + z],
                            request.form["quantidade" + z], estoque.estoque)
                prod.alterar_produto(prods[0])
                w = w + 1

            # Função para Adicionar novo produto
            prodnovo = Produto(request.form["numeron"], request.form["nomen"], request.form["preçon"],
                            request.form["quantidaden"], estoque.estoque)
            count= int(request.form["numeron"])
            count2=int(request.form["preçon"])
            count3=int(request.form["quantidaden"])
            if (count<0) or (count2<0) or (count3<0):
                flash('Não é permitido números, preços ou quantidades negativas no estoque','warning')
                return redirect(url_for('pag_estoque'))
            else:
                prodnovo.produto_novo()
                flash(f'O produto {request.form["nomen"]} foi adicionado ao estoque.','success')
                return redirect(url_for('pag_estoque'))

        # Função para Deletar um produto do estoque
        else:
            z = 2
            for produto in estoque.mostrar_estoque():
                y = str(z)
                #Se um botao de deletar foi pressionado
                if y in request.form:
                    del_produto = Produto(produto[0], produto[1], produto[2], produto[3], estoque.estoque)
                    del_produto.remover_produto()
                    flash('O produto foi removido','success')
                    return redirect(url_for('pag_estoque',info=estoque_info,li_li_tup=li_li_tup, estoque=estoque.estoque))
                z = z + 1

    li_li_tup = Estoque.gerar_li_li_tup(estoque)
    return render_template('estoque.html', li_li_tup=li_li_tup, estoque=estoque.estoque)
Ejemplo n.º 3
0
def pag_carrinho():
    if "carrinho" in request.form:
        # Função para enviar os produtos selecionados para o carrinho usando dicionario
        dic ={}
        li_dic = []
        s = ["numero", "nome", "preço", "quantidade"]
        z = 0
        w = 0
        val = 0
        preço = 0
        while "numero"+str(z) in request.form:
            if int(request.form["quantidade"+str(z)]) > 0 :
                for k in range(4):
                    dic[s[k]+str(w)] = request.form[s[k]+str(z)]
                    if k == 2:
                        preço = request.form[s[k]+str(z)]
                    if k == 3:
                        val = val + float(preço)*int(request.form[s[k]+str(z)])
                        preço = 0
                li_dic.append(dic)
                w = w + 1
                dic = {}
            z = z+1
        str1 = val
        str1 = str(str1).split('.', 1)[0]
        str2 = val
        str2 = str(str2).split('.', 1)[1]
        str2 = str2[0:2]
        val = str1+"."+str2

        return render_template('carrinho.html', li_dic = li_dic, estoque = request.form["nome_estoque"], subtotal = val )
    elif "reset" in request.form:
        #Recarrega a pagina para 'resetar' as quantidades selecionadas
        estoque = Estoque(request.form["nome_estoque"])
        li_li_tup = Estoque.gerar_li_li_tup(estoque)
        flash('Quantidade no estoque resetada', 'success')
        return render_template('vendas.html', li_li_tup=li_li_tup, estoque=estoque.estoque)

    elif "confirm" in request.form:
        # Função para confirmar a venda dos produtos, retirar quantidade do estoque e adicionar na tabela _vendidos
        estoque = Estoque(request.form["nome_estoque"])
        prod_v = Prod_Vendido(0,"0",0,0,estoque.estoque)
        z = 0
        val = 0
        while "numero"+str(z) in request.form:
            prod_v.numero = request.form["numero"+str(z)]
            prod_v.nome = request.form["nome"+str(z)]
            prod_v.preço = request.form["preço"+str(z)]
            prod_v.quantidade = request.form["quantidade"+str(z)]
            prod_v.vendido()
            val = val + float(prod_v.preço)*int(prod_v.quantidade)
            z = z+1
        Sessao.adicionar_receita(estoque.estoque, val)

        li_li_tup = Estoque.gerar_li_li_tup(estoque)
        flash('Produtos vendidos','success')
        return render_template('vendas.html', li_li_tup=li_li_tup, estoque=estoque.estoque)

    elif "cancel" in request.form:
        #Descarta o carrinho/Recarrega a pagina de vendas
        estoque = Estoque(request.form["nome_estoque"])
        li_li_tup = Estoque.gerar_li_li_tup(estoque)
        flash('Carrinho esvaziado','success')
        return render_template('vendas.html', li_li_tup=li_li_tup, estoque=estoque.estoque)
            
    elif "alterar" in request.form:
            
        estoque = Estoque(request.form["nome_estoque"])
        # Função DIFERENCIADA para criar os nomes ( começando por 0) das informações para o request_form
        # Mantem a quantidade de cada produto selecionado
        prod = str(estoque.mostrar_estoque()).translate({ord(c): '' for c in "[]()'"})
        prod = list(prod.split(","))

        li_li_tup = []
        y = []
        s = ["numero", "nome", "preço", "quantidade"]
        z = 0
        k = 0
        w = 0
        u = 0
        for info in prod:
            j = str(k)
            if "numero" + str(w) in request.form:
                if z == 0 and int(info) == int(request.form["numero" + str(w)]):
                    u = 1
                if z == 3 and u == 1:
                    tup = (s[z] + j, request.form["quantidade" + str(w)])
                    w = w+1
                    u = 0
                elif z == 3:
                    tup = (s[z] + j, 0)
                else :
                    tup = (s[z] + j, info)
                y.append(tup)
                if z == 3:
                    k = k + 1
                    li_li_tup.append(y)
                    y = []
                z = (z + 1) % 4
            return render_template('vendas.html', li_li_tup=li_li_tup, estoque=estoque.estoque, atualizar = True)

    elif "encerrar" in request.form:
        #Vai para a pagina de sessao_fim
        return redirect(url_for('pag_sessao_fim',info=request.form["nome_estoque"]))
def pag_estoque():
    # Metodos Get e Post para manter o nome do estoque na pagina
    if request.method == "GET":
        estoque_info = request.args.get('info')
    elif request.method == "POST":
        print('é o metodo post')
        estoque_info = request.form["nome_estoque"]
        print("Nome do estoque dento de post :",estoque_info)
    estoque = Estoque(estoque_info)
    print("Nome do estoque :",estoque.estoque)
    estoque.criar_tabela()
    # Checando de o Botão " Vendas" foi pressionado
    if "vendas" in request.form:
        return redirect(url_for('pag_vendas',info=estoque.estoque))
    if "relatorios" in request.form:
        return redirect(url_for('pag_relatorios',info=estoque.estoque))
    if "n_estoque" in request.form:
        novo_estoque = request.form["novo_estoque"]
        antigo_estoque = estoque_info
        con = Estoque.alterar_estoque(antigo_estoque,novo_estoque)
        if con:
            estoque = Estoque(novo_estoque)
            li_li_tup = Estoque.gerar_li_li_tup(estoque)
            flash('O estoque foi renomeado para {}.'.format(str(novo_estoque)), 'success')
            return render_template('estoque.html', li_li_tup=li_li_tup, estoque=estoque.estoque)
        else:
            li_li_tup = Estoque.gerar_li_li_tup(estoque)
            flash('O estoque {} já existe.'.format(str(novo_estoque)),'warning')
            return render_template('estoque.html', li_li_tup=li_li_tup, estoque=estoque.estoque)

    if request.method == "POST":
        # Checando se o Botão "Atualizar Valores" foi pressionado
        if "atualizar" in request.form:
            print("Nome do estoque dentro de 'atualizar' :",estoque.estoque)
            # Função para Atualizar a tabela
            w = 0
            for prods in estoque.mostrar_estoque():
                z = str(w)
                prod = Produto(request.form["numero" + z], request.form["nome" + z], request.form["preço" + z],
                            request.form["quantidade" + z], estoque.estoque)
                erro = prod.alterar_produto(prods[0])
                if bool(erro):
                    flash('Entrada Invalida em Produto Alterado','warning')
                    return redirect(url_for('pag_estoque', info=estoque.estoque))
                w = w + 1

            # Função para Adicionar novo produto
            prodnovo = Produto(request.form["numeron"], request.form["nomen"], request.form["preçon"],
                            request.form["quantidaden"], estoque.estoque)
            erro = prodnovo.produto_novo()
            if erro == 0:
                flash('O produto foi adicionado ao estoque.')
                return redirect(url_for('pag_estoque', info=estoque.estoque))
            elif erro == 1:
                flash('Entrada Invalida em Novo Produto','warning')
                return redirect(url_for('pag_estoque', info=estoque.estoque))

        # Função para Deletar um produto do estoque
        else:
            z = 2
            for produto in estoque.mostrar_estoque():
                y = str(z)
                #Se um botao de deletar foi pressionado
                if y in request.form:
                    del_produto = Produto(produto[0], produto[1], produto[2], produto[3], estoque.estoque)
                    del_produto.remover_produto()
                    flash('O produto foi removido do estoque.')

                z = z + 1

    li_li_tup =Estoque.gerar_li_li_tup(estoque)
    return render_template('estoque.html', li_li_tup=li_li_tup, estoque=estoque.estoque)