restoreTicket method
Future<TicketWeebi>
restoreTicket(
- TicketWeebi ticketData
)
Implementation
@action
Future<TicketWeebi> restoreTicket(TicketWeebi ticketData) async {
await _updateStatusTicketServer(ticketData);
final restoredTicket =
await _ticketsService.restoreTicketRpc.request(ticketData);
final temp = tickets.firstWhereOrNull((element) =>
element.id == restoredTicket.id &&
element.creationDate == restoredTicket.creationDate);
if (temp != null) {
tickets.remove(temp);
tickets.add(restoredTicket);
setChange();
// we re-include this qt from stocksBuffer
_computeStocksDetail(
restoredTicket.ticketType.isBoutiqueInput, restoredTicket.items);
// we we re-include the amount from balanceBuffer
if (restoredTicket.ticketType == TicketType.sellCovered) {
_computeBalanceDetail(
restoredTicket.contactId, true, restoredTicket.received);
/// crediting contact balance
} else if (restoredTicket.ticketType == TicketType.spendDeferred) {
_computeBalanceDetail(restoredTicket.contactId, true,
restoredTicket.totalCostTaxAndPromoIncluded);
/// debiting contact balance
} else if (restoredTicket.ticketType == TicketType.sellDeferred) {
_computeBalanceDetail(restoredTicket.contactId, false,
restoredTicket.totalPriceTaxAndPromoIncluded);
/// debiting contact balance
} else if (restoredTicket.ticketType == TicketType.spendCovered) {
_computeBalanceDetail(
restoredTicket.contactId, false, restoredTicket.received);
}
return restoredTicket;
} else {
throw 'restoredTicket not found';
}
}