herderTicketTypeRange method
Implementation
num herderTicketTypeRange(String ticketType, String herderId,
{DateTime? end}) {
final filterByRange = (end != null)
? where((t) => t.date.isBefore(end))
.where((t) => t.contactIdString == herderId)
.where((t) => t.status)
: where((t) => t.status).where((t) => t.contactIdString == herderId);
switch (TicketType.tryParse(ticketType)) {
case TicketType.sell:
return filterByRange.where((t) => t.ticketType == TicketType.sell).fold(
0, (prev, element) => prev + element.totalPriceTaxAndPromoIncluded);
case TicketType.sellDeferred:
return filterByRange
.where((t) => t.ticketType == TicketType.sellDeferred)
.fold(0.0,
(prev, element) => prev + element.totalCostTaxAndPromoIncluded);
case TicketType.sellCovered:
return filterByRange
.where((t) => t.ticketType == TicketType.sellCovered)
.fold(0.0, (prev, element) => prev + element.received);
case TicketType.spend:
return filterByRange
.where((t) => t.ticketType == TicketType.spend)
.fold(0.0,
(prev, element) => prev + element.totalCostTaxAndPromoIncluded);
case TicketType.spendDeferred:
return filterByRange
.where((t) => t.ticketType == TicketType.spendDeferred)
.fold(0.0,
(prev, element) => prev + element.totalCostTaxAndPromoIncluded);
case TicketType.spendCovered:
return filterByRange
.where((t) => t.ticketType == TicketType.spendCovered)
.fold(0.0, (prev, element) => prev + element.received);
case TicketType.wage:
return filterByRange
.where((t) => t.ticketType == TicketType.wage)
.fold(0.0, (prev, element) => prev + element.received);
case TicketType.unknown:
print(
'rhaaaa unknow ticket type in herderTicketTypeRange, not again !');
return 0;
default:
return 0;
}
}