Update order.py
Browse files
order.py
CHANGED
@@ -29,3 +29,71 @@ def order_summary():
|
|
29 |
except Exception as e:
|
30 |
print(f"Error fetching order details: {str(e)}")
|
31 |
return render_template("order.html", order=None, error=str(e))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
except Exception as e:
|
30 |
print(f"Error fetching order details: {str(e)}")
|
31 |
return render_template("order.html", order=None, error=str(e))
|
32 |
+
@order_blueprint.route("/order/details", methods=["GET"])
|
33 |
+
def order_item_details():
|
34 |
+
email = session.get('user_email') # Fetch logged-in user's email
|
35 |
+
if not email:
|
36 |
+
return redirect(url_for("login"))
|
37 |
+
|
38 |
+
try:
|
39 |
+
# Fetch the most recent order for the user
|
40 |
+
result = sf.query(f"""
|
41 |
+
SELECT Id, Customer_Name__c, Customer_Email__c, Total_Amount__c, Order_Details__c, Order_Status__c, Discount__c, Total_Bill__c
|
42 |
+
FROM Order__c
|
43 |
+
WHERE Customer_Email__c = '{email}'
|
44 |
+
ORDER BY CreatedDate DESC
|
45 |
+
LIMIT 1
|
46 |
+
""")
|
47 |
+
order = result.get("records", [])[0] if result.get("records") else None
|
48 |
+
|
49 |
+
if not order:
|
50 |
+
return render_template("order.html", order=None)
|
51 |
+
|
52 |
+
# Process Order Details
|
53 |
+
order_items = []
|
54 |
+
for line in order.Order_Details__c.split('\n'):
|
55 |
+
item_parts = line.split('|')
|
56 |
+
item_name = item_parts[0].strip()
|
57 |
+
|
58 |
+
# Fetch item details from Menu_Item__c based on item name
|
59 |
+
menu_item = sf.query(f"""
|
60 |
+
SELECT Item_Name__c, Image_URL__c, Ingredient_1__r.Ingredient_Name__c, Ingredient_2__r.Ingredient_Name__c,
|
61 |
+
Ingredient_1__r.Ingredient_Image__c, Ingredient_2__r.Ingredient_Image__c,
|
62 |
+
Ingredient_1__r.Health_Benefits__c, Ingredient_2__r.Health_Benefits__c,
|
63 |
+
Ingredient_1__r.Fun_Facts__c, Ingredient_2__r.Fun_Facts__c
|
64 |
+
FROM Menu_Item__c
|
65 |
+
WHERE Item_Name__c = '{item_name}'
|
66 |
+
LIMIT 1
|
67 |
+
""")
|
68 |
+
|
69 |
+
if menu_item.get("records"):
|
70 |
+
item_details = menu_item["records"][0]
|
71 |
+
ingredients = {
|
72 |
+
"ingredient_1": {
|
73 |
+
"name": item_details.get("Ingredient_1__r").get("Ingredient_Name__c"),
|
74 |
+
"image": item_details.get("Ingredient_1__r").get("Ingredient_Image__c"),
|
75 |
+
"health_benefits": item_details.get("Ingredient_1__r").get("Health_Benefits__c"),
|
76 |
+
"fun_facts": item_details.get("Ingredient_1__r").get("Fun_Facts__c")
|
77 |
+
},
|
78 |
+
"ingredient_2": {
|
79 |
+
"name": item_details.get("Ingredient_2__r").get("Ingredient_Name__c"),
|
80 |
+
"image": item_details.get("Ingredient_2__r").get("Ingredient_Image__c"),
|
81 |
+
"health_benefits": item_details.get("Ingredient_2__r").get("Health_Benefits__c"),
|
82 |
+
"fun_facts": item_details.get("Ingredient_2__r").get("Fun_Facts__c")
|
83 |
+
}
|
84 |
+
}
|
85 |
+
|
86 |
+
# Prepare the item details and append to order_items list
|
87 |
+
order_items.append({
|
88 |
+
"item_name": item_name,
|
89 |
+
"price": item_parts[3].strip().replace('Price:', ''),
|
90 |
+
"image_url": item_parts[4].strip().replace('Image:', ''),
|
91 |
+
"ingredients": ingredients
|
92 |
+
})
|
93 |
+
|
94 |
+
return render_template("order_details.html", order_items=order_items, order=order)
|
95 |
+
|
96 |
+
except Exception as e:
|
97 |
+
print(f"Error fetching order details: {str(e)}")
|
98 |
+
return render_template("order_details.html", order=None, error=str(e))
|
99 |
+
|