Erweiterung der Bestandverwaltungsfunktionen
parent
0faefb5179
commit
aeceac2111
|
|
@ -1,36 +1,124 @@
|
|||
import java.util.*;
|
||||
import java.io.*;
|
||||
|
||||
class Inventory {
|
||||
private Map<String, Integer> stock;
|
||||
private Map<String, Integer> stock;
|
||||
private final String STOCK_FILE = "src/stock.txt";
|
||||
|
||||
|
||||
|
||||
public Inventory() {
|
||||
stock = new HashMap<>();
|
||||
stock.put("Brot", 10);
|
||||
stock.put("Fleisch", 8);
|
||||
stock.put("Käse", 5);
|
||||
stock.put("Salat", 7);
|
||||
stock.put("Tomaten", 6);
|
||||
}
|
||||
public void loadStockFromFile() {
|
||||
stock = new HashMap<>();
|
||||
try (BufferedReader reader = new BufferedReader(new FileReader(STOCK_FILE))) {
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
String[] parts = line.split(",");
|
||||
|
||||
public void viewStock() {
|
||||
System.out.println("Aktueller Bestand:");
|
||||
for (Map.Entry<String, Integer> entry : stock.entrySet()) {
|
||||
System.out.println(entry.getKey() + ": " + entry.getValue());
|
||||
}
|
||||
}
|
||||
String name = parts[0];
|
||||
Integer count = Integer.parseInt(parts[1]);
|
||||
stock.put(name, count);
|
||||
|
||||
public boolean useIngredients(Map<String, Integer> ingredients) {
|
||||
for (Map.Entry<String, Integer> entry : ingredients.entrySet()) {
|
||||
String ingredient = entry.getKey();
|
||||
int amount = entry.getValue();
|
||||
}
|
||||
} catch (FileNotFoundException e) {
|
||||
System.out.println("Stockdatenbank nicht gefunden. Einträge müssen manuell erstellt werden");
|
||||
|
||||
if (!stock.containsKey(ingredient) || stock.get(ingredient) < amount) {
|
||||
System.out.println("Nicht genug " + ingredient + " im Lager.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
for (Map.Entry<String, Integer> entry : ingredients.entrySet()) {
|
||||
stock.put(entry.getKey(), stock.get(entry.getKey()) - entry.getValue());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
} catch (IOException e) {
|
||||
System.out.println("Fehler beim Lesen der Benutzerdatenbank: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public void saveStockToFile() {
|
||||
try (BufferedWriter writer = new BufferedWriter(new FileWriter(STOCK_FILE))) {
|
||||
for (Map.Entry<String, Integer> entry : stock.entrySet()) {
|
||||
writer.write(entry.getKey() + "," + entry.getValue());
|
||||
writer.newLine();
|
||||
}
|
||||
System.out.println("Bestand in Datei gespeichert.");
|
||||
} catch (IOException e) {
|
||||
System.out.println("Fehler beim Speichern der Datei: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public Inventory() {
|
||||
|
||||
}
|
||||
|
||||
public void viewStock() {
|
||||
System.out.println("Aktueller Bestand:");
|
||||
for (Map.Entry<String, Integer> entry : stock.entrySet()) {
|
||||
System.out.println(entry.getKey() + ": " + entry.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
public boolean useIngredients(Map<String, Integer> ingredients) {
|
||||
for (Map.Entry<String, Integer> entry : ingredients.entrySet()) {
|
||||
String ingredient = entry.getKey();
|
||||
int amount = entry.getValue();
|
||||
|
||||
if (!stock.containsKey(ingredient) || stock.get(ingredient) < amount) {
|
||||
System.out.println("Nicht genug " + ingredient + " im Lager.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
for (Map.Entry<String, Integer> entry : ingredients.entrySet()) {
|
||||
stock.put(entry.getKey(), stock.get(entry.getKey()) - entry.getValue());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Neue Methode: Zutaten hinzufügen
|
||||
public void addIngredients(String ingredient, int amount) {
|
||||
if (amount <= 0) {
|
||||
System.out.println("Ungültige Menge: " + amount);
|
||||
return;
|
||||
}
|
||||
stock.put(ingredient, stock.getOrDefault(ingredient, 0) + amount);
|
||||
System.out.println(amount + " " + ingredient + " hinzugefügt.");
|
||||
}
|
||||
|
||||
// Neue Methode: Zutaten entfernen
|
||||
public void removeIngredient(String ingredient) {
|
||||
if (stock.containsKey(ingredient)) {
|
||||
stock.remove(ingredient);
|
||||
System.out.println(ingredient + " wurde aus dem Lager entfernt.");
|
||||
} else {
|
||||
System.out.println(ingredient + " ist nicht im Lager vorhanden.");
|
||||
}
|
||||
}
|
||||
|
||||
// Neue Methode: Gesamten Bestand prüfen
|
||||
public int totalStock() {
|
||||
int total = 0;
|
||||
for (int amount : stock.values()) {
|
||||
total += amount;
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
// Neue Methode: Warnungen bei niedrigem Bestand
|
||||
public void lowStockWarning(int threshold) {
|
||||
System.out.println("Warnung: Niedriger Bestand bei folgenden Zutaten:");
|
||||
for (Map.Entry<String, Integer> entry : stock.entrySet()) {
|
||||
if (entry.getValue() < threshold) {
|
||||
System.out.println(entry.getKey() + ": " + entry.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Neue Methode: Zutatenbestand überschreiben
|
||||
public void overwriteStock(String ingredient, int amount) {
|
||||
if (amount < 0) {
|
||||
System.out.println("Ungültige Menge: " + amount);
|
||||
return;
|
||||
}
|
||||
if (stock.containsKey(ingredient)) {
|
||||
stock.put(ingredient, amount);
|
||||
System.out.println(ingredient + " Bestand auf " + amount + " gesetzt.");
|
||||
} else {
|
||||
System.out.println(ingredient + " ist nicht im Lager vorhanden. Hinzufügen mit neuer Menge.");
|
||||
stock.put(ingredient, amount);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -12,6 +12,7 @@ class SystemController {
|
|||
|
||||
public SystemController() {
|
||||
loadUsersFromFile();
|
||||
|
||||
}
|
||||
|
||||
public void startSystem() {
|
||||
|
|
@ -42,8 +43,9 @@ class SystemController {
|
|||
private void displayMainMenu(User user) {
|
||||
boolean running = true;
|
||||
while (running) {
|
||||
inventory.loadStockFromFile();
|
||||
System.out.println("\n--- Hauptmenü ---");
|
||||
System.out.println("1. Bestand ansehen");
|
||||
System.out.println("1. Bestand verwalten");
|
||||
System.out.println("2. Neuer Nutzer erstellen");
|
||||
System.out.println("3. Menü anzeigen");
|
||||
System.out.println("4. Bestellungen verwalten");
|
||||
|
|
@ -54,7 +56,7 @@ class SystemController {
|
|||
scanner.nextLine(); // Eingabepuffer leeren
|
||||
|
||||
switch (choice) {
|
||||
case 1 -> inventory.viewStock();
|
||||
case 1 -> manageInventory();
|
||||
case 2 -> {
|
||||
if (user.role == Role.MANAGER) {
|
||||
createUser();
|
||||
|
|
@ -72,6 +74,56 @@ class SystemController {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void manageInventory() {
|
||||
boolean managingInventory = true;
|
||||
while (managingInventory) {
|
||||
inventory.loadStockFromFile();
|
||||
System.out.println("\n--- Bestand verwalten ---");
|
||||
System.out.println("1. Bestand ansehen");
|
||||
System.out.println("2. Bestand ändern");
|
||||
System.out.println("3. Bestand erweitern");
|
||||
System.out.println("4. Zurück zum Hauptmenü");
|
||||
|
||||
System.out.print("Bitte wähle eine Option: ");
|
||||
int choice = scanner.nextInt();
|
||||
scanner.nextLine(); // Eingabepuffer leeren
|
||||
|
||||
switch (choice) {
|
||||
case 1 -> {
|
||||
inventory.viewStock(); // Bestand ansehen
|
||||
}
|
||||
case 2 -> {
|
||||
System.out.println("Welchen Bestand möchten sie ändern?");
|
||||
String name = scanner.nextLine();
|
||||
System.out.println("Neue Anzahl ---->");
|
||||
try {
|
||||
int anzahl = scanner.nextInt();
|
||||
inventory.overwriteStock(name,anzahl); // Bestellungen im Speicher anzeigen
|
||||
inventory.saveStockToFile(); // Echtzeitspeicherung der Daten in der Datenbank, die für Daten für alle Nutzer zugänglich macht
|
||||
} catch (IllegalArgumentException e) {
|
||||
System.out.println("Fehler! Übeprüfen Sie ihre Eingabe");
|
||||
}
|
||||
|
||||
}
|
||||
case 3 -> {
|
||||
System.out.println("Bestand wird erweitert.....");
|
||||
System.out.println("Name des Produkts: ");
|
||||
String name = scanner.nextLine();
|
||||
System.out.println("Anzahl :");
|
||||
try {
|
||||
int anzahl = scanner.nextInt();
|
||||
inventory.addIngredients(name,anzahl); // Bestellungen im Speicher anzeigen
|
||||
inventory.saveStockToFile(); // Echtzeitspeicherung der Daten in der Datenbank, die für Daten für alle Nutzer zugänglich macht
|
||||
} catch (IllegalArgumentException e) {
|
||||
System.out.println("Fehler! Übeprüfen Sie ihre Eingabe");
|
||||
}
|
||||
}
|
||||
case 4 -> managingInventory = false;
|
||||
default -> System.out.println("Ungültige Auswahl. Bitte versuche es erneut.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void manageOrders() {
|
||||
boolean managingOrders = true;
|
||||
|
|
@ -153,4 +205,6 @@ class SystemController {
|
|||
users.put("Dimitry", defaultManager);
|
||||
saveUserToFile(defaultManager);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
Soße,50000000
|
||||
Ananasdasdas,5000
|
||||
Brot,1532
|
||||
Tomaten,511
|
||||
Käse,732
|
||||
Loading…
Reference in New Issue