2024-10-21 18:52:25 +02:00
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.List;
|
2024-10-21 18:25:45 +02:00
|
|
|
|
2024-10-21 18:52:25 +02:00
|
|
|
public class Warenkorb {
|
2024-10-21 22:35:46 +02:00
|
|
|
private List<WarenkorbEintrag> eintraege = new ArrayList<>();
|
2024-10-21 18:52:25 +02:00
|
|
|
private Kunden kunde;
|
|
|
|
|
2024-10-21 22:35:46 +02:00
|
|
|
// Fügt ein Produkt zum Warenkorb hinzu
|
2024-10-21 18:52:25 +02:00
|
|
|
public void produktHinzufuegen(Prudukt produkt, int anzahl) {
|
2024-10-21 22:35:46 +02:00
|
|
|
eintraege.add(new WarenkorbEintrag(produkt, anzahl));
|
2024-10-21 18:52:25 +02:00
|
|
|
}
|
|
|
|
|
2024-10-21 22:35:46 +02:00
|
|
|
// Ä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.");
|
|
|
|
}
|
|
|
|
|
|
|
|
// Löscht 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.");
|
2024-10-21 18:52:25 +02:00
|
|
|
}
|
|
|
|
|
2024-10-21 22:35:46 +02:00
|
|
|
// Berechnet den Gesamtpreis aller Produkte im Warenkorb
|
|
|
|
public float berechneGesamtPreis() {
|
2024-10-21 18:52:25 +02:00
|
|
|
float gesamtpreis = 0;
|
2024-10-21 22:35:46 +02:00
|
|
|
for (WarenkorbEintrag eintrag : eintraege) {
|
|
|
|
gesamtpreis += eintrag.getProdukt().getPreis() * eintrag.getAnzahl();
|
2024-10-21 18:52:25 +02:00
|
|
|
}
|
|
|
|
return gesamtpreis;
|
|
|
|
}
|
|
|
|
|
2024-10-21 22:35:46 +02:00
|
|
|
// Berechnet die Versandkosten basierend auf dem Gesamtgewicht
|
|
|
|
public float berechneVersandkosten() {
|
2024-10-21 18:52:25 +02:00
|
|
|
float gesamtgewicht = 0;
|
2024-10-21 22:35:46 +02:00
|
|
|
for (WarenkorbEintrag eintrag : eintraege) {
|
|
|
|
gesamtgewicht += eintrag.getProdukt().getGewicht() * eintrag.getAnzahl();
|
2024-10-21 18:52:25 +02:00
|
|
|
}
|
|
|
|
|
2024-10-21 22:35:46 +02:00
|
|
|
if (gesamtgewicht <= 1) {
|
|
|
|
return 5; // Versandkosten für < 1 kg
|
|
|
|
} else if (gesamtgewicht <= 2.5) {
|
|
|
|
return 8; // Versandkosten für < 2.5 kg
|
2024-10-21 18:52:25 +02:00
|
|
|
} else {
|
2024-10-21 22:35:46 +02:00
|
|
|
return 10; // Versandkosten für > 2.5 kg
|
2024-10-21 18:52:25 +02:00
|
|
|
}
|
2024-10-21 18:25:45 +02:00
|
|
|
}
|
|
|
|
|
2024-10-21 22:35:46 +02:00
|
|
|
// Setzt den Kunden im Warenkorb
|
|
|
|
public void setKunde(Kunden kunde) {
|
|
|
|
this.kunde = kunde;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Gibt den Warenkorb und die Produkte aus
|
2024-10-21 18:52:25 +02:00
|
|
|
public void printWarenkorb() {
|
2024-10-21 22:35:46 +02:00
|
|
|
System.out.println(this);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String toString() {
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
sb.append("Warenkorb für: ").append(kunde != null ? kunde.getName() : "Unbekannt").append("\n");
|
|
|
|
for (WarenkorbEintrag eintrag : eintraege) {
|
|
|
|
sb.append(eintrag.toString()).append("\n");
|
2024-10-21 18:52:25 +02:00
|
|
|
}
|
2024-10-21 22:35:46 +02:00
|
|
|
|
|
|
|
return sb.toString();
|
2024-10-21 18:25:45 +02:00
|
|
|
}
|
|
|
|
}
|