Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import *
- import tkinter.messagebox as tm
- from tkinter import*
- import random
- import time
- import os
- import sqlite3
- import datetime
- class gui:
- def __init__(self, root):
- self.root = root
- self.text_Input = StringVar()
- self.operator =""
- self.Tops = Frame(root, width = 1600,height=50,relief=SUNKEN)
- self.Tops.pack(side=TOP)
- self.f1 = Frame(root, width = 800,height = 700, relief=SUNKEN)
- self.f1.pack(side=LEFT)
- self.f2 = Frame(root, width = 300,height = 700, relief=SUNKEN)
- self.f2.pack(side=RIGHT)
- #==============================Time======================================
- self.localtime=time.asctime(time.localtime(time.time()))
- #===============================Information==============================
- self.lblInfo = Label(self.Tops, font=('arial',50, 'bold'),text="Restaurant",fg="red", bd=10, anchor='w')
- self.lblInfo.grid(row=0,column=0)
- self.lblInfo = Label(self.Tops, font=('arial',20, 'bold'),text=self.localtime,fg="blue", bd=10, anchor='w')
- self.lblInfo.grid(row=1,column=0)
- self.txtDisplay = Entry(self.f2,font=('arial',20,'bold'), textvariable=self.text_Input, bd=30, insertwidth=4,
- bg="powder blue", justify='right')
- self.txtDisplay.grid(columnspan=4)
- self.btn7=Button(self.f2,padx=16,pady=16,bd=8, fg="black", font=('arial',20,'bold'),text="7", bg="powder blue", command=lambda: self.btnClick(7)).grid(row=2,column=0)
- self.btn8=Button(self.f2,padx=16,pady=16,bd=8, fg="black", font=('arial',20,'bold'),text="8", bg="powder blue", command=lambda: self.btnClick(8)).grid(row=2,column=1)
- self.btn9=Button(self.f2,padx=16,pady=16,bd=8, fg="black", font=('arial',20,'bold'),text="9", bg="powder blue", command=lambda: self.btnClick(9)).grid(row=2,column=2)
- self.Addition=Button(self.f2,padx=16,pady=16,bd=8, fg="black", font=('arial',20,'bold'),text="+", bg="powder blue", command=lambda: self.btnClick("+")).grid(row=2,column=3)
- #################################################################################################################
- self.btn4=Button(self.f2,padx=16,pady=16,bd=8, fg="black", font=('arial',20,'bold'),text="4", bg="powder blue", command=lambda: self.btnClick(4)).grid(row=3,column=0)
- self.btn5=Button(self.f2,padx=16,pady=16,bd=8, fg="black", font=('arial',20,'bold'),text="5", bg="powder blue", command=lambda: self.btnClick(5)).grid(row=3,column=1)
- self.btn6=Button(self.f2,padx=16,pady=16,bd=8, fg="black", font=('arial',20,'bold'),text="6", bg="powder blue", command=lambda: self.btnClick(6)).grid(row=3,column=2)
- self.Subtraction=Button(self.f2,padx=16,pady=16,bd=8, fg="black", font=('arial',20,'bold'),text="-", bg="powder blue", command=lambda: self.btnClick("-")).grid(row=3,column=3)
- #============================================= Row 4 ===============================================
- self.btn1=Button(self.f2,padx=16,pady=16,bd=8, fg="black", font=('arial',20,'bold'),text="1", bg="powder blue", command=lambda: self.btnClick(1)).grid(row=4,column=0)
- self.btn2=Button(self.f2,padx=16,pady=16,bd=8, fg="black", font=('arial',20,'bold'),text="2", bg="powder blue", command=lambda: self.btnClick(2)).grid(row=4,column=1)
- self.btn3=Button(self.f2,padx=16,pady=16,bd=8, fg="black", font=('arial',20,'bold'),text="3", bg="powder blue", command=lambda: self.btnClick(3)).grid(row=4,column=2)
- self.Multiply=Button(self.f2,padx=16,pady=16,bd=8, fg="black", font=('arial',20,'bold'),text="*", bg="powder blue", command=lambda: self.btnClick("*")).grid(row=4,column=3)
- #============================================ Row 5 ====================
- self.btn0=Button(self.f2,padx=16,pady=16,bd=8, fg="black", font=('arial',20,'bold'),text="0", bg="powder blue", command=lambda: self.btnClick(0)).grid(row=5,column=0)
- self.btnClear=Button(self.f2,padx=16,pady=16,bd=8, fg="black", font=('arial',20,'bold'),text="C", bg="powder blue", command=lambda: self.btnClearDisplay()).grid(row=5,column=1)
- self.btnEquals=Button(self.f2,padx=16,pady=16,bd=8, fg="black", font=('arial',20,'bold'),text="=", bg="powder blue", command=lambda: self.btnEqualsInput()).grid(row=5,column=2)
- self.Division=Button(self.f2,padx=16,pady=16,bd=8, fg="black", font=('arial',20,'bold'),text="/", bg="powder blue", command=lambda: self.btnClick("/")).grid(row=5,column=3)
- #===============================================Restaurant Info 1=========================================================
- self.rand = StringVar()
- self.Fries = StringVar()
- self.Burger = StringVar()
- self.Fillet = StringVar()
- self.SubTotal = StringVar()
- self.Total = StringVar()
- self.customerName = StringVar()
- self.Drinks = StringVar()
- self.Tax = StringVar()
- self.Cost = StringVar()
- self.Chicken_Burger = StringVar()
- self.Cheese_Burger = StringVar()
- self.lblReference= Label(self.f1,font=('arial',16,'bold'), text="Reference", bd=16, anchor='w')
- self.lblReference.grid(row=0,column=0)
- self.txtReference=Entry(self.f1,font=('arial',16,'bold'), textvariable=self.rand, bd=10, insertwidth=4, bg="powder blue", justify = 'right')
- self.txtReference.grid(row=0,column=1)
- self.lblFries= Label(self.f1,font=('arial',16,'bold'), text="Large Fries", bd=16, anchor='w')
- self.lblFries.grid(row=1,column=0)
- self.txtFries=Entry(self.f1,font=('arial',16,'bold'), textvariable=self.Fries, bd=10, insertwidth=4, bg="powder blue", justify = 'right')
- self.txtFries.grid(row=1,column=1)
- self.lblBurger= Label(self.f1,font=('arial',16,'bold'), text="Burger Meal", bd=16, anchor='w')
- self.lblBurger.grid(row=2,column=0)
- self.txtBurger=Entry(self.f1,font=('arial',16,'bold'), textvariable=self.Burger, bd=10, insertwidth=4, bg="powder blue", justify = 'right')
- self.txtBurger.grid(row=2,column=1)
- self.lblFillet= Label(self.f1,font=('arial',16,'bold'), text="Fillet_o_Meal", bd=16, anchor='w')
- self.lblFillet.grid(row=3,column=0)
- self.txtFillet=Entry(self.f1,font=('arial',16,'bold'), textvariable=self.Fillet, bd=10, insertwidth=4, bg="powder blue", justify = 'right')
- self.txtFillet.grid(row=3,column=1)
- self.lblChicken= Label(self.f1,font=('arial',16,'bold'), text="Chicken Meal", bd=16, anchor='w')
- self.lblChicken.grid(row=4,column=0)
- self.txtChicken=Entry(self.f1,font=('arial',16,'bold'), textvariable=self.Chicken_Burger, bd=10, insertwidth=4, bg="powder blue", justify = 'right')
- self.txtChicken.grid(row=4,column=1)
- self.lblCheese= Label(self.f1,font=('arial',16,'bold'), text="Cheese Meal", bd=16, anchor='w')
- self.lblCheese.grid(row=5,column=0)
- self.txtCheese=Entry(self.f1,font=('arial',16,'bold'), textvariable=self.Cheese_Burger, bd=10, insertwidth=4, bg="powder blue", justify = 'right')
- self.txtCheese.grid(row=5,column=1)
- #===============================================Restaurant Info 2=========================================================
- self.lblDrinks= Label(self.f1,font=('arial',16,'bold'), text="Drinks", bd=16, anchor='w')
- self.lblDrinks.grid(row=0,column=2)
- self.txtDrinks=Entry(self.f1,font=('arial',16,'bold'), textvariable=self.Drinks, bd=10, insertwidth=4, bg="#ffffff", justify = 'right')
- self.txtDrinks.grid(row=0,column=3)
- self.lblCost= Label(self.f1,font=('arial',16,'bold'), text="Cost of Meal", bd=16, anchor='w')
- self.lblCost.grid(row=2,column=2)
- self.txtCost=Entry(self.f1,font=('arial',16,'bold'), textvariable=self.Cost, bd=10, insertwidth=4, bg="#ffffff", justify = 'right')
- self.txtCost.grid(row=2,column=3)
- self.lblService= Label(self.f1,font=('arial',16,'bold'), text="Customer Name", bd=16, anchor='w')
- self.lblService.grid(row=1,column=2)
- self.txtService=Entry(self.f1,font=('arial',16,'bold'), textvariable=self.customerName, bd=10, insertwidth=4, bg="#ffffff", justify = 'right')
- self.txtService.grid(row=1,column=3)
- self.lblStateTax= Label(self.f1,font=('arial',16,'bold'), text="State Tax", bd=16, anchor='w')
- self.lblStateTax.grid(row=3,column=2)
- self.txtStateTax=Entry(self.f1,font=('arial',16,'bold'), textvariable=self.Tax, bd=10, insertwidth=4, bg="#ffffff", justify = 'right')
- self.txtStateTax.grid(row=3,column=3)
- self.lblSubTotal= Label(self.f1,font=('arial',16,'bold'), text="Sub Total", bd=16, anchor='w')
- self.lblSubTotal.grid(row=4,column=2)
- self.txtSubTotal=Entry(self.f1,font=('arial',16,'bold'), textvariable=self.SubTotal, bd=10, insertwidth=4, bg="#ffffff", justify = 'right')
- self.txtSubTotal.grid(row=4,column=3)
- self.lblTotalCost= Label(self.f1,font=('arial',16,'bold'), text="Total Cost", bd=16, anchor='w')
- self.lblTotalCost.grid(row=5,column=2)
- self.txtTotalCost=Entry(self.f1,font=('arial',16,'bold'), textvariable=self.Total, bd=10, insertwidth=4, bg="#ffffff", justify = 'right')
- self.txtTotalCost.grid(row=5,column=3)
- #===============================================Buttons=========================================================
- self.btnTotal=Button(self.f1,padx=16,pady=8, bd=16, fg="black",font=('arial',16,'bold'), width=10, text="Total", bg="powder blue",command = lambda: self.Ref()).grid(row=7, column=1)
- self.btnReset=Button(self.f1,padx=16,pady=8, bd=16, fg="black",font=('arial',16,'bold'), width=10, text="Reset", bg="powder blue",command = lambda: self.Reset()).grid(row=8, column=2)
- self.btnExit=Button(self.f1,padx=16,pady=8, bd=16, fg="black",font=('arial',16,'bold'), width=10, text="Exit", bg="powder blue",command = lambda: self.qExit()).grid(row=8, column=3)
- self.btnPrint=Button(self.f1,padx=16,pady=8, bd=16, fg="black",font=('arial',16,'bold'), width=10, text="Print", bg="powder blue",command = lambda: self.fileWrite()).grid(row=7, column=2)
- self.btnHelp=Button(self.f1,padx=16,pady=8, bd=16, fg="black",font=('arial',16,'bold'), width=10, text="Help", bg="powder blue", command= lambda: self.softwareHelp()).grid(row=7, column=3)
- self.btnAddToFile=Button(self.f1,padx=16,pady=8, bd=16, fg="black",font=('arial',16,'bold'), width=10, text="Add to File", bg="powder blue", command = lambda: self.databaseInput()).grid(row=8, column=1)
- #================================================ Write/Print ============================
- def fileWrite(self):
- name = nameCustomer
- f = open(name + ".txt","w+")
- appendMe = "test"
- appendFile = open(name + ".txt","a")
- appendFile.write(str(appendMe))
- #==========================================================================================
- #============================Calculator==================================
- def btnClick(self, numbers):
- global operator
- operator = self.operator + str(numbers)
- self.text_Input.set(operator)
- def btnClearDisplay(self):
- global operator
- operator = ""
- self.text_Input.set("")
- def btnEqualsInput(self):
- global operator
- self.sumup =str(eval(operator))
- self.text_Input.set(sumup)
- operator = ""
- ##def fileWrite():
- ## appendMe = OverAllCost
- ## appendFile = open('exampleFile.txt','a')
- ## appendFile.write(str(appendMe))
- def Ref(self):
- global OverAllCost
- global x
- global nameCustomer
- global TotalCost
- global PayTax
- global FinalCost
- x = random.randint(1,9999)
- self.randomRef = str(x)
- self.rand.set(self.randomRef)
- CoF=float(self.Fries.get())
- CoD=float(self.Drinks.get())
- CoFillet = float(self.Fillet.get())
- CoBurger=float(self.Burger.get())
- CoChicBurger = float(self.Chicken_Burger.get())
- CoCheese_Burger = float(self.Cheese_Burger.get())
- nameCustomer = self.customerName.get()
- CostofFries = CoF * 0.99
- CostofDrinks = CoD * 1.00
- CostofFillet = CoFillet * 2.99
- CostofBurger = CoBurger * 2.87
- CostofChicken_Burger = CoChicBurger * 2.89
- CostofCheese_Burger = CoCheese_Burger * 2.69
- CostofMeal = "£", str('%.2f' % (CostofFries + CostofDrinks + CostofFillet + CostofBurger + CostofChicken_Burger + CostofCheese_Burger))
- PayTax = ((CostofFries + CostofDrinks + CostofFillet + CostofBurger + CostofChicken_Burger + CostofCheese_Burger) * 0.2)
- TotalCost = (CostofFries + CostofDrinks + CostofFillet + CostofBurger + CostofChicken_Burger + CostofCheese_Burger)
- Ser_Charge = ((CostofFries + CostofDrinks + CostofFillet + CostofBurger + CostofChicken_Burger + CostofCheese_Burger)/99)
- Service = "£", str('%.2f' % Ser_Charge)
- OverAllCost = "£", str('%.2f' % (PayTax + TotalCost + Ser_Charge))
- FinalCost = ('%.2f' % (PayTax + TotalCost + Ser_Charge))
- PaidTax = "£", str('%.2f' % PayTax)
- self.Cost.set(CostofMeal)
- self.Tax.set(PaidTax)
- self.SubTotal.set(CostofMeal)
- self.Total.set(OverAllCost)
- def qExit(self):
- self.root.destroy() #closes program
- def Reset(self):
- self.rand.set("") #Sets all fields to blank
- self.Fries.set("")
- self.Burger.set("")
- self.Fillet.set("")
- self.SubTotal.set("")
- self.Total.set("")
- self.customerName.set("")
- self.Drinks.set("")
- self.Tax.set("")
- self.Cost.set("")
- self.Chicken_Burger.set("")
- self.Cheese_Burger.set("")
- def softwareHelp(self):
- #file = open('Help.txt','r').read()
- #print(file)
- os.system(r'%windir%\system32\notepad.exe "C:\Users\Geff\Documents\Computing22/Help.txt"')
- def dbOpen(self):
- os.system(r'C:\Program Files\DB Browser for SQLite\DB Browser for SQLite.exe "C:\Users\Geff\Documents\Computing22/Orders.db"')
- ###########################################Database############################
- def databaseInput(self):
- conn = sqlite3.connect('Orders.db')
- c = conn.cursor()
- def create_table():
- c.execute('CREATE TABLE IF NOT EXISTS stuffToPlot(Reference REAL, Date TEXT, Name TEXT, SubTotal REAL, VAT REAL, Total REAL)')
- ##def data_entry():
- ## c.execute("INSERT INTO stuffToPlot VALUES(145123542, '2016-01-01', 'Python', 55)")
- ## conn.commit() #Saving the updates to the database
- ## c.close() #closes cursor
- ## conn.close() #close the connection
- def dynamic_data_entry():
- timeVariable = time.time()
- date = str(datetime.datetime.fromtimestamp(timeVariable).strftime('%Y-%m-%d %H:%M:%S'))
- keyword = 'Pyhthon'
- value = random.randrange(0,10)
- c.execute("INSERT INTO stuffToPlot (Reference, Date, Name, SubTotal, VAT, Total) VALUES (?, ?, ?, ?, ?, ?)",
- (x, date, nameCustomer, TotalCost, PayTax, FinalCost)) ##insert into these columns, ? is for inserting stuff, then last bit is the variables you're inserting
- conn.commit()
- create_table()
- #data_entry()
- dynamic_data_entry()
- c.close()
- #================================================ Write/Print ============================
- def fileWrite(self):
- name = nameCustomer
- f = open(name + ".txt","w")
- #==========================================================================================
- class LoginFrame(Frame):
- def __init__(self, master):
- super().__init__(master)
- self.label_1 = Label(self, text="Username")
- self.label_2 = Label(self, text="Password")
- self.entry_1 = Entry(self)
- self.entry_2 = Entry(self, show="*")
- self.label_1.grid(row=0, sticky=E)
- self.label_2.grid(row=1, sticky=E)
- self.entry_1.grid(row=0, column=1)
- self.entry_2.grid(row=1, column=1)
- self.checkbox = Checkbutton(self, text="Keep me logged in")
- self.checkbox.grid(columnspan=2)
- self.logbtn = Button(self, text="Login", command = self._login_btn_clickked)
- self.logbtn.grid(columnspan=2)
- self.pack()
- def _login_btn_clickked(self):
- #print("Clicked")
- username = self.entry_1.get()
- password = self.entry_2.get()
- #print(username, password)
- if username == "admin" and password == "password":
- tm.showinfo("Login info", "Welcome John")
- root.destroy()
- else:
- tm.showerror("Login error", "Incorrect username")
- root = Tk()
- lf = LoginFrame(root)
- root.mainloop()
- root = Tk()
- mainGUI = gui(root)
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement