sumTicketTypePerRange method
num
sumTicketTypePerRange(
- TicketType ticketType, {
- PaymentType? paymentType,
- DateTime? start,
- DateTime? end,
Implementation
num sumTicketTypePerRange(TicketType ticketType,
{PaymentType? paymentType, DateTime? start, DateTime? end}) {
final filterByTicketType =
paymentType == null ? this : where((t) => t.paymentType == paymentType);
final filterByRange = (start != null && end != null)
? filterByTicketType
.where((t) => t.date.isAfter(start) && t.date.isBefore(end))
.where((t) => t.status == true)
: filterByTicketType.where((t) => t.status == true);
switch (ticketType) {
case TicketType.sell:
return filterByRange.where((t) => t.ticketType == TicketType.sell).fold(
0,
(num prev, element) =>
prev + element.totalPriceTaxAndPromoIncluded);
case TicketType.sellDeferred:
return filterByRange
.where((t) => t.ticketType == TicketType.sellDeferred)
.fold(
0,
(num 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 sumContactTicketTypeRange, not again !');
return 0;
default:
return 0;
}
}