Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Withdraw extends Transaction
- {
- private int amount;
- private Keypad keypad;
- private CashDispenser cashDispenser;
- private final static int CANCELED = 6;
- public Withdraw(int userAccountNumber, Screen atmScreen, BankDatabase atmBankDatabase, Keypad atmKeypad, CashDispenser atmCashDispenser)
- {
- super( userAccountNumber, atmScreen, atmBankDatabase );
- keypad = atmKeypad;
- cashDispenser = atmCashDispenser;
- }
- public void execute()
- {
- boolean cashDispensed = false;
- double availableBalance;
- BankDatabase bankDatabase = getBankDatabase();
- Screen screen = getScreen();
- do
- {
- amount = displayMenuOfAmounts();
- if(amount != CANCELED)
- {
- availableBalance = bankDatabase.getAvailableBalance(getAccountNumber());
- if(amount <= availableBalance)
- {
- if(cashDispenser.isSufficientCashAvailable( amount ) )
- {
- bankDatabase.debit(getAccountNumber(), amount);
- cashDispenser.dispenseCash(amount);
- cashDispensed= true;
- screen.displayMessageLine("\nUang anda telah" + " dikeluarkan. Silahkan ambil uang anda.");
- }
- else
- {
- screen.displayMessageLine("\nUang tidak cukup tersedia di ATM." + "\n\nSilakan pilih jumlah yang lebih kecil.");
- }
- }
- else
- {
- screen.displayMessageLine("\nUang di akun anda tidak mencukupi." + "\n\nSilakan pilih jumlah yang lebih kecil.");
- }
- }
- else
- {
- screen.displayMessageLine( "\nMembatalkan Transaksi..." );
- return;
- }
- }while (!cashDispensed);
- }
- private int displayMenuOfAmounts()
- {
- int userChoice = 0;
- Screen screen = getScreen();
- int[] amounts = {0,20,40,60,100,200};
- while(userChoice == 0)
- {
- screen.displayMessageLine( "\nMenu Penarikan:" );
- screen.displayMessageLine( "1 - $20" );
- screen.displayMessageLine( "2 - $40" );
- screen.displayMessageLine( "3 - $60" );
- screen.displayMessageLine( "4 - $100" );
- screen.displayMessageLine( "5 - $200" );
- screen.displayMessageLine( "6 - Membatalkan Transaksi" );
- screen.displayMessage( "\nPilih menu penarikan: " );
- int input = keypad.getInput();
- switch(input)
- {
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- userChoice = amounts[input];
- break;
- case CANCELED:
- userChoice = CANCELED;
- break;
- default:
- screen.displayMessageLine("\nPilihan anda salah. Silahkan coba lagi.");
- }
- }
- return userChoice;
- }
- }
Add Comment
Please, Sign In to add comment