Neue Funktion: Man kann jetzt Bestellungen löschen, außerdem wurde die

"Bestellungen anzeigen" Funktion überarbeitet.
master
PC 2024-12-12 20:05:29 +01:00
parent d0b4493755
commit bf99dc901c
9 changed files with 96 additions and 47 deletions

View File

@ -18,6 +18,7 @@ public class Bestellsystem {
private static Menu menu = new Menu();
private final String STOCK_FILE = "src/stock.txt";
HashMap<String, Integer> 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 {

View File

@ -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<String> bestellteGerichte;
private List<String> 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();
}
}
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<String> 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);
}
}
}

View File

@ -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
--------------------------

View File

@ -21,7 +21,7 @@ class Menu {
}
}
}
public List<Dish> getAvailableDishes() {
return availableDishes;
}

View File

@ -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;
}
}

View File

@ -3,6 +3,5 @@ public class RestaurantManagement {
public static void main(String[] args) {
SystemController systemController = new SystemController();
systemController.startSystem();
}
}

View File

@ -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.");

View File

@ -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

View File

@ -1,3 +1,3 @@
Dimitry:1234:MANAGER
Abbas Kronboch:1234:SERVICE
Abbas:1234:SERVICE
Ananas Kopf:Bananenbieger:KITCHEN