# from appservices.common.util import *

# user_managements = Blueprint("user_managements",__name__)

# @user_managements.route("/add_new_user",methods=["POST","GET"])
# def add_new_user():
# 	try:
# 		if not session.get("adminId"):
# 			return redirect("admin_login")
# 		adminId = session.get("adminId")
# 		if request.method == "POST":
# 			fullName = request.form.get("fullName","")
# 			phoneNumber = request.form.get("phoneNumber","")
# 			email = request.form.get("email","")
# 			address = request.form.get("address","")
# 			userTypeId = request.form.get("userTypeId","")
# 			entityTypeId = request.form.get("entityTypeId","")
# 			stateId = request.form.get("stateId","")
# 			cityId = request.form.get("cityId","")
# 			blockPoId = request.form.get("blockPoId","")
# 			pincodeId = request.form.get("pincodeId","")
# 			password = request.form.get("password","")
# 			businessName = request.form.get("businessName","")
# 			businessAddress = request.form.get("businessAddress","")
# 			profileId = request.form.get("profileId","")
# 			parentId = request.form.get("parentId","")

# 			if userTypeId and entityTypeId:
# 				try:
# 					user_table = Users(
# 						fullName = fullName,
# 						phoneNumber  = phoneNumber,
# 						email  = email,
# 						password  = generate_password_hash(password), 
# 						address = address,
# 						userTypeId = userTypeId,
# 						entityTypeId = entityTypeId,
# 						createdOn =datetime.datetime.now(),
# 						stateId = stateId,
# 						cityId = cityId,
# 						blockPoId = blockPoId,
# 						pincodeId = pincodeId,
# 						parentId = parentId,
# 						businessName = businessName,
# 						businessAddress = businessAddress,
# 						profileId = profileId,
# 						status = 1
# 						)
# 					save_table = user_table.save()
# 					userId = str(save_table.id)
# 					if userId:
# 						userId = userId
# 						panName = request.form.get("panName","")
# 						panNumber = request.form.get("panNumber","")
# 						panStatus = request.form.get("panStatus","")
# 						panDocument = request.files.get("panDocument","")
# 						bankName = request.form.get("bankName","")
# 						bankAccountNumber = request.form.get("bankAccountNumber","")
# 						bankStatus = request.form.get("bankStatus","")
# 						ifscCode = request.form.get("ifscCode","")
# 						aadharName = request.form.get("aadharName","")
# 						aadharNumber = request.form.get("aadharNumber","")
# 						aadharStatus = request.form.get("aadharStatus","")
# 						aadharDocument = request.files.get("aadharDocument","")

# 						user_kyc_table = UserKYC(
# 							userId=userId,
# 							panName = panName,
# 							panNumber  = panNumber,
# 							panStatus  = panStatus,
# 							bankName  = bankName,
# 							bankAccountNumber  = bankAccountNumber,
# 							bankStatus  = bankStatus,
# 							ifscCode  = ifscCode,
# 							aadharName  = aadharName,
# 							aadharNumber  = aadharNumber,
# 							aadharStatus  = aadharStatus,
# 							createdOn =datetime.datetime.now(),
# 							status = 1
# 							)
# 						save_table = user_kyc_table.save()

# 					flash("User saved successfully!")
# 					return redirect(url_for("user_managements.manage_users_list"))
# 				except Exception as e:
# 					flash("Unable to save user!!")
# 					app.logger.error(traceback.format_exc())
# 					return redirect(url_for("user_managements.manage_users_list"))
# 			else:
# 				flash("Required fields are missing!!")
# 				return redirect(url_for("user_managements.manage_users_list"))
# 	except Exception as e:
# 		app.logger.error(traceback.format_exc())
# 		error = "Unable to save user!!"
# 		return render_template("super_admin_templates/user_managements_list.html",error=error)


# def fetching_user_kyc_details(user_kyc_queryset):
# 	userKycDict = {}
# 	try:
# 		userKycDict = {
# 		"id":str(user_kyc_queryset.id),
# 		"panName":user_kyc_queryset.panName,
# 		"panNumber":user_kyc_queryset.panNumber,
# 		"panStatus":user_kyc_queryset.panStatus,
# 		"bankName":user_kyc_queryset.bankName,
# 		"bankAccountNumber":user_kyc_queryset.bankAccountNumber,
# 		"bankStatus":user_kyc_queryset.bankStatus,
# 		"ifscCode":user_kyc_queryset.ifscCode,
# 		"aadharName":user_kyc_queryset.aadharName,
# 		"aadharNumber":user_kyc_queryset.aadharNumber,
# 		"aadharStatus":user_kyc_queryset.aadharStatus,
# 		"panReason":user_kyc_queryset.panReason,
# 		"aadharReason":user_kyc_queryset.aadharReason,
# 		"bankReason":user_kyc_queryset.bankReason,
# 		"videoVerificationReason":user_kyc_queryset.videoVerificationReason,
# 		"submissionDate":user_kyc_queryset.createdOn.strftime("%m-%d-%Y"),
# 		"aadharName":user_kyc_queryset.aadharName
# 		}
# 		kycStatusList = []
# 		if user_kyc_queryset.panStatus:
# 			kycStatusList.append(user_kyc_queryset.panStatus)
# 		if user_kyc_queryset.bankStatus:
# 			kycStatusList.append(user_kyc_queryset.bankStatus)
# 		if user_kyc_queryset.aadharStatus:
# 			kycStatusList.append(user_kyc_queryset.aadharStatus)

# 		if "Rejected" in kycStatusList:
# 			userKycDict["kycStatus"] = "Rejected"
# 		elif "Pending" in kycStatusList:
# 			userKycDict["kycStatus"] = "Pending"
# 		elif all(status == "Submitted" for status in kycStatusList):
# 			userKycDict["kycStatus"] = "Submitted"
# 		elif all(status == "Approved" for status in kycStatusList):
# 			userKycDict["kycStatus"] = "Approved"
# 		else:
# 			userKycDict["kycStatus"] = "-"

# 		if user_kyc_queryset.userId:
# 			userKycDict["userId"]=str(user_kyc_queryset.userId.id)
# 			userKycDict["fullName"]=user_kyc_queryset.userId.fullName
# 			userKycDict["phoneNumber"]=user_kyc_queryset.userId.phoneNumber
# 			userKycDict["email"]=user_kyc_queryset.userId.email
# 			userKycDict["address"]=user_kyc_queryset.userId.address
# 			userKycDict["businessName"]=user_kyc_queryset.userId.businessName
# 			userKycDict["businessAddress"]=user_kyc_queryset.userId.businessAddress
# 		else:
# 			userKycDict["userId"]=""
# 			userKycDict["fullName"]="-"
# 			userKycDict["phoneNumber"]="-"
# 			userKycDict["email"]="-"
# 			userKycDict["address"]="-"
# 			userKycDict["businessName"]="-"
# 			userKycDict["businessAddress"]="-"
# 		if user_kyc_queryset.aadharDocument:
# 			userKycDict["aadharDocument"]=domain+user_kyc_queryset.aadharDocument
# 		else:
# 			userKycDict["aadharDocument"]=""

# 		if user_kyc_queryset.panDocument:
# 			userKycDict["panDocument"]=domain+user_kyc_queryset.panDocument
# 		else:
# 			userKycDict["panDocument"]=""

# 		if user_kyc_queryset.uploadVideo:
# 			userKycDict["uploadVideo"]=domain+user_kyc_queryset.uploadVideo
# 		else:
# 			userKycDict["uploadVideo"]=""

# 		if user_kyc_queryset.status==1:
# 			userKycDict["actionText"] = "Approved"
# 		else:
# 			userKycDict["actionText"] = "Pending"
# 	except Exception as e:
# 		app.logger.error(traceback.format_exc())
# 	return userKycDict

# @user_managements.route("/manage_users_list",methods=["POST","GET"])
# def manage_users_list():
# 	try:
# 		if not session.get("adminId"):
# 			return redirect("admin_login")
# 		adminId = session.get("adminId")
# 		manage_users_list = []
# 		userEntityList = []
# 		userTypesList = []
# 		profilelList = []
# 		statesList = []
# 		citiesList = []
# 		blocksList = []
# 		pincodesList = []
# 		tenantslList = []
# 		usersList = []

# 		users_queryset = Users.objects(status__nin=[2]).order_by("-id")
# 		for each_user in users_queryset:
# 			userDict = fetching_user_details(each_user)
# 			usersList.append(userDict)


# 		user_types_queryset = UserTypes.objects(status__in=[1]).order_by("-id")

# 		for each_user_type in user_types_queryset:
# 			userTypeDict = fetching_user_type_details(each_user_type)
# 			userTypesList.append(userTypeDict)

# 		user_entities_queryset = UserEntity.objects(status__in=[1]).order_by("-id")

# 		for each_user_entity in user_entities_queryset:
# 			userEntityDict = fetching_user_entity_details(each_user_entity)
# 			userEntityList.append(userEntityDict)

# 		states_queryset = States.objects(status__in=[1]).order_by("stateName")
# 		for each_state in states_queryset:
# 			state_dict = fetching_states_details(each_state)
# 			statesList.append(state_dict)

# 		cities_queryset = Cities.objects(status__in=[1]).order_by("cityName")
# 		for each_city in cities_queryset:
# 			city_dict = fetching_cities_details(each_city)
# 			citiesList.append(city_dict)

# 		blocks_queryset = BlocksPos.objects(status__in=[1]).order_by("-id")
# 		for each_block in blocks_queryset:
# 			block_dict = fetching_blocks_details(each_block)
# 			blocksList.append(block_dict)

# 		pincodes_queryset = Pincodes.objects(status__in=[1]).order_by("-id")
# 		for each_pincode in pincodes_queryset:
# 			pincode_dict = fetching_pincode_details(each_pincode)
# 			pincodesList.append(pincode_dict)

# 		profiles_queryset = Profiles.objects(status__in=[1]).order_by("-id")
# 		for each_profile in profiles_queryset:
# 			profileDict = fetching_profile_details(each_profile)
# 			profilelList.append(profileDict)

# 		tenants_queryset = TenantManagements.objects(status__in=[1]).order_by("-id")
# 		for each_tenant in tenants_queryset:
# 			tenantDict = fetching_tenant_details(each_tenant)
# 			tenantslList.append(tenantDict)

# 		return render_template("super_admin_templates/user_managements_list.html",
# 			statesList=statesList,
# 			citiesList=citiesList,
# 			blocksList=blocksList,
# 			pincodesList=pincodesList,
# 			profilelList=profilelList,
# 			tenantslList=tenantslList,
# 			userTypesList=userTypesList,
# 			usersList=usersList,
# 			userEntityList=userEntityList
# 			)
# 	except Exception as e:
# 		app.logger.error(traceback.format_exc())
# 		error = "Unable to fetched manage user data!!"
# 		return render_template("super_admin_templates/user_managements_list.html", 
# 			error=error,
# 			statesList=statesList,
# 			citiesList=citiesList,
# 			blocksList=blocksList,
# 			pincodesList=pincodesList,
# 			userTypesList=userTypesList,
# 			profilelList=profilelList,
# 			tenantslList=tenantslList,
# 			usersList=usersList,
# 			userEntityList=userEntityList
# 			)

# def fetching_user_entity_details(user_entity_queryset):
# 	userEntityDict = {}
# 	try:
# 		userEntityDict={
# 		"id":str(user_entity_queryset.id),
# 		"entityType":user_entity_queryset.entityType
# 		}
# 		if user_entity_queryset.status==1:
# 			userEntityDict["actionText"] = "Active"
# 		else:
# 			userEntityDict["actionText"] = "Deactive"
# 	except Exception as e:
# 		app.logger.error(traceback.format_exc())
# 	return userEntityDict

# def fetching_user_type_details(user_type_queryset):
# 	userTypeDict = {}
# 	try:
# 		userTypeDict={
# 		"id":str(user_type_queryset.id),
# 		"userType":user_type_queryset.userType,
# 		"code":user_type_queryset.code,
# 		"description":user_type_queryset.description,
# 		"rank":user_type_queryset.rank,
# 		"isAllow":user_type_queryset.isAllow,
# 		"isCommission":user_type_queryset.isCommission,
# 		"isUser":user_type_queryset.isUser
# 		}
# 		if user_type_queryset.status==1:
# 			userTypeDict["actionText"] = "Active"
# 		else:
# 			userTypeDict["actionText"] = "Deactive"
# 		if user_type_queryset.createdOn:
# 			userTypeDict["createdOn"] = user_type_queryset.createdOn.strftime("%m-%d-%Y")
# 		else:
# 			userTypeDict["createdOn"] = ""
# 	except Exception as e:
# 		app.logger.error(traceback.format_exc())
# 	return userTypeDict


# # def fetching_single_view_user_details(user_queryset):
# #     user_details = {}
# #     try:
# #         user_details = {
# #         "id":str(user_queryset.id),
# #         "fullName":user_queryset.fullName,
# #         "mobileNumber":user_queryset.phoneNumber,
# #         "email":user_queryset.email,
# #         "address":user_queryset.address,
# #         # "pincode":user_queryset.pincodeId.pincode,
# #         # "pincodeId":str(user_queryset.pincodeId.id),
# #         "stateId":str(user_queryset.stateId.id),
# #         "stateName":user_queryset.stateId.stateName,
# #         "cityId":str(user_queryset.cityId.id),
# #         "cityName":user_queryset.cityId.cityName,
# #         "blockPoId":str(user_queryset.blockPoId.id),
# #         "blockPoName":user_queryset.blockPoId.name,
# #         }
# #         try:
# #             if user_queryset.pincodeId:
# #                 user_details["pincodeId"]=str(user_queryset.pincodeId.id)
# #                 user_details["pincode"]=user_queryset.pincodeId.pincode
# #             else:
# #                 user_details["pincodeId"]=""
# #                 user_details["pincode"]="-"
# #         except Exception as e:
# #             user_details["pincodeId"]=""
# #             user_details["pincode"]="-"

# #         if user_queryset.businessName:
# #             user_details["businessName"]=user_queryset.businessName
# #         else:
# #             user_details["businessName"]="-"

# #         if user_queryset.businessAddress:
# #             user_details["businessAddress"]=user_queryset.businessAddress
# #         else:
# #             user_details["businessAddress"]="-"

# #         if user_queryset.parentId:
# #             user_details["parentId"]=str(user_queryset.parentId.id)
# #             user_details["parentName"]=user_queryset.parentId.name
# #         else:
# #             user_details["parentId"]=""
# #             user_details["parentName"]="-"

# #         if user_queryset.profileId:
# #             user_details["profileId"]=str(user_queryset.profileId.id)
# #             user_details["profileName"]=user_queryset.profileId.name
# #         else:
# #             user_details["profileId"]=""
# #             user_details["profileName"]="-"

# #         if user_queryset.userTypeId:
# #             user_details["userTypeId"]=str(user_queryset.userTypeId.id)
# #             user_details["userTypeName"]=user_queryset.userTypeId.userType
# #         else:
# #             user_details["userTypeId"]=""
# #             user_details["userTypeName"]="-"

# #         if user_queryset.entityTypeId:
# #             user_details["entityTypeId"]=str(user_queryset.entityTypeId.id)
# #             user_details["entityTypeName"]=user_queryset.entityTypeId.entityType
# #         else:
# #             user_details["entityTypeId"]=""
# #             user_details["entityTypeName"]="-"

# #         if user_queryset.profilePicture:
# #             user_details["profilePicture"]=domain+user_queryset.profilePicture
# #         else:
# #             user_details["profilePicture"]=""

# #         user_kyc_queryset = UserKYC.objects(userId=str(user_queryset.id),status__in=[1]).first()
# #         if user_kyc_queryset:
# #             user_details = {
# #             "kycId":str(user_kyc_queryset.id),
# #             "panName":user_kyc_queryset.panName,
# #             "panNumber":user_kyc_queryset.panNumber,
# #             "panStatus":user_kyc_queryset.panStatus,
# #             "bankName":user_kyc_queryset.bankName,
# #             "bankAccountNumber":user_kyc_queryset.bankAccountNumber,
# #             "bankStatus":user_kyc_queryset.bankStatus,
# #             "ifscCode":user_kyc_queryset.ifscCode,
# #             "aadharName":user_kyc_queryset.aadharName,
# #             "aadharNumber":user_kyc_queryset.aadharNumber,
# #             "aadharStatus":user_kyc_queryset.aadharStatus,
# #             "aadharName":user_kyc_queryset.aadharName
# #             }
# #             if user_kyc_queryset.aadharDocument:
# #                 user_details["aadharDocument"]=domain+user_kyc_queryset.aadharDocument
# #             else:
# #                 user_details["aadharDocument"]=domain+"/media/defaultimage.jpg"

# #             if user_kyc_queryset.panDocument:
# #                 user_details["panDocument"]=domain+user_kyc_queryset.panDocument
# #             else:
# #                 user_details["panDocument"]=domain+"/media/defaultimage.jpg"

# #             if user_kyc_queryset.uploadVideo:
# #                 user_details["uploadVideo"]=domain+user_kyc_queryset.uploadVideo
# #             else:
# #                 user_details["uploadVideo"]=""

# #     except Exception as e:
# #         app.logger.error(traceback.format_exc())
# #     return user_details


# @user_managements.route("/update_user_kyc_status",methods=["POST","GET"])
# def update_user_kyc_status():
# 	if not session.get("adminId"):
# 		return redirect("admin_login")
# 	userKycId = request.args.get("userKycId","")

# 	if userKycId:
# 		try:
# 			user_kyc_queryset = UserKYC.objects(id=userKycId,status__nin=[2]).first()
# 			if user_kyc_queryset:
# 				if user_kyc_queryset.status == 0:
# 					user_kyc_queryset.update(status=1)
# 					flash("User KYC approved successfully!")
# 				elif user_kyc_queryset.status == 1:
# 					user_kyc_queryset.update(status=0)
# 					flash("User KYC status set to pending successfully!")
# 				return redirect(url_for("user_managements.pending_users_list"))
# 			else:
# 				flash("Invaild user KYC id!!")
# 				return redirect(url_for("user_managements.pending_users_list"))
# 		except Exception as e:
# 			app.logger.error(traceback.format_exc())
# 			return redirect(url_for("user_managements.pending_users_list"))
# 	else:
# 		return redirect(url_for("user_managements.pending_users_list"))

# # @user_managements.route("/single_view_user_kyc", methods=["POST", "GET"])
# # def single_view_user_kyc():
# #   if not session.get("adminId"):
# #       return redirect("admin_login")

# #   try:
# #       userKycId = request.args.get("userKycId", "")
# #       if request.method == "POST":
# #           userKycId = request.form.get("userKycId", "")

# #       user_kyc_queryset = UserKYC.objects(id=userKycId, status__in=[0,1]).first()

# #       if not user_kyc_queryset:
# #           flash("Invalid user kyc id!!")
# #           return redirect(url_for("user_managements.pending_users_list"))

# #       userDict = fetching_user_kyc_details(user_kyc_queryset)

# #       # If you want to display a flash message, uncomment the following line
# #       # flash("User data fetched successfully!")

# #       # Pass userDict as a query parameter
# #       return render_template("super_admin_templates/single_view_user_kyc_details.html",userDict=userDict)
# #       # return redirect(url_for("user_managements.manage_users_list", userDict=userDict))

# #   except Exception as e:
# #       app.logger.error(traceback.format_exc())
# #       error = "Unable to fetch user data!!"
# #       return redirect(url_for("user_managements.pending_users_list"))


# @user_managements.route("/single_view_user", methods=["POST", "GET"])
# def single_view_user():
# 	if not session.get("adminId"):
# 		return redirect("admin_login")

# 	try:
# 		userId = request.args.get("userId", "")
# 		if request.method == "POST":
# 			userId = request.form.get("userId", "")

# 		user_queryset = Users.objects(id=userId, status__in=[0,1]).first()

# 		if not user_queryset:
# 			flash("Invalid user id!!")
# 			return redirect(url_for("user_managements.manage_users_list"))

# 		userDict = fetching_user_details(user_queryset)

# 		# If you want to display a flash message, uncomment the following line
# 		# flash("User data fetched successfully!")

# 		# Pass userDict as a query parameter
# 		return render_template("super_admin_templates/single_view_user_details.html",userDict=userDict)
# 		# return redirect(url_for("user_managements.manage_users_list", userDict=userDict))

# 	except Exception as e:
# 		app.logger.error(traceback.format_exc())
# 		error = "Unable to fetch user data!!"
# 		return redirect(url_for("user_managements.manage_users_list"))

# @user_managements.route("/update_user_status",methods=["POST","GET"])
# def update_user_status():
# 	if not session.get("adminId"):
# 		return redirect("admin_login")
# 	userId = request.args.get("userId","")

# 	if userId:
# 		try:
# 			user_queryset = Users.objects(id=userId,status__nin=[2]).first()
# 			if user_queryset:
# 				if user_queryset.status == 0:
# 					user_queryset.update(status=1)
# 					flash("User approved successfully!")
# 				elif user_queryset.status == 1:
# 					user_queryset.update(status=0)
# 					flash("User status set to pending successfully!")
# 				return redirect(url_for("user_managements.manage_users_list"))
# 			else:
# 				flash("Invaild user id!!")
# 				return redirect(url_for("user_managements.manage_users_list"))
# 		except Exception as e:
# 			app.logger.error(traceback.format_exc())
# 			return redirect(url_for("user_managements.manage_users_list"))
# 	else:
# 		return redirect(url_for("user_managements.manage_users_list"))

# @user_managements.route("/delete_user",methods=["GET"])
# def delete_user():
# 	try:
# 		if not session.get("adminId"):
# 			return redirect("admin_login")
# 		if request.method == "GET":
# 			userId = request.args.get("userId","")
# 			user_queryset = Users.objects(id=userId,status__in=[0,1]).first()
# 			user_queryset.update(status=2)
# 			flash("User deleted successfully!")
# 			return redirect(url_for("user_managements.manage_users_list"))
# 	except Exception as e:
# 		app.logger.error(traceback.format_exc())
# 		flash("Unable to delete user!!")
# 		return redirect(url_for("user_managements.manage_users_list"))


# @user_managements.route("/user_update",methods=["POST","GET"])
# def user_update():
# 	try:
# 		if not session.get("adminId"):
# 			return redirect("admin_login")
# 		adminId = session.get("adminId")
# 		userId = request.args.get("userId","")
# 		print(userId)
# 		print("(((((((((((((((((((((((userId)))))))))))))))))))))))")

# 		if request.method == "GET":
# 			userTypesList = []
# 			statesList = []
# 			userEntityList = []
# 			citiesList = []
# 			blocksList = []
# 			pincodesList = []
# 			profilelList = []
# 			tenantslList = []
# 			userDict = {}

# 			user_queryset = Users.objects(id=userId, status__in=[0,1]).first()

# 			if not user_queryset:
# 				flash("Invalid user id!!")
# 				return redirect(url_for("user_managements.manage_users_list"))

# 			userDict = fetching_user_details(user_queryset)
# 			print(userDict)
# 			print("((((((((((((userDict))))))))))))")

# 			user_types_queryset = UserTypes.objects(status__in=[1]).order_by("-id")
# 			for each_user_type in user_types_queryset:
# 				userTypeDict = fetching_user_type_details(each_user_type)
# 				userTypesList.append(userTypeDict)

# 			user_entities_queryset = UserEntity.objects(status__in=[1]).order_by("-id")

# 			for each_user_entity in user_entities_queryset:
# 				userEntityDict = fetching_user_entity_details(each_user_entity)
# 				userEntityList.append(userEntityDict)

# 			states_queryset = States.objects(status__in=[1]).order_by("stateName")
# 			for each_state in states_queryset:
# 				state_dict = fetching_states_details(each_state)
# 				statesList.append(state_dict)

# 			cities_queryset = Cities.objects(status__in=[1]).order_by("cityName")
# 			for each_city in cities_queryset:
# 				city_dict = fetching_cities_details(each_city)
# 				citiesList.append(city_dict)

# 			blocks_queryset = BlocksPos.objects(status__in=[1]).order_by("-id")
# 			for each_block in blocks_queryset:
# 				block_dict = fetching_blocks_details(each_block)
# 				blocksList.append(block_dict)

# 			pincodes_queryset = Pincodes.objects(status__in=[1]).order_by("-id")
# 			for each_pincode in pincodes_queryset:
# 				pincode_dict = fetching_pincode_details(each_pincode)
# 				pincodesList.append(pincode_dict)

# 			profiles_queryset = Profiles.objects(status__in=[1]).order_by("-id")
# 			for each_profile in profiles_queryset:
# 				profileDict = fetching_profile_details(each_profile)
# 				profilelList.append(profileDict)

# 			tenants_queryset = TenantManagements.objects(status__in=[1]).order_by("-id")
# 			for each_tenant in tenants_queryset:
# 				tenantDict = fetching_tenant_details(each_tenant)
# 				tenantslList.append(tenantDict)

# 			return render_template("super_admin_templates/update_user_details.html",
# 				userDict=userDict,
# 				userTypesList=userTypesList,
# 				tenantslList=tenantslList,profilelList=profilelList,
# 				pincodesList=pincodesList,blocksList=blocksList,
# 				citiesList=citiesList,statesList=statesList,
# 				userEntityList=userEntityList
# 				)

# 		if request.method == "POST":
# 			fullName = request.form.get("fullName","")
# 			phoneNumber = request.form.get("phoneNumber","")
# 			email = request.form.get("email","")
# 			address = request.form.get("address","")
# 			userTypeId = request.form.get("userTypeId","")
# 			entityTypeId = request.form.get("entityTypeId","")
# 			stateId = request.form.get("stateId","")
# 			cityId = request.form.get("cityId","")
# 			blockPoId = request.form.get("blockPoId","")
# 			pincodeId = request.form.get("pincodeId","")
# 			businessName = request.form.get("businessName","")
# 			businessAddress = request.form.get("businessAddress","")
# 			profileId = request.form.get("profileId","")
# 			parentId = request.form.get("parentId","")
# 			try:
# 				user_queryset = Users.objects(id=userId, status__in=[0,1]).first()
# 				if not user_queryset:
# 					flash("Invalid user id!!")
# 					return redirect(url_for("user_managements.manage_users_list"))
# 				if fullName:
# 					user_queryset.update(fullName=fullName)
# 				if phoneNumber:
# 					user_queryset.update(phoneNumber=phoneNumber)
# 				if email:
# 					user_queryset.update(email=email)
# 				if address:
# 					user_queryset.update(address=address)
# 				if businessName:
# 					user_queryset.update(businessName=businessName)
# 				if businessAddress:
# 					user_queryset.update(businessAddress=businessAddress)
# 				if userTypeId:
# 					user_queryset.update(userTypeId = ObjectId(userTypeId))
# 				if entityTypeId:
# 					user_queryset.update(entityTypeId = ObjectId(entityTypeId))
# 				if stateId:
# 					user_queryset.update(stateId = ObjectId(stateId))
# 				if cityId:
# 					user_queryset.update(cityId = ObjectId(cityId))
# 				if blockPoId:
# 					user_queryset.update(blockPoId = ObjectId(blockPoId))
# 				if pincodeId:
# 					user_queryset.update(pincodeId = ObjectId(pincodeId))
# 				if parentId:
# 					user_queryset.update(parentId = ObjectId(parentId))
# 				if profileId:
# 					user_queryset.update(profileId = ObjectId(profileId))
# 				if userId:
# 					print(userId,"----------")
# 					panName = request.form.get("panName","")
# 					panNumber = request.form.get("panNumber","")
# 					panStatus = request.form.get("panStatus","")
# 					panDocument = request.files.get("panDocument","")
# 					bankName = request.form.get("bankName","")
# 					bankAccountNumber = request.form.get("bankAccountNumber","")
# 					bankStatus = request.form.get("bankStatus","")
# 					ifscCode = request.form.get("ifscCode","")
# 					aadharName = request.form.get("aadharName","")
# 					aadharNumber = request.form.get("aadharNumber","")
# 					aadharStatus = request.form.get("aadharStatus","")
# 					aadharDocument = request.files.get("aadharDocument","")
# 					uploadVideo = request.files.get("uploadVideo","")
# 					videoVerificationStatus = request.form.get("videoVerificationStatus","")
# 					panReason = request.form.get("panReason","")
# 					bankReason = request.form.get("bankReason","")
# 					aadharReason = request.form.get("aadharReason","")
# 					videoVerificationReason = request.form.get("videoVerificationReason","")
# 					print(request.form)
# 					print("(((((((((((((((((request.form)))))))))))))))))")

# 					user_kyc_queryset = UserKYC.objects(userId=userId, status__in=[0,1]).first()
# 					if user_kyc_queryset:
# 						if panName:
# 							user_kyc_queryset.update(panName=panName)
# 						if panNumber:
# 							user_kyc_queryset.update(panNumber=panNumber)
# 						if panStatus:
# 							user_kyc_queryset.update(panStatus=panStatus)
# 						if bankName:
# 							user_kyc_queryset.update(bankName=bankName)
# 						if bankAccountNumber:
# 							user_kyc_queryset.update(bankAccountNumber=bankAccountNumber)
# 						if bankStatus:
# 							user_kyc_queryset.update(bankStatus=bankStatus)
# 						if aadharName:
# 							user_kyc_queryset.update(aadharName=aadharName)
# 						if ifscCode:
# 							user_kyc_queryset.update(ifscCode=ifscCode)
# 						if aadharNumber:
# 							user_kyc_queryset.update(aadharNumber=aadharNumber)
# 						if aadharStatus:
# 							user_kyc_queryset.update(aadharStatus=aadharStatus)
# 						if videoVerificationStatus:
# 							user_kyc_queryset.update(videoVerificationStatus=videoVerificationStatus)
# 						if panReason:
# 							user_kyc_queryset.update(panReason=panReason)
# 						if bankReason:
# 							user_kyc_queryset.update(bankReason=bankReason)
# 						if aadharReason:
# 							user_kyc_queryset.update(aadharReason=aadharReason)
# 						if videoVerificationReason:
# 							user_kyc_queryset.update(videoVerificationReason=videoVerificationReason)
# 						if panDocument:
# 							if not os.path.exists(os.path.join(app.config['SITE_ROOT'], "media/panDocuments/")):
# 								os.makedirs(os.path.join(app.config['SITE_ROOT'], "media/panDocuments/"))
# 							save_file = panDocument.save(os.path.join(app.config['SITE_ROOT'], "media/panDocuments/"+str(get_epoch_milli_time())+".png"))
# 							user_kyc_queryset.update(panDocument="media/panDocuments/"+str(get_epoch_milli_time())+".png")

# 						if aadharDocument:
# 							if not os.path.exists(os.path.join(app.config['SITE_ROOT'], "media/aadharDocuments/")):
# 								os.makedirs(os.path.join(app.config['SITE_ROOT'], "media/aadharDocuments/"))
# 							save_file = aadharDocument.save(os.path.join(app.config['SITE_ROOT'], "media/aadharDocuments/"+str(get_epoch_milli_time())+".png"))
# 							user_kyc_queryset.update(aadharDocument="media/aadharDocuments/"+str(get_epoch_milli_time())+".png")
					
# 						if uploadVideo:
# 							video_file = upload_file_video("uploadKYCVideos", str(get_epoch_milli_time()), ".mp4", uploadVideo)
# 							if video_file:
# 								user_kyc_queryset.update(uploadVideo=video_file)
# 					else:
# 						user_kyc_table = UserKYC(
# 							userId=userId,
# 							panName = panName,
# 							panNumber  = panNumber,
# 							panStatus  = panStatus,
# 							bankName  = bankName,
# 							bankAccountNumber  = bankAccountNumber,
# 							bankStatus  = bankStatus,
# 							ifscCode  = ifscCode,
# 							aadharName  = aadharName,
# 							aadharNumber  = aadharNumber,
# 							aadharStatus  = aadharStatus,
# 							videoVerificationStatus  = videoVerificationStatus,
# 							panReason = panReason,
# 							bankReason = bankReason,
# 							aadharReason = aadharReason,
# 							videoVerificationReason = videoVerificationReason,
# 							createdOn =datetime.datetime.now(),
# 							status = 1
# 							)
# 						save_table = user_kyc_table.save()

# 						if panDocument:
# 							if not os.path.exists(os.path.join(app.config['SITE_ROOT'], "media/panDocuments/")):
# 								os.makedirs(os.path.join(app.config['SITE_ROOT'], "media/panDocuments/"))
# 							save_file = panDocument.save(os.path.join(app.config['SITE_ROOT'], "media/panDocuments/"+str(get_epoch_milli_time())+".png"))
# 							save_table.update(panDocument="media/panDocuments/"+str(get_epoch_milli_time())+".png")

# 						if aadharDocument:
# 							if not os.path.exists(os.path.join(app.config['SITE_ROOT'], "media/aadharDocuments/")):
# 								os.makedirs(os.path.join(app.config['SITE_ROOT'], "media/aadharDocuments/"))
# 							save_file = aadharDocument.save(os.path.join(app.config['SITE_ROOT'], "media/aadharDocuments/"+str(get_epoch_milli_time())+".png"))
# 							save_table.update(aadharDocument="media/aadharDocuments/"+str(get_epoch_milli_time())+".png")
# 						if uploadVideo:
# 							video_file = upload_file_video("uploadKYCVideos", str(get_epoch_milli_time()), ".mp4", uploadVideo)
# 							if video_file:
# 								save_table.update(uploadVideo=video_file)

# 				flash("User details updated successfully!")
# 				return redirect(url_for("user_managements.manage_users_list"))
# 			except Exception as e:
# 				flash("Unable to update user details!!")
# 				app.logger.error(traceback.format_exc())
# 				return redirect(url_for("user_managements.manage_users_list"))
# 			# else:
# 			#     flash("Required fields are missing!!")
# 			#     return redirect(url_for("user_managements.manage_users_list"))
# 	except Exception as e:
# 		app.logger.error(traceback.format_exc())
# 		error = "Unable to update user details!!"
# 		return render_template("super_admin_templates/user_managements_list.html",error=error)



# @user_managements.route("/pending_users_list",methods=["POST","GET"])
# def pending_users_list():
# 	try:
# 		if not session.get("adminId"):
# 			return redirect("admin_login")
# 		adminId = session.get("adminId")
# 		manage_users_list = []
# 		userEntityList = []
# 		userTypesList = []
# 		profilelList = []
# 		statesList = []
# 		citiesList = []
# 		blocksList = []
# 		pincodesList = []
# 		tenantslList = []
# 		usersList = []
# 		userKycList = []

# 		users_queryset = Users.objects(status__in=[0]).order_by("-id")
# 		for each_user in users_queryset:
# 			userDict = fetching_user_details(each_user)
# 			usersList.append(userDict)

# 		users_kyc_queryset = UserKYC.objects(status__nin=[2]).order_by("-id").all()
# 		for each_user_kyc in users_kyc_queryset:
# 			userKycDict = fetching_user_kyc_details(each_user_kyc)
# 			userKycList.append(userKycDict)

# 		user_types_queryset = UserTypes.objects(status__in=[1]).order_by("-id")

# 		for each_user_type in user_types_queryset:
# 			userTypeDict = fetching_user_type_details(each_user_type)
# 			userTypesList.append(userTypeDict)

# 		user_entities_queryset = UserEntity.objects(status__in=[1]).order_by("-id")

# 		for each_user_entity in user_entities_queryset:
# 			userEntityDict = fetching_user_entity_details(each_user_entity)
# 			userEntityList.append(userEntityDict)

# 		states_queryset = States.objects(status__in=[1]).order_by("stateName")
# 		for each_state in states_queryset:
# 			state_dict = fetching_states_details(each_state)
# 			statesList.append(state_dict)

# 		cities_queryset = Cities.objects(status__in=[1]).order_by("cityName")
# 		for each_city in cities_queryset:
# 			city_dict = fetching_cities_details(each_city)
# 			citiesList.append(city_dict)

# 		blocks_queryset = BlocksPos.objects(status__in=[1]).order_by("-id")
# 		for each_block in blocks_queryset:
# 			block_dict = fetching_blocks_details(each_block)
# 			blocksList.append(block_dict)

# 		pincodes_queryset = Pincodes.objects(status__in=[1]).order_by("-id")
# 		for each_pincode in pincodes_queryset:
# 			pincode_dict = fetching_pincode_details(each_pincode)
# 			pincodesList.append(pincode_dict)

# 		profiles_queryset = Profiles.objects(status__in=[1]).order_by("-id")
# 		for each_profile in profiles_queryset:
# 			profileDict = fetching_profile_details(each_profile)
# 			profilelList.append(profileDict)

# 		tenants_queryset = TenantManagements.objects(status__in=[1]).order_by("-id")
# 		for each_tenant in tenants_queryset:
# 			tenantDict = fetching_tenant_details(each_tenant)
# 			tenantslList.append(tenantDict)

# 		return render_template("super_admin_templates/pending_user_list.html",
# 			statesList=statesList,
# 			citiesList=citiesList,
# 			blocksList=blocksList,
# 			pincodesList=pincodesList,
# 			profilelList=profilelList,
# 			tenantslList=tenantslList,
# 			userTypesList=userTypesList,
# 			usersList=usersList,
# 			userKycList=userKycList,
# 			userEntityList=userEntityList
# 			)
# 	except Exception as e:
# 		app.logger.error(traceback.format_exc())
# 		error = "Unable to fetched pending user data!!"
# 		return render_template("super_admin_templates/pending_user_list.html", 
# 			error=error,
# 			statesList=statesList,
# 			citiesList=citiesList,
# 			blocksList=blocksList,
# 			pincodesList=pincodesList,
# 			userTypesList=userTypesList,
# 			profilelList=profilelList,
# 			tenantslList=tenantslList,
# 			userKycList=userKycList,
# 			usersList=usersList,
# 			userEntityList=userEntityList
# 			)


# @user_managements.route("/user_kyc_update",methods=["POST","GET"])
# def user_kyc_update():
# 	try:
# 		if not session.get("adminId"):
# 			return redirect("admin_login")
# 		adminId = session.get("adminId")
# 		userKycId = request.args.get("userKycId","")

# 		if request.method == "GET":
# 			userTypesList = []
# 			statesList = []
# 			userEntityList = []
# 			citiesList = []
# 			blocksList = []
# 			pincodesList = []
# 			profilelList = []
# 			tenantslList = []
# 			userKycDict = {}

# 			user_kyc_queryset = UserKYC.objects(id=userKycId, status__in=[0,1]).first()
# 			if not user_kyc_queryset:
# 				flash("Invalid user kyc id!!")
# 				return redirect(url_for("user_managements.pending_users_list"))

# 			userKycDict = fetching_user_kyc_details(user_kyc_queryset)

# 			return render_template("super_admin_templates/update_user_kyc_details.html",
# 				userKycDict=userKycDict
# 				)

# 		if request.method == "POST":
# 			panStatus = request.form.get("panStatus","")
# 			panDocument = request.files.get("panDocument","")
# 			bankStatus = request.form.get("bankStatus","")
# 			aadharStatus = request.form.get("aadharStatus","")
# 			aadharDocument = request.files.get("aadharDocument","")
# 			uploadVideo = request.files.get("uploadVideo","")
# 			videoVerificationStatus = request.form.get("videoVerificationStatus","")
# 			panReason = request.form.get("panReason","")
# 			bankReason = request.form.get("bankReason","")
# 			aadharReason = request.form.get("aadharReason","")
# 			videoVerificationReason = request.form.get("videoVerificationReason","")

# 			try:
# 				user_kyc_queryset = UserKYC.objects(id=userKycId, status__in=[0,1]).first()
# 				if user_kyc_queryset:
# 					if panStatus:
# 						user_kyc_queryset.update(panStatus=panStatus)
# 					if bankStatus:
# 						user_kyc_queryset.update(bankStatus=bankStatus)
# 					if aadharStatus:
# 						user_kyc_queryset.update(aadharStatus=aadharStatus)
# 					if videoVerificationStatus:
# 						user_kyc_queryset.update(videoVerificationStatus=videoVerificationStatus)
# 					if panReason:
# 						user_kyc_queryset.update(panReason=panReason)
# 					if bankReason:
# 						user_kyc_queryset.update(bankReason=bankReason)
# 					if aadharReason:
# 						user_kyc_queryset.update(aadharReason=aadharReason)
# 					if videoVerificationReason:
# 						user_kyc_queryset.update(videoVerificationReason=videoVerificationReason)
# 					if panDocument:
# 						if not os.path.exists(os.path.join(app.config['SITE_ROOT'], "media/panDocuments/")):
# 							os.makedirs(os.path.join(app.config['SITE_ROOT'], "media/panDocuments/"))
# 						save_file = panDocument.save(os.path.join(app.config['SITE_ROOT'], "media/panDocuments/"+str(get_epoch_milli_time())+".png"))
# 						user_kyc_queryset.update(panDocument="media/panDocuments/"+str(get_epoch_milli_time())+".png")

# 					if aadharDocument:
# 						if not os.path.exists(os.path.join(app.config['SITE_ROOT'], "media/aadharDocuments/")):
# 							os.makedirs(os.path.join(app.config['SITE_ROOT'], "media/aadharDocuments/"))
# 						save_file = aadharDocument.save(os.path.join(app.config['SITE_ROOT'], "media/aadharDocuments/"+str(get_epoch_milli_time())+".png"))
# 						user_kyc_queryset.update(aadharDocument="media/aadharDocuments/"+str(get_epoch_milli_time())+".png")
				
# 					if uploadVideo:
# 						video_file = upload_file_video("uploadKYCVideos", str(get_epoch_milli_time()), ".mp4", uploadVideo)
# 						if video_file:
# 							user_kyc_queryset.update(uploadVideo=video_file)
						

# 					flash("User KYC details updated successfully!")
# 					return redirect(url_for("user_managements.pending_users_list"))
# 			except Exception as e:
# 				flash("Unable to update user kyc details!!")
# 				app.logger.error(traceback.format_exc())
# 				return redirect(url_for("user_managements.pending_users_list"))
# 	except Exception as e:
# 		app.logger.error(traceback.format_exc())
# 		error = "Unable to update user kyc details!!"
# 		return render_template("super_admin_templates/pending_user_list.html",error=error)