Rammohan0504 commited on
Commit
c3f3bfe
·
verified ·
1 Parent(s): d2cbfea

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -25
app.py CHANGED
@@ -387,51 +387,57 @@ def get_addons():
387
  return jsonify({"success": False, "error": "Unable to fetch add-ons. Please try again later."})
388
 
389
 
 
390
  @app.route("/cart/update_quantity", methods=["POST"])
391
  def update_quantity():
392
- data = request.json
393
- item_name = data.get('item_name')
 
394
 
395
  try:
396
- # Convert quantity to an integer
397
- quantity = int(data.get('quantity'))
398
  except (ValueError, TypeError):
399
  return jsonify({"success": False, "error": "Invalid quantity provided."}), 400
400
 
401
- if not item_name or quantity is None:
402
- return jsonify({"success": False, "error": "Item name and quantity are required."}), 400
403
 
404
  try:
405
- # Query cart item from Salesforce
406
- cart_items = sf.query(
407
- f"SELECT Id, Quantity__c, Price__c, Base_Price__c, Add_Ons_Price__c FROM Cart_Item__c "
408
- f"WHERE Name = '{item_name}'"
409
- )['records']
410
 
411
  if not cart_items:
412
  return jsonify({"success": False, "error": "Cart item not found."}), 404
413
 
414
- # Retrieve first matching record
415
- cart_item_id = cart_items[0]['Id']
416
- base_price = cart_items[0].get('Base_Price__c', 0)
417
- addons_price = cart_items[0].get('Add_Ons_Price__c', 0)
418
- print(base_price)
419
 
420
  if base_price is None:
421
  base_price = 0
422
- # Calculate new item price
423
- new_item_price = (base_price * quantity) + addons_price
424
- print(new_item_price)
425
 
426
- # Update the record in Salesforce
 
 
427
  sf.Cart_Item__c.update(cart_item_id, {
428
  "Quantity__c": quantity,
429
- "Price__c": new_item_price, # Update item price
430
  })
431
 
432
- # Recalculate subtotal for all items in cart
433
- all_cart_items = sf.query("SELECT Price__c FROM Cart_Item__c")['records']
434
- new_subtotal = sum(item['Price__c'] for item in all_cart_items)
 
 
 
 
 
 
 
 
 
 
 
 
435
 
436
  return jsonify({"success": True, "new_item_price": new_item_price, "subtotal": new_subtotal})
437
 
@@ -439,7 +445,6 @@ def update_quantity():
439
  print(f"Error updating quantity: {str(e)}")
440
  return jsonify({"success": False, "error": str(e)}), 500
441
 
442
-
443
 
444
  @app.route("/checkout", methods=["POST"])
445
  def checkout():
 
387
  return jsonify({"success": False, "error": "Unable to fetch add-ons. Please try again later."})
388
 
389
 
390
+
391
  @app.route("/cart/update_quantity", methods=["POST"])
392
  def update_quantity():
393
+ data = request.json
394
+ item_name = data.get("item_name")
395
+ email = data.get("email")
396
 
397
  try:
398
+ quantity = int(data.get("quantity"))
 
399
  except (ValueError, TypeError):
400
  return jsonify({"success": False, "error": "Invalid quantity provided."}), 400
401
 
402
+ if not item_name or not email:
403
+ return jsonify({"success": False, "error": "Email and item name are required."}), 400
404
 
405
  try:
406
+ # Fetch the cart item from Salesforce
407
+ cart_items = sf.query(f"SELECT Id, Base_Price__c FROM Cart_Item__c WHERE Name = '{item_name}'")["records"]
 
 
 
408
 
409
  if not cart_items:
410
  return jsonify({"success": False, "error": "Cart item not found."}), 404
411
 
412
+ cart_item_id = cart_items[0]["Id"]
413
+ base_price = cart_items[0].get("Base_Price__c", 0) # Default to 0 if None
 
 
 
414
 
415
  if base_price is None:
416
  base_price = 0
 
 
 
417
 
418
+ new_item_price = base_price * quantity
419
+
420
+ # Update Cart Item in Salesforce
421
  sf.Cart_Item__c.update(cart_item_id, {
422
  "Quantity__c": quantity,
423
+ "Price__c": new_item_price,
424
  })
425
 
426
+ # Fetch all cart items for this user to calculate the new subtotal
427
+ cart_items = sf.query(f"SELECT Price__c FROM Cart_Item__c WHERE Customer_Email__c = '{email}'")["records"]
428
+ new_subtotal = sum(item["Price__c"] for item in cart_items)
429
+
430
+ # Fetch the latest Order for the user
431
+ order_result = sf.query(f"""
432
+ SELECT Id FROM Order__c
433
+ WHERE Customer_Email__c = '{email}'
434
+ ORDER BY CreatedDate DESC
435
+ LIMIT 1
436
+ """)
437
+
438
+ if order_result.get("records"):
439
+ order_id = order_result["records"][0]["Id"]
440
+ sf.Order__c.update(order_id, {"Total_Amount__c": new_subtotal})
441
 
442
  return jsonify({"success": True, "new_item_price": new_item_price, "subtotal": new_subtotal})
443
 
 
445
  print(f"Error updating quantity: {str(e)}")
446
  return jsonify({"success": False, "error": str(e)}), 500
447
 
 
448
 
449
  @app.route("/checkout", methods=["POST"])
450
  def checkout():