Sindbad~EG File Manager

Current Path : /proc/self/cwd/food_kit_scan_badges/core/controller/
Upload File :
Current File : //proc/self/cwd/food_kit_scan_badges/core/controller/VenueScanController.py

from flask import request, Blueprint, jsonify, redirect, url_for,flash, render_template,session,json,render_template_string
from core.model.BadgeModel import BadgeModel
from core.model.FoodSessionModel import FoodSessionModel
from core.model.KitModel import KitModel
from core.model.VenueScanModel import VenueScanModel
from core.model.KitSessionModel import KitSessionModel
from .. import Cryptography,Helper
# from flask import session, app
from random import randint
import datetime
from datetime import timedelta,date,datetime,time
# import requests, json

from werkzeug.utils import secure_filename

from os.path import join, dirname, realpath
import os
import flask
import string
import boto3, botocore
 
from flask import Flask
import barcode
from barcode import EAN8
from barcode import EAN13
from barcode.writer import ImageWriter

# from Code128 import Code128
# from base64 import b64encode
from collections import defaultdict
import math
from core import app
# from flask_qrcode import QRcode
app = Blueprint('venue_scan', __name__)


@app.route('/<int:conf_id>/<conf_key>/venue_entry_login',methods = ["GET", "POST"])
def VenueEntryLogin(conf_id,conf_key):
	getConfData = VenueScanModel().getVenueScanConf(conf_id,conf_key)
	if getConfData :
		conf_name = getConfData["conf_name"]
		if session.get("venue_entry_session") :
			return redirect(url_for('venue.VenueEntryScan',conf_id =conf_id ,conf_key = conf_key))
		else :
			return render_template('VenueScan/venue_entry_login.html' , conf_id = conf_id ,conf_key =conf_key ,conf_name =conf_name)
	else :
		return "<h4 style= 'color:red' ; > Invalid URL </h4>"

@app.route('/post_venue_entry_login', methods = ["POST"])
def PostVenueEntryLogin():
	now = datetime.now()
	current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
	current_dt = "2023-07-26 00:00:00"
	if request.method == "POST":
		session_pin   = request.form['session_key']
		conf_id       = request.form['conf_id']
		conf_key      = request.form['conf_key']
		if  not session_pin:
			flash('Please enter session pin',"errorMsg")
			return redirect (url_for('venue_scan.VenueEntryLogin'))
		else :
			getConfData = VenueScanModel().getVenueScanConf(conf_id,conf_key)
			if getConfData:
				db_session_pin = 1111
				if int(db_session_pin) == int(session_pin):
					session["venue_entry_session"] = getConfData
					flash('Login sucessfully.',"successMsg" )
					return redirect (url_for('venue_scan.VenueEntryScan',conf_id =conf_id ,conf_key = conf_key))
				else :
					flash("Ivalid session key" ,"errorMsg")
					return redirect (url_for('venue_scan.VenueEntryLogin',conf_id =conf_id ,conf_key = conf_key))

			else:
				flash('Invalid Session Key.',"errorMsg" )
				return redirect (url_for('venue_scan.VenueEntryLogin',conf_id =conf_id ,conf_key = conf_key))
	else:
		flash('Invalid Session Key.',"errorMsg" )
		return redirect (url_for('venue_scan.VenueEntryLogin',conf_id =conf_id ,conf_key = conf_key))			




@app.route('/<int:conf_id>/<conf_key>/venue_entry_scan',methods = ["GET", "POST"])
def VenueEntryScan(conf_id,conf_key):
	total_count  = 0
	start_time   = ""
	end_time     = ""
	session_name = ""
	now = datetime.now()
	current_dt   = now.strftime("%d-%m-%Y %H:%M:%S")
	current_dt_1    = now.strftime("%Y-%m-%d %H:%M:%S")
	#start
	getConfData = VenueScanModel().getVenueScanConf(conf_id,conf_key)
	if getConfData :
		if session.get("venue_entry_session") :
			session_data = session.get("venue_entry_session")
			return render_template('VenueScan/venue_entry_scan_page.html' ,conf_id= conf_id,conf_key=conf_key)
		else : 
			if session.get("venue_entry_session") :
				session.pop('venue_entry_session', None)
			else :
				pass
			flash("Invalid session" ,"errorMsg")	
			return redirect(url_for('venue_scan.VenueEntryLogin' ,conf_id =conf_id ,conf_key = conf_key))
	else : 
		return "<h4 style= 'color:red' ; > Invalid URL </h4>"		
	# end




@app.route('/post_venue_entry_scan_data', methods = ["POST"])
def PostVenueEntryScanData():
	try:
		# time.sleep(1)
		if session.get("venue_entry_session") :
			session_data   = session.get("venue_entry_session")
			conf_id        = session_data["conf_id"]
			del_table_name = session_data["del_table_name"]
			now            = datetime.now()
			current_dt     = now.strftime("%Y-%m-%d %H:%M:%S")
			delegate_no    = request.form['delegate_no']
			if delegate_no :
				delegate_no =delegate_no.lstrip('0')
			# fetching data from form..
			ent_scan_table =  'entrance_exit_scan'
			is_entry_scan  = '1'
			insert_data = VenueScanModel().insertEntryScannedData(conf_id,delegate_no,del_table_name,ent_scan_table,is_entry_scan)
			data = insert_data
			json_data = jsonify(data)
			return json_data
		else :
			data = {"delegate_no" : delegate_no, "full_name" : "" ,"role" : " ","scan_at" : "" ,"msg" : "Invalid login" ,"status" : 4}
			json_data = json.dumps(data,default=str)
			return json_data	
	except Exception as e:
		data = {"delegate_no" : "", "full_name" : "" ,"role" : " ","scan_at" : "" ,"msg" : str(e) ,"status" : 401}
		json_data = json.dumps(data,default=str)
		return json_data



@app.route('/<int:conf_id>/<conf_key>/Venue_entry_logout',methods = ["GET", "POST"])
def VenueEntryLogout(conf_id,conf_key):
	if session.get("venue_entry_session") :
		session.pop('venue_entry_session', None)
	else :
		pass
	return redirect(url_for('venue_scan.VenueEntryLogin' ,conf_id = conf_id,conf_key= conf_key))


# Venue Exit Entry 


@app.route('/<int:conf_id>/<conf_key>/venue_exit_login',methods = ["GET", "POST"])
def VenueExitLogin(conf_id,conf_key):
	getConfData = VenueScanModel().getVenueScanConf(conf_id,conf_key)
	if getConfData :
		conf_name = getConfData["conf_name"]
		if session.get("venue_exit_session") :
			return redirect(url_for('venue_scan.VenueExitScan',conf_id =conf_id ,conf_key = conf_key))
		else :
			return render_template('VenueScan/venue_exit_login.html' , conf_id = conf_id ,conf_key =conf_key)
	else :
		return "<h4 style= 'color:red' ; > Invalid URL </h4>"

@app.route('/post_venue_exit_login', methods = ["POST"])
def PostVenueExitLogin():
	now = datetime.now()
	current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
	current_dt = "2023-07-26 00:00:00"
	if request.method == "POST":
		session_pin   = request.form['session_key']
		conf_id       = request.form['conf_id']
		conf_key      = request.form['conf_key']
		if  not session_pin:
			flash('Please enter session_key',"errorMsg")
			return redirect (url_for('venue_scan.VenueExitLogin'))
		else :
			getConfData = VenueScanModel().getVenueScanConf(conf_id,conf_key)
			if getConfData:
				db_session_key = 9999
				if int(session_pin) == int(db_session_key):
					session["venue_exit_session"] = getConfData
					flash('Login sucessfully.',"successMsg" )
					return redirect (url_for('venue_scan.VenueExitScan',conf_id =conf_id ,conf_key = conf_key))
				else :
					flash("Ivalid session key" ,"errorMsg")
					return redirect (url_for('venue_scan.VenueExitLogin',conf_id =conf_id ,conf_key = conf_key))

			else:
				flash('Invalid Session Key.',"errorMsg" )
				return redirect (url_for('venue_scan.VenueExitLogin',conf_id =conf_id ,conf_key = conf_key))

	else:
		flash('Invalid Session Key.',"errorMsg" )
		return redirect (url_for('venue_scan.VenueExitLogin',conf_id =conf_id ,conf_key = conf_key))			




@app.route('/<int:conf_id>/<conf_key>/venue_exit_scan',methods = ["GET", "POST"])
def VenueExitScan(conf_id,conf_key):
	total_count  = 0
	start_time   = ""
	end_time     = ""
	session_name = ""
	now = datetime.now()
	current_dt   = now.strftime("%d-%m-%Y %H:%M:%S")
	current_dt_1    = now.strftime("%Y-%m-%d %H:%M:%S")
	#start
	getConfData = VenueScanModel().getVenueScanConf(conf_id,conf_key)
	if getConfData :
		conf_name                   = getConfData["conf_name"]
		del_table_name              = getConfData["del_table_name"]
		if session.get("venue_exit_session") :
			session_data = session.get("venue_exit_session")
			# check session is end or not
			return render_template('VenueScan/venue_exit_scan_page.html' ,conf_id= conf_id,conf_key=conf_key)
		else : 
			if session.get("venue_exit_session") :
				session.pop('venue_exit_session', None)
			else :
				pass
			flash("Invalid session" ,"errorMsg")	
			return redirect(url_for('venue_scan.VenueExitLogin' ,conf_id =conf_id ,conf_key = conf_key))
		
	else : 
		return "<h4 style= 'color:red' ; > Invalid URL </h4>"		
	# end




@app.route('/post_venue_exit_scan_data', methods = ["POST"])
def PostVenueExitScanData():
	try:
		# time.sleep(1)
		if session.get("venue_exit_session") :
			session_data = session.get("venue_exit_session")
			conf_id      = session_data["conf_id"]
			now = datetime.now()
			current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
			delegate_no = request.form['delegate_no']
			if delegate_no :
				delegate_no = delegate_no.lstrip('0')	
			del_table_name = session_data["del_table_name"]
			# fetching data from form..
			ent_scan_table =  'entrance_exit_scan'
			is_entry_scan  = '0'
			insert_data = VenueScanModel().insertEntryScannedData(conf_id,delegate_no,del_table_name,ent_scan_table,is_entry_scan)
			data = insert_data
			json_data = jsonify(data)
			return json_data
		else :
			data = {"delegate_no" : delegate_no, "full_name" : "" ,"role" : " ","scan_at" : "" ,"msg" : "Invalid login" ,"status" : 4}
			json_data = json.dumps(data,default=str)
			return json_data	
	except Exception as e:
		data = {"delegate_no" : "", "full_name" : "" ,"role" : " ","scan_at" : "" ,"msg" : str(e) ,"status" : 401}
		json_data = json.dumps(data,default=str)
		return json_data


@app.route('/<int:conf_id>/<conf_key>/Venue_exit_logout',methods = ["GET", "POST"])
def VenueExitLogout(conf_id,conf_key):
	if session.get("venue_exit_session") :
		session.pop('venue_exit_session', None)
	else :
		pass
	return redirect(url_for('venue_scan.VenueExitLogin' ,conf_id = conf_id,conf_key= conf_key))



@app.route('/<int:conf_id>/<conf_key>/venue_scan_dashboard',methods = ["GET", "POST"])
def VenueScanDashboard(conf_id,conf_key):
	getConfData = VenueScanModel().getVenueScanConf(conf_id,conf_key)
	if getConfData :
		conf_name = getConfData["conf_name"]
		if session.get("venue_entry_session") :
			return render_template('VenueScan/venue_scan_dashboard.html' , conf_id = conf_id ,conf_key =conf_key ,conf_name =conf_name)
		elif session.get("venue_exit_session") :
			return render_template('VenueScan/venue_scan_dashboard.html' , conf_id = conf_id ,conf_key =conf_key ,conf_name =conf_name)
		else:	
			return render_template('VenueScan/venue_entry_login.html' , conf_id = conf_id ,conf_key =conf_key ,conf_name =conf_name)
	else :
		return "<h4 style= 'color:red' ; > Invalid URL </h4>"

@app.route('/<int:conf_id>/<conf_key>/post_venue_scan_data', methods = ["GET","POST"])
def PostVenueScanData(conf_id,conf_key):
	now             = datetime.now()
	current_dt      = now.strftime("%Y-%m-%d %H:%M:%S") 
	scan_date       = request.values.get('scan_date' or None)
	start_time      = request.values.get('start_time' or None)
	end_time        = request.values.get('end_time' or None)
	is_unique_count = request.values.get('is_unique_count' or None)
	total_entry_count   = 0
	total_exit_count    = 0
	total_scanned_count = 0
	
	report_data = VenueScanModel().venue_scan_report(conf_id,scan_date,start_time,end_time,is_unique_count)
	if report_data:
		for index, value in enumerate(report_data):
			if value['is_entry']:
				total_entry_count   = total_entry_count+value['is_entry']
			if value['is_exit']:
				total_exit_count    = total_exit_count+value['is_exit']
			if value['scanned_count']:
				total_scanned_count = total_scanned_count+value['scanned_count']	


	if int(is_unique_count) == 1:
		table_data_name = 'Unique Count'
	elif int(is_unique_count) == 2:
		table_data_name = 'Venue Inside Count'
	elif int(is_unique_count) == 3:
		table_data_name = 'Venue Entered Count (Unique)'
	elif int(is_unique_count) == 4:
		table_data_name = 'Venue Entered Count (Over-all)'
	else:
		table_data_name = 'Over-all Count'

	html_data =  render_template('VenueScan/venue_scan_report_table.html' , conf_id = conf_id ,conf_key =conf_key ,data=report_data,total_entry_count=total_entry_count,total_exit_count=total_exit_count,total_scanned_count=total_scanned_count,table_data_name=table_data_name)

	data = {'html_data':html_data,'msg':"view report",'status':1}

	json_data = jsonify(data)
	return json_data


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