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()
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()