callCreditLimitValidation method

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

Implementation

Future<void> callCreditLimitValidation(String? serialNum,
    String? serialStartRange, String? serialEndRange) async {
  BuildContext context = Get.context!;
  WidgetsBinding.instance.addPostFrameCallback((_) {
    Helper.progressDialog(context, "Please wait..");
  });
  try {
    CreditLimitValidationModel model =
        await ApiClient(baseUrl: ApiConstant.posBFF).creditLimitValidation(
            cartId: cartId,
            xRoles: storage.read("XUSER_ID"),
            xUserId: storage.read("XUSER_ID"));
    Get.back();

    if (model.status == "POS200") {
      availableCreditBalance.value =
          double.parse(model.data!.creditLimitInfo!.limit!.amount ?? "0.0");
      usedCreditBalance.value =
          double.parse(model.data!.creditLimitInfo!.used!.amount ?? "0.0");
      totalCreditBalance.value = // credit balance
          double.parse(model.data!.creditLimitInfo!.balance!.amount ?? "0.0");
      if (usedCreditBalance.value != 0.0) {
        percentageCreditBalance.value =
            usedCreditBalance.value / availableCreditBalance.value;
      }
    } else if (model.status == "POS401" &&
        (serialNum != null || serialStartRange != null)) {
      callDeleteAssetByIdApi(
          serialNum, serialStartRange, serialEndRange, true);
    }
  } catch (err, stacktrace) {
    log(err.toString());
    print(stacktrace);
    Helper.messageDialog(Get.context!, "Try Again!!", err.toString());
  }
}