Skip to content

Billing System in Python #209

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added B/Billing System/Bill.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
426 changes: 426 additions & 0 deletions B/Billing System/Billing_System.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,426 @@
from tkinter import*
import random
import os
from tkinter import messagebox

# ============main============================
class Bill_App:
def __init__(self, root):
self.root = root
self.root.geometry("1350x700+0+0")
self.root.title("Billing Software")
bg_color = "#badc57"
title = Label(self.root, text="Billing Software", font=('times new roman', 30, 'bold'), pady=2, bd=12, bg="#badc57", fg="Black", relief=GROOVE)
title.pack(fill=X)
# ================variables=======================
self.sanitizer = IntVar()
self.mask = IntVar()
self.hand_gloves = IntVar()
self.dettol = IntVar()
self.newsprin = IntVar()
self.thermal_gun = IntVar()
# ============grocery==============================
self.rice = IntVar()
self.food_oil = IntVar()
self.wheat = IntVar()
self.daal = IntVar()
self.flour = IntVar()
self.maggi = IntVar()
#=============coldDtinks=============================
self.sprite = IntVar()
self.limka = IntVar()
self.mazza = IntVar()
self.coke = IntVar()
self.fanta = IntVar()
self.mountain_duo = IntVar()
# ==============Total product price================
self.medical_price = StringVar()
self.grocery_price = StringVar()
self.cold_drinks_price = StringVar()
# ==============Customer==========================
self.c_name = StringVar()
self.c_phone = StringVar()
self.bill_no = StringVar()
x = random.randint(1000, 9999)
self.bill_no.set(str(x))
self.search_bill = StringVar()
# ===============Tax================================
self.medical_tax = StringVar()
self.grocery_tax = StringVar()
self.cold_drinks_tax = StringVar()
# =============customer retail details======================
F1 = LabelFrame(self.root, text="Customer Details", font=('times new roman', 15, 'bold'), bd=10, fg="Black", bg="#badc57")
F1.place(x=0, y=80, relwidth=1)
cname_lbl = Label(F1, text="Customer Name:", bg=bg_color, font=('times new roman', 15, 'bold'))
cname_lbl.grid(row=0, column=0, padx=20, pady=5)
cname_txt = Entry(F1, width=15, textvariable=self.c_name, font='arial 15', bd=7, relief=GROOVE)
cname_txt.grid(row=0, column=1, pady=5, padx=10)

cphn_lbl = Label(F1, text="Customer Phone:", bg="#badc57", font=('times new roman', 15, 'bold'))
cphn_lbl.grid(row=0, column=2, padx=20, pady=5)
cphn_txt = Entry(F1, width=15, textvariable=self.c_phone, font='arial 15', bd=7, relief=GROOVE)
cphn_txt.grid(row=0, column=3, pady=5, padx=10)

c_bill_lbl = Label(F1, text="Bill Number:", bg="#badc57", font=('times new roman', 15, 'bold'))
c_bill_lbl.grid(row=0, column=4, padx=20, pady=5)
c_bill_txt = Entry(F1, width=15, textvariable=self.search_bill, font='arial 15', bd=7, relief=GROOVE)
c_bill_txt.grid(row=0, column=5, pady=5, padx=10)

bil_btn = Button(F1, text="Search", command=self.find_bill, width=10, bd=7, font=('arial', 12, 'bold'), relief=GROOVE)
bil_btn.grid(row=0, column=6, pady=5, padx=10)

# ===================Medical====================================
F2 = LabelFrame(self.root, text="Medical Purpose", font=('times new roman', 15, 'bold'), bd=10, fg="Black", bg="#badc57")
F2.place(x=5, y=180, width=325, height=380)

sanitizer_lbl = Label(F2, text="Sanitizer", font=('times new roman', 16, 'bold'), bg="#badc57", fg="black")
sanitizer_lbl.grid(row=0, column=0, padx=10, pady=10, sticky='W')
sanitizer_txt = Entry(F2, width=10, textvariable=self.sanitizer, font=('times new roman', 16, 'bold'), bd=5, relief=GROOVE)
sanitizer_txt.grid(row=0, column=1, padx=10, pady=10)

mask_lbl = Label(F2, text="Mask", font=('times new roman', 16, 'bold'), bg="#badc57", fg="black")
mask_lbl.grid(row=1, column=0, padx=10, pady=10, sticky='W')
mask_txt = Entry(F2, width=10, textvariable=self.mask, font=('times new roman', 16, 'bold'), bd=5, relief=GROOVE)
mask_txt.grid(row=1, column=1, padx=10, pady=10)

hand_gloves_lbl = Label(F2, text="Hand Gloves", font=('times new roman', 16, 'bold'), bg="#badc57", fg="black")
hand_gloves_lbl.grid(row=2, column=0, padx=10, pady=10, sticky='W')
hand_gloves_txt = Entry(F2, width=10, textvariable=self.hand_gloves, font=('times new roman', 16, 'bold'), bd=5, relief =GROOVE)
hand_gloves_txt.grid(row=2, column=1, padx=10, pady=10)

dettol_lbl = Label(F2, text="Dettol", font=('times new roman', 16, 'bold'), bg="#badc57", fg="black")
dettol_lbl.grid(row=3, column=0, padx=10, pady=10, sticky='W')
dettol_txt = Entry(F2, width=10, textvariable=self.dettol, font=('times new roman', 16, 'bold'), bd=5, relief=GROOVE)
dettol_txt.grid(row=3, column=1, padx=10, pady=10)

newsprin_lbl = Label(F2, text="Newsprin", font =('times new roman', 16, 'bold'), bg = "#badc57", fg = "black")
newsprin_lbl.grid(row=4, column=0, padx=10, pady=10, sticky='W')
newsprin_txt = Entry(F2, width=10, textvariable=self.newsprin, font=('times new roman', 16, 'bold'), bd=5, relief=GROOVE)
newsprin_txt.grid(row=4, column=1, padx=10, pady=10)

thermal_gun_lbl = Label(F2, text="Thermal Gun", font=('times new roman', 16, 'bold'), bg="#badc57", fg="black")
thermal_gun_lbl.grid(row=5, column=0, padx=10, pady=10, sticky='W')
thermal_gun_txt = Entry(F2, width=10, textvariable=self.thermal_gun, font=('times new roman', 16, 'bold'), bd=5, relief=GROOVE)
thermal_gun_txt.grid(row=5, column=1, padx=10, pady=10)

# ==========GroceryItems=========================
F3 = LabelFrame(self.root, text="Grocery Items", font=('times new roman', 15, 'bold'), bd=10, fg="Black", bg="#badc57")
F3.place(x=340, y=180, width=325, height=380)

rice_lbl = Label(F3, text="Rice", font=('times new roman', 16, 'bold'), bg="#badc57", fg="black")
rice_lbl.grid(row=0, column=0, padx=10, pady=10, sticky='W')
rice_txt = Entry(F3, width=10, textvariable=self.rice, font=('times new roman', 16, 'bold'), bd=5, relief=GROOVE)
rice_txt.grid(row=0, column=1, padx=10, pady=10)

food_oil_lbl = Label(F3, text="Food Oil", font=('times new roman', 16, 'bold'), bg="#badc57", fg="black")
food_oil_lbl.grid(row=1, column=0, padx=10, pady=10, sticky='W')
food_oil_txt = Entry(F3, width=10, textvariable=self.food_oil, font=('times new roman', 16, 'bold'), bd=5, relief=GROOVE)
food_oil_txt.grid(row=1, column=1, padx=10, pady=10)

wheat_lbl = Label(F3, text="Wheat", font=('times new roman', 16, 'bold'), bg="#badc57", fg="black")
wheat_lbl.grid(row=2, column=0, padx=10, pady=10, sticky='W')
wheat_txt = Entry(F3, width=10, textvariable=self.wheat, font=('times new roman', 16, 'bold'), bd=5, relief=GROOVE)
wheat_txt.grid(row=2, column=1, padx=10, pady=10)

daal_lbl = Label(F3, text="Daal", font=('times new roman', 16, 'bold'), bg="#badc57", fg="black")
daal_lbl.grid(row=3, column=0, padx=10, pady=10, sticky='W')
daal_txt = Entry(F3, width=10, textvariable=self.daal, font=('times new roman', 16, 'bold'), bd=5, relief=GROOVE)
daal_txt.grid(row=3, column=1, padx=10, pady=10)

flour_lbl = Label(F3, text="Flour", font=('times new roman', 16, 'bold'), bg="#badc57", fg="black")
flour_lbl.grid(row=4, column=0, padx=10, pady=10, sticky='W')
flour_txt = Entry(F3, width=10, textvariable=self.flour, font=('times new roman', 16, 'bold'), bd=5, relief=GROOVE)
flour_txt.grid(row=4, column=1, padx=10, pady=10)

maggi_lbl = Label(F3, text="Maggi", font=('times new roman', 16, 'bold'), bg="#badc57", fg="black")
maggi_lbl.grid(row=5, column=0, padx=10, pady=10, sticky='W')
maggi_txt = Entry(F3, width=10, textvariable=self.maggi, font=('times new roman', 16, 'bold'), bd=5, relief=GROOVE)
maggi_txt.grid(row=5, column=1, padx=10, pady=10)

# ===========ColdDrinks================================
F4 = LabelFrame(self.root, text="Cold Drinks", font=('times new roman', 15, 'bold'), bd=10, fg="Black", bg="#badc57")
F4.place(x=670, y=180, width=325, height=380)

sprite_lbl = Label(F4, text="Sprite", font=('times new roman', 16, 'bold'), bg="#badc57", fg="black")
sprite_lbl.grid(row=0, column=0, padx=10, pady=10, sticky='W')
sprite_txt = Entry(F4, width=10, textvariable=self.sprite, font=('times new roman', 16, 'bold'), bd=5, relief=GROOVE)
sprite_txt.grid(row=0, column=1, padx=10, pady=10)

limka_lbl = Label(F4, text="Limka", font=('times new roman', 16, 'bold'), bg="#badc57", fg="black")
limka_lbl.grid(row=1, column=0, padx=10, pady=10, sticky='W')
limka_txt = Entry(F4, width=10, textvariable=self.limka, font=('times new roman', 16, 'bold'), bd=5, relief=GROOVE)
limka_txt.grid(row=1, column=1, padx=10, pady=10)

mazza_lbl = Label(F4, text="Mazza", font=('times new roman', 16, 'bold'), bg="#badc57", fg="black")
mazza_lbl.grid(row=2, column=0, padx=10, pady=10, sticky='W')
wheat_txt = Entry(F4, width=10, textvariable=self.mazza, font=('times new roman', 16, 'bold'), bd=5, relief=GROOVE)
wheat_txt.grid(row=2, column=1, padx=10, pady=10)

coke_lbl = Label(F4, text="Coke", font=('times new roman', 16, 'bold'), bg="#badc57", fg="black")
coke_lbl.grid(row=3, column=0, padx=10, pady=10, sticky='W')
coke_txt = Entry(F4, width=10, textvariable=self.coke, font=('times new roman', 16, 'bold'), bd=5, relief=GROOVE)
coke_txt.grid(row=3, column=1, padx=10, pady=10)

fanta_lbl = Label(F4, text="Fanta", font=('times new roman', 16, 'bold'), bg="#badc57", fg="black")
fanta_lbl.grid(row=4, column=0, padx=10, pady=10, sticky='W')
fanta_txt = Entry(F4, width=10, textvariable=self.fanta, font=('times new roman', 16, 'bold'), bd=5, relief=GROOVE)
fanta_txt.grid(row=4, column=1, padx=10, pady=10)

mountain_duo_lbl = Label(F4, text="Mountain Duo", font=('times new roman', 16, 'bold'), bg="#badc57", fg="black")
mountain_duo_lbl.grid(row=5, column=0, padx=10, pady=10, sticky='W')
mountain_duo_txt = Entry(F4, width=10, textvariable=self.mountain_duo, font=('times new roman', 16, 'bold'), bd=5, relief=GROOVE)
mountain_duo_txt.grid(row=5, column=1, padx=10, pady=10)

# =================BillArea======================
F5 = Frame(self.root, bd=10, relief=GROOVE)
F5.place(x=1010, y=180, width=350, height=380)

bill_title = Label(F5, text="Bill Area", font='arial 15 bold', bd=7, relief=GROOVE)
bill_title.pack(fill=X)
scroll_y = Scrollbar(F5, orient=VERTICAL)
self.txtarea = Text(F5, yscrollcommand=scroll_y.set)
scroll_y.pack(side=RIGHT, fill=Y)
scroll_y.config(command=self.txtarea.yview)
self.txtarea.pack(fill=BOTH, expand=1)

# =======================ButtonFrame=============
F6 = LabelFrame(self.root, text="Bill Area", font=('times new roman', 14, 'bold'), bd=10, fg="Black", bg="#badc57")
F6.place(x=0, y=560, relwidth=1, height=140)

m1_lbl = Label(F6, text="Total Medical Price", font=('times new roman', 14, 'bold'), bg="#badc57", fg="black")
m1_lbl.grid(row=0, column=0, padx=20, pady=1, sticky='W')
m1_txt = Entry(F6, width=18, textvariable=self.medical_price, font='arial 10 bold', bd=7, relief=GROOVE)
m1_txt.grid(row=0, column=1, padx=18, pady=1)

m2_lbl = Label(F6, text="Total Grocery Price", font=('times new roman', 14, 'bold'), bg="#badc57", fg="black")
m2_lbl.grid(row=1, column=0, padx=20, pady=1, sticky='W')
m2_txt = Entry(F6, width=18, textvariable=self.grocery_price, font='arial 10 bold', bd=7, relief=GROOVE)
m2_txt.grid(row=1, column=1, padx=18, pady=1)

m3_lbl = Label(F6, text="Total Cold Drinks Price", font=('times new roman', 14, 'bold'), bg="#badc57", fg="black")
m3_lbl.grid(row=2, column=0, padx=20, pady=1, sticky='W')
m3_txt = Entry(F6, width=18, textvariable=self.cold_drinks_price, font='arial 10 bold', bd=7, relief=GROOVE)
m3_txt.grid(row=2, column=1, padx=18, pady=1)

m4_lbl = Label(F6, text="Medical Tax", font=('times new roman', 14, 'bold'), bg="#badc57", fg="black")
m4_lbl.grid(row=0, column=2, padx=20, pady=1, sticky='W')
m4_txt = Entry(F6, width=18, textvariable=self.medical_tax, font='arial 10 bold', bd=7, relief=GROOVE)
m4_txt.grid(row=0, column=3, padx=18, pady=1)

m5_lbl = Label(F6, text="Grocery Tax", font=('times new roman', 14, 'bold'), bg="#badc57", fg="black")
m5_lbl.grid(row=1, column=2, padx=20, pady=1, sticky='W')
m5_txt = Entry(F6, width=18, textvariable=self.grocery_tax, font='arial 10 bold', bd=7, relief=GROOVE)
m5_txt.grid(row=1, column=3, padx=18, pady=1)

m6_lbl = Label(F6, text="Cold Drinks Tax", font=('times new roman', 14, 'bold'), bg="#badc57", fg="black")
m6_lbl.grid(row=2, column=2, padx=20, pady=1, sticky='W')
m6_txt = Entry(F6, width=18, textvariable=self.cold_drinks_tax, font='arial 10 bold', bd=7, relief=GROOVE)
m6_txt.grid(row=2, column=3, padx=18, pady=1)

# =======Buttons-======================================
btn_f = Frame(F6, bd=7, relief=GROOVE)
btn_f.place(x=760, width=580, height=105)

total_btn = Button(btn_f, command=self.total, text="Total", bg="#535C68", bd=2, fg="white", pady=15, width=12, font='arial 13 bold')
total_btn.grid(row=0, column=0, padx=5, pady=5)

generateBill_btn = Button(btn_f, command=self.bill_area, text="Generate Bill", bd=2, bg="#535C68", fg="white", pady=12, width=12, font='arial 13 bold')
generateBill_btn.grid(row=0, column=1, padx=5, pady=5)

clear_btn = Button(btn_f, command=self.clear_data, text="Clear", bg="#535C68", bd=2, fg="white", pady=15, width=12, font='arial 13 bold')
clear_btn.grid(row=0, column=2, padx=5, pady=5)

exit_btn = Button(btn_f, command=self.exit_app, text="Exit", bd=2, bg="#535C68", fg="white", pady=15, width=12, font='arial 13 bold')
exit_btn.grid(row=0, column=3, padx=5, pady=5)
self.welcome_bill()

#================totalBill==========================
def total(self):
self.m_h_g_p = self.hand_gloves.get()*12
self.m_s_p = self.sanitizer.get()*2
self.m_m_p = self.mask.get()*5
self.m_d_p = self.dettol.get()*30
self.m_n_p = self.newsprin.get()*5
self.m_t_g_p = self.thermal_gun.get()*15
self.total_medical_price = float(self.m_m_p+self.m_h_g_p+self.m_d_p+self.m_n_p+self.m_t_g_p+self.m_s_p)

self.medical_price.set("Rs. "+str(self.total_medical_price))
self.c_tax = round((self.total_medical_price*0.05), 2)
self.medical_tax.set("Rs. "+str(self.c_tax))

self.g_r_p = self.rice.get()*10
self.g_f_o_p = self.food_oil.get()*10
self.g_w_p = self.wheat.get()*10
self.g_d_p = self.daal.get()*6
self.g_f_p = self.flour.get()*8
self.g_m_p = self.maggi.get()*5
self.total_grocery_price = float(self.g_r_p+self.g_f_o_p+self.g_w_p+self.g_d_p+self.g_f_p+self.g_m_p)

self.grocery_price.set("Rs. " + str(self.total_grocery_price))
self.g_tax = round((self.total_grocery_price*5), 2)
self.grocery_tax.set("Rs. " + str(self.g_tax))

self.c_d_s_p = self.sprite.get()*10
self.c_d_l_p = self.limka.get()*10
self.c_d_m_p = self.mazza.get()*10
self.c_d_c_p = self.coke.get()*10
self.c_d_f_p = self.fanta.get()*10
self.c_m_d = self.mountain_duo.get()*10
self.total_cold_drinks_price = float(self.c_d_s_p+self.c_d_l_p+self.c_d_m_p+self.c_d_c_p+self.c_d_f_p+self.c_m_d)

self.cold_drinks_price.set("Rs. "+str(self.total_cold_drinks_price))
self.c_d_tax = round((self.total_cold_drinks_price * 0.1), 2)
self.cold_drinks_tax.set("Rs. "+str(self.c_d_tax))

self.total_bill = float(self.total_medical_price+self.total_grocery_price+self.total_cold_drinks_price+self.c_tax+self.g_tax+self.c_d_tax)

#==============welcome-bill==============================
def welcome_bill(self):
self.txtarea.delete('1.0', END)
self.txtarea.insert(END, "\tWelcome Webcode Retail")
self.txtarea.insert(END, f"\n Bill Number:{self.bill_no.get()}")
self.txtarea.insert(END, f"\nCustomer Name:{self.c_name.get()}")
self.txtarea.insert(END, f"\nPhone Number{self.c_phone.get()}")
self.txtarea.insert(END, f"\n================================")
self.txtarea.insert(END, f"\nProducts\t\tQTY\t\tPrice")

#=========billArea=================================================
def bill_area(self):
if self.c_name.get() == " " or self.c_phone.get() == " ":
messagebox.showerror("Error", "Customer Details Are Must")
elif self.medical_price.get() == "Rs. 0.0" and self.grocery_price.get() == "Rs. 0.0" and self.cold_drinks_price.get()=="Rs. 0.0":
messagebox.showerror("Error", "No Product Purchased")
else:
self.welcome_bill()
# ============medical===========================
if self.sanitizer.get() != 0:
self.txtarea.insert(END, f"\n Sanitizer\t\t{self.sanitizer.get()}\t\t{self.m_s_p}")
if self.mask.get() != 0:
self.txtarea.insert(END, f"\n Sanitizer\t\t{self.mask.get()}\t\t{self.m_m_p}")
if self.hand_gloves.get() != 0:
self.txtarea.insert(END, f"\n Hand Gloves\t\t{self.hand_gloves.get()}\t\t{self.m_h_g_p}")
if self.dettol.get() != 0:
self.txtarea.insert(END, f"\n Dettol\t\t{self.dettol.get()}\t\t{self.m_d_p}")
if self.newsprin.get() != 0:
self.txtarea.insert(END, f"\n Newsprin\t\t{self.newsprin.get()}\t\t{self.m_n_p}")
if self.thermal_gun.get() != 0:
self.txtarea.insert(END , f"\n Thermal Gun\t\t{self.sanitizer.get()}\t\t{self.m_t_g_p}")
# ==============Grocery============================
if self.rice.get() != 0:
self.txtarea.insert(END, f"\n Rice\t\t{self.rice.get()}\t\t{self.g_r_p}")
if self.food_oil.get() != 0:
self.txtarea.insert(END, f"\n Food Oil\t\t{self.food_oil.get()}\t\t{self.g_f_o_p}")
if self.wheat.get() != 0:
self.txtarea.insert(END, f"\n Wheat\t\t{self.wheat.get()}\t\t{self.g_w_p}")
if self.daal.get() != 0:
self.txtarea.insert(END, f"\n Daal\t\t{self.daal.get()}\t\t{self.g_d_p}")
if self.flour.get() != 0:
self.txtarea.insert(END, f"\n Flour\t\t{self.flour.get()}\t\t{self.g_f_p}")
if self.maggi.get() != 0:
self.txtarea.insert(END, f"\n Maggi\t\t{self.maggi.get()}\t\t{self.g_m_p}")
#================ColdDrinks==========================
if self.sprite.get() != 0:
self.txtarea.insert(END, f"\n Sprite\t\t{self.sprite.get()}\t\t{self.c_d_s_p}")
if self.limka.get() != 0:
self.txtarea.insert(END, f"\n Sanitizer\t\t{self.limka.get()}\t\t{self.c_d_l_p}")
if self.mazza.get() != 0:
self.txtarea.insert(END, f"\n Mazza\t\t{self.mazza.get()}\t\t{self.c_d_m_p}")
if self.coke.get() != 0:
self.txtarea.insert(END, f"\n Dettol\t\t{self.coke.get()}\t\t{self.c_d_c_p}")
if self.fanta.get() != 0:
self.txtarea.insert(END, f"\n Fanta\t\t{self.newsprin.get()}\t\t{self.c_d_f_p}")
if self.mountain_duo.get() != 0:
self.txtarea.insert(END, f"\n Mountain Duo\t\t{self.sanitizer.get()}\t\t{self.c_m_d}")
self.txtarea.insert(END, f"\n--------------------------------")
# ===============taxes==============================
if self.medical_tax.get() != '0.0':
self.txtarea.insert(END, f"\n Medical Tax\t\t\t{self.medical_tax.get()}")
if self.grocery_tax.get() != '0.0':
self.txtarea.insert(END, f"\n Grocery Tax\t\t\t{self.grocery_tax.get()}")
if self.cold_drinks_tax.get() != '0.0':
self.txtarea.insert(END, f"\n Cold Drinks Tax\t\t\t{self.cold_drinks_tax.get()}")

self.txtarea.insert(END, f"\n Total Bil:\t\t\t Rs.{self.total_bill}")
self.txtarea.insert(END, f"\n--------------------------------")
self.save_bill()

#=========savebill============================
def save_bill(self):
op = messagebox.askyesno("Save Bill", "Do you want to save the bill?")
if op > 0:
self.bill_data = self.txtarea.get('1.0', END)
f1 = open("bills/"+str(self.bill_no.get())+".txt", "w")
f1.write(self.bill_data)
f1.close()
messagebox.showinfo("Saved", f"Bill no:{self.bill_no.get()} Saved Successfully")
else:
return

# ===================find_bill================================
def find_bill(self):
present = "no"
for i in os.listdir("bills/"):
if i.split('.')[0] == self.search_bill.get():
f1 = open(f"bills/{i}", "r")
self.txtarea.delete("1.0", END)
for d in f1:
self.txtarea.insert(END, d)
f1.close()
present = "yes"
if present == "no":
messagebox.showerror("Error", "Invalid Bill No")

# ======================clear-bill======================
def clear_data(self):
op = messagebox.askyesno("Clear", "Do you really want to Clear?")
if op > 0:
self.sanitizer.set(0)
self.mask.set(0)
self.hand_gloves.set(0)
self.dettol.set(0)
self.newsprin.set(0)
self.thermal_gun.set(0)
# ============grocery==============================
self.rice.set(0)
self.food_oil.set(0)
self.wheat.set(0)
self.daal.set(0)
self.flour.set(0)
self.maggi.set(0)
# =============coldDrinks=============================
self.sprite.set(0)
self.limka.set(0)
self.mazza.set(0)
self.coke.set(0)
self.fanta.set(0)
self.mountain_duo.set(0)
# ====================taxes================================
self.medical_price.set("")
self.grocery_price.set("")
self.cold_drinks_price.set("")

self.medical_tax.set("")
self.grocery_tax.set("")
self.cold_drinks_tax.set("")

self.c_name.set("")
self.c_phone.set("")

self.bill_no.set("")
x = random.randint(1000, 9999)
self.bill_no.set(str(x))

self.search_bill.set("")
self.welcome_bill()

# ===========exit=======================
def exit_app(self):
op = messagebox.askyesno("Exit", "Do you really want to exit?")
if op > 0:
self.root.destroy()


root = Tk()
obj = Bill_App(root)
root.mainloop()

24 changes: 24 additions & 0 deletions B/Billing System/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<h1>Billing system using Tkinter</h1>
<p>This project can be used for any shops. User can store all the data and generate the bill.</p>

<h2>Tech stack:</h2>
<ul>
<li>Python</li>
</ul>

<h2>Libraries used:</h2>
<ul>
<li>Tkinter</li>
<li>Os</li>
<li>Messagebox</li>
</ul>

<h3>To install external modules:</h3>
<p><li>Run pip install tkinter</li></p>

<h3>To execute the project:</h3>
<p><li>Run billing system.py</li></p>

<h3>Screenshot/GIF of this project.</h3>

![Bill](https://user-images.githubusercontent.com/72568715/134779769-7695a727-adbb-43b7-9e60-1205dc982ae7.PNG)
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -95,6 +95,7 @@ We appreciate the contributions from the following community members:
- [Ezhill Ragesh](https://github.com/ezhillragesh)
- [Brunda Bharadwaj](https://github.com/brundabharadwaj/)
- [Hemanth Singh](https://github.com/Hemanth11011)
- [Ashish Ujjwal](https://github.com/AshishUjjwal)

---