File size: 1,313 Bytes
a8a0cfb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4b8f2a3
a8a0cfb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4b8f2a3
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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)