Spaces:
Sleeping
Sleeping
File size: 3,262 Bytes
45e90b2 80e8b2f 45e90b2 80e8b2f fa4e05b 0922719 fa4e05b 0922719 fa4e05b 45e90b2 fa4e05b 0922719 fa4e05b 0922719 fa4e05b 45e90b2 fa4e05b 6fce031 fa4e05b 0922719 4fa3ff7 45e90b2 4fa3ff7 45e90b2 |
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# app.py
import gradio as gr
from datetime import datetime
# Dynamic menu data
menu = {
"Bread": [
{"name": "Roti", "price": 2},
{"name": "Naan", "price": 3}
],
"Veg Curries": [
{"name": "Paneer Butter Masala", "price": 10},
{"name": "Mixed Vegetable Curry", "price": 8}
],
"Non-Veg Curries": [
{"name": "Chicken Curry", "price": 12},
{"name": "Mutton Curry", "price": 15}
],
"Biryanis": [
{"name": "Vegetable Biryani", "price": 10},
{"name": "Chicken Biryani", "price": 12}
]
}
# Ensure render_menu is defined before usage
def render_menu():
rendered_menu = ""
for category, items in menu.items():
rendered_menu += f"\n{category}:\n"
for item in items:
rendered_menu += f"- {item['name']} (${item['price']})\n"
return rendered_menu
def generate_invoice(customer_name, table_number, selected_items, wishes):
try:
selected_items = [item.strip() for item in selected_items.split(',')]
items = [
item for category in menu.values() for item in category if item['name'] in selected_items
]
total = sum(item['price'] for item in items)
invoice = f"""
-----------------------------------------
Restaurant Invoice
-----------------------------------------
Date: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}
Customer Name: {customer_name}
Table Number: {table_number}
-----------------------------------------
Items Ordered:
"""
for item in items:
invoice += f"- {item['name']} (${item['price']})\n"
invoice += f"""
-----------------------------------------
Total Amount: ${total:.2f}
-----------------------------------------
Customer Wishes:
"""
for wish in wishes.split(','):
invoice += f"- {wish.strip()}\n"
invoice += """
-----------------------------------------
Thank you for dining with us!
Have a great day!
"""
return invoice
except Exception as e:
return f"Error generating invoice: {str(e)}"
with gr.Blocks() as demo:
gr.Markdown("""# Restaurant Invoice Generator
### Welcome to our restaurant!
Use this app to place your order and generate a customized invoice.
""")
with gr.Row():
customer_name = gr.Textbox(label="Customer Name")
table_number = gr.Textbox(label="Table Number")
# Ensure render_menu is called after its definition
menu_display = gr.Textbox(show_label=False, interactive=False, value=render_menu())
selected_items = gr.Textbox(label="Selected Items (comma-separated)", placeholder="e.g., Roti, Paneer Butter Masala")
wishes = gr.Textbox(label="Special Wishes (comma-separated)", placeholder="e.g., Extra spicy, Less salt")
generate_invoice_btn = gr.Button("Generate Invoice")
invoice_output = gr.Textbox(label="Generated Invoice", lines=15, interactive=False)
generate_invoice_btn.click(
generate_invoice,
inputs=[customer_name, table_number, selected_items, wishes],
outputs=invoice_output
)
demo.launch()
|