Author: jleroux
Date: Mon Feb 24 10:23:19 2014
New Revision: 1571213

URL: http://svn.apache.org/r1571213
Log:
Reverts r1571198, there was too much unwanted changes due to my "Save Actions" 
setting in Eclipse. Better to keep things clear!

Modified:
    
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartItem.java

Modified: 
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartItem.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartItem.java?rev=1571213&r1=1571212&r2=1571213&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartItem.java
 (original)
+++ 
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartItem.java
 Mon Feb 24 10:23:19 2014
@@ -79,7 +79,7 @@ public class ShoppingCartItem implements
     public static final String resource = "OrderUiLabels";
     public static final String resource_error = "OrderErrorUiLabels";
     public static String[] attributeNames = { "shoppingListId", 
"shoppingListItemSeqId", "surveyResponses",
-        "itemDesiredDeliveryDate", "itemComment", "fromInventoryItemId"};
+                                              "itemDesiredDeliveryDate", 
"itemComment", "fromInventoryItemId"};
 
     public static final MathContext generalRounding = new MathContext(10);
 
@@ -143,7 +143,7 @@ public class ShoppingCartItem implements
 
     private Map<String, String> contactMechIdsMap = FastMap.newInstance();
     private List<GenericValue> orderItemPriceInfos = null;
-    private final List<GenericValue> itemAdjustments = FastList.newInstance();
+    private List<GenericValue> itemAdjustments = FastList.newInstance();
     private boolean isPromo = false;
     private BigDecimal promoQuantityUsed = BigDecimal.ZERO;
     private Map<GenericPK, BigDecimal> quantityUsedPerPromoCandidate = new 
HashMap<GenericPK, BigDecimal>();
@@ -177,7 +177,7 @@ public class ShoppingCartItem implements
     public static ShoppingCartItem makePurchaseOrderItem(Integer cartLocation, 
String productId, BigDecimal selectedAmount, BigDecimal quantity,
             Map<String, GenericValue> additionalProductFeatureAndAppls, 
Map<String, Object> attributes, String prodCatalogId, ProductConfigWrapper 
configWrapper, String itemType, ShoppingCart.ShoppingCartItemGroup itemGroup,
             LocalDispatcher dispatcher, ShoppingCart cart, GenericValue 
supplierProduct, Timestamp shipBeforeDate, Timestamp shipAfterDate, Timestamp 
cancelBackOrderDate)
-                    throws CartItemModifyException, ItemNotFoundException {
+                throws CartItemModifyException, ItemNotFoundException {
         Delegator delegator = cart.getDelegator();
         GenericValue product = null;
 
@@ -191,7 +191,7 @@ public class ShoppingCartItem implements
             Map<String, Object> messageMap = UtilMisc.<String, 
Object>toMap("productId", productId);
 
             String excMsg = UtilProperties.getMessage(resource_error, 
"item.product_not_found",
-                    messageMap , cart.getLocale());
+                                          messageMap , cart.getLocale());
 
             Debug.logWarning(excMsg, module);
             throw new ItemNotFoundException(excMsg);
@@ -201,10 +201,10 @@ public class ShoppingCartItem implements
         // check to see if product is virtual
         if ("Y".equals(product.getString("isVirtual"))) {
             Map<String, Object> messageMap = UtilMisc.<String, 
Object>toMap("productName", product.getString("productName"),
-                    "productId", product.getString("productId"));
+                                            "productId", 
product.getString("productId"));
 
             String excMsg = UtilProperties.getMessage(resource_error, 
"item.cannot_add_product_virtual",
-                    messageMap , cart.getLocale());
+                                          messageMap , cart.getLocale());
 
             Debug.logWarning(excMsg, module);
             throw new CartItemModifyException(excMsg);
@@ -216,10 +216,10 @@ public class ShoppingCartItem implements
         if ("AGGREGATED".equals(product.getString("productTypeId")) || 
"AGGREGATED_SERVICE".equals(product.getString("productTypeId"))) {
             if (configWrapper == null || !configWrapper.isCompleted()) {
                 Map<String, Object> messageMap = UtilMisc.<String, 
Object>toMap("productName", product.getString("productName"),
-                        "productId", product.getString("productId"));
+                                                "productId", 
product.getString("productId"));
 
                 String excMsg = UtilProperties.getMessage(resource_error, 
"item.cannot_add_product_not_configured_correctly",
-                        messageMap , cart.getLocale());
+                                              messageMap , cart.getLocale());
 
                 Debug.logWarning(excMsg, module);
                 throw new CartItemModifyException(excMsg);
@@ -298,7 +298,7 @@ public class ShoppingCartItem implements
             Timestamp reservStart, BigDecimal reservLength, BigDecimal 
reservPersons, Timestamp shipBeforeDate, Timestamp shipAfterDate,
             Map<String, GenericValue> additionalProductFeatureAndAppls, 
Map<String, Object> attributes, String prodCatalogId, ProductConfigWrapper 
configWrapper,
             String itemType, ShoppingCart.ShoppingCartItemGroup itemGroup, 
LocalDispatcher dispatcher, ShoppingCart cart, Boolean triggerExternalOpsBool, 
Boolean triggerPriceRulesBool, String parentProductId, Boolean 
skipInventoryChecks, Boolean skipProductChecks)
-                    throws CartItemModifyException, ItemNotFoundException {
+            throws CartItemModifyException, ItemNotFoundException {
 
         return 
makeItem(cartLocation,productId,selectedAmount,quantity,unitPrice,
                 
reservStart,reservLength,reservPersons,null,null,shipBeforeDate,shipAfterDate,
@@ -317,7 +317,7 @@ public class ShoppingCartItem implements
             Timestamp reservStart, BigDecimal reservLength, BigDecimal 
reservPersons,String accommodationMapId,String accommodationSpotId, Timestamp 
shipBeforeDate, Timestamp shipAfterDate,
             Map<String, GenericValue> additionalProductFeatureAndAppls, 
Map<String, Object> attributes, String prodCatalogId, ProductConfigWrapper 
configWrapper,
             String itemType, ShoppingCart.ShoppingCartItemGroup itemGroup, 
LocalDispatcher dispatcher, ShoppingCart cart, Boolean triggerExternalOpsBool, 
Boolean triggerPriceRulesBool, String parentProductId, Boolean 
skipInventoryChecks, Boolean skipProductChecks)
-                    throws CartItemModifyException, ItemNotFoundException {
+            throws CartItemModifyException, ItemNotFoundException {
         Delegator delegator = cart.getDelegator();
         GenericValue product = findProduct(delegator, 
skipProductChecks.booleanValue(), prodCatalogId, productId, cart.getLocale());
         GenericValue parentProduct = null;
@@ -373,17 +373,17 @@ public class ShoppingCartItem implements
             ShoppingCart cart, Boolean triggerExternalOpsBool, Boolean 
triggerPriceRulesBool, GenericValue parentProduct, Boolean skipInventoryChecks, 
Boolean skipProductChecks) throws CartItemModifyException {
 
         return makeItem(cartLocation,product,selectedAmount,
-                quantity,unitPrice,reservStart,reservLength,reservPersons,
-                
null,null,shipBeforeDate,shipAfterDate,additionalProductFeatureAndAppls,attributes,
-                prodCatalogId,configWrapper,itemType,itemGroup,dispatcher,cart,
-                
triggerExternalOpsBool,triggerPriceRulesBool,parentProduct,skipInventoryChecks,skipProductChecks);
+               quantity,unitPrice,reservStart,reservLength,reservPersons,
+               
null,null,shipBeforeDate,shipAfterDate,additionalProductFeatureAndAppls,attributes,
+               prodCatalogId,configWrapper,itemType,itemGroup,dispatcher,cart,
+               
triggerExternalOpsBool,triggerPriceRulesBool,parentProduct,skipInventoryChecks,skipProductChecks);
     }
 
     /**
      * Makes a ShoppingCartItem and adds it to the cart.
      * @param accommodationMapId Optional. reservations add into workeffort
      * @param accommodationSpotId Optional. reservations add into workeffort
-     */
+    */
     public static ShoppingCartItem makeItem(Integer cartLocation, GenericValue 
product, BigDecimal selectedAmount,
             BigDecimal quantity, BigDecimal unitPrice, Timestamp reservStart, 
BigDecimal reservLength, BigDecimal reservPersons,
             String accommodationMapId,String accommodationSpotId,
@@ -392,7 +392,7 @@ public class ShoppingCartItem implements
             ShoppingCart cart, Boolean triggerExternalOpsBool, Boolean 
triggerPriceRulesBool, GenericValue parentProduct, Boolean skipInventoryChecks, 
Boolean skipProductChecks) throws CartItemModifyException {
 
         ShoppingCartItem newItem = new ShoppingCartItem(product, 
additionalProductFeatureAndAppls, attributes, prodCatalogId, configWrapper, 
cart.getLocale(), itemType, itemGroup, parentProduct);
-
+        
         selectedAmount = selectedAmount == null ? BigDecimal.ZERO : 
selectedAmount;
         unitPrice = unitPrice == null ? BigDecimal.ZERO : unitPrice;
         reservLength = reservLength == null ? BigDecimal.ZERO : reservLength;
@@ -403,10 +403,10 @@ public class ShoppingCartItem implements
         // check to see if product is virtual
         if ("Y".equals(product.getString("isVirtual"))) {
             Map<String, Object> messageMap = UtilMisc.<String, 
Object>toMap("productName", product.getString("productName"),
-                    "productId", product.getString("productId"));
+                                            "productId", 
product.getString("productId"));
 
             String excMsg = UtilProperties.getMessage(resource_error, 
"item.cannot_add_product_virtual",
-                    messageMap , cart.getLocale());
+                                          messageMap , cart.getLocale());
 
             Debug.logWarning(excMsg, module);
             throw new CartItemModifyException(excMsg);
@@ -422,55 +422,55 @@ public class ShoppingCartItem implements
         if ("ASSET_USAGE".equals(product.getString("productTypeId")) || 
"ASSET_USAGE_OUT_IN".equals(product.getString("productTypeId"))) {
             if (reservStart == null)    {
                 String excMsg = UtilProperties.getMessage(resource_error, 
"item.missing_reservation_starting_date",
-                        cart.getLocale());
+                                              cart.getLocale());
                 throw new CartItemModifyException(excMsg);
             }
 
             if (reservStart.before(UtilDateTime.nowTimestamp()))    {
                 String excMsg = UtilProperties.getMessage(resource_error, 
"item.reservation_from_tomorrow",
-                        cart.getLocale());
+                                              cart.getLocale());
                 throw new CartItemModifyException(excMsg);
             }
             newItem.setReservStart(reservStart);
 
             if (reservLength.compareTo(BigDecimal.ONE) < 0)    {
                 String excMsg = UtilProperties.getMessage(resource_error, 
"item.number_of_days",
-                        cart.getLocale());
+                                              cart.getLocale());
                 throw new CartItemModifyException(excMsg);
             }
             newItem.setReservLength(reservLength);
 
             if (product.get("reservMaxPersons") != null) {
                 BigDecimal reservMaxPersons = 
product.getBigDecimal("reservMaxPersons");
-                if (reservMaxPersons.compareTo(reservPersons) < 0)    {
-                    Map<String, Object> messageMap = UtilMisc.<String, 
Object>toMap("reservMaxPersons", product.getString("reservMaxPersons"),
-                            "reservPersons", reservPersons);
-                    String excMsg = UtilProperties.getMessage(resource_error, 
"item.maximum_number_of_person_renting",
-                            messageMap, cart.getLocale());
+                 if (reservMaxPersons.compareTo(reservPersons) < 0)    {
+                     Map<String, Object> messageMap = UtilMisc.<String, 
Object>toMap("reservMaxPersons", product.getString("reservMaxPersons"),
+                                                     "reservPersons", 
reservPersons);
+                     String excMsg = UtilProperties.getMessage(resource_error, 
"item.maximum_number_of_person_renting",
+                                                   messageMap, 
cart.getLocale());
+
+                     Debug.logInfo(excMsg,module);
+                     throw new CartItemModifyException(excMsg);
+                 }
+             }
+             newItem.setReservPersons(reservPersons);
 
-                    Debug.logInfo(excMsg,module);
-                    throw new CartItemModifyException(excMsg);
-                }
-            }
-            newItem.setReservPersons(reservPersons);
+             if (product.get("reserv2ndPPPerc") != null)
+                 
newItem.setReserv2ndPPPerc(product.getBigDecimal("reserv2ndPPPerc"));
 
-            if (product.get("reserv2ndPPPerc") != null)
-                
newItem.setReserv2ndPPPerc(product.getBigDecimal("reserv2ndPPPerc"));
+             if (product.get("reservNthPPPerc") != null)
+                 
newItem.setReservNthPPPerc(product.getBigDecimal("reservNthPPPerc"));
 
-            if (product.get("reservNthPPPerc") != null)
-                
newItem.setReservNthPPPerc(product.getBigDecimal("reservNthPPPerc"));
-
-            if ((accommodationMapId != null) && (accommodationSpotId != null)) 
{
+             if ((accommodationMapId != null) && (accommodationSpotId != 
null)) {
                 
newItem.setAccommodationId(accommodationMapId,accommodationSpotId);
-            }
+             }
 
             // check to see if the related fixed asset is available for rent
             String isAvailable = 
checkAvailability(product.getString("productId"), quantity, reservStart, 
reservLength, cart);
             if (isAvailable.compareTo("OK") != 0) {
                 Map<String, Object> messageMap = UtilMisc.<String, 
Object>toMap("productId", product.getString("productId"),
-                        "availableMessage", isAvailable);
+                                                "availableMessage", 
isAvailable);
                 String excMsg = UtilProperties.getMessage(resource_error, 
"item.product_not_available",
-                        messageMap, cart.getLocale());
+                                              messageMap, cart.getLocale());
                 Debug.logInfo(excMsg, module);
                 throw new CartItemModifyException(isAvailable);
             }
@@ -542,30 +542,30 @@ public class ShoppingCartItem implements
     }
 
     public static void isValidCartProduct(ProductConfigWrapper configWrapper, 
GenericValue product, Timestamp nowTimestamp, Locale locale) throws 
CartItemModifyException {
-        // check to see if introductionDate hasn't passed yet
-        if (product.get("introductionDate") != null && 
nowTimestamp.before(product.getTimestamp("introductionDate"))) {
-            Map<String, Object> messageMap = UtilMisc.<String, 
Object>toMap("productName", product.getString("productName"),
-                    "productId", product.getString("productId"));
+            // check to see if introductionDate hasn't passed yet
+            if (product.get("introductionDate") != null && 
nowTimestamp.before(product.getTimestamp("introductionDate"))) {
+                Map<String, Object> messageMap = UtilMisc.<String, 
Object>toMap("productName", product.getString("productName"),
+                                                "productId", 
product.getString("productId"));
 
-            String excMsg = UtilProperties.getMessage(resource_error, 
"item.cannot_add_product_not_yet_available",
-                    messageMap , locale);
+                String excMsg = UtilProperties.getMessage(resource_error, 
"item.cannot_add_product_not_yet_available",
+                                              messageMap , locale);
 
-            Debug.logWarning(excMsg, module);
-            throw new CartItemModifyException(excMsg);
-        }
+                Debug.logWarning(excMsg, module);
+                throw new CartItemModifyException(excMsg);
+            }
 
-        // check to see if salesDiscontinuationDate has passed
-        if (product.get("salesDiscontinuationDate") != null && 
nowTimestamp.after(product.getTimestamp("salesDiscontinuationDate"))) {
-            Map<String, Object> messageMap = UtilMisc.<String, 
Object>toMap("productName", product.getString("productName"),
-                    "productId", product.getString("productId"));
+            // check to see if salesDiscontinuationDate has passed
+            if (product.get("salesDiscontinuationDate") != null && 
nowTimestamp.after(product.getTimestamp("salesDiscontinuationDate"))) {
+                Map<String, Object> messageMap = UtilMisc.<String, 
Object>toMap("productName", product.getString("productName"),
+                                                "productId", 
product.getString("productId"));
 
-            String excMsg = UtilProperties.getMessage(resource_error, 
"item.cannot_add_product_no_longer_available",
-                    messageMap , locale);
+                String excMsg = UtilProperties.getMessage(resource_error, 
"item.cannot_add_product_no_longer_available",
+                                              messageMap , locale);
 
-            Debug.logWarning(excMsg, module);
-            throw new CartItemModifyException(excMsg);
-        }
-        /*
+                Debug.logWarning(excMsg, module);
+                throw new CartItemModifyException(excMsg);
+            }
+            /*
             if (product.get("salesDiscWhenNotAvail") != null && 
"Y".equals(product.getString("salesDiscWhenNotAvail"))) {
                 // check atp and if <= 0 then the product is no more available 
because
                 // all the units in warehouse are reserved by other sales 
orders and no new purchase orders will be done
@@ -581,19 +581,19 @@ public class ShoppingCartItem implements
                     throw new CartItemModifyException(excMsg);
                 }
             }
-         */
+             */
 
-        // check to see if the product is fully configured
-        if ("AGGREGATED".equals(product.getString("productTypeId"))|| 
"AGGREGATED_SERVICE".equals(product.getString("productTypeId"))) {
-            if (configWrapper == null || !configWrapper.isCompleted()) {
-                Map<String, Object> messageMap = UtilMisc.<String, 
Object>toMap("productName", product.getString("productName"),
-                        "productId", product.getString("productId"));
-                String excMsg = UtilProperties.getMessage(resource_error, 
"item.cannot_add_product_not_configured_correctly",
-                        messageMap , locale);
-                Debug.logWarning(excMsg, module);
-                throw new CartItemModifyException(excMsg);
+            // check to see if the product is fully configured
+            if ("AGGREGATED".equals(product.getString("productTypeId"))|| 
"AGGREGATED_SERVICE".equals(product.getString("productTypeId"))) {
+                if (configWrapper == null || !configWrapper.isCompleted()) {
+                    Map<String, Object> messageMap = UtilMisc.<String, 
Object>toMap("productName", product.getString("productName"),
+                                                    "productId", 
product.getString("productId"));
+                    String excMsg = UtilProperties.getMessage(resource_error, 
"item.cannot_add_product_not_configured_correctly",
+                                                  messageMap , locale);
+                    Debug.logWarning(excMsg, module);
+                    throw new CartItemModifyException(excMsg);
+                }
             }
-        }
     }
 
     /**
@@ -728,7 +728,7 @@ public class ShoppingCartItem implements
     /** Creates new ShoppingCartItem object. */
     protected ShoppingCartItem(GenericValue product, Map<String, GenericValue> 
additionalProductFeatureAndAppls, Map<String, Object> attributes, String 
prodCatalogId, Locale locale, String itemType, 
ShoppingCart.ShoppingCartItemGroup itemGroup) {
         this(product, additionalProductFeatureAndAppls, attributes, 
prodCatalogId, null, locale, itemType, itemGroup, null);
-        if (product != null) {
+         if (product != null) {
             String productName = 
ProductContentWrapper.getProductContentAsText(product, "PRODUCT_NAME", 
this.locale, null);
             // if the productName is null or empty, see if there is an 
associated virtual product and get the productName of that product
             if (UtilValidate.isEmpty(productName)) {
@@ -947,7 +947,7 @@ public class ShoppingCartItem implements
                 return msg;
             } else {
                 Map<String, Object> messageMap = UtilMisc.<String, 
Object>toMap("quantityReq", quantity,
-                        "quantityAvail", 
fixedAsset.getString("productionCapacity"));
+                                                "quantityAvail", 
fixedAsset.getString("productionCapacity"));
                 String msg = UtilProperties.getMessage(resource_error, 
"item.availableQnt", messageMap , cart.getLocale());
                 return msg;
             }
@@ -1027,7 +1027,7 @@ public class ShoppingCartItem implements
 
         if (this.isPromo) {
             Map<String, Object> messageMap = UtilMisc.<String, 
Object>toMap("productName", this.getName(),
-                    "productId",   productId);
+                                            "productId",   productId);
             String excMsg = UtilProperties.getMessage(resource, 
"OrderCannotChangeQuantityInPromotion", messageMap , cart.getLocale());
             throw new CartItemModifyException(excMsg);
         }
@@ -1040,8 +1040,8 @@ public class ShoppingCartItem implements
             if (_product != null && quantity.compareTo(this.quantity) > 0) {
                 if (!isInventoryAvailableOrNotRequired(quantity, 
productStoreId, dispatcher)) {
                     Map<String, Object> messageMap = UtilMisc.<String, 
Object>toMap("requestedQuantity", 
UtilFormatOut.formatQuantity(quantity.doubleValue()),
-                            "productName",       this.getName(),
-                            "productId",         productId);
+                                                    "productName",       
this.getName(),
+                                                    "productId",         
productId);
                     String excMsg = UtilProperties.getMessage(resource, 
"OrderDoNotHaveEnoughProducts", messageMap , cart.getLocale());
                     Debug.logWarning(excMsg, module);
                     throw new CartItemModifyException(excMsg);
@@ -1132,7 +1132,7 @@ public class ShoppingCartItem implements
                 }
             }
             cart.setItemShipGroupQty(this, quantity, shipGroupIndex);
-             */
+            */
             cart.setItemShipGroupQty(this, quantity, 0);
         }
     }
@@ -1158,10 +1158,10 @@ public class ShoppingCartItem implements
                 }else{
                     priceContext.put("product", this.getProduct());
                 }
-
+                
                 priceContext.put("quantity", this.getQuantity());
                 priceContext.put("amount", this.getSelectedAmount());
-
+                
                 if (cart.getOrderType().equals("PURCHASE_ORDER")) {
                     priceContext.put("currencyUomId", cart.getCurrency());
                     Map<String, Object> priceResult = 
dispatcher.runSync("calculatePurchasePrice", priceContext);
@@ -1172,13 +1172,13 @@ public class ShoppingCartItem implements
                     if (!validPriceFound.booleanValue()) {
                         throw new CartItemModifyException("Could not find a 
valid price for the product with ID [" + this.getProductId() + "] and supplier 
with ID [" + partyId + "], not adding to cart.");
                     }
-
+                    
                     if(isAlternativePacking){
                         this.setBasePrice(((BigDecimal) 
priceResult.get("price")).divide(pieces, RoundingMode.HALF_UP));
                     }else{
                         this.setBasePrice(((BigDecimal) 
priceResult.get("price")));
                     }
-
+                    
                     this.setDisplayPrice(this.basePrice);
                     this.orderItemPriceInfos = 
UtilGenerics.checkList(priceResult.get("orderItemPriceInfos"));
                 } else {
@@ -1221,7 +1221,7 @@ public class ShoppingCartItem implements
                     if (Boolean.FALSE.equals(validPriceFound)) {
                         throw new CartItemModifyException("Could not find a 
valid price for the product with ID [" + this.getProductId() + "], not adding 
to cart.");
                     }
-
+                    
                     //set alternative product price
                     if(isAlternativePacking){
                         int decimals = 2;
@@ -1252,10 +1252,10 @@ public class ShoppingCartItem implements
                         if (priceResult.get("price") != null) {
                             this.setDisplayPrice(((BigDecimal) 
priceResult.get("price")));
                         }
-
+                        
                         this.setSpecialPromoPrice((BigDecimal) 
priceResult.get("specialPromoPrice"));
                     }
-
+                    
                     this.orderItemPriceInfos = 
UtilGenerics.checkList(priceResult.get("orderItemPriceInfos"));
 
                     // If product is configurable, the price is taken from the 
configWrapper.
@@ -1312,7 +1312,7 @@ public class ShoppingCartItem implements
     /** Returns the reservation start date with a number of days added. */
     public Timestamp getReservStart(BigDecimal addDays) {
         if (addDays.compareTo(BigDecimal.ZERO) == 0)
-            return this.reservStart;
+                return this.reservStart;
         else    {
             if (this.reservStart != null)
                 return new Timestamp((long)(this.reservStart.getTime() + 
(addDays.doubleValue() * 86400000.0)));
@@ -1751,26 +1751,26 @@ public class ShoppingCartItem implements
     }
     /** Returns the item's description. */
     public String getName() {
-        if (itemDescription != null) {
-            return itemDescription;
-        } else {
-            GenericValue product = getProduct();
-            if (product != null) {
-                String productName = 
ProductContentWrapper.getProductContentAsText(product, "PRODUCT_NAME", 
this.locale, null);
-                // if the productName is null or empty, see if there is an 
associated virtual product and get the productName of that product
-                if (UtilValidate.isEmpty(productName)) {
-                    GenericValue parentProduct = this.getParentProduct();
-                    if (parentProduct != null) {
-                        productName = 
ProductContentWrapper.getProductContentAsText(parentProduct, "PRODUCT_NAME", 
this.locale, null);
-                    }
-                }
-                if (productName == null) {
-                    return "";
-                } else {
-                    return productName;
+       if (itemDescription != null) {
+          return itemDescription;
+       } else {
+        GenericValue product = getProduct();
+        if (product != null) {
+            String productName = 
ProductContentWrapper.getProductContentAsText(product, "PRODUCT_NAME", 
this.locale, null);
+            // if the productName is null or empty, see if there is an 
associated virtual product and get the productName of that product
+            if (UtilValidate.isEmpty(productName)) {
+                GenericValue parentProduct = this.getParentProduct();
+                if (parentProduct != null) {
+                    productName = 
ProductContentWrapper.getProductContentAsText(parentProduct, "PRODUCT_NAME", 
this.locale, null);
                 }
-            } else {
+            }
+            if (productName == null) {
                 return "";
+            } else {
+                return productName;
+            }
+        } else {
+               return "";
             }
         }
     }
@@ -1893,18 +1893,18 @@ public class ShoppingCartItem implements
     }
 
     /** Returns a List of the item's features for supplier*/
-    public List<GenericValue> getFeaturesForSupplier(LocalDispatcher 
dispatcher,String partyId) {
-        List<GenericValue> featureAppls = getStandardFeatureList();
-        if (UtilValidate.isNotEmpty(featureAppls)) {
-            try {
-                Map<String, Object> result = 
dispatcher.runSync("convertFeaturesForSupplier", UtilMisc.toMap("partyId", 
partyId, "productFeatures", featureAppls));
-                featuresForSupplier = 
UtilGenerics.checkList(result.get("convertedProductFeatures"));
-            } catch (GenericServiceException e) {
-                Debug.logError(e, "Unable to get features for supplier from 
product : " + this.productId, module);
-            }
-        }
-        return featuresForSupplier;
-    }
+   public List<GenericValue> getFeaturesForSupplier(LocalDispatcher 
dispatcher,String partyId) {
+       List<GenericValue> featureAppls = getStandardFeatureList();
+       if (UtilValidate.isNotEmpty(featureAppls)) {
+           try {
+              Map<String, Object> result = 
dispatcher.runSync("convertFeaturesForSupplier", UtilMisc.toMap("partyId", 
partyId, "productFeatures", featureAppls));
+              featuresForSupplier = 
UtilGenerics.checkList(result.get("convertedProductFeatures"));
+           } catch (GenericServiceException e) {
+               Debug.logError(e, "Unable to get features for supplier from 
product : " + this.productId, module);
+           }
+       }
+       return featuresForSupplier;
+   }
 
     /** Returns the item's size (length + girth) */
     public BigDecimal getSize() {
@@ -2077,8 +2077,8 @@ public class ShoppingCartItem implements
 
     /** Returns the total line price. */
     public BigDecimal getItemSubTotal(BigDecimal quantity) {
-        //        Debug.logInfo("Price" + getBasePrice() + " quantity" +  
quantity + " Rental adj:" + getRentalAdjustment() + " other adj:" + 
getOtherAdjustments(), module);
-        return 
getBasePrice().multiply(quantity).multiply(getRentalAdjustment()).add(getOtherAdjustments());
+//        Debug.logInfo("Price" + getBasePrice() + " quantity" +  quantity + " 
Rental adj:" + getRentalAdjustment() + " other adj:" + getOtherAdjustments(), 
module);
+          return 
getBasePrice().multiply(quantity).multiply(getRentalAdjustment()).add(getOtherAdjustments());
     }
 
     public BigDecimal getItemSubTotal() {
@@ -2136,8 +2136,8 @@ public class ShoppingCartItem implements
         BigDecimal amount = (BigDecimal) 
additionalProductFeatureAndAppl.get("amount");
         if (amount != null) {
             amount = amount.multiply(this.getQuantity());
-            orderAdjustment.set("amount", amount);
         }
+        orderAdjustment.set("amount", amount);
 
         BigDecimal recurringAmount = (BigDecimal) 
additionalProductFeatureAndAppl.get("recurringAmount");
         if (recurringAmount != null) {
@@ -2146,10 +2146,6 @@ public class ShoppingCartItem implements
             //Debug.logInfo("Setting recurringAmount " + recurringAmount + " 
for " + orderAdjustment, module);
         }
 
-        if (amount == null && recurringAmount == null) {
-            Debug.logWarning("In putAdditionalProductFeatureAndAppl the amount 
and recurringAmount are null for this adjustment: " + orderAdjustment, module);
-        }
-
         this.addAdjustment(orderAdjustment);
     }
 
@@ -2185,7 +2181,6 @@ public class ShoppingCartItem implements
                 featureAppls = product.getRelated("ProductFeatureAppl", null, 
null, false);
                 List<EntityExpr> filterExprs = 
UtilMisc.toList(EntityCondition.makeCondition("productFeatureApplTypeId", 
EntityOperator.EQUALS, "STANDARD_FEATURE"));
                 
filterExprs.add(EntityCondition.makeCondition("productFeatureApplTypeId", 
EntityOperator.EQUALS, "REQUIRED_FEATURE"));
-                
filterExprs.add(EntityCondition.makeCondition("productFeatureApplTypeId", 
EntityOperator.EQUALS, "DISTINGUISHING_FEAT"));
                 featureAppls = EntityUtil.filterByOr(featureAppls, 
filterExprs);
             } catch (GenericEntityException e) {
                 Debug.logError(e, "Unable to get features from product : " + 
product.get("productId"), module);
@@ -2479,7 +2474,7 @@ public class ShoppingCartItem implements
             throw new IllegalStateException("Bad product id");
         }
 
-        this._parentProduct = ProductWorker.getParentProduct(productId, 
this.getDelegator());
+          this._parentProduct = ProductWorker.getParentProduct(productId, 
this.getDelegator());
 
         return this._parentProduct;
     }


Reply via email to