diff --git a/Online_Shop/src/de/hs_mannheim/informatik/domain/OnlineShopVerwaltung.java b/Online_Shop/src/de/hs_mannheim/informatik/domain/OnlineShopVerwaltung.java new file mode 100644 index 0000000..283ffbf --- /dev/null +++ b/Online_Shop/src/de/hs_mannheim/informatik/domain/OnlineShopVerwaltung.java @@ -0,0 +1,149 @@ +package de.hs_mannheim.informatik.domain; + + +import java.sql.Date; +import java.text.SimpleDateFormat; + +public class OnlineShopVerwaltung { + private Warenkorb warenkorb = new Warenkorb(); + + // 1. Produkte anzeigen + public void produkteAnzeigen() { + System.out.println("Verfügbare Produkte:"); + System.out.println(); + for (Produkt produkt : Produkt.produktListe) { + System.out.println(produkt.getName() + " - " + produkt.getBeschreibung() + " - Preis: " + produkt.getPreis() + + " € - Bestand: " + produkt.getBestand() + " - Gewicht: " + produkt.getGewicht() + " Gramm"); + + } + } + + // 2. Produkt zum Warenkorb hinzufügen (Parameter statt Scanner) + public void produktZumWarenkorbHinzufuegen(String produktName, int anzahl) { + Produkt produkt = Produkt.produktfinden(produktName); + if (produkt != null) { + 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 Produkt entfernen + public void produktAusWarenkorbEntfernen(String produktName) { + Produkt produkt = Produkt.produktfinden(produktName); + if (produkt != null && warenkorb.getProduktanzahl().containsKey(produkt)) { + // Produkt zurück ins Lager legen (Bestand erhöhen) + produkt.setBestand(produkt.getBestand() + warenkorb.getProduktanzahl().get(produkt)); + // Produkt aus dem Warenkorb entfernen + warenkorb.getProduktanzahl().remove(produkt); + System.out.println("Produkt wurde aus dem Warenkorb entfernt."); + } else { + System.out.println("Produkt ist nicht im Warenkorb vorhanden."); + } + } + + // 3. Warenkorb bearbeiten (Parameter statt Scanner) + public void warenkorbBearbeiten(String produktName, int neueAnzahl) { + // Finde das Produkt im Warenkorb + Produkt produkt = Produkt.produktfinden(produktName); + if (produkt != null && warenkorb.getProduktanzahl().containsKey(produkt)) { + // Hole die aktuelle Anzahl des Produkts im Warenkorb + int aktuelleAnzahlImWarenkorb = warenkorb.getProduktanzahl().get(produkt); + + // Erhöhe den Lagerbestand um die aktuelle Anzahl im Warenkorb + produkt.setBestand(produkt.getBestand() + aktuelleAnzahlImWarenkorb); + + if (neueAnzahl > 0 && neueAnzahl <= produkt.getBestand()) { + // Aktualisiere den Warenkorb mit der neuen Anzahl + warenkorb.produktHinzufuegen(produkt, neueAnzahl); + // Verringere den Bestand entsprechend der neuen Anzahl + produkt.setBestand(produkt.getBestand() - neueAnzahl); + System.out.println("Anzahl wurde aktualisiert."); + } else { + System.out.println("Ungültige Anzahl oder nicht genug Bestand verfügbar."); + } + } else { + System.out.println("Produkt nicht im Warenkorb."); + } + } + + // 4. Warenkorb anzeigen + public void warenkorbAnzeigen() { + if (warenkorb.getProduktanzahl().isEmpty()) { + System.out.println("Warenkorb ist leer."); + return; + } + System.out.println(); + 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 (Parameter statt Scanner) + public void bestellungTaetigen(String name, String anschrift) { + if (warenkorb.getProduktanzahl().isEmpty()) { + System.out.println("Keine Bestellung möglich, der Warenkorb ist leer."); + return; + } + + // 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() { + // Prüfen, ob Bestellungen vorhanden sind + if (Bestellung.bestellungen.isEmpty()) { + System.out.println("Es wurde noch keine Bestellung getätigt."); + return; + } + + // Ausgabe aller Bestellungen + System.out.println("Alle Bestellungen:"); + for (Bestellung bestellung : Bestellung.bestellungen) { + // Kundeninformationen anzeigen + System.out.println("Kunde: " + bestellung.getName()); + System.out.println("Anschrift: " + bestellung.getAnschrift()); + + // Bestelldatum anzeigen + String bestelldatum = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss") + .format(new Date(bestellung.getBestelldatum())); + System.out.println("Bestelldatum: " + bestelldatum); + + // Produkte im Warenkorb anzeigen (ohne Gewicht) + System.out.println("Bestellte Produkte:"); + for (Produkt produkt : bestellung.getWarenkorb().getProduktanzahl().keySet()) { + int anzahl = bestellung.getWarenkorb().getProduktanzahl().get(produkt); + System.out.println(produkt.getName() + " - Anzahl: " + anzahl + " - Preis pro Stück: " + + produkt.getPreis() + " €"); + } + + // Gesamtpreis und Versandkosten berechnen + double gesamtpreis = bestellung.getWarenkorb().preisBerechnen(); + double versandkosten = bestellung.getWarenkorb().versandkostenBerechnen(); + System.out.println("Gesamtpreis (ohne Versand): " + gesamtpreis + " €"); + System.out.println("Versandkosten: " + versandkosten + " €"); + System.out.println("Gesamtkosten (inkl. Versand): " + (gesamtpreis + versandkosten) + " €"); + + // Trennlinie für jede Bestellung + System.out.println("------------"); + } + } +} \ No newline at end of file