import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.Scanner; public class ShopVerwaltung { private Warenkorb warenkorb = new Warenkorb(); private ArrayList bestellungen = new ArrayList<>(); private Scanner scanner = new Scanner(System.in); // 1. Produkte anzeigen public void produkteAnzeigen() { System.out.println("Verfügbare Produkte:"); for (Produkt produkt : Produkt.produktListe) { System.out.println(produkt.getName() + " - " + produkt.getBeschreibung() + " - Preis: " + produkt.getPreis() + " € - Bestand: " + produkt.getBestand()); } } // 2. Produkt zum Warenkorb hinzufügen public void produktZumWarenkorbHinzufuegen() { System.out.println("Geben Sie den Namen des Produkts ein:"); String produktName = scanner.next(); Produkt produkt = Produkt.produktfinden(produktName); if (produkt != null) { System.out.println("Geben Sie die Anzahl ein:"); int anzahl = scanner.nextInt(); if (anzahl < 1) { System.out.println("Anzahl darf nicht kleiner als 1 sein"); return; } if (anzahl <= produkt.getBestand()) { warenkorb.produktHinzufuegen(produkt, anzahl); produkt.setBestand(produkt.getBestand() - anzahl); // Bestand verringern System.out.println("Produkt wurde zum Warenkorb hinzugefügt."); } else { System.out.println("Nicht genug Bestand verfügbar."); } } else { System.out.println("Produkt nicht gefunden."); } } // 3. Warenkorb überarbeiten (Anzahl ändern oder löschen) public void warenkorbBearbeiten() { System.out.println("Möchten Sie die Anzahl eines Produkts ändern oder ein Produkt löschen? (ändern/löschen)"); String aktion = scanner.next(); if (aktion.equalsIgnoreCase("ändern")) { System.out.println("Welches Produkt möchten Sie ändern?"); String produktName = scanner.next(); Produkt produkt = Produkt.produktfinden(produktName); if (produkt != null && warenkorb.getProduktanzahl().containsKey(produkt)) { System.out.println("Geben Sie die neue Anzahl ein:"); int neueAnzahl = scanner.nextInt(); if (neueAnzahl < 1) { System.out.println("Anzahl darf nicht kleiner als 1 sein"); return; } if (neueAnzahl <= produkt.getBestand()) { produkt.setBestand(produkt.getBestand() + warenkorb.getProduktanzahl().get(produkt)); warenkorb.produktHinzufuegen(produkt, neueAnzahl); produkt.setBestand(produkt.getBestand() - neueAnzahl); System.out.println("Anzahl wurde aktualisiert."); } else { System.out.println("Nicht genug Bestand verfügbar."); } } else { System.out.println("Produkt nicht im Warenkorb."); } } else if (aktion.equalsIgnoreCase("löschen")) { System.out.println("Welches Produkt möchten Sie löschen?"); String produktName = scanner.next(); Produkt produkt = Produkt.produktfinden(produktName); if (produkt != null && warenkorb.getProduktanzahl().containsKey(produkt)) { produkt.setBestand(produkt.getBestand() + warenkorb.getProduktanzahl().get(produkt)); warenkorb.getProduktanzahl().remove(produkt); System.out.println("Produkt wurde aus dem Warenkorb entfernt."); } else { System.out.println("Produkt nicht im Warenkorb."); } } } // 4. Warenkorb anzeigen public void warenkorbAnzeigen() { if (warenkorb.getProduktanzahl().isEmpty() || warenkorb == null) { System.out.println("Warenkorb ist leer."); return; } System.out.println("Warenkorb:"); for (Produkt produkt : warenkorb.getProduktanzahl().keySet()) { int anzahl = warenkorb.getProduktanzahl().get(produkt); System.out.println(produkt.getName() + " - Anzahl: " + anzahl + " - Preis pro Stück: " + produkt.getPreis() + " €"); } System.out.println("Gesamtpreis: " + warenkorb.preisBerechnen() + " €"); System.out.println("Versandkosten: " + warenkorb.versandkostenBerechnen() + " €"); System.out.println("Gesamtkosten: " + (warenkorb.preisBerechnen() + warenkorb.versandkostenBerechnen()) + " €"); } // 5. Bestellung tätigen public void bestellungTaetigen() { if (warenkorb == null || warenkorb.getProduktanzahl().isEmpty()) { System.out.println("Keine Bestellung möglich, der Warenkorb ist leer."); return; } scanner.nextLine(); System.out.println("Bitte geben Sie Ihren Namen ein:"); String name = scanner.nextLine(); System.out.println("Bitte geben Sie Ihre Anschrift ein:"); String anschrift = scanner.nextLine(); // Bestellung erstellen Bestellung bestellung = new Bestellung(warenkorb, System.currentTimeMillis(), anschrift, name); Bestellung.bestellungen.add(bestellung); System.out.println("Bestellung erfolgreich abgeschlossen!"); // Warenkorb leeren warenkorb = new Warenkorb(); } // 6. Alle Bestellungen anzeigen public void alleBestellungenAnzeigen() { if (Bestellung.bestellungen.isEmpty()) { System.out.println("Es wurde noch keine Bestellung getätigt."); return; } else { System.out.println("Alle Bestellungen:"); for (Bestellung bestellung : Bestellung.bestellungen) { System.out.println("Kunde: " + bestellung.getName() + " - Anschrift: " + bestellung.getAnschrift()); System.out.println("Bestelldatum: " + new SimpleDateFormat("dd.MM.yyyy hh:mm:ss").format(new Date(bestellung.getBestelldatum()))); System.out.println("Warenkorb:"); for (Produkt produkt : bestellung.getWarenkorb().getProduktanzahl().keySet()) { int anzahl = bestellung.getWarenkorb().getProduktanzahl().get(produkt); System.out.println(produkt.getName() + " - Anzahl: " + anzahl); } double preis = bestellung.getWarenkorb().preisBerechnen(); double versand = bestellung.getWarenkorb().versandkostenBerechnen(); System.out.println("Gesamtpreis: " + (preis + versand) + " € (inkl. Versandkosten von " + versand + " €)"); System.out.println("------------"); } } } }