You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ak...@apache.org on 2020/02/07 13:11:09 UTC

[ofbiz-framework] branch trunk updated: Fixed: Unnecessary ship groups in orders. (OFBIZ-10489)

This is an automated email from the ASF dual-hosted git repository.

akashjain pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 701ec7f  Fixed: Unnecessary ship groups in orders. (OFBIZ-10489)
701ec7f is described below

commit 701ec7f3ea66e6e3cff50516a8a30897136a58a7
Author: akash <ak...@hotwaxsystems.com>
AuthorDate: Fri Feb 7 18:41:10 2020 +0530

    Fixed: Unnecessary ship groups in orders.
    (OFBIZ-10489)
    
    Thanks, Oleg Andreyev and Mohammad Kathawala for your contribution.
---
 .../order/shoppingcart/ShoppingCartHelper.java     | 23 ++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartHelper.java b/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartHelper.java
index 1b13c84..0f2f9dd 100644
--- a/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartHelper.java
+++ b/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartHelper.java
@@ -856,7 +856,16 @@ public class ShoppingCartHelper {
                                         BigDecimal minQuantity = ShoppingCart.getMinimumOrderQuantity(delegator, item.getBasePrice(), item.getProductId());
                                         oldQuantity = item.getQuantity();
                                         if (oldQuantity.compareTo(quantity) != 0) {
-                                            cart.setShipmentMethodTypeId(index, null);
+                                            GenericValue product = item.getProduct();
+                                            //Reset shipment method information in cart only if shipping applies on product.
+                                            if (UtilValidate.isNotEmpty(product) && ProductWorker.shippingApplies(product)) {
+                                                for (int shipGroupIndex = 0; shipGroupIndex < cart.getShipGroupSize(); shipGroupIndex++) {
+                                                    String shipContactMechId = cart.getShippingContactMechId(shipGroupIndex);
+                                                    if (UtilValidate.isNotEmpty(shipContactMechId)) {
+                                                        cart.setShipmentMethodTypeId(shipGroupIndex, null);
+                                                    }
+                                                }
+                                            }
                                         }
                                         if (quantity.compareTo(minQuantity) < 0) {
                                             quantity = minQuantity;
@@ -940,7 +949,17 @@ public class ShoppingCartHelper {
             }
             try {
                 this.cart.removeCartItem(itemIndex, dispatcher);
-                cart.setShipmentMethodTypeId(itemIndex, null);
+                GenericValue product = item.getProduct();
+                //Reset shipment method information in cart only if shipping applies on product.
+                if (UtilValidate.isNotEmpty(product) && ProductWorker.shippingApplies(product)) {
+                    for (int shipGroupIndex = 0; shipGroupIndex < cart.getShipGroupSize(); shipGroupIndex++) {
+                        String shipContactMechId = cart.getShippingContactMechId(shipGroupIndex);
+                        if (UtilValidate.isNotEmpty(shipContactMechId)) {
+                            cart.setShipmentMethodTypeId(shipGroupIndex, null);
+                        }
+                    }
+                }
+
             } catch (CartItemModifyException e) {
                 result = ServiceUtil.returnError(new ArrayList<String>());
                 errorMsgs.add(e.getMessage());