Untitled
unknown
python
4 years ago
4.0 kB
10
Indexable
from jinja2 import FileSystemLoader,Environment
import os
import pdfkit
@router.get('/memberships/invoice/')
@access_required(["user"]) # admin accessible only
async def get_membership_invoice(request: Request,payload=None, user_type=None):
try:
mobile = payload.get("mobile")
user_id = payload.get("user_id")
membership_id = payload.get("membership_id")
print(membership_id)
auth_object = mydb.auth.find_one({"_id":ObjectId(user_id)})
membership_object = mydb.membership.find_one({"_id":ObjectId(membership_id)})
price = membership_object.get("price")
price_excluding_tax = membership_object.get("price_excluding_tax")
sap_item_code = membership_object.get("sap_item_code")
membership_address_object = mydb.membership_address.find_one({"membership_id":membership_id,"user_id":user_id})
warehouse_code = membership_address_object.get("warehouse_code")
collection_object = mydb.collection_item.find_one({"number":sap_item_code})
tax = collection_object.get("tax").get("rate")
warehouse_array = collection_object.get("warehouses")
total = (price-price_excluding_tax)/2
# mrp = 0
# for warehouse_object in warehouse_array:
# if warehouse_object.get("code") == warehouse_code:
# mrp = warehouse_object.get("MRP")
# break
print("11111111111111111",collection_object.get("hsn"))
item_details={
"s_no":1,
"name":collection_object.get("name"),
"hsn":collection_object.get("hsn",23456),
"quantity_fulfilled":1,
"mrp":999,
"unit_cost" : "{:0.2f}".format(price_excluding_tax),
"payable_value" : "{:0.2f}".format(price_excluding_tax),
"tax" : tax,
"SGST" : "{:0.2f}".format(round(total,2)),
"CGST" : "{:0.2f}".format(round(total,2)),
"total_value" : "{:0.2f}".format(price),
"warehouse_code":warehouse_code
}
address = membership_address_object.get("house_no")\
+","+membership_address_object.get("society")\
+","+membership_address_object.get("state")\
+","+membership_address_object.get("city")\
+","+membership_address_object.get("block")
customer_details = {
"name":payload.get("name"),
"mobile": mobile,
"address":address,
"payment_mode":auth_object.get("membership")[0].get("payment_mode"),
"membership_created_at":auth_object.get("membership")[0].get("created_at").strftime("%a %b %d %l:%M%p"),
"order_id": "DEERIKA"+str(mobile)
}
env = Environment(
loader=FileSystemLoader(
os.path.abspath(
os.path.dirname(__file__)) + '/templates', encoding='utf8'))
temp = env.get_template('invoice.html')
html = temp.render(picklists = item_details, customer = customer_details)
print("--html file rendered--")
filename = "Invoice_{}.pdf" .format("xyz")
with open('html_op.html','w') as f:
f.write(html)
pdfkit.from_file("html_op.html", filename)
# aws_access_key = config("aws_access_key")
# aws_secret_key = config("aws_secret_key")
# s3 = boto3.resource(
# service_name = "s3",
# region_name = "ap-south-1",
# aws_access_key_id = aws_access_key,
# aws_secret_access_key = aws_secret_key
# )
# mimetype = 'application/pdf'
# s3.Bucket(BUCKET_NAME).upload_file(filename, filename, ExtraArgs={"ContentType": mimetype})
print("--File uploaded successfully--")
except Exception as e:
return {
"message":"Success",
"success":True
}Editor is loading...