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
|