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/TransactionAPIController.py

from flask import Flask, request, Blueprint, jsonify, redirect, url_for,flash, render_template,session,Response,jsonify,json,render_template_string
from random import randint
from .. import Cryptography,Auth,RouteGroup,Helper,Custom
from core.model.ConfAppModel import ConfAppModel
from core.model.OfflineRegistrationModel import OfflineRegistrationModel
from core.model.TransactionModel import TransactionModel
# 
import xmltodict
import datetime
from core.library.email import EMAIL
import math
from datetime import timedelta,date,datetime
from flask import session, app
from os import listdir
import io
import csv
import ast
import requests,mandrill,json,math
import base64
import flask
from num2words import num2words
import webbrowser
import os #use for new instance of chrome
import urllib.parse
from ast import literal_eval
from dateutil.relativedelta import relativedelta

app = Blueprint('transapi', __name__)

# Payumoney transaction start

@app.route("/transaction_api",methods=["GET","POST"])
def TransactionApi():

	get_conference  = TransactionModel().getConference()
	return render_template('transaction_api/transaction_api.html',conf_data = get_conference)

@app.route('/payumoeny_transactions', methods = ["GET", "POST"])
def PayumoneyTransactions():
	now = datetime.now()
	curr_dt   = now.strftime("%Y-%m-%d %H:%M:%S")
	conf_id   = request.values.get("conf_id") or None
	from_date = request.values.get("from_date") or None
	to_date   = request.values.get("to_date") or None
	unique_ids_data = TransactionModel().getPaymentData(conf_id,from_date,to_date)
	if unique_ids_data :
		for index,value in enumerate(unique_ids_data) : 
			am_id     = value["am_id"]
			unique_id = value["unique_id"]
			app_key,timestamp = unique_id.split('_')

			datetime_object = datetime.strptime(timestamp, '%Y%m%d%H%M%S')
			updated_time    = datetime_object + timedelta(days=3)
			from_date       = datetime_object.strftime("%Y-%m-%d %H:%M:%S")
			to_date         = updated_time.strftime("%Y-%m-%d %H:%M:%S")


			if int(conf_id) in [10,32,37,38,8,48,26,43,49]:
				url_1 = "https://conf-payments.numerotech.com/payumoney_trans.php?am_id="+str(am_id)+"&unique_id="+unique_id+"&from_date="+from_date+"&to_date="+to_date+""
				response = requests.get(url_1)
				response = response.text
				# response = response.replace('\\' ,"")
				# result = response[1:-1]
				result = response
				
				try:
					res = json.loads(result)
				except Exception as e:
					res = None
					
				if res:
					result_status = res["status"] 
					result_msg    = res["msg"]
					if result_status == 1: 
						result_data   = res["Transaction_details"] 
						payment_data  = result_data
						for index,value in enumerate(payment_data):
							unique_id_pg = value["udf2"]
							if unique_id_pg and unique_id_pg == unique_id :
								status_pg = value["status"]	
								if status_pg == "null" or not status_pg :
									status_pg = value["action"]

								data_for_save = {}	
								data_for_save["amount"]           = value["amount"] 
								data_for_save["paid_at"]          = value["addedon"] 
								data_for_save["api_payment_id"]   = value["id"] 
								
								data_for_save["payment_mode"]      = value["mode"] 
								data_for_save["full_name"]         = value["firstname"] 
								data_for_save["email"]  		   = value["email"]  
								data_for_save["mobile"] 		   = value["phone"]
								data_for_save["unique_id"] 		   = value["udf2"]
								data_for_save["card_no"]  		   = value["card_no"]
								data_for_save["cardtype"]          = value["cardtype"]
								data_for_save["mer_service_fee"]   = value["mer_service_fee"]
								data_for_save["mer_service_tax"]   = value["mer_service_tax"]
								data_for_save["additional_charges"] = value["additional_charges"]
		
								if status_pg and status_pg == "SUCCESS":
									data_for_save["status"] = "success"
								else:	
									data_for_save["status"] = status_pg

								data_for_save["conf_id"] = conf_id		
								
								updatePaymentLogsAndUserPayments = TransactionModel().SaveTxnAPIData(data_for_save, unique_id,conf_id,curr_dt)	
								
							
								msg = "success"
								status = 1
								# data_status = 1
								# break 
		
							else :
								status = 4
								msg = result_msg
								
					else :
						status = 3
						msg    = "Records does not match."

				else:
					msg     =  "Record Not Found"
					status  = 2

			else:
				msg     =  "Record Not Found"
				status  = 2

		data = {"status" : status , "msg" : msg }
		return json.dumps(data,default=str)
	else:
		data = {"status" : 6 , "msg" : "Records does not exists." }
		return json.dumps(data,default=str)

	return "Records does not exists."

# @app.route('/view_payumoeny_transactions', methods = ["GET", "POST"])
# def ViewPayumoneyTransactions():
# 	try:

# 		conf_id = request.values.get("conf_id") or None

# 		get_transaction_data = TransactionModel().getTransactionData(conf_id)

# 		html_data = render_template("transaction_api/transaction_table.html",get_data=get_transaction_data)
# 		data = {"html_data" : html_data , "msg" : "" , "status" : 1}
# 		return json.dumps(data,default = str)

# 	except Exception as e:
# 		data = {"html_data" : "","msg" : str(e),"status" : 401}
# 		return json.dumps(data,default = str)
	
	


@app.route('/view_payumoeny_transactions', methods = ["GET", "POST"])
def ViewPayumoneyTransactions():
	try:
		now         = datetime.now()
		current_dt  = now.strftime("%Y-%m-%d %H:%M:%S")
		conf_id     = request.values.get("conf_id_1") or None
		from_date   = request.values.get("from_date_1") 
		to_date     = request.values.get("to_date_1") or None
		txn_status  = request.values.get("status") 
		total_amount= 0
		total_tax   = 0
		total_fee   = 0
		
		if from_date:
			if to_date is None:
				to_date = current_dt

		
		get_transaction_data = TransactionModel().getFilterTransactionData(conf_id,from_date,to_date,txn_status)

		if get_transaction_data:

			for index,value in enumerate(get_transaction_data):
				mer_service_fee = value["mer_service_fee"]
				mer_service_tax = value["mer_service_tax"]
				amount          = value["amount"]
				status          = value["status"]

				amount          = int(float(amount)) if amount else 0
				mer_service_fee = int(float(mer_service_fee)) if mer_service_fee else 0
				mer_service_tax = int(float(mer_service_tax)) if mer_service_tax else 0

				if status in ["success","Success","SUCCESS","captured" , "Successful"] :
					total_amount = total_amount+amount
					total_tax    = total_tax+mer_service_fee+mer_service_tax


		html_data = render_template("transaction_api/transaction_table.html",total_amount=total_amount,total_tax=total_tax,get_data=get_transaction_data,conf_id=conf_id,from_date=from_date,to_date=to_date,txn_status=txn_status)
		data = {"html_data":html_data,"msg" : "" , "status" : 1}
		return json.dumps(data,default = str)

	except Exception as e:
		data = {"msg" : str(e),"status" : 401}
		return json.dumps(data,default = str)
	
# Payumoney transaction start

@app.route("/calling_ajax",methods=["GET","POST"])
def CallingAjax():
	try:

		value_1 = request.values.get("value_1") or None
		value_2 = request.values.get("value_2") or None
		value_3 = request.values.get("value_3") or None


		
		return render_template("transaction_api/ajax_sample.html")
		# html_data = render_template("transaction_api/ajax_sample.html")
		data = {"html_data" : "" , "msg" : "Successfully" , "status" : 1}
		return json.dumps(data,default = str)
	except Exception as e:
		data = {"html_data" : "" , "msg" : str(e) , "status" : 401}
		return json.dumps(data,default = str)
		# raise e

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