webbersof

management system

Jul 6th, 2022
657
2
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 18.63 KB | None | 2 0
  1. from tkinter import *
  2. import tkinter as tk
  3. from time import gmtime, strftime, localtime
  4. from PIL import ImageTk, Image
  5. from tkinter import messagebox
  6.  
  7.  
  8. class cafe_management():
  9.  
  10.     # ============== Total Bill Code =================
  11.  
  12.     def Total_Bill(self):
  13.         self.tea_price = 4
  14.         self.coffee_price = 3
  15.         self.sandwitch_price = 8
  16.         self.cake_price = 5
  17.         self.burger_price = 12
  18.         self.pizza_price = 14
  19.         self.fries_price = 4
  20.         self.pepsi_price = 2
  21.  
  22.         if self.tea_item.get() != "":
  23.             self.tea_cost = self.tea_price * int(self.tea_item.get())
  24.         else:
  25.             self.tea_cost = 0
  26.         if self.coffee_item.get() != "":
  27.             self.coffee_cost = self.coffee_price * int(self.coffee_item.get())
  28.         else:
  29.             self.coffee_cost = 0
  30.         if self.sandwitch_item.get() != "":
  31.             self.sandwitch_cost = self.sandwitch_price * int(self.sandwitch_item.get())
  32.         else:
  33.             self.sandwitch_cost = 0
  34.         if self.cake_item.get() != "":
  35.             self.cake_cost = self.cake_price * int(self.cake_item.get())
  36.         else:
  37.             self.cake_cost = 0
  38.         if self.burger_item.get() != "":
  39.             self.burger_cost = self.burger_price * int(self.burger_item.get())
  40.         else:
  41.             self.burger_cost = 0
  42.         if self.pizza_item.get() != "":
  43.             self.pizza_cost = self.pizza_price * int(self.pizza_item.get())
  44.         else:
  45.             self.pizza_cost = 0
  46.         if self.fries_item.get() != "":
  47.             self.fries_cost = self.fries_price * int(self.fries_item.get())
  48.         else:
  49.             self.fries_cost = 0
  50.         if self.pepsi_item.get() != "":
  51.             self.pepsi_cost = self.pepsi_price * int(self.pepsi_item.get())
  52.         else:
  53.             self.pepsi_cost = 0
  54.  
  55.         self.Total_Bill = self.pepsi_cost + self.fries_cost + self.pizza_cost + self.burger_cost + self.cake_cost + self.sandwitch_cost + self.coffee_cost + self.tea_cost
  56.  
  57.         if self.items_cost != "":
  58.             self.items_cost.delete(0, END)
  59.             self.items_cost.insert(END, self.Total_Bill)
  60.         else:
  61.             self.items_cost.insert(END, self.Total_Bill)
  62.         if self.service_cost != "":
  63.             self.service_cost.delete(0, END)
  64.             self.service_cost.insert(END, f'{self.Total_Bill * 0.10:.2f}')
  65.         else:
  66.             self.service_cost.insert(END, f'{self.Total_Bill * 0.10:.2f}')
  67.         if self.sub_cost != "":
  68.             self.sub_cost.delete(0, END)
  69.             self.sub_cost.insert(END, f'{int(self.items_cost.get()) + float(self.service_cost.get()):.2f}')
  70.         else:
  71.             self.sub_cost.insert(END, f'{int(self.items_cost.get()) + float(self.service_cost.get()):.2f}')
  72.         if self.paid_tax != "":
  73.             self.paid_tax.delete(0, END)
  74.             self.paid_tax.insert(END, float(self.sub_cost.get()) * 8 / 100)
  75.         else:
  76.             self.paid_tax.insert(END, float(self.sub_cost.get()) * 8 / 100)
  77.  
  78.         if self.total_bill != "":
  79.             self.total_bill.delete(0, END)
  80.             self.total_bill.insert(END, f'{int(float(self.sub_cost.get()) + float(self.paid_tax.get())):.2f}')
  81.         else:
  82.             self.total_bill.insert(END, f'{int(float(self.sub_cost.get()) + float(self.paid_tax.get())):.2f}')
  83.  
  84.     # ===== Calculator code ================
  85.  
  86.     def nine(self):
  87.         if 'error' in self.result.get() or '=' in self.result.get():
  88.             self.result.delete(0, "end")
  89.             self.result.insert("end", "9")
  90.         else:
  91.             self.result.insert("end", "9")
  92.  
  93.     def eight(self):
  94.         if 'error' in self.result.get() or '=' in self.result.get():
  95.             self.result.delete(0, "end")
  96.             self.result.insert("end", "8")
  97.         else:
  98.             self.result.insert("end", "8")
  99.  
  100.     def seven(self):
  101.         if 'error' in self.result.get() or '=' in self.result.get():
  102.             self.result.delete(0, "end")
  103.             self.result.insert("end", "7")
  104.         else:
  105.             self.result.insert("end", "7")
  106.  
  107.     def six(self):
  108.         if 'error' in self.result.get() or '=' in self.result.get():
  109.             self.result.delete(0, "end")
  110.             self.result.insert("end", "6")
  111.         else:
  112.             self.result.insert("end", "6")
  113.  
  114.     def five(self):
  115.         if 'error' in self.result.get() or '=' in self.result.get():
  116.             self.result.delete(0, "end")
  117.             self.result.insert("end", "5")
  118.         else:
  119.             self.result.insert("end", "5")
  120.  
  121.     def four(self):
  122.         if 'error' in self.result.get() or '=' in self.result.get():
  123.             self.result.delete(0, "end")
  124.             self.result.insert("end", "4")
  125.         else:
  126.             self.result.insert("end", "4")
  127.  
  128.     def three(self):
  129.         if 'error' in self.result.get() or '=' in self.result.get():
  130.             self.result.delete(0, "end")
  131.             self.result.insert("end", "3")
  132.         else:
  133.             self.result.insert("end", "3")
  134.  
  135.     def two(self):
  136.         if 'error' in self.result.get() or '=' in self.result.get():
  137.             self.result.delete(0, "end")
  138.             self.result.insert("end", "2")
  139.         else:
  140.             self.result.insert("end", "2")
  141.  
  142.     def one(self):
  143.         if 'error' in self.result.get() or '=' in self.result.get():
  144.             self.result.delete(0, "end")
  145.             self.result.insert("end", "1")
  146.         else:
  147.             self.result.insert("end", "1")
  148.  
  149.     def zero(self):
  150.         if 'error' in self.result.get() or '=' in self.result.get():
  151.             self.result.delete(0, "end")
  152.             self.result.insert("end", "0")
  153.         else:
  154.             self.result.insert("end", "0")
  155.  
  156.     def plus(self):
  157.         if 'error' in self.result.get() or '=' in self.result.get():
  158.             self.result.delete(0, "end")
  159.             self.result.insert("end", "+")
  160.         else:
  161.             self.result.insert("end", "+")
  162.  
  163.     def minus(self):
  164.         if 'error' in self.result.get() or '=' in self.result.get():
  165.             self.result.delete(0, "end")
  166.             self.result.insert("end", "-")
  167.         else:
  168.             self.result.insert("end", "-")
  169.  
  170.     def mul(self):
  171.         if 'error' in self.result.get() or '=' in self.result.get():
  172.             self.result.delete(0, "end")
  173.             self.result.insert("end", "*")
  174.         else:
  175.             self.result.insert("end", "*")
  176.  
  177.     def divide(self):
  178.         if 'error' in self.result.get() or '=' in self.result.get():
  179.             self.result.delete(0, "end")
  180.             self.result.insert("end", "/")
  181.         else:
  182.             self.result.insert("end", "/")
  183.  
  184.     def equal(self):
  185.  
  186.         if self.result.get() == "":
  187.             self.result.insert("end", "error")
  188.         elif self.result.get()[0] == "0" or self.result.get()[0] == "+" or self.result.get()[0] == "*" or \
  189.                 self.result.get()[0] == "/":
  190.             self.result.delete(0, "end")
  191.             self.result.insert("end", "error")
  192.         elif 'error' in self.result.get() or '=' in self.result.get():
  193.             self.result.delete(0, "end")
  194.  
  195.  
  196.         else:
  197.             self.res = self.result.get()
  198.             self.res = eval(self.res)
  199.             self.result.insert("end", " = ")
  200.             self.result.insert("end", self.res)
  201.  
  202.     # =================== Clear Fields ===============
  203.     def clear(self):
  204.         self.result.delete(0, "end")
  205.  
  206.     def Clear(self):
  207.         self.tea_item.delete(0, "end")
  208.         self.coffee_item.delete(0, "end")
  209.         self.sandwitch_item.delete(0, "end")
  210.         self.burger_item.delete(0, "end")
  211.         self.cake_item.delete(0, "end")
  212.         self.fries_item.delete(0, "end")
  213.         self.pizza_item.delete(0, "end")
  214.         self.pepsi_item.delete(0, "end")
  215.         self.items_cost.delete(0, "end")
  216.         self.service_cost.delete(0, "end")
  217.         self.sub_cost.delete(0, "end")
  218.         self.paid_tax.delete(0, "end")
  219.         self.total_bill.delete(0, "end")
  220.  
  221.     # ==== Exit button code =================
  222.     def Quit(self):
  223.         self.message = messagebox.askquestion('Exit', "Do you want to exit the application")
  224.         if self.message == "yes":
  225.             self.root.destroy()
  226.         else:
  227.             "return"
  228.  
  229.         # ========== end ========================
  230.  
  231.     def __init__(self):
  232.         self.root = tk.Tk()
  233.         self.root.geometry('500x300')
  234.         self.root.title("Cafe Management System")
  235.         self.root.maxsize(500, 300)
  236.         self.root.minsize(500, 300)
  237.         self.root['bg'] = "white"
  238.  
  239.         self.heading = Label(self.root, text="Cafe Management System", font=('verdana', 20, 'bold'), fg="#248aa2",
  240.                              bg="white")
  241.         self.heading.place(x=60, y=5)
  242.  
  243.         self.style1 = Label(self.root, bg="#248aa2", height=1, width=17)
  244.         self.style1.place(x=0, y=50)
  245.         self.style2 = Label(self.root, bg="#248aa2", height=1, width=30)
  246.         self.style2.place(x=380, y=50)
  247.         self.date = Label(self.root, text=strftime("%Y-%m-%d %H:%M:%S", localtime()), font=('verdana', 10, 'bold'), bg="white")
  248.         self.date.place(x=170, y=50)
  249.  
  250.         self.cafe_icon = ImageTk.PhotoImage(Image.open('cafe.png'))
  251.         self.logo = Label(self.root, image=self.cafe_icon, bg="white")
  252.         self.logo.place(x=220, y=70)
  253.  
  254.         # ================== Items ===================
  255.         self.frame1 = LabelFrame(self.root, text="Cafe Items", width=150, height=200, font=('verdana', 10, 'bold'),
  256.                                  borderwidth=3, relief=RIDGE, highlightthickness=4, bg="white", highlightcolor="white",
  257.                                  highlightbackground="white", fg="#248aa2")
  258.         self.frame1.place(x=10, y=90)
  259.  
  260.         self.tea = Label(self.frame1, text="Tea", font=('verdana', 10, 'bold'), bg="white")
  261.         self.tea.place(x=3, y=1)
  262.         self.tea_item = Entry(self.frame1, width=7, borderwidth=4, relief=SUNKEN, bg="#248aa2")
  263.         self.tea_item.place(y=1, x=85)
  264.  
  265.         self.coffee = Label(self.frame1, text="Coffee", font=('verdana', 10, 'bold'), bg="white")
  266.         self.coffee.place(x=3, y=20)
  267.         self.coffee_item = Entry(self.frame1, width=7, borderwidth=4, relief=SUNKEN, bg="#248aa2")
  268.         self.coffee_item.place(y=20, x=85)
  269.  
  270.         self.sandwitch = Label(self.frame1, text="Sandwitch", font=('verdana', 10, 'bold'), bg="white")
  271.         self.sandwitch.place(x=3, y=40)
  272.         self.sandwitch_item = Entry(self.frame1, width=7, borderwidth=4, relief=SUNKEN, bg="#248aa2")
  273.         self.sandwitch_item.place(y=40, x=85)
  274.  
  275.         self.cake = Label(self.frame1, text="Cake", font=('verdana', 10, 'bold'), bg="white")
  276.         self.cake.place(x=3, y=60)
  277.         self.cake_item = Entry(self.frame1, width=7, borderwidth=4, relief=SUNKEN, bg="#248aa2")
  278.         self.cake_item.place(y=60, x=85)
  279.  
  280.         self.burger = Label(self.frame1, text="Burger", font=('verdana', 10, 'bold'), bg="white")
  281.         self.burger.place(x=3, y=80)
  282.         self.burger_item = Entry(self.frame1, width=7, borderwidth=4, relief=SUNKEN, bg="#248aa2")
  283.         self.burger_item.place(y=80, x=85)
  284.  
  285.         self.pizza = Label(self.frame1, text="Pizza", font=('verdana', 10, 'bold'), bg="white")
  286.         self.pizza.place(x=3, y=100)
  287.         self.pizza_item = Entry(self.frame1, width=7, borderwidth=4, relief=SUNKEN, bg="#248aa2")
  288.         self.pizza_item.place(y=100, x=85)
  289.  
  290.         self.fries = Label(self.frame1, text="Fries", font=('verdana', 10, 'bold'), bg="white")
  291.         self.fries.place(x=3, y=120)
  292.         self.fries_item = Entry(self.frame1, width=7, borderwidth=4, relief=SUNKEN, bg="#248aa2")
  293.         self.fries_item.place(y=120, x=85)
  294.  
  295.         self.pepsi = Label(self.frame1, text="Pepsi", font=('verdana', 10, 'bold'), bg="white")
  296.         self.pepsi.place(x=3, y=140)
  297.         self.pepsi_item = Entry(self.frame1, width=7, borderwidth=4, relief=SUNKEN, bg="#248aa2")
  298.         self.pepsi_item.place(y=140, x=85)
  299.  
  300.         # ============ Items Bill =================
  301.  
  302.         self.frame2 = LabelFrame(self.root, text="Cafe Items Bills", width=180, height=160,
  303.                                  font=('verdana', 10, 'bold'), borderwidth=3, relief=RIDGE, highlightthickness=4,
  304.                                  bg="white", highlightcolor="white", highlightbackground="white", fg="#248aa2")
  305.         self.frame2.place(x=170, y=120)
  306.  
  307.         self.item_cost_lb = Label(self.frame2, text="Items Cost", font=('verdana', 10, 'bold'), bg="white")
  308.         self.item_cost_lb.place(x=3, y=1)
  309.         self.items_cost = Entry(self.frame2, width=9, borderwidth=4, relief=SUNKEN, bg="#248aa2")
  310.         self.items_cost.place(y=1, x=100)
  311.  
  312.         self.service_cost_lb = Label(self.frame2, text="Service Cost", font=('verdana', 10, 'bold'), bg="white")
  313.         self.service_cost_lb.place(x=3, y=20)
  314.         self.service_cost = Entry(self.frame2, width=9, borderwidth=4, relief=SUNKEN, bg="#248aa2")
  315.         self.service_cost.place(y=20, x=100)
  316.  
  317.         self.sub_cost_lb = Label(self.frame2, text="Sub Cost", font=('verdana', 10, 'bold'), bg="white")
  318.         self.sub_cost_lb.place(x=3, y=40)
  319.         self.sub_cost = Entry(self.frame2, width=9, borderwidth=4, relief=SUNKEN, bg="#248aa2")
  320.         self.sub_cost.place(y=40, x=100)
  321.  
  322.         self.paid_tax_lb = Label(self.frame2, text="Paid Tax", font=('verdana', 10, 'bold'), bg="white")
  323.         self.paid_tax_lb.place(x=3, y=80)
  324.         self.paid_tax = Entry(self.frame2, width=9, borderwidth=4, relief=SUNKEN, bg="#248aa2")
  325.         self.paid_tax.place(y=80, x=100)
  326.  
  327.         self.total_bill_lb = Label(self.frame2, text="Total Bill", font=('verdana', 10, 'bold'), bg="white")
  328.         self.total_bill_lb.place(x=3, y=100)
  329.         self.total_bill = Entry(self.frame2, width=9, borderwidth=4, relief=SUNKEN, bg="#248aa2")
  330.         self.total_bill.place(y=100, x=100)
  331.  
  332.         # ================== Calculator ============
  333.         self.frame3 = LabelFrame(self.root, text="Calculator", font=('verdana', 10, 'bold'), fg="#248aa2", bg="white",
  334.                                  highlightbackground="white", width=135, height=150, borderwidth=3, relief=RIDGE)
  335.         self.frame3.place(x=360, y=90)
  336.  
  337.         self.result = Entry(self.frame3, width=19, relief=SUNKEN, borderwidth=3)
  338.         self.result.place(x=2, y=0)
  339.  
  340.         self.nine = Button(self.frame3, text="9", padx=6, relief=RAISED, borderwidth=2, font=('verdana', 10, 'bold'),
  341.                            bg='#248aa2', fg="white", command=self.nine)
  342.         self.nine.place(x=0, y=24)
  343.         self.eight = Button(self.frame3, text="8", padx=6, relief=RAISED, borderwidth=2, font=('verdana', 10, 'bold'),
  344.                             bg='#248aa2', fg="white", command=self.eight)
  345.         self.eight.place(x=32, y=24)
  346.         self.seven = Button(self.frame3, text="7", padx=6, relief=RAISED, borderwidth=2, font=('verdana', 10, 'bold'),
  347.                             bg='#248aa2', fg="white", command=self.seven)
  348.         self.seven.place(x=64, y=24)
  349.         self.plus = Button(self.frame3, text="+", padx=6, relief=RAISED, borderwidth=2, font=('verdana', 10, 'bold'),
  350.                            bg='white', fg="black", command=self.plus)
  351.         self.plus.place(x=96, y=24)
  352.  
  353.         self.six = Button(self.frame3, text="6", padx=6, relief=RAISED, borderwidth=2, font=('verdana', 10, 'bold'),
  354.                           bg='#248aa2', fg="white", command=self.six)
  355.         self.six.place(x=0, y=50)
  356.         self.five = Button(self.frame3, text="5", padx=6, relief=RAISED, borderwidth=2, font=('verdana', 10, 'bold'),
  357.                            bg='#248aa2', fg="white", command=self.five)
  358.         self.five.place(x=32, y=50)
  359.         self.four = Button(self.frame3, text="4", padx=6, relief=RAISED, borderwidth=2, font=('verdana', 10, 'bold'),
  360.                            bg='#248aa2', fg="white", command=self.four)
  361.         self.four.place(x=64, y=50)
  362.         self.minus = Button(self.frame3, text="-", padx=8, relief=RAISED, borderwidth=2, font=('verdana', 10, 'bold'),
  363.                             bg='white', fg="black", command=self.minus)
  364.         self.minus.place(x=96, y=50)
  365.  
  366.         self.three = Button(self.frame3, text="3", padx=6, relief=RAISED, borderwidth=2, font=('verdana', 10, 'bold'),
  367.                             bg='#248aa2', fg="white", command=self.three)
  368.         self.three.place(x=0, y=76)
  369.         self.two = Button(self.frame3, text="2", padx=6, relief=RAISED, borderwidth=2, font=('verdana', 10, 'bold'),
  370.                           bg='#248aa2', fg="white", command=self.two)
  371.         self.two.place(x=32, y=76)
  372.         self.one = Button(self.frame3, text="1", padx=6, relief=RAISED, borderwidth=2, font=('verdana', 10, 'bold'),
  373.                           bg='#248aa2', fg="white", command=self.one)
  374.         self.one.place(x=64, y=76)
  375.         self.multiply = Button(self.frame3, text="*", padx=7, relief=RAISED, borderwidth=2,
  376.                                font=('verdana', 10, 'bold'), bg='white', fg="black", command=self.mul)
  377.         self.multiply.place(x=96, y=76)
  378.  
  379.         self.zero = Button(self.frame3, text="0", padx=6, relief=RAISED, borderwidth=2, font=('verdana', 10, 'bold'),
  380.                            bg='#248aa2', fg="white", command=self.zero)
  381.         self.zero.place(x=0, y=102)
  382.         self.clear = Button(self.frame3, text="C", padx=6, relief=RAISED, borderwidth=2, font=('verdana', 10, 'bold'),
  383.                             bg='#248aa2', fg="white", command=self.clear)
  384.         self.clear.place(x=32, y=102)
  385.         self.equal = Button(self.frame3, text="=", padx=6, relief=RAISED, borderwidth=2, font=('verdana', 10, 'bold'),
  386.                             bg='#248aa2', fg="white", command=self.equal)
  387.         self.equal.place(x=64, y=102)
  388.         self.divide = Button(self.frame3, text="/", padx=7, relief=RAISED, borderwidth=2, font=('verdana', 10, 'bold'),
  389.                              bg='white', fg="black", command=self.divide)
  390.         self.divide.place(x=96, y=102)
  391.  
  392.         self.Total_Bills_btn = Button(self.root, text="Total", relief=RAISED, borderwidth=2,
  393.                                       font=('verdana', 10, 'bold'), bg='#248aa2', fg="white", command=self.Total_Bill)
  394.         self.Total_Bills_btn.place(x=360, y=245)
  395.  
  396.         self.Clear_btn = Button(self.root, text="Clear", relief=RAISED, borderwidth=2, font=('verdana', 10, 'bold'),
  397.                                 bg='#248aa2', fg="white", command=self.Clear)
  398.         self.Clear_btn.place(x=410, y=245)
  399.  
  400.         self.icon = ImageTk.PhotoImage(Image.open('false.png'))
  401.         self.Quit_btn = Button(self.root, image=self.icon, relief=RAISED, borderwidth=2, font=('verdana', 10, 'bold'),
  402.                                bg='#248aa2', fg="white", padx=5, command=self.Quit)
  403.         self.Quit_btn.place(x=463, y=245)
  404.  
  405.         self.root.mainloop()
  406.  
  407.  
  408. if __name__ == '__main__':
  409.     cafe_management()
Advertisement
Comments
Add Comment
Please, Sign In to add comment