Esempio n. 1
0
    def __init__(self):
        self.tela_bibliotecario = Tela_bibliotecario()
        self.bd_livro = LivroDAO()
        self.selected_livro = None
        self.current_livro = Livro()

        self.bd_cliente = ClienteDAO()
        self.selected_cliente = None
        self.current_cliente = Cliente()

        self.bd_emprestimo = EmprestimoDAO()
Esempio n. 2
0
    def __init__(self):
        self.tela_emprestimo_devolucao = Tela_emprestimo_devolucao()
        self.bd_cliente = ClienteDAO()
        self.bd_emprestimo = EmprestimoDAO()
        self.bd_livro = LivroDAO()

        self.selected = None

        self.current_cliente = Cliente()
        self.current_cliente_verifica = Cliente()
        self.current_livro = Livro()
Esempio n. 3
0
class Controle_tela_cliente_login():
    '''Classe para controlar a tela de login do cliente'''
    def __init__(self):
        self.tela_cliente_login = Tela_cliente_login()
        self.bd_cliente = ClienteDAO()
        self.current_cliente = Cliente()   

    def voltar_tela(self):
        '''metodo para sair da tela'''
        self.bd_cliente.close()
        self.tela_cliente_login.janela.destroy()
        Controle_tela_inicial().start()

    def __fill_current_cliente(self):
        '''metodo para pegar oque foi digitado nos widgets ENTRY da tela'''
        global login_globlal 
        login_globlal = self.tela_cliente_login.ent_login.get()
        self.current_cliente.login = self.tela_cliente_login.ent_login.get()
        self.current_cliente.senha = self.tela_cliente_login.ent_senha.get()

    def fazer_login(self):
        '''metodo para fazer login como cliente'''
        try:
            self.__fill_current_cliente()
            if(self.current_cliente.login == '' or self.current_cliente.senha == ''):
                tkinter.messagebox.showinfo('Aviso!', 'PRENCHA OS CAMPOS !')
            else:
                rows = self.bd_cliente.search(self.current_cliente) #rows é um lista[]
                if (rows == []):
                    tkinter.messagebox.showinfo('Aviso!', 'DADOS INVALIDOS !')
                else:
                    self.bd_cliente.close()
                    self.tela_cliente_login.janela.destroy()
                    Controle_tela_cliente().start()
        except Exception as e:
            print(e)

    def fazer_cadastro(self):
        '''metodo que abre a tela para fazer o cadastro do cliente'''
        self.tela_cliente_login.janela.destroy() 
        Controle_tela_cliente_registrar().start()

    def start(self):
        '''Inicia a tela de login do cliente e os eventos dos botoes'''
        self.tela_cliente_login.btn_voltar_tela.configure(command = self.voltar_tela)
        self.tela_cliente_login.btn_login.configure(command = self.fazer_login)
        self.tela_cliente_login.btn_cadastro.configure(command = self.fazer_cadastro)
        self.tela_cliente_login.iniciar()
Esempio n. 4
0
class Controle_tela_cliente_registrar():
    '''Classe para controlar a tela do cliente para fazer o cadastro'''
    def __init__(self):
        self.tela_cliente_registrar = Tela_cliente_registrar()
        self.bd_cliente = ClienteDAO()
        self.current_cliente = Cliente()

    def __fill_current_cliente(self):
        '''metodo para pegar oque foi digitado nos widgets ENTRY da tela'''
        self.current_cliente.nome = self.tela_cliente_registrar.ent_nome_cliente.get()
        self.current_cliente.sobrenome = self.tela_cliente_registrar.ent_sobrenome_cliente.get()
        self.current_cliente.cpf = self.tela_cliente_registrar.ent_cpf_clienteo.get()
        self.current_cliente.email = self.tela_cliente_registrar.ent_email_cliente.get()
        self.current_cliente.login = self.tela_cliente_registrar.ent_login_cliente.get()
        self.current_cliente.senha = self.tela_cliente_registrar.ent_senha_cliente.get()
        
    def confirmar_registro(self):
        '''metodo para fazer o cadastro do cliente no sistema'''
        try:
            self.__fill_current_cliente()
            if (self.current_cliente.nome == '' or self.current_cliente.sobrenome == '' or self.current_cliente.cpf == '' or self.current_cliente.email == '' or self.current_cliente.login == '' or self.current_cliente.senha == ''):
                tkinter.messagebox.showinfo('Aviso!', 'PRENCHA OS CAMPOS !')
            else:
                rows = self.bd_cliente.search_login(self.current_cliente) 
                if (rows == []):
                    self.bd_cliente.insert(self.current_cliente)
                    self.bd_cliente.close()
                    self.tela_cliente_registrar.janela.destroy() 
                    Controle_tela_cliente_login().start()
                else:
                    tkinter.messagebox.showinfo('Aviso!', 'LOGIN JA EXISTENTE, TENTE OUTRO !')
        except Exception as e:
            print(e)

    def voltar_tela(self):
        '''volta para a tela de login'''
        self.bd_cliente.close()
        self.tela_cliente_registrar.janela.destroy() 
        Controle_tela_cliente_login().start()        

    def start(self):
        '''Inicia a tela de login do cliente/registrar e os eventos dos botoes'''
        self.tela_cliente_registrar.bnt_registrar_cliente.configure(command = self.confirmar_registro)
        self.tela_cliente_registrar.btn_sair.configure(command = self.voltar_tela)
        self.tela_cliente_registrar.iniciar()
Esempio n. 5
0
 def __init__(self):
     self.tela_cliente_login = Tela_cliente_login()
     self.bd_cliente = ClienteDAO()
     self.current_cliente = Cliente()   
Esempio n. 6
0
 def __init__(self):
     self.tela_cliente_registrar = Tela_cliente_registrar()
     self.bd_cliente = ClienteDAO()
     self.current_cliente = Cliente()
Esempio n. 7
0
class Controle_tela_cliente():
    '''Classe para controlar a tela do cliente depois de feito o login'''
    def __init__(self):
        self.tela_cliente = Tela_cliente()
        self.bd_cliente = ClienteDAO()
        self.bd_emprestimo = EmprestimoDAO()
        self.current_livro = Livro()
        self.selected_livro = None

    def sair(self):
        '''metodo para sair da tela'''
        self.bd_cliente.close()
        self.bd_emprestimo.close()
        self.tela_cliente.janela.destroy()
        Controle_tela_cliente_login().start()

    def __fill_current_livro(self):
        '''metodo para pegar oque foi digitado nos widgets ENTRY da tela'''
        self.current_livro.id_livro = self.tela_cliente.ent_id_livro.get()
        self.current_livro.nome = self.tela_cliente.ent_nome_livro.get()
        self.current_livro.genero = self.tela_cliente.ent_genero_livro.get()
        self.current_livro.autor = self.tela_cliente.ent_autor_livro.get()
        self.current_livro.area = self.tela_cliente.ent_area_livro.get()
        self.current_livro.editora = self.tela_cliente.ent_editora_livro.get()
        self.current_livro.edicao = self.tela_cliente.ent_edicao_livro.get()

    def __fill_current_livro_cliente(self):
        '''metodo para pegar oque foi digitado nos widgets ENTRY da tela'''
        self.current_livro.id_livro = self.tela_cliente.ent_id_livro_cliente.get()
    
    def pesquisar_livro(self):
        '''metodo para pesquisar livros da biblioteca'''
        self.tela_cliente.list.delete(0, END)
        self.__fill_current_livro()
        try:
            rows = self.bd_cliente.search_livro(self.current_livro)
            for r in rows:
                self.tela_cliente.list.insert(END, r)
        except Exception as e:
            print(e)

    def ver_livros(self):
        '''metodo para ver os livros que o cliente possui'''
        self.tela_cliente.list_cliente.delete(0, END)
        self.login = login_globlal
        try:
            rows = self.bd_emprestimo.search_cliente_ver_livro_emprestado(self.login)
            for r in rows:
                self.tela_cliente.list_cliente.insert(END, r[:8])
        except Exception as e:
            print(e)

    def get_selected_row_livro(self, event):
        "método que seleciona na listbox e popula os campos de input"
        if self.tela_cliente.list_cliente.curselection():
            index = self.tela_cliente.list_cliente.curselection()[0]        
            self.selected_livro = self.tela_cliente.list_cliente.get(index)
            self.tela_cliente.ent_id_livro_cliente.delete(0, END)
            self.tela_cliente.ent_id_livro_cliente.insert(END, self.selected_livro[1])

    def ver_prazo(self):####
        '''metodo para cliente ver o prazo de devoluçao'''
        self.__fill_current_livro_cliente()
        try:
            if(self.current_livro.id_livro == ''):
                tkinter.messagebox.showinfo('Aviso!', 'PRENCHA O CAMPO ID !')
            else:
                rows = self.bd_emprestimo.search_cliente_ver_livro_emprestado_prazo(self.current_livro)
                if (rows == []):
                    tkinter.messagebox.showinfo('Aviso!', 'ID DO LIVRO ERRADO!')
                else:
                    tkinter.messagebox.showinfo('PRAZO DE DEVOLUÇÃO', 'LIVRO {}!\nNome: {} \nAutor: {}\nArea: {}\nData de emprestimo: {}\nData de devoluçao: {}'
                    .format(self.current_livro.id_livro, rows[0][2], rows[0][4], rows[0][5], rows[0][9], rows[0][10]))
        except Exception as e:
            print(e)


    def start(self):
        '''Inicia a tela do cliente e os eventos dos botoes'''
        self.tela_cliente.list_cliente.bind('<<ListboxSelect>>', self.get_selected_row_livro)
        self.tela_cliente.btn_pesquisar.configure(command = self.pesquisar_livro)
        self.tela_cliente.btn_ver_livros.configure(command = self.ver_livros)
        self.tela_cliente.btn_ver_prazo.configure(command = self.ver_prazo)####
        self.tela_cliente.btn_sair.configure(command = self.sair)
        self.tela_cliente.iniciar()
Esempio n. 8
0
class Controle_tela_bibliotecario():
    '''Classe para controlar a tela do bibliotecario  depois de feito o login'''
    def __init__(self):
        self.tela_bibliotecario = Tela_bibliotecario()
        self.bd_livro = LivroDAO()
        self.selected_livro = None
        self.current_livro = Livro()

        self.bd_cliente = ClienteDAO()
        self.selected_cliente = None
        self.current_cliente = Cliente()

        self.bd_emprestimo = EmprestimoDAO()

    def fechar_janela(self):
        '''metodo para sair da tela'''
        self.bd_livro.close()
        self.bd_cliente.close()
        self.bd_emprestimo.close()
        self.tela_bibliotecario.janela.destroy()
        Controle_tela_bibliotecario_login().start()

    def emprestimo_devolucao(self):
        '''metodo para abrir janela de emprestimo e devoluçao de livro'''
        self.bd_livro.close()
        self.bd_cliente.close()
        self.tela_bibliotecario.janela.destroy()
        Controle_tela_emprestimo_devolucao().start()

    def criar_acesso_cliente(self):
        '''metodo para criar acesso do cliente no sistema'''
        id = self.selected_cliente[0]
        self.__fill_current_cliente()
        if (self.current_cliente.senha == ''):
            tkinter.messagebox.showinfo('Aviso!', 'SENHA NAO PODE SER VAZIA!')
        else:
            self.bd_cliente.update(id,self.current_cliente)
            self.ver_todos_cliente()
            

    def retirar_acesso_cliente(self):
        '''metodo para retirar acesso do cliente no sistema'''
        id = self.selected_cliente[0]
        self.__fill_current_cliente()
        if (self.current_cliente.nome == '' or self.current_cliente.sobrenome == '' or self.current_cliente.cpf == '' or self.current_cliente.email == '' or self.current_cliente.login == ''):
            tkinter.messagebox.showinfo('Aviso!', 'APAGUE APENAS A SENHA!')
        else:
            self.bd_cliente.update(id,self.current_cliente)
            self.ver_todos_cliente()

    def get_selected_row_cliente(self, event):
        "método que seleciona na listbox e popula os campos de input"
        if self.tela_bibliotecario.list_cliente.curselection():
            index = self.tela_bibliotecario.list_cliente.curselection()[0]        
            self.selected_cliente = self.tela_bibliotecario.list_cliente.get(index)
            self.tela_bibliotecario.ent_nome_cliente.delete(0, END)
            self.tela_bibliotecario.ent_nome_cliente.insert(END, self.selected_cliente[1])
            self.tela_bibliotecario.ent_sobrenome_cliente.delete(0, END)
            self.tela_bibliotecario.ent_sobrenome_cliente.insert(END, self.selected_cliente[2])
            self.tela_bibliotecario.ent_cpf_clienteo.delete(0, END)
            self.tela_bibliotecario.ent_cpf_clienteo.insert(END, self.selected_cliente[3])
            self.tela_bibliotecario.ent_email_cliente.delete(0, END)
            self.tela_bibliotecario.ent_email_cliente.insert(END, self.selected_cliente[4])
            self.tela_bibliotecario.ent_login_cliente.delete(0, END)
            self.tela_bibliotecario.ent_login_cliente.insert(END, self.selected_cliente[5])
            self.tela_bibliotecario.ent_senha_cliente.delete(0, END)
            self.tela_bibliotecario.ent_senha_cliente.insert(END, self.selected_cliente[6])
            
    def get_selected_row_livro(self, event):
        "método que seleciona na listbox e popula os campos de input"
        if self.tela_bibliotecario.list_livro.curselection():
            index = self.tela_bibliotecario.list_livro.curselection()[0]        
            self.selected_livro = self.tela_bibliotecario.list_livro.get(index)
            self.tela_bibliotecario.ent_id_livro.delete(0, END)
            self.tela_bibliotecario.ent_id_livro.insert(END, self.selected_livro[1])
            self.tela_bibliotecario.ent_nome_livro.delete(0, END)
            self.tela_bibliotecario.ent_nome_livro.insert(END, self.selected_livro[2])
            self.tela_bibliotecario.ent_genero_livro.delete(0, END)
            self.tela_bibliotecario.ent_genero_livro.insert(END, self.selected_livro[3])
            self.tela_bibliotecario.ent_autor_livro.delete(0, END)
            self.tela_bibliotecario.ent_autor_livro.insert(END, self.selected_livro[4])
            self.tela_bibliotecario.ent_area_livro.delete(0, END)
            self.tela_bibliotecario.ent_area_livro.insert(END, self.selected_livro[5])
            self.tela_bibliotecario.ent_editora_livro.delete(0, END)
            self.tela_bibliotecario.ent_editora_livro.insert(END, self.selected_livro[6])
            self.tela_bibliotecario.ent_edicao_livro.delete(0, END)
            self.tela_bibliotecario.ent_edicao_livro.insert(END, self.selected_livro[7])

    def __fill_current_livro(self):
        '''metodo para pegar oque foi digitado nos widgets ENTRY da tela'''
        self.current_livro.id_livro = self.tela_bibliotecario.ent_id_livro.get()
        self.current_livro.nome = self.tela_bibliotecario.ent_nome_livro.get()
        self.current_livro.genero = self.tela_bibliotecario.ent_genero_livro.get()
        self.current_livro.autor = self.tela_bibliotecario.ent_autor_livro.get()
        self.current_livro.area = self.tela_bibliotecario.ent_area_livro.get()
        self.current_livro.editora = self.tela_bibliotecario.ent_editora_livro.get()
        self.current_livro.edicao = self.tela_bibliotecario.ent_edicao_livro.get()

    def __fill_current_cliente(self):
        '''metodo para pegar oque foi digitado nos widgets ENTRY da tela'''
        self.current_cliente.nome = self.tela_bibliotecario.ent_nome_cliente.get()
        self.current_cliente.sobrenome = self.tela_bibliotecario.ent_sobrenome_cliente.get()
        self.current_cliente.cpf = self.tela_bibliotecario.ent_cpf_clienteo.get()
        self.current_cliente.email = self.tela_bibliotecario.ent_email_cliente.get()
        self.current_cliente.login = self.tela_bibliotecario.ent_login_cliente.get()
        self.current_cliente.senha = self.tela_bibliotecario.ent_senha_cliente.get()
        
    def cadastro_livro(self):
        '''metodo para cadastrar livro no sistema'''
        self.__fill_current_livro()
        try:
            rows = self.bd_livro.search_livro_id(self.current_livro)
            if (rows != []):
                tkinter.messagebox.showinfo('Aviso!', 'ESSE ID JA FOI CADASTRADO!')
            else:
                self.bd_livro.insert(self.current_livro)
                self.ver_todos_livro()
        except Exception as e:
            print(e)

    def retirar_livro(self):
        '''metodo para retirar livro no sistema'''
        id = self.selected_livro[0]
        self.__fill_current_livro()
        try:
            rows = self.bd_emprestimo.verificar_emprestimo(self.current_livro)
            if (rows != []):
                tkinter.messagebox.showinfo('Aviso!', 'LIVRO ESTA EMPRESTADO!')
            else:
                self.bd_livro.delete(id)
                self.ver_todos_livro()
        except Exception as e:
            print(e)

    def ver_todos_livro(self):
        '''metodo que visualiza todos os livros'''
        try:
            rows = self.bd_livro.view()
            self.tela_bibliotecario.list_livro.delete(0, END)
            for r in rows:
                self.tela_bibliotecario.list_livro.insert(END, r)
        except Exception as e:
            print(e)        

    def ver_todos_cliente(self):
        '''metodo para vizualizar todos os cliente'''
        try:
            rows = self.bd_cliente.view()
            self.tela_bibliotecario.list_cliente.delete(0, END)
            for r in rows:
                self.tela_bibliotecario.list_cliente.insert(END, r)
        except Exception as e:
            print(e)

    def start(self):
        '''Inicia a tela do bibliotecario  e os eventos dos botoes'''
        self.tela_bibliotecario.list_livro.bind('<<ListboxSelect>>', self.get_selected_row_livro)
        self.tela_bibliotecario.list_cliente.bind('<<ListboxSelect>>', self.get_selected_row_cliente)
        self.tela_bibliotecario.btn_fechar.configure(command = self.fechar_janela)
        self.tela_bibliotecario.btn_realizar_emprestimo_devolucao.configure(command = self.emprestimo_devolucao)
        self.tela_bibliotecario.btn_criar_acesso_cliente.configure(command = self.criar_acesso_cliente)
        self.tela_bibliotecario.btn_retirar_acesso_cliente.configure(command = self.retirar_acesso_cliente)
        self.tela_bibliotecario.btn_ver_todos_cliente.configure(command = self.ver_todos_cliente)
        self.tela_bibliotecario.btn_cadastro_livro.configure(command = self.cadastro_livro)
        self.tela_bibliotecario.btn_retirar_livro.configure(command = self.retirar_livro)
        self.tela_bibliotecario.btn_ver_todos_livros.configure(command = self.ver_todos_livro)
        self.tela_bibliotecario.iniciar()
Esempio n. 9
0
class Controle_tela_emprestimo_devolucao():
    '''Classe para controlar a tela de emprestimo e devolucao do livro'''
    def __init__(self):
        self.tela_emprestimo_devolucao = Tela_emprestimo_devolucao()
        self.bd_cliente = ClienteDAO()
        self.bd_emprestimo = EmprestimoDAO()
        self.bd_livro = LivroDAO()

        self.selected = None

        self.current_cliente = Cliente()
        self.current_cliente_verifica = Cliente()
        self.current_livro = Livro()

    def __fill_current_cliente_login_senha_emprestimo(self):
        '''metodo para pegar oque foi digitado nos widgets ENTRY da tela'''
        self.current_cliente_verifica.login = self.tela_emprestimo_devolucao.ent_login_cliente_emprestimo.get()
        self.current_cliente_verifica.senha = self.tela_emprestimo_devolucao.ent_senha_cliente_emprestimo.get()

    def __fill_current_cliente_emprestimo(self):
        '''metodo para pegar oque foi digitado nos widgets ENTRY da tela'''
        self.current_cliente.login = self.tela_emprestimo_devolucao.ent_login_cliente_emprestimo.get()

    def __fill_current_livro_emprestimo(self):
        '''metodo para pegar oque foi digitado nos widgets ENTRY da tela'''
        self.current_livro.id_livro = self.tela_emprestimo_devolucao.ent_id_livro_emprestimo.get()
        self.current_livro.nome = self.tela_emprestimo_devolucao.ent_nome_livro_emprestimo.get()
        self.current_livro.genero = self.tela_emprestimo_devolucao.ent_genero_livro_emprestimo.get()
        self.current_livro.autor = self.tela_emprestimo_devolucao.ent_autor_livro_emprestimo.get()
        self.current_livro.area = self.tela_emprestimo_devolucao.ent_area_livro_emprestimo.get()
        self.current_livro.editora = self.tela_emprestimo_devolucao.ent_editora_livro_emprestimo.get()
        self.current_livro.edicao = self.tela_emprestimo_devolucao.ent_edicao_livro_emprestimo.get()

    def __fill_current_cliente_devolucao(self):
        '''metodo para pegar oque foi digitado nos widgets ENTRY da tela'''
        self.current_cliente.login = self.tela_emprestimo_devolucao.ent_login_cliente_devolucao.get()

    def __fill_current_livro_devolucao(self):
        '''metodo para pegar oque foi digitado nos widgets ENTRY da tela'''
        self.current_livro.id_livro = self.tela_emprestimo_devolucao.ent_id_livro_devolucao.get()

    def get_selected_row_emprestimo(self, event):
        "método que seleciona na listbox e popula os campos de input"
        if self.tela_emprestimo_devolucao.list_emprestimo.curselection():
            index = self.tela_emprestimo_devolucao.list_emprestimo.curselection()[0]        
            self.selected = self.tela_emprestimo_devolucao.list_emprestimo.get(index)
            self.tela_emprestimo_devolucao.ent_id_livro_emprestimo.delete(0, END)
            self.tela_emprestimo_devolucao.ent_id_livro_emprestimo.insert(END, self.selected[1])
            self.tela_emprestimo_devolucao.ent_nome_livro_emprestimo.delete(0, END)
            self.tela_emprestimo_devolucao.ent_nome_livro_emprestimo.insert(END, self.selected[2])
            self.tela_emprestimo_devolucao.ent_genero_livro_emprestimo.delete(0, END)
            self.tela_emprestimo_devolucao.ent_genero_livro_emprestimo.insert(END, self.selected[3])
            self.tela_emprestimo_devolucao.ent_autor_livro_emprestimo.delete(0, END)
            self.tela_emprestimo_devolucao.ent_autor_livro_emprestimo.insert(END, self.selected[4])
            self.tela_emprestimo_devolucao.ent_area_livro_emprestimo.delete(0, END)
            self.tela_emprestimo_devolucao.ent_area_livro_emprestimo.insert(END, self.selected[5])
            self.tela_emprestimo_devolucao.ent_editora_livro_emprestimo.delete(0, END)
            self.tela_emprestimo_devolucao.ent_editora_livro_emprestimo.insert(END, self.selected[6])
            self.tela_emprestimo_devolucao.ent_edicao_livro_emprestimo.delete(0, END)
            self.tela_emprestimo_devolucao.ent_edicao_livro_emprestimo.insert(END, self.selected[7])

    def get_selected_row_devolucao(self, event):
        "método que seleciona na listbox e popula os campos de input"
        if self.tela_emprestimo_devolucao.list_devolucao.curselection():
            index = self.tela_emprestimo_devolucao.list_devolucao.curselection()[0]        
            self.selected = self.tela_emprestimo_devolucao.list_devolucao.get(index)
            self.tela_emprestimo_devolucao.ent_id_livro_devolucao.delete(0, END)
            self.tela_emprestimo_devolucao.ent_id_livro_devolucao.insert(END, self.selected[1])
            self.tela_emprestimo_devolucao.ent_login_cliente_devolucao.delete(0, END)
            self.tela_emprestimo_devolucao.ent_login_cliente_devolucao.insert(END, self.selected[8])

    def emprestimo(self):
        '''metodo que realiza o emprestimo do livro'''
        emprestimo = date.today()
        dataDevolucaoToordinal = emprestimo.toordinal()+7
        devolucao = date.fromordinal(emprestimo.toordinal()+7)
        try:
            self.__fill_current_livro_emprestimo()
            self.__fill_current_cliente_emprestimo()
            self.__fill_current_cliente_login_senha_emprestimo()
            if(self.current_cliente_verifica.login == '' or self.current_cliente_verifica.senha == '' or self.current_livro.id_livro == ''):
                tkinter.messagebox.showinfo('Aviso!', 'PRENCHA OS CAMPOS !')
            else:
                rows1 = self.bd_cliente.search_login(self.current_cliente)
                rows2 = self.bd_emprestimo.search_livro_emprestimo(self.current_livro)
                rows3 = self.bd_emprestimo.verificar_emprestimo(self.current_livro)
                rows4 = self.bd_cliente.search(self.current_cliente_verifica)
                rows5 = self.bd_cliente.search_livro_cliente(self.current_cliente)
                if (rows1 == []):
                    tkinter.messagebox.showinfo('Aviso!', 'LOGIN NAO ENCONTRADO!')
                elif (rows2 == []):
                    tkinter.messagebox.showinfo('Aviso!', 'LIVRO NAO ENCONTRADO!')
                elif (rows3 != []):
                    tkinter.messagebox.showinfo('Aviso!', 'LIVRO JA FOI EMPRESTADO!')
                elif (rows4 == []):
                    tkinter.messagebox.showinfo('Aviso!', 'LOGIN E SENHA INCORRETOS!')
                elif (len(rows5) > 2): # [(0),(1),(2)] por isso len(rows5) > 2
                    tkinter.messagebox.showinfo('Aviso!', 'CLIENTE POSSUI 3 LIVRO, NAO PODE REALIZAR MAIS EMPRESTIMO')
                else:
                    self.bd_emprestimo.insert(self.current_livro,self.current_cliente,emprestimo,devolucao,dataDevolucaoToordinal)
                    tkinter.messagebox.showinfo('Aviso!', 'EMPRESTIMO CONCLUIDO!')
        except Exception as e:
            print(e)

    def obter_info_emprestimo(self):
        '''metodo para pesquisar livros disponivel para emprestimo'''
        self.tela_emprestimo_devolucao.list_emprestimo.delete(0, END)
        self.__fill_current_livro_emprestimo()
        try:
            if (self.current_livro.id_livro == ''):
                tkinter.messagebox.showinfo('Aviso!', 'PRENCHA O CAMPO ID!')
            rows1 = self.bd_emprestimo.verificar_emprestimo(self.current_livro)
            rows2 = self.bd_emprestimo.search_livro_emprestimo(self.current_livro)
            if (rows1 != []):
                tkinter.messagebox.showinfo('Aviso!', 'LIVRO JA FOI EMPRESTADO!')
            else:
                for r in rows2:
                    self.tela_emprestimo_devolucao.list_emprestimo.insert(END, r)
        except Exception as e:
            print(e)

    def obter_info_devolucao(self):
        '''metodo para pesquisar livros emprestados'''
        self.tela_emprestimo_devolucao.list_devolucao.delete(0, END)
        self.__fill_current_cliente_devolucao()
        self.__fill_current_livro_devolucao()
        try:
            if(self.current_cliente.login == '' or self.current_livro.id_livro == ''):
                tkinter.messagebox.showinfo('Aviso!', 'PRENCHA OS CAMPOS !')
            else:
                rows = self.bd_emprestimo.search_livro_devolucao(self.current_livro,self.current_cliente)
                if (rows == []):
                    tkinter.messagebox.showinfo('Aviso!', 'DADOS INVALIDOS !')
                for r in rows:
                    self.tela_emprestimo_devolucao.list_devolucao.insert(END, r[:9])
        except Exception as e:
            print(e)

    def devolucao(self):
        '''metodo que realiza a devoluçao do livro'''
        id = self.selected[0]
        self.bd_emprestimo.delete(id)
        self.tela_emprestimo_devolucao.list_devolucao.delete(0, END)
        tkinter.messagebox.showinfo('Aviso!', 'DEVOLUÇAO CONCLUIDA!')
    
    def sair(self):
        '''metodo para sair da tela'''
        self.bd_cliente.close()
        self.bd_emprestimo.close()
        self.bd_livro.close()
        self.tela_emprestimo_devolucao.janela.destroy()
        Controle_tela_bibliotecario().start()
    
    def start(self):
        '''Inicia a tela e os eventos dos botoes'''
        self.tela_emprestimo_devolucao.list_emprestimo.bind('<<ListboxSelect>>', self.get_selected_row_emprestimo)
        self.tela_emprestimo_devolucao.list_devolucao.bind('<<ListboxSelect>>', self.get_selected_row_devolucao)
        self.tela_emprestimo_devolucao.btn_sair.configure(command=self.sair)
        self.tela_emprestimo_devolucao.btn_emprestimo.configure(command=self.emprestimo)
        self.tela_emprestimo_devolucao.btn_devolucao.configure(command=self.devolucao)
        self.tela_emprestimo_devolucao.btn_obter_info_emprestimo.configure(command=self.obter_info_emprestimo)
        self.tela_emprestimo_devolucao.btn_obter_info_devolucao.configure(command=self.obter_info_devolucao)
        self.tela_emprestimo_devolucao.iniciar()