getInvoice method
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());
}
}