|
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["Price"] * item["Quantity"] 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) |
|
|
|
|
|
state["cart"] = [] |
|
return f"Order placed successfully! Order ID: {order_id}" |
|
|
|
with gr.Group(): |
|
gr.Markdown("### Place Your Order") |
|
gr.Button("Place Order").click(place_order, outputs="Status") |
|
|