grnSubmit method
Implementation
Future<GrnSubmitModel?> grnSubmit(
String orderId,
String transferOrderId,
String id,
) async {
String requestTime = "";
String responseTime = "";
try {
Helper.progressDialog(Get.context!, "");
var body = {
"id": id,
"dealerId": SecureStorageService.readSecureData(
SecureStorageService.partnerIdLogin,
) ??
"",
"content": [],
"all": true,
"rejectReason": null,
"grRejectReasonType": null
};
GrnSubmitModel model = await ApiClient(
baseUrl: ApiConstant.posBFF,
receiveTimeout: Constants.defaultSubmitTimeout,
connectTimeout: Constants.defaultSubmitTimeout,
onFetchRequestTime: (time) {
requestTime = time;
},
onFetchResponseTime: (time) {
responseTime = time;
},
screenName: "orderHistoryDetails",
buttonName: "submit",
).grnSubmit(
body: json.encode(body),
transferOrderId: transferOrderId,
status: "APPROVE",
xUserName: SecureStorageService.readSecureData(
SecureStorageService.xUserId,
),
xUserId: SecureStorageService.readSecureData(
SecureStorageService.xUserId,
),
);
if (model.status == "POS200") {
Get.back();
Helper.logEvent(
"RESPONSE_EVENT",
success: true,
endPoint: "${Api.grnSubmit}/$transferOrderId/action:APPROVE",
responseDate: responseTime,
screenName: "orderHistoryDetails",
buttonName: "submit",
requestDate: requestTime,
transactionId: orderId,
);
return model;
} else {
Get.back();
Helper.logEvent(
"RESPONSE_EVENT",
failure: true,
endPoint: "${Api.grnSubmit}/$transferOrderId/action:APPROVE",
responseDate: responseTime,
screenName: "orderHistoryDetails",
buttonName: "submit",
requestDate: requestTime,
transactionId: orderId,
);
// if (model.errors != null) {
// Helper.messageDialog(
// Get.context!,
// model.errors![0].code ?? "Try again!!",
// model.errors![0].localeMessage ?? "Something went wrong");
// }
return model;
}
} catch (err, stacktrace) {
Get.back();
ConditionalLogs().customLog("$err");
ConditionalLogs().customLog("$stacktrace");
if (err is DioException) {
UDID.setTraceId(
err.response?.headers.map[Constants.traceIdKey]?[0] ?? "",
);
Helper.logEvent(
"ERROR_EVENT",
failure: true,
requestDate: requestTime,
endPoint: "${Api.grnSubmit}/$transferOrderId/action:APPROVE",
responseDate: DateTime.now().toString(),
screenName: "stockOrder",
error: err,
);
}
if (err.runtimeType == DioException) {
var response = err as DioException;
if (response.response?.statusCode == 504) {
ConditionalLogs()
.customLog("error grnSubmit: ${response.response?.statusCode}");
var transactionId = "-";
DateTime now = DateTime.now();
// Convert current time to milliseconds since epoch
double currentTimeStamp = now.millisecondsSinceEpoch / 1000;
// Use the existing method to format the date and time
var date = Helper.fromTimeStamptoDateTime(currentTimeStamp);
// Handle the 504 status code here
// Helper.messageDialog(Get.context!, "Gateway Timeout",
// "The server took too long to respond. Please try again later.");
} else {
ConditionalLogs()
.customLog("error grnSubmit: ${response.response?.statusCode}");
MainController mainController = Get.put(MainController());
mainController.showErrorPopup();
}
} else {
MainController mainController = Get.put(MainController());
mainController.showErrorPopup();
}
return null;
}
}