Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| # STORAGE | |
| employees = [] | |
| products = [] | |
| sales = [] | |
| # FUNCTIONS | |
| def add_employee(name, role): | |
| employees.append({"name": name, "role": role}) | |
| return show_all() | |
| def add_product(name, price, qty): | |
| products.append({"name": name, "price": float(price), "qty": int(qty)}) | |
| return show_all() | |
| def add_sale(product_name, qty): | |
| qty = int(qty) | |
| for p in products: | |
| if p["name"] == product_name: | |
| if p["qty"] >= qty: | |
| p["qty"] -= qty | |
| total = qty * p["price"] | |
| sales.append({"name": product_name, "qty": qty, "total": total}) | |
| return show_all() | |
| else: | |
| return "Stock ntihagije", show_all() | |
| return "Product ntibashije kuboneka", show_all() | |
| def show_all(): | |
| emp_table = "\n".join([f'{e["name"]} - {e["role"]}' for e in employees]) or "No employees" | |
| prod_table = "\n".join([f'{p["name"]} | {p["price"]} | {p["qty"]}' for p in products]) or "No products" | |
| sale_table = "\n".join([f'{s["name"]} | {s["qty"]} | {s["total"]}' for s in sales]) or "No sales" | |
| total_sales = sum(s["total"] for s in sales) | |
| dashboard = f""" | |
| EMPLOYEES: {len(employees)} | |
| PRODUCTS: {len(products)} | |
| TOTAL SALES: {total_sales} | |
| """ | |
| return dashboard, emp_table, prod_table, sale_table | |
| # UI | |
| with gr.Blocks() as app: | |
| gr.Markdown("# 🏢 COMPANY ERP SYSTEM (Gradio + HF)") | |
| dashboard = gr.Textbox(label="Dashboard") | |
| with gr.Tab("Employees"): | |
| name = gr.Textbox(label="Name") | |
| role = gr.Textbox(label="Role") | |
| btn = gr.Button("Add Employee") | |
| with gr.Tab("Products"): | |
| pname = gr.Textbox(label="Product Name") | |
| price = gr.Textbox(label="Price") | |
| qty = gr.Textbox(label="Quantity") | |
| btn2 = gr.Button("Add Product") | |
| with gr.Tab("Sales"): | |
| sname = gr.Textbox(label="Product Name") | |
| sqty = gr.Textbox(label="Quantity") | |
| btn3 = gr.Button("Sell Product") | |
| emp_table = gr.Textbox(label="Employees") | |
| prod_table = gr.Textbox(label="Products") | |
| sale_table = gr.Textbox(label="Sales") | |
| btn.click(add_employee, inputs=[name, role], | |
| outputs=[dashboard, emp_table, prod_table, sale_table]) | |
| btn2.click(add_product, inputs=[pname, price, qty], | |
| outputs=[dashboard, emp_table, prod_table, sale_table]) | |
| btn3.click(add_sale, inputs=[sname, sqty], | |
| outputs=[dashboard, emp_table, prod_table, sale_table]) | |
| app.load(show_all, outputs=[dashboard, emp_table, prod_table, sale_table]) | |
| app.launch() |