diff --git a/src/ShopVerwaltung.java b/src/ShopVerwaltung.java new file mode 100644 index 0000000..bf9ccf1 --- /dev/null +++ b/src/ShopVerwaltung.java @@ -0,0 +1,143 @@ +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("------------"); + } + } + } +} \ No newline at end of file