Subbu1304 commited on
Commit
12ebc61
·
verified ·
1 Parent(s): eb8ca47

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +93 -0
app.py ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # app.py
2
+ import gradio as gr
3
+ from datetime import datetime
4
+
5
+ def generate_invoice(customer_name, table_number, items, wishes):
6
+ total = sum(item['price'] for item in items)
7
+ invoice = f"""
8
+ -----------------------------------------
9
+ Restaurant Invoice
10
+ -----------------------------------------
11
+ Date: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}
12
+ Customer Name: {customer_name}
13
+ Table Number: {table_number}
14
+ -----------------------------------------
15
+ Items Ordered:
16
+ """
17
+ for item in items:
18
+ invoice += f"- {item['name']} (${item['price']})\n"
19
+
20
+ invoice += f"""
21
+ -----------------------------------------
22
+ Total Amount: ${total:.2f}
23
+ -----------------------------------------
24
+ Customer Wishes:
25
+ {wishes}
26
+ -----------------------------------------
27
+ Thank you for dining with us!
28
+ Have a great day!
29
+ """
30
+ return invoice
31
+
32
+ # Dynamic menu data
33
+ menu = {
34
+ "Bread": [
35
+ {"name": "Roti", "price": 2},
36
+ {"name": "Naan", "price": 3}
37
+ ],
38
+ "Veg Curries": [
39
+ {"name": "Paneer Butter Masala", "price": 10},
40
+ {"name": "Mixed Vegetable Curry", "price": 8}
41
+ ],
42
+ "Non-Veg Curries": [
43
+ {"name": "Chicken Curry", "price": 12},
44
+ {"name": "Mutton Curry", "price": 15}
45
+ ],
46
+ "Biryanis": [
47
+ {"name": "Vegetable Biryani", "price": 10},
48
+ {"name": "Chicken Biryani", "price": 12}
49
+ ]
50
+ }
51
+
52
+ def render_menu():
53
+ rendered_menu = ""
54
+ for category, items in menu.items():
55
+ rendered_menu += f"\n{category}:\n"
56
+ for item in items:
57
+ rendered_menu += f"- {item['name']} (${item['price']})\n"
58
+ return rendered_menu
59
+
60
+ def place_order(customer_name, table_number, selected_items, wishes):
61
+ selected_items = eval(selected_items) # Convert string to list
62
+ items = [item for category in menu.values() for item in category if item['name'] in selected_items]
63
+ return generate_invoice(customer_name, table_number, items, wishes)
64
+
65
+ def show_menu():
66
+ return render_menu()
67
+
68
+ with gr.Blocks() as demo:
69
+ gr.Markdown("""# Restaurant Invoice Generator
70
+ ### Welcome to our restaurant!
71
+ Use this app to place your order and generate a customized invoice.
72
+ """)
73
+
74
+ with gr.Row():
75
+ customer_name = gr.Textbox(label="Customer Name")
76
+ table_number = gr.Textbox(label="Table Number")
77
+
78
+ menu_display = gr.Textbox(show_label=False, interactive=False, value=render_menu())
79
+
80
+ selected_items = gr.Textbox(label="Selected Items (comma-separated)", placeholder="e.g., Roti, Paneer Butter Masala")
81
+ wishes = gr.Textbox(label="Special Wishes", placeholder="e.g., Extra spicy, Less salt, etc.")
82
+
83
+ generate_invoice_btn = gr.Button("Generate Invoice")
84
+
85
+ invoice_output = gr.Textbox(label="Generated Invoice", lines=15, interactive=False)
86
+
87
+ generate_invoice_btn.click(
88
+ place_order,
89
+ inputs=[customer_name, table_number, selected_items, wishes],
90
+ outputs=invoice_output
91
+ )
92
+
93
+ demo.launch()