Add files via upload

This commit is contained in:
Bradon Kelley
2022-07-18 07:53:05 -05:00
committed by GitHub
commit 8526de7e33
4 changed files with 181 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
import sqlite3
class Database:
def __init__(self, db):
self.conn = sqlite3.connect(db)
self.cur = self.conn.cursor()
self.cur.execute("CREATE TABLE IF NOT EXISTS parts (id INTEGER PRIMARY KEY, part text, customer text, retailer text, price text)")
self.conn.commit()
def fetch(self):
self.cur.execute("SELECT * FROM parts")
rows = self.cur.fetchall()
return rows
def insert(self, part, customer, retailer, price):
self.cur.execute("INSERT INTO parts VALUES (NULL, ?, ?, ?, ?)", (part, customer, retailer, price))
self.conn.commit()
def remove(self, id):
self.cur.execute("DELETE FROM parts WHERE id=?", (id,))
self.conn.commit()
def update(self, id, part, customer, retailer, price):
self.cur.execute("UPDATE parts SET part = ?, customer = ?, retailer = ?, price = ? WHERE id = ?", (part, customer, retailer, price, id))
self.conn.commit()
def __del__(self):
self.conn.close()
# db = Database('store.db')
# db.insert("4GB DDR4 Ram","John Doe","Microcenter","160")
# db.insert("ASUS MOBO","Mike Henry","Microcenter","360")
# db.insert("500W PSU","Karen Johnson","NewEgg","80")
# db.insert("2GB DDR4 Ram","Karen Johnson","NewEgg","78")
# db.insert("24 Inch Samsung Monitor","Sam Smith","Best Buy","180")
# db.insert("NVIDIA RTX 2080","Albert Kingston","NewEgg","679")
# db.insert("600W Corsair PSU","Karen Johnson","NewEgg","130")
+140
View File
@@ -0,0 +1,140 @@
from email import message
from select import select
from tkinter import *
from tkinter import messagebox
from db import Database
db = Database('store.db')
def populate_list():
part_list.delete(0, END)
for row in db.fetch():
part_list.insert(END, row)
def add_part():
if part_txt.get() == '' or customer_txt.get() == '' or retailer_txt.get() == '' or price_txt.get() == '':
messagebox.showerror('required Fields', 'Please include all fields')
return
db.insert(part_txt.get(),
customer_txt.get(),
retailer_txt.get(),
price_txt.get())
part_list.delete(0, END)
part_list.insert(END,
part_txt.get(),
customer_txt.get(),
retailer_txt.get(),
price_txt.get())
populate_list()
def select_item(event):
try:
global selected_item
index = part_list.curselection()[0]
selected_item = part_list.get(index)
part_entry.delete(0, END)
part_entry.insert(END, selected_item[1])
customer_entry.delete(0, END)
customer_entry.insert(END, selected_item[2])
retailer_entry.delete(0, END)
retailer_entry.insert(END, selected_item[3])
price_entry.delete(0, END)
price_entry.insert(END, selected_item[4])
except IndexError:
pass
def remove_part():
db.remove(selected_item[0])
clear_txt()
populate_list()
def update_part():
db.update(selected_item[0],
part_txt.get(),
customer_txt.get(),
retailer_txt.get(),
price_txt.get())
populate_list()
def clear_txt():
part_entry.delete(0, END)
customer_entry.delete(0, END)
retailer_entry.delete(0, END)
price_entry.delete(0, END)
# create window object
app = Tk()
# Part
part_txt = StringVar()
part_lbl = Label(app, text='Part Name', font=('bold', 14), pady=20).grid(row=0, column=0, sticky=W)
part_entry = Entry(app, textvariable=part_txt)
part_entry.grid(row=0, column=1)
# Customer
customer_txt = StringVar()
customer_lbl = Label(app, text='Customer', font=('bold', 14)).grid(row=0, column=2, sticky=W)
customer_entry = Entry(app, textvariable=customer_txt)
customer_entry.grid(row=0, column=3)
# Retailer
retailer_txt = StringVar()
retailer_lbl = Label(app, text='Retailer', font=('bold', 14)).grid(row=1, column=0, sticky=W)
retailer_entry = Entry(app, textvariable=retailer_txt)
retailer_entry.grid(row=1, column=1)
# Price
price_txt = StringVar()
price_lbl = Label(app, text='Price', font=('bold', 14)).grid(row=1, column=2, sticky=W)
price_entry = Entry(app, textvariable=price_txt)
price_entry.grid(row=1, column=3)
# Part List
part_list = Listbox(app, height=8, width=50, border=0)
part_list.grid(row=3, column=0, columnspan=3, rowspan=6, pady=20, padx=20)
# Create scrollbar
scrollbar = Scrollbar(app)
scrollbar.grid(row=3, column=3)
# Set scroll to listbox
part_list.configure(yscrollcommand=scrollbar.set)
scrollbar.configure(command=part_list.yview)
# Bind Select
part_list.bind('<<ListboxSelect>>', select_item)
# Buttons
add_btn = Button(app, text='Add Part', width=12, command=add_part)
add_btn.grid(row=2, column=0, pady=20)
remove_btn = Button(app, text='Remove Part', width=12, command=remove_part)
remove_btn.grid(row=2, column=1)
update_btn = Button(app, text='Update Part', width=12, command=update_part)
update_btn.grid(row=2, column=2)
clear_btn = Button(app, text='Clear Input', width=12, command=clear_txt)
clear_btn.grid(row=2, column=3)
app.title("Part Manager")
app.geometry('700x350')
# Populate List
populate_list()
# start
app.mainloop()
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.