示例#1
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()
示例#2
0
class Controle_tela_administrador():
    '''Classe para controlar a tela do administrador depois de feito o login'''
    def __init__(self):
        self.tela_administrador = Tela_administrador()
        self.bd_bibli = BibliotecarioDAO()
        self.bd_emprestimo = EmprestimoDAO()
        self.selected = None
        self.current_bibliotecario = Bibliotecario()

    def __fill_current_bibliotecario(self):
        '''metodo para pegar oque foi digitado nos widgets ENTRY da tela'''
        self.current_bibliotecario.nome = self.tela_administrador.ent_nome_bibliotecario.get()
        self.current_bibliotecario.sobrenome = self.tela_administrador.ent_sobrenome_bibliotecario.get()
        self.current_bibliotecario.cpf = self.tela_administrador.ent_cpf_bibliotecario.get()
        self.current_bibliotecario.login = self.tela_administrador.ent_login_bibliotecario.get()
        self.current_bibliotecario.senha = self.tela_administrador.ent_senha_bibliotecario.get()
        self.current_bibliotecario.email = self.tela_administrador.ent_email_bibliotecario.get()

    def criar_acesso_bibliotecario(self):
        '''metodo para criar acesso do bibliotecario  no sistema'''
        self.__fill_current_bibliotecario()
        self.bd_bibli.insert(self.current_bibliotecario)
        self.ver_todos_bibliotecario()

    def get_selected_row(self, event):
        "método que seleciona na listbox e popula os campos de input"
        if self.tela_administrador.list_bibliotecario.curselection():
            index = self.tela_administrador.list_bibliotecario.curselection()[0]        
            self.selected = self.tela_administrador.list_bibliotecario.get(index)
            self.tela_administrador.ent_nome_bibliotecario.delete(0, END)
            self.tela_administrador.ent_nome_bibliotecario.insert(END, self.selected[1])
            self.tela_administrador.ent_sobrenome_bibliotecario.delete(0, END)
            self.tela_administrador.ent_sobrenome_bibliotecario.insert(END, self.selected[2])
            self.tela_administrador.ent_cpf_bibliotecario.delete(0, END)
            self.tela_administrador.ent_cpf_bibliotecario.insert(END, self.selected[3])
            self.tela_administrador.ent_email_bibliotecario.delete(0, END)
            self.tela_administrador.ent_email_bibliotecario.insert(END, self.selected[4])
            self.tela_administrador.ent_login_bibliotecario.delete(0, END)
            self.tela_administrador.ent_login_bibliotecario.insert(END, self.selected[5])
            self.tela_administrador.ent_senha_bibliotecario.delete(0, END)
            self.tela_administrador.ent_senha_bibliotecario.insert(END, self.selected[6])

    def voltar_tela(self):
        '''metodo para sair da tela'''
        self.bd_bibli.close()
        self.bd_emprestimo.close()
        self.tela_administrador.janela.destroy()
        Controle_tela_administrador_login().start()

    def retirar_acesso_bibliotecario(self):
        '''metodo para retirar acesso do bibliotecario  no sistema'''
        id = self.selected[0]
        self.bd_bibli.delete(id)
        self.ver_todos_bibliotecario()

    def ver_todos_bibliotecario(self):
        '''metodo que visualiza todos o bibliotecario'''
        try:
            rows = self.bd_bibli.view()
            self.tela_administrador.list_bibliotecario.delete(0, END)
            for r in rows:
                self.tela_administrador.list_bibliotecario.insert(END, r)
        except Exception as e:
            print(e)

    def ver_todos_livro_atrasados(self):
        '''metodo para vizualizar todos os livros que nao foram entregues no prazo'''
        data = date.today()
        data_atual = data.toordinal()
        try:
            rows = self.bd_emprestimo.view()
            self.tela_administrador.list_atraso.delete(0, END)
            if (rows != []):
                formatacao = []
                msg = ("Id do livro")
                formatacao.append('{:16}'.format(msg))
                msg = ("Devolucao")
                formatacao.append('{:20}'.format(msg))
                msg = ("Login")
                formatacao.append('{:20}'.format(msg))
                self.tela_administrador.list_atraso.insert(END, formatacao)
                for r in rows:
                    data_devoluçao = r[11]
                    if (data_atual > data_devoluçao):
                        list_atraso = []
                        msg = (r[1])
                        list_atraso.append('{:20}'.format(msg))
                        msg = (r[10])
                        list_atraso.append('{:20}'.format(msg))
                        msg = (r[8])
                        list_atraso.append('{:20}'.format(msg))
                        self.tela_administrador.list_atraso.insert(END, list_atraso)
            else:
                tkinter.messagebox.showinfo('Aviso!', 'NENHUM LIVRO FOI EMPRESTADO!')
        except Exception as e:
            print(e)

    def start(self):
        '''Inicia a tela do administrador e os eventos dos botoes'''
        self.tela_administrador.list_bibliotecario.bind('<<ListboxSelect>>', self.get_selected_row)
        self.tela_administrador.btn_fechar.configure(command=self.voltar_tela)
        self.tela_administrador.btn_criar_acesso_bibliotecario.configure(command=self.criar_acesso_bibliotecario)
        self.tela_administrador.btn_retirar_acesso_bibliotecario.configure(command=self.retirar_acesso_bibliotecario)
        self.tela_administrador.btn_ver_todos_bibliotecario.configure(command=self.ver_todos_bibliotecario)
        self.tela_administrador.btn_visualizar.configure(command=self.ver_todos_livro_atrasados)
        self.tela_administrador.iniciar()
示例#3
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()
示例#4
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()