0% found this document useful (0 votes)
8 views17 pages

Python micro Project

The document discusses the importance of an automated billing system for managing financial transactions between businesses and clients, emphasizing its efficiency, error reduction, and financial transparency. It outlines the features and benefits of such systems, including customization of invoices, support for multiple payment methods, and integration with other business operations. Additionally, the document includes a coding section that demonstrates the implementation of a billing application using Python's Tkinter library.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views17 pages

Python micro Project

The document discusses the importance of an automated billing system for managing financial transactions between businesses and clients, emphasizing its efficiency, error reduction, and financial transparency. It outlines the features and benefits of such systems, including customization of invoices, support for multiple payment methods, and integration with other business operations. Additionally, the document includes a coding section that demonstrates the implementation of a billing application using Python's Tkinter library.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

Abstract

A billing system is a crucial tool for managing financial transactions between businesses and
their clients. This system automates the process of generating and processing invoices, tracking
payments, and maintaining customer accounts. By streamlining these processes, a billing system
enhances efficiency, reduces human error, and improves financial transparency. The system
allows for easy customization of invoices, supports multiple payment methods, and ensures
timely follow-ups for outstanding payments. Additionally, it can integrate with other business
operations such as inventory management and customer relationship management (CRM) to
provide a seamless experience. This paper presents the design, features, and benefits of an
automated billing system, highlighting its role in modern business management.

1
Introduction

In today’s fast-paced business environment, efficient financial management is essential for the
smooth operation of any organization. One of the most important components of this process is a
reliable billing system. A billing system is software that automates the creation and tracking of
invoices, facilitates payment processing, and helps maintain accurate records of financial
transactions. Traditionally, billing was done manually, but as businesses grew, so did the
complexity of handling invoices, payments, and customer accounts. An automated billing system
offers significant advantages over traditional methods. It reduces manual errors, speeds up the
invoicing process, and ensures accurate and timely payments. Moreover, it helps businesses
comply with tax regulations by automatically generating tax reports and providing a transparent
overview of financial transactions. Modern billing systems can integrate with other systems like
inventory management, CRM tools, and accounting software, creating a centralized hub for
business operations. This system is crucial for businesses of all sizes, from small enterprises to
large corporations, as it improves operational efficiency, minimizes administrative costs, and
enhances customer satisfaction.

2
Coding
from tkinter import*
import random
import os
from tkinter import messagebox
# ============main============================
class Bill_App:
def _init(self, root): # Make sure __init_ accepts root
self.root = root
self.root.title("Billing System")
self.root.geometry("1350x700+0+0")
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)

3
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)

4
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)

5
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)

6
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)

7
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

8
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":

9
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':

10
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)

11
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()

12
Output
1.

2.

13
3.

4.

14
Conclusion

The implementation of a billing system is a game-changer for businesses aiming to improve


financial management and operational efficiency. By automating the invoicing and payment
tracking process, businesses can focus on their core operations while ensuring a smooth and
accurate billing cycle. These systems not only save time and reduce human error but also provide
a transparent view of financial transactions, helping businesses stay compliant with regulations.
In conclusion, an effective billing system contributes significantly to a business's financial
health, customer satisfaction, and overall productivity. As technology continues to evolve,
businesses must adopt automated billing solutions to remain competitive, efficient, and agile in
the ever-changing market landscape.

15
Reference

1. https://www.investopedia.com/terms/b/billing-system.asp.
2. https://www.techopedia.com/definition/29140/billing-system.
3. www.chatgpt.openai.com

16
Weekly Progress Report

SR.NO. WEEK ACTIVITY PERFORMED DATE SIGN

Discussion and finalization of


1 1st topic

Preparation and submission of


2 2nd
Abstract

Literature Review
3 3rd

Collection of Data
4 4th

Collection of Data
5 5th

Discussion and outline of Content


6 6th

Formulation of Content
7 7th

Compilation of report and


8 8th
presentation

9 9th Seminar

10 10th Final submission of Micro project

17

You might also like