callCreateOrderApi method
Future<void>
callCreateOrderApi(
)
Implementation
Future<void> callCreateOrderApi() async {
BuildContext context = Get.context!;
Helper.progressDialog(context, "Please wait..");
try {
String requestTime = "";
String responseTime = "";
final Map<String, dynamic> orderData = {
"cartId": cart_id.value,
"orderType": "SELLOUT",
"remarks": "",
"payment": {
"totalAmountPaid": {"amount": totalAmount.value},
"paymentModes": mode.toJson(),
// [
// {
// "paymentModeId": 1,
// "amountPaid": {"amount": 114.053500},
// "attributes": [
// {"attributeName": "fieldName", "attributeValue": "value"}
// ],
// }
// ]
}
};
await ApiClient(
baseUrl: ApiConstant.posBaseUrl,
onFetchRequestTime: (time) {
requestTime = time;
},
onFetchResponseTime: (time) {
responseTime = time;
},
screenName: "productListScreen",
)
.createPosSaleOrder(
body: jsonEncode(orderData),
xUserId: SecureStorageService.readSecureData(
SecureStorageService.xUserId,
) ??
"",
)
.then((response) {
Helper.logEvent(
"RESPONSE_EVENT",
success: true,
endPoint: Api.producttypeList,
responseDate: responseTime,
screenName: "droListingScreen",
requestDate: requestTime,
);
CreateOrderResponseModel model = response;
Helper.close();
isLoadingMore.value = false;
if (model != null) {
if (model.status == "POS200") {
orderId.value = model.data?.orderId ?? "";
orderDateAndTime.value = model.timeStamp ?? "";
invoiceReceiptId.value = model.data?.invoiceReceiptId ?? "";
totalAmount.value = model.data?.totalAmount ?? 0.0;
Get.to(() => const PosSaleSuccessScreen());
} else {
Helper.messageDialog(
Get.context!,
model.errors![0].code ?? localization.translate("tryAgain"),
model.errors![0].localeMessage ??
localization.translate("somethingWentWrong"),
);
}
//productTypeList.value = model.data?.list ?? [];
}
}).catchError((error) {
ConditionalLogs().customLog("$error");
Helper.close();
MainController mainController = Get.put(MainController());
mainController.showErrorPopup();
});
} catch (e) {
Helper.close();
}
}