lokeshloki143 commited on
Commit
b66abc8
·
verified ·
1 Parent(s): ac923cc

Update combined_summary.py

Browse files
Files changed (1) hide show
  1. combined_summary.py +11 -130
combined_summary.py CHANGED
@@ -36,7 +36,7 @@ def combined_summary():
36
 
37
  # ====== FETCH CUSTOMER DETAILS ======
38
  customer_query = f"""
39
- SELECT Id, Name, Email__c, Phone_Number__c, Referral__c, Reward_Points__c
40
  FROM Customer_Login__c
41
  WHERE Email__c = '{safe_email}'
42
  LIMIT 1
@@ -50,42 +50,12 @@ def combined_summary():
50
  customer_data = {
51
  "name": customer.get("Name", "SATHVIK GANTA"),
52
  "email": customer.get("Email__c", "[email protected]"),
53
- "phone": customer.get("Phone_Number__c", "9876543210"),
54
- "referral_code": customer.get("Referral__c", ""),
55
- "reward_points": customer.get("Reward_Points__c", 0)
56
  }
57
 
58
- # ====== FETCH REWARDS ======
59
- user_points = customer_data["reward_points"]
60
-
61
- # Determine tier
62
- tiers = {
63
- "Bronze": 100,
64
- "Silver": 200,
65
- "Gold": 300,
66
- "Platinum": 500
67
- }
68
- current_tier, next_tier = "Bronze", "Silver"
69
- start_point, end_point = 0, 100
70
- if user_points >= 100 and user_points < 200:
71
- current_tier, next_tier = "Silver", "Gold"
72
- start_point, end_point = 100, 200
73
- elif user_points >= 200 and user_points < 300:
74
- current_tier, next_tier = "Gold", "Platinum"
75
- start_point, end_point = 200, 300
76
- elif user_points >= 300:
77
- current_tier, next_tier = "Platinum", "N/A"
78
- start_point, end_point = 300, 500
79
-
80
- progress_percentage = ((user_points - start_point) / (end_point - start_point)) * 100 if end_point != start_point else 100
81
- points_needed_for_next_tier = max(0, end_point - user_points)
82
-
83
  # ====== FETCH ORDER SUMMARY ======
84
  order_query = f"""
85
- SELECT Id, Customer_Name__c, Customer_Email__c, Total_Amount__c, Order_Details__c,
86
- Order_Status__c, Discount__c, Total_Bill__c, CreatedDate,
87
- Delivery_Address__c, Place_of_Supply__c, CGST_Rate__c, SGST_Rate__c,
88
- Payment_Mode__c, Reverse_Charge__c
89
  FROM Order__c
90
  WHERE Customer_Email__c = '{safe_email}'
91
  ORDER BY CreatedDate DESC
@@ -99,19 +69,10 @@ def combined_summary():
99
  order = order_result["records"][0]
100
  order_details = order.get("Order_Details__c", "")
101
  order_items = []
102
- sector_names = set()
103
 
104
- # Calculate totals
105
- total_gross_value = 0
106
- total_discount = order.get("Discount__c", 0)
107
- total_net_value = 0
108
- total_cgst = 0
109
- total_sgst = 0
110
  total_amount = 0
111
 
112
- cgst_rate = order.get("CGST_Rate__c", 2.5) / 100 # e.g., 2.5% as 0.025
113
- sgst_rate = order.get("SGST_Rate__c", 2.5) / 100
114
-
115
  for line in order_details.split('\n'):
116
  item_parts = line.split('|')
117
  if len(item_parts) >= 5:
@@ -120,61 +81,21 @@ def combined_summary():
120
  safe_item_name = escape_soql(item_name)
121
 
122
  menu_query = f"""
123
- SELECT Name, Price__c, Image1__c,
124
- Ingredient_1__r.Ingredient_Name__c, Ingredient_1__r.Ingredient_Image__c,
125
- Ingredient_1__r.Health_Benefits__c, Ingredient_1__r.Fun_Facts__c,
126
- Ingredient_2__r.Ingredient_Name__c, Ingredient_2__r.Ingredient_Image__c,
127
- Ingredient_2__r.Health_Benefits__c, Ingredient_2__r.Fun_Facts__c,
128
- Sector__c
129
  FROM Menu_Item__c
130
  WHERE Name = '{safe_item_name}'
131
  """
132
  menu_result = sf.query_all(menu_query)
133
- ingredients = []
134
 
135
  if menu_result.get("records"):
136
  menu_item = menu_result["records"][0]
137
  price = menu_item.get("Price__c", 0)
138
- discount = 0 # Adjust if discount is per item
139
- net_value = price - discount
140
- cgst = net_value * cgst_rate
141
- sgst = net_value * sgst_rate
142
- item_total = net_value + cgst + sgst
143
-
144
- # Update totals
145
- total_gross_value += price
146
- total_discount += discount
147
- total_net_value += net_value
148
- total_cgst += cgst
149
- total_sgst += sgst
150
- total_amount += item_total
151
-
152
- if menu_item.get('Ingredient_1__r'):
153
- ingredients.append({
154
- "name": menu_item['Ingredient_1__r'].get('Ingredient_Name__c', ''),
155
- "image": menu_item['Ingredient_1__r'].get('Ingredient_Image__c', ''),
156
- "health_benefits": menu_item['Ingredient_1__r'].get('Health_Benefits__c', ''),
157
- "fun_facts": menu_item['Ingredient_1__r'].get('Fun_Facts__c', '')
158
- })
159
-
160
- if menu_item.get('Ingredient_2__r'):
161
- ingredients.append({
162
- "name": menu_item['Ingredient_2__r'].get('Ingredient_Name__c', ''),
163
- "image": menu_item['Ingredient_2__r'].get('Ingredient_Image__c', ''),
164
- "health_benefits": menu_item['Ingredient_2__r'].get('Health_Benefits__c', ''),
165
- "fun_facts": menu_item['Ingredient_2__r'].get('Fun_Facts__c', '')
166
- })
167
-
168
- if menu_item.get('Sector__c'):
169
- sector_names.update(menu_item['Sector__c'].split(','))
170
 
171
  order_items.append({
172
  "name": item_name,
173
  "price": price,
174
- "discount": discount,
175
- "image_url": menu_item.get("Image1__c", ''),
176
- "ingredients": ingredients,
177
- "category": "Food" if ingredients else "Soft Drink"
178
  })
179
 
180
  # Fetch restaurant details
@@ -193,61 +114,21 @@ def combined_summary():
193
  "fssai": "13622012000022"
194
  }
195
 
196
- # Fetch sector details
197
- sector_details = {}
198
- for sector_name in sector_names:
199
- safe_sector_name = escape_soql(sector_name.strip())
200
- sector_query = f"""
201
- SELECT Name, Image_URL__c, Description__c
202
- FROM Sector_Detail__c
203
- WHERE Name = '{safe_sector_name}'
204
- """
205
- sector_result = sf.query_all(sector_query)
206
- if sector_result.get("records"):
207
- sector_record = sector_result["records"][0]
208
- sector_details[sector_name] = {
209
- "image_url": sector_record.get('Image_URL__c', ''),
210
- "description": sector_record.get('Description__c', '')
211
- }
212
 
213
- # Format order data
214
  order_data = {
215
  "id": order.get("Id", "247JD92F00043965"),
216
- "created_date": order.get("CreatedDate", "2024-12-12").split("T")[0],
217
- "delivery_address": order.get("Delivery_Address__c", "Plot no -80, Road no-4, Sharadha Nagar, Vanasthalipuram, 500070"),
218
- "place_of_supply": order.get("Place_of_Supply__c", "Telangana(36)"),
219
- "cgst_rate": f"{order.get('CGST_Rate__c', 2.5)}%",
220
- "sgst_rate": f"{order.get('SGST_Rate__c', 2.5)}%",
221
- "cgst_rate_float": order.get("CGST_Rate__c", 2.5) / 100,
222
- "sgst_rate_float": order.get("SGST_Rate__c", 2.5) / 100,
223
- "payment_mode": order.get("Payment_Mode__c", "Digital"),
224
- "reverse_charge": order.get("Reverse_Charge__c", "No")
225
  }
226
 
227
- # Convert total amount to words
228
- total_amount_in_words = number_to_words(total_amount)
229
-
230
- # Prepare template data
231
  template_data = {
232
  "order_id": order_data["id"],
233
  "order_items": order_items,
234
  "customer": customer_data,
235
  "restaurant": restaurant,
236
  "order": order_data,
237
- "sector_details": sector_details,
238
- "current_tier": current_tier,
239
- "next_tier": next_tier,
240
- "user_points": user_points,
241
- "progress_percentage": progress_percentage,
242
- "start_point": start_point,
243
- "end_point": end_point,
244
- "points_needed_for_next_tier": points_needed_for_next_tier,
245
- "validity_year": datetime.now().year,
246
- "total_gross_value": total_gross_value,
247
- "total_discount": total_discount,
248
- "total_net_value": total_net_value,
249
- "total_cgst": total_cgst,
250
- "total_sgst": total_sgst,
251
  "total_amount": total_amount,
252
  "total_amount_in_words": total_amount_in_words
253
  }
 
36
 
37
  # ====== FETCH CUSTOMER DETAILS ======
38
  customer_query = f"""
39
+ SELECT Id, Name, Email__c, Phone_Number__c
40
  FROM Customer_Login__c
41
  WHERE Email__c = '{safe_email}'
42
  LIMIT 1
 
50
  customer_data = {
51
  "name": customer.get("Name", "SATHVIK GANTA"),
52
  "email": customer.get("Email__c", "[email protected]"),
53
+ "phone": customer.get("Phone_Number__c", "9876543210")
 
 
54
  }
55
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  # ====== FETCH ORDER SUMMARY ======
57
  order_query = f"""
58
+ SELECT Id, Customer_Name__c, Customer_Email__c, Order_Details__c, CreatedDate
 
 
 
59
  FROM Order__c
60
  WHERE Customer_Email__c = '{safe_email}'
61
  ORDER BY CreatedDate DESC
 
69
  order = order_result["records"][0]
70
  order_details = order.get("Order_Details__c", "")
71
  order_items = []
 
72
 
73
+ # Calculate total
 
 
 
 
 
74
  total_amount = 0
75
 
 
 
 
76
  for line in order_details.split('\n'):
77
  item_parts = line.split('|')
78
  if len(item_parts) >= 5:
 
81
  safe_item_name = escape_soql(item_name)
82
 
83
  menu_query = f"""
84
+ SELECT Name, Price__c, Image1__c
 
 
 
 
 
85
  FROM Menu_Item__c
86
  WHERE Name = '{safe_item_name}'
87
  """
88
  menu_result = sf.query_all(menu_query)
 
89
 
90
  if menu_result.get("records"):
91
  menu_item = menu_result["records"][0]
92
  price = menu_item.get("Price__c", 0)
93
+ total_amount += price
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
94
 
95
  order_items.append({
96
  "name": item_name,
97
  "price": price,
98
+ "image_url": menu_item.get("Image1__c", '')
 
 
 
99
  })
100
 
101
  # Fetch restaurant details
 
114
  "fssai": "13622012000022"
115
  }
116
 
117
+ # Convert total amount to words
118
+ total_amount_in_words = number_to_words(total_amount)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
 
120
+ # Prepare template data
121
  order_data = {
122
  "id": order.get("Id", "247JD92F00043965"),
123
+ "created_date": order.get("CreatedDate", "2024-12-12").split("T")[0]
 
 
 
 
 
 
 
 
124
  }
125
 
 
 
 
 
126
  template_data = {
127
  "order_id": order_data["id"],
128
  "order_items": order_items,
129
  "customer": customer_data,
130
  "restaurant": restaurant,
131
  "order": order_data,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
132
  "total_amount": total_amount,
133
  "total_amount_in_words": total_amount_in_words
134
  }