# from appservices.common.util import *

# settings = Blueprint("settings",__name__)

# # Add Fee Distribution Setting
# @settings.route("/add_fee_distribution_setting",methods=["POST","GET"])
# def add_fee_distribution_setting():
#     try:
#         if not session.get("adminId"):
#             return redirect("admin_login")
#         adminId = session.get("adminId")
        
#         if request.method == "POST":
#             categoryId = request.form.get("categoryId","")
#             uplineCommDist = request.form.get("uplineCommDist","")

#             if categoryName and uplineCommDist:
#                 try:
#                     fee_distribution_table = FeeDistributionSettings(
#                         adminId=adminId,
#                         categoryId = categoryId,
#                         createdOn = datetime.datetime.now(),
#                         status = 1,
#                         )
#                     save_table = fee_distribution_table.save()
#                     feeDistributionSettingId = str(save_table.id)

#                     if uplineCommDist == None:
#                         save_table.update(uplineCommDist=False)
#                     else:
#                         save_table.update(uplineCommDist=True)

#                     flash("Fee distribution setting saved successfully!")
#                     return redirect(url_for("settings.fee_distribution_settings"))
#                 except Exception as e:
#                     flash("Unable to save fee distribution setting!!")
#                     app.logger.error(traceback.format_exc())
#                     return redirect(url_for("settings.fee_distribution_settings"))
#             else:
#                 flash("Required fields are missing!!")
#                 return redirect(url_for("settings.fee_distribution_settings"))
#     except Exception as e:
#         app.logger.error(traceback.format_exc())
#         error = "Unable to save fee distribution setting!!"
#         return render_template("super_admin_templates/fee_distribution_settings.html",error=error)

# def fetching_fee_distribution_settings_details(each_fee_distribution_setting_queryset):
#     fee_distribution_setting_dict = {}
#     try:
#         fee_distribution_setting_dict={
#         "id":str(each_fee_distribution_setting_queryset.id),
#         "categoryName":each_fee_distribution_setting_queryset.regionName,
#         "uplineCommDist":each_fee_distribution_setting_queryset.uplineCommDist
#         }
#         if each_fee_distribution_setting_queryset.status==1:
#             fee_distribution_setting_dict["actionText"] = "Active"
#         else:
#             fee_distribution_setting_dict["actionText"] = "Deactive"
#         if each_fee_distribution_setting_queryset.createdOn:
#             fee_distribution_setting_dict["createdOn"] = each_fee_distribution_setting_queryset.createdOn.strftime("%m-%d-%Y")
#         else:
#             fee_distribution_setting_dict["createdOn"] = ""
#     except Exception as e:
#         app.logger.error(traceback.format_exc())
#     return fee_distribution_setting_dict

# # View All Regions
# @settings.route("/fee_distribution_settings_list",methods=["POST","GET"])
# def fee_distribution_settings_list():
#     if not session.get("adminId"):
#         return redirect("admin_login")
#     feeDistributionSettingsList = []
#     countriesList = []
#     statesList = []
    
#     adminId = session.get("adminId")
#     # categories_queryset = Category.objects(status__in=[1]).order_by('-id').all()
#     try:
#         search = False  
#         search_element = request.args.get('search_element','')
#         if not search_element:
#             search_element = request.form.get("search_element","")
#         if search_element:
#             search = True

#         page = request.args.get(get_page_parameter(), type=int, default=1)
#         page_start,page_end=fetch_limit_length_based_on_page_index(page,20)
#         pagination = Pagination(
#             page=page,
#             record_name='fee_distribution_setting',
#             per_page=20,
#             alignment="right"
#             )
#         fee_distribution_settings_queryset = FeeDistributionSettings.objects(status__in=[0,1]).order_by("-id")
#         if search_element:
#             fee_distribution_settings_queryset = fee_distribution_settings_queryset.filter(Q(regionName__icontains=search_element))
#         length = fee_distribution_settings_queryset.count()
#         fee_distribution_settings_queryset=fee_distribution_settings_queryset[page_start:page_end]
#         # regions_queryset=regions_queryset.limit(page_start,page_end)

#         for each_fee_distribution_setting in fee_distribution_settings_queryset:
#             fee_distribution_setting_dict = fetching_fee_distribution_settings_details(each_fee_distribution_setting)
#             feeDistributionSettingsList.append(fee_distribution_setting_dict)

#         pagination = Pagination(
#             page=page,
#             total=length,
#             found=length,
#             record_name='regions',
#             per_page=20,
#             alignment="right"
#             )
#         categories_queryset =[]
#         return render_template("super_admin_templates/fee_distribution_settings_list.html",
#             feeDistributionSettingsList=feeDistributionSettingsList,
#             categories_queryset = categories_queryset,
#             search_element=search_element,
#             pagination=pagination,
#             )
#     except Exception as e:
#         app.logger.error(traceback.format_exc())
#         error = "Unable to fetch fee_distribution_settings_details!!"
#         return render_template("super_admin_templates/fee_distribution_settings_list.html",
#             feeDistributionSettingsList=feeDistributionSettingsList,
#             search_element=search_element,
#             pagination=pagination,
#             )


# # Update regions type status
# @settings.route("/update_fee_distribution_setting_status",methods=["POST","GET"])
# def update_fee_distribution_setting_status():
#   if not session.get("adminId"):
#       return redirect("admin_login")
#   feeDistributionSettingId = request.args.get("feeDistributionSettingId","")

#   if feeDistributionSettingId:
#       try:
#           fee_distribution_setting_queryset = FeeDistributionSettings.objects(id=feeDistributionSettingId,status__nin=[2]).first()
#           if fee_distribution_setting_queryset:
#               if fee_distribution_setting_queryset.status == 0:
#                   fee_distribution_setting_queryset.update(status=1)
#                   flash("Fee Distribution Setting activated successfully!")
#               elif fee_distribution_setting_queryset.status == 1:
#                   fee_distribution_setting_queryset.update(status=0)
#                   flash("Fee Distribution Setting deactivated successfully!")
#               return redirect(url_for("settings.fee_distribution_settings_list"))
#           else:
#               flash("Invaild id!!")
#               return redirect(url_for("settings.fee_distribution_settings_list"))
#       except Exception as e:
#           app.logger.error(traceback.format_exc())
#           return redirect(url_for("settings.fee_distribution_settings_list"))
#   else:
#       return redirect(url_for("settings.fee_distribution_settings_list"))


# # Update region
# @settings.route("/update_fee_distribution_setting",methods=["POST","GET"])
# def update_fee_distribution_setting():
#   if not session.get("adminId"):
#       return redirect("admin_login")
#   try:
#       feeDistributionSettingId = request.args.get("feeDistributionSettingId","")
#       if request.method == "POST":
#           categoryId = request.form.get("categoryId","")
#           uplineCommDist = request.form.get("uplineCommDist","")
#           fee_distribution_setting_queryset = FeeDistributionSettings.objects(id=feeDistributionSettingId).first()
#           if fee_distribution_setting_queryset:
#               fee_distribution_setting_queryset.update(
#                   categoryId = ObjectId(categoryId),
#                   )
#               if uplineCommDist == None:
#                   fee_distribution_setting_queryset.update(uplineCommDist=False)
#               else:
#                   fee_distribution_setting_queryset.update(uplineCommDist=True)
#               flash("Fee distribution setting updated successfully!")
#               return redirect(url_for("settings.fee_distribution_settings_list"))
#           else:
#               flash("Invaild id!!")
#               return redirect(url_for("settings.fee_distribution_settings_list"))
#   except Exception as e:
#       app.logger.error(traceback.format_exc())
#       error = "Unable to update fee distribution setting!!"
#       return redirect(url_for("settings.fee_distribution_settings_list"))


# # Delete Region
# @settings.route("/delete_fee_distribution_setting",methods=["GET"])
# def delete_fee_distribution_setting():
#   try:
#       if not session.get("adminId"):
#           return redirect("admin_login")
#       if request.method == "GET":
#           feeDistributionSettingId = request.args.get("feeDistributionSettingId","")
#           fee_distribution_setting_queryset = FeeDistributionSettings.objects(id=feeDistributionSettingId,status__in=[0,1]).first()
#           fee_distribution_setting_queryset.update(status=2)
#           flash("Fee distribution setting deleted successfully!")
#           return redirect(url_for("settings.fee_distribution_settings_list"))
#   except Exception as e:
#       app.logger.error(traceback.format_exc())
#       flash("Unable to delete fee distribution setting!!")
#       return redirect(url_for("settings.fee_distribution_settings_list"))