Advertisement
Guest User

Untitled

a guest
Apr 5th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.56 KB | None | 0 0
  1. import json
  2. from tkinter import *
  3. import os
  4.  
  5. fonts = 100
  6.  
  7. class user():
  8. def __init__(self):
  9. self.username = False
  10. self.password = False
  11. self.rank = False
  12. self.shop = False
  13.  
  14. def signup(self):
  15. global root
  16. global nameE
  17. global pwordE
  18. global pwordE1
  19. global rank
  20.  
  21. root = Tk()
  22. rank = IntVar()
  23. root.title('Signup')
  24. intruction = Label(root, text='Please Enter new Credidentials\n', font=fonts)
  25. intruction.grid(row=0, column=0, sticky=E)
  26.  
  27. nameL = Label(root, text='New Username: ', font=fonts)
  28. pwordL = Label(root, text='New Password: ', font=fonts)
  29. pwordL1 = Label(root, text='Confirm Password: ', font=fonts)
  30. nameL.grid(row=1, column=0, sticky=W)
  31. pwordL.grid(row=2, column=0, sticky=W)
  32. pwordL1.grid(row=3, column=0, sticky=W)
  33.  
  34. nameE = Entry(root, font=fonts)
  35. pwordE = Entry(root, show='*', font=fonts)
  36. pwordE1 = Entry(root, show='*', font=fonts)
  37. nameE.grid(row=1, column=1)
  38. pwordE.grid(row=2, column=1)
  39. pwordE1.grid(row=3, column=1)
  40.  
  41. if os.path.exists('login'):
  42. c1 = Radiobutton(root, text='Boss', value=1, variable=rank, font=fonts)
  43. c2 = Radiobutton(root, text='Staff', value=2, variable=rank, font=fonts)
  44. c1.grid(row=4, column=0)
  45. c2.grid(row=4, column=1)
  46.  
  47. signupButton = Button(root, text='Signup', command=self.write_file_signup)
  48. signupButton.grid(columnspan=2, sticky=W)
  49. root.mainloop()
  50.  
  51. def write_file_signup(self):
  52. if pwordE.get() == pwordE1.get():
  53. self.username = nameE.get()
  54. self.password = pwordE.get()
  55.  
  56. if not os.path.exists('login'):
  57. self.rank = 'Master'
  58. else:
  59. if rank.get() == 1:
  60. self.rank = 'Boss'
  61. elif rank.get() == 2:
  62. self.rank = 'Staff'
  63. else:
  64. self.Invalid_sign_up()
  65. return
  66.  
  67. with open('login') as file:
  68. data = file.readlines()[0].split('$')
  69. data = data[:len(data)-1]
  70. for each in data:
  71. uname, pword, _ = each.split('|')
  72. if nameE.get() == uname:
  73. self.Invalid_sign_up()
  74. return
  75.  
  76. with open('login', 'a+') as file:
  77. file.writelines(nameE.get()+'|'+pwordE.get()+'|'+self.rank+'$')
  78. file.close()
  79.  
  80. roots = Tk()
  81. roots.title(':D')
  82. roots.geometry('150x50')
  83. rlbl = Label(roots, text='\nSigned up')
  84. rlbl.pack()
  85. roots.destroy()
  86. root.destroy()
  87. else:
  88. self.Invalid_sign_up()
  89.  
  90. def Invalid_sign_up(self):
  91. roots = Tk()
  92. roots.title('D:')
  93. roots.geometry('150x50')
  94. rlbl = Label(roots, text='\nInvalid Sign up')
  95. rlbl.pack()
  96. roots.mainloop()
  97.  
  98. def login(self):
  99. global roota
  100. global nameEL
  101. global pwordEL
  102.  
  103. roota = Tk()
  104. roota.title('Login')
  105.  
  106. intruction = Label(roota, text='Please Login\n', font=fonts)
  107. intruction.grid(sticky=E)
  108.  
  109. nameL = Label(roota, text='Username: ', font=fonts)
  110. pwordL = Label(roota, text='Password: ', font=fonts)
  111. nameL.grid(row=1, sticky=W)
  112. pwordL.grid(row=2, sticky=W)
  113.  
  114. nameEL = Entry(roota, font=fonts)
  115. pwordEL = Entry(roota, show='*', font=fonts)
  116. nameEL.grid(row=1, column=1)
  117. pwordEL.grid(row=2, column=1)
  118.  
  119. login = Button(roota, text='Login', command=self.CheckLogin, font=fonts)
  120. login.grid(columnspan=2, sticky=W)
  121.  
  122. roota.mainloop()
  123.  
  124. def CheckLogin(self):
  125. s_login = False
  126. with open('login') as file:
  127. data = file.readlines()[0].split('$')
  128. data = data[:len(data)-1]
  129. for each in data:
  130. uname, pword, rank = each.split('|')
  131. if nameEL.get() == uname and pwordEL.get() == pword:
  132. self.username = nameEL.get()
  133. self.password = pwordEL.get()
  134. self.rank = rank
  135.  
  136. roots = Tk()
  137. roots.title(':D')
  138. roots.geometry('150x50')
  139. rlbl = Label(roots, text='\nLogged In')
  140. rlbl.pack()
  141. s_login = True
  142. roota.destroy()
  143. break
  144.  
  145. if not s_login:
  146. roots = Tk()
  147. roots.title('D:')
  148. roots.geometry('150x50')
  149. rlbl = Label(roots, text='\nInvalid Login')
  150. rlbl.pack()
  151. roots.mainloop()
  152.  
  153.  
  154. class shop():
  155. def __init__(self, number):
  156. self.number_product = 1
  157. self.number = number
  158. self.product = []
  159. self.load_product()
  160. if not os.path.exists('shop'+str(self.number)):
  161. os.mkdir('shop'+str(self.number))
  162.  
  163. def display_product(self):
  164. c = 0
  165. blank = ' '
  166. root = Tk()
  167.  
  168. product0 = Label(root, text=blank+'หมายเลข'+blank, font=fonts)
  169. product0.grid(row=c, column=0)
  170.  
  171. product1 = Label(root, text=blank+'ชื่อ'+blank, font=fonts)
  172. product1.grid(row=c, column=1)
  173.  
  174. product2 = Label(root, text=blank+'ต้นทุน'+blank, font=fonts)
  175. product2.grid(row=c, column=2)
  176.  
  177. product3 = Label(root, text=blank+'ราคาขาย'+blank, font=fonts)
  178. product3.grid(row=c, column=3)
  179.  
  180. for i in self.product:
  181. c += 1
  182.  
  183. product0 = Label(root, text=blank+str(c)+blank, font=fonts)
  184. product0.grid(row=c, column=0)
  185.  
  186. product1 = Label(root, text=blank+i['name']+blank, font=fonts)
  187. product1.grid(row=c, column=1)
  188.  
  189. product2 = Label(root, text=blank+i['cost']+blank, font=fonts)
  190. product2.grid(row=c, column=2)
  191.  
  192. product3 = Label(root, text=blank+i['price']+blank, font=fonts)
  193. product3.grid(row=c, column=3)
  194.  
  195. root.mainloop()
  196.  
  197. def load_product(self):
  198. if os.path.exists('shop'+str(self.number)+'/product'):
  199. with open('shop'+str(self.number)+'/product', 'r+') as file:
  200. self.product = json.load(file)
  201.  
  202. def add_product(self):
  203. global root
  204. global nameE
  205. global costE
  206. global priceE
  207.  
  208. root = Tk()
  209. root.title('Login')
  210.  
  211. intruction = Label(root, text='Product\n', font=fonts)
  212. intruction.grid(sticky=E)
  213.  
  214. name = Label(root, text='Name: ', font=fonts)
  215. cost = Label(root, text='Cost: ', font=fonts)
  216. price = Label(root, text='Price: ', font=fonts)
  217. name.grid(row=1, sticky=W)
  218. cost.grid(row=2, sticky=W)
  219. price.grid(row=3, sticky=W)
  220.  
  221. nameE = Entry(root, font=fonts)
  222. costE = Entry(root, font=fonts)
  223. priceE = Entry(root, font=fonts)
  224.  
  225. nameE.grid(row=1, column=1)
  226. costE.grid(row=2, column=1)
  227. priceE.grid(row=3, column=1)
  228.  
  229. submit = Button(root, text='submit', command=self.add_product_, font=fonts)
  230. submit.grid(columnspan=2, sticky=W)
  231.  
  232. root.mainloop()
  233.  
  234. def add_product_(self):
  235. product = {
  236. "name" : nameE.get(),
  237. "cost" : costE.get(),
  238. "price" : priceE.get()
  239. }
  240. self.product.append(product)
  241. with open('shop'+str(self.number)+'/product', 'w+') as file:
  242. json.dump(self.product, file)
  243.  
  244. root.destroy()
  245.  
  246.  
  247.  
  248. a = user()
  249. a.login()
  250.  
  251. print(a.username)
  252. print(a.password)
  253. print(a.rank)
  254. print(a.shop)
  255.  
  256. #s = shop(1)
  257. #s.add_product()
  258. #s.display_product()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement