Subbu1304 commited on
Commit
f3080ce
·
verified ·
1 Parent(s): ce2aa87

Update order.py

Browse files
Files changed (1) hide show
  1. order.py +2 -48
order.py CHANGED
@@ -1,14 +1,10 @@
1
- from flask import Blueprint, render_template, request, session, jsonify, redirect, url_for, send_file
2
  from salesforce import get_salesforce_connection
3
- from io import BytesIO
4
- from reportlab.lib.pagesizes import letter
5
- from reportlab.pdfgen import canvas
6
 
7
  order_blueprint = Blueprint('order', __name__)
8
 
9
  # Initialize Salesforce connection
10
  sf = get_salesforce_connection()
11
-
12
  @order_blueprint.route("/order", methods=["GET"])
13
  def order_summary():
14
  email = session.get('user_email') # Fetch logged-in user's email
@@ -34,50 +30,8 @@ def order_summary():
34
  print(f"Error fetching order details: {str(e)}")
35
  return render_template("order.html", order=None, error=str(e))
36
 
37
- # New route to generate the invoice
38
- @order_blueprint.route("/generate_invoice/<order_id>", methods=["GET"])
39
- def generate_invoice(order_id):
40
- email = session.get('user_email') # Fetch logged-in user's email
41
- if not email:
42
- return jsonify({"success": False, "message": "User not logged in"}), 400
43
-
44
- try:
45
- # Fetch order details from Salesforce
46
- result = sf.query(f"""
47
- SELECT Id, Customer_Name__c, Customer_Email__c, Total_Amount__c, Order_Details__c, Order_Status__c, Discount__c, Total_Bill__c
48
- FROM Order__c
49
- WHERE Id = '{order_id}'
50
- """)
51
- order = result.get("records", [])[0] if result.get("records") else None
52
 
53
- if not order:
54
- return jsonify({"success": False, "message": "Order not found"}), 404
55
 
56
- # Create PDF invoice
57
- buffer = BytesIO()
58
- c = canvas.Canvas(buffer, pagesize=letter)
59
- c.drawString(100, 750, f"Invoice for Order ID: {order_id}")
60
- c.drawString(100, 730, f"Customer Name: {order['Customer_Name__c']}")
61
- c.drawString(100, 710, f"Customer Email: {order['Customer_Email__c']}")
62
- c.drawString(100, 690, f"Total Amount: ${order['Total_Amount__c']}")
63
- c.drawString(100, 670, f"Discount: ${order['Discount__c']}")
64
- c.drawString(100, 650, f"Total Bill: ${order['Total_Bill__c']}")
65
-
66
- # Add order details (split by new lines)
67
- order_details = order.get("Order_Details__c", "").split("\n")
68
- y_position = 630
69
- for line in order_details:
70
- c.drawString(100, y_position, line)
71
- y_position -= 20
72
 
73
- # Finalize the PDF
74
- c.showPage()
75
- c.save()
76
 
77
- # Send the PDF as a downloadable file
78
- buffer.seek(0)
79
- return send_file(buffer, as_attachment=True, download_name=f"invoice_{order_id}.pdf", mimetype="application/pdf")
80
-
81
- except Exception as e:
82
- print(f"Error generating invoice: {str(e)}")
83
- return jsonify({"success": False, "message": str(e)}), 500
 
1
+ from flask import Blueprint, render_template, request, session, jsonify # Added jsonify import
2
  from salesforce import get_salesforce_connection
 
 
 
3
 
4
  order_blueprint = Blueprint('order', __name__)
5
 
6
  # Initialize Salesforce connection
7
  sf = get_salesforce_connection()
 
8
  @order_blueprint.route("/order", methods=["GET"])
9
  def order_summary():
10
  email = session.get('user_email') # Fetch logged-in user's email
 
30
  print(f"Error fetching order details: {str(e)}")
31
  return render_template("order.html", order=None, error=str(e))
32
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
 
 
 
34
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
 
 
 
 
36
 
37
+