2024-10-21 22:35:46 +02:00
|
|
|
import java.time.LocalDateTime;
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
|
2024-10-21 18:52:25 +02:00
|
|
|
public class Bestellung {
|
|
|
|
private Warenkorb warenkorb;
|
|
|
|
private float versandkosten;
|
2024-10-21 22:35:46 +02:00
|
|
|
private LocalDateTime bestellDatum;
|
2024-10-21 18:52:25 +02:00
|
|
|
|
2024-10-22 16:00:37 +02:00
|
|
|
// Konstruktor mit Warenkorb und Versandkosten
|
2024-10-21 18:52:25 +02:00
|
|
|
public Bestellung(Warenkorb warenkorb, float versandkosten) {
|
2024-10-21 22:35:46 +02:00
|
|
|
if (warenkorb == null) {
|
|
|
|
throw new IllegalArgumentException("Warenkorb darf nicht null sein.");
|
|
|
|
}
|
|
|
|
if (versandkosten < 0) {
|
|
|
|
throw new IllegalArgumentException("Versandkosten dürfen nicht negativ sein.");
|
|
|
|
}
|
2024-10-22 16:00:37 +02:00
|
|
|
|
2024-10-21 18:52:25 +02:00
|
|
|
this.warenkorb = warenkorb;
|
|
|
|
this.versandkosten = versandkosten;
|
2024-10-21 22:35:46 +02:00
|
|
|
this.bestellDatum = LocalDateTime.now(); // Bestelldatum setzen
|
|
|
|
}
|
|
|
|
|
|
|
|
public Warenkorb getWarenkorb() {
|
|
|
|
return warenkorb;
|
|
|
|
}
|
|
|
|
|
|
|
|
public float getVersandkosten() {
|
|
|
|
return versandkosten;
|
|
|
|
}
|
|
|
|
|
|
|
|
public LocalDateTime getBestellDatum() {
|
|
|
|
return bestellDatum;
|
|
|
|
}
|
|
|
|
|
|
|
|
public float berechneGesamtpreis() {
|
|
|
|
return warenkorb.berechneGesamtPreis() + versandkosten;
|
2024-10-21 18:52:25 +02:00
|
|
|
}
|
|
|
|
|
2024-10-22 16:00:37 +02:00
|
|
|
|
2024-10-21 18:52:25 +02:00
|
|
|
@Override
|
|
|
|
public String toString() {
|
2024-10-21 22:35:46 +02:00
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss");
|
2024-10-22 16:00:37 +02:00
|
|
|
Kunden kunde = warenkorb.getKunde(); // Kundenobjekt vom Warenkorb abrufen
|
|
|
|
String kundenName = kunde != null ? kunde.getName() : "Unbekannt";
|
|
|
|
String adresse = kunde != null ? kunde.getAdresse() : "Keine Adresse angegeben";
|
|
|
|
|
|
|
|
return String.format("Bestellung am %s:\nWarenkorb für: %s\n%sVersandkosten: %.2f Euro\nGesamtpreis: %.2f Euro\nAdresse: %s",
|
|
|
|
bestellDatum.format(formatter), kundenName, warenkorb.toString(), versandkosten, berechneGesamtpreis(), adresse);
|
2024-10-21 18:52:25 +02:00
|
|
|
}
|
2024-10-22 16:00:37 +02:00
|
|
|
|
2024-10-21 18:52:25 +02:00
|
|
|
}
|