Spaces:
Sleeping
Sleeping
| # 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} | |
| ] | |
| } | |
| 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): | |
| selected_items = 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}\n" | |
| invoice += """ | |
| ----------------------------------------- | |
| Thank you for dining with us! | |
| Have a great day! | |
| """ | |
| return invoice | |
| def place_order(customer_name, table_number, selected_items, wishes): | |
| return generate_invoice(customer_name, table_number, selected_items, wishes) | |
| 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") | |
| 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( | |
| place_order, | |
| inputs=[customer_name, table_number, selected_items, wishes], | |
| outputs=invoice_output | |
| ) | |
| demo.launch() | |