def selectLogin(self): try: banco = Banco() c = banco.conexao.cursor() c.execute( 'SELECT id_funcionario, nome, grupo FROM tb_funcionario WHERE nome=%s and senha=%s', (self.nome, self.senha)) result = c.fetchall() if len(result) > 0: for linha in result: self.id_funcionario = linha[0] self.nome = linha[1] self.grupo = linha[2] return True return False except Exception as e: raise Exception('Erro ao tentar validar login!', str(e)) finally: if c: c.close() if banco: banco.conexao.close()
def selectLogin(self): banco = None c = None try: banco = Banco() c = banco.conexao.cursor() _sql = 'SELECT id_cliente, nome FROM tb_cliente WHERE nome = %s AND senha = %s' _sql_data = (self.nome, self.senha) c.execute(_sql, _sql_data) result = c.fetchall() if len(result) > 0: for linha in result: self.id_cliente = linha[0] self.nome = linha[1] return True return False except Exception as e: raise Exception('Erro ao validar login de Cliente', str(e)) finally: if c: c.close() if banco: banco.conexao.close()
def insertNumeroComanda(self): try: banco = Banco() c = banco.conexao.cursor() if (self.cliente_id): c.execute( 'INSERT INTO tb_comanda(comanda, data_hora, status_pagamento, status_comanda, funcionario_id, cliente_id) VALUES(%s, %s, %s, %s, %s, %s)', (self.comanda, self.data_hora, self.status_pagamento, self.status_comanda, self.funcionario_id, self.cliente_id)) else: c.execute( 'INSERT INTO tb_comanda(comanda, data_hora, status_pagamento, status_comanda, funcionario_id) VALUES(%s, %s, %s, %s, %s)', (self.comanda, self.data_hora, self.status_pagamento, self.status_comanda, self.funcionario_id)) banco.conexao.commit() Funcoes.criaLOG('INSERT Nova Comanda', LOG.info) c.close() return 'Comanda criada com sucesso!' except Exception as e: Funcoes.criaLOG(str(e), LOG.error) raise Exception('Erro ao criar comanda', str(e))
def buscaClientePorCPF(self): banco = None c = None try: banco = Banco() c = banco.conexao.cursor() c.execute( 'SELECT id_cliente, nome, cpf, telefone, dia_fiado FROM tb_cliente WHERE cpf = %s', (self.cpf)) result = c.fetchall() if len(result) > 0: for linha in result: self.id_cliente = linha[0] self.nome = linha[1] self.cpf = linha[2] self.telefone = linha[3] self.dia_fiado = linha[4] return True else: return False except Exception as e: raise Exception('Erro ao tentar buscar cliente', str(e)) finally: if c: c.close() if banco: banco.conexao.close()
def buscaFiadosPorCliente(self, id_cliente): banco = None c = None try: banco = Banco() c = banco.conexao.cursor( pymysql.cursors.DictCursor ) #Retorna o select com um array associativo _sql = "SELECT tbc.id_comanda as ID, tbc.cliente_id as IDCliente, tbc.comanda as Numero, CONVERT(SUM(tbcp.valor_unitario*tbcp.quantidade), CHAR) as Valor, if(datediff(date(now()),tbc.data_assinatura_fiado)>30,datediff(date(now()),tbc.data_assinatura_fiado)-30,0) as 'Dias Atraso',CONVERT(if(datediff(date(now()),tbc.data_assinatura_fiado)>30,(SELECT multa_atraso FROM tb_empresa),0), CHAR) as Multa, CONVERT(if(datediff(date(now()),tbc.data_assinatura_fiado)>30,(SELECT taxa_juro_diario FROM tb_empresa)*(datediff(date(now()),tbc.data_assinatura_fiado)-30),0), CHAR) as Juros, tbc.data_assinatura_fiado as Data, tbc.status_comanda as Status_Comanda FROM tb_comanda tbc INNER JOIN tb_comanda_produto tbcp ON tbc.id_comanda = tbcp.comanda_id GROUP BY ID HAVING tbc.status_comanda = %s AND tbc.cliente_id = %s ORDER BY tbc.data_assinatura_fiado" _sql_data = (self.status_comanda, id_cliente) c.execute(_sql, _sql_data) result = c.fetchall() return result except Exception as e: raise Exception('Erro registra comanda fiado banco', str(e)) finally: if c: c.close() if banco: banco.conexao.close()
def selectOneComanda(self): try: banco = Banco() comanda = dict() c = banco.conexao.cursor() c.execute('SELECT id_comanda, produto_id, quantidade, valor_unitario, comanda, data_hora, CONVERT(SUM(valor_unitario * quantidade), CHAR) FROM tb_comanda_produto RIGHT JOIN tb_comanda ON id_comanda = comanda_id WHERE id_comanda = %s ',(self.comanda_id)) for linha in c: comanda = { 'id_comanda': linha[0], 'id_produto': linha[1], 'quantidade': linha[2], 'valor_unitario': linha[3], 'comanda': linha[4], 'data_hora': linha[5].strftime("%d/%m/%Y"),#Converte de mes-dia-ano para dia/mes/ano 'valor_total': linha[6] } c.close() return comanda except Exception as e: raise Exception('Erro ao buscar comanda!', str(e))
def update(self): banco = None c = None try: banco = Banco() c = banco.conexao.cursor() c.execute( 'UPDATE tb_empresa SET multa_atraso = %s, taxa_juro_diario = %s', (self.multa_atraso, self.taxa_juro_diario)) banco.conexao.commit() Funcoes.criaLOG('UPDATE Configurações', LOG.info) return 'Alterações salvas com sucesso!' except Exception as e: Funcoes.criaLOG(str(e), LOG.error) raise Exception('Erro ao salvar alterações', str(e)) finally: if c: c.close() if banco: banco.conexao.close()
def validaCPFExistente(self): try: banco = Banco() c = banco.conexao.cursor() c.execute('SELECT id_cliente FROM tb_cliente WHERE cpf=%s', (self.cpf)) result = c.fetchall() c.close() return result except Exception as e: raise Exception('Erro ao tentar validar CPF', str(e))
def selectAll(self): try: banco = Banco() c = banco.conexao.cursor() c.execute( 'SELECT id_funcionario, nome, matricula, grupo FROM tb_funcionario' ) result = c.fetchall() c.close() return result except Exception as e: return 'Erro ao buscar funcionários!'
def verificaSeComandaExiste(self): try: banco = Banco() c = banco.conexao.cursor() c.execute( 'SELECT id_comanda FROM tb_comanda WHERE comanda = %s AND status_comanda = %s', (self.comanda, self.status_comanda)) result = c.fetchall() return result except Exception as e: raise Exception('Erro ao buscar número da comanda', str(e))
def selectAll(self): try: banco = Banco() c = banco.conexao.cursor() c.execute( 'SELECT id_produto, nome, descricao, CONVERT(foto USING utf8), valor_unitario FROM tb_produto' ) result = c.fetchall() c.close() return result except Exception as e: return 'Erro ao buscar produtos!'
def selectAll(self): try: banco = Banco() c = banco.conexao.cursor() c.execute( 'SELECT id_cliente, nome, telefone, compra_fiado FROM tb_cliente' ) result = c.fetchall() c.close() return result except Exception as e: return str(e)
def selectValorTotalComanda(self, status_comanda): try: banco = Banco() c = banco.conexao.cursor() c.execute('SELECT SUM(valor_unitario * quantidade) FROM tb_comanda_produto INNER JOIN tb_comanda ON id_comanda = comanda_id WHERE comanda_id = %s AND status_comanda = %s ',(self.comanda_id, status_comanda)) valor_total = c.fetchone() c.close() return valor_total except Exception as e: raise Exception('Erro ao retornar valor total', str(e))
def selectComandaByStatus(self): try: banco = Banco() c = banco.conexao.cursor() c.execute( 'SELECT id_comanda , comanda, data_hora, status_pagamento, status_comanda, CONVERT(SUM(valor_unitario * quantidade), CHAR) FROM tb_comanda LEFT JOIN tb_comanda_produto ON comanda_id = id_comanda GROUP BY id_comanda HAVING status_comanda = %s ', (self.status_comanda)) result = c.fetchall() return result except Exception as e: raise Exception('Erro ao buscar comandas', str(e))
def contaComandasPorStatus(self, status_comanda): try: banco = Banco() c = banco.conexao.cursor() c.execute( 'SELECT COUNT(id_comanda) FROM tb_comanda WHERE status_comanda = %s ', (status_comanda)) result = c.fetchone() return result except Exception as e: raise Exception('Erro ao buscar comandas', str(e))
def validaMatriculaExistente(self): try: banco = Banco() c = banco.conexao.cursor() c.execute( 'SELECT id_funcionario FROM tb_funcionario WHERE matricula=%s', (self.matricula)) result = c.fetchall() c.close() return result except Exception as e: raise Exception('Erro ao tentar validar matricula', str(e))
def validaSenhaCliente(self): try: banco = Banco() c = banco.conexao.cursor() c.execute( 'SELECT id_cliente FROM tb_cliente WHERE cpf = %s AND senha = %s', (self.cpf, self.senha)) result = c.fetchall() return result except Exception as e: raise Exception('Erro ao tentar validar cliente', str(e)) finally: c.close()
def selectAllComandaDashboard(self): try: banco = Banco() c = banco.conexao.cursor() c.execute( 'SELECT id_comanda , comanda, data_hora, status_pagamento, status_comanda, SUM(valor_unitario * quantidade) FROM tb_comanda LEFT JOIN tb_comanda_produto ON comanda_id = id_comanda GROUP BY id_comanda' ) result = c.fetchall() c.close() return result except Exception as e: return str(e)
def validaClienteFiado(self): try: banco = Banco() c = banco.conexao.cursor() c.execute( 'SELECT id_cliente FROM tb_cliente where cpf = %s and compra_fiado = %s', (self.cpf, 1)) result = c.fetchall() return result except Exception as e: raise Exception('Erro ao tentar validar cliente', str(e)) finally: c.close()
def delete(self): try: banco = Banco() c = banco.conexao.cursor() c.execute('DELETE FROM tb_cliente WHERE id_cliente = %s', (self.id_cliente)) banco.conexao.commit() Funcoes.criaLOG(f'DELETE CLIENTE, id_cliente: {self.id_cliente}', LOG.info) c.close() return 'Cliente excluido com sucesso' except Exception as e: Funcoes.criaLOG(str(e), LOG.error) raise Exception('Erro ao tentar excluir cliente', str(e))
def selectProdutosPorIdComanda(self): try: banco = Banco() c = banco.conexao.cursor() c.execute( 'SELECT nome, quantidade, CONVERT(tbp.valor_unitario, CHAR), tbpc.id_comanda_produto FROM tb_produto tbp LEFT JOIN tb_comanda_produto tbpc ON id_produto = produto_id INNER JOIN tb_comanda ON id_comanda = comanda_id WHERE id_comanda = %s', (self.id_comanda)) result = c.fetchall() c.close() return result except Exception as e: raise Exception('Erro ao buscar produtos das comandas', str(e))
def insert(self): try: banco = Banco() c = banco.conexao.cursor() c.execute( 'INSERT INTO tb_cliente(nome,cpf,telefone,compra_fiado,senha,dia_fiado) VALUES(%s,%s,%s,%s,%s,%s)', (self.nome, self.cpf, self.telefone, self.compra_fiado, self.senha, self.dia_fiado)) banco.conexao.commit() Funcoes.criaLOG(f'INSERT CLIENTE, id_cliente: {c.lastrowid}', LOG.info) c.close() return 'Cliente cadastrado com sucesso!' except Exception as e: Funcoes.criaLOG(str(e), LOG.error) raise Exception('Erro ao cadastrar cliente!', str(e))
def selectComandaByNumero(self): try: banco = Banco() c = banco.conexao.cursor() c.execute( "SELECT id_comanda , comanda, status_comanda, DATE_FORMAT(data_hora, '%%d/%%m/%%Y'), CONVERT(SUM(valor_unitario*quantidade), CHAR) FROM tb_comanda LEFT JOIN tb_comanda_produto ON comanda_id = id_comanda WHERE comanda = %s AND status_comanda = %s", (self.comanda, self.status_comanda)) result = c.fetchone() c.close() return result except Exception as e: raise Exception('Erro ao buscar numero', str(e))
def buscaRecebimentoPorId(self, id_recebimento): banco = None c = None try: banco = Banco() c = banco.conexao.cursor(pymysql.cursors.DictCursor) _sql = '''SELECT tbr.valor_final, DATE_FORMAT(tbr.data_hora, '%%d/%%m/%%Y') as data_hora, tbr.id_recebimento, tbr.tipo, tbr.desconto, tbr.valor_total, tbc.id_comanda, tbcli.nome, tbc.comanda FROM tb_recebimento tbr INNER JOIN tb_comanda_recebimento tbcr ON tbcr.recebimento_id = tbr.id_recebimento INNER JOIN tb_comanda tbc ON tbcr.comanda_id = tbc.id_comanda INNER JOIN tb_cliente tbcli ON tbcli.id_cliente = tbc.cliente_id WHERE tbr.id_recebimento = %s ''' _sql_data = (id_recebimento) c.execute(_sql, _sql_data) result = c.fetchall() return result except Exception as e: raise Exception('Erro ao buscar recebimento', str(e)) finally: if c: c.close() if banco: banco.conexao.close()
def update(self): try: banco = Banco() c = banco.conexao.cursor() c.execute( 'UPDATE tb_cliente SET nome=%s,cpf=%s,telefone=%s,compra_fiado=%s,dia_fiado=%s WHERE id_cliente = %s', (self.nome, self.cpf, self.telefone, self.compra_fiado, self.dia_fiado, self.id_cliente)) banco.conexao.commit() Funcoes.criaLOG(f'UPDATE CLIENTE, id_cliente: {self.id_cliente}', LOG.info) c.close() return 'Cliente editado com sucesso!' except Exception as e: Funcoes.criaLOG(str(e), LOG.error) raise Exception('Erro ao editar cliente!', str(e))
def insertProdutoComanda(self): try: banco = Banco() c = banco.conexao.cursor() c.execute("INSERT INTO tb_comanda_produto(funcionario_id, produto_id, comanda_id, quantidade, valor_unitario) VALUES(%s, %s, %s, %s, %s)",(self.funcionario_id, self.produto_id, self.comanda_id, self.quantidade, self.valor_unitario)) banco.conexao.commit() c.close() Funcoes.criaLOG(f'Insere produtos comanda, id_comanda: {self.comanda_id}, id_produto: {self.produto_id}', LOG.info) return 'Produto adicionado com sucesso!' except Exception as e: Funcoes.criaLOG(str(e), LOG.error) raise Exception('Erro ao adicionar produto!', str(e))
def delete(self): try: banco = Banco() c = banco.conexao.cursor() c.execute('DELETE FROM tb_produto WHERE id_produto = %s', (self.id_produto)) banco.conexao.commit() Funcoes.criaLOG(f'DELETE PRODUTO, id_produto: {self.id_produto}', LOG.info) c.close() return 'Produto excluído com sucesso' except Exception as e: Funcoes.criaLOG(str(e), LOG.error) raise Exception('Erro ao excluir produto', str(e))
def update(self): try: banco = Banco() c = banco.conexao.cursor() c.execute( 'UPDATE tb_produto SET nome=%s,descricao=%s,foto=%s,valor_unitario=%s WHERE id_produto=%s', (self.nome, self.descricao, self.foto, self.valor_unitario, self.id_produto)) banco.conexao.commit() Funcoes.criaLOG(f'UPDATE PRODUTO, id_produto: {self.id_produto}', LOG.info) c.close() return 'Produto editado com sucesso!' except Exception as e: Funcoes.criaLOG(str(e), LOG.error) raise Exception('Erro ao editar produto!', str(e))
def selectOne(self): try: banco = Banco() c = banco.conexao.cursor() c.execute('SELECT comanda_id, produto_id, quantidade, valor_unitario FROM tb_comanda_produto WHERE comanda_id = %s ',(self.comanda_id)) for linha in c: self.comanda_id = linha[0] self.produto_id = linha[1] self.quantidade = linha[2] self.valor_unitario = linha[3] c.close() return 'Sucesso ao buscar comanda!' except Exception as e: raise Exception('Erro ao buscar comanda!', str(e))
def insert(self): try: banco = Banco() c = banco.conexao.cursor() c.execute( 'INSERT INTO tb_produto(nome,descricao,foto,valor_unitario) VALUES(%s,%s,%s,%s)', (self.nome, self.descricao, self.foto, self.valor_unitario)) banco.conexao.commit() Funcoes.criaLOG(f'INSERT PRODUTO, id_produto: {c.lastrowid}', LOG.info) c.close() return 'Produto cadastrado com sucesso!' except Exception as e: Funcoes.criaLOG(str(e), LOG.error) raise Exception('Erro ao cadastrar produto!', str(e))