def search_codigo(self, codigo): try: livro = self.session.query(Livro).filter( Livro.codigo == codigo, Livro.ativo == True).first() return livro except Exception as e: raise DaoException('Erro ao Buscar Todos - Contatar o ADM')
def search_id(self, Entidade, id): try: entidade = self.session.query(Entidade).filter( Entidade.id == id).first() return entidade except Exception as e: raise DaoException('Erro ao Buscar - Contatar ADM')
def search_login(self, login): try: cliente = self.session.query(Cliente).filter( Cliente.login == login, Cliente.ativo == True).first() return cliente except Exception as e: raise DaoException( 'Erro ao Buscar Cliente Por Login- Contatar o ADM')
def search_cpf(self, cpf): try: cliente = self.session.query(Cliente).filter( Cliente.cpf == cpf, Cliente.ativo == True).first() return cliente except Exception as e: raise DaoException( 'Erro ao Buscar Cliente Por CPF- Contatar o ADM')
def remove(self, entidade): try: entidade.ativo = False self.update() # self.session.delete(entidade) # self.session.commit() except Exception as e: self.session.rollback() raise DaoException('Erro ao Remover - Contatar ADM')
def create(self, entidade): try: self.session.add(entidade) self.session.commit() self.session.refresh(entidade) return entidade.id except Exception as e: self.session.rollback() raise DaoException('Erro ao Salvar - Contatar ADM')
def search_id_cliente(self, id): try: reservas = self.session.query(Reserva, Cliente, Livro).filter( Reserva.id_cliente == Cliente.id, Reserva.id_livro == Livro.id, Cliente.id == id, Reserva.ativo == True).all() return reservas except Exception as e: raise DaoException( 'Erro ao Buscar Reservas Por Cliente - Contatar o ADM')
def create(self, entidade): try: entidade.senha = bcrypt.hashpw(entidade.senha.encode('utf-8'), salt) entidade.senha = entidade.senha.decode("utf-8") return super().create(entidade) except Exception as e: raise DaoException('Erro ao Cadastrar Cliente - Contatar o ADM')
def update(self, entidade): try: if entidade.senha[0] != '$': entidade.senha = bcrypt.hashpw(entidade.senha.encode('utf-8'), salt) entidade.senha = entidade.senha.decode("utf-8") return super().update() except Exception as e: raise DaoException('Erro ao Atualizar Cliente - Contatar o ADM')
def login(self, login, senha): try: senha = bcrypt.hashpw(senha.encode('utf-8'), salt) senha = senha.decode('utf-8') usuario = self.session.query(Cliente).filter(Usuario.login==login, Usuario.senha == senha, Usuario.ativo==True).first() if usuario == None: usuario = self.session.query(Funcionario).filter(Usuario.login == login, Usuario.senha == senha, Usuario.ativo == True).first() return usuario except Exception as e: raise DaoException('Erro ao Realizar Login - Contatar o ADM')
def search_search(self, busca): try: clientes = self.session.query(Funcionario).filter( db.or_( Funcionario.login.ilike('%' + busca + '%'), Funcionario.email.ilike('%' + busca + '%'), Funcionario.cargo.ilike('%' + busca + '%'), Funcionario.nome.ilike('%' + busca + '%'), ), Funcionario.ativo == True).all() return clientes except Exception as e: raise DaoException('Erro ao Buscar Clientes- Contatar o ADM')
def search_search(self, busca): try: livros = self.session.query(Livro).filter( db.or_(Livro.codigo.ilike('%' + busca + '%'), Livro.titulo.ilike('%' + busca + '%'), Livro.editora.ilike('%' + busca + '%'), Livro.autor.ilike('%' + busca + '%'), Livro.disponivel.ilike('%' + busca + '%'), Livro.quantidade.ilike('%' + busca + '%'), Livro.ano.ilike('%' + busca + '%')), Livro.ativo == True).all() return livros except Exception as e: raise DaoException('Erro ao Buscar Todos - Contatar o ADM')
def search_search(self, busca): print(busca) try: contas = self.session.query(Conta).filter( db.or_(Conta.data_efetuada.ilike('%' + busca + '%'), Conta.data_paga.ilike('%' + busca + '%'), Conta.data_pagamento.ilike('%' + busca + '%'), Conta.id_aluga.ilike('%' + busca + '%'), Conta.multa.ilike('%' + busca + '%'), Conta.valor_total.ilike('%' + busca + '%')), ).all() print(contas) return contas except Exception as e: raise DaoException('Erro ao Buscar Todos - Contatar o ADM')
def search_search(self, busca): try: clientes = self.session.query(Cliente).filter( db.or_( Cliente.login.ilike('%' + busca + '%'), Cliente.email.ilike('%' + busca + '%'), Cliente.cpf.ilike('%' + busca + '%'), Cliente.telefone.ilike('%' + busca + '%'), Cliente.nome.ilike('%' + busca + '%'), ), Cliente.ativo == True).all() return clientes except Exception as e: raise DaoException('Erro ao Buscar Clientes- Contatar o ADM')
def search_search(self, busca): try: alugados = self.session.query(Aluga, Cliente, Livro).filter( db.or_( Cliente.nome.ilike('%' + busca + '%'), Cliente.cpf.ilike('%' + busca + '%'), Cliente.email.ilike('%' + busca + '%'), Livro.titulo.ilike('%' + busca + '%'), Livro.titulo.ilike('%' + busca + '%'), Livro.autor.ilike('%' + busca + '%'), Livro.codigo.ilike('%' + busca + '%'), Livro.editora.ilike('%' + busca + '%'), Aluga.data_locacao.ilike('%' + busca + '%'), Aluga.data_devolucao.ilike('%' + busca + '%'), ), Aluga.id_livro == Livro.id, Aluga.id_cliente == Cliente.id).all() return alugados except Exception as e: raise DaoException('Erro ao Buscar Locações - Contatar o ADM')
def search_id_cliente(self, id): try: alugados = self.session.query(Aluga, Cliente, Livro).filter( Aluga.id_cliente == Cliente.id, Aluga.id_livro == Livro.id, Cliente.id == id, Aluga.id_funcionario == Funcionario.id, Aluga.data_devolucao > date.today(), Aluga.ativo == True).all() if len(alugados) > 0: temp = self.session.query(Funcionario).filter( Aluga.id_cliente == Cliente.id, Aluga.id_livro == Livro.id, Aluga.id_funcionario == Funcionario.id, Cliente.id == id, Aluga.data_devolucao > date.today(), Aluga.ativo == True).all() mds = [alugados[0][0], alugados[0][1], alugados[0][2], temp[0]] return mds else: return alugados except Exception as e: raise DaoException('Erro ao Buscar Locações - Contatar o ADM')
def search_id(self, id): try: return super().search_id(Livro, id) except Exception as e: raise DaoException('Erro ao Buscar - Contatar o ADM')
def search_all(self): try: return super().search_all(Livro) except Exception as e: raise DaoException('Erro ao Buscar Todos - Contatar o ADM')
def update(self): try: self.session.commit() except Exception as e: self.session.rollback() raise DaoException('Erro ao Atualizar - Contatar ADM')
def search_id(self, id): try: entidade = super().search_id(Cliente, id) return entidade except Exception as e: raise DaoException('Erro ao Buscar - Contatar o ADM')
def search_all(self, Entidade): try: list = self.session.query(Entidade).all() return list except Exception as e: raise DaoException('Erro ao Buscar - Contatar ADM')