28 lines
766 B
Dart
28 lines
766 B
Dart
import 'bauteil_model.dart';
|
|
|
|
enum BauteilZeitraum { jahr, monat, tag }
|
|
|
|
class BauteilAuswertungsGruppe {
|
|
const BauteilAuswertungsGruppe({
|
|
required this.beginn,
|
|
required this.bauteile,
|
|
});
|
|
final DateTime beginn;
|
|
final List<BauteilModel> bauteile;
|
|
|
|
static bool preisBekannt(BauteilModel bauteil) =>
|
|
bauteil.gesamtpreis != null &&
|
|
bauteil.gesamtpreis!.isFinite &&
|
|
bauteil.gesamtpreis! >= 0;
|
|
|
|
static double summeFuer(Iterable<BauteilModel> bauteile) => double.parse(
|
|
bauteile
|
|
.where(preisBekannt)
|
|
.fold<double>(0, (sum, item) => sum + item.gesamtpreis!)
|
|
.toStringAsFixed(2),
|
|
);
|
|
|
|
double get summe => summeFuer(bauteile);
|
|
int get ohnePreis => bauteile.where((item) => !preisBekannt(item)).length;
|
|
}
|