Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import json
- from tkinter import *
- import os
- import time
- USER = False
- fonts = 100
- name_shop = ['blank','asdasda','asddasb','casd','dasdasd']
- number_shop = len(name_shop)
- list_shop = ['blank']
- def display(text):
- roots = Tk()
- roots.title(' ')
- roots.geometry('250x50')
- rlbl = Label(roots, text='\n'+str(text), font=fonts)
- rlbl.pack()
- class user():
- def __init__(self, login=True):
- self.username = False
- self.password = False
- self.rank = False
- if login:
- if not os.path.exists('login'):
- self.signup()
- else:
- self.login()
- def signup(self):
- global roote
- global nameE
- global pwordE
- global pwordE1
- global rank
- root.destroy()
- roote = Tk()
- roote.title('Signup')
- rank = IntVar()
- intruction = Label(roote, text='Sign up\n', font=fonts)
- intruction.grid(columnspan=2)
- nameL = Label(roote, text='New Username: ', font=fonts)
- pwordL = Label(roote, text='New Password: ', font=fonts)
- pwordL1 = Label(roote, text='Confirm Password: ', font=fonts)
- nameL.grid(row=1, column=0)
- pwordL.grid(row=2, column=0)
- pwordL1.grid(row=3, column=0)
- nameE = Entry(roote, font=fonts)
- pwordE = Entry(roote, show='*', font=fonts)
- pwordE1 = Entry(roote, show='*', font=fonts)
- nameE.grid(row=1, column=1)
- pwordE.grid(row=2, column=1)
- pwordE1.grid(row=3, column=1)
- if os.path.exists('login'):
- c1 = Radiobutton(roote, text='Boss', variable=rank, value=1, font=fonts)
- c2 = Radiobutton(roote, text='Staff', variable=rank, value=2, font=fonts)
- c1.grid(row=4, column=0)
- c2.grid(row=4, column=1)
- signupButton = Button(roote, text='Signup', command=self.write_file_signup, font=fonts)
- signupButton.grid(columnspan=2)
- roote.mainloop()
- def write_file_signup(self):
- global rank
- if pwordE.get() == pwordE1.get():
- self.username = nameE.get()
- self.password = pwordE.get()
- if not os.path.exists('login'):
- self.rank = 'Master'
- else:
- if rank.get() == 1:
- self.rank = 'Boss'
- elif rank.get() == 2:
- self.rank = 'Staff'
- else:
- self.Invalid_sign_up()
- return
- with open('login') as file:
- data = file.readlines()[0].split('$')
- data = data[:len(data)-1]
- for each in data:
- uname, pword, _ = each.split('|')
- if nameE.get() == uname:
- self.Invalid_sign_up()
- return
- with open('login', 'a+') as file:
- file.writelines(nameE.get()+'|'+pwordE.get()+'|'+self.rank+'$')
- file.close()
- display('Signed up')
- roote.destroy()
- else:
- self.Invalid_sign_up()
- def Invalid_sign_up(self):
- display('Invalid Sign up')
- def login(self):
- global roota
- global nameEL
- global pwordEL
- root.destroy()
- roota = Tk()
- roota.title('Login')
- intruction = Label(roota, text='Please Login\n', font=fonts)
- intruction.grid(columnspan=2)
- nameL = Label(roota, text='Username: ', font=fonts)
- pwordL = Label(roota, text='Password: ', font=fonts)
- nameL.grid(row=1)
- pwordL.grid(row=2)
- nameEL = Entry(roota, font=fonts)
- pwordEL = Entry(roota, show='*', font=fonts)
- nameEL.grid(row=1, column=1)
- pwordEL.grid(row=2, column=1)
- login = Button(roota, text='Login', command=self.CheckLogin, font=fonts)
- login.grid(columnspan=2)
- def CheckLogin(self):
- s_login = False
- with open('login') as file:
- data = file.readlines()[0].split('$')
- data = data[:len(data)-1]
- for each in data:
- uname, pword, rank = each.split('|')
- if nameEL.get() == uname and pwordEL.get() == pword:
- self.username = nameEL.get()
- self.password = pwordEL.get()
- self.rank = rank
- display('Logged In')
- s_login = True
- roota.destroy()
- break
- if not s_login:
- display('Invalid Login')
- class shop():
- def __init__(self, number):
- self.number_product = 1
- self.number = number
- self.product = []
- self.load_product()
- if not os.path.exists('shop'+str(self.number)):
- os.mkdir('shop'+str(self.number))
- def display_product(self):
- global USER
- c = 0
- blank = ' '
- rootd = Tk()
- product0 = Label(rootd, text=blank+'หมายเลข'+blank, font=fonts)
- product0.grid(row=c, column=0)
- product1 = Label(rootd, text=blank+'ชื่อ'+blank, font=fonts)
- product1.grid(row=c, column=1)
- if USER.rank == 'Master':
- product2 = Label(rootd, text=blank+'ต้นทุน'+blank, font=fonts)
- product2.grid(row=c, column=2)
- product3 = Label(rootd, text=blank+'ราคาขาย'+blank, font=fonts)
- product3.grid(row=c, column=3)
- for i in self.product:
- c += 1
- product0 = Label(rootd, text=blank+str(c)+blank, font=fonts)
- product0.grid(row=c, column=0)
- product1 = Label(rootd, text=blank+i['name']+blank, font=fonts)
- product1.grid(row=c, column=1)
- if USER.rank == 'Master':
- product2 = Label(rootd, text=blank+i['cost']+blank, font=fonts)
- product2.grid(row=c, column=2)
- product3 = Label(rootd, text=blank+i['price']+blank, font=fonts)
- product3.grid(row=c, column=3)
- rootd.mainloop()
- def load_product(self):
- if os.path.exists('shop'+str(self.number)+'/product'):
- with open('shop'+str(self.number)+'/product', 'r+') as file:
- self.product = json.load(file)
- def change_price(self):
- global USER
- global list_price
- global rootf
- c = 0
- blank = ' '
- rootf = Tk()
- product0 = Label(rootf, text=blank+'หมายเลข'+blank, font=fonts)
- product0.grid(row=c, column=0)
- product1 = Label(rootf, text=blank+'ชื่อ'+blank, font=fonts)
- product1.grid(row=c, column=1)
- if USER.rank == 'Master':
- product2 = Label(rootf, text=blank+'ต้นทุน'+blank, font=fonts)
- product2.grid(row=c, column=2)
- product3 = Label(rootf, text=blank+'ราคาขาย'+blank, font=fonts)
- product3.grid(row=c, column=3)
- price = Label(rootf, text=blank+'ราคาเปลี่ยน'+blank, font=fonts)
- price.grid(row=c, column=4)
- list_price = []
- for i in self.product:
- c += 1
- product0 = Label(rootf, text=blank+str(c)+blank, font=fonts)
- product0.grid(row=c, column=0)
- product1 = Label(rootf, text=blank+i['name']+blank, font=fonts)
- product1.grid(row=c, column=1)
- if USER.rank == 'Master':
- product2 = Label(rootf, text=blank+i['cost']+blank, font=fonts)
- product2.grid(row=c, column=2)
- product3 = Label(rootf, text=blank+i['price']+blank, font=fonts)
- product3.grid(row=c, column=3)
- price = Entry(rootf, font=fonts, width=10)
- price.grid(row=c, column=4)
- list_price.append(price)
- submit = Button(rootf, text='Submit', command=self.change_price_, font=fonts)
- submit.grid(columnspan=5)
- rootf.mainloop()
- def change_price_(self):
- c = 0
- for i in list_price:
- self.product[c]['price'] = i.get()
- c += 1
- with open('shop'+str(self.number)+'/product', 'w+') as file:
- json.dump(self.product, file)
- display('อัพเดทสินค้าเรียบร้อย')
- rootf.destroy()
- for i in range(1, number_shop):
- list_shop.append(shop(i))
- def add_product():
- global USER
- if USER.rank == 'Master' or USER.rank == 'Boss':
- global rootg
- global nameE
- global costE
- rootg = Tk()
- rootg.title('Login')
- intruction = Label(rootg, text='Product\n', font=fonts)
- intruction.grid(columnspan=2)
- name = Label(rootg, text='Product\n', font=fonts)
- intruction.grid(column=0)
- name = Label(rootg, text='ชื่อสินต้า: ', font=fonts)
- cost = Label(rootg, text='ต้นทุน: ', font=fonts)
- name.grid(row=1)
- cost.grid(row=2)
- nameE = Entry(rootg, font=fonts)
- costE = Entry(rootg, font=fonts)
- nameE.grid(row=1, column=1)
- costE.grid(row=2, column=1)
- submit = Button(rootg, text='submit', command=add_product_, font=fonts)
- submit.grid(columnspan=2)
- rootg.mainloop()
- else:
- display('อัพเดทสินค้าเฉพาะเจ้าของเท่านั้น')
- def add_product_():
- product = {
- "name" : nameE.get(),
- "cost" : costE.get(),
- "price" : "NON"
- }
- for i in range(1, number_shop):
- list_shop[i].product.append(product)
- with open('shop'+str(i)+'/product', 'w+') as file:
- json.dump(list_shop[i].product, file)
- rootg.destroy()
- def product_display():
- global USER
- if USER.rank == 'Master':
- blank = ' '
- rooth = Tk()
- product0 = Label(rooth, text=blank+'หมายเลข'+blank, font=fonts)
- product0.grid(row=0, column=0)
- product1 = Label(rooth, text=blank+'ชื่อ'+blank, font=fonts)
- product1.grid(row=0, column=1)
- product2 = Label(rooth, text=blank+'ต้นทุน'+blank, font=fonts)
- product2.grid(row=0, column=2)
- product3 = Label(rooth, text=blank+'ราคาขายเฉลี่ย'+blank, font=fonts)
- product3.grid(row=0, column=3)
- for i in range(0,len(list_shop[1].product)):
- product0 = Label(rooth, text=blank+str(i+1)+blank, font=fonts)
- product0.grid(row=i+1, column=0)
- product1 = Label(rooth, text=blank+list_shop[1].product[i]['name']+blank, font=fonts)
- product1.grid(row=i+1, column=1)
- product2 = Label(rooth, text=blank+list_shop[1].product[i]['cost']+blank, font=fonts)
- product2.grid(row=i+1, column=2)
- average_price = 0
- count_ = 0
- for j in range(1, number_shop):
- if list_shop[j].product[i]['price'] != 'NON':
- count_ += 1
- average_price += int(list_shop[j].product[i]['price'])
- if count_ != 0:
- average_price /= count_
- average_price = round(average_price, 2)
- else:
- average_price = 'NON'
- product3 = Label(rooth, text=blank+str(average_price)+blank, font=fonts)
- product3.grid(row=i+1, column=3)
- rooth.mainloop()
- else:
- display('ดูสินค้าทั้งหมดเฉพาะเจ้าของเท่านั้น')
- def stop_c_price():
- rootz.destroy()
- def c_price():
- global rootz
- root.destroy()
- rootz = Tk()
- rootz.title('Main')
- rootz.geometry('250x250')
- rootz.configure(background='black')
- variable = StringVar()
- variable.set('เลือกร้าน')
- w = OptionMenu(rootz, variable, *name_shop[1:], command=c_price_)
- w.configure(width=10)
- w.pack(ipadx=10, ipady=10, pady=10)
- close = Button(rootz, text='Close', command=stop_c_price, font=fonts, bg='red', fg='white')
- close.pack(pady=10)
- def c_price_(shop_):
- for i in range(1, number_shop):
- if name_shop[i] == shop_:
- list_shop[i].change_price()
- break
- def loggedin():
- global USER
- USER = user()
- def stop1():
- exit(0)
- def stop2():
- global root
- global USER
- USER.username = False
- USER.password = False
- USER.rank = False
- root.destroy()
- USER = user(False)
- while True:
- if USER.rank == False:
- root = Tk()
- root.title('Main')
- root.geometry('250x250')
- root.configure(background='black')
- login = Button(root, text='Login', command=loggedin, font=fonts)
- login.pack(ipadx=10, ipady=10, pady=80)
- close = Button(root, text='Close', command=stop1, font=fonts, bg='red', fg='white')
- close.pack(pady=10)
- root.mainloop()
- ##################################################
- if USER.rank != False:
- root = Tk()
- root.title('Main')
- root.geometry('250x250')
- root.configure(background='black')
- changeprice = Button(root, text='เปลี่ยนราคาสินค้า', command=c_price, font=fonts)
- changeprice.pack(pady=10)
- if USER.rank == 'Master':
- addproduct = Button(root, text='เพิ่มสินค้า', command=add_product, font=fonts)
- addproduct.pack(pady=10)
- productdisplay = Button(root, text='ดูสินค้า', command=product_display, font=fonts)
- productdisplay.pack(pady=10)
- newUSER = user(False)
- addstaffboss = Button(root, text='เพิ่มพนักงาน', command=newUSER.signup, font=fonts)
- addstaffboss.pack(pady=10)
- logout = Button(root, text='logout', command=stop2, font=fonts, bg='red', fg='white')
- logout.pack(pady=10)
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement