Online_schop/Warenkorb.java

92 lines
2.9 KiB
Java
Raw Permalink Normal View History

import java.util.ArrayList;
import java.util.List; // Importiere die List-Schnittstelle
public class Warenkorb {
private List<WarenkorbEintrag> eintraege = new ArrayList<>();
private Kunden kunde;
// Fügt ein Produkt zum Warenkorb hinzu
public void produktHinzufuegen(Produkt produkt, int anzahl) {
eintraege.add(new WarenkorbEintrag(produkt, anzahl));
}
// Ändert die Anzahl eines Produkts im Warenkorb
public void produktAendern(int produktId, int neueAnzahl) {
for (WarenkorbEintrag eintrag : eintraege) {
if (eintrag.getProdukt().getId() == produktId) {
if (neueAnzahl <= 0) {
eintraege.remove(eintrag);
} else {
eintrag.setAnzahl(neueAnzahl);
}
return;
}
}
System.out.println("Produkt nicht im Warenkorb gefunden.");
}
// Entfernt ein Produkt aus dem Warenkorb
public void produktEntfernen(int produktId) {
for (WarenkorbEintrag eintrag : eintraege) {
if (eintrag.getProdukt().getId() == produktId) {
eintraege.remove(eintrag);
System.out.println("Produkt entfernt: " + eintrag.getProdukt().getName());
return;
}
}
System.out.println("Produkt nicht im Warenkorb gefunden.");
}
// Berechnet den Gesamtpreis aller Produkte im Warenkorb
public float berechneGesamtPreis() {
float gesamtpreis = 0;
for (WarenkorbEintrag eintrag : eintraege) {
gesamtpreis += eintrag.getProdukt().getPreis() * eintrag.getAnzahl();
}
return gesamtpreis;
}
// Berechnet die Versandkosten basierend auf dem Gesamtgewicht
public float berechneVersandkosten() {
float gesamtgewicht = 0;
for (WarenkorbEintrag eintrag : eintraege) {
gesamtgewicht += eintrag.getProdukt().getGewicht() * eintrag.getAnzahl();
}
if (gesamtgewicht <= 1) {
return 5; // Versandkosten für < 1 kg
} else if (gesamtgewicht <= 2.5) {
return 8; // Versandkosten für < 2.5 kg
} else {
return 10; // Versandkosten für > 2.5 kg
}
}
// Setzt den Kunden im Warenkorb
public void setKunde(Kunden kunde) {
this.kunde = kunde;
}
// Gibt den Kunden zurück
public Kunden getKunde() {
return kunde;
}
// Leert den Warenkorb
public void leeren() {
eintraege.clear();
kunde = null; // Optional: auch den Kunden zurücksetzen
System.out.println("Der Warenkorb wurde geleert.");
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
for (WarenkorbEintrag eintrag : eintraege) {
sb.append(eintrag.toString()).append("\n");
}
return sb.toString();
}
}