#!/usr/bin/env python3 from view.base_view import BaseView from view.account_view import AccountView from view.branch_view import BranchView from view.login_view import LoginView from view.person_view import PersonView from view.main_view import MainView if __name__ == '__main__': # base_view = BaseView(70) # base_view.print_header('UNIT TEST') # account_view = AccountView() # account_view.create_account() # # account_view.create_transaction('Deposit') # branch_view = BranchView() # branch_view.create_branch() # login_view = LoginView() # login_view.show_login() # person_view = PersonView() # person_view.create_person('Manager') main_view = MainView() main_view.show_main_menu('admin') input() main_view.show_admin_menu()
class MainController(): def __init__(self): self.view = MainView() def start_session(self): # profile may be: # - a string if loging is invalid OR user is ADMIN # - an Account object, if a customer performed a successful login # - a person object, if a manager performed a successful login profile = self.login() if profile == 'invalid': return option = 1 while option > 0: #Shows main menu according to profile option = self.view.show_main_menu(profile) #client - account deposit if option == 1: AccountController().create_transaction(profile, 'Deposit') #client - account withdrawal elif option == 2: AccountController().create_transaction(profile, 'Withdrawal') #client - account balance elif option == 3: AccountController().list_balance(profile) #client - account history elif option == 4: AccountController().list_statement(profile) #admin - create branch elif option == 100: BranchController().create_branch() #admin - list branches elif option == 101: BranchController().list_branches() #admin - create manager elif option == 102: PersonController().create_person('Manager') #admin - list managers elif option == 103: PersonController().list_people('Manager') #manager-create account elif option == 200: AccountController().create_account() #manager-list accounts elif option == 201: AccountController().list_client_accounts() def login(self): user, password = LoginView().show_login() #if user in ['admin', 'manager']: if user == 'admin': return user #Validates login with DB. person_dal = PersonDAL() person = person_dal.select_by_login(user) if person != None: valid_login = person.login == user and person.password == password if valid_login and person.role == 'C': account_dal = ClientAccountDAL() client_account = account_dal.select_client_account(person.id) print('select exec') if client_account != None: return client_account if valid_login and person.role == 'M': return person self.view.show_message('Error', 'Invalid login.', True) return 'invalid'