143 lines
6.8 KiB
Plaintext
143 lines
6.8 KiB
Plaintext
|
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<Bestellung> 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("------------");
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|