import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class Bestellung { private Warenkorb warenkorb; private float versandkosten; private LocalDateTime bestellDatum; // Konstruktor mit Warenkorb und Versandkosten public Bestellung(Warenkorb warenkorb, float versandkosten) { if (warenkorb == null) { throw new IllegalArgumentException("Warenkorb darf nicht null sein."); } if (versandkosten < 0) { throw new IllegalArgumentException("Versandkosten dürfen nicht negativ sein."); } this.warenkorb = warenkorb; this.versandkosten = versandkosten; 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; } @Override public String toString() { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss"); 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); } }