Spaces:
Sleeping
Sleeping
| 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) | |