Online_schop/Onlineshop.java

68 lines
2.3 KiB
Java

import java.util.ArrayList;
import java.util.List;
public class Onlineshop {
private List<Produkt> produkte; // Achte darauf, dass der Typ korrekt ist
private Warenkorb warenkorb;
private List<Bestellung> bestellungen;
private Produkt gabel;
private Produkt messer;
private Produkt loeffel;
public Onlineshop() {
this.gabel=new Produkt("Gabel", 1, 1.12F, 0.1F, 100);
this.messer=new Produkt("Messer", 2, 1.14F, 0.2F, 100);
this.loeffel=new Produkt("Löffel", 3, 1.15F, 0.15F, 100);
this.produkte = new ArrayList<>();
this.warenkorb = new Warenkorb();
this.bestellungen = new ArrayList<>();
}
// API: Produkt hinzufügen
public void produktHinzufuegen(Produkt produkt) { // Achte darauf, dass der Typ korrekt ist
produkte.add(produkt);
}
// API: Produkte zurückgeben (für Anzeige in der UI)
public List<Produkt> getProdukte() {
produkte.add(gabel);
produkte.add(loeffel);
produkte.add(messer);
return produkte;
}
// API: Produkt in den Warenkorb legen
public boolean produktZuWarenkorbHinzufuegen(int produktId, int anzahl) {
for (Produkt produkt : produkte) { // Achte darauf, dass der Typ korrekt ist
if (produkt.getId() == produktId) {
warenkorb.produktHinzufuegen(produkt, anzahl);
return true;
}
}
return false; // Produkt nicht gefunden
}
// API: Produktanzahl im Warenkorb ändern
public void produktAendern(int produktId, int neueAnzahl) {
warenkorb.produktAendern(produktId, neueAnzahl);
}
// API: Produkt aus Warenkorb entfernen
public void produktEntfernen(int produktId) {
warenkorb.produktEntfernen(produktId);
}
// API: Bestellung aufgeben
public void bestellungAufgeben(String adresse, String name) {
Bestellung bestellung = new Bestellung(warenkorb, warenkorb.berechneVersandkosten());
bestellungen.add(bestellung);
System.out.println("Ihre Bestellung wurde erfolgreich aufgegeben:\n" + bestellung);
warenkorb.leeren(); // Warenkorb nach Bestellung leeren
}
// Setze den Kunden im Warenkorb (optional)
public void setKunde(String name, String adresse) {
warenkorb.setKunde(new Kunden(name, adresse));
}
}