callGrnARMScanApi method

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

Implementation

Future<void> callGrnARMScanApi(
  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_OPERATOR_STOCK_GR",
            assetIds: serialNum,
            assetStartRange: serialStartRange,
            assetEndRange: serialEndRange,
            fromPartnerId: requestToPartnerId,
            transferOrderId: selectedGrnOrder.value.transferOrderId);
    // Get.back();

    if (model.status == true) {
      Get.back();
      var tempIccids = <String>[].obs;
      tempIccids.addAll(scannedIccidList);
      RxList<ProductContentModel> temp = <ProductContentModel>[].obs;
      temp.addAll(productDataScannedList);
      for (int i = 0; i < temp.length; i++) {
        if (model.data != null &&
            model.data!.passedAssets != null &&
            model.data!.passedAssets!.isNotEmpty) {
          if (temp[i].productCode ==
              model.data!.passedAssets![0].productCode) {
            List<SingleScannedModel> iccidList = [];
            iccidList.addAll(temp[i].iccidList ?? []);
            for (final PassedAssets asset in model.data!.passedAssets ?? []) {
              tempIccids.add(asset.serialnumber ?? "");
              iccidList.add(
                SingleScannedModel(
                  iccid: asset.serialnumber,
                ),
              );
            }
            var grnProduct = temp[i]
                .copyWith(iccidList: iccidList, scannedQty: iccidList.length);
            temp[i] = grnProduct;
          }
        }
      }
      scannedIccidList = tempIccids; // assigning all the scanned iccids;
      productDataScannedList.value = [...temp]; // assigning product list
    } else {
      Get.back();
      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());
  }
}