nagasurendra's picture
Update components/place_order.py
4b8f2a3 verified
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)