-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTable.java
More file actions
142 lines (127 loc) · 3.42 KB
/
Table.java
File metadata and controls
142 lines (127 loc) · 3.42 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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
// Jason Jasper
// David Martin-Vaquero
// Jared Mclaren
// Regine Villongco
// Chemen Wong
/**
* IS 380 Final Project - Restaurant Point of Sale program.
* @author Jason Jasper, David Martin-Vaquero, Jared Mclaren, Regine Villongco, Chemen Wong
* @version 0.1.0
*
* This is the Table class. This class controls orders for every table and provides functions for
* checking to see if a table is available and instantiating new instances of Order.
*/
public class Table {
private int tableNumber;
private boolean hasOrder;
private Order thisOrder;
/**
Constructor for table, no parameters passed.
*/
public Table() {
}
/**
Constructor for table.
@param A table number.
*/
public Table(int tableNum) {
hasOrder = false;
tableNumber = tableNum;
System.out.println("Table #"+tableNum+" Created!!");
}
/**
Method for creating a new order.
@param A table number.
*/
protected void startNewOrder(int tableNumber) {
Order order = new Order(tableNumber);
//this.setAvailable(true);
hasOrder = true;
thisOrder = order;
System.out.println("Order started for Table "+tableNumber);
}
/**
Method to remove an order.
*/
protected void disposeOrder() {
int orderNum = thisOrder.getOrderNumber();
System.out.println("Order #" + orderNum + " Being destroyed.");
thisOrder = null; //Set order to NULL for garbage collection
hasOrder = false;
}
/**
Method to get an order note.
@return An order note.
*/
protected String getOrderNote() {
return thisOrder.getOrderNote();
}
/**
Method to set an order note.
@param An order note.
*/
protected void setOrderNote(String note) {
thisOrder.setOrderNote(note);
}
/**
Method to set table availability.
@param Status of table availability.
*/
private void setAvailable (boolean status) {
hasOrder = status;
}
/**
Method to get subtotal.
@param A table number.
*/
protected void getSubtotal(int tableNumber) {
System.out.println(String.format("%.2f", thisOrder.getSubTotal()));
}
/**
Method to get sub amount.
@param A table number.
*/
protected double getSubAmount(int tableNumber) {
return thisOrder.getSubTotal();
}
/**
Method to add food items to order.
@param An order index number.
@param Quantity of food items.
*/
protected void addFoodItemsToOrder(int orderIndex, int quantity) {
for (int i=0; i<quantity; i++) {
thisOrder.addFoodItems(orderIndex);
}
}
/**
Method to add beverage items to order.
@param An order index number.
@param Quantity of beverage items.
*/
protected void addBeverageItemsToOrder(int orderIndex, int quantity) {
for (int i=0; i<quantity; i++) {
thisOrder.addBeverageItems(orderIndex);
}
}
protected void subFoodItemsFromOrder(int itemIndex) {
thisOrder.subFoodItems(itemIndex);
}
/**
Method to get list of items.
@return Array of items in the order.
*/
protected String[] getItemList() {
return thisOrder.getOrderItemList();
}
/**
Method to check if table is available.
@return Boolean value for table availability.
*/
public boolean isAvailable () {
return !hasOrder;
}
public void compFoodItemsFromOrder(int itemIndex) {
thisOrder.compFoodItems(itemIndex);
}
}