Inventory Management System
Chnadrashekhar, once run this code in ur machine and ping me for any error rectifications.unknown
python
a year ago
6.4 kB
10
Indexable
import tkinter as tk from tkinter import messagebox class Inventory: def __init__(self): self.items = {} self.cart = {} def add_item(self, item_name, quantity, price): if item_name in self.items: self.items[item_name]['quantity'] += quantity self.items[item_name]['price'] = price else: self.items[item_name] = {'quantity': quantity, 'price': price} def update_item(self, item_name, quantity, price): if item_name in self.items: self.items[item_name]['quantity'] = quantity self.items[item_name]['price'] = price else: raise ValueError(f"Item '{item_name}' not found in inventory.") def get_inventory(self): return self.items def add_to_cart(self, item_name, quantity): if item_name in self.items and self.items[item_name]['quantity'] >= quantity: if item_name in self.cart: self.cart[item_name] += quantity else: self.cart[item_name] = quantity self.items[item_name]['quantity'] -= quantity else: raise ValueError(f"Insufficient quantity of '{item_name}' in inventory.") def get_cart(self): return self.cart def purchase(self): total = 0 for item_name, quantity in self.cart.items(): total += quantity * self.items[item_name]['price'] self.cart.clear() return total class InventoryGUI: def __init__(self, root, inventory): self.root = root self.inventory = inventory self.root.title("Inventory Management System") self.item_name_label = tk.Label(root, text="Item Name") self.item_name_label.grid(row=0, column=0) self.item_name_entry = tk.Entry(root) self.item_name_entry.grid(row=0, column=1) self.quantity_label = tk.Label(root, text="Quantity") self.quantity_label.grid(row=1, column=0) self.quantity_entry = tk.Entry(root) self.quantity_entry.grid(row=1, column=1) self.price_label = tk.Label(root, text="Price") self.price_label.grid(row=2, column=0) self.price_entry = tk.Entry(root) self.price_entry.grid(row=2, column=1) self.add_button = tk.Button(root, text="Add Item", command=self.add_item) self.add_button.grid(row=3, column=0) self.update_button = tk.Button(root, text="Update Item", command=self.update_item) self.update_button.grid(row=3, column=1) self.view_button = tk.Button(root, text="View Inventory", command=self.view_inventory) self.view_button.grid(row=4, column=0, columnspan=2) self.cart_button = tk.Button(root, text="Open Cart", command=self.open_cart_window) self.cart_button.grid(row=5, column=0, columnspan=2) self.output_text = tk.Text(root, height=10, width=50) self.output_text.grid(row=6, column=0, columnspan=2) def add_item(self): item_name = self.item_name_entry.get() quantity = int(self.quantity_entry.get()) price = float(self.price_entry.get()) self.inventory.add_item(item_name, quantity, price) messagebox.showinfo("Success", "Item added successfully!") self.view_inventory() def update_item(self): item_name = self.item_name_entry.get() quantity = int(self.quantity_entry.get()) price = float(self.price_entry.get()) try: self.inventory.update_item(item_name, quantity, price) messagebox.showinfo("Success", "Item updated successfully!") except ValueError as e: messagebox.showerror("Error", str(e)) self.view_inventory() def view_inventory(self): self.output_text.delete(1.0, tk.END) inventory = self.inventory.get_inventory() for item_name, details in inventory.items(): self.output_text.insert(tk.END, f"Item: {item_name}, Quantity: {details['quantity']}, Price: {details['price']}\n") def open_cart_window(self): cart_window = tk.Toplevel(self.root) cart_window.title("Shopping Cart") CartGUI(cart_window, self.inventory) class CartGUI: def __init__(self, root, inventory): self.root = root self.inventory = inventory self.item_name_label = tk.Label(root, text="Item Name") self.item_name_label.grid(row=0, column=0) self.item_name_entry = tk.Entry(root) self.item_name_entry.grid(row=0, column=1) self.quantity_label = tk.Label(root, text="Quantity") self.quantity_label.grid(row=1, column=0) self.quantity_entry = tk.Entry(root) self.quantity_entry.grid(row=1, column=1) self.add_to_cart_button = tk.Button(root, text="Add to Cart", command=self.add_to_cart) self.add_to_cart_button.grid(row=2, column=0) self.view_cart_button = tk.Button(root, text="View Cart", command=self.view_cart) self.view_cart_button.grid(row=2, column=1) self.purchase_button = tk.Button(root, text="Purchase", command=self.purchase) self.purchase_button.grid(row=3, column=0, columnspan=2) self.output_text = tk.Text(root, height=10, width=50) self.output_text.grid(row=4, column=0, columnspan=2) def add_to_cart(self): item_name = self.item_name_entry.get() quantity = int(self.quantity_entry.get()) try: self.inventory.add_to_cart(item_name, quantity) messagebox.showinfo("Success", "Item added to cart!") except ValueError as e: messagebox.showerror("Error", str(e)) self.view_cart() def view_cart(self): self.output_text.delete(1.0, tk.END) cart = self.inventory.get_cart() for item_name, quantity in cart.items(): self.output_text.insert(tk.END, f"Item: {item_name}, Quantity: {quantity}\n") def purchase(self): total = self.inventory.purchase() messagebox.showinfo("Purchase Complete", f"Total amount payable: ${total:.2f}") self.view_cart() if __name__ == "__main__": root = tk.Tk() inventory = Inventory() app = InventoryGUI(root, inventory) root.mainloop()
Editor is loading...