addToCartInSellIn method

dynamic addToCartInSellIn(
  1. BuildContext context,
  2. String cartId,
  3. AddToCartSellInRequest request
)

Implementation

addToCartInSellIn(
  BuildContext context,
  String cartId,
  addToCartSellIn.AddToCartSellInRequest request,
) async {
  Helper.progressDialog(context, "Please wait..");
  List relatedParty = [];
  request.relatedParty?.forEach((element) {
    relatedParty.add(element.toJson());
  });
  List selectedCartoffers = [];
  request.selectedCartoffers?.forEach((element) {
    selectedCartoffers.add(element.toJson());
  });
  List shippingMethod = [];
  request.shippingMethod?.forEach((element) {
    shippingMethod.add(element.toJson());
  });

  // var data = json.encode([
  //   {
  //     "type": "PICK_UP",
  //     "addressDetails": [
  //       {
  //         "entityId": pickupSelectedAddress.value.partnerId ?? "",
  //         "entityName": pickupSelectedAddress.value.partnerName ?? "",
  //         "type": "PICK_UP_ADDRESS",
  //         "locationCode":
  //             pickupSelectedAddress.value.address?.locationCode ?? "",
  //         "lattitude":
  //             pickupSelectedAddress.value.address?.lattitude ?? "0.0",
  //         "longitude":
  //             pickupSelectedAddress.value.address?.longitude ?? "0.0",
  //         "streetName": pickupSelectedAddress.value.address?.streetName ?? "",
  //         "streetNameNe":
  //             pickupSelectedAddress.value.address?.streetNameNe ?? "",
  //         "postalCode": pickupSelectedAddress.value.address?.postalCode ?? "",
  //         "locationName1":
  //             pickupSelectedAddress.value.address?.locationName1 ?? "",
  //         "locationName2":
  //             pickupSelectedAddress.value.address?.locationName2 ?? "",
  //         "locationName3":
  //             pickupSelectedAddress.value.address?.locationName3 ?? "",
  //         "locationName4":
  //             pickupSelectedAddress.value.address?.locationName4 ?? "",
  //         "formattedAddress":
  //             "${pickupSelectedAddress.value.address?.streetName ?? ''},${pickupSelectedAddress.value.address?.postalCode ?? ''},${pickupSelectedAddress.value.address?.locationName1 ?? ''},${pickupSelectedAddress.value.address?.locationName2 ?? ''},${pickupSelectedAddress.value.address?.locationName3 ?? ''},${pickupSelectedAddress.value.address?.locationName4 ?? ''}"
  //       },
  //     ]
  //   }
  // ]);
  String requestTime = DateTime.now().toString();
  try {
    await dio
        .put(
      '${ApiConstant.posBaseUrl}pos-cart-service-svc/generic-carts/$cartId',
      data: {
        // 'category': request.category,
        // 'contextParameters': request.contextParameters?.toJson(),
        // 'relatedParty': relatedParty,
        // 'selectedCartoffers': selectedCartoffers,
        'shippingMethods': shippingMethod,
        //'adhocTax': adhocTax
      },
      options: Options(
        headers: {
          'X-User-Id': SecureStorageService.readSecureData(
            SecureStorageService.xUserId,
          ),
          'X-Roles': SecureStorageService.readSecureData(
            SecureStorageService.xUserId,
          ),
          'Accept-Language': storage.read("selected_language") ?? "en",
          'x-request-txn-id': UDID.uDID,
          'x-trace-id': UDID.uDIDTraceId,
          "Authorization": "Bearer ${SecureStorageService.readSecureData(
            SecureStorageService.accessToken,
          )}",
        },
      ),
    )
        .then((response) {
      UDID.setTraceId(response.headers.map[Constants.traceIdKey]?[0] ?? "");

      Helper.logEvent(
        "RESPONSE_EVENT",
        success: true,
        endPoint: "pos-cart-service-svc/generic-carts/$cartId",
        responseDate: DateTime.now().toString(),
        screenName: "stockOrder",
        requestDate: requestTime,
        transactionId: cartId,
      );
      if (response.data != null) {
        ConditionalLogs().customLog('updateCart${response.data}');
        CartModel model = CartModel();
        Map<String, dynamic> creditData = response.data;
        model = CartModel.fromJson(creditData);
        if (model.status == "POS200") {
          cart_id.value = model.data!.cartId!;
          discountList.value = model.data!.cartDiscountsList!;
          // for (var del in deliveryList) {
          //   if (deliveryList.isNotEmpty) {
          //     if (deliveryList.length == 1) {
          //       deliveryShippingSelected.value = deliveryList[0].type ?? "";
          //       selectedDeliveryPrice.value =
          //           double.parse(deliveryList[0].value?.amount ?? "0.0");
          //     }
          //   }
          //   // if (del.type == "STANDARD_DELIVERY") {
          //   //   selectedDeliveryPrice.value =
          //   //       double.parse(del.value?.amount ?? "0.0") ?? 0.0;
          //   //   break; // Exit loop once the condition is met
          //   // }
          // }
          updateSellThruOrder(model);

          Helper.close();
          isShippingMethodSelected.value = true;
          Helper.showCustomSnackbar1(
              localization.translate("updateCartSuccessfully"));
        } else {
          Helper.close();
          isShippingMethodSelected.value = false;
          // Helper.messageDialog(
          //   Get.context!,
          //   model.errors![0].code ?? localization.translate("tryAgain"),
          //   model.errors![0].localeMessage ??
          //       localization.translate("somethingWentWrong"),
          // );
        }
      } else {
        Helper.close();
        isShippingMethodSelected.value = false;
      }
    }).catchError((error) {
      ConditionalLogs().customLog("$error");
      Helper.close();
      isShippingMethodSelected.value = false;
      if (error is DioException) {
        UDID.setTraceId(
          error.response?.headers.map[Constants.traceIdKey]?[0] ?? "",
        );
        Helper.logEvent(
          "ERROR_EVENT",
          failure: true,
          requestDate: requestTime,
          endPoint: "pos-cart-service-svc/generic-carts/$cartId",
          responseDate: DateTime.now().toString(),
          screenName: "stockOrder",
          error: error,
          transactionId: cartId,
        );
      }
      // MainController mainController = Get.put(MainController());
      // mainController.showErrorPopup();
    });
  } catch (err, stacktrace) {
    ConditionalLogs().customLog("$stacktrace");
    Helper.close();
    isShippingMethodSelected.value = false;
    if (err is DioException) {
      UDID.setTraceId(
        err.response?.headers.map[Constants.traceIdKey]?[0] ?? "",
      );
      Helper.logEvent(
        "ERROR_EVENT",
        failure: true,
        requestDate: requestTime,
        endPoint: "pos-cart-service-svc/generic-carts/$cartId",
        responseDate: DateTime.now().toString(),
        screenName: "stockOrder",
        error: err,
        transactionId: cartId,
      );
    }
  }
}