Sindbad~EG File Manager

Current Path : /home/numerotech/conference.numerotech.com/food_kit_scan_badges/core/model/
Upload File :
Current File : //home/numerotech/conference.numerotech.com/food_kit_scan_badges/core/model/KitModel.py

from sqlalchemy import create_engine, MetaData, Table, insert, select,update,delete,text
from sqlalchemy.sql import and_, or_
from core import app
import json
import datetime
from datetime import timedelta,date,datetime


engine = create_engine(app.config['DATABASE_URI_FK'],pool_size=5000,pool_pre_ping=True,pool_recycle=3600)

class KitModel():
	def __init__(self):
		try:
			self.meta = MetaData()
			self.kc_sessions  = Table("kc_sessions", self.meta, autoload=True, autoload_with=engine)
		except Exception as e:
			print(e)

	def getDataBySessionKey(self,session_key,current_dt,conf_id,conf_key):
		conn = engine.connect()
		# stmt = text("SELECT s.* from kc_sessions s where s.session_key = "+str(session_key)+ " and s.conf_id = "+ str(conf_id)+ " and conf_key = '"+conf_key +"' and '"+current_dt+"'  between s.start_time and s.end_time;")
		stmt = text("SELECT s.* from kc_sessions s where s.session_key = "+str(session_key)+ " and s.conf_id = "+ str(conf_id)+ " and conf_key = '"+conf_key +"';")
		result = conn.execute(stmt)
		results = [dict(r) for r in result] if result else None
		if results :
			return results[0]
		else:
			return None 

	def insertkcScannedData1(self,session_id,delegate_no,del_table_name,kc_del_session_table_name,kc_session_entry_table_name):
		connection = engine.raw_connection()
		cursor = connection.cursor()
		cursor.callproc("usp_save_kc_scanned_data",[session_id,delegate_no,del_table_name,kc_del_session_table_name,kc_session_entry_table_name])
		if cursor.description :
			columns = [column[0] for column in cursor.description]
			results = []
			for row in cursor.fetchall():
				results.append(dict(zip(columns, row)))
			cursor.close()
			connection.commit()
			if results :
				return results
			else :
				return None
		else :
			cursor.close()
			connection.commit()
			return None
	

	#single result set store proc
	def getKITReport(self,session_id,conf_id,conf_key,del_table_name,kc_session_entry_table_name):
		connection = engine.raw_connection()
		cursor = connection.cursor()
		cursor.callproc("usp_get_kc_reports",[session_id,conf_id,conf_key,del_table_name,kc_session_entry_table_name])
		if cursor.description :
			columns = [column[0] for column in cursor.description]
			results = []
			for row in cursor.fetchall():
				results.append(dict(zip(columns, row)))
			cursor.close()
			connection.commit()
			if results :
				return results
			else :
				return None
		else :
			cursor.close()
			connection.commit()
			return None

	# check session is open
	
	def checkSessionIsOpen(self,session_id,current_dt):
		conn = engine.connect()
# 		stmt = text("SELECT s.* from kc_sessions s where s.session_id = "+str(session_id)+" and '"+current_dt+"'  between s.start_time and s.end_time;")
		stmt = text("select  * from kc_sessions where session_id  = "+str(session_id)+" ;")
		result = conn.execute(stmt)
		results = [dict(r) for r in result] if result else None
		if results :
			return results[0]
		else:
			return None		


	# GET SCANNED RECORDS FOR DOWNLOAD REPORT #single result set store proc 
	def getKITReportDownload(self,session_id,conf_id,kc_session_entry_table_name,role):
		connection = engine.raw_connection()
		cursor = connection.cursor()
		cursor.callproc("usp_get_kc_download_report",[session_id,conf_id,kc_session_entry_table_name,role])
		if cursor.description :
			columns = [column[0] for column in cursor.description]
			results = []
			for row in cursor.fetchall():
				results.append(dict(zip(columns, row)))
			cursor.close()
			connection.commit()
			if results :
				return results
			else :
				return None
		else :
			cursor.close()
			connection.commit()
			return None	


	def insert_kc_token_data(self,insert_stmt):
		conn = engine.connect()
		try:
			stmt = text(insert_stmt)
			results = conn.execute(stmt)
			return "success"
		except Exception as e:
			conn.close()
			return str(e)
		
		# if conf_id and int(conf_id) == 2:
		# 	result = conn.execute(self.kc_sessions_entry_vrsi22.insert(), data)
		# if conf_id and int(conf_id) == 3:
		# 	result = conn.execute(self.kc_sessions_entry_selsi22.insert(), data) 
		# if conf_id and int(conf_id) == 4:
		# 	result = conn.execute(self.kc_sessions_entry_kos22.insert(), data)   
		# if conf_id and int(conf_id) == 6:
		# 	result = conn.execute(self.kc_sessions_entry_rscon2022.insert(), data) 
		# if conf_id and int(conf_id) == 12:
		# 	result = conn.execute(self.kc_sessions_entry_karavali22.insert(), data)  
		# if conf_id and int(conf_id) == 14 :
		#     result = conn.execute(self.kc_sessions_entry_respicon22.insert(), data)	
			
		# return "success"						

	####################*************************
	# def insertkcScannedData(self,data,session_id,delegate_no,del_table_name,kc_del_session_table_name,kc_session_entry_table_name):
	# 	conn = engine.connect()
	# 	# check delegate_no exists for sessions in our delegate table
	# 	stmt_1 = text("SELECT ds.delegate_session_id,ds.delegate_no,ds.session_id,d.full_name,d.role from  " +kc_del_session_table_name+ " ds "
	# 		+"inner join "+del_table_name+" d on d.delegate_no = ds.delegate_no  " 
	# 		+"where ds.delegate_no ="+str(delegate_no)+"  and ds.session_id = "+str(session_id)+" ;")

	# 	result_1 = conn.execute(stmt_1)
	# 	result = result_1.fetchone()
	# 	if result  :
	# 		full_name = result.full_name
	# 		role = result.role

	# 		# check already scanned 
	# 		stmt = text("SELECT * FROM "+kc_session_entry_table_name+" where delegate_no = "+str(delegate_no) +" and session_id = " +str(session_id) + " ;" )
	# 		results  = engine.execute(stmt)
	# 		already_scanned = results.fetchone()
	# 		if already_scanned :
	# 			conn.close()
	# 			scan_at = already_scanned.created_at
	# 			scan_at = scan_at.strftime("%d-%m-%Y %H:%M:%S")
	# 			data = {"delegate_no" :delegate_no, "full_name" : full_name ,"role" : role , "scan_at" : scan_at,"msg" : "ALREADY REGISTERED WITH US" ,"status" : 3}
	# 		else :
	# 			# if delegate no exist in delegate table and not scanned then save record in session entry table
	# 			now = datetime.now()
	# 			current_dt_1 = now.strftime("%Y-%m-%d %H:%M:%S")
	# 			insert_stmt = text("insert into "+kc_session_entry_table_name+" (delegate_no,created_at,session_id) values ("+str(delegate_no)+",'"+current_dt_1+"',"+str(session_id)+");")
	# 			result = conn.execute(insert_stmt)
	# 			conn.close()
	# 			data = {"delegate_no" : delegate_no,"full_name" : full_name ,"role" : role , "scan_at" : "" ,"msg" : "REGISTERED" ,"status" : 1}
	# 	else :
	# 		data = {"delegate_no" : delegate_no, "full_name" : "" ,"role" : " ","scan_at" : "" ,"msg" : "NOT REGISTERED WITH US" ,"status" : 2}

	# 	json_data = json.dumps(data ,default =str)	
	# 	return json_data
	
	
	def getDataBySessionKeyFrontEnd(self,session_key,current_dt,conf_id,conf_key):
		conn = engine.connect()
		stmt = text("SELECT s.* from kc_sessions s where s.session_key = "+str(session_key)+ " and s.conf_id = "+ str(conf_id)+ " and conf_key = '"+conf_key +"' and '"+current_dt+"'  between s.start_time and s.end_time;")
		result = conn.execute(stmt)
		results = [dict(r) for r in result] if result else None
		if results :
			return results[0]
		else:
			return None 
		

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