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()
Пример #2
0
    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()
Пример #3
0
    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))
Пример #4
0
    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()
Пример #5
0
    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()
Пример #6
0
    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))
Пример #7
0
    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()
Пример #8
0
    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!'
Пример #10
0
    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))
Пример #11
0
    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!'
Пример #12
0
    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)
Пример #13
0
    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))
Пример #14
0
    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))
Пример #15
0
    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))
Пример #17
0
    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()
Пример #18
0
    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)
Пример #19
0
    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()
Пример #20
0
    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))
Пример #21
0
    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))
Пример #22
0
    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))
Пример #23
0
    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))
Пример #24
0
    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()
Пример #25
0
    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))
Пример #26
0
    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))
Пример #27
0
    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))
Пример #28
0
    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))
Пример #29
0
    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))
Пример #30
0
    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))