| import gradio as gr |
| from simple_salesforce import Salesforce |
|
|
| |
| sf = Salesforce(username='diggavalli98@gmail.com', password='Sati@1020', security_token='sSSjyhInIsUohKpG8sHzty2q') |
|
|
| |
| cart = {} |
|
|
| def fetch_menu_items(): |
| """Fetch menu items from Salesforce.""" |
| query = "SELECT Id, Name, Price__c, Description__c, Image1__c FROM Menu_Item__c" |
| result = sf.query(query) |
| return result['records'] |
|
|
| def generate_menu_html(menu_items): |
| """Generate HTML for menu items.""" |
| html = "<div>" |
| for item in menu_items: |
| html += f""" |
| <div style='display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px;'> |
| <div> |
| <img src='{item['Image1__c']}' alt='{item['Name']}' style='width: 100px; height: 100px; object-fit: cover; margin-right: 10px;'> |
| <h3>{item['Name']}</h3> |
| <p>₹{item['Price__c']}</p> |
| <button onclick=\"addToCart('{item['Id']}', '{item['Name']}', {item['Price__c']})\">Add to Cart</button> |
| </div> |
| </div> |
| """ |
| html += "</div>" |
| return html |
|
|
| def add_to_cart(item_id, name, price): |
| """Add an item to the cart.""" |
| if item_id in cart: |
| cart[item_id]['quantity'] += 1 |
| else: |
| cart[item_id] = { |
| 'name': name, |
| 'price': price, |
| 'quantity': 1 |
| } |
| return update_cart_display() |
|
|
| def update_cart_display(): |
| """Update the cart display.""" |
| if not cart: |
| return "Cart is empty." |
|
|
| cart_html = "<div>" |
| total_price = 0 |
| for item_id, details in cart.items(): |
| total_price += details['price'] * details['quantity'] |
| cart_html += f""" |
| <div style='display: flex; justify-content: space-between; align-items: center;'> |
| <span>{details['name']} (x{details['quantity']})</span> |
| <span>₹{details['price'] * details['quantity']}</span> |
| </div> |
| """ |
| cart_html += f"<div style='margin-top: 10px;'>Total: ₹{total_price}</div>" |
| cart_html += "</div>" |
| return cart_html |
|
|
| def proceed_to_order(): |
| """Place the order in Salesforce.""" |
| if not cart: |
| return "Cart is empty. Cannot place an order." |
|
|
| |
| order = sf.Order.create({ |
| 'Status': 'Draft', |
| 'EffectiveDate': '2023-01-01', |
| 'AccountId': 'your_account_id' |
| }) |
|
|
| |
| for item_id, details in cart.items(): |
| sf.OrderItem.create({ |
| 'OrderId': order['id'], |
| 'Quantity': details['quantity'], |
| 'UnitPrice': details['price'], |
| 'PricebookEntryId': 'your_pricebook_entry_id' |
| }) |
|
|
| |
| cart.clear() |
| return "Order placed successfully!" |
|
|
| |
| menu_items = fetch_menu_items() |
| menu_html = generate_menu_html(menu_items) |
|
|
| with gr.Blocks() as demo: |
| gr.Markdown("# Welcome to Biryani Hub") |
|
|
| with gr.Row(): |
| menu_display = gr.HTML(value=menu_html) |
| cart_display = gr.HTML(value="Cart is empty.") |
|
|
| with gr.Row(): |
| add_button = gr.Button("Add to Cart") |
| proceed_button = gr.Button("Proceed to Order") |
|
|
| add_button.click(add_to_cart, inputs=[], outputs=cart_display) |
| proceed_button.click(proceed_to_order, inputs=[], outputs=cart_display) |
|
|
| demo.launch() |
|
|