disableTicket method

  1. @action
Future<TicketWeebi> disableTicket(
  1. TicketWeebi ticketData
)

Implementation

@action
Future<TicketWeebi> disableTicket(TicketWeebi ticketData) async {
  await _updateStatusTicketServer(ticketData);

  final disabledTicket =
      await _ticketsService.disableTicketRpc.request(ticketData);

  final temp = tickets.firstWhereOrNull((element) =>
      element.id == disabledTicket.id &&
      element.creationDate == disabledTicket.creationDate);
  if (temp != null) {
    tickets.remove(temp);
    tickets.add(disabledTicket);
    setChange();

    // we withdraw this qt from stocksBuffer by inverting the movement (!)
    _computeStocksDetail(
      !disabledTicket.ticketType.isBoutiqueInput,
      disabledTicket.items,
    );

    // we withdraw the amount from balanceBuffer by inverting the movement (!)
    if (disabledTicket.ticketType == TicketType.sellCovered) {
      _computeBalanceDetail(
          disabledTicket.contactId, !true, disabledTicket.received);

      /// crediting contact balance
    } else if (disabledTicket.ticketType == TicketType.spendDeferred) {
      _computeBalanceDetail(disabledTicket.contactId, !true,
          disabledTicket.totalCostTaxAndPromoIncluded);

      /// debiting contact balance
    } else if (disabledTicket.ticketType == TicketType.sellDeferred) {
      _computeBalanceDetail(disabledTicket.contactId, !false,
          disabledTicket.totalPriceTaxAndPromoIncluded);

      /// debiting contact balance
    } else if (disabledTicket.ticketType == TicketType.spendCovered) {
      _computeBalanceDetail(
          disabledTicket.contactId, !false, disabledTicket.received);
    }

    return disabledTicket;
  } else {
    throw 'disabledTicket not found';
  }
}