Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Withdrawal extends Transaction
- {
- // instance variables - replace the example below with your own
- private int accountNumber;
- private Keypad keypad;
- private CashDispenser cashDispenser;
- private final static int CANCELED = 6;
- /**
- * Constructor for objects of class Withdrawal
- */
- public Withdrawal(int userAccountNumber, Screen atmScreen, BankDatabase atmBankDatabase, Keypad atmKeypad, CashDispenser atmCashDispenser)
- {
- super(userAccountNumber,atmScreen,atmBankDatabase);
- keypad = atmKeypad;
- cashDispenser = atmCashDispenser;
- }
- @Override
- /**
- * An example of a method - replace this comment with your own
- *
- * @param y a sample parameter for a method
- * @return the sum of x and y
- */
- public void execute()
- {
- boolean cashDispended = 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.dispenserCash(amount);
- casDispensed = true;
- screen.displayMessageLine("\nYour cash has been"+"dispenser.Please take your cash now.");
- }
- else screen.displayMessageLine("\nInsufficient cash available in the ATM."+"\n\nPlease choose a smaller amount.");
- }
- else{
- screen.displayMessageLine("\nInsufficient funds in your account."+"\n\nPlease choose a smaller amount.");
- }
- }
- else{
- screen.displayMessageLine("\nCanceling transaction...");
- 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("\nWithdrawal Menu:");
- screen.displayMessageLine("1-$20");
- screen.displayMessageLine("2-$40");
- screen.displayMessageLine("3-$60");
- screen.displayMessageLine("4-$100");
- screen.displayMessageLine("5-$200");
- screen.displayMessageLine("6-Cancel transaction");
- screen.displayMessage("\nChoose a withdrawal amount:");
- 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("\nInvalid selection.Try again.");
- }
- }
- return userChoice;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment