import gradio as gr from utils.excel_operations import read_excel, write_excel from utils.state_management import state import uuid def place_order_page(): def place_order(): if not state.get("user"): return "Please log in first!" user = state["user"] cart = state.get("cart", []) if not cart: return "Your cart is empty!" orders = read_excel('data/orders.xlsx') order_id = str(uuid.uuid4()) total_cost = sum(item.get("Price", 0) * item.get("Quantity", 1) for item in cart) new_order = { "Order ID": order_id, "Customer Email": user["Email"], "Table ID": state.get("table_id", "Unknown"), "Items": cart, "Total Cost": total_cost, "Status": "Pending" } orders.append(new_order) write_excel('data/orders.xlsx', orders) # Clear cart after placing order state["cart"] = [] return f"Order placed successfully! Order ID: {order_id}" with gr.Group(): gr.Markdown("### Place Your Order") status_label = gr.Label(label="Order Status") # Use a Label for output place_order_button = gr.Button("Place Order") place_order_button.click(place_order, outputs=status_label)