0% found this document useful (0 votes)
50 views5 pages

CFP Pit

This document contains code for an inventory management system using a Tkinter GUI and SQLite database. It defines functions for inserting, deleting, updating, and retrieving inventory items from the database table. The GUI contains entry fields, buttons and a treeview widget to display inventory items. Clicking buttons will call the respective functions to perform CRUD operations on the inventory database table.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views5 pages

CFP Pit

This document contains code for an inventory management system using a Tkinter GUI and SQLite database. It defines functions for inserting, deleting, updating, and retrieving inventory items from the database table. The GUI contains entry fields, buttons and a treeview widget to display inventory items. Clicking buttons will call the respective functions to perform CRUD operations on the inventory database table.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

import sqlite3

from tkinter import *


from tkinter import ttk
root = Tk()
root.title("UNOGONA STORE")
my_tree = ttk.Treeview(root)

storeName = "INVENTORY SYSTEM"


frameName = "Inventory"
frameName1 = "View Products"

totText = StringVar()

def reverse(tuples):
new_tup = tuples[::-1]
return new_tup

def insert( id, name, price, quantity):


conn = sqlite3.connect("data.db")
cursor = conn.cursor()

cursor.execute("""CREATE TABLE IF NOT EXISTS


inventory(itemId TEXT, itemName TEXT, itemPrice TEXT, itemQuantity TEXT)""")

cursor.execute("INSERT INTO inventory VALUES ('" + str(id) + "','" + str(name)


+ "','" + str(price) + "','" + str(quantity) + "')")
conn.commit()

def delete(data):
conn = sqlite3.connect("data.db")
cursor = conn.cursor()

cursor.execute("""CREATE TABLE IF NOT EXISTS


inventory(itemId TEXT, itemName TEXT, itemPrice TEXT, itemQuantity
TEXT)""")

cursor.execute("DELETE FROM inventory WHERE itemId = '" + str(data) + "'")


conn.commit()

def pay (data):


conn = sqlite3.connect("data.db")
cursor = conn.cursor()

cursor.execute("""CREATE TABLE IF NOT EXISTS


inventory(itemId TEXT, itemName TEXT, itemPrice TEXT, itemQuantity
TEXT)""")

cursor.execute("PAY FROM inventory WHERE itemId = '" + str(data) + "'")


conn.commit()

def update(id, name, price, quantity, idName):


conn = sqlite3.connect("data.db")
cursor = conn.cursor()

cursor.execute("""CREATE TABLE IF NOT EXISTS


inventory(itemId TEXT, itemName TEXT, itemPrice TEXT, itemQuantity
TEXT)""")

cursor.execute("UPDATE inventory SET itemId = '" + str(id) + "', itemName = '"


+ str(name) + "', itemPrice = '" + str(price) + "', itemQuantity = '" +
str(quantity) + "' WHERE itemId='"+str(idName)+"'")
conn.commit()

def read():
conn = sqlite3.connect("data.db")
cursor = conn.cursor()

cursor.execute("""CREATE TABLE IF NOT EXISTS


inventory(itemId TEXT, itemName TEXT, itemPrice TEXT, itemQuantity
TEXT)""")

cursor.execute("SELECT * FROM inventory")


results = cursor.fetchall()
conn.commit()
return results

def insert_data():
itemId = str(entryId.get())
itemName = str(entryName.get())
itemPrice = str(entryPrice.get())
itemQuantity = str(entryQuantity.get())
if itemId == "" or itemName == " ":
print("Error Inserting Id")
if itemName == "" or itemName == " ":
print("Error Inserting Name")
if itemPrice == "" or itemPrice == " ":
print("Error Inserting Price")
if itemQuantity == "" or itemQuantity == " ":
print("Error Inserting Quantity")
else:
insert(str(itemId), str(itemName), str(itemPrice), str(itemQuantity))

for data in my_tree.get_children():


my_tree.delete(data)

for result in reverse(read()):


my_tree.insert(parent='', index='end', iid=result, text="",
values=(result), tag="orow")

my_tree.tag_configure('orow', background='#EEEEEE')
my_tree.grid(row=6, column=10, columnspan=4, rowspan=5, padx=10, pady=10)

def delete_data():
selected_item = my_tree.selection()[0]
deleteData = str(my_tree.item(selected_item)['values'][0])
delete(deleteData)

for data in my_tree.get_children():


my_tree.delete(data)

for result in reverse(read()):


my_tree.insert(parent='', index='end', iid=result, text="",
values=(result), tag="orow")
my_tree.tag_configure('orow', background='#EEEEEE')
my_tree.grid(row=6, column=10, columnspan=4, rowspan=5, padx=10, pady=10)

def pay_data():
tott = str(totText.get())
top = Toplevel()
top.geometry("400x300")
top.config(bg="white")
l = Label(top, text='---------RECIEPT----------')
l.pack()
l.config(bg="white")
heading = Label(top, text='\tID\tName\tPRICE\tQTY\tTOTAL')
heading.pack()
heading.config(bg="white")

selected_item = my_tree.selection()[0]
payData = str(my_tree.item(selected_item)['values'][0])
pay(payData)

for child in my_tree.get_children():


my_tree.delete(data)

name = (my_tree.item(child, 'values')[0])


price = str(my_tree.item(child, 'values')[1])
quantity = str(my_tree.item(child, 'values')[2])
tot = str(my_tree.item(child, 'values')[3])
item1 = Label(top, text=f'{ID}\f{name}\t{price}\t{quantity}\t{tot}')
item1.config(bg="white")
item1.pack()

sum1 = 0.0
for child in my_tree.get_children():
sum1 += str(my_tree.item(child, 'values')[3])
totText.set(sum1)

tot = Label(top, text=f'Total\t{tott}')


tot.config(bg="white")
tot.pack()

for result in reverse(read()):


my_tree.insert(parent='', index='end', iid=result, text="",
values=(result), tag="orow")

def update_data():
selected_item = my_tree.selection()[0]
update_name = my_tree.item(selected_item)['values'][0]
update(entryId.get(), entryName.get(), entryPrice.get(), entryQuantity.get(),
update_name)

for data in my_tree.get_children():


my_tree.delete(data)

for result in reverse(read()):


my_tree.insert(parent='', index='end', iid=result, text="",
values=(result), tag="orow")
my_tree.tag_configure('orow', background='#EEEEEE')
my_tree.grid(row=6, column=10, columnspan=4, rowspan=5, padx=10, pady=10)

vsb = ttk.Scrollbar(my_tree, orient="vertical", command=my_tree.yview)


vsb.place(x=30+550+6, y=0, height=200+30)

titleLabel = Label(root, text=storeName, font=('Arial bold', 25), bd=2)


titleLabel.grid(row=0, column=5, columnspan=8, padx=20, pady=20)
Inventory = Frame(root)
frameLabel = Label(root, text = frameName, font=('Arial bold', 15), bd=10)
frameLabel.grid(column=0,row=1,padx=8,pady=4,sticky="N")
frameLabel = Label(root, text = frameName1, font=('Arial bold', 15), bd=10)
frameLabel.grid(row=1,column=10, padx=0,pady=4,sticky="N")

idLabel = Label(root, text="ID", font=('Arial bold', 10))


nameLabel = Label(root, text="Name", font=('Arial bold', 10))
priceLabel = Label(root, text="Price", font=('Arial bold', 10))
quantityLabel = Label(root, text="Quantity", font=('Arial bold', 10))
idLabel.grid(row=6, column=0, padx=10, pady=10)
nameLabel.grid(row=7, column=0, padx=10, pady=10)
priceLabel.grid(row=8, column=0, padx=10, pady=10)
quantityLabel.grid(row=9, column=0, padx=10, pady=10)

entryId = Entry(root, width=25, bd=5, font=('Arial bold', 10))


entryName = Entry(root, width=25, bd=5, font=('Arial bold', 10))
entryPrice = Entry(root, width=25, bd=5, font=('Arial bold', 10))
entryQuantity = Entry(root, width=25, bd=5, font=('Arial bold', 10))
entryId.grid(row=6, column=1, columnspan=3, padx=5, pady=5)
entryName.grid(row=7, column=1, columnspan=3, padx=5, pady=5)
entryPrice.grid(row=8, column=1, columnspan=3, padx=5, pady=5)
entryQuantity.grid(row=9, column=1, columnspan=3, padx=5, pady=5)

buttonEnter = Button(
root, text="CREATE", padx=5, pady=5, width=5,
bd=3, font=('Arial bold', 10), bg="#00C957", command=insert_data)
buttonEnter.grid(row=10, column=1, columnspan=1)

buttonUpdate = Button(
root, text="EDIT", padx=5, pady=5, width=5,
bd=3, font=('Arial bold', 10), bg="#ffff00", command=update_data)
buttonUpdate.grid(row=10, column=2, columnspan=1)

buttonDelete = Button(
root, text="DELETE", padx=5, pady=5, width=5,
bd=3, font=('Arial bold', 10), bg="#e62e00", command=delete_data)
buttonDelete.grid(row=10, column=3, columnspan=1)

buttonPay = Button(
root, text="RECEIPT", padx=5, pady=5, width=5,
bd=3, font=('Arial bold', 10), bg="#00FFFF", command=pay_data)
buttonPay.grid(row=10, column=0, columnspan=1)

style = ttk.Style()
style.configure("Treeview.Heading", font=('Arial bold', 10))

my_tree['columns'] = ("ID", "Name", "Price", "Quantity")


my_tree.column("#0", width=0, stretch=NO)
my_tree.column("ID", anchor=W, width=100)
my_tree.column("Name", anchor=W, width=200)
my_tree.column("Price", anchor=W, width=150)
my_tree.column("Quantity", anchor=W, width=150)
my_tree.heading("ID", text="ID", anchor=W)
my_tree.heading("Name", text="Name", anchor=W)
my_tree.heading("Price", text="Price", anchor=W)
my_tree.heading("Quantity", text="Quantity", anchor=W)

my_tree.tag_configure('orow', background='#EEEEEE', font=('Arial bold', 10))


my_tree.grid(row=6, column=10, columnspan=4, rowspan=5, padx=10, pady=10)

for data in my_tree.get_children():


my_tree.delete(data)

for result in reverse(read()):


my_tree.insert(parent='', index='end', iid=0, text="", values=(result),
tag="orow")

root.mainloop()

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy