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()
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()
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()
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
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
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()
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()
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
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
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
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
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
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
def __init__(self): ''' Constructor ''' self.conexCompra = conex.Connection()
def retornaVendedores(self): conexao = conex.Connection() print('') conexao.query('SELECT * FROM vendedor') conexao.queryResult() conexao.close()
def verificaMeta(self, procValores): conexao = conex.Connection() conexao.callProCedure("verifica_meta_vendedor", procValores) ret = conexao.cur.fetchone() conexao.close() return ret