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": "SELLIN",
"evdType": evdModeSelected.value == "-1" ? null : evdTypeSelected.value,
"sellerInfo": {
"partnerTypeId": storage.read("SellerPartnerTypeId") ??
"0" //selectSellerLevelId.value
},
"buyerInfo": {
"partnerId": storage.read("PARTNER_ID"),
},
"billTo": {
"partnerId": storage.read("PARTNER_ID"),
"address": {
"id": selectedBillingAddressContent.value.id ?? "",
"addressLine1":
selectedBillingAddressContent.value.addressLine1 ?? "",
"addressLine2":
selectedBillingAddressContent.value.addressLine2 ?? "",
"city": selectedBillingAddressContent.value.city ?? "",
"state": selectedBillingAddressContent.value.state ?? "",
"country": "",
"postalCode": selectedBillingAddressContent.value.postalCode ?? "",
"locationId1":
selectedBillingAddressContent.value.locationId1 ?? "",
"locationId2":
selectedBillingAddressContent.value.locationId2 ?? "",
"locationId3":
selectedBillingAddressContent.value.locationId3 ?? "",
"locationName1":
selectedBillingAddressContent.value.locationName1 ?? "",
"locationName2":
selectedBillingAddressContent.value.locationName2 ?? "",
"locationName3":
selectedBillingAddressContent.value.locationName3 ?? "",
},
},
"orderSourceAddress": changeSourceAddressStatus == 1
? {
"id": selectedSourceAddressContent.value.id,
"erpOrganizationId":
selectedSourceAddressContent.value.erpOrganizationCode,
"name": selectedSourceAddressContent.value.warehouseName,
"addressDetailsInfo": {
"addressLine1":
selectedSourceAddressContent.value.addressLine1,
"addressLine2":
selectedSourceAddressContent.value.addressLine2,
"street": selectedSourceAddressContent.value.streetName,
"city": "",
"state": "",
"country": "",
"postalCode": selectedSourceAddressContent.value.postalCode,
"locationId1": selectedSourceAddressContent.value.locationId1,
"locationId2": selectedSourceAddressContent.value.locationId2,
"locationId3": selectedSourceAddressContent.value.locationId3,
"locationName1":
selectedSourceAddressContent.value.locationName1,
"locationName2":
selectedSourceAddressContent.value.locationName2,
"locationName3":
selectedSourceAddressContent.value.locationName3,
"lattitude":
selectedDestinationAddressContent.value.latitude ?? "",
"longitude":
selectedDestinationAddressContent.value.longitude ?? "",
"fullAddress": selectedDestinationAddress.value ?? "",
}
}
: {
"id": selectedSourceModifyAddressContent.value.id,
"erpOrganizationId":
selectedSourceModifyAddressContent.value.erpOrganizationId,
"name": selectedSourceModifyAddressContent.value.name,
"addressDetailsInfo": {
"addressLine1": selectedSourceModifyAddressContent
.value.addressDetailsInfo?.addressLine1,
"addressLine2": selectedSourceModifyAddressContent
.value.addressDetailsInfo?.addressLine2,
"street": selectedSourceModifyAddressContent
.value.addressDetailsInfo?.street,
"city": "",
"state": "",
"country": "",
"postalCode": selectedSourceModifyAddressContent
.value.addressDetailsInfo?.postalCode,
"locationId1": selectedSourceModifyAddressContent
.value.addressDetailsInfo?.locationId1,
"locationId2": selectedSourceModifyAddressContent
.value.addressDetailsInfo?.locationId2,
"locationId3": selectedSourceModifyAddressContent
.value.addressDetailsInfo?.locationId3,
"locationName1": selectedSourceModifyAddressContent
.value.addressDetailsInfo?.locationName1,
"locationName2": selectedSourceModifyAddressContent
.value.addressDetailsInfo?.locationName2,
"locationName3": selectedSourceModifyAddressContent
.value.addressDetailsInfo?.locationName3,
"lattitude": selectedSourceModifyAddressContent
.value.addressDetailsInfo?.lattitude ??
"",
"longitude": selectedSourceModifyAddressContent
.value.addressDetailsInfo?.longitude ??
"",
"fullAddress": selectedSourceAddress.value ?? "",
}
},
"orderDestinationAddress": changeDestinationAddressStatus == 1
? {
"id": selectedDestinationAddressContent.value.id,
"name": selectedDestinationAddressContent.value.warehouseName,
"erpOrganizationId":
selectedDestinationAddressContent.value.erpOrganizationCode,
"addressDetailsInfo": {
"addressLine1":
selectedDestinationAddressContent.value.addressLine1,
"addressLine2":
selectedDestinationAddressContent.value.addressLine2,
"street": selectedDestinationAddressContent.value.streetName,
"city": "",
"state": "",
"country": "",
"postalCode":
selectedDestinationAddressContent.value.postalCode,
"locationId1":
selectedDestinationAddressContent.value.locationId1,
"locationId2":
selectedDestinationAddressContent.value.locationId2,
"locationId3":
selectedDestinationAddressContent.value.locationId3,
"locationName1":
selectedDestinationAddressContent.value.locationName1,
"locationName2":
selectedDestinationAddressContent.value.locationName2,
"locationName3":
selectedDestinationAddressContent.value.locationName3,
"lattitude":
selectedDestinationAddressContent.value.latitude ?? "",
"longitude":
selectedDestinationAddressContent.value.longitude ?? "",
"fullAddress": selectedDestinationAddress.value ?? "",
}
}
: {
"id": selectedDestinationModifyAddressContent.value.id,
"erpOrganizationId": selectedDestinationModifyAddressContent
.value.erpOrganizationId,
"name": selectedDestinationModifyAddressContent.value.name,
"addressDetailsInfo": {
"addressLine1": selectedDestinationModifyAddressContent
.value.addressDetailsInfo?.addressLine1,
"addressLine2": selectedDestinationModifyAddressContent
.value.addressDetailsInfo?.addressLine2,
"street": selectedDestinationModifyAddressContent
.value.addressDetailsInfo?.street,
"city": "",
"state": "",
"country": "",
"postalCode": selectedDestinationModifyAddressContent
.value.addressDetailsInfo?.postalCode,
"locationId1": selectedDestinationModifyAddressContent
.value.addressDetailsInfo?.locationId1,
"locationId2": selectedDestinationModifyAddressContent
.value.addressDetailsInfo?.locationId2,
"locationId3": selectedDestinationModifyAddressContent
.value.addressDetailsInfo?.locationId3,
"locationName1": selectedDestinationModifyAddressContent
.value.addressDetailsInfo?.locationName1,
"locationName2": selectedDestinationModifyAddressContent
.value.addressDetailsInfo?.locationName2,
"locationName3": selectedDestinationModifyAddressContent
.value.addressDetailsInfo?.locationName3,
"lattitude": selectedDestinationModifyAddressContent
.value.addressDetailsInfo?.lattitude ??
"",
"longitude": selectedDestinationModifyAddressContent
.value.addressDetailsInfo?.longitude ??
"",
"fullAddress": selectedDestinationAddress.value ?? "",
}
},
"shippingInfo": {
"shippingMethod": "PICKUP",
"amount": sellThruOrder.value.totalAmount,
},
"remarks": ""
};
await ApiClient(
baseUrl: ApiConstant.posBaseUrl,
onFetchRequestTime: (time) {
requestTime = time;
},
onFetchResponseTime: (time) {
responseTime = time;
},
screenName: "productListScreen",
)
.createOrder(
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 ?? "";
Get.to(() => const OrderStockSuccessScreen());
} else {
Helper.messageDialog(
Get.context!,
model.errors![0].code ?? localization.translate("tryAgain"),
model.errors![0].message ??
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();
}
}