discountCentsFor function

int? discountCentsFor(
  1. DiscountKind kind,
  2. num value,
  3. int total
)

Rabatt in Cent aus der Eingabe; außerhalb von 0 … Summe gibt es keinen.

Implementation

int? discountCentsFor(DiscountKind kind, num value, int total) {
  if (value.isNaN || value.isInfinite || value < 0) return null;
  if (kind == DiscountKind.percent && value > 100) return null;
  final c = kind == DiscountKind.percent ? (total * value / 100).round() : value.round();
  if (c > total) return null;
  return c;
}