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) | |