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": "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();
  }
}