Advertisement
EyeceScream

Updated and Cleaner

Sep 4th, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.24 KB | None | 0 0
  1. #Imports
  2. import tkinter
  3. from tkinter import filedialog
  4. from tkinter import *
  5. import json
  6.  
  7. window = tkinter.Tk()
  8. window.title("Employee Time Sheet")
  9. window.geometry("1280x820")
  10. window.wm_iconbitmap('file.ico')
  11. window.configure(background='#fcf9f0')
  12.  
  13.  
  14.  
  15.  
  16. #Labels
  17. titleLbl = tkinter.Label(window, text='RKT Employee Time Sheet',font=(None,16),height=3,background='#fcf9f0')
  18. titleLbl.grid(row=0, columnspan=8)
  19.  
  20. employeeLbl = tkinter.Label(window, text = 'Employee:', height=3,font=(None,12),background= '#fcf9f0')
  21. employeeLbl.grid(row=1,column=0,padx=1)
  22.  
  23. companyLbl = tkinter.Label(window, text = 'Company',background='#fcf9f0', relief=RAISED)
  24. companyLbl.grid(row=2, column=0,padx=1, ipadx=33)
  25.  
  26. leaseLbl = tkinter.Label(window, text = 'Lease',background='#fcf9f0',relief=RAISED)
  27. leaseLbl.grid(row=2, column=1,padx=1,ipadx=45)
  28.  
  29. propLbl = tkinter.Label(window, text = 'Porperty Number', background= '#fcf9f0',relief=RAISED)
  30. propLbl.grid(row=2, column=2,padx=1,ipadx=13)
  31.  
  32.  
  33. wonLbl = tkinter.Label(window, text = 'Work Order Number',background='#fcf9f0',relief=RAISED)
  34. wonLbl.grid(row=2, column=3,padx=1,ipadx=5)
  35.  
  36. dateLbl = tkinter.Label(window, text = 'Date',background='#fcf9f0',relief=RAISED)
  37. dateLbl.grid(row=2, column=4,padx=1,ipadx=46)
  38.  
  39. tiLbl = tkinter.Label(window, text = 'Time In',background='#fcf9f0',relief=RAISED)
  40. tiLbl.grid(row=2, column=5,padx=1,ipadx=37)
  41.  
  42. toLbl = tkinter.Label(window, text = 'Time Out',background='#fcf9f0',relief=RAISED)
  43. toLbl.grid(row=2, column=6,padx=1,ipadx=34)
  44.  
  45.  
  46. mileageLbl = tkinter.Label(window, text = 'Mileage',background='#fcf9f0',relief=RAISED)
  47. mileageLbl.grid(row=2, column=7,padx=1,ipadx=36)
  48.  
  49.  
  50. #Entrys
  51.  
  52. #EMPLOYEE
  53. employeeEnt = tkinter.Entry()
  54. employeeEnt.grid(row=1,column=1,padx=1,pady=2)
  55.  
  56. #COMPANY
  57. data = {}
  58. for x in range(1,21):
  59.     cEnt = tkinter.Entry()
  60.     cEnt.grid(row=x+2, column=0,padx=1,pady=2)
  61.     data[f'companyEnt{x}'] = cEnt
  62.  
  63.  
  64.  
  65.  
  66. #LEASE
  67. for x in range(1,21):
  68.     lEnt = tkinter.Entry()
  69.     lEnt.grid(row=x+2,column=1,padx=1,pady=2)
  70.     data[f'leaseEnt{x}'] = lEnt
  71.  
  72. #PROPERTY NUMBER
  73. for x in range(1,21):
  74.     pEnt = tkinter.Entry()
  75.     pEnt.grid(row=x+2,column=2,padx=1,pady=2)
  76.     data[f'porpertyEnt{x}'] = pEnt
  77.  
  78.  
  79.  
  80. #WORK ORDER NUMBER
  81. for x in range(1,21):
  82.     wonEnt = tkinter.Entry()
  83.     wonEnt.grid(row=x+2,column=3)
  84.     data[f'WONEnt{x}'] = wonEnt
  85.  
  86.  
  87. #DATE
  88. for x in range(1,21):
  89.     dEnt = tkinter.Entry()
  90.     dEnt.grid(row=x+2,column=4)
  91.     data[f'DataEnt{x}'] = dEnt
  92.  
  93.  
  94.  
  95. #TIME IN
  96. for x in range(1,21):
  97.     tiEnt = tkinter.Entry()
  98.     tiEnt.grid(row=x+2,column=5)
  99.     data[f'TimeInEnt{x}'] = tiEnt
  100.  
  101.  
  102. #TIME OUT
  103. for x in range(1,21):
  104.     toEnt = tkinter.Entry()
  105.     toEnt.grid(row=x+2,column=6)
  106.     data[f'TimeOut{x}'] = toEnt
  107.  
  108. #MILEAGE
  109. for x in range(1,21):
  110.     mileEnt = tkinter.Entry()
  111.     mileEnt.grid(row=x+2,column=7)
  112.     data[f'MileageEnt{x}'] = mileEnt
  113.  
  114. class fileManagement:
  115.  
  116.     def save():
  117.        
  118.         window.withdraw()
  119.         win2 = Toplevel()
  120.         win2.title("Save as...")
  121.         win2.configure(background='#fcf9f0')
  122.        
  123.         win2Lbl= Label(win2, text = "File Name:",background='#fcf9f0')
  124.         win2Lbl.grid(row = 0, column = 0)
  125.        
  126.         win2Ent = tkinter.Entry(win2)
  127.         win2Ent.grid(row=0,column = 1, sticky=NSEW)
  128.         win2.geometry("250x200")
  129.        
  130.    
  131.         def OkPressed():
  132.             #Data
  133.             data = {
  134.                 'employee' : employeeEnt.get(),
  135.                 'company' : companyEnt1.get(),
  136.                 'company' : companyEnt2.get()
  137.                 }
  138.  
  139.             with open(f'{win2Ent.get()}.json', 'w+') as file:
  140.                     json.dump(data, file)
  141.             win2.destroy()
  142.             window.deiconify()
  143.        
  144.         win2B = Button(win2, text = "OK", command = OkPressed)
  145.         win2B.grid(row=1, column = 1, sticky=NSEW)
  146.                
  147.            
  148.    
  149.     def load():
  150.        
  151.         selectedFile = filedialog.askopenfilename(initialdir = "C:/" , title = "Select file", filetypes = (("JSON File", "*.json"),("All Files","*.*")))
  152.  
  153.         with open(f'{selectedFile}', 'r') as file:
  154.             data = json.load(file)
  155.  
  156.         for employee in data:
  157.             employeeEnt.delete(0,'end')
  158.             employeeEnt.insert(0, data [employee])
  159.        
  160.         for company in data:
  161.             companyEnt2.delete(0, 'end')
  162.             companyEnt2.insert(0, data [company])
  163. #Buttons
  164.  
  165. copyB = Button(window, text = "Load", command = fileManagement.load)
  166. copyB.grid(row=0,column=9, sticky=E)
  167.  
  168. saveB = Button(window, text = "Save", command = fileManagement.save)
  169. saveB.grid(row=1,column=10, sticky=E)
  170.  
  171.  
  172.  
  173. window.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement