getInvoice method

Future<void> getInvoice(
  1. String transactionId,
  2. String? orderId
)

Implementation

Future<void> getInvoice(String transactionId, String? orderId) async {
  BuildContext context = Get.context!;
  WidgetsBinding.instance.addPostFrameCallback((_) {
    Helper.progressDialog(context, "Please wait..");
  });

  var body = {
    "sourceSystem": "MobileApp",
    "saleOrderId": transactionId,
    "partnerId": storage.read("DEALER_ID") ?? "",
  };
  try {
    InvoiceReceiptModel model = await ApiClient(baseUrl: ApiConstant.posBL)
        .invoiceReceipt(
            status: "generate",
            body: body,
            orderId: orderId ?? "",
            xUserName: storage.read("XUSER_ID"),
            xUserId: storage.read("XUSER_ID"));

    if (model.status == "POS200") {
      Get.back();
      if (model.data != null) {
        var docUrl = model.data!.downloadURL ?? "";
        if (await canLaunchUrl(Uri.parse(docUrl))) {
          await launchUrl(Uri.parse(docUrl),
              mode: LaunchMode.inAppBrowserView);
        }
      }
    } else {
      Get.back();
      if (model.errors != null) {
        Helper.messageDialog(
            Get.context!,
            model.errors![0].errorItem!.errorCode ?? "Try again!!",
            model.errors![0].errorItem!.errorMessage ??
                "Something went wrong");
      }
    }
  } catch (err, stacktrace) {
    Get.back();
    log(err.toString());
    print(stacktrace);
    Helper.messageDialog(Get.context!, "Try Again!!", err.toString());
  }
}