Пример #1
0
    def procIADProduto(self, produto, operacao):
        conexao = conex.Connection()

        if operacao == "I":
            conexao.callProCedure("get_lastId_produto", ())
            codProd = conexao.cur.fetchone()
            conexao.close()
        else:
            codProd = produto.id

        procValores = (operacao, codProd, produto.nome, produto.preco_venda,
                       produto.preco_compra, produto.qtd_estoque)
        try:
            conexao = conex.Connection()
            conexao.callProCedure("insere_atualiza_deleta_produto",
                                  procValores)
            conexao.commit()
            print("Operação concluida!")
        except psycopg2.errors.lookup("23503"):
            conexao.rollBack()
            print("Não será possivel excluir este produto.")
            print("Produto associado a uma compra ou venda.")
        finally:
            if conexao is not None:
                conexao.close()
Пример #2
0
    def relatProdutosVendidos(self, params):
        conexao = conex.Connection()
        print('')
        data = pd.read_sql(
            '''SELECT vp.id_produto_produto, p.nome, sum(vp.quantidade) AS qtd_total
                            FROM venda_produto AS vp
                            INNER JOIN produto AS p ON ( p.id_produto = vp.id_produto_produto )
                            GROUP BY vp.id_produto_produto, p.nome
                            ORDER BY
                            qtd_total ''' + params[0] + " LIMIT " + params[1] +
            " ", conexao.conn)

        data = data.rename(
            {
                "id_produto_produto": "ID",
                "nome": "Nome",
                "qtd_total": "Total"
            },
            axis='columns')
        print("")
        print(
            tabulate(data,
                     showindex=False,
                     headers=data.columns,
                     numalign="left"))
        conexao.close()
Пример #3
0
    def relatComprasFornecedorPeriodo(self, dataInicial, dataFinal,
                                      cnpjFornecedor):
        conexao = conex.Connection()
        print('')

        data = pd.read_sql('''SELECT id_entrada, cnpj_fornecedor, 
                              data_compra, CAST(valor_total AS MONEY) FROM compra_entrada  
                              WHERE data_compra BETWEEN %(dinicio)s AND %(dfin)s  
                              AND cnpj_fornecedor = %(cpfForn)s ''',
                           conexao.conn,
                           params={
                               "dinicio":
                               pd.to_datetime(dataInicial, format='%Y-%m-%d'),
                               "dfin":
                               pd.to_datetime(dataFinal, format='%Y-%m-%d'),
                               "cpfForn":
                               cnpjFornecedor
                           })
        data = data.rename(
            {
                "id_entrada": "ID",
                "cnpj_fornecedor": "CNPJ Fornecedor",
                "data_compra": "Data",
                "valor_total": "Total"
            },
            axis='columns')

        print('')
        print(
            tabulate(data,
                     showindex=False,
                     headers=data.columns,
                     numalign="left"))
        conexao.close()
Пример #4
0
 def recuperaDados(self, cpf):
     conexao = conex.Connection()
     param = (cpf,)
     conexao.execute('SELECT nome, email, senha, flaggerente FROM funcionario WHERE cpf = %s', param)
     ret = conexao.cur.fetchone()
     conexao.close()
     return ret
Пример #5
0
 def verificaFuncionario(self, cpf):
     conexao = conex.Connection()
     param = (cpf,)
     conexao.execute('SELECT cpf FROM funcionario WHERE cpf = %s', param)
     ret = conexao.cur.fetchone()
     conexao.close()
     return ret
Пример #6
0
    def retornaCompraProdutos(self, idCompra):
        conexao = conex.Connection()
        print('')
        data = pd.read_sql(
            '''SELECT p.nome, cp.quantidade, CAST(p.preco_compra AS MONEY), 
                                CAST((cp.quantidade * p.preco_compra) AS MONEY) as total 
                              FROM compra_produto cp  
                              INNER JOIN produto p ON p.id_produto = cp.id_produto_produto 
                              WHERE cp.id_entrada_compra = ''' + idCompra +
            " ", conexao.conn)
        data = data.rename(
            {
                "nome": "NOME",
                "quantidade": "Quantidade",
                "preco_compra": "Preço Unit.",
                "total": "Total"
            },
            axis='columns')

        print('')
        print(
            tabulate(data,
                     showindex=False,
                     headers=data.columns,
                     numalign="left"))
        conexao.close()
Пример #7
0
    def retornaProdutos(self):
        conexao = conex.Connection()
        print("")
        data = pd.read_sql(
            '''SELECT id_produto, nome, CAST(preco_venda AS MONEY), 
                                CAST(preco_compra AS MONEY), qtd_estoque 
                              FROM produto 
                              ORDER BY id_produto ASC''', conexao.conn)
        data = data.rename(
            {
                "id_produto": "ID",
                "nome": "Nome",
                "preco_venda": "Preço Venda",
                "preco_compra": "Preço Compra",
                "qtd_estoque": "Quantidade"
            },
            axis='columns')

        print("")
        print(
            tabulate(data,
                     showindex=False,
                     headers=data.columns,
                     numalign="left"))
        conexao.close()
Пример #8
0
 def verificaGerente(self, cpf):
     conexao = conex.Connection()
     param = (cpf,)
     conexao.execute('SELECT flagGerente FROM funcionario WHERE cpf = %s', param)
     ret = conexao.cur.fetchone()
     ret = ret[0]
     conexao.close()
     return ret
Пример #9
0
 def recuperaProduto(self, idProduto):
     param = (idProduto, )
     conexao = conex.Connection()
     conexao.execute(
         '''SELECT id_produto, nome, preco_venda, preco_compra, qtd_estoque 
                         FROM produto WHERE id_produto = %s ''', param)
     ret = conexao.cur.fetchone()
     conexao.close()
     return ret
Пример #10
0
 def recuperaDados(self, cnpj):
     param = (cnpj,)
     conexao = conex.Connection()
     conexao.execute( '''SELECT nome, email, rua, numero,
                         bairro, cidade 
                         FROM fornecedor WHERE cnpj = %s ''' , param)
     ret = conexao.cur.fetchone()
     conexao.close()
     return ret
Пример #11
0
def checaUsuário(email, senha):
    param = (email, senha)
    conexao = conex.Connection()
    conexao.execute(
        "SELECT cpf, nome , email, senha, flagGerente FROM funcionario WHERE email = %s AND senha = %s",
        param)
    ret = conexao.cur.fetchone()
    conexao.close()

    return ret
Пример #12
0
 def recuperaDados(self, cpf):
     param = (cpf, )
     conexao = conex.Connection()
     conexao.execute(
         '''SELECT nome_cliente, email_cliente, rua_cliente, numero_cliente,
                         bairro_cliente, cidade_cliente 
                         FROM cliente WHERE cpf = %s ''', param)
     ret = conexao.cur.fetchone()
     conexao.close()
     return ret
Пример #13
0
 def verificaSupervisionados(self, cpfGerente):
     conexao = conex.Connection()
     print('')
     
     data = pd.read_sql('''SELECT "verifica_supervisionados"(%(cpfGerente)s);''', conexao.conn, 
                         params={"cpfGerente":cpfGerente})        
     data = data.rename({"verifica_supervisionados":"(CPF,Nome)"}, axis='columns')
     
     print('')
     print(tabulate(data, showindex=False, headers=data.columns, numalign="left"))
     conexao.close()
Пример #14
0
 def retornaFuncionarios(self):
     conexao = conex.Connection()
     print('')
     data = pd.read_sql('SELECT cpf, nome, email, flaggerente FROM funcionario', conexao.conn)        
     data = data.rename({"cpf":"CPF","nome":"Nome",
                         "email":"E-Mail", "flaggerente":"Gerente?"}, axis='columns')
     
     print("")
     print(tabulate(data, showindex=False, headers=data.columns, numalign="left"))
     conexao.close()
     
Пример #15
0
 def retornaVendas(self):
     conexao = conex.Connection()
     print('')
     data = pd.read_sql('''SELECT id_saida, cpf_funcionario_venda, cpf_cliente_venda, 
                           data_venda, CAST(valor_total AS MONEY) FROM venda''', conexao.conn)        
     data = data.rename({"id_saida":"ID","cpf_funcionario_venda":"CPF Funcionario",
                         "cpf_cliente_venda":"CPF Cliente", "data_venda":"Data", 
                         "valor_total":"Total"}, axis='columns')
     
     print('')
     print(tabulate(data, showindex=False, headers=data.columns, numalign="left"))
     conexao.close()
Пример #16
0
 def retornaFornecedores(self):
     conexao = conex.Connection()
     print('')
     data = pd.read_sql('SELECT * FROM fornecedor', conexao.conn)
     data = data.rename({"cnpj":"CNPJ","nome":"Nome",
                         "email":"E-Mail","rua":"Rua",
                         "numero":"Numero","bairro":"Bairro",
                         "cidade":"Cidade"}, axis='columns')
     
     print("")
     print(tabulate(data, showindex=False, headers=data.columns, numalign="left"))
     conexao.close()
     
Пример #17
0
 def editarMeta(self, meta, cpfVendedor):
     try:
         conexao = conex.Connection()
         param = (meta, cpfVendedor)
         conexao.execute('UPDATE vendedor SET meta = %s WHERE cpf = %s ',
                         param)
         conexao.commit()
         print("Operação concluida!")
     except (Exception, psycopg2.DatabaseError) as error:
         conexao.rollBack()
         print(error)
     finally:
         if conexao is not None:
             conexao.close()
Пример #18
0
 def procIADFuncionario(self, funcionario, operacao, cpfGerente):
     procValores = (operacao, cpfGerente, funcionario.cpf, funcionario.nome, 
                    funcionario.email, funcionario.senha, funcionario.flagGerente)
     
     conexao = conex.Connection()
     try:
         conexao.callProCedure("insere_atualiza_deleta_funcionario" , procValores)
         conexao.commit()
         print("Operação concluida!")
     except (Exception, psycopg2.DatabaseError) as error:
         conexao.rollBack()
         print(error)
     finally:
         if conexao is not None:
             conexao.close()
Пример #19
0
 def procIADFornecedor(self, fornecedor, operacao):
     procValores = (operacao, fornecedor.cnpj, fornecedor.nome, 
                    fornecedor.email, fornecedor.rua, fornecedor.numero,
                    fornecedor.bairro, fornecedor.cidade)
     
     conexao = conex.Connection()
     try:
         conexao.callProCedure("insere_atualiza_deleta_fornecedor" , procValores)
         conexao.commit()
         print("Operação concluida!")
     except (Exception, psycopg2.DatabaseError) as error:
         conexao.rollBack()
         print(error)
     finally:
         if conexao is not None:
             conexao.close()
Пример #20
0
 def relatVendasPeriodo(self, dataInicial, dataFinal):
     conexao = conex.Connection()
     print('')
     
     data = pd.read_sql('''SELECT id_saida, cpf_funcionario_venda, cpf_cliente_venda, 
                           data_venda, CAST(valor_total AS MONEY) FROM venda 
                           WHERE data_venda BETWEEN %(dinicio)s AND %(dfin)s ''', conexao.conn, 
                         params={"dinicio":pd.to_datetime(dataInicial, format='%Y-%m-%d'), 
                                 "dfin":pd.to_datetime(dataFinal, format='%Y-%m-%d')})        
     data = data.rename({"id_saida":"ID","cpf_funcionario_venda":"CPF Funcionario",
                         "cpf_cliente_venda":"CPF Cliente", "data_venda":"Data", 
                         "valor_total":"Total"}, axis='columns')
     
     print('')
     print(tabulate(data, showindex=False, headers=data.columns, numalign="left"))
     conexao.close()
Пример #21
0
 def relTotVendasFuncionarioPeriodo(self, dataInicial, dataFinal, cpfFuncionario):
     conexao = conex.Connection()
     print('')
     
     data = pd.read_sql('''SELECT f.nome, CAST(SUM(v.valor_total) AS MONEY) AS total FROM venda v 
                           INNER JOIN funcionario f ON f.cpf = v.cpf_funcionario_venda
                           WHERE v.data_venda BETWEEN %(dinicio)s AND %(dfin)s 
                           AND v.cpf_funcionario_venda = %(cpfFunc)s 
                           GROUP BY f.nome, v.cpf_funcionario_venda''', conexao.conn, 
                         params={"dinicio":pd.to_datetime(dataInicial, format='%Y-%m-%d'), 
                                 "dfin":pd.to_datetime(dataFinal, format='%Y-%m-%d'), 
                                 "cpfFunc":cpfFuncionario})        
     data = data.rename({"nome":"Nome","total":"Total"}, axis='columns')
     
     print('')
     print(tabulate(data, showindex=False, headers=data.columns, numalign="left"))
     conexao.close()            
Пример #22
0
    def procIADCliente(self, cliente, operacao):
        procValores = (operacao, cliente.cpf, cliente.nome, cliente.email,
                       cliente.rua, cliente.numero, cliente.bairro,
                       cliente.cidade)

        conexao = conex.Connection()

        try:
            conexao.callProCedure("insere_atualiza_deleta_cliente",
                                  procValores)
            conexao.commit()
            print("Operação concluida!")
        except (Exception, psycopg2.DatabaseError) as error:
            conexao.rollBack()
            print(error)
        finally:
            if conexao is not None:
                conexao.close()
Пример #23
0
 def insereVenda(self, venda):
     try:        
         procValores = (venda.cpfFuncionario, venda.cpfCliente, venda.dataVenda, venda.valorTotal)
         conexao = conex.Connection()
         conexao.callProCedure("insere_venda" , procValores)
         codVenda = conexao.cur.fetchone()
         
         procValores = None
         for produto in venda.produtosVenda:
             procValores = (produto.id, codVenda, produto.quantidade)
             conexao.execute('''INSERT INTO venda_produto(id_produto_produto, id_saida_venda, quantidade) 
                                 VALUES(%s,%s,%s)''', procValores)
             
         conexao.commit()
         print("Operação concluida!")
     except (Exception, psycopg2.DatabaseError) as error:
         conexao.rollBack()
         print(error)
     finally:
         if conexao is not None:
             conexao.close()
Пример #24
0
    def retornaClientes(self):
        conexao = conex.Connection()
        data = pd.read_sql('SELECT * FROM cliente', conexao.conn)
        data = data.rename(
            {
                "cpf": "CPF",
                "nome_cliente": "Nome",
                "email_cliente": "E-Mail",
                "rua_cliente": "Rua",
                "numero_cliente": "Numero",
                "bairro_cliente": "Bairro",
                "cidade_cliente": "Cidade"
            },
            axis='columns')

        print("")
        print(
            tabulate(data,
                     showindex=False,
                     headers=data.columns,
                     numalign="left"))
        conexao.close()
Пример #25
0
    def retornaCompras(self):
        conexao = conex.Connection()
        print('')
        data = pd.read_sql(
            '''SELECT id_entrada, cnpj_fornecedor, 
                              data_compra, CAST(valor_total AS MONEY) FROM compra_entrada''',
            conexao.conn)
        data = data.rename(
            {
                "id_entrada": "ID",
                "cnpj_fornecedor": "CNPJ Fornecedor",
                "data_compra": "Data",
                "valor_total": "Total"
            },
            axis='columns')

        print('')
        print(
            tabulate(data,
                     showindex=False,
                     headers=data.columns,
                     numalign="left"))
        conexao.close()
Пример #26
0
    def insereCompra(self, compra):
        try:
            procValores = (compra.cnpjFornecedor, compra.dataCompra,
                           compra.valorTotal)
            conexao = conex.Connection()
            conexao.callProCedure("insere_compra", procValores)
            codCompra = conexao.cur.fetchone()

            procValores = None
            for produto in compra.produtosCompra:
                procValores = (produto.id, codCompra, produto.qtd_estoque)
                conexao.execute(
                    'INSERT INTO compra_produto(id_produto_produto, id_entrada_compra, quantidade) VALUES(%s,%s,%s)',
                    procValores)

            conexao.commit()
            print("Operação concluida!")
        except (Exception, psycopg2.DatabaseError) as error:
            conexao.rollBack()
            print(error)
        finally:
            if conexao is not None:
                conexao.close()
Пример #27
0
    def retornaMeta(self, cpfVendedor):
        conexao = conex.Connection()
        print('')

        data = pd.read_sql(
            '''SELECT v.cpf, f.nome, CAST(v.meta AS MONEY) FROM vendedor v
                              INNER JOIN funcionario f ON f.cpf = v.cpf
                              WHERE v.cpf = %(cpfVendedor)s;''',
            conexao.conn,
            params={"cpfVendedor": cpfVendedor})
        data = data.rename({
            "cpf": "CPF",
            "nome": "Nome",
            "meta": "Meta"
        },
                           axis='columns')

        print('')
        print(
            tabulate(data,
                     showindex=False,
                     headers=data.columns,
                     numalign="left"))
        conexao.close()
Пример #28
0
 def __init__(self):
     '''
     Constructor
     '''
     self.conexCompra = conex.Connection()
Пример #29
0
 def retornaVendedores(self):
     conexao = conex.Connection()
     print('')
     conexao.query('SELECT * FROM vendedor')
     conexao.queryResult()
     conexao.close()
Пример #30
0
 def verificaMeta(self, procValores):
     conexao = conex.Connection()
     conexao.callProCedure("verifica_meta_vendedor", procValores)
     ret = conexao.cur.fetchone()
     conexao.close()
     return ret