SE2-Restaurantverwaltung/Restaurantverwaltung/src/Bestellsystem.java

158 lines
5.0 KiB
Java

import java.util.Scanner;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.HashMap;
public class Bestellsystem {
private static List<Bestellung> bestellungen = new ArrayList<>();
private static Scanner scanner = new Scanner(System.in);
private static Menu menu = new Menu();
private final String STOCK_FILE = "src/stock.txt";
HashMap<String, Integer> stock = new HashMap<>();
public static void erstelleBestellung() {
System.out.print("Bitte gib die Tischnummer ein: ");
String tischNummer = scanner.nextLine();
Bestellung bestellung = new Bestellung(tischNummer);
while (true) {
// List<Dish> Gerichte = new ArrayList<>(menu.getDishes());
// try (BufferedReader reader = new BufferedReader(new FileReader(STOCK_FILE))) {
// String line;
// while ((line = reader.readLine()) != null) {
// String[] parts = line.split(",");
//
// String name = parts[0];
// Integer count = Integer.parseInt(parts[1]);
// stock.put(name, count);
//
// }
// } catch (FileNotFoundException e) {
// System.out.println("Stockdatenbank nicht gefunden. Einträge müssen manuell erstellt werden");
//
// } catch (IOException e) {
// System.out.println("Fehler beim Lesen der Benutzerdatenbank: " + e.getMessage());
// }
// for (Dish gericht : Gerichte) {
// if (stock.containsKey(gericht.getName())) {
// if (stock.get(gericht.getName()) < )
// }
// }
System.out.print("Bitte bestelle ein Gericht (oder 'fertig', um abzuschließen): ");
String gericht = scanner.nextLine();
boolean istVerfuegbar = false;
if (gericht.equalsIgnoreCase("fertig")) {
speichereBestellung(bestellung);
System.out.println("Bestand wurde aktualisiert");
break;
}
try { for (Dish dish : menu.getDishes()) {
if (gericht.equalsIgnoreCase(dish.getName())) {
SystemController.inventory.useIngredients(dish.getIngredients());
bestellung.addGericht(gericht);
istVerfuegbar = true;
bestellungen.add(bestellung);
System.out.println("Bestellung wurde aktualisiert");
System.out.println(bestellung.getBestellungDetails());
}
// else {
// System.out.println("Ist nicht verfügbar");
// }
}} catch (Exception e ) {
}
if (istVerfuegbar == false) {
System.out.println("Gericht ist nicht im Menu");
}
// while (true) {
// System.out.print("Möchte der Kunde noch einen Zusatzwunsch für dieses Gericht? (ja/nein): ");
// String wunschAntwort = scanner.nextLine();
//
// if (wunschAntwort.equalsIgnoreCase("ja")) {
// System.out.print("Bitte gib den Zusatzwunsch ein (z.B. 'keine Tomaten'): ");
// String zusatzWunsch = scanner.nextLine();
// bestellung.addZusatzWunsch(zusatzWunsch);
// } else if (wunschAntwort.equalsIgnoreCase("nein")) {
// break;
// }
// }
}
}
public static void speichereBestellung(Bestellung bestellung) {
try {
File file = new File("src/Bestellungen.txt");
FileWriter writer = new FileWriter(file, true);
writer.write(bestellung.getBestellungDetails());
LocalTime now = LocalTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm");
writer.write("\nZeit: " + now.format(formatter));
writer.write("\n--------------------------\n");
writer.close();
System.out.println("Bestellung wurde erfolgreich gespeichert.");
} catch (IOException e) {
System.out.println("Fehler beim Speichern der Bestellung: " + e.getMessage());
}
}
public static void ladeUndZeigeBestellungen() {
try {
FileReader fileReader = new FileReader("src/Bestellungen.txt");
BufferedReader bufferedReader = new BufferedReader(fileReader);
String zeile;
while ((zeile = bufferedReader.readLine()) != null) {
System.out.println(zeile);
}
bufferedReader.close();
} catch (IOException e) {
System.out.println("Fehler beim Laden der Bestellungen: " + e.getMessage());
}
}
public static void zeigeAlleBestellungen() {
if (bestellungen.isEmpty()) {
System.out.println("Keine Bestellungen vorhanden.");
} else {
for (Bestellung bestellung : bestellungen) {
System.out.println(bestellung.getBestellungDetails());
}
}
}
public static void main(String[] args) {
while (true) {
System.out.println("\n--- Restaurant Bestellsystem ---");
System.out.println("1. Bestellung aufnehmen");
System.out.println("2. Alle Bestellungen anzeigen");
System.out.println("3. Beenden");
System.out.print("Bitte wähle eine Option: ");
String option = scanner.nextLine();
if (option.equals("1")) {
erstelleBestellung();
} else if (option.equals("2")) {
zeigeAlleBestellungen();
} else if (option.equals("3")) {
System.out.println("Programm wird beendet.");
break;
} else {
System.out.println("Ungültige Eingabe. Bitte versuche es erneut.");
}
}
}
}