Advertisement
arafaee

Withdrawal.java

May 13th, 2017
943
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.55 KB | None | 0 0
  1. /**  
  2.   * Withdrawal.java
  3.   *  
  4.   * @author Hafara Firdausi/ 5115100043
  5.   * @version 01
  6.   */
  7.  
  8. public class Withdrawal extends Transaction
  9. {
  10.     private int amount;
  11.     private Keypad keypad;
  12.     private CashDispenser cashDispenser;
  13.     private final static int CANCELED = 6;
  14.    
  15.     public Withdrawal(int userAccountNumber, Screen atmScreen, BankDatabase atmBankDatabase, Keypad atmKeypad, CashDispenser atmCashDispenser)
  16.     {
  17.         super(userAccountNumber, atmScreen, atmBankDatabase);
  18.         keypad = atmKeypad;
  19.         cashDispenser = atmCashDispenser;
  20.     }
  21.    
  22.     @Override
  23.     public void execute()
  24.     {
  25.         boolean cashDispensed = false;
  26.         double availableBalance;
  27.         BankDatabase bankDatabase = getBankDatabase();
  28.         Screen screen = getScreen();
  29.        
  30.         do
  31.         {
  32.             amount = displayMenuOfAmounts();
  33.             if(amount != CANCELED)
  34.             {
  35.                 availableBalance = bankDatabase.getAvailableBalance(getAccountNumber());
  36.                 if(amount <= availableBalance)
  37.                 {
  38.                     if(cashDispenser.isSufficientCashAvailable(amount))
  39.                     {
  40.                         bankDatabase.debit(getAccountNumber(), amount);
  41.                         cashDispenser.dispenseCash(amount);
  42.                         cashDispensed = true;
  43.                         screen.displayMessageLine("\nUang anda telah dikeluarkan. Silahkan ambil sekarang.");
  44.                     }
  45.                     else
  46.                     {
  47.                         screen.displayMessageLine("\nUang tunai didalam ATM tidak mencukupi.");
  48.                         screen.displayMessageLine("\nSilahkan pilih nilai yang lebih kecil.");
  49.                     }
  50.                 }
  51.                 else
  52.                 {
  53.                     screen.displayMessageLine("\nSaldo anda tidak mencukupi.");
  54.                     screen.displayMessageLine("\nSilahkan pilih nilai yang lebih kecil.");
  55.                 }
  56.             }
  57.             else
  58.             {
  59.                 screen.displayMessageLine("\nMembatalkan transaksi...");
  60.                 return;
  61.             }
  62.         }
  63.         while(!cashDispensed);
  64.     }
  65.    
  66.     private int displayMenuOfAmounts()
  67.     {
  68.         int userChoice = 0;
  69.         Screen screen = getScreen();
  70.        
  71.         int[] amounts = {0, 250000, 500000, 750000, 1000000, 1500000};
  72.         while(userChoice == 0)
  73.         {
  74.             screen.displayMessageLine("\nMenu Penarikan : ");
  75.             screen.displayMessageLine("1. Rp250.000");
  76.             screen.displayMessageLine("2. Rp500.000");
  77.             screen.displayMessageLine("3. Rp750.000");
  78.             screen.displayMessageLine("4. Rp1.000.000");
  79.             screen.displayMessageLine("5. Rp1.500.000");
  80.             screen.displayMessageLine("6. Membatalkan transaksi");
  81.             screen.displayMessage("\nSilahkan pilih jumlah penarikan yang diinginkan: ");
  82.             int input = keypad.getInput();
  83.            
  84.             switch(input)
  85.             {
  86.                 case 1:
  87.                 case 2:
  88.                 case 3:
  89.                 case 4:
  90.                 case 5:
  91.                     userChoice = amounts[input];
  92.                     break;
  93.                 case CANCELED :
  94.                     userChoice = CANCELED;
  95.                     break;
  96.                 default :
  97.                     screen.displayMessageLine("\nPilihan tidak valid.");
  98.                     screen.displayMessageLine("Silahkan coba lagi.");
  99.             }  
  100.         }
  101.         return userChoice;  
  102.     }
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement