orderCreation method
dynamic
orderCreation(})
Implementation
orderCreation(
BuildContext context,
String cartId,
String paymentId,
String transactionType, {
required bool isBank,
bool isCashOnDelivery = false,
}) async {
String requestTime = DateTime.now().toString();
try {
Helper.progressDialog(context, "Please wait..");
// printLogs(dio);
dio.options = BaseOptions(
receiveTimeout: const Duration(
seconds: Constants.defaultSubmitTimeout,
),
connectTimeout: const Duration(
seconds: Constants.defaultSubmitTimeout,
),
followRedirects: true,
);
var data_ = json.encode(
{
"partnerId": partnerId,
"partnerType": storage.read("LEVEL_NAME"),
"distributeId": partnerId,
"distributeType": storage.read("LEVEL_NAME"),
"paymentTransactionId": paymentId,
"billingOrShippingAddressId": "",
"transactionRemarks": noteController.text.trim(),
"purchaseOrderReferenceNumber": "",
"branchId": "",
"externalParentTransactionId": "",
"relatedParty": [
{
"name": SecureStorageService.readSecureData(
SecureStorageService.userId,
),
"role": "CreatedBy"
},
{"name": "Regional Distributor(RD)", "role": "DistributorType"},
{
"name": SecureStorageService.readSecureData(
SecureStorageService.userId,
),
"role": "agentId"
}
],
"checkInId": checkinId,
},
);
dio
.post(
'${ApiConstant.posBaseUrl}pos-purchase-order-service-svc/transaction/$transactionType/carts/$cartId',
data: data_,
options: Options(
headers: {
'x-request-txn-id': UDID.uDID,
'x-trace-id': UDID.uDIDTraceId,
'X-User-Id': SecureStorageService.readSecureData(
SecureStorageService.xUserId,
),
'X-User-Name': SecureStorageService.readSecureData(
SecureStorageService.xUserName,
),
'Authorization': "Bearer ${SecureStorageService.readSecureData(
SecureStorageService.accessToken,
)}",
},
),
)
.then((response) {
if (response.data != null) {
ConditionalLogs().customLog('orderCreation${response.data}');
OrderCreationModel model = OrderCreationModel();
Map<String, dynamic> creditData = response.data;
model = OrderCreationModel.fromJson(creditData);
UDID.setTraceId(response.headers.map[Constants.traceIdKey]?[0] ?? "");
if (model.status == 'POS200') {
Helper.close();
Helper.logEvent(
"RESPONSE_EVENT",
success: true,
endPoint:
"pos-purchase-order-service-svc/transaction/$transactionType/carts/$cartId",
responseDate: DateTime.now().toString(),
screenName: "stockOrder",
requestDate: requestTime,
transactionId: model.data?.saleOrderId ?? '',
isFinal: true,
);
paymentmodestatus = 0;
Get.to(
() => SellInSuccessScreen(
orderId: model.data?.saleOrderId ?? "",
isPayAtStore: selectedDeliveryName.value == "pickup" &&
isPaymentSelectName.value == "Pay at Store",
),
);
} else {
Helper.close();
Helper.logEvent(
"RESPONSE_EVENT",
success: true,
endPoint:
"pos-purchase-order-service-svc/transaction/$transactionType/carts/$cartId",
responseDate: DateTime.now().toString(),
screenName: "orderStock",
requestDate: requestTime,
transactionId: model.data?.saleOrderId ?? '',
isFinal: true,
);
// Helper.messageDialog(
// Get.context!,
// model.errors?[0]?["errorItem"]["errorCode"] ??
// localization.translate("tryAgain"),
// model.errors?[0]?["errorItem"]["errorMessage"] ??
// localization.translate("somethingWentWrong"),
// );
goToPaymentPendingSuccessScreen();
}
}
}).catchError((error) {
ConditionalLogs().customLog("$error");
Helper.close();
if (error is DioException) {
UDID.setTraceId(
error.response?.headers.map[Constants.traceIdKey]?[0] ?? "",
);
Helper.logEvent(
"RESPONSE_EVENT",
failure: true,
endPoint:
"pos-purchase-order-service-svc/transaction/$transactionType/carts/$cartId",
responseDate: DateTime.now().toString(),
screenName: "orderStock",
requestDate: requestTime,
transactionId: cartId,
isFinal: true,
);
}
// MainController mainController = Get.put(MainController());
// mainController.showErrorPopup();
goToPaymentPendingSuccessScreen();
});
} catch (e) {
Helper.close();
if (e is DioException) {
UDID.setTraceId(
e.response?.headers.map[Constants.traceIdKey]?[0] ?? "",
);
Helper.logEvent(
"ERROR_EVENT",
failure: true,
endPoint: "pos-purchase-order-service-svc/pogs",
requestDate: requestTime,
responseDate: DateTime.now().toString(),
screenName: "orderStock",
buttonName: "submit",
error: e,
isFinal: true,
);
}
goToPaymentPendingSuccessScreen();
}
}