Sindbad~EG File Manager

Current Path : /home/numerotech/hs.numerotech.com/scan_v1/core/controller/
Upload File :
Current File : //home/numerotech/hs.numerotech.com/scan_v1/core/controller/HallLogsController.py

from flask import Flask, request, Blueprint, jsonify, redirect, url_for,flash, render_template,session,json,Response
import datetime
from datetime import timedelta,date,datetime
from flask import session, app
from .. import Cryptography,Auth,RouteGroup,Helper,is_windows_os,path_wkhtmltopdf,is_local_server
from core.library.email import EMAIL
from core.model.HallLogsModel import HallLogsModel
# from core.model.QueryModel import QueryModel
import base64
from urllib.parse import unquote
from collections import defaultdict
import pdfkit


app = Blueprint('halllogs', __name__)


@app.route('/<int:conf_id>/<conf_key>/hall_scan/<pin_number>', methods = ["GET", "POST"])
def HallScan(conf_id,conf_key,pin_number):
	try:
		return ScanLogs(conf_id=conf_id,conf_key=conf_key ,pin_number = pin_number)
		# return redirect(url_for('halllogs.ScanLogs',conf_id=conf_id,conf_key=conf_key ,pin_number= pin_number_string))
	except Exception as e:
		flash(str(e) , "errorMsg")
		return "Error : " + str(e) 

@app.route('/<int:conf_id>/<conf_key>/post_hall_login', methods = ["GET", "POST"])
def postHallLogin(conf_id,conf_key):
	if request.method == 'POST':
		pin_number = request.values.get('pin_number')
		pin_number_bytes = pin_number.encode("ascii")
		base64_bytes = base64.b64encode(pin_number_bytes)
		pin_number_string = base64_bytes.decode("ascii")
		return redirect(url_for('halllogs.ScanLogs',conf_id=conf_id,conf_key=conf_key ,pin_number= pin_number_string))
	else:
		return "Please Try again"

@app.route('/<int:conf_id>/<conf_key>/scan_logs', methods = ["GET", "POST"])
def ScanLogs(conf_id,conf_key,pin_number =None):
	if pin_number:
		# pin_number = request.values.get("pin_number")
		try:
			del_table_name = '' 
			get_conf  = HallLogsModel().GetConf(conf_id,conf_key)
			if get_conf :
				del_table_name = get_conf["del_table_name"]
				conf_schema = get_conf["conf_schema"]
			else :
				return "<h4 style='color:red;'> Invalid URL </h4>"
			if pin_number :
				now            = datetime.now()
				current_date   = now.strftime('%Y-%m-%d')
				d_current_date   = now.strftime('%d-%m-%Y')
				current_dt    = now.strftime('%Y-%m-%d %H:%M:%S')
				hallData = HallLogsModel().gethall(conf_id,pin_number)
				if hallData:
					print("inside")
					result = HallLogsModel().usp_generate_session_table_scan_logs(conf_id)
					print("result-----",result)
					msg = "Scan"
					return render_template('hall_logs/scan_logs.html',conf_id=conf_id,conf_key=conf_key,hallData=hallData,del_table_name=del_table_name,msg=msg,current_date=current_date,d_current_date=d_current_date,now=now,pin_number=pin_number,conf_schema=conf_schema)
				else:
					return "Invalid URL"
			else : 
				return "Invalid URL"
				
		except Exception as e:
			flash(str(e) , "errorMsg")
			return "Error : " + str(e) 
	else : 
		return "Invalid URL"		

@app.route('/<int:conf_id>/<conf_key>/insert_scan_logs', methods = ["GET", "POST"])
def insertScanLogs(conf_id,conf_key):
	try:
		msg = ""
		bg_color = "red"
		audio_id = "error_audio" 
		
		delegate_no    = request.values.get('delegate_no') or None
		if delegate_no : 
			delegate_no = delegate_no
		hall_id        = request.values.get('hall_id') or None
		if hall_id : 
			hall_id = int(hall_id)
		del_table_name = request.values.get('del_table_name') or None
		now            = datetime.now()
		dt_string      = now.strftime("%Y-%m-%d")
		datas ={
		'delegate_no'   : delegate_no,
		'hall_id'       : hall_id,
		'scan_at'       : now,
		'created_date'  : dt_string,
		'created_at'    : now
		}

		data = HallLogsModel().usp_save_hall_scanned_data_by_day(conf_id,delegate_no,hall_id,del_table_name)
		if data:
			result = data[0]
			msg = result["msg"]
			code = result["code"] or 0
			if int(code) == 1:
				bg_color = "green"
			else:
				bg_color = "orange"
			# if "Not" not  in msg :
			# 	audio_id = "thanku" 
			# 	if "Already" in msg :
			# 		bg_color = "orange"
			# 	else:	
			# 		bg_color = "green"
			

			data = {"bg_color":bg_color,"audio_id":audio_id,"msg":msg, 'status': 1}
			json_data = json.dumps(data,default=str)
			
		else: 
			data = {"bg_color" : bg_color,"audio_id":audio_id,"msg":"try again", 'status': 2}
			json_data = json.dumps(data,default=str)

			

		return json_data	
	
	except Exception as e:
		bg_color = "red"
		data = {"bg_color" : bg_color,"audio_id":audio_id,"msg" : str(e) ,"status" : 401}
		json_data = json.dumps(data,default=str)
		return json_data



@app.route('/<int:conf_id>/<conf_key>/halls', methods = ["GET", "POST"])
def Halls(conf_id,conf_key):
	halls = 	HallLogsModel().gethall_name(conf_id)
	return render_template('hall_logs/halls_index.html',conf_id=conf_id,conf_key=conf_key,halls=halls)

	

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists