diff --git a/orders.txt b/orders.txt new file mode 100644 index 0000000..14abfb1 --- /dev/null +++ b/orders.txt @@ -0,0 +1,12 @@ +12.12.2022;1234567;Vegan;Dessert V +12.12.2022;7654321;Vegan;Dessert V +12.12.2022;123;Vegetarisch;Dessert V +12.12.2022;9999999;Fleisch;Dessert +12.12.2022;1234567;Vegan;Dessert V +12.12.2022;7654321;Vegan;Dessert V +12.12.2022;123;Vegetarisch;Dessert V +12.12.2022;9999999;Fleisch;Dessert +12.12.2022;1234567;Vegan;Dessert V +12.12.2022;7654321;Vegan;Dessert V +12.12.2022;123;Vegetarisch;Dessert V +12.12.2022;1234;Fleisch;Dessert \ No newline at end of file diff --git a/orders2.txt b/orders2.txt new file mode 100644 index 0000000..d669447 --- /dev/null +++ b/orders2.txt @@ -0,0 +1,12 @@ +12.12.2022;1234567;Vegan;Dessert V +12.12.2022;7654321;Vegan;Dessert V +12.12.2022;123;Vegetarisch;Dessert V +12.12.2022;9999999;Fleisch;Dessert +12.12.2022;1234567;Vegan;Dessert V +12.12.2022;7654321;Vegan;Dessert V +12.12.2022;123;Vegetarisch;Dessert V +12.12.2022;9999999;Fleisch;Dessert +12.12.2022;1234567;Vegan;Dessert V +12.12.2022;7654321;Vegan;Dessert V +12.12.2022;123;Vegetarisch;Dessert V +12.12.2022;1234;Fleisch;Dessert diff --git a/out/production/VPR_SCRIPT/Data.class b/out/production/VPR_SCRIPT/Data.class index b6b12b9..6447c1a 100644 Binary files a/out/production/VPR_SCRIPT/Data.class and b/out/production/VPR_SCRIPT/Data.class differ diff --git a/out/production/VPR_SCRIPT/Execute.class b/out/production/VPR_SCRIPT/Execute.class index 659f006..46aa5f6 100644 Binary files a/out/production/VPR_SCRIPT/Execute.class and b/out/production/VPR_SCRIPT/Execute.class differ diff --git a/src/Data.java b/src/Data.java index a420556..058ee5b 100644 --- a/src/Data.java +++ b/src/Data.java @@ -308,5 +308,55 @@ public class Data { } return inputValid; } + + /** + * The method changes the orders.txt file by removing canceled orders + * + * @return ArrayList\ changedOrderList + * @author Felix Düsterhaus + */ + + public ArrayList changeOrder(String userLogin) { + + /* + File orderFile = new File("C:/Unterricht/VPR/orders.txt"); + if (orderFile.delete()) { + System.out.println("Datei gelöscht: " + orderFile.getName()); + } else { + System.out.println("Fehler, " + orderFile.getName() + " nicht gelöscht."); + } + */ + + ArrayList changedOrderList = new ArrayList<>(); + List rows = getRows(); + int changedEntries = 0; + + for (String row : rows) { + String[] parts = row.split(";"); + + String date = parts[0]; + String user = parts[1]; + String mealtyp = parts[2]; + String deserttyp = parts[3]; + if(!userLogin.equals(user)) { + changedOrderList.add(new Order(date, user, mealtyp, deserttyp)); + } else { + changedEntries++; + } + } + + try { + FileWriter writer = new FileWriter("orders2.txt"); + for(Order str: changedOrderList) { + writer.write(str + System.lineSeparator()); + } + writer.close(); + System.out.println("Daten gelöscht"); + System.out.println(changedEntries + " Einträge entfernt."); + } catch (IOException e) { + e.printStackTrace(); + } + return changedOrderList; + } } diff --git a/src/Execute.java b/src/Execute.java index 1d4415a..eb105e8 100644 --- a/src/Execute.java +++ b/src/Execute.java @@ -1,3 +1,5 @@ +import java.io.IOException; +import java.nio.file.Path; import java.util.ArrayList; import java.util.Scanner; @@ -5,7 +7,7 @@ import java.util.Scanner; * The class Execute is the execution file for the whole program. */ public class Execute { - public static void main(String[] args) { + public static void main(String[] args) throws IOException { //EXECUTE MENU OVERVIEW Data data = new Data("menue.txt"); ArrayList menu = data.readMenu(); @@ -45,5 +47,29 @@ public class Execute { String password = leser.nextLine(); login.toLogin(userData.readUser(), password, phoneNumber); + + /** + * Test zum Daten löschen + * @author Felix Düsterhaus + */ + Data orderData = new Data("orders2.txt"); + System.out.print("Möchten Sie Einträge löschen? (Y/N) "); + String orderChangeDecision = leser.nextLine(); + if (orderChangeDecision.equals("Y") || orderChangeDecision.equals("y")) { + ArrayList changedOrderList = orderData.changeOrder(phoneNumber); + } else if (orderChangeDecision.equals("N") || orderChangeDecision.equals("n")) { + System.out.println("Daten werden nicht geändert."); + } + while(!(orderChangeDecision.equals("Y") || orderChangeDecision.equals("y") || orderChangeDecision.equals("N") || orderChangeDecision.equals("n"))) { + System.out.println("Bitte eine gültige Aussage treffen.\n"); + System.out.print("Möchten Sie Einträge löschen? (Y/N) "); + orderChangeDecision = leser.nextLine(); + + if (orderChangeDecision.equals("Y") || orderChangeDecision.equals("y")) { + ArrayList changedOrderList = orderData.changeOrder(phoneNumber); + } else if (orderChangeDecision.equals("N") || orderChangeDecision.equals("n")) { + System.out.println("Daten werden nicht geändert."); + } + } } }