yoshiputri

Untitled

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