farizmpr

Untitled

Oct 19th, 2017
356
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.20 KB | None | 0 0
  1. public class Deposit extends Transaction
  2. {
  3.     private double amount;      // amount to deposit
  4.     private Keypad keypad;      // references to keypad
  5.     private DepositSlot depositSlot;    // references to deposit slot
  6.     private final static int CANCELED = 0;  // constant for cancel option
  7.    
  8.     // Deposit constructor
  9.     public Deposit(int userAccountNumber, Screen atmScreen, BankDatabase atmBankDatabase, Keypad atmKeypad, DepositSlot atmDepositSlot){
  10.         // initializes superclass variables
  11.         super(userAccountNumber, atmScreen, atmBankDatabase);
  12.        
  13.         // initialize references to keypad and deposit slot
  14.         keypad = atmKeypad;
  15.         depositSlot = atmDepositSlot;
  16.     }   // end Deposit constructor
  17.    
  18.     // perform transaction
  19.     @Override
  20.     public void execute(){
  21.         BankDatabase bankDatabase = getBankDatabase();      // get reference
  22.         Screen screen = getScreen();        // get reference
  23.        
  24.         amount = promptForDepositAmount();  // get deposit amount from user
  25.        
  26.         // check whether the user entered a deposit amount or canceled
  27.         if(amount != CANCELED){
  28.             // request deposit envelope containing specified amount
  29.             screen.displayMessage("\nPlease insert a deposit envelope containing ");
  30.             screen.displayDollarAmount(amount);
  31.             screen.displayMessage(".");
  32.            
  33.             // receive deposit envelope
  34.             boolean envelopeReceived = depositSlot.isEnvelopeReceived();
  35.            
  36.             // check whether deposit envelope was received
  37.             if(envelopeReceived){
  38.                 screen.displayMessageLine("\nYour envelope has been received.");
  39.                 screen.displayMessage("NOTE: The money just deposited will not be available until we verify the amount");
  40.                 screen.displayMessage("of any enclosed cash and your checks clear.");
  41.                
  42.                 // credit account to reflect the deposit
  43.                 bankDatabase.credit(getAccountNumber(), amount);
  44.             }   // end if
  45.             else{
  46.                 // deposit envelope not received
  47.                 screen.displayMessageLine("\nYou did not insert an envelope");
  48.                 screen.displayMessageLine("So, the ATM has canceled your transaction.");
  49.             }   // end else
  50.         }   // end if
  51.         else{
  52.             // user canceled instead of entering amount
  53.             screen.displayMessageLine("\nCanceling transaction...");
  54.         }   // end else
  55.     }   // end method execute
  56.    
  57.     // prompt user to enter a deposit amount in cents
  58.     private double promptForDepositAmount(){
  59.         Screen screen = getScreen();    // get references to screen
  60.        
  61.         // display the prompt
  62.         screen.displayMessage("\nPlease enter a deposit amount in CENTS (or 0 to cancel)");
  63.         int input = keypad.getInput();  // receive input of deposit amount
  64.        
  65.         // check whether the user canceled or entered a valid amount
  66.         if(input == CANCELED) return CANCELED;
  67.         else{
  68.             return (double) input / 100;        // return dollar amount
  69.         }   // end else
  70.     }   // end method
  71. }   // end class Deposit
Add Comment
Please, Sign In to add comment