public void printAllAccounts(String customerID) { // Sorts the customer based on ID, then prints the accounts information // change the withdrawal funcitons and deposit functions too ajf.dispose(); ajf = new AdminRunningFrame(this); Collections.sort(cust, Customer.CompareIDs); String searchString = ajf.getCustomerID(); StringBuilder stringResults = new StringBuilder(); String header = header(); stringResults.append(header); for (Customer customer : cust) { String id = customer.returnID(); String name = customer.getName().toUpperCase(); String pin = customer.returnPin(); if (searchString.equals(id)) { ArrayList<Account> accounts = customer.getAccounts(); if (!accounts.isEmpty()) { for (Account account : accounts) { if (account.checkActive()) { String accountNumber = account.returnNumber(); double balance = account.returnBalance(); String balanceAsString = formatter.format(balance); String customerInfo = printAdminInfo(name, id, accountNumber, pin, balanceAsString); stringResults.append(customerInfo); } } } } } String resultsAsString = stringResults.toString(); ajf.printInfo(resultsAsString); }
public void model_admin() { if (ajf != null) { ajf.dispose(); } if (jf != null) { jf.dispose(); } ajf = new AdminRunningFrame(this); ajf.startPage(); if (DBfile.exists()) { try { cust = returnSavedData("p2.dat"); if (cust.isEmpty()) { ajf.errorMessage("There are no customers in this database."); } } catch (ClassNotFoundException | IOException e) { e.printStackTrace(); } } if (logFile.exists()) { try { adminLogs = returnLog("p2.log"); if (adminLogs.isEmpty()) { ajf.errorMessage("No entries have been found!"); } } catch (ClassNotFoundException | IOException e) { e.printStackTrace(); } } }
public void callStartPage() { customer = null; pin = null; if (ajf != null) { ajf.dispose(); } if (jf != null) { jf.dispose(); } jf = new RunningFrame(this); jf.startPage(); }
public void printHighestBalance() { // prints the accounts from highest amount to lowest, with those who have empty accounts last ajf.dispose(); ajf = new AdminRunningFrame(this); StringBuilder stringResults = new StringBuilder(); String header = header(); stringResults.append(header); if (!cust.isEmpty()) { ArrayList<Account> allAccounts = new ArrayList<Account>(); ArrayList<Customer> CustomersNoAccounts = new ArrayList<Customer>(); for (Customer c : cust) { ArrayList<Account> accounts = c.getAccounts(); if (!accounts.isEmpty()) { // Concatenates all the accounts together for easy sorting allAccounts.addAll(accounts); } // Adds customers without accounts to a separate list to be printed at the end of all the // others else { CustomersNoAccounts.add(c); } } if (!allAccounts.isEmpty()) { Collections.sort(allAccounts, Account.CompareBalances); for (Account a : allAccounts) { if (a.checkActive()) { String id = a.getID(); String name = a.getName().toUpperCase(); String pin = a.getPin(); String accountNumber = a.returnNumber(); double balance = a.returnBalance(); String balanceAsString = formatter.format(balance); String customerInfo = printAdminInfo(name, id, accountNumber, pin, balanceAsString); stringResults.append(customerInfo); } } } if (!CustomersNoAccounts.isEmpty()) { Collections.sort(CustomersNoAccounts, Customer.CompareName); for (Customer c : CustomersNoAccounts) { String id = c.returnID(); String name = c.getName().toUpperCase(); String pin = c.returnPin(); String noAccounts = String.format("%-20s %-9s %-10s\n", name, id, pin); stringResults.append(noAccounts); } } String resultsAsString = stringResults.toString(); ajf.printInfo(resultsAsString); } }
public void model_printAllAccounts() { ArrayList<String> cusIDs = new ArrayList<String>(100); cusIDs.add("Accounts:"); Collections.sort(cust, Customer.CompareIDs); for (Customer c : cust) { String id = c.returnID(); cusIDs.add(id); } if (ajf != null) { ajf.dispose(); } ajf = new AdminRunningFrame(this); ajf.showOneCustomerScreen(cusIDs); }
public void printTimeStamp() { ajf.dispose(); ajf = new AdminRunningFrame(this); StringBuilder stringResults = new StringBuilder(); // creates a new header String Tim = "[Time Stamp]"; String transID = "[Transaction ID]"; String CusID = "[ID #]"; String CusAcct = "[Account #]"; String transAmount = "[Amount]"; String header = String.format("%-30s %-20s %-10s %10s %10s\n", Tim, transID, CusID, CusAcct, transAmount); stringResults.append(header); if (cust.isEmpty()) { ajf.errorMessage("There are no customers in this database."); } if (adminLogs.isEmpty()) { ajf.errorMessage("No entries have been found!"); } else { Collections.sort(adminLogs, AdminLog.CompareTimeStamp); for (AdminLog a : adminLogs) { long timestamp = a.getTimestamp(); String date = dateFormat.format(timestamp); int transactionID = a.getTransactionID(); String customerID = a.getCustomerID(); String accountID = a.getAccountNum(); double amount = a.getAmount(); String newLine = String.format( "%-30s %-20d %-10s %10s %10s\n", date, transactionID, customerID, accountID, amount); stringResults.append(newLine); } String resultsAsString = stringResults.toString(); ajf.printInfo(resultsAsString); } }
public void printByCustomerName() { // Prints the database info by customer's name in ascending order Collections.sort(cust, Customer.CompareName); ajf.dispose(); ajf = new AdminRunningFrame(this); StringBuilder stringResults = new StringBuilder(); String header = header(); stringResults.append(header); if (!cust.isEmpty()) { for (Customer customer : cust) { String id = customer.returnID(); String name = customer.getName().toUpperCase(); String pin = customer.returnPin(); ArrayList<Account> accounts = customer.getAccounts(); if (!accounts.isEmpty()) { for (Account account : accounts) { if (account.checkActive()) { String accountNumber = account.returnNumber(); double balance = account.returnBalance(); String balanceAsString = formatter.format(balance); String customerInfo = printAdminInfo(name, id, accountNumber, pin, balanceAsString); stringResults.append(customerInfo); } } } else { // Still prints customers who have created customer accounts but not set up any // checking/savings String noAccounts = String.format("%-20s %-9s %-10s\n", name, id, pin); stringResults.append(noAccounts); } } } String resultsAsString = stringResults.toString(); ajf.printInfo(resultsAsString); }