Update app.py
Browse files
app.py
CHANGED
|
@@ -199,10 +199,9 @@ def order_summary():
|
|
| 199 |
print("User not logged in. Redirecting to login.")
|
| 200 |
return "User not logged in", 400
|
| 201 |
|
| 202 |
-
# Query Salesforce to fetch the most recent order details
|
| 203 |
try:
|
| 204 |
print(f"Fetching order details for email: {email}")
|
| 205 |
-
|
| 206 |
# Query the Order__c object based on the user's email
|
| 207 |
query = f"""
|
| 208 |
SELECT Id, Customer_Name__c, Customer_Email__c, Total_Amount__c, Order_Details__c, Order_Status__c, Discount__c, Total_Bill__c
|
|
@@ -215,18 +214,12 @@ def order_summary():
|
|
| 215 |
|
| 216 |
print("Salesforce query result:", result)
|
| 217 |
|
| 218 |
-
# Check if the order record was found
|
| 219 |
if not result.get("records"):
|
| 220 |
print("No order found for this user.")
|
| 221 |
return "No order found for this user", 400
|
| 222 |
|
| 223 |
-
# Get the most recent order details
|
| 224 |
order = result["records"][0]
|
| 225 |
-
print(f"Order found: {order}")
|
| 226 |
-
|
| 227 |
-
# Extract details from the order
|
| 228 |
order_details = order.get("Order_Details__c", "")
|
| 229 |
-
print(f"Order details fetched: {order_details}")
|
| 230 |
|
| 231 |
order_items = []
|
| 232 |
|
|
@@ -236,37 +229,64 @@ def order_summary():
|
|
| 236 |
item_parts = line.split('|')
|
| 237 |
if len(item_parts) >= 5:
|
| 238 |
item_name = item_parts[0].strip()
|
| 239 |
-
|
| 240 |
-
# Remove quantity and price from the item name (e.g., 'Chicken Biryani x1.0' becomes 'Chicken Biryani')
|
| 241 |
item_name_cleaned = ' '.join(item_name.split(' ')[:-1]).strip()
|
| 242 |
|
| 243 |
-
|
| 244 |
-
|
| 245 |
-
|
| 246 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 247 |
|
| 248 |
if not order_items:
|
| 249 |
print("No items found in order details.")
|
| 250 |
else:
|
| 251 |
print(f"Total items extracted: {len(order_items)}")
|
| 252 |
|
| 253 |
-
#
|
| 254 |
return render_template(
|
| 255 |
-
'
|
| 256 |
order=order,
|
| 257 |
order_items=order_items
|
| 258 |
)
|
| 259 |
-
|
| 260 |
-
except Exception as e:
|
| 261 |
-
print(f"Error querying Salesforce: {str(e)}")
|
| 262 |
-
return f"Error querying Salesforce: {str(e)}", 500
|
| 263 |
|
| 264 |
-
|
| 265 |
except Exception as e:
|
| 266 |
print(f"Error querying Salesforce: {str(e)}")
|
| 267 |
return f"Error querying Salesforce: {str(e)}", 500
|
| 268 |
|
| 269 |
|
|
|
|
|
|
|
|
|
|
| 270 |
@app.route("/logout")
|
| 271 |
def logout():
|
| 272 |
# Retrieve table number before clearing session
|
|
|
|
| 199 |
print("User not logged in. Redirecting to login.")
|
| 200 |
return "User not logged in", 400
|
| 201 |
|
|
|
|
| 202 |
try:
|
| 203 |
print(f"Fetching order details for email: {email}")
|
| 204 |
+
|
| 205 |
# Query the Order__c object based on the user's email
|
| 206 |
query = f"""
|
| 207 |
SELECT Id, Customer_Name__c, Customer_Email__c, Total_Amount__c, Order_Details__c, Order_Status__c, Discount__c, Total_Bill__c
|
|
|
|
| 214 |
|
| 215 |
print("Salesforce query result:", result)
|
| 216 |
|
|
|
|
| 217 |
if not result.get("records"):
|
| 218 |
print("No order found for this user.")
|
| 219 |
return "No order found for this user", 400
|
| 220 |
|
|
|
|
| 221 |
order = result["records"][0]
|
|
|
|
|
|
|
|
|
|
| 222 |
order_details = order.get("Order_Details__c", "")
|
|
|
|
| 223 |
|
| 224 |
order_items = []
|
| 225 |
|
|
|
|
| 229 |
item_parts = line.split('|')
|
| 230 |
if len(item_parts) >= 5:
|
| 231 |
item_name = item_parts[0].strip()
|
|
|
|
|
|
|
| 232 |
item_name_cleaned = ' '.join(item_name.split(' ')[:-1]).strip()
|
| 233 |
|
| 234 |
+
menu_query = f"""
|
| 235 |
+
SELECT Name, Price__c, Image1__c, Ingredient_1__r.Ingredient_Name__c,
|
| 236 |
+
Ingredient_1__r.Ingredient_Image__c, Ingredient_1__r.Health_Benefits__c,
|
| 237 |
+
Ingredient_1__r.Fun_Facts__c, Ingredient_2__r.Ingredient_Name__c,
|
| 238 |
+
Ingredient_2__r.Ingredient_Image__c, Ingredient_2__r.Health_Benefits__c,
|
| 239 |
+
Ingredient_2__r.Fun_Facts__c
|
| 240 |
+
FROM Menu_Item__c
|
| 241 |
+
WHERE Name = '{item_name_cleaned}'
|
| 242 |
+
"""
|
| 243 |
+
menu_result = sf.query(menu_query)
|
| 244 |
+
|
| 245 |
+
if menu_result.get("records"):
|
| 246 |
+
menu_item = menu_result["records"][0]
|
| 247 |
+
order_items.append({
|
| 248 |
+
"name": item_name_cleaned,
|
| 249 |
+
"price": menu_item.get("Price__c"),
|
| 250 |
+
"image_url": menu_item.get("Image1__c"),
|
| 251 |
+
"ingredients": [
|
| 252 |
+
{
|
| 253 |
+
"name": menu_item['Ingredient_1__r']['Ingredient_Name__c'] if 'Ingredient_1__r' in menu_item else None,
|
| 254 |
+
"image": menu_item['Ingredient_1__r']['Ingredient_Image__c'] if 'Ingredient_1__r' in menu_item else None,
|
| 255 |
+
"health_benefits": menu_item['Ingredient_1__r']['Health_Benefits__c'] if 'Ingredient_1__r' in menu_item else None,
|
| 256 |
+
"fun_facts": menu_item['Ingredient_1__r']['Fun_Facts__c'] if 'Ingredient_1__r' in menu_item else None
|
| 257 |
+
},
|
| 258 |
+
{
|
| 259 |
+
"name": menu_item['Ingredient_2__r']['Ingredient_Name__c'] if 'Ingredient_2__r' in menu_item else None,
|
| 260 |
+
"image": menu_item['Ingredient_2__r']['Ingredient_Image__c'] if 'Ingredient_2__r' in menu_item else None,
|
| 261 |
+
"health_benefits": menu_item['Ingredient_2__r']['Health_Benefits__c'] if 'Ingredient_2__r' in menu_item else None,
|
| 262 |
+
"fun_facts": menu_item['Ingredient_2__r']['Fun_Facts__c'] if 'Ingredient_2__r' in menu_item else None
|
| 263 |
+
}
|
| 264 |
+
]
|
| 265 |
+
})
|
| 266 |
+
print(f"Item found in menu: {item_name_cleaned}")
|
| 267 |
+
else:
|
| 268 |
+
print(f"Item not found in menu: {item_name_cleaned}")
|
| 269 |
|
| 270 |
if not order_items:
|
| 271 |
print("No items found in order details.")
|
| 272 |
else:
|
| 273 |
print(f"Total items extracted: {len(order_items)}")
|
| 274 |
|
| 275 |
+
# Now pass the necessary data to reward_status.html
|
| 276 |
return render_template(
|
| 277 |
+
'reward_status.html',
|
| 278 |
order=order,
|
| 279 |
order_items=order_items
|
| 280 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 281 |
|
|
|
|
| 282 |
except Exception as e:
|
| 283 |
print(f"Error querying Salesforce: {str(e)}")
|
| 284 |
return f"Error querying Salesforce: {str(e)}", 500
|
| 285 |
|
| 286 |
|
| 287 |
+
|
| 288 |
+
|
| 289 |
+
|
| 290 |
@app.route("/logout")
|
| 291 |
def logout():
|
| 292 |
# Retrieve table number before clearing session
|