Sindbad~EG File Manager

Current Path : /home/numerotech/membership.numerotech.com/CommonMembershipApp/core/model/
Upload File :
Current File : //home/numerotech/membership.numerotech.com/CommonMembershipApp/core/model/MMemberType.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
from .. import engine

#engine = create_engine(app.config['DATABASE_URI'])
# engine = create_engine(app.config['DATABASE_URI'],pool_size=5000,pool_pre_ping=True,pool_recycle=3600)
# engine = create_engine(app.config['DATABASE_URI'],pool_size=20, max_overflow=0)
# engine = create_engine(app.config['DATABASE_URI'],pool_size=5000,max_overflow=100,pool_pre_ping=True,pool_recycle=3600)
# engine = create_engine(app.config['DATABASE_URI'], poolclass=None,pool_pre_ping=True)

class MMemberType():
	def __init__(self):
		try:
			self.meta               = MetaData()
			self.m_member_type      = Table("m_member_type", self.meta,autoload_with=engine)
		   
		except Exception as e:
			print(e)
	
	def get_member_type(self):
		with engine.connect() as conn:
			stmt = select(self.m_member_type)
			results = conn.execute(stmt).all()
			conn.close()
			return  [dict(r._mapping) for r in results] if results else None

	def get_member_type_approved(self,society_id):
		with engine.connect() as conn:
			stmt = text("select distinct mt.member_type,mt.member_type_id,smt.display_name from m_member_type mt inner join society_map_member_type as smt on mt.member_type_id=smt.member_type_id where mt.member_type_id <> 2 and smt.society_id=:society_id;")
			results = conn.execute(stmt.bindparams(society_id=society_id)).all()
			conn.close()
			return  [dict(r._mapping) for r in results] if results else None
	
	def get_all_member_types(self,society_id):
		with engine.connect() as conn:
			stmt = text("select distinct mt.member_type,mt.member_type_id from m_member_type mt inner join society_map_member_type as smt on mt.member_type_id=smt.member_type_id where  smt.society_id=:society_id;")
			result = conn.execute(stmt.bindparams(society_id=society_id))
			results = result.all()
			conn.close()
			return  [dict(r._mapping) for r in results] if results else None

	def count_get_member_registrations(self,society_id):
		with engine.connect() as conn:
			stmt = text("SELECT distinct smt.display_name,mt.member_type_id FROM m_member_type as mt inner join society_map_member_type as smt on mt.member_type_id=smt.member_type_id where is_reg=1 and society_id=:society_id;")
			result = conn.execute(stmt.bindparams(society_id=society_id))
			results = result.all()
			conn.close()
			return  [dict(r._mapping) for r in results] if results else None

	def get_member_type_name(self,user_id,app_type):
		with engine.connect() as conn:
			# stmt = text("select u.prefix,u.full_name,u.email,u.membership_no,u.membership_no_only,mt.member_type,up.amount,up.paid_at,up.status,up.payment_method,up.api_payment_id from m_member_type as mt inner join users as u on mt.member_type_id = u.member_type_id left join user_payment as up on up.user_id = u.user_id and up.status=\"success\" where u.user_id=:user_id and up.app_type=:app_type limit 1;")
			stmt = text("select u.prefix,u.full_name,u.email,u.membership_no,u.membership_no_only,mt.member_type as approved_member_type,up.amount,up.paid_at,up.status,up.payment_method,up.api_payment_id from m_member_type as mt inner join users as u on mt.member_type_id = u.approved_member_type_id left join user_payment as up on up.user_id = u.user_id and up.status=\"success\" where u.user_id=:user_id and up.app_type=:app_type limit 1;")
			results = conn.execute(stmt.bindparams(user_id=user_id,app_type=app_type))
			results=  results.first()
			conn.close()
			if results :
				return dict(results._mapping)
			else:
				return None

	# def get_member_display_name(self,user_id,member_type_id,society_id):
	#     with engine.connect() as conn:
		#     stmt = text("select mt.member_type,smt.display_name,smt.amount,smt.currency_symbol,smt.currency from m_member_type as mt inner join society_map_member_type as smt on mt.member_type_id=smt.member_type_id inner join users u on  (find_in_set(u.country_id,smt.country_ids) or smt.country_ids is null) where smt.member_type_id=:member_type_id  and smt.society_id=:society_id and user_id=:user_id")
		#     results = conn.execute(stmt.bindparams(user_id=user_id,member_type_id=member_type_id,society_id=society_id))
		#     results=  results.first()
		#     if results :
		#         return dict(output._mapping)
		#     else:
		#         return None

	def usp_get_member_display_name(self,user_id,society_id):
		connection  = engine.raw_connection()
		cursor      = connection.cursor()
		cursor.callproc("usp_get_member_display_name",[user_id,society_id])
		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()
			connection.close()
			if results :
				return results
			else :
				return None
		else :
			cursor.close()
			connection.commit()
			connection.close()
			return None     

		

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