Implementation
void customerUpdate(
BuildContext context, {
bool isRejected = false,
}) async {
Helper.progressDialog(context, "");
GenericUploadResponse? outlet1;
GenericUploadResponse? outlet2;
try {
// if (outletImages.length >= 2) {
// outlet1 = outletImages[0];
// outlet2 = outletImages[1];
// }
var body = {
"profile": {
"partnerId": partners.value.profile?.partnerId,
"partnerTypeId": partners.value.profile?.partnerTypeId,
"partnerType": partners.value.profile?.partnerType,
"partnerName": partners.value.profile?.partnerName,
"partnerNameNe": partners.value.profile?.partnerNameNe,
"parentId": partners.value.profile?.parentId,
"firstName": partners.value.profile?.firstName,
"lastName": partners.value.profile?.lastName,
"emailId": profileEmailController.text,
"phone": profileMobileController.text,
// "reason": profileReasonController.text,
"alternatePhone": profileLandPhoneController.text,
"levelId": partners.value.profile?.levelId,
"commercialChannelId": partners.value.profile?.commercialChannelId,
"status": partners.value.profile?.status,
"approvalAction": partners.value.profile?.approvalAction,
"approvalStatus": partners.value.profile?.approvalStatus,
"approvalRemarks": partners.value.profile?.approvalRemarks,
"language": partners.value.profile?.language,
"preferredCustomerName":
partners.value.profile?.preferredCustomerName,
"levelName": partners.value.profile?.levelName,
"parentName": partners.value.profile?.parentName,
"statusName": partners.value.profile?.statusName,
"address": partners.value.profile?.address?.toJson(),
"hierarchyId": partners.value.profile?.hierarchyId,
"reason": profileReasonController.text,
"fields": partners.value.profile?.fields
?.map((field) => field.toJson())
.toList(),
"fullName": profileNameController.text,
"approvalStatusName": partners.value.profile?.approvalStatusName,
"profileGroup": {
"company": [
{
"field": "partnerId",
"value": partners.value.profile?.parentId,
"dataType": null,
"editable": false
},
{
"field": "customerCode",
"value": partners.value.profile?.profileGroup?.company
?.firstWhereOrNull(
(data) => data.field == "customerCode")
?.value ??
"",
"dataType": null,
"editable": false
},
{
"field": "vatable",
"value": partners.value.profile?.profileGroup?.company
?.firstWhereOrNull((data) => data.field == "vatable")
?.value ??
"",
"dataType": null,
"editable": false
},
{
"field": "vatNumber",
"value": partners.value.profile?.profileGroup?.company
?.firstWhereOrNull((data) => data.field == "vatNumber")
?.value ??
"",
"dataType": null,
"editable": false
},
{
"field": "pgpUploadId",
"value": partners.value.profile?.profileGroup?.company
?.firstWhereOrNull((data) => data.field == "pgpUploadId")
?.value,
"dataType": null,
"editable": false
},
{
"field": "minOrderQuantityPerMonth",
"value": partners.value.profile?.profileGroup?.company
?.firstWhereOrNull(
(data) => data.field == "minOrderQuantityPerMonth")
?.value,
"dataType": null,
"editable": false
},
{
"field": "maxOrderQuantityPerMonth",
"value": partners.value.profile?.profileGroup?.company
?.firstWhereOrNull(
(data) => data.field == "maxOrderQuantityPerMonth")
?.value,
"dataType": null,
"editable": false
},
{
"field": "orderTypeNames",
"value": partners.value.profile?.profileGroup?.company
?.firstWhereOrNull((data) => data.field == "orderTypeNames")
?.value,
"dataType": null,
"editable": false
},
{
"field": "evdNumber",
"value": partners.value.profile?.profileGroup?.company
?.firstWhereOrNull((data) => data.field == "evdNumber")
?.value,
"dataType": null,
"editable": false
},
{
"field": "payTo",
"value": partners.value.profile?.profileGroup?.company
?.firstWhereOrNull((data) => data.field == "payTo")
?.value,
"dataType": null,
"editable": false
},
{
"field": "accountNumber",
"value": orderAccController.text,
"dataType": null,
"editable": false
},
{
"field": "tin",
"value": orderTinController.text,
"dataType": null,
"editable": false
},
{
"field": "orderType",
"value": selectedOrderType.join(", "),
"dataType": null,
"editable": false
},
{
"field": "voucherNumber",
"value": orderVoucherActivationNumberController.text,
"dataType": null,
"editable": false
},
{
"field": "loginMsisdn",
"value": orderOtpMobileNumberController.text,
"dataType": null,
"editable": false
},
{
"field": "minOrderQuantity",
"value": orderMinOrderQtController.text,
"dataType": null,
"editable": false
},
{
"field": "maxOrderQuantity",
"value": orderMaxOrderQtController.text,
"dataType": null,
"editable": false
},
]
},
"eloadTillDate": profileELoadController.text,
"partnerCode": partners.value.profile?.partnerCode,
"outletId": partners.value.profile?.outletId,
"approvalId": partners.value.profile?.approvalId,
"pricingSegment": partners.value.profile?.pricingSegment,
"pricingSegmentName": partners.value.profile?.pricingSegmentName,
"hasServiceParent": partners.value.profile?.hasServiceParent,
"serviceParent": serviceParentList,
"idNumber": partners.value.profile?.idNumber,
"locationType": selectedLocationType.value.id,
"locationTypeName": selectedLocationType.value.type,
"marketSegment": partners.value.profile?.marketSegment,
"marketSegmentName": partners.value.profile?.marketSegmentName,
"erpDcId": partners.value.profile?.erpDcId,
"erpDsoId": partners.value.profile?.erpDsoId,
"erpAccountNumber": partners.value.profile?.erpAccountNumber,
"erpDsoAccountId": partners.value.profile?.erpDsoAccountId,
"erpLocationId": partners.value.profile?.erpLocationId,
"availableBalance": partners.value.profile?.availableBalance,
"currentBalance": partners.value.profile?.currentBalance,
"partnerMaxLimit": partners.value.profile?.partnerMaxLimit,
"warehouseType": selectedWarehouseRestriction.value.dropDownId,
"warehouseTypeName": selectedWarehouseRestriction.value.dropDownValue,
"operatorWarehouses": selectedWarehouseOperators.isNotEmpty
? selectedWarehouseOperators
: null,
"contractRenewed": partners.value.profile?.contractRenewed,
"bulkUploadStatus": partners.value.profile?.bulkUploadStatus,
},
"addressDetails": {
"address":
addressEditList.value?.map((address) => address.toJson()).toList()
// partners.value.addressDetails?.address!.length == 2
// ? {
// "addressType": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .addressType,
// "locationId1": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .locationId1,
// "locationId2": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .locationId2,
// "locationId3": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .locationId3,
// "locationId4": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .locationId4,
// "multiLocationId1": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .multiLocationId1,
// "multiLocationId2": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .multiLocationId2,
// "multiLocationId3": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .multiLocationId3,
// "multiLocationId4": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .multiLocationId4,
// "postalCode": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .postalCode,
// "streetName": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .streetName,
// "streetNameNe": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .streetNameNe,
// "building": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .building,
// "buildingNe": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .buildingNe,
// "locationName1": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .locationName1,
// "locationName2": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .locationName2,
// "locationName3": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .locationName3,
// "locationName4": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .locationName4,
// "lattitude": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .lattitude,
// "longitude": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .longitude,
// "id": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .id,
// "defaultAddress": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .defaultAddress,
// "addressIdentifier": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .addressIdentifier,
// "rootLocationId": partners.value.addressDetails?.address
// ?.firstWhere((element) => element.addressType == 2)
// .rootLocationId
// }
// : {}
,
"shipToParty": partners.value.addressDetails?.shipToParty,
"sellToParty": partners.value.addressDetails?.sellToParty,
"billToParty": partners.value.addressDetails?.billToParty,
"payer": partners.value.addressDetails?.payer,
"shipToParty_partnerId":
partners.value.addressDetails?.shipToPartyPartnerId,
"sellToParty_partnerId":
partners.value.addressDetails?.sellToPartyPartnerId,
"billToParty_partnerId":
partners.value.addressDetails?.billToPartyPartnerId,
"payer_partnerId": partners.value.addressDetails?.payerPartnerId
},
"signatory": partners.value.signatory,
"account": partners.value.account,
"additionalInfo": partners.value.additionalInfo,
"orderRules": {
"offers": partners.value.orderRules?.offers
?.map((address) => address.toJson())
.toList()
},
"contactDetails": partners.value.contactDetails
?.map((address) => address.toJson())
.toList(),
"creditType": partners.value.creditType?.toJson(),
"wallet": partners.value.wallet?.toJson(),
"warehouse": partners.value.warehouse,
"documents": [
{
"documentId": pgpImage.value.documentId,
"documentName": pgpImage.value.documentName,
"documentType": "pgpUploadId"
},
]
};
String jsonString = jsonEncode(body);
log(jsonString);
String requestTime = "";
String responseTime = "";
await ApiClient()
.customerUpdate(
body: body,
xUserId: SecureStorageService.readSecureData(
SecureStorageService.xUserId,
) ?? "",
id: 7,
)
.then((value) {
if (value.responseMessage != null && value.transactionId != null) {
Helper.close();
Helper.logEvent(
"RESPONSE_EVENT",
success: true,
isFinal: true,
endPoint: "${Api.customerUpdate}/7",
responseDate: responseTime,
screenName: "customerManagement",
buttonName: "update",
requestDate: requestTime,
);
final Localization localization = Localization.getInstance();
Helper.messageDialog(
context,
localization.translate("success"),
value.responseMessage ?? "",
isUDIDRequired: false,
isSuccess: true,
isTitlerequired: true,
isDismissible: false,
onTap: () {
if (levelId == "10") {
Helper.close();
} else {
Helper.close();
Helper.close();
}
resetWholeEditData();
},
);
} else {
Helper.close();
}
}).catchError(
(error) {
GenericResponse res = GenericResponse.fromJson(error?.response?.data);
ConditionalLogs().customLog("$error");
Helper.close();
Helper.logEvent(
"RESPONSE_EVENT",
failure: true,
isFinal: true,
endPoint: "${Api.customerUpdate}/7",
responseDate: responseTime,
screenName: "customerManagement",
buttonName: "update",
requestDate: requestTime,
);
final Localization localization = Localization.getInstance();
Helper.messageDialog(
Get.context!,
localization.translate("tryAgain"),
res.responseMessage ?? localization.translate("unknownError"),
);
},
);
} catch (e, st) {
Helper.close();
ConditionalLogs().customLog("$st");
}
}