Repository navigation
Expand file tree
/
Copy pathDeposit.java
More file actions
81 lines (70 loc) · 2.69 KB
/
Copy pathDeposit.java
File metadata and controls
81 lines (70 loc) · 2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/*
* Filename: Deposit.java
*
* Description: 13.23 - Represents a deposit ATM transaction
*
* Created: 05/12/15 05:04:48
* Revision: none
*
* @Author: Siidney Watson - [email protected]
* @Version: 1.0
*
* =====================================================================================
*/
public class Deposit extends Transaction{
private double amount;
private Keypad keypad;
private DepositSlot depositSlot;
private final static int CANCELED = 0;
// CONSTRUCTOR
public Deposit(int userAccountNumber, Screen atmScreen,
BankDatabase atmBankDatabase, Keypad atmKeypad,
DepositSlot atmDepositSlot){
super(userAccountNumber, atmScreen, atmBankDatabase);
keypad = atmKeypad;
depositSlot = atmDepositSlot;
}
// perform transaction
@Override
public void execute(){
BankDatabase bankDatabase = getBankDatabase();
Screen screen = getScreen();
amount = promptForDepositAmount();
// check whether user entered deposit amount or canceled
if(amount != CANCELED){
screen.displayMessage("\nPlease insert a deposit envelope containing ");
screen.displayDollarAmount(amount);
screen.displayMessageLine(".");
// receive deposit envelope
boolean envelopeReceived = depositSlot.isEnvelopeReceived();
// check whether deposit envelope was received
if(envelopeReceived){
screen.displayMessageLine("\nYour envelope has been " +
"received.\nNOTE: The money just deposited will not " +
"be available until we verify the amount of any " +
"enclosed cash and your checks clear.");
// credit account to reflect the deposit
bankDatabase.credit(getAccountNumber(), amount);
}else{
screen.displayMessageLine("\nYou did not insert an " +
"envelope, so the ATM has canceled your transaction.");
}
}else{
screen.displayMessageLine("\nCancelling transaction...");
}
}
// prompt user to enter a deposit amount in cents
private double promptForDepositAmount(){
Screen screen = getScreen();
// display the prompt
screen.displayMessage("\nPlease enter a deposit amount in " +
"CENTS (0 to cancel)");
int input = keypad.getInput();
// check whether user canceled or entered valid amount
if(input == CANCELED){
return CANCELED;
}else{
return (double)input / 100;
}
}
}