contactTicketTypeEndDate method
Implementation
num contactTicketTypeEndDate(TicketType ticketType, String contactIdString,
{DateTime? end}) {
final filterByRange = (end != null)
? where((t) => t.status)
.where((t) => '${t.contactId}' == contactIdString)
.where((t) => t.date.isBefore(end) || t.date.isAtSameMomentAs(end))
: where((t) => t.status)
.where((t) => '${t.contactId}' == contactIdString);
// print('in filter by range');
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 contactTicketTypeRangeDate, not again !');
return 0;
default:
return 0;
}
}