193 lines
6.1 KiB
Java
193 lines
6.1 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<>();
|
|
private final static String FILE_PATH = "src/Bestellungen.txt";
|
|
|
|
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 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 {
|
|
|
|
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.");
|
|
}
|
|
}
|
|
}
|
|
} |