PROJECT
PROJECT
connector as ms
from random import randint
import datetime as dt
import calendar as c
from tabulate import tabulate
import webbrowser
def phnocheck(ph):
if len(str(ph))!=10 or ph<0:
print("!!!!!!!Enter a valid contact number!!!!!!!")
return True
if ph>2147483647:
print("!!!!!!!sql error: Enter a contact number
smaller than 2147483647!!!!!!!")
return True
return False
def emailcheck(em):
if not ([Link](".")[-1].isalpha()) or [Link]("@")!=1:
print("!!!!!!!Invalid email!!!!!!!")
return True
if len(em)>30:
print("!!!!!!!Email is too long!!!!!!!")
return True
for i in em:
if not([Link]() or i=="@" or i=="."):
print("!!!!!!!Invalid email!!!!!!!")
return True
return False
def datecheck(date):
l=[Link]("-")
if len(l)!=3 or len(date)!=10 or len(l[0])!=4 or
len(l[1])!=2 or len(l[2])!=2 :
print("!!!!!!!Please enter date in the format yyyy-
mm-dd!!!!!!!")
return True
if not(l[0].isdigit()) or not(l[1].isdigit()) or
not(l[2].isdigit()):
print("!!!!!!!Please enter a valid date in the format
yyyy-mm-dd!!!!!!!")
return True
if (int(l[1]) in [1,3,5,7,8,10,12] and int(l[2])>31) or
(int(l[1]) in [4,6,9,11] and int(l[2])>30):
print("!!!!!!!Please enter a valid date!!!!!!!")
return True
elif int(l[1])==2:
if ((int(l[0])%4==0 and int(l[0])%100!=0) or
(int(l[0])%400==0)):
if int(l[2])>29:
print("!!!!!!!Please enter a valid
date!!!!!!!")
return True
elif int(l[2])>28:
print("!!!!!!!Please enter a valid date!!!!!!!")
return True
return False
def interface():
print("*******WELCOME TO BANK MANAGEMENT SYSTEM*******")
ut=input("Enter login type(admin or customer) or (exit):")
if ut=="admin":
adminlogin()
elif ut=="customer":
customerlogin()
elif ut=="exit":
print("-----------------------------------------------
-")
print("*******...THANK YOU,PLEASE VISIT
AGAIN...*******")
print("-----------------------------------------------
-")
else:
print("!!!!!!!Enter admin or customer or exit
only!!!!!!!")
interface()
def customerlogin():
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
[Link]("select id,password from interface where
type='{}'".format("user"))
u=[Link]()
print("*******WELCOME TO USER INTERFACE*******")
id=input("Enter login id:")
pd=input("Enter your password:")
for i in u:
if i[0]==id and i[1]==pd:
[Link]("select Account_number from
acc_details where id='{}'"
.format(id))
u=[Link]()
ac=u[0]
print("~~~~~~~LOGIN SUCCESSFUL~~~~~~~")
cust_home(ac)
break
else:
print("!!!!!!!INVALID CREDENTIALS!!!!!!!")
print("!!!!!!!AUTHENTICATION UNSUCCESSFUL!!!!!!!")
print("#######ACCESS DENIED#######")
def cust_home(ac):
print("_______CUSTOMER PANEL_______")
print("Enter mp to modify id and password")
print("Enter a for account details")
print("Enter ab to check available balance")
print("Enter l for locker details")
print("Enter p to create or modify pin")
print("Enter t for transaction panel")
print("Enter th to see transaction history")
print("Enter r for review")
print("Enter lo to log out")
ch=input("Enter your choice:")
if ch=="mp":
modifypassword()
elif ch=="a":
acc(ac)
elif ch=="ab":
balance(ac)
elif ch=="l":
locker(ac)
elif ch=="p":
transpin(ac)
elif ch=="t":
transac(ac)
elif ch=="th":
transhis(ac)
elif ch=="r":
review(ac)
elif ch=="lo":
interface()
else:
print("!!!!!!!Enter mp or a or ab or l or p or t or th
or r or lo only!!!!!!!")
cust_home(ac)
def acc(ac):
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
[Link]("select
Account_number,Account_holder,Nominee_name,Father_name,Date_of_birth,G
ender,Marital_status,Contact_number,E_mail,Address,Account_type,Accoun
t_category from acc_details where Account_number={}".format(ac))
u=[Link]()
if u:
print("_______ACCOUNT DETAILS_______")
acc=tabulate([u],headers=["Account_number","Account_holder","Nominee_name","
Father_name","Date_of_birth","Gender","Marital_status","Contact_number","E_m
ail","Address","Account_type","Account_category"],tablefmt="grid")
print(acc)
cust_home(ac)
def balance(ac):
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
try:
pin=int(input("Enter your pin:"))
if (len(str(pin)))<4:
print("!!!!!!!Entered value is too short!!!!!!!")
def locker(ac):
print("_______LOCKER PANEL_______")
print("Enter mdl for more details about locker")
print("Enter la for your locker access")
print("Enter b to go back")
ch=input("Enter your choice:")
if ch=="mdl":
about_locker(ac)
elif ch=="la":
locker_access(ac)
elif ch=="b":
cust_home(ac)
else:
print("!!!!!!!Enter mdl or la or b only!!!!!!!")
locker(ac)
def about_locker(ac):
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
[Link]("select Size,Registration_fee,Annual_rent from
locker")
u=[Link]()
al=[]
for i in u:
[Link](i)
tal=tabulate(al,headers=["Size","Registration_fee","Annual_
rent"],tablefmt="grid")
print("_______MORE DETAILS ABOUT LOCKER_______")
print(tal)
print("***Note: Locker Visit Charges(All Sizes): 12 visits
free. Thereafter: Rs.100/- per visit.")
locker(ac)
def locker_access(ac):
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
print("_______LOCKER ACCESS PANEL_______")
id=input("Enter your locker ID:")
if(len(id))<5:
print("!!!!!!!Entered value is too short!!!!!!!")
locker_access(ac)
elif (len(id))>5:
print("!!!!!!!Entered value is too long!!!!!!!")
locker_access(ac)
try:
lpin=int(input("Enter your pin:"))
if (len(str(lpin)))<4:
print("!!!!!!!Entered value is too
short!!!!!!!")
print("!!!!!!!Enter pin of 4 digits!!!!!!!")
locker_access(ac)
elif(len(str(lpin)))>4:
print("!!!!!!!Entered value is too long!!!!!!!")
print("!!!!!!!Enter pin of 4 digits!!!!!!!")
locker_access(ac)
except ValueError:
print("!!!!!!!Enter integer only!!!!!!!")
locker_access(ac)
[Link]("select Locker_ID,Locker_Pin from locker where
Status='{}'".format("Rented"))
u=[Link]()
c=0
for i in u:
if i[0]=="id" and i[1]=="lpin":
c=c+1
timestamp=[Link]().strftime("%Y-%m-%d
%H:%M:%S")
if c>12:
[Link]("select Available_balance from
avail_balance where
Account_number={}".format(ac))
uu=[Link]()
if uu[0]>=(100+2000):
[Link]("update avail_balance set
Available_balance=Available_
balance-{} where
Account_number={}"
.format(100,ac))
[Link]("select Nominee_name,Details
from locker where Locker_ID='{}'
and Locker_Pin={}".
format(id,lpin))
uc=[Link]()
if uc:
lk=[]
for i in uc:
[Link](i)
lkt=tablate(lk,headers=["Nominee_name",
"Details"],
tablefmt="grid")
print("_______LOCKER DETAILS_______")
print(lkt)
[Link]("update locker set Access
log='{}' where Locker_ID='{}'"
.format(timestamp,id))
[Link]()
locker(ac)
else:
print("!!!!!!!YOU DON'T HAVE ENOUGH
BALANCE!!!!!!!")
print("#######ACCESS DENIED#######")
else:
[Link]("select Nominee_name,Details from
locker where Locker_ID='{}' and
Locker_Pin={}".format(id,lpin))
uc=[Link]()
if uc:
lk=[]
for i in uc:
[Link](i)
lkt=tablate(lk,headers=["Nominee_name","
Details"],
tablefmt="grid")
print("_______LOCKER DETAILS_______")
print(lkt)
[Link]("update locker set Access
log='{}' where Locker_ID='{}'".
format(timestamp,id))
[Link]()
locker(ac)
else:
print("!!!!!!!INVALID CREDENTIALS!!!!!!!")
print("!!!!!!!AUTHENTICATION
UNSUCCESSFUL!!!!!!!")
print("#######ACCESS DENIED#######")
def transpin(ac):
db=[Link](host="localhost",user="root",password=admin,da
tabase="bms")
cb=[Link]()
print("Enter cp to create pin")
print("Enter mp to modify pin")
print("Enter b to go back")
ch=input("Enter your choice:")
if ch=="cp":
try:
np=int(input("Enter new pin:"))
if (len(str(np)))<4:
print("!!!!!!!Pin is too short!!!!!!!")
transpin(ac)
elif (len(str(np)))>4:
print("!!!!!!!Pin is too long!!!!!!!")
transpin(ac)
[Link]("select Pin from acc_details")
u=[Link]()
for i in u:
if np==i[0]:
break
else:
[Link]("update acc_details set Pin={} where
Account_number={}".format(np,ac))
[Link]()
print("~~~~~~~PIN CREATED SUCCESSFULLY~~~~~~~")
leave("customer")
except ValueError:
print("!!!!!!!Enter integers only!!!!!!!")
transpin(ac)
elif ch=="mp":
try:
op=int(input("Enter your old pin:"))
if (len(str(op)))<4:
print("!!!!!!!Pin is too short!!!!!!!")
transpin(ac)
elif (len(str(op)))>4:
print("!!!!!!!Pin is too long!!!!!!!")
transpin(ac)
except ValueError:
print("!!!!!!!Enter integers only!!!!!!!")
transpin(ac)
[Link]("select Pin from acc_details where
Account_number={}".format(ac))
u=[Link]()
if u[1]==op:
try:
np=int(input("Enter new pin:"))
if (len(str(np)))<4:
print("!!!!!!!Pin is too short!!!!!!!")
transpin(ac)
elif (len(str(np)))>4:
print("!!!!!!!Pin is too long!!!!!!!")
transpin(ac)
for i in u:
if np==i[1]:
break
else:
[Link]("update acc_details set Pin={}
where Account_number={}"
.format(np,ac))
[Link]()
print("~~~~~~~PIN MODIFIED
SUCCESSFULLY~~~~~~~")
leave("customer")
except ValueError:
print("!!!!!!!Enter integers only!!!!!!!")
transpin(ac)
else:
print("!!!!!!!INVALID PIN!!!!!!!")
print("!!!!!!!AUTHENTICATION UNSUCCESSFUL!!!!!!!")
print("#######ACCESS DENIED#######")
elif ch=="b":
cust_home(ac)
else:
print("!!!!!!!Enter cp or mp or b only!!!!!!!")
transpin(ac)
def transac(ac):
print("_______TRANSACTION PANEL_______")
print("Enter d to debit money")
print("Enter c to credit money")
print("Enter b to go back")
ch=input("Enter your choice:")
if ch=="d":
debit(ac)
elif ch=="c":
credit(ac)
elif ch=="b":
cust_home(ac)
else:
print("!!!!!!!Enter d or c or b only!!!!!!!")
transac(ac)
def debit(ac):
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
date=[Link]()
day=[Link]("%A")
[Link]("select * from acc_details natural join
avail_balance where Account_number={}".
format(ac))
u=[Link]()
try:
ad=float(input("Amount to be debited:"))
except ValueError:
print("!!!!!!!Enter integer or float value
only!!!!!!!")
debit(ac)
try:
pin=int(input("Enter your pin:"))
if (len(str(pin)))<4:
print("!!!!!!!Entered value is too short!!!!!!!")
print("!!!!!!!Enter pin of 4 digits!!!!!!!")
debit(ac)
elif(len(str(pin)))>4:
print("!!!!!!!Entered value is too long!!!!!!!")
print("!!!!!!!Enter pin of 4 digits!!!!!!!")
debit(ac)
except ValueError:
print("!!!!!!!Enter integer only!!!!!!!")
debit(ac)
[Link]("select Pin from acc_details where
Account_number={}".format(ac))
ucb=[Link]()
if ucb[1]==pin:
[Link]("select Available_balance from avail_balance
where Account_number={}".format(ac))
uu=[Link]()
if uu[0]>=(ad+2000):
[Link]("update avail_balance set
Available_balance=Available_balance-{}
where Account_number={}".format(ad,ac))
[Link]("insert into transac_his
values({},'{}',{},'{}','{}','{}','{}')"
.format(ac,u[1],ad,"Withdrawl","Online",
str(date),day))
[Link]()
print("~~~~~~~TRANSACTION SUCCESSFUL~~~~~~~")
print("YOUR CURRENT BALANCE IS",u[14]-ad)
leave("customer")
else:
print("!!!!!!!YOU DON'T HAVE ENOUGH
BALANCE!!!!!!!")
print("!!!!!!!TRANSACTION UNSUCCESSFUL!!!!!!!")
else:
print("!!!!!!!INVALID PIN!!!!!!!")
print("!!!!!!!AUTHENTICATION UNSUCCESSFUL!!!!!!!")
print("#######TRANSACTION DENIED#######")
def credit(ac):
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
date=[Link]()
day=[Link]("%A")
[Link]("select * from acc_details natural join
avail_balance where Account_number={}"
.format(ac))
u=[Link]()
try:
cd=float(input("Amount to be credited:"))
except ValueError:
print("!!!!!!!Enter integer or float value
only!!!!!!!")
credit(ac)
try:
pin=int(input("Enter your pin:"))
if (len(str(pin)))<4:
print("!!!!!!!Entered value is too short!!!!!!!")
print("!!!!!!!Enter pin of 4 digits!!!!!!!")
credit(ac)
elif(len(str(pin)))>4:
print("!!!!!!!Entered value is too long!!!!!!!")
print("!!!!!!!Enter pin of 4 digits!!!!!!!")
credit(ac)
except ValueError:
print("!!!!!!!Enter integer only!!!!!!!")
credit(ac)
[Link]("select Pin from acc_details where
Account_number={}".format(ac))
ucb=[Link]()
if ucb[1]==pin:
[Link]("select Available_balance from avail_balance
where Account_number={}".format(ac))
uu=[Link]()
if uu[0]>=(cd+2000):
[Link]("update avail_balance set
Available_balance=Available_balance+{}
where Account_number={}".format(cd,ac))
[Link]("insert into transac_his
values({},'{}',
{},'{}','{}','{}','{}')".format(ac,u[1],cd,"Deposit","Online"
,str(date),day))
[Link]()
print("~~~~~~~TRANSACTION SUCCESSFUL~~~~~~~")
print("YOUR CURRENT BALANCE IS",u[14]+cd)
leave("customer")
else:
print("!!!!!!!YOU DON'T HAVE ENOUGH
BALANCE!!!!!!!")
print("!!!!!!!TRANSACTION UNSUCCESSFUL!!!!!!!")
else:
print("!!!!!!!INVALID PIN!!!!!!!")
print("!!!!!!!AUTHENTICATION UNSUCCESSFUL!!!!!!!")
print("#######TRANSACTION DENIED#######")
def transhis(ac):
print("_______TRANSACTION HISTORY PANEL_______")
print("Enter 5t to see details of last 5 transactions")
print("Enter mt to see details of last month trasactions")
print("Enter b to go back")
ch=input("Enter your choice:")
if ch=="5t":
last5t(ac)
elif ch=="mt":
lastmontht(ac)
elif ch=="b":
cust_home(ac)
else:
print("!!!!!!!Enter 5t or mt or b only!!!!!!!")
transhis(ac)
def last5t(ac):
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
[Link]("select * from transac_his where
Account_number={}".format(ac))
u=[Link]()
print("_______LAST 5 TRANSACTIONS_______")
if u:
ct5l=0
t5l=[]
for i in u[-1:-6:-1]:
ct5l=ct5l+1
[Link]((ct5l,)+i)
his5t=tabulate(t5l,headers=["[Link].","Account_number",
"Account_holder","Amount",
"Type","Mode","Date","Day"]
,tablefmt="grid")
print(his5t)
else:
print("~~~~~~~NO TRANSACTION HISTORY FOUND~~~~~~~")
transhis(ac)
def lastmontht(ac):
date=[Link]()
ds=str(date)
d=int(ds[-2:])
m=int(ds[-5:-3])
y=int(ds[0:4])
for i in range(30):
d=d-1
if d==0:
m=m-1
if m in [1,3,5,7,8,10,12]:
d=31
elif m in [4,6,9,11]:
d=30
elif m==2:
if [Link](int(ds[0:4])):
d=29
else:
d=28
elif m==0:
d=31
m=12
y=y-1
ds=str([Link](y,m,d))
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
[Link]("select * from transac_his where
Account_number={} and Date>={}".format(ac,ds))
u=[Link]()
print("_______LAST MONTH TRANSACTIONS_______")
if u:
cmtl=0
mtl=[]
for i in u[-1:-6:-1]:
cmtl=cmtl+1
[Link]((cmtl,)+i)
hism=tabulate(mtl,headers=["[Link].","Account_number",
"Account_holder","Amount",
"Type","Mode","Date","Day"]
,tablefmt="grid")
print(hism)
else:
print("~~~~~~~NO TRANSACTION HISTORY FOUND~~~~~~~")
transhis(ac)
def review(ac=0):
print("*******PLEASE LEAVE US YOUR VALUABLE
FEEDBACK*******")
ch=input("Enter (now or later):")
ch=[Link]()
if ch=="now":
[Link]("[Link]
leave("customer")
elif ch=="later":
leave("customer")
else:
print("!!!!!!!Enter now or later only!!!!!!!")
review(ac)
def adminlogin():
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
[Link]("select id,password from interface where
type='{}'".format("admin"))
u=[Link]()
print("*******WELCOME TO BANK INTERFACE*******")
id=input("Enter login id:")
pd=input("Enter your password:")
for i in u:
if i[0]==id and i[1]==pd:
print("~~~~~~~LOGIN SUCCESSFUL~~~~~~~")
adm_home()
break
else:
print("!!!!!!!INVALID CREDENTIALS!!!!!!!")
print("!!!!!!!AUTHENTICATION UNSUCCESSFUL!!!!!!!")
print("#######ACCESS DENIED#######")
def adm_home():
print("_______ADMIN PANEL_______")
print("Enter a for account details")
print("Enter ca to create an account")
print("Enter cip to create id and password")
print("Enter ea to modify account details")
print("Enter da to delete an account")
print("Enter l for locker details")
print("Enter s for searching")
print("Enter r for review panel")
print("Enter lo to log out")
ch=input("Enter your choice:")
if ch=="a":
acc_()
elif ch=="ca":
cacc()
elif ch=="cip":
cip()
elif ch=="ea":
macc()
elif ch=="da":
dacc()
elif ch=="l":
locker_()
elif ch=="s":
search()
elif ch=="r":
sreview()
elif ch=="lo":
interface()
else:
print("!!!!!!!Enter a or ca or cip or ea or da or l or
s or r or lo only!!!!!!!")
adm_home()
def acc_():
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
print("_______ACCOUNT DETAILS PANEL_______")
print("Enter aa to show all accounts")
print("Enter a to show individual's account")
print("Enter b to go back")
ch=input("Enter your choice:")
if ch=="aa":
[Link]("select
Account_number,Account_holder,Nominee_name,Father_name,Date_of_bir
th,Gender,Marital_status,Contact_number,E_mail,Address,Account_typ
e,Account_category from acc_details")
u=[Link]()
if u:
caal=0
aal=[]
for i in u:
caal=caal+1
[Link]((caal,)+i)
aac=tabulate(aal,headers=["[Link].","Account_number",
"Account_holder","Nominee_name","Father_name","Date
_of_birth","Gender","Marital_status","Contact_numbe
r","E_mail","Address","Account_type","Account_categ
ory"],
tablefmt="grid")
print("_______ACCOUNT DETAILS_______")
print(aac)
acc_()
elif ch=="a":
try:
ac=int(input("Enter account number:"))
if (len(str(ac)))<8:
print("!!!!!!!Entered value is too
short!!!!!!!")
print("!!!!!!!Enter account number of 8
digits!!!!!!!")
acc_()
elif(len(str(ac)))>8:
print("!!!!!!!Entered value is too
long!!!!!!!")
print("!!!!!!!Enter account number of 8
digits!!!!!!!")
acc_()
except ValueError:
print("!!!!!!!Enter integer only!!!!!!!")
acc_()
[Link]("select
Account_number,Account_holder,Nominee_name,Father_name,Date_of_bir
th,Gender,Marital_status,Contact_number,E_mail,Address,Account_typ
e,Account_category from acc_details where
Account_number={}".format(ac))
u=[Link]()
if u:
anc=tabulate([u],headers=["Account_number",
"Account_holder","Nominee_name","Father_name",
"Date_of_birth","Gender","Marital_status","Con
tact_number","E_mail","Address","Account_type"
,"Account_category"],
tablefmt="grid")
print("_______ACCOUNT DETAILS_______")
print(anc)
acc_()
else:
print("~~~~~~~NO SUCH ACCOUNT FOUND~~~~~~~")
print("~~~~~~~TRY AGAIN~~~~~~~")
acc_()
elif ch=="b":
adm_home()
else:
print("!!!!!!!Enter aa or a or b only!!!!!!!")
acc_()
#TO DISPLAY CREATE A NEW ACCOUNT PANEL
def cacc():
date=str([Link]())
print("_______NEW ACCOUNT PANEL_______")
ac=input("Enter (major or minor) account category:")
if ac=="major":
cmacc(ac,date)
elif ac=="minor":
c_macc(ac,date)
else:
print("!!!!!!!Enter major or minor only!!!!!!!")
cacc()
def cmacc(ac,date):
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
[Link]("select Account_number from acc_details")
u=[Link]()
p=randint(0,99999999)
for i in u:
if p==i[0]:
break
else:
an=p
n=input("Enter your full name:")
if [Link]():
print("!!!!!!!Enter a valid name!!!!!!!")
cmacc(ac,date)
return
elif len(n)>30:
print("!!!!!!!Name is too long!!!!!!!")
cmacc(ac,date)
return
elif len(n)<1:
print("!!!!!!!Name is too short!!!!!!!")
cmacc(ac,date)
return
nn=input("Enter nominee's name:")
if [Link]():
print("!!!!!!!Enter a valid name!!!!!!!")
cmacc(ac,date)
return
elif len(nn)>30:
print("!!!!!!!Name is too long!!!!!!!")
cmacc(ac,date)
return
elif len(nn)<1:
print("!!!!!!!Name is too short!!!!!!!")
cmacc(ac,date)
return
fn=input("Enter father's name:")
if [Link]():
print("!!!!!!!Enter a valid name!!!!!!!")
cmacc(ac,date)
return
elif len(fn)>30:
print("!!!!!!!Name is too long!!!!!!!")
cmacc(ac,date)
return
elif len(fn)<1:
print("!!!!!!!Name is too short!!!!!!!")
cmacc(ac,date)
return
db=input("Enter your date of birth:")
f=datecheck(db)
if f:
cmacc(ac,date)
return
if db>date:
print("!!!!!!!Enter a valid date!!!!!!!")
cmacc(ac,date)
return
g=input("Enter gender:")
if [Link]() not in ["male","female","transgender"]:
print("!!!!!!!Invalid gender!!!!!!!")
print("!!!!!!!Enter male or female or transgender
only!!!!!!!")
cmacc(ac,date)
return
mls=input("Enter marital status:")
if [Link]() not in ["married","unmarried"]:
print("!!!!!!!Invalid marital status!!!!!!!")
print("!!!!!!!Enter married or unmarried only!!!!!!!")
cmacc(ac,date)
return
cn=int(input("Enter contact number:"))
f=phnocheck(cn)
if f:
cmacc(ac,date)
return
e=input("Enter your E-mail:")
f=emailcheck(e)
if f:
cmacc(ac,date)
return
a=input("Enter your address:")
if [Link]():
print("!!!!!!!Enter a valid address!!!!!!!")
cmacc(ac,date)
return
elif len(a)>100:
print("!!!!!!!Address is too long!!!!!!!")
cmacc(ac,date)
return
elif len(a)<1:
print("!!!!!!!Address is too short!!!!!!!")
cmacc(ac,date)
return
at=input("Enter account type:")
if [Link]() not in ["savings","current","bussiness"]:
print("!!!!!!!Invalid account type!!!!!!!")
print("!!!!!!!Enter savings or current or
bussiness!!!!!!!")
cmacc(ac,date)
return
uc=input("Enter (now or later) to create id and password
for login:")
uc=[Link]()
if uc=="now":
[Link]("select * from interface where
Type={}".format("user"))
c=[Link]()
id=input("Enter id:")
if(len(id))<8:
print("!!!!!!!Entered value is too short!!!!!!!")
cmacc(ac,date)
return
elif (len(id))>20:
print("!!!!!!!Entered value is too long!!!!!!!")
cmacc(ac,date)
return
p=input("Enter password:")
if(len(p))<8:
print("!!!!!!!Entered value is too short!!!!!!!")
cmacc(ac,date)
return
elif (len(p))>8:
print("!!!!!!!Entered value is too long!!!!!!!")
cmacc(ac,date)
return
for i in c:
if id==i[0] or p==i[1]:
break
else:
[Link]("inset into interface values
('{}','{}','{}')".format(id,p,"user"))
[Link]("insert into
acc_details(Account_number,
Account_holder,Nominee_name,Father_name
,Date_of_birth,Gender,Marital_status,
Contact_number,E_mail,Address,
Account_type,Account_category,id)
values({},'{}','{}','{}','{}',
'{}','{}',
{},'{}','{}','{}','{}','{}')".format(an,n,nn,fn,db,g,ms,cn,e,
a,at,ac))
[Link]()
print("~~~~~~~ACCOUNT CREATED
SUCCESSFULLY~~~~~~~")
leave("admin")
elif uc=="later":
[Link]("insert into
acc_details(Account_number,Account_holder,
Nominee_name,Father_name,Date_of_birth,
Gender,Marital_status,Contact_number,
E_mail,Address,Account_type,Account_category)
values({},'{}','{}','{}','{}','{}','{}',{},
'{}','{}','{}','{}')"
.format(an,n,nn,fn,db,g,ms,cn,e,a,at,ac))
[Link]()
print("~~~~~~~ACCOUNT CREATED SUCCESSFULLY~~~~~~~")
leave("admin")
else:
print("!!!!!!!Enter now or later only!!!!!!!")
cmacc(ac,date)
return
def c_macc(ac,date):
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
[Link]("select Account_number from acc_details")
u=[Link]()
p=randint(0,99999999)
for i in u:
if p==i[0]:
break
else:
an=p
n=input("Enter your full name:")
if [Link]():
print("!!!!!!!Enter a valid name!!!!!!!")
c_macc(ac,date)
return
elif len(n)>30:
print("!!!!!!!Name is too long!!!!!!!")
c_macc(ac,date)
return
elif len(n)<1:
print("!!!!!!!Name is too short!!!!!!!")
c_macc(ac,date)
return
nn=input("Enter nominee's name:")
if [Link]():
print("!!!!!!!Enter a valid name!!!!!!!")
c_macc(ac,date)
return
elif len(nn)>30:
print("!!!!!!!Name is too long!!!!!!!")
c_macc(ac,date)
return
elif len(nn)<1:
print("!!!!!!!Name is too short!!!!!!!")
c_macc(ac,date)
return
fn=input("Enter father's name:")
if [Link]():
print("!!!!!!!Enter a valid name!!!!!!!")
c_macc(ac,date)
return
elif len(fn)>30:
print("!!!!!!!Name is too long!!!!!!!")
c_macc(ac,date)
return
elif len(fn)<1:
print("!!!!!!!Name is too short!!!!!!!")
c_macc(ac,date)
return
db=input("Enter your date of birth:")
f=datecheck(db)
if f:
c_macc(ac,date)
return
if db>date:
print("!!!!!!!Enter a valid date!!!!!!!")
c_macc(ac,date)
return
g=input("Enter gender:")
if [Link]() not in ["male","female","transgender"]:
print("!!!!!!!Invalid gender!!!!!!!")
print("!!!!!!!Enter male or female or transgender
only!!!!!!!")
c_macc(ac,date)
return
mls=input("Enter marital status:")
if [Link]() not in ["married","unmarried"]:
print("!!!!!!!Invalid marital status!!!!!!!")
print("!!!!!!!Enter married or unmarried only!!!!!!!")
c_macc(ac,date)
return
cn=int(input("Enter contact number:"))
f=phnocheck(cn)
if f:
c_macc(ac,date)
return
e=input("Enter your E-mail:")
f=emailcheck(e)
if f:
c_macc(ac,date)
return
a=input("Enter your address:")
if [Link]():
print("!!!!!!!Enter a valid address!!!!!!!")
c_macc(ac,date)
return
elif len(a)>100:
print("!!!!!!!Address is too long!!!!!!!")
c_macc(ac,date)
return
elif len(a)<1:
print("!!!!!!!Address is too short!!!!!!!")
c_macc(ac,date)
return
at=input("Enter account type:")
if [Link]() not in ["savings","current","bussiness"]:
print("!!!!!!!Invalid account type!!!!!!!")
print("!!!!!!!Enter savings or current or
bussiness!!!!!!!")
c_macc(ac,date)
return
uc=input("Enter (now or later) to create id and password
for login:")
uc=[Link]()
if uc=="now":
[Link]("select * from interface where
Type={}".format("user"))
c=[Link]()
id=input("Enter id:")
if(len(id))<8:
print("!!!!!!!Entered value is too short!!!!!!!")
c_macc(ac,date)
return
elif (len(id))>20:
print("!!!!!!!Entered value is too long!!!!!!!")
c_macc(ac,date)
return
p=input("Enter password:")
if(len(p))<8:
print("!!!!!!!Entered value is too short!!!!!!!")
c_macc(ac,date)
return
elif (len(p))>8:
print("!!!!!!!Entered value is too long!!!!!!!")
c_macc(ac,date)
return
for i in c:
if id==i[0] or p==i[1]:
break
else:
[Link]("inset into interface values
('{}','{}','{}')"
.format(id,p,"user"))
[Link]("insert into
acc_details(Account_number,Account_holder,
Nominee_name,Father_name,Date_of_birth,
Gender,Marital_status,Contact_number,
E_mail,Address,Account_type,
Account_category,id)
values({},'{}','{}','{}','{}','{}','{}',
{},'{}','{}','{}','{}','{}')"
.format(an,n,nn,fn,db,g,ms,cn,e,a,at,ac))
[Link]()
print("~~~~~~~ACCOUNT CREATED
SUCCESSFULLY~~~~~~~")
leave("admin")
elif uc=="later":
[Link]("insert into
acc_details(Account_number,Account_holder,
Nominee_name,Father_name,Date_of_birth,
Gender,Marital_status,Contact_number,
E_mail,Address,Account_type,Account_category)
values({},'{}','{}','{}','{}','{}','{}',
{},'{}','{}','{}','{}')"
.format(an,n,nn,fn,db,g,ms,cn,e,a,at,ac))
[Link]()
print("~~~~~~~ACCOUNT CREATED SUCCESSFULLY~~~~~~~")
leave("admin")
else:
print("!!!!!!!Enter now or later only!!!!!!!")
c_macc(ac,date)
return
def cip():
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
print("_______NEW ID AND PASSWORD PANEL_______")
[Link]("select * from interface where
Type={}".format("user"))
u=[Link]()
id=input("Enter id:")
if(len(id))<8:
print("!!!!!!!Entered value is too short!!!!!!!")
cip()
return
elif (len(id))>20:
print("!!!!!!!Entered value is too long!!!!!!!")
cip()
return
p=input("Enter password:")
if(len(p))<8:
print("!!!!!!!Entered value is too short!!!!!!!")
cip()
return
elif (len(p))>8:
print("!!!!!!!Entered value is too long!!!!!!!")
cip()
return
for i in u:
if id==i[0] or p==i[1]:
break
else:
[Link]("inset into interface values
('{}','{}','{}')".format(id,p,"user"))
[Link]()
print("~~~~~~~ID AND PASSWORD CREATED
SUCCESSFULLY~~~~~~~")
leave("admin")
def macc():
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
date=[Link]()
try:
ac=int(input("Enter account number:"))
if (len(str(ac)))<8:
print("!!!!!!!Entered value is too short!!!!!!!")
print("Enter account number of 8 digits")
macc()
elif(len(str(ac)))>8:
print("!!!!!!!Entered value is too long!!!!!!!")
print("Enter account number of 8 digits")
macc()
except ValueError:
print("!!!!!!!Enter integer only!!!!!!!")
macc()
print("_______MODIFY ACCOUNT DETAILS_______")
print("Enter nm to modify name")
print("Enter nn to modify nominee's name")
print("Enter fn to modify father's name")
print("Enter db to modify date of birth")
print("Enter g to modify gender")
print("Enter ms to modify marital status")
print("Enter cn to modify contact number")
print("Enter e to modify e-mail")
print("Enter a to modify address")
print("Enter at to modify account type")
print("Enter c to modify account category:")
print("Enter b to go back")
ch=input("Enter your choice:")
if ch=="nm":
nnm=input("Enter new name:")
if [Link]():
print("!!!!!!!Enter a valid name!!!!!!!")
macc()
return
elif len(nnm)>30:
print("!!!!!!!Name is too long!!!!!!!")
macc()
return
elif len(nnm)<1:
print("!!!!!!!Name is too short!!!!!!!")
macc()
return
[Link]("update acc_details set
Account_holder='{}'".format(nm))
elif ch=="nn":
nnn=input("Enter nominee's new name:")
if [Link]():
print("!!!!!!!Enter a valid name!!!!!!!")
macc()
return
elif len(nnn)>30:
print("!!!!!!!Name is too long!!!!!!!")
macc()
return
elif len(nnn)<1:
print("!!!!!!!Name is too short!!!!!!!")
macc()
return
[Link]("update acc_details set
Nominee_name='{}'".format(nnn))
elif ch=="fn":
nfn=input("Enter father's new name:")
if [Link]():
print("!!!!!!!Enter a valid name!!!!!!!")
macc()
return
elif len(nfn)>30:
print("!!!!!!!Name is too long!!!!!!!")
macc()
return
elif len(nfn)<1:
print("!!!!!!!Name is too short!!!!!!!")
macc()
return
[Link]("update acc_details set
Father_name='{}'".format(nfn))
elif ch=="db":
ndb=input("Enter new date of birth:")
f=datecheck(ndb)
if f:
macc()
return
if ndb>date:
print("!!!!!!!Enter a valid date!!!!!!!")
macc()
[Link]("update acc_details set
Date_of_birth='{}'".format(ndb))
elif ch=="g":
ng=input("Enter new gender:")
if [Link]() not in ["male","female","transgender"]:
print("!!!!!!!Invalid gender!!!!!!!")
print("!!!!!!!Enter male or female or transgender
only!!!!!!!")
macc()
return
[Link]("update acc_details set
Gender='{}'".format(ng))
elif ch=="ms":
ems=input("Enter new marital status:")
if [Link]() not in ["married","unmarried"]:
print("!!!!!!!Invalid marital status!!!!!!!")
print("!!!!!!!Enter married or unmarried
only!!!!!!!")
macc()
return
[Link]("update acc_details set Marital
status='{}'".format(ems))
elif ch=="cn":
ncn=int(input("Enter new contact number:"))
f=phnocheck(ncn)
if f:
macc()
return
[Link]("update acc_details set
Contact_number={}".format(ncn))
elif ch=="e":
ne=input("Enter new E-mail:")
f=emailcheck(ne)
if f:
macc()
return
[Link]("update acc_details set
E_mail='{}'".format(ne))
elif ch=="a":
na=input("Enter new address:")
if [Link]():
print("!!!!!!!Enter a valid address!!!!!!!")
macc()
return
elif len(na)>100:
print("!!!!!!!Address is too long!!!!!!!")
macc()
return
elif len(na)<1:
print("!!!!!!!Address is too short!!!!!!!")
macc()
return
[Link]("update acc_details set
Address='{}'".format(na))
elif ch=="at":
eat=input("Enter new account type:")
if [Link]() not in
["savings","current","bussiness"]:
print("!!!!!!!Invalid account type!!!!!!!")
print("!!!!!!!Enter savings or current or
bussiness!!!!!!!")
macc()
return
[Link]("update acc_details set
Account_type='{}'".format(eat))
elif ch=="c":
nc=input("Enter new account category:")
if [Link]() not in ["minor","major"]:
print("!!!!!!!Invalid account category!!!!!!!")
print("!!!!!!!Enter major or minor!!!!!!!")
macc()
return
[Link]("update acc_details set new
Account_category='{}'".format(nc))
elif ch=="b":
adm_home()
else:
print("!!!!!!!Enter nm or nn or fn or db or g or ms or
cn or e or a or c or b only!!!!!!!")
macc()
[Link]()
leave("admin")
def dacc():
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
try:
ac=int(input("Enter account number:"))
if (len(str(ac)))<8:
print("!!!!!!!Entered value is too short!!!!!!!")
print("Enter account number of 8 digits")
dacc()
elif(len(str(ac)))>8:
print("!!!!!!!Entered value is too long!!!!!!!")
print("Enter account number of 8 digits")
dacc()
except ValueError:
print("!!!!!!!Enter integer only!!!!!!!")
dacc()
ch=input("Do you want to delete permanently ???(yes or
no):")
ch=[Link]()
if ch=="yes":
[Link]("select
Account_number,Account_holder,Nominee_name,
Father_name,Date_of_birth,Gender,
Marital_status,Contact_number,E_mail,
Address,Account_type,Account_category,id
from acc_details where Account_number={}"
.format(ac))
u=[Link]()
[Link]("select Available_balance from
avail_balance where
Account_number={}".format(ac))
uc=[Link]()
[Link]("insert into dacc_details
values({},'{}','{}','{}','{}','{}','{}',{},
'{}','{}','{}','{}',{})".format(u[0],u[1],
u[2],u[3],u[4],u[5],u[6],u[7],u[8],
u[9],u[10],u[11],uc[1]))
[Link]("delete from avail_balance where
Account_number={}".format(ac))
[Link]("delete from acc_details where
Account_number={}".format(ac))
[Link]("delete from interface where
id={}".format(u[12]))
[Link]()
print("~~~~~~~ACCOUNT DELETED SUCCESSFULLY~~~~~~~")
leave("admin")
elif ch=="no":
adm_home()
else:
print("!!!!!!!Enter yes or no only!!!!!!!")
dacc()
def locker_():
print("_______LOCKER PANEL_______")
print("Enter lr for locker registration and rental")
print("Enter re for locker return")
print("Enter b to go back")
ch=input("Enter your choice:")
if ch=="lr":
locker_registration()
elif ch=="re":
locker_return()
elif ch=="b":
adm_home()
else:
print("!!!!!!!Enter lr or re or b only!!!!!!!")
locker_()
def locker_registration():
print("_______LOCKER REGISTRATION AND RENTAL PANEL_______")
s=input("Enter size of locker you want:")
s=[Link]()
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
[Link]("select Locker_ID,Registration_fee,Annual_rent
from locker where Size='{}' and Status='{}'"
.format(s,"Available"))
u=[Link]()
if u:
lr=0
lk=[]
lid=[]
for i in u:
lr=lr+1
[Link](i[0])
[Link]((lk,)+i)
lkt=tabulate(lk,headers=["Locker_ID",
"Registration_fee",
"Annual_rent"],
tablefmt="grid")
print("_______LOCKERS AVAILABLE_______")
print(lkt)
if lr==0:
print("~~~~~~~NO LOCKERS AVAILABLE~~~~~~~")
elif lr==1:
print("~~~~~~~",lr,"LOCKER AVAILABLE~~~~~~~")
else:
print("~~~~~~~",lr,"LOCKERS AVAILABLE~~~~~~~")
id=input("Enter locker ID:")
if(len(id))<5:
print("!!!!!!!Entered value is too short!!!!!!!")
locker_registration()
elif (len(id))>5:
print("!!!!!!!Entered value is too long!!!!!!!")
locker_registration()
if id not in lid:
print("!!!!!!!Enter a Locker ID from the table
shown above only!!!!!!!")
locker_registration()
return
n=input("Enter customer's name:")
if [Link]():
print("!!!!!!!Enter a valid name!!!!!!!")
locker_registration()
return
elif len(n)>30:
print("!!!!!!!Name is too long!!!!!!!")
locker_registration()
return
elif len(n)<1:
print("!!!!!!!Name is too short!!!!!!!")
locker_registration()
return
nn=input("Enter nominee's name:")
if [Link]():
print("!!!!!!!Enter a valid name!!!!!!!")
locker_registration()
return
elif len(nn)>30:
print("!!!!!!!Name is too long!!!!!!!")
locker_registration()
return
elif len(nn)<1:
print("!!!!!!!Name is too short!!!!!!!")
locker_registration()
return
t=int(input("Enter tenure(years):"))
try:
t=int(input("Enter tenure(years):"))
if (len(str(t)))<1:
print("!!!!!!!Tenure is too short!!!!!!!")
locker_registration()
elif (len(str(t)))>2:
print("!!!!!!!Tenure is too long!!!!!!!")
locker_registration()
except ValueError:
print("!!!!!!!Enter integers only!!!!!!!")
locker_registration()
d=input("Enter details of deposits:")
if [Link]():
print("!!!!!!!Enter valid details !!!!!!!")
locker_registration()
return
elif len(d)>100:
print("!!!!!!!Details are too long!!!!!!!")
locker_registration()
return
elif len(d)<1:
print("!!!!!!!Details are too short!!!!!!!")
locker_registration()
return
try:
p=int(input("Enter new pin:"))
if (len(str(p)))<4:
print("!!!!!!!Pin is too short!!!!!!!")
locker_registration()
elif (len(str(p)))>4:
print("!!!!!!!Pin is too long!!!!!!!")
locker_registration()
except ValueError:
print("!!!!!!!Enter integers only!!!!!!!")
locker_registration()
try:
cp=int(input("Enter new pin:"))
if (len(str(cp)))<4:
print("!!!!!!!Pin is too short!!!!!!!")
locker_registration()
elif (len(str(cp)))>4:
print("!!!!!!!Pin is too long!!!!!!!")
locker_registration()
except ValueError:
print("!!!!!!!Enter integers only!!!!!!!")
locker_registration()
if cp==p:
[Link]("update locker set Account_holder='{}'
where Locker_ID='{}'".format(n,id))
[Link]("update locker set Nominee_name='{}'
where Locker_ID='{}'".format(nn,id))
[Link]("update locker set Locker_pin={} where
Locker_ID='{}'".format(cp,id))
[Link]("update locker set Tenure={} where
Locker_ID='{}'".format(t,id))
[Link]("update locker set Details='{}' where
Locker_ID='{}'".format(d,id))
[Link]("update locker set Status={} where
Locker_ID='{}'".format("Rented",id))
[Link]()
else:
print("!!!!!!!Pin does not match!!!!!!!")
locker_registration()
else:
print("~~~~~~~SORRY NO",s,"LOCKER AVAILABE NOW~~~~~~~")
print("~~~~~~~TRY WITH A DIFFERENT SIZE~~~~~~~")
locker_registration()
[Link]("select Registration_fee,Annual_rent,Tenure from
locker where Locker_ID='{}'".format(id))
c=[Link]()
a=c[0]+c[1]*c[2]
try:
ac=int(input("Enter account number:"))
if (len(str(ac)))<8:
print("!!!!!!!Entered value is too short!!!!!!!")
print("Enter account number of 8 digits")
locker_registration()
elif(len(str(ac)))>8:
print("!!!!!!!Entered value is too long!!!!!!!")
print("Enter account number of 8 digits")
locker_registration()
except ValueError:
print("!!!!!!!Enter integer only!!!!!!!")
locker_registration()
[Link]("select Available_balance from avail_balance
where Account_number={}".format(ac))
uc=[Link]()
if uc[0]>=(a+2000):
[Link]("update avail_balance set
Available_balance=Available_balance-{}
where Account_number={}".format(a,ac))
[Link]()
print("~~~~~~~PAYMENT SUCCESSFUL~~~~~~~")
print("~~~~~~~LOCKER RESGISTRATION AND RENTAL
SUCCESSFUL~~~~~~~")
locker_()
else:
print("!!!!!!!PAYMENT UNSUCCESSFUL!!!!!!!")
print("!!!!!!!YOU DON'T HAVE ENOUGH BALANCE!!!!!!!")
print("!!!!!!!LOCKER RESGISTRATION AND RENTAL
UNSUCCESSFUL!!!!!!!")
locker_()
def locker_return():
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
id=input("Enter locker id:")
if(len(id))<5:
print("!!!!!!!Entered value is too short!!!!!!!")
locker_return()
elif (len(id))>5:
print("!!!!!!!Entered value is too long!!!!!!!")
locker_return()
try:
p=int(input("Enter master pin:"))
if (len(str(p)))<4:
print("!!!!!!!Pin is too short!!!!!!!")
locker_return()
elif (len(str(p)))>4:
print("!!!!!!!Pin is too long!!!!!!!")
locker_return()
except ValueError:
print("!!!!!!!Enter integers only!!!!!!!")
locker_return()
[Link]("select * from locker where Locker_ID='{}'
and Master_pin={}".format(id,p))
u=[Link]()
if u:
[Link]("update locker set Account_holder=Null
where Locker_ID='{}'".format(id))
[Link]("update locker set Nominee_name=Null where
Locker_ID='{}'".format(id))
[Link]("update locker set Locker_pin=Null where
Locker_ID='{}'".format(id))
[Link]("update locker set Tenure=Null where
Locker_ID='{}'".format(id))
[Link]("update locker set Details=Null where
Locker_ID='{}'".format(id))
[Link]("update locker set Status={} where
Locker_ID='{}'".format("Available",id))
[Link]("update locker set Access_log=Null where
Locker_ID='{}'".format(id))
[Link]()
print("~~~~~~~LOCKER RETURN SUCCESSFUL~~~~~~~")
locker()
else:
print("!!!!!!!LOCKER RETURN UNSUCCESSFUL!!!!!!!")
locker()
def search():
print("_______SEARCH PANEL_______")
print("Enter a to search on the basis of age")
print("Enter g to search on the basis of gender")
print("Enter ms to search on the basis of marital status")
print("Enter s to search on the basis of surnames")
print("Enter l to search on the basis of locality")
print("Enter c to search on the basis of category of
account")
print("Enter t to search on the basis of type of account")
print("Enter ba to search on the basis of balance")
print("Enter b to go back")
ch=input("Enter your choice:")
if ch=="a":
search_age()
elif ch=="g":
search_gender()
elif ch=="ms":
search_marital_status()
elif ch=="s":
search_surname()
elif ch=="l":
search_locality()
elif ch=="c":
search_category()
elif ch=="t":
search_type()
elif ch=="ba":
search_balance()
elif ch=="b":
adm_home()
else:
print("!!!!!!!Enter a or g or ms or s or l or c or t
or ba or b only!!!!!!!")
search()
def search_age():
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
print("Enter m for minor account holders")
print("Enter ma for adult account holders")
print("Enter sc for senior citizen account holders")
uc=input("Enter category to search:")
[Link]("select Account_number,Account_holder,
Date_of_birth from acc_details")
u=[Link]()
days_in_year = 365.2425
cm=0
ca=0
csc=0
al=[]
if uc=="m":
print("_______MINOR ACCOUNT HOLDERS_______")
for i in u:
age = int(([Link]() - i[2]).days /
days_in_year)
if age<=18:
cm=cm+1
[Link]([cm,i[0],i[1]])
mah=tabulate(al,headers=["[Link].","Account_number",
"Account_holder"],
tablefmt="grid")
print(mah)
if cm==0:
print("~~~~~~~There are no such account
holders~~~~~~~")
elif cm==1:
print("There is",cm,"minor account
holder~~~~~~~")
else:
print("~~~~~~~There are",cm,"minor account
holders~~~~~~~")
search()
elif uc=="ma":
print("_______MAJOR ACCOUNT HOLDERS_______")
for i in u:
age = int(([Link]() - i[2]).days /
days_in_year)
if 60>age>=18:
ca=ca+1
[Link]([ca,i[0],i[1]])
maah=tabulate(al,headers=["[Link].","Account_number",
"Account_holder"],
tablefmt="grid")
print(maah)
if ca==0:
print("~~~~~~~There are no such account
holders~~~~~~~")
elif ca==1:
print("~~~~~~~There is",ca,"major account
holder~~~~~~~")
else:
print("~~~~~~~There are",ca,"major account
holders~~~~~~~")
search()
elif uc=="sc":
print("_______SENIOR CITIZEN ACCOUNT HOLDERS_______")
for i in u:
age = int(([Link]() - i[2]).days /
days_in_year)
if age>=60:
csc=csc+1
[Link]([csc,i[0],i[1]])
csah=tabulate(al,headers=["[Link].","Account_number",
"Account_holder"],
tablefmt="grid")
print(csah)
if csc==0:
print("~~~~~~~There are no such account
holders~~~~~~~")
elif csc==1:
print("~~~~~~~There is",csc,"senior citizen
account holder~~~~~~~")
else:
print("~~~~~~~There are",csc,"senior citizen
account holders~~~~~~~")
search()
else:
print("!!!!!!!Enter m or ma or sc only!!!!!!!")
search_age()
def search_gender():
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
[Link]("select Account_number,Account_holder,Gender
from acc_details")
u=[Link]()
uc=input("Enter gender to search:")
uc=[Link]()
if uc in ["male","female","transgender"]:
print("_______",[Link](),"ACCOUNT HOLDERS_______")
gc=0
gl=[]
for i in u:
if (i[2].lower())==uc:
gc=gc+1
[Link]([gc,i[0],i[1]])
gah=tabulate(gl,headers=["[Link].","Account_number",
"Account_holder"],
tablefmt="grid")
print(gah)
if gc==0:
print("~~~~~~~There are no such account
holders~~~~~~~")
elif gc==1:
print("~~~~~~~There is",gc,uc,"account
holder~~~~~~~")
else:
print("~~~~~~~There are",gc,uc,"account
holders~~~~~~~")
search()
else:
print("!!!!!!!Enter male or female or
transgender!!!!!!!")
search_gender()
def search_marital_status():
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
[Link]("select Account_number,Account_holder,
Marital_status from acc_details")
u=[Link]()
uc=input("Enter marital status to search:")
uc=[Link]()
if uc in ["married","unmarried"]:
print("_______",[Link](),"ACCOUNT HOLDERS_______")
mc=0
ml=[]
for i in u:
if (i[2].lower())==uc:
mc=mc+1
[Link]([mc,i[0],i[1]])
msah=tabulate(ml,headers=["[Link].","Account_number",
"Account_holder"],
tablefmt="grid")
print(msah)
if mc==0:
print("~~~~~~~There are no such account
holders~~~~~~~")
elif gc==1:
print("~~~~~~~There is",mc,uc,"account
holder~~~~~~~")
else:
print("~~~~~~~There are",mc,uc,"account
holders~~~~~~~")
search()
else:
print("!!!!!!!Enter married or unmarried only!!!!!!!")
search_marital_status()
def search_surname():
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
[Link]("select Account_number,Account_holder from
acc_details")
u=[Link]()
uc=input("Enter surname to search:")
uc=[Link]()
print("_______ACCOUNT HOLDERS HAVING SURNAME",
[Link](),"_______")
cn=0
sl=[]
for i in u:
if (i[1].split()[-1].lower())==uc:
cn=cn+1
[Link]([cn,i[0],i[1]])
sah=tabulate(sl,headers=["[Link].","Account_number",
"Account_holder"],
tablefmt="grid")
print(sah)
if cn==0:
print("~~~~~~~There are no such account
holders~~~~~~~")
elif cn==1:
print("~~~~~~~There is",cn,"account holder having
surname",uc,"~~~~~~~")
else:
print("~~~~~~~There are",cn,"account holders having
surname",uc,"~~~~~~~")
search()
def search_locality():
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
uc=input("Enter locality to search:")
cu=0
ll=[]
[Link]("select Account_number,Account_holder from
acc_details where Address like '{}'"
.format("%"+uc+"%"))
u=[Link]()
print("_______ACCOUNT HOLDERS BELONGING TO",
[Link](),"LOCALITY_______")
for i in u:
cu=cu+1
[Link]([cu,i[0],i[1]])
lah=tabulate(ll,headers=["[Link].","Account_number",
"Account_holder"],
tablefmt="grid")
print(lah)
if cu==0:
print("~~~~~~~There are no such account
holders~~~~~~~")
elif cu==1:
print("~~~~~~~There is",cu,"account holder belonging
to",uc,"locality~~~~~~~")
else:
print("~~~~~~~There are",cu,"account holders belonging
to",uc,"locality~~~~~~~")
search()
def search_category():
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
[Link]("select Account_number,Account_holder,
Account_category from acc_details")
u=[Link]()
uc=input("Enter category of account to search:")
uc=[Link]()
if uc in ["major","minor"]:
print("_______ACCOUNT HOLDERS HAVING",
[Link](),"ACCOUNTS_______")
cc=0
cl=[]
for i in u:
if (i[2].lower())==uc:
cc=cc+1
[Link]([cc,i[0],i[1]])
cah=tabulate(cl,headers=["[Link].","Account_number",
"Account_holder"],
tablefmt="grid")
print(cah)
if cc==0:
print("~~~~~~~There are no such account
holders~~~~~~~")
elif cc==1:
print("~~~~~~~There is",cc,"account holder
having",uc,"account~~~~~~~")
else:
print("~~~~~~~There are",cc,"account holders
having",uc,"accounts~~~~~~~")
search()
else:
print("!!!!!!!Enter major or minor only!!!!!!!")
search_category()
def search_type():
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
[Link]("select Account_number,Account_holder,
Account_type from acc_details")
u=[Link]()
uc=input("Enter type of account to search:")
uc=[Link]()
if uc in ["savings","current","business"]:
print("_______ACCOUNT HOLDERS HAVING",
[Link](),"ACCOUNTS_______")
ct=0
tl=[]
for i in u:
if (i[2].lower())==uc:
ct=ct+1
[Link]([ct,i[0],i[1]])
tah=tabulate(tl,headers=["[Link].","Account_number",
"Account_holder"],
tablefmt="grid")
print(tah)
if ct==0:
print("~~~~~~~There are no such account
holders~~~~~~~")
elif ct==1:
print("~~~~~~~There is",ct,"account holder
having",uc,"account~~~~~~~")
else:
print("~~~~~~~There are",ct,"account holders
having",uc,"accounts~~~~~~~")
search()
else:
print("!!!!!!!Enter savings or current or business
only!!!!!!!")
search_type()
def search_balance():
db=[Link](host="localhost",user="root",password=admin,
database="bms")
cb=[Link]()
[Link]("select a.Account_number,Account_holder,
Available_balance from acc_details a,
avail_balance ab where
a.Account_number=ab.Account_number")
u=[Link]()
try:
sp=float(input("Enter starting point:"))
ep=float(input("Enter ending point:"))
except ValueError:
print("!!!!!!!Enter integer or float value
only!!!!!!!")
search_balance()
print("_______ACCOUNT HOLDERS HAVING BALANCE BETWEEN",
sp,"AND",ep,"_______")
cp=0
bl=[]
for i in u:
if sp<=i[2]<=ep:
cp=cp+1
[Link]([cp,i[0],i[1]])
bah=tabulate(bl,headers=["[Link].","Account_number",
"Account_holder"],
tablefmt="grid")
print(bah)
if cp==0:
print("~~~~~~~There are no such account
holders~~~~~~~")
EliF cp==1:
print("~~~~~~~There is",cp,"account holder having
balance between",sp,"and",ep,"~~~~~~~")
else:
print("~~~~~~~There are",cp,"account holders having
balance between",sp,"and",ep,"~~~~~~~")
search()
def sreview():
print("_______REVIEW PANEL_______")
[Link]("[Link]
Z0xnam28eqXhwl_30vfYnYyEgPIaBwGHWQHMc1MHc/
edit?usp=drivesdk")
leave("admin")
def leave(s,ac=0):
print("h for home")
print("i for interface")
print("e to exit")
ch=input("Enter your choice:")
if ch=="h":
if s=="admin":
adm_home()
elif s=="customer":
cust_home(ac)
elif ch=="i":
interface()
elif ch=="e":
print("-----------------------------------------------
-")
print("*******...THANK YOU,PLEASE VISIT AGAIN...
*******")
print("-----------------------------------------------
-")
else:
print("!!!!!!!Enter h or i or e only!!!!!!!")
leave(s,ac)
interface()