callDeleteAssetByIdApi method

Future<void> callDeleteAssetByIdApi(
  1. String? serialNum,
  2. String? serialStartRange,
  3. String? serialEndRange,
  4. String? productCode,
  5. bool isReverseTheLimit,
)

Implementation

Future<void> callDeleteAssetByIdApi(
    String? serialNum,
    String? serialStartRange,
    String? serialEndRange,
    String? productCode,
    bool isReverseTheLimit) async {
  BuildContext context = Get.context!;
  Helper.progressDialog(context, "Please wait..");
  try {
    await ApiClient(baseUrl: ApiConstant.posBL)
        .deleteAssetById(
            cartId: cartId,
            assetId: serialNum,
            startRange: serialStartRange,
            productCode: productCode,
            endRange: serialEndRange,
            xRoles: storage.read("XUSER_ID"),
            xUserId: storage.read("XUSER_ID"))
        .then((response) async {
      cart.CartModel model = response;
      if (model.status == "POS200") {
        // deleteSingleIds(
        //     cartModel: model,
        //     product: product,
        //     id: serialNum,
        //     start: serialStartRange,
        //     end: serialEndRange);
        Helper.close();
        if (!isReverseTheLimit) {
          var isProductExists = false;
          for (int i = 0; i < productDataScannedList.length; i++) {
            if (currentProduct.productCode ==
                productDataScannedList[i].productCode) {
              if (productDataScannedList[i].scannedQty == 1) {
                isProductExists = true;
              }

              break;
            }
          }
          if (isProductExists) {
            Helper.close();
          }
        }
        Future.delayed(const Duration(milliseconds: 500), () {
          cartId = model.data!.cartId!;
          discountList.value = model.data!.cartDiscountsList!;
          if (currentScan == ScanType.spotSellThru) {
            updateSpotSellThruOrder(model);
          } else if (currentScan == ScanType.sellThru) {
            updateSellThruOrder(model);
          } else if (currentScan == ScanType.collectStock) {
            totalRetailPrice = model.data!.totalRetailPrice as double;
            updateCollectStock(model, serialNum, serialStartRange,
                serialEndRange, productCode);
          }
        });
      } else {
        Helper.close();
        if (model.errors != null) {
          Helper.messageDialog(
              Get.context!,
              model.errors![0].code ?? "Try again!!",
              model.errors![0].localeMessage ?? "Something went wrong");
        }
      }
    }).catchError((error) {
      print(error.toString());
      Helper.close();
      MainController mainController = Get.put(MainController());
      mainController.showErrorPopup();
    });
  } catch (err, stacktrace) {
    log(err.toString());
    Helper.close();
    print(stacktrace);
  }
}