From bf99dc901c50077d722e7c772f839d9137ca4118 Mon Sep 17 00:00:00 2001 From: PC Date: Thu, 12 Dec 2024 20:05:29 +0100 Subject: [PATCH] =?UTF-8?q?Neue=20Funktion:=20Man=20kann=20jetzt=20Bestell?= =?UTF-8?q?ungen=20l=C3=B6schen,=20au=C3=9Ferdem=20wurde=20die=20"Bestellu?= =?UTF-8?q?ngen=20anzeigen"=20Funktion=20=C3=BCberarbeitet.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Restaurantverwaltung/src/Bestellsystem.java | 35 ++++++++++ Restaurantverwaltung/src/Bestellung.java | 65 ++++++++++++++----- Restaurantverwaltung/src/Bestellungen.txt | 11 +--- Restaurantverwaltung/src/Menu.java | 2 +- Restaurantverwaltung/src/Order.java | 15 ----- .../src/RestaurantManagement.java | 1 - .../src/SystemController.java | 6 +- Restaurantverwaltung/src/stock.txt | 6 +- Restaurantverwaltung/src/users.txt | 2 +- 9 files changed, 96 insertions(+), 47 deletions(-) delete mode 100644 Restaurantverwaltung/src/Order.java diff --git a/Restaurantverwaltung/src/Bestellsystem.java b/Restaurantverwaltung/src/Bestellsystem.java index 114edac..3645f60 100644 --- a/Restaurantverwaltung/src/Bestellsystem.java +++ b/Restaurantverwaltung/src/Bestellsystem.java @@ -18,6 +18,7 @@ public class Bestellsystem { private static Menu menu = new Menu(); private final String STOCK_FILE = "src/stock.txt"; HashMap stock = new HashMap<>(); + private final static String FILE_PATH = "src/Bestellungen.txt"; public static void erstelleBestellung() { System.out.print("Bitte gib die Tischnummer ein: "); @@ -89,6 +90,40 @@ public class Bestellsystem { } } + + public static void loescheBestellung() { + ladeUndZeigeBestellungen(); + + System.out.print("Gib die ID der zu löschenden Bestellung ein: "); + String id = scanner.nextLine(); + + Bestellung zuLoeschen = null; + + for (Bestellung bestellung : bestellungen) { + if (bestellung.getId().equals(id)) { + zuLoeschen = bestellung; + break; + } + } + + if (zuLoeschen != null) { + bestellungen.remove(zuLoeschen); + aktualisiereDatei(); + System.out.println("Bestellung wurde gelöscht."); + } else { + System.out.println("Keine Bestellung mit der angegebenen ID gefunden."); + } + } + private static void aktualisiereDatei() { + try (FileWriter writer = new FileWriter(FILE_PATH, false)) { + for (Bestellung bestellung : bestellungen) { + writer.write(bestellung.toFileFormat()); + } + } catch (IOException e) { + System.out.println("Fehler beim Aktualisieren der Datei: " + e.getMessage()); + } + } + public static void speichereBestellung(Bestellung bestellung) { try { diff --git a/Restaurantverwaltung/src/Bestellung.java b/Restaurantverwaltung/src/Bestellung.java index e50eba8..4804b06 100644 --- a/Restaurantverwaltung/src/Bestellung.java +++ b/Restaurantverwaltung/src/Bestellung.java @@ -1,42 +1,77 @@ import java.util.ArrayList; import java.util.List; +import java.util.UUID; public class Bestellung { + private String id; private String tischNummer; private List bestellteGerichte; - private List zusatzWuensche; - public Bestellung(String tischNummer) { + this.id = UUID.randomUUID().toString(); this.tischNummer = tischNummer; this.bestellteGerichte = new ArrayList<>(); - //this.zusatzWuensche = new ArrayList<>(); } public void addGericht(String gericht) { this.bestellteGerichte.add(gericht); } - public void addZusatzWunsch(String wunsch) { - this.zusatzWuensche.add(wunsch); + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; } - public String getBestellungDetails() { StringBuilder details = new StringBuilder(); - details.append("Tisch Nummer: ").append(tischNummer).append("\nBestellte Gerichte:\n"); + details.append("ID: ").append(id).append("\n") + .append("Tisch Nummer: ").append(tischNummer).append("\n") + .append("Bestellte Gerichte:\n"); for (String gericht : bestellteGerichte) { details.append("- ").append(gericht).append("\n"); } -// if (!zusatzWuensche.isEmpty()) { -// details.append("Zusätzliche Wünsche:\n"); -// for (String wunsch : zusatzWuensche) { -// details.append("- ").append(wunsch).append("\n"); -// } -// } - return details.toString(); } -} \ No newline at end of file + + public String toFileFormat() { + return id + ";" + tischNummer + ";" + String.join(",", bestellteGerichte) + "\n"; + } + + public static Bestellung fromFileFormat(String fileLine) { + try { + + String[] parts = fileLine.split(";"); + if (parts.length < 3) { + throw new IllegalArgumentException("Ungültiges Dateiformat: " + fileLine); + } + + + String id = parts[0].trim(); + String tischNummer = parts[1].trim(); + + // Bestellte Gerichte + List gerichte = new ArrayList<>(); + String[] gerichteArray = parts[2].split(","); + for (String gericht : gerichteArray) { + if (!gericht.trim().isEmpty()) { + gerichte.add(gericht.trim()); + } + } + Bestellung bestellung = new Bestellung(tischNummer); + bestellung.setId(id); + for (String gericht : gerichte) { + bestellung.addGericht(gericht); + } + + return bestellung; + } catch (Exception e) { + throw new IllegalArgumentException("Fehler beim Parsen der Zeile: " + fileLine, e); + } + } + +} diff --git a/Restaurantverwaltung/src/Bestellungen.txt b/Restaurantverwaltung/src/Bestellungen.txt index df8dc64..5924320 100644 --- a/Restaurantverwaltung/src/Bestellungen.txt +++ b/Restaurantverwaltung/src/Bestellungen.txt @@ -1,12 +1,7 @@ -Tisch Nummer: 4444 +ID: aa9888b3-148a-4866-b404-7f9dc262153b +Tisch Nummer: 1 Bestellte Gerichte: - -Zeit: 18:58 --------------------------- -Tisch Nummer: 3333 -Bestellte Gerichte: -- Ayrimramen - Cheeseburger -Zeit: 19:12 +Zeit: 20:00 -------------------------- diff --git a/Restaurantverwaltung/src/Menu.java b/Restaurantverwaltung/src/Menu.java index 9b063e0..5c734cf 100644 --- a/Restaurantverwaltung/src/Menu.java +++ b/Restaurantverwaltung/src/Menu.java @@ -21,7 +21,7 @@ class Menu { } } } - + public List getAvailableDishes() { return availableDishes; } diff --git a/Restaurantverwaltung/src/Order.java b/Restaurantverwaltung/src/Order.java deleted file mode 100644 index 9bf391e..0000000 --- a/Restaurantverwaltung/src/Order.java +++ /dev/null @@ -1,15 +0,0 @@ -class Order { - private int tableNumber; - private String dish; - private boolean completed; - - public Order(int tableNumber, String dish) { - this.tableNumber = tableNumber; - this.dish = dish; - this.completed = false; - } - - public void completeOrder() { - completed = true; - } -} \ No newline at end of file diff --git a/Restaurantverwaltung/src/RestaurantManagement.java b/Restaurantverwaltung/src/RestaurantManagement.java index b38644b..69232c9 100644 --- a/Restaurantverwaltung/src/RestaurantManagement.java +++ b/Restaurantverwaltung/src/RestaurantManagement.java @@ -3,6 +3,5 @@ public class RestaurantManagement { public static void main(String[] args) { SystemController systemController = new SystemController(); systemController.startSystem(); - } } \ No newline at end of file diff --git a/Restaurantverwaltung/src/SystemController.java b/Restaurantverwaltung/src/SystemController.java index 78e077c..b44f00f 100644 --- a/Restaurantverwaltung/src/SystemController.java +++ b/Restaurantverwaltung/src/SystemController.java @@ -133,7 +133,7 @@ class SystemController { System.out.println("\n--- Bestellungen verwalten ---"); System.out.println("1. Bestellung aufnehmen"); System.out.println("2. Alle Bestellungen anzeigen"); - System.out.println("3. Bestellungen aus Datei anzeigen"); + System.out.println("3. Bestellungen löschen"); System.out.println("4. Zurück zum Hauptmenü"); System.out.print("Bitte wähle eine Option: "); @@ -147,10 +147,10 @@ class SystemController { } case 2 -> { - Bestellsystem.zeigeAlleBestellungen(); // Bestellungen im Speicher anzeigen + Bestellsystem.ladeUndZeigeBestellungen(); // Bestellungen aus Datei anzeigen } case 3 -> { - Bestellsystem.ladeUndZeigeBestellungen(); // Bestellungen aus Datei anzeigen + Bestellsystem.loescheBestellung(); // Bestellungen aus Datei löschen } case 4 -> managingOrders = false; default -> System.out.println("Ungültige Auswahl. Bitte versuche es erneut."); diff --git a/Restaurantverwaltung/src/stock.txt b/Restaurantverwaltung/src/stock.txt index 31133c0..a25cd74 100644 --- a/Restaurantverwaltung/src/stock.txt +++ b/Restaurantverwaltung/src/stock.txt @@ -1,7 +1,7 @@ Soße,49999996 Ananasdasdas,5000 -Brot,1519 +Brot,1504 Tomaten,503 -Käse,724 -Fleisch,12 +Käse,716 +Fleisch,94 Salat,494 diff --git a/Restaurantverwaltung/src/users.txt b/Restaurantverwaltung/src/users.txt index 7be35a6..21fb1f8 100644 --- a/Restaurantverwaltung/src/users.txt +++ b/Restaurantverwaltung/src/users.txt @@ -1,3 +1,3 @@ Dimitry:1234:MANAGER -Abbas Kronboch:1234:SERVICE +Abbas:1234:SERVICE Ananas Kopf:Bananenbieger:KITCHEN