Skip to content

Ajay-097/Tech-base

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

import cx_Oracle

################Database class class Database: dns = cx_Oracle.makedsn("127.0.0.1",1521,"XE") con = cx_Oracle.connect("system","admin",dns) cur = con.cursor() def addCustomer(self,name,DOB,address,phone,password): querystring = "insert into TESTDB.CUSTOMER(id,acc_no,name,dob,address,phone,password,balance) values (TESTDB.ID_SEQUENCE.NEXTVAL,TESTDB.ACC_SEQUENCE.NEXTVAL,'"+name+"',TO_DATE('"+DOB+"','yyyy/mm/dd'),'"+address+"',"+phone+",'"+password+"',500)"
Database.cur.execute(querystring) Database.cur.execute("select id,acc_no from TESTDB.CUSTOMER where name='"+name+"'") print"\nSuccessful sign-up\n your customer id and account number are:" res = Database.cur.fetchall() for n in res: print(n) Database.con.commit()

def addrChange(self,username,newaddr):
    querystring="update TESTDB.CUSTOMER set address='"+newaddr+"' where name='"+username+"'"
    Database.cur.execute(querystring)
    Database.con.commit()
    print"\nAddress successfully changed\n"

def deposit(self,username):
   amt=raw_input("Enter the amount:")
   prompt=int(raw_input("""PRESS 1 To deposit in Savings account\n"""+
                        """PRESS 2 To deposit in current account\n"""+
                        """PRESS 3 To deposit in FD account\n"""))
   if prompt==1:
       querystring="update TESTDB.SACC set sbalance=sbalance+"+amt+" where name='"+username+"'"
       Database.cur.execute(querystring)
       Database.con.commit()
       print"\nsuccessfully credited in savings account\n"
   elif prompt==2:
       querystring="update TESTDB.CACC set cbalance=cbalance+"+amt+" where name='"+username+"'"
       Database.cur.execute(querystring)
       Database.con.commit()
       print"\nsuccessfully credited in Current account\n"
   elif prompt==3:
       querystring="update TESTDB.FDCC set fbalance=fbalance+"+amt+" where name='"+username+"'"
       Database.cur.execute(querystring)
       Database.con.commit()
       print"\nsuccessfully credited in FD account\n"
   else:
       print "You have pressed the wrong key, please try again"
       s=Database()
       s.deposit()
        

def withdraw(self,username):
    amt=raw_input("Enter the amount:")
    prompt=int(raw_input("""PRESS 1 To withdraw from Savings account\n"""+
                         """PRESS 2 To withdraw from current account\n"""))
    if prompt==1:
        querysbalance="select sbalance from TESTDB.SACC where name='"+username+"'"
        Database.cur.execute(querysbalance)
        res = Database.cur.fetchall()
        for n in res:
            if n>int(amt):
                count=1
        if count==1:
            querystring1="update TESTDB.SACC set sbalance=sbalance-"+amt+" where name='"+username+"'"
            Database.cur.execute(querystring1)
            Database.con.commit()
            print"\nsuccessfully debited\n"
        else:
            print"\ninsufficient balance\n"
    elif prompt==2:
        querycbalance="select cbalance from TESTDB.CACC where name='"+username+"'"
        Database.cur.execute(querycbalance)
        res = Database.cur.fetchall()
        for n in res:
            if n>int(amt):
                count=1
        if count==1:
            querystring2="update TESTDB.CACC set cbalance=cbalance-"+amt+" where name='"+username+"'"
            Database.cur.execute(querystring2)
            Database.con.commit()
            print"\nsuccessfully debited\n"
        else:
            print"\ninsufficient balance\n"

def transfer(self,username):
    acc=raw_input("enter the account number of recepient:")
    amt=raw_input("enter the amount:")
    querybalance="select balance from TESTDB.CUSTOMER where name='"+username+"'"
    Database.cur.execute(querybalance)
    res = Database.cur.fetchall()
    for n in res:
        if n>int(amt):
            count=1
    if count==1:
        querystring1="update TESTDB.CUSTOMER set balance=balance-"+amt+" where name='"+username+"'"
        querystring2="update TESTDB.CUSTOMER set balance=balance+"+amt+" where acc_no="+acc+""
        Database.cur.execute(querystring1)
        Database.cur.execute(querystring2)
        Database.con.commit()
        print"\nsuccessfully transfered\n"
    else:
        print"\ninsufficient balance\n"
        
    
def statement(self,username):
     querystring1="select name from TESTDB.CUSTOMER where name='"+username+"'"
     Database.cur.execute(querystring1)
     Database.con.commit()
     res = Database.cur.fetchall()
     for n in res:
         print(n)
     querystring2="select sacc_no,sbalance from TESTDB.SACC where name='"+username+"'"
     Database.cur.execute(querystring2)
     Database.con.commit()
     res = Database.cur.fetchall()
     for n in res:
         if res:
             print(n)
         else:
             print"N/A\n"
     querystring3="select cacc_no,cbalance from TESTDB.CACC where name='"+username+"'"
     Database.cur.execute(querystring3)
     Database.con.commit()
     res = Database.cur.fetchall()
     for n in res:
         if res:
             print(n)
         else:
             print"N/A\n"
     querystring4="select fdcc_no,fbalance from TESTDB.FDCC where name='"+username+"'"
     Database.cur.execute(querystring4)
     Database.con.commit()
     res = Database.cur.fetchall()
     for n in res:
         if res:
             print(n)
         else:
             print"N/A\n"

def closeacc(self,username):
    querystring1="select acc_no,id,name from TESTDB.CUSTOMER where name='"+username+"'"
    Database.cur.execute(querystring1)
    res = Database.cur.fetchall()
    for n in res:
         a=str(n[0])
         b=str(n[1])
         c=str(n[2])
    querystring2="insert into TESTDB.CLOSE values("+a+","+b+",'"+c+"')"
    querystring3="delete from TESTDB.CUSTOMER where name='"+username+"'"
    Database.cur.execute(querystring2)
    Database.cur.execute(querystring3)
    Database.con.commit()
    print"\nAccount closed\n"

def adminMenu(self):
    dbobj=Database()
    prompt=int(raw_input("""PRESS 1 To see history of closed accounts\n"""+                   
                         """PRESS 2 To see FD report\n"""+
                         """PRESS 3 To see FD report with particular amount\n"""+                   
                         """PRESS 4 To see loan report\n"""+
                         """PRESS 5 To see loan report with particular amount\n"""+                   
                         """PRESS 6 To see loan - FD report of customers \n"""+
                         """PRESS 7 To see Report of Customers who are yet to avail a loan \n"""+                   
                         """PRESS 8 To see Report of Customers who are yet to open a FD account\n"""+
                         """PRESS 9 To see Report of Customers who neither have a loan nor a FD account with the bank\n"""+                   
                         """PRESS 10 To logout\n"""))
                         
    if prompt==1:
        querystring="select * from TESTDB.CLOSE"
        Database.cur.execute(querystring)
        Database.con.commit()
        res = Database.cur.fetchall()
        for n in res:
            print(n)
        dbobj.adminMenu()
    elif prompt==2:
        querystring="select * from TESTDB.FDCC"
        Database.cur.execute(querystring)
        Database.con.commit()
        res = Database.cur.fetchall()
        for n in res:
            print(n)
        dbobj.adminMenu()
    elif prompt==3:
        amount=(raw_input("""Enter the amount:\n"""))
        querystring="select * from TESTDB.FDCC where fbalance>="+amount+""
        Database.cur.execute(querystring)
        Database.con.commit()
        res = Database.cur.fetchall()
        for n in res:
            print(n)
        dbobj.adminMenu()
    elif prompt==4:
        querystring="select * from TESTDB.LOAN"
        Database.cur.execute(querystring)
        Database.con.commit()
        res = Database.cur.fetchall()
        for n in res:
            print(n)
        dbobj.adminMenu()
    elif prompt==5:
        amount=(raw_input("""Enter the amount\n"""))
        querystring="select * from TESTDB.LOAN where loan_amt>="+amount+""
        Database.cur.execute(querystring)
        Database.con.commit()
        res = Database.cur.fetchall()
        for n in res:
            print(n)
        dbobj.adminMenu()
    elif prompt==6:
        querystring="SELECT l.id,l.name FROM testdb.loan l inner join testdb.fdcc fd on l.id=fd.id WHERE l.loan_amt >= fd.fbalance"
        Database.cur.execute(querystring)
        Database.con.commit()
        res = Database.cur.fetchall()
        for n in res:
            print(n)
        dbobj.adminMenu()
    elif prompt==7:
        querystring="SELECT id,name FROM testdb.customer WHERE id NOT IN (SELECT DISTINCT id FROM testdb.loan)"
        Database.cur.execute(querystring)
        Database.con.commit()
        res = Database.cur.fetchall()
        for n in res:
            print(n)
        dbobj.adminMenu()
    elif prompt==8:
        querystring="SELECT id,name FROM testdb.customer WHERE id NOT IN (SELECT DISTINCT id FROM testdb.fdcc)"
        Database.cur.execute(querystring)
        Database.con.commit()
        res = Database.cur.fetchall()
        for n in res:
            print(n)
        dbobj.adminMenu()
    elif prompt==9:
        querystring="select cus.id,cus.name from testdb.customer cus where not exists (select f.id from testdb.fdcc f  where cus.id = f.id) and not exists (select l.id from testdb.loan l where cus.id = l.id)"
        Database.cur.execute(querystring)
        Database.con.commit()
        res = Database.cur.fetchall()
        for n in res:
            print(n)
        dbobj.adminMenu()
    elif prompt==10:
        print"\nyou are logged out\n"
    else:
        print"\nchoose a valid option\n"

def SA_acc(self,username):
    querystring1="select id from TESTDB.CUSTOMER where name='"+username+"'"
    Database.cur.execute(querystring1)
    res1 = Database.cur.fetchall()
    for n in res1:
        id=str(n[0])  
    querystring2="insert into TESTDB.SACC values("+id+",TESTDB.SA_SEQUENCE.NEXTVAL,'"+username+"',500)"
    Database.cur.execute(querystring2)
    Database.con.commit()
    print"\nSavings Account created successfully\nyour account details are as follows:"
    querystring3="select sacc_no,name,sbalance from TESTDB.SACC where name='"+username+"'"
    Database.cur.execute(querystring3)
    res2 = Database.cur.fetchall()
    for n in res2:
        print(n)
def CA_acc(self,username):
    querystring1="select id from TESTDB.CUSTOMER where name='"+username+"'"
    Database.cur.execute(querystring1)
    res1 = Database.cur.fetchall()
    for n in res1:
        id=str(n[0])  
    querystring2="insert into TESTDB.CACC values("+id+",TESTDB.CA_SEQUENCE.NEXTVAL,'"+username+"',500)"
    Database.cur.execute(querystring2)
    Database.con.commit()
    print"\nCurrent Account created successfully\nyour account details are as follows:"
    querystring3="select cacc_no,name,cbalance from TESTDB.CACC where name='"+username+"'"
    Database.cur.execute(querystring3)
    res2 = Database.cur.fetchall()
    for n in res2:
        print(n)
def FD_acc(self,username):
    querystring1="select id from TESTDB.CUSTOMER where name='"+username+"'"
    Database.cur.execute(querystring1)
    res1 = Database.cur.fetchall()
    for n in res1:
        id=str(n[0])  
    querystring2="insert into TESTDB.FDCC values("+id+",TESTDB.FD_SEQUENCE.NEXTVAL,'"+username+"',1000)"
    Database.cur.execute(querystring2)
    Database.con.commit()
    print"\nFD Account created successfully\nyour account details are as follows:"
    querystring3="select fdcc_no,name,fbalance from TESTDB.FDCC where name='"+username+"'"
    Database.cur.execute(querystring3)
    res2 = Database.cur.fetchall()
    for n in res2:
        print(n)
def availLoan(self,username):
    querystring1="select id,sbalance from TESTDB.SACC where name='"+username+"'"
    Database.cur.execute(querystring1)
    res1 = Database.cur.fetchall()
    for n in res1:
        cid=str(n[0])
        bal=str(2*n[1])
    querystring2="insert into TESTDB.LOAN values("+cid+",TESTDB.LOAN_SEQUENCE.NEXTVAL,"+bal+",1,'"+username+"')"
    Database.cur.execute(querystring2)
    Database.con.commit()
    querystring3="select * from TESTDB.LOAN where id='"+cid+"'"
    Database.cur.execute(querystring3)
    print"Loaan details are as follows:\n"
    res2 = Database.cur.fetchall()
    for n in res2:
        print(n)

############################################################

class UserOper(Database): def register(self): print"Enter the following details\n" name=raw_input("Customer name:") DOB=raw_input("Date of birth:") address=raw_input("Address:") phone=raw_input("Phone-no:") password=raw_input("hint:Password must be atlest 6 characters\nPassword:") obj = Database() obj.addCustomer(name,DOB,address,phone,password)

def newAccount(self,username):
    prompt=int(raw_input("""PRESS 1 To open Savings account\n"""+
                         """PRESS 2 To open current account\n"""+
                         """PRESS 3 To open FD account\n"""))
    dbobj=Database()
    if prompt==1:
        print("SA account creation\n")
        dbobj.SA_acc(username)
    elif prompt==2:                                                                     
        print("CA account creation\n")
        dbobj.CA_acc(username)
    elif prompt==3:                                                                     
        print("FD account creation\n")
        dbobj.FD_acc(username)
    else:
        print "You have pressed the wrong key, please try again"
        s=UserOper()
        s.newAccount()                    
    
def subMenu(self,username,password):
        print ("Welcome to PostBank, We care for you\n")                                    
        prompt=int(raw_input("""PRESS 1 To Address Change\n"""+
                             """PRESS 2 To Open new account\n"""+
                             """PRESS 3 To Deposit\n"""+
                             """PRESS 4 To Withdraw\n"""+
                             """PRESS 5 To Transfer Money\n"""+
                             """PRESS 6 To Print Statement\n"""+
                             """PRESS 7 To close account\n"""+
                             """PRESS 8 To avail loan\n"""+
                             """PRESS 9 To logout\n"""))
        dbobj=Database()
        if prompt==1:
            print("Address Change\n")
            newaddr=raw_input("Enter the new address:")
            dbobj.addrChange(username,newaddr)
        elif prompt==2:                                                                     
            s=UserOper()
            s.newAccount(username)
            s.subMenu(username,password)
        elif prompt==3:                                                                     
            dbobj.deposit(username)
            s=UserOper()
            s.subMenu(username,password)
        elif prompt==4:                                                                     
            dbobj.withdraw(username)
            s=UserOper()
            s.subMenu(username,password)
        elif prompt==5:                                                                     
            dbobj.transfer(username)
            s=UserOper()
            s.subMenu(username,password)
        elif prompt==6:                                                                     
            dbobj.statement(username)
            s=UserOper()
            s.subMenu(username,password)
        elif prompt==7:                                                                     
            dbobj.closeacc(username)
            s=UserOper()
            s.subMenu(username,password)
        elif prompt==8:                                                                     
            dbobj.availLoan(username)
            s=UserOper()
            s.subMenu(username,password)
        elif prompt==9:                                                                     
            print"you are logged out"
            s=UserOper()
            s.signIn()
        else:                                                                               
            print "You have pressed the wrong key, please try again"
            s=UserOper()
            s.subMenu(username,password)
        
def signIn(self):
    print("____________SIGN  IN_________________\n")
    username = raw_input("Username:")
    password = raw_input("Password:")
    querystring="select name,password from testdb.customer where name='"+username+"' and password='"+password+"'"
    Database.cur.execute(querystring)
    res = Database.cur.fetchall()
    print(res)
    if res:
        cus=UserOper()
        print"You are logged in"
        cus.subMenu(username,password)
    else:
        print"Invalid Username or Password"
        s=UserOper()
        s.signIn()

#################

class Admin(Database): def aSignIn(self): print("ADMIN SIGN IN_____\n") username = raw_input("Username:") password = raw_input("Password:") querystring="select uname,password from testdb.admin where uname='"+username+"' and password='"+password+"'" Database.cur.execute(querystring) res = Database.cur.fetchall() print(res) if res: hsc=Database() print"You are logged in" hsc.adminMenu()

    else:
        print"Invalid Username or Password"
        a=Admin()
        a.aSignIn()        

##############Main class#####

class Main: def mainMenu(): print ("Welcome to PostBank, We care for you\n")
prompt=int(raw_input("""PRESS 1 To Sign Up\n"""+
"""PRESS 2 To Sign In\n"""+ """PRESS 3 For Admin Sign In\n"""+ """PRESS 4 To Quit\n""")) cus=UserOper()#creates a new customer profile if prompt==1: cus.register() elif prompt==2: cus.signIn() elif prompt==3: adm=Admin() adm.aSignIn() elif prompt==4:
print(".......Thankyou........")
else:
print "You have pressed the wrong key, please try again"
mainMenu()
###########################################################################################

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published