updateMehodDelivery method

Future<void> updateMehodDelivery(
  1. String orderID,
  2. int? orderItemID,
  3. String methodName
)

Implementation

Future<void> updateMehodDelivery(
  String orderID,
  int? orderItemID,
  String methodName,
) async {
  if (viewState.value.data != null) {
    isDeliveryUpdating.value = true;
    Checkout cartCopy = viewState.value.data!.copyWith();
    UpdateCartRequest request = mapCartToUpdateCartRequest(cartCopy);
    for (var element in request.dataList) {
      if (element.orderID == (int.tryParse(orderID) ?? -1) &&
          element.orderItemID == (orderItemID ?? element.orderItemID)) {
        element.deliveryMethod = methodName;
        if (altStoreId != null) {
          element.branchID = altStoreId;
        }
        if (altAddressId != null) {
          element.addressID = altAddressId;
        }
      }
    }

    // for (var element in request.dataList) {
    //   if (element.orderID == (int.tryParse(orderID) ?? -1) &&
    //       element.orderItemID == (orderItemID ?? element.orderItemID)) {
    //     element.deliveryMethod = methodName;
    //     if (altStoreId != null &&
    //         (orderItemID != null && element.orderItemID == orderItemID)) {
    //       element.branchID = altStoreId;
    //     }
    //   }
    //   if (altAddressId != null && element.branchID == altStoreId) {
    //     element.addressID = altAddressId;
    //   }
    // }

    altAddressId = null;
    altStoreId = null;

    final response = await cartService.updateCart(request);

    response.fold(
      (error) {
        isDeliveryUpdating.value = false;
        onError?.call(error.message);
      },
      (result) {
        isDeliveryUpdating.value = false;
        update();
      },
    );
  }
}