azkiatunnisa

Untitled

Oct 26th, 2017
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.38 KB | None | 0 0
  1. public class Withdrawal extends Transaction
  2. {
  3.     // instance variables - replace the example below with your own
  4.     private int accountNumber;
  5.     private Keypad keypad;
  6.     private CashDispenser cashDispenser;
  7.    
  8.     private final static int CANCELED = 6;
  9.    
  10.  
  11.     /**
  12.      * Constructor for objects of class Withdrawal
  13.      */
  14.     public Withdrawal(int userAccountNumber, Screen atmScreen, BankDatabase atmBankDatabase, Keypad atmKeypad, CashDispenser atmCashDispenser)
  15.     {
  16.         super(userAccountNumber,atmScreen,atmBankDatabase);
  17.         keypad = atmKeypad;
  18.         cashDispenser = atmCashDispenser;
  19.     }
  20.     @Override
  21.     /**
  22.      * An example of a method - replace this comment with your own
  23.      *
  24.      * @param  y  a sample parameter for a method
  25.      * @return    the sum of x and y
  26.      */
  27.     public void execute()
  28.     {
  29.         boolean cashDispended = false;
  30.         double availableBalance;
  31.        
  32.         BankDatabase bankDatabase = getBankDatabase();
  33.         Screen screen = getScreen();
  34.        
  35.         do{
  36.             amount = displayMenuOfAmounts();
  37.             if(amount!=CANCELED){
  38.                 availableBalance = bankDatabase.getAvailableBalance(getAccountNumber());
  39.                 if(amount <= availableBalance){
  40.                     if(cashdispenser.isSufficientCashAvailable(amount)){
  41.                         bankDatabase.debit(getAccountNumber(),amount);
  42.                         cashDispenser.dispenserCash(amount);
  43.                         casDispensed = true;
  44.                        
  45.                         screen.displayMessageLine("\nYour cash has been"+"dispenser.Please take your cash now.");
  46.                     }
  47.                     else screen.displayMessageLine("\nInsufficient cash available in the ATM."+"\n\nPlease choose a smaller amount.");
  48.                 }
  49.                 else{
  50.                     screen.displayMessageLine("\nInsufficient funds in your account."+"\n\nPlease choose a smaller amount.");
  51.                 }
  52.             }
  53.             else{
  54.                 screen.displayMessageLine("\nCanceling transaction...");
  55.                 return;
  56.             }
  57.         }
  58.         while(!cashDispensed);
  59.     }
  60.     private int displayMenuOfAmounts(){
  61.         int userChoice = 0;
  62.         Screen screen = getScreen();
  63.         int[] amounts = {0,20,40,60,100,200};
  64.         while(userChoice == 0){
  65.             screen.displayMessageLine("\nWithdrawal Menu:");
  66.             screen.displayMessageLine("1-$20");
  67.             screen.displayMessageLine("2-$40");
  68.             screen.displayMessageLine("3-$60");
  69.             screen.displayMessageLine("4-$100");
  70.             screen.displayMessageLine("5-$200");
  71.             screen.displayMessageLine("6-Cancel transaction");
  72.             screen.displayMessage("\nChoose a withdrawal amount:");
  73.            
  74.             int input = keypad.getInput();
  75.            
  76.             switch(input){
  77.                 case 1:
  78.                 case 2:
  79.                 case 3:
  80.                 case 4:
  81.                 case 5:
  82.                     userChoice = amounts[input];
  83.                     break;
  84.                 case CANCELED:
  85.                     userChoice = CANCELED;
  86.                     break;
  87.                 default:
  88.                     screen.displayMessageLine("\nInvalid selection.Try again.");
  89.                 }
  90.             }
  91.             return userChoice;
  92.         }
  93.     }
Advertisement
Add Comment
Please, Sign In to add comment