Untitled
unknown
plain_text
3 years ago
5.7 kB
14
Indexable
public void shopping() {
if (fa.isEmpty()) { // Check if the fruit store is empty
System.out.println("The fruit store is empty, please add fruit!");
} else {
String customer = null; // Initialize the customer's name
printFruitList(); // Print the list of available fruits
String continueShopping = "";
do {
int id = inputIDOrder(); // Get the fruit ID from the user
System.out.println("Input quantity:");
inputQuantity(id); // Get the quantity from the user
for (int i = 0; i < fa.size(); i++) { // Loop through the list of fruits
if (fa.get(i).getFruitID() == id && fa.get(i).getQuantity() >= quantity) { // Check if the fruit ID matches and if there's enough quantity
double price = fa.get(i).getPrice(); // Get the price of the fruit
Order o = new Order(id, fa.get(i).getFruitName(), quantity, price, customer); // Create an order
o.print(); // Print the order details
System.out.println("Do you want to buy? (Yes/No)");
boolean isValid = true;
String response = "";
do {
response = sc.nextLine(); // Get user input
if (!(response.equalsIgnoreCase("y") || response.equalsIgnoreCase("n") || response.equalsIgnoreCase("yes") || response.equalsIgnoreCase("no"))) { // Check if input is valid
System.out.println("Please input 'yes' or 'no': ");
isValid = false;
} else {
isValid = true;
}
} while (!isValid);
if (response.equalsIgnoreCase("y") || response.equalsIgnoreCase("yes")) { // If user wants to buy
System.out.println("Input your name: ");
customer = vd.checkInputWord(); // Get customer name
lo.add(new Order(id, fa.get(i).getFruitName(), quantity, price, customer)); // Add order to the list
ht.put(customer, lo); // Add order to the hash table
System.out.println("Add Successful!!!");
// update quantity
Fruit fruit = fa.get(i); // Get the fruit object
fruit.setQuantity(fruit.getQuantity() - quantity); // Update the quantity of the fruit
if (fruit.getQuantity() == 0) { // If the fruit is out of stock
fa.remove(fruit); // Remove the fruit from the list
System.out.println("The fruit is out of stock and has been removed from the list.");
printFruitList(); // Print the updated list of fruits
}
}
break; // Exit loop if the fruit is found and quantity is enough
} else if (i == fa.size() - 1) { // If the fruit is not found or there's not enough quantity
System.out.println("The store does not have enough quantity to meet your needs.");
System.out.print("Please enter a smaller quantity: ");
}
}
// Ask if the user wants to continue shopping
do {
System.out.println("Do you want to continue shopping? (Yes/No)");
continueShopping = sc.nextLine();
} while (!continueShopping.equalsIgnoreCase("yes")
&& !continueShopping.equalsIgnoreCase("y")
&& !continueShopping.equalsIgnoreCase("no")
&& !continueShopping.equalsIgnoreCase("n"));
} while (continueShopping.equalsIgnoreCase("yes") || continueShopping.equalsIgnoreCase("y"));
}
}
/**
* view order. viewOrderByCustomer
*/
public String inputNameCustomer() {
System.out.println("Input your name: ");
String customer = vd.checkInputName();
lo.add(new Order(fruitID, fruitName, quantity, price, customer));
ht.put(customer, lo);
System.out.println("Add Successful.");
return customer;
}
/**
* view order fun2.
*/
public void viewOrderByCustomer() {
if (lo.isEmpty()) {
System.out.println("No orders.");
} else {
double total = 0;
String currentCustomer = null;
for (Order order : lo) {
if (!order.getCustomer().equals(currentCustomer)) { // check input name
if (currentCustomer != null) {
System.out.printf("|%54s|%7s$|\n", "Total", total);
total = 0;
}
System.out.println("Customer: " + order.getCustomer()); // print
currentCustomer = order.getCustomer();
System.out.printf("|%-5s|%-10s|%20s|%16s|%8s|\n", "ID.", "Product", "Quantity", "Price", "Amount");
}
if (order.getCustomer().equalsIgnoreCase(currentCustomer)) {
System.out.printf("|%-5s|%-10s|%20s|%15s$|%7s$|\n", order.getFruitID(), order.getFruitName(), order.getQuantity(), order.getPrice(), order.getPrice() * order.getQuantity());
total += order.getPrice() * order.getQuantity();
}
}
System.out.printf("|%54s|%7s$|\n", "Total", total);
}
}Editor is loading...