callStockDeliveryARMScanApi method

Future<void> callStockDeliveryARMScanApi(
  1. String? serialNum,
  2. String? serialStartRange,
  3. String? serialEndRange,
  4. String requestToPartnerId,
)

Implementation

Future<void> callStockDeliveryARMScanApi(
    String? serialNum,
    String? serialStartRange,
    String? serialEndRange,
    String requestToPartnerId) async {
  BuildContext context = Get.context!;
  WidgetsBinding.instance.addPostFrameCallback((_) {
    Helper.progressDialog(context, "Please wait..");
  });
  try {
    StockDeliveryScanModel model =
        await ApiClient(baseUrl: ApiConstant.armBaseUrl).validateAssets(
            xUserId: storage.read("XUSER_ID"),
            action: "INV_SELL_THRU_DELIVERY",
            assetIds: serialNum,
            assetStartRange: serialStartRange,
            assetEndRange: serialEndRange,
            fromPartnerId: requestToPartnerId);
    Get.back();

    if (model.status == true) {
      var isValidated = false;
      productDataScannedList.forEach((element) {
        if (model.data != null &&
            model.data!.passedAssets != null &&
            model.data!.passedAssets!.isNotEmpty) {
          if (element.productCode ==
              model.data!.passedAssets![0].productCode) {
            isValidated = true;
          }
        }
      });
      if (isValidated) {
        if (cartId.isNotEmpty) {
          callUpdateCartApi(
              serialNum, serialStartRange, serialEndRange, null);
        } else {
          callAddToCartApi(serialNum, serialStartRange, serialEndRange, null);
        }
      }
      isValidated = false;
    } else {
      if (model.errors != null) {
        Helper.messageDialog(
            Get.context!,
            model.errors![0].errorCode ?? "Try again!!",
            model.errors![0].errorDescription ?? "Something went wrong");
      }
    }
  } catch (err, stacktrace) {
    Get.back();
    log(err.toString());
    print(stacktrace);
    Helper.messageDialog(Get.context!, "Try Again!!", err.toString());
  }
}