Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Imports
- import tkinter
- from tkinter import filedialog
- from tkinter import *
- import json
- window = tkinter.Tk()
- window.title("Employee Time Sheet")
- window.geometry("1280x820")
- window.wm_iconbitmap('file.ico')
- window.configure(background='#fcf9f0')
- #Labels
- titleLbl = tkinter.Label(window, text='RKT Employee Time Sheet',font=(None,16),height=3,background='#fcf9f0')
- titleLbl.grid(row=0, columnspan=8)
- employeeLbl = tkinter.Label(window, text = 'Employee:', height=3,font=(None,12),background= '#fcf9f0')
- employeeLbl.grid(row=1,column=0,padx=1)
- companyLbl = tkinter.Label(window, text = 'Company',background='#fcf9f0', relief=RAISED)
- companyLbl.grid(row=2, column=0,padx=1, ipadx=33)
- leaseLbl = tkinter.Label(window, text = 'Lease',background='#fcf9f0',relief=RAISED)
- leaseLbl.grid(row=2, column=1,padx=1,ipadx=45)
- propLbl = tkinter.Label(window, text = 'Porperty Number', background= '#fcf9f0',relief=RAISED)
- propLbl.grid(row=2, column=2,padx=1,ipadx=13)
- wonLbl = tkinter.Label(window, text = 'Work Order Number',background='#fcf9f0',relief=RAISED)
- wonLbl.grid(row=2, column=3,padx=1,ipadx=5)
- dateLbl = tkinter.Label(window, text = 'Date',background='#fcf9f0',relief=RAISED)
- dateLbl.grid(row=2, column=4,padx=1,ipadx=46)
- tiLbl = tkinter.Label(window, text = 'Time In',background='#fcf9f0',relief=RAISED)
- tiLbl.grid(row=2, column=5,padx=1,ipadx=37)
- toLbl = tkinter.Label(window, text = 'Time Out',background='#fcf9f0',relief=RAISED)
- toLbl.grid(row=2, column=6,padx=1,ipadx=34)
- mileageLbl = tkinter.Label(window, text = 'Mileage',background='#fcf9f0',relief=RAISED)
- mileageLbl.grid(row=2, column=7,padx=1,ipadx=36)
- #Entrys
- #EMPLOYEE
- employeeEnt = tkinter.Entry()
- employeeEnt.grid(row=1,column=1,padx=1,pady=2)
- #COMPANY
- data = {}
- for x in range(1,21):
- cEnt = tkinter.Entry()
- cEnt.grid(row=x+2, column=0,padx=1,pady=2)
- data[f'companyEnt{x}'] = cEnt
- #LEASE
- for x in range(1,21):
- lEnt = tkinter.Entry()
- lEnt.grid(row=x+2,column=1,padx=1,pady=2)
- data[f'leaseEnt{x}'] = lEnt
- #PROPERTY NUMBER
- for x in range(1,21):
- pEnt = tkinter.Entry()
- pEnt.grid(row=x+2,column=2,padx=1,pady=2)
- data[f'porpertyEnt{x}'] = pEnt
- #WORK ORDER NUMBER
- for x in range(1,21):
- wonEnt = tkinter.Entry()
- wonEnt.grid(row=x+2,column=3)
- data[f'WONEnt{x}'] = wonEnt
- #DATE
- for x in range(1,21):
- dEnt = tkinter.Entry()
- dEnt.grid(row=x+2,column=4)
- data[f'DataEnt{x}'] = dEnt
- #TIME IN
- for x in range(1,21):
- tiEnt = tkinter.Entry()
- tiEnt.grid(row=x+2,column=5)
- data[f'TimeInEnt{x}'] = tiEnt
- #TIME OUT
- for x in range(1,21):
- toEnt = tkinter.Entry()
- toEnt.grid(row=x+2,column=6)
- data[f'TimeOut{x}'] = toEnt
- #MILEAGE
- for x in range(1,21):
- mileEnt = tkinter.Entry()
- mileEnt.grid(row=x+2,column=7)
- data[f'MileageEnt{x}'] = mileEnt
- class fileManagement:
- def save():
- window.withdraw()
- win2 = Toplevel()
- win2.title("Save as...")
- win2.configure(background='#fcf9f0')
- win2Lbl= Label(win2, text = "File Name:",background='#fcf9f0')
- win2Lbl.grid(row = 0, column = 0)
- win2Ent = tkinter.Entry(win2)
- win2Ent.grid(row=0,column = 1, sticky=NSEW)
- win2.geometry("250x200")
- def OkPressed():
- #Data
- data = {
- 'employee' : employeeEnt.get(),
- 'company' : companyEnt1.get(),
- 'company' : companyEnt2.get()
- }
- with open(f'{win2Ent.get()}.json', 'w+') as file:
- json.dump(data, file)
- win2.destroy()
- window.deiconify()
- win2B = Button(win2, text = "OK", command = OkPressed)
- win2B.grid(row=1, column = 1, sticky=NSEW)
- def load():
- selectedFile = filedialog.askopenfilename(initialdir = "C:/" , title = "Select file", filetypes = (("JSON File", "*.json"),("All Files","*.*")))
- with open(f'{selectedFile}', 'r') as file:
- data = json.load(file)
- for employee in data:
- employeeEnt.delete(0,'end')
- employeeEnt.insert(0, data [employee])
- for company in data:
- companyEnt2.delete(0, 'end')
- companyEnt2.insert(0, data [company])
- #Buttons
- copyB = Button(window, text = "Load", command = fileManagement.load)
- copyB.grid(row=0,column=9, sticky=E)
- saveB = Button(window, text = "Save", command = fileManagement.save)
- saveB.grid(row=1,column=10, sticky=E)
- window.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement