contactTicketTypeRangeDate method
num
contactTicketTypeRangeDate(
- TicketType ticketType,
- String contactIdString,
- DateTime start,
- DateTime end,
Implementation
num contactTicketTypeRangeDate(TicketType ticketType, String contactIdString,
DateTime start, DateTime end) {
final filterByRange = where((t) => t.status)
.where((t) => '${t.contactId}' == contactIdString)
.where((t) => t.date.isAfter(start) || t.date.isAtSameMomentAs(start))
.where((t) => t.date.isBefore(end) || t.date.isAtSameMomentAs(end));
switch (ticketType) {
case TicketType.sell:
return filterByRange
.where((t) => t.ticketType == TicketType.sell)
.fold(0, (prev, element) => prev + element.total);
case TicketType.sellDeferred:
return filterByRange
.where((t) => t.ticketType == TicketType.sellDeferred)
.fold(0, (prev, element) => prev + element.total);
case TicketType.sellCovered:
return filterByRange
.where((t) => t.ticketType == TicketType.sellCovered)
.fold(0, (prev, element) => prev + element.total);
case TicketType.spend:
return filterByRange
.where((t) => t.ticketType == TicketType.spend)
.fold(0, (prev, element) => prev + element.total);
case TicketType.spendDeferred:
return filterByRange
.where((t) => t.ticketType == TicketType.spendDeferred)
.fold(0, (prev, element) => prev + element.total);
case TicketType.spendCovered:
return filterByRange
.where((t) => t.ticketType == TicketType.spendCovered)
.fold(0, (prev, element) => prev + element.total);
case TicketType.wage:
return filterByRange
.where((t) => t.ticketType == TicketType.wage)
.fold(0, (prev, element) => prev + element.total);
case TicketType.unknown:
print(
'rhaaaa unknow ticket type in herderTicketTypeRange, not again !');
return 0;
default:
return 0;
}
}