withQuantity method

Cart withQuantity(
  1. String id,
  2. int quantity
)

Setzt die Menge einer Position.

Faellt sie auf null, faellt die Position: eine Zeile „0 × Kaffee" waere weder auf dem Schirm noch auf dem Beleg etwas wert.

Implementation

Cart withQuantity(String id, int quantity) {
  if (quantity <= 0) return removed(id);
  var getroffen = false;
  final neu = items.map((p) {
    if (p.id != id) return p;
    getroffen = true;
    // Hoechstmenge je Beleg: darueber geht es nicht — egal woher der Griff kommt.
    final grenze = (p.maxQuantity != null && p.maxQuantity! > 0) ? p.maxQuantity! : null;
    return p.withQuantity(grenze != null && quantity > grenze ? grenze : quantity);
  }).toList();
  return getroffen ? Cart(items: neu) : this;
}