Exemplo n.º 1
0
class TagoutBeta(Frame):

    def __init__(self, parent):
        Frame.__init__(self, parent, background="black")
        self.parent = parent
        self.parent.title("TAGOUT")
        self.style = ttk.Style()
        self.style.theme_use("default")
        self.centreWindow()
        self.pack(fill=BOTH, expand=1)
        

# Barra de Menu

        menubar = Menu(self.parent)
        self.parent.config(menu=menubar)
        fileMenu = Menu(menubar)
        fileMenu.add_command(label="Exit", command=self.destroy)
        menubar.add_cascade(label="File", menu=fileMenu)

        
#Campos de exibição
        
        datetime.datetime.now()
    
        self.lbltimeVar = StringVar()
        self.lbltimeVar.set(datetime.datetime.strftime(datetime.datetime.now(), '%d-%m-%Y %H-%M-%S'))
        Label(self, textvariable=self.lbltimeVar).grid(
            row=1, column=2, sticky=W)   # a reference to the label is not retained

        self.lblnomeVar = StringVar()
        self.lblnomeVar.set("NOME")
        Label(self, textvariable=self.lblnomeVar).grid(
            row=2, column=5, sticky=N)   # a reference to the label is not retained

        self.nomeVar = StringVar()
        self.nomeVar.set("joão bosco da silva")
        Label(self, textvariable=self.nomeVar).grid(
            row=3, column=5, sticky=W+E)   # a reference to the label is not retained

        self.lbltagVar = StringVar()
        self.lbltagVar.set("TAG")
        Label(self, textvariable=self.lbltagVar).grid(
            row=4, column=5, sticky=N)   # a reference to the label is not retained

        self.tagVar = StringVar()
        self.tagVar.set("189.186.63.44.20")
        Label(self, textvariable=self.tagVar).grid(
            row=5, column=5, sticky=W+E)   # a reference to the label is not retained
        
        self.lblendereco = StringVar()
        self.lblendereco.set("Endereço")
        Label(self, textvariable=self.lblendereco).grid(
            row=6, column=5, sticky=N)   # a reference to the label is not retained

        self.enderecoVar = StringVar()
        self.enderecoVar.set("apt 202 bloco 13")
        Label(self, textvariable=self.enderecoVar).grid(
            row=7, column=5, sticky=W+E)   # a reference to the label is not retained
        
#Botões de ação        

        manBtn = Button(self, text="MANUT.", width=10, command=self.maintenance)
        manBtn.grid(row=8, column=2, padx=5, pady=3, sticky=W+E)
        listBtn = Button(self, text="Lista", width=10, command=self.quit)
        listBtn.grid(row=8, column=6, padx=5, pady=3, sticky=W+E)

#Centraliza a janela   

    def centreWindow(self):
        w = 300
        h = 300
        sw = self.parent.winfo_screenwidth()
        sh = self.parent.winfo_screenheight()
        x = (sw - w)/2
        y = (sh - h)/2
        self.parent.geometry('%dx%d+%d+%d' % (w, h, x, y))

#Instancia que inicia a tela de manutenção


    def maintenance(self, master=None):
        
        
        self.fonte = ("Verdana", "8")
        self.container1 = Frame(master)
        self.container1["pady"] = 10
        self.container1.pack()
        self.container2 = Frame(master)
        self.container2["padx"] = 20
        self.container2["pady"] = 5
        self.container2.pack()
        self.container3 = Frame(master)
        self.container3["padx"] = 20
        self.container3["pady"] = 5
        self.container3.pack()
        self.container4 = Frame(master)
        self.container4["padx"] = 20
        self.container4["pady"] = 5
        self.container4.pack()
        self.container5 = Frame(master)
        self.container5["padx"] = 20
        self.container5["pady"] = 5
        self.container5.pack()
        self.container6 = Frame(master)
        self.container6["padx"] = 20
        self.container6["pady"] = 5
        self.container6.pack()
        self.container7 = Frame(master)
        self.container7["padx"] = 30
        self.container7["pady"] = 5
        self.container7.pack()
        self.container8 = Frame(master)
        self.container8["padx"] = 20
        self.container8["pady"] = 10
        self.container8.pack()
        self.container9 = Frame(master)
        self.container9["pady"] = 15
        self.container9.pack()
        self.container10 = Frame(master)
        self.container10["padx"] = 30
        self.container10["pady"] = 20
        self.container10.pack()
        self.container11 = Frame(master)
        self.container11["padx"] = 30
        self.container11["pady"] = 30
        self.container11.pack()

        self.titulo = Label(self.container1, text="TAGOUT SYSTEMS")
        self.titulo["font"] = ("Arial", "9", "bold")
        self.titulo.pack()

        self.lblidusuario = Label(self.container2, text="idusuario:", font=self.fonte, width=10)
        self.lblidusuario.pack(side=LEFT)

        self.txtidusuario = Entry(self.container2)
        self.txtidusuario["width"] = 10
        self.txtidusuario["font"] = self.fonte
        self.txtidusuario.pack(side=LEFT)

        self.btnBuscarid = Button(self.container2, text="Buscar", font=self.fonte, width=10)
        self.btnBuscarid["command"] = self.buscarUsuario
        self.btnBuscarid.pack(side=RIGHT)

        self.lblnome = Label(self.container3, text="Nome:", font=self.fonte, width=10)
        self.lblnome.pack(side=LEFT)

        self.txtnome = Entry(self.container3)
        self.txtnome["width"] = 25
        self.txtnome["font"] = self.fonte
        self.txtnome.pack(side=LEFT)

        self.btnBuscarnm = Button(self.container3, text="Buscarnome", font=self.fonte, width=10)
        self.btnBuscarnm["command"] = self.buscarUsuarionome
        self.btnBuscarnm.pack(side=RIGHT)

        self.lbltag = Label(self.container4,text="tag:", font=self.fonte, width=10)
        self.lbltag.pack(side=LEFT)

        self.txttag = Entry(self.container4)
        self.txttag["width"] = 25
        self.txttag["font"] = self.fonte
        self.txttag.pack(side=LEFT)

        self.btnBuscartg = Button(self.container4, text="Buscar", font=self.fonte, width=10)
        self.btnBuscartg["command"] = self.buscarUsuariotag
        self.btnBuscartg.pack(side=RIGHT)


        
       

        self.lblendereco = Label(self.container5, text="Endereço:", font=self.fonte, width=10)
        self.lblendereco.pack(side=LEFT)

        self.txtendereco = Entry(self.container5)
        self.txtendereco["width"] = 25
        self.txtendereco["font"] = self.fonte
        self.txtendereco.pack(side=LEFT)

        
        self.bntInsert = Button(self.container7, text="Inserir", font=self.fonte, width=12)
        self.bntInsert["command"] = self.verTag
        self.bntInsert.pack(side=LEFT)

        self.bntAlterar = Button(self.container7, text="Alterar", font=self.fonte, width=12)
        self.bntAlterar["command"] = self.Alterarokcancel
        self.bntAlterar.pack(side=LEFT)

        self.bntExcluir = Button(self.container7, text="Excluir", font=self.fonte, width=12)
        self.bntExcluir["command"] = self.Deleteyesno
        self.bntExcluir.pack(side=LEFT)

        self.lblmsg = Label(self.container8, text="")
        self.lblmsg["font"] = ("Verdana", "9", "italic")
        self.lblmsg.pack()

        self.bntVertag = Button(self.container10, text="VERTAG")
        self.bntVertag["command"] = self.verTag
        self.bntVertag.pack(side=LEFT)

        
        
        self.txtVertag = Entry(self.container10)
        self.txtVertag["width"] = 30
        self.txtVertag["font"] = self.fonte
        self.txtVertag.pack()

        


 
        
#Instancia para inserção de usuario, utiliza o modulo Usuarios()

    def inserirUsuario(self):
        user = Usuarios()

        user.nome = self.txtnome.get()
        user.tag = self.txttag.get()
        user.endereco = self.txtendereco.get()
        
        self.lblmsg["text"] = user.insertUser()

        self.txtidusuario.delete(0, END)
        self.txtnome.delete(0, END)
        self.txttag.delete(0, END)
        self.txtendereco.delete(0, END)
        

#Instancia para alterar dados, utiliza o modulo Usuarios()

    def alterarUsuario(self):
        user = Usuarios()

        user.idusuario = self.txtidusuario.get()
        user.nome = self.txtnome.get()
        user.tag = self.txttag.get()
        user.endereco = self.txtendereco.get()
        

        self.lblmsg["text"] = user.updateUser()

        self.txtidusuario.delete(0, END)
        self.txtnome.delete(0, END)
        self.txttag.delete(0, END)
        self.txtendereco.delete(0, END)

#Instancia para excluir dados, utiliza o modulo Usuarios()        

    def excluirUsuario(self):
        user = Usuarios()

        user.idusuario = self.txtidusuario.get()

        self.lblmsg["text"] = user.deleteUser()

        self.txtidusuario.delete(0, END)
        self.txtnome.delete(0, END)
        self.txttag.delete(0, END)
        self.txtendereco.delete(0, END)
        
#Instancia para busca de usuario, utiliza o modulo Usuarios()

    def buscarUsuario(self):
        user = Usuarios()


        idusuario = self.txtidusuario.get()

        self.lblmsg["text"] = user.selectUser(idusuario)


        self.txtidusuario.delete(0, END)
        self.txtidusuario.insert(INSERT, user.idusuario)

        self.txtnome.delete(0, END)
        self.txtnome.insert(INSERT, user.nome)
        
        self.txttag.delete(0, END)
        self.txttag.insert(INSERT, user.tag)

        self.txtendereco.delete(0, END)
        self.txtendereco.insert(INSERT, user.endereco)

    def buscarUsuarionome(self):
        user = Usuarios()


        nome = self.txtnome.get()

        self.lblmsg["text"] = user.selectUsernm(nome)
        

        self.txtidusuario.delete(0, END)
        self.txtidusuario.insert(INSERT, user.idusuario)

        self.txtnome.delete(0, END)
        self.txtnome.insert(INSERT, user.nome)
        
        self.txttag.delete(0, END)
        self.txttag.insert(INSERT, user.tag)

        self.txtendereco.delete(0, END)
        self.txtendereco.insert(INSERT, user.endereco)

    def buscarUsuariotag(self):
        user = Usuarios()


        tag = self.txttag.get()

        self.lblmsg["text"] = user.selectUsertg(tag)


        self.txtidusuario.delete(0, END)
        self.txtidusuario.insert(INSERT, user.idusuario)

        self.txtnome.delete(0, END)
        self.txtnome.insert(INSERT, user.nome)
        
        self.txttag.delete(0, END)
        self.txttag.insert(INSERT, user.tag)

        self.txtendereco.delete(0, END)
        self.txtendereco.insert(INSERT, user.endereco)

    
#Comparação de tag lidos no RFID com os da Base de Dados

    def verTag(self):
        user = Usuarios()
        banco = Banco()
        
        ID = self.txtnome.get()
        
        
              

        conn = sqlite3.connect("bank.db")
        cursor = conn.cursor()

        sql = "SELECT * FROM usuarios WHERE nome=?"
        cursor.execute(sql, [(ID)])
        print (cursor.fetchone())
        if cursor.fetchone() == None :
            self.inserirUsuario()

        else:
            print("Tag já Exixstente")
            self.txttag.delete(0, END)
            self.txttag.insert(INSERT, "Tente novamente")
            
            self.lblmsg["text"] = "Tag existente"

        self.txtVertag.delete(0, END)

        self.txtVertag.insert(INSERT, ID)
    

    

        

    def onExit(self):
        print("ok")

    def Listatag(self):
        # Lista de tags * em fase de teste
                        
        title = ['189.186.63.44.20','123.145.584.55.5', '','','']
        titleList = Listbox(self, height=5)
        for t in title:
            titleList.insert(END, t)
        titleList.grid(row=7, column=2, columnspan=2, pady=5, sticky=W+E)
        titleList.bind("<<ListboxSelect>>", self.newTitle)


        
    def newTitle(self, val):
        sender = val.widget
        idx = sender.curselection()
        value = sender.get(idx)
        self.tagVar.set(value)

    
    def Alterarokcancel(self):
        if box.askokcancel('Alterar','Você tem certeza que deseja fazer as alterações?'):
            self.alterarUsuario()

    def Deleteyesno(self):
        if box.askyesno('Deletar',' Isso Vai Apagar Permanentemente da Base\n Você tem certeza que deseja deletar?'):
            self.excluirUsuario()