restoreTicket method

  1. @action
Future<TicketWeebi> restoreTicket(
  1. 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';
  }
}