callUpdateCartApi method

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

Implementation

Future<void> callUpdateCartApi(String? serialNum, String? serialStartRange,
    String? serialEndRange, String? productCode) async {
  BuildContext context = Get.context!;
  WidgetsBinding.instance.addPostFrameCallback((_) {
    Helper.progressDialog(context, "Please wait..");
  });
  AddToCartRequest body = prepareCartRequest(
    checkValue(serialNum),
    checkValue(serialStartRange),
    checkValue(serialEndRange),
    productCode,
  );
  try {
    cart.CartModel model = await ApiClient(baseUrl: ApiConstant.posBL)
        .updateCart(
            body: body,
            cartId: cartId,
            xRoles: storage.read("XUSER_ID"),
            xUserId: storage.read("XUSER_ID"));

    if (model.status == "POS200") {
      Get.back();
      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;
        await updateCollectStock(
            model, serialNum, serialStartRange, serialEndRange);
      }
    } else {
      Get.back();
      if (model.errors != null) {
        Helper.messageDialog(
            Get.context!,
            model.errors![0].code ?? "Try again!!",
            model.errors![0].localeMessage ?? "Something went wrong");
      }
    }
  } catch (err, stacktrace) {
    Get.back();
    log(err.toString());
    print(stacktrace);
    Helper.messageDialog(Get.context!, "Try Again!!", err.toString());
  }
}