Modified: ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/quote/QuoteServices.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/quote/QuoteServices.java?rev=1305581&r1=1305580&r2=1305581&view=diff ============================================================================== --- ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/quote/QuoteServices.java (original) +++ ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/quote/QuoteServices.java Mon Mar 26 20:56:02 2012 @@ -19,7 +19,6 @@ package org.ofbiz.order.quote; import java.sql.Timestamp; -import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Map; @@ -192,9 +191,7 @@ public class QuoteServices { // create Quote Items if (UtilValidate.isNotEmpty(quoteItems)) { - Iterator<GenericValue> quoteIt = quoteItems.iterator(); - while (quoteIt.hasNext()) { - GenericValue quoteItem = quoteIt.next(); + for(GenericValue quoteItem : quoteItems) { quoteItem.set("quoteId", quoteId); Map<String, Object> quoteItemIn = quoteItem.getAllFields(); quoteItemIn.put("userLogin", userLogin); @@ -205,9 +202,7 @@ public class QuoteServices { // create Quote Attributes if (UtilValidate.isNotEmpty(quoteAttributes)) { - Iterator<GenericValue> quoteAttrIt = quoteAttributes.iterator(); - while (quoteAttrIt.hasNext()) { - GenericValue quoteAttr = quoteAttrIt.next(); + for(GenericValue quoteAttr : quoteAttributes) { quoteAttr.set("quoteId", quoteId); Map<String, Object> quoteAttrIn = quoteAttr.getAllFields(); quoteAttrIn.put("userLogin", userLogin); @@ -218,9 +213,7 @@ public class QuoteServices { // create Quote Coefficients if (UtilValidate.isNotEmpty(quoteCoefficients)) { - Iterator<GenericValue> quoteCoefficientIt = quoteCoefficients.iterator(); - while (quoteCoefficientIt.hasNext()) { - GenericValue quoteCoefficient = quoteCoefficientIt.next(); + for(GenericValue quoteCoefficient : quoteCoefficients) { quoteCoefficient.set("quoteId", quoteId); Map<String, Object> quoteCoefficientIn = quoteCoefficient.getAllFields(); quoteCoefficientIn.put("userLogin", userLogin); @@ -231,9 +224,7 @@ public class QuoteServices { // create Quote Roles if (UtilValidate.isNotEmpty(quoteRoles)) { - Iterator<GenericValue> quoteRoleIt = quoteRoles.iterator(); - while (quoteRoleIt.hasNext()) { - GenericValue quoteRole = quoteRoleIt.next(); + for(GenericValue quoteRole : quoteRoles) { quoteRole.set("quoteId", quoteId); Map<String, Object> quoteRoleIn = quoteRole.getAllFields(); quoteRoleIn.put("userLogin", userLogin); @@ -244,9 +235,7 @@ public class QuoteServices { // create Quote WorkEfforts if (UtilValidate.isNotEmpty(quoteWorkEfforts)) { - Iterator<GenericValue> quoteWorkEffortIt = quoteWorkEfforts.iterator(); - while (quoteWorkEffortIt.hasNext()) { - GenericValue quoteWorkEffort = quoteWorkEffortIt.next(); + for(GenericValue quoteWorkEffort : quoteWorkEfforts) { quoteWorkEffort.set("quoteId", quoteId); Map<String, Object> quoteWorkEffortIn = quoteWorkEffort.getAllFields(); quoteWorkEffortIn.put("userLogin", userLogin); @@ -257,9 +246,7 @@ public class QuoteServices { // create Quote Adjustments if (UtilValidate.isNotEmpty(quoteAdjustments)) { - Iterator<GenericValue> quoteAdjustmentIt = quoteAdjustments.iterator(); - while (quoteAdjustmentIt.hasNext()) { - GenericValue quoteAdjustment = quoteAdjustmentIt.next(); + for(GenericValue quoteAdjustment : quoteAdjustments) { quoteAdjustment.set("quoteId", quoteId); Map<String, Object> quoteAdjustmentIn = quoteAdjustment.getAllFields(); quoteAdjustmentIn.put("userLogin", userLogin); Modified: ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java URL: http://svn.apache.org/viewvc/ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java?rev=1305581&r1=1305580&r2=1305581&view=diff ============================================================================== --- ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java (original) +++ ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java Mon Mar 26 20:56:02 2012 @@ -99,9 +99,8 @@ public class RequirementServices { // join in fields with extra data about the suppliers and products List<Map<String, Object>> requirements = FastList.newInstance(); - for (Iterator<GenericValue> iter = requirementAndRoles.iterator(); iter.hasNext();) { + for(GenericValue requirement : requirementAndRoles) { Map<String, Object> union = FastMap.newInstance(); - GenericValue requirement = iter.next(); String productId = requirement.getString("productId"); partyId = requirement.getString("partyId"); String facilityId = requirement.getString("facilityId"); @@ -217,8 +216,7 @@ public class RequirementServices { } String facilityId = productStore.getString("inventoryFacilityId"); List<GenericValue> orderItems = order.getRelated("OrderItem"); - for (Iterator<GenericValue> iter = orderItems.iterator(); iter.hasNext();) { - GenericValue item = iter.next(); + for(GenericValue item : orderItems) { GenericValue product = item.getRelatedOne("Product"); if (product == null) continue; if ((!"PRODRQM_AUTO".equals(product.get("requirementMethodEnumId")) && @@ -277,8 +275,7 @@ public class RequirementServices { } String facilityId = productStore.getString("inventoryFacilityId"); List<GenericValue> orderItems = order.getRelated("OrderItem"); - for (Iterator<GenericValue> iter = orderItems.iterator(); iter.hasNext();) { - GenericValue item = iter.next(); + for(GenericValue item : orderItems) { GenericValue product = item.getRelatedOne("Product"); if (product == null) continue; @@ -312,8 +309,7 @@ public class RequirementServices { EntityCondition.makeCondition("statusId", EntityOperator.NOT_EQUAL, "REQ_REJECTED")), EntityOperator.AND); List<GenericValue> requirements = delegator.findList("Requirement", ecl, null, null, null, false); - for (Iterator<GenericValue> riter = requirements.iterator(); riter.hasNext();) { - GenericValue requirement = riter.next(); + for(GenericValue requirement : requirements) { pendingRequirements = pendingRequirements.add(requirement.get("quantity") == null ? BigDecimal.ZERO : requirement.getBigDecimal("quantity")); } Modified: ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/CartEventListener.java URL: http://svn.apache.org/viewvc/ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/CartEventListener.java?rev=1305581&r1=1305580&r2=1305581&view=diff ============================================================================== --- ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/CartEventListener.java (original) +++ ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/CartEventListener.java Mon Mar 26 20:56:02 2012 @@ -18,8 +18,6 @@ *******************************************************************************/ package org.ofbiz.order.shoppingcart; -import java.util.Iterator; - import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; @@ -78,10 +76,8 @@ public class CartEventListener implement } Debug.logInfo("Saving abandoned cart", module); - Iterator<ShoppingCartItem> cartItems = cart.iterator(); int seqId = 1; - while (cartItems.hasNext()) { - ShoppingCartItem cartItem = cartItems.next(); + for(ShoppingCartItem cartItem : cart) { GenericValue cartAbandonedLine = delegator.makeValue("CartAbandonedLine"); cartAbandonedLine.set("visitId", visit.get("visitId")); Modified: ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutEvents.java URL: http://svn.apache.org/viewvc/ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutEvents.java?rev=1305581&r1=1305580&r2=1305581&view=diff ============================================================================== --- ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutEvents.java (original) +++ ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutEvents.java Mon Mar 26 20:56:02 2012 @@ -862,7 +862,7 @@ public class CheckOutEvents { // payment option; if offline we skip the payment screen methodType = request.getParameter("paymentMethodType"); if ("offline".equals(methodType)) { - Debug.log("Changing mode from->to: " + mode + "->payment", module); + Debug.logInfo("Changing mode from->to: " + mode + "->payment", module); mode = "payment"; } //FIXME can be removed ? Modified: ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java URL: http://svn.apache.org/viewvc/ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java?rev=1305581&r1=1305580&r2=1305581&view=diff ============================================================================== --- ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java (original) +++ ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java Mon Mar 26 20:56:02 2012 @@ -48,6 +48,7 @@ import org.ofbiz.entity.condition.Entity import org.ofbiz.entity.condition.EntityExpr; import org.ofbiz.entity.condition.EntityFunction; import org.ofbiz.entity.condition.EntityOperator; +import org.ofbiz.entity.util.EntityTypeUtil; import org.ofbiz.entity.util.EntityUtil; import org.ofbiz.order.finaccount.FinAccountHelper; import org.ofbiz.order.order.OrderChangeHelper; @@ -265,9 +266,7 @@ public class CheckOutHelper { try { List<GenericValue> billingAccountTerms = delegator.findByAnd("BillingAccountTerm", UtilMisc.toMap("billingAccountId", billingAccountId)); if (UtilValidate.isNotEmpty(billingAccountTerms)) { - Iterator<GenericValue> billingAccountTermsIt = billingAccountTerms.iterator(); - while (billingAccountTermsIt.hasNext()) { - GenericValue billingAccountTerm = billingAccountTermsIt.next(); + for(GenericValue billingAccountTerm : billingAccountTerms) { // the term is not copied if in the cart a term of the same type is already set if (!cart.hasOrderTerm(billingAccountTerm.getString("termTypeId"))) { cart.addOrderTerm(billingAccountTerm.getString("termTypeId"), billingAccountTerm.getBigDecimal("termValue"), billingAccountTerm.getLong("termDays")); @@ -317,10 +316,7 @@ public class CheckOutHelper { } } - Set<String> paymentMethods = selectedPaymentMethods.keySet(); - Iterator<String> i = paymentMethods.iterator(); - while (i.hasNext()) { - String checkOutPaymentId = i.next(); + for(String checkOutPaymentId : selectedPaymentMethods.keySet()) { String finAccountId = null; if (checkOutPaymentId.indexOf("|") > -1) { @@ -632,10 +628,8 @@ public class CheckOutHelper { // If needed, the production runs are created and linked to the order lines. // List<GenericValue> orderItems = UtilGenerics.checkList(context.get("orderItems")); - Iterator<GenericValue> orderItemsIt = orderItems.iterator(); int counter = 0; - while (orderItemsIt.hasNext()) { - GenericValue orderItem = orderItemsIt.next(); + for(GenericValue orderItem : orderItems) { String productId = orderItem.getString("productId"); if (productId != null) { try { @@ -644,7 +638,7 @@ public class CheckOutHelper { GenericValue permUserLogin = delegator.findByPrimaryKeyCache("UserLogin", UtilMisc.toMap("userLoginId", "system")); GenericValue productStore = ProductStoreWorker.getProductStore(productStoreId, delegator); GenericValue product = delegator.findByPrimaryKey("Product", UtilMisc.toMap("productId", productId)); - if ("AGGREGATED_CONF".equals(product.getString("productTypeId"))) { + if (EntityTypeUtil.hasParentType(delegator, "ProductType", "productTypeId", product.getString("productTypeId"), "parentTypeId", "AGGREGATED")) { org.ofbiz.product.config.ProductConfigWrapper config = this.cart.findCartItem(counter).getConfigWrapper(); Map<String, Object> inputMap = new HashMap<String, Object>(); inputMap.put("config", config); @@ -674,9 +668,7 @@ public class CheckOutHelper { // ---------- // The status of the requirement associated to the shopping cart lines is set to "ordered". // - Iterator<ShoppingCartItem> shoppingCartItems = this.cart.items().iterator(); - while (shoppingCartItems.hasNext()) { - ShoppingCartItem shoppingCartItem = shoppingCartItems.next(); + for(ShoppingCartItem shoppingCartItem : this.cart.items()) { String requirementId = shoppingCartItem.getRequirementId(); if (requirementId != null) { try { @@ -730,9 +722,7 @@ public class CheckOutHelper { String additionalEmails = this.cart.getOrderAdditionalEmails(); List<String> emailList = StringUtil.split(additionalEmails, ","); if (emailList == null) emailList = new ArrayList<String>(); - Iterator<String> eli = emailList.iterator(); - while (eli.hasNext()) { - String email = eli.next(); + for(String email : emailList) { String contactMechId = this.delegator.getNextSeqId("ContactMech"); GenericValue contactMech = this.delegator.makeValue("ContactMech", UtilMisc.toMap("contactMechId", contactMechId, "contactMechTypeId", "EMAIL_ADDRESS", "infoString", email)); @@ -955,9 +945,7 @@ public class CheckOutHelper { List<EntityExpr> exprs = UtilMisc.toList(EntityCondition.makeCondition("manualRefNum", EntityOperator.NOT_EQUAL, null)); List<GenericValue> manualRefPaymentPrefs = EntityUtil.filterByAnd(allPaymentPreferences, exprs); if (UtilValidate.isNotEmpty(manualRefPaymentPrefs)) { - Iterator<GenericValue> i = manualRefPaymentPrefs.iterator(); - while (i.hasNext()) { - GenericValue opp = i.next(); + for(GenericValue opp : manualRefPaymentPrefs) { Map<String, Object> authCtx = new HashMap<String, Object>(); authCtx.put("orderPaymentPreference", opp); if (opp.get("paymentMethodId") == null) { @@ -1175,9 +1163,7 @@ public class CheckOutHelper { public static void adjustFaceToFacePayment(String orderId, BigDecimal cartTotal, List<GenericValue> allPaymentPrefs, GenericValue userLogin, Delegator delegator) throws GeneralException { BigDecimal prefTotal = BigDecimal.ZERO; if (allPaymentPrefs != null) { - Iterator<GenericValue> i = allPaymentPrefs.iterator(); - while (i.hasNext()) { - GenericValue pref = i.next(); + for(GenericValue pref : allPaymentPrefs) { BigDecimal maxAmount = pref.getBigDecimal("maxAmount"); if (maxAmount == null) maxAmount = BigDecimal.ZERO; prefTotal = prefTotal.add(maxAmount); @@ -1216,9 +1202,7 @@ public class CheckOutHelper { String errMsg=null; List<GenericValue> paymentMethods = this.cart.getPaymentMethods(); - Iterator<GenericValue> i = paymentMethods.iterator(); - while (i.hasNext()) { - GenericValue paymentMethod = i.next(); + for(GenericValue paymentMethod : paymentMethods) { if ((paymentMethod != null) && ("CREDIT_CARD".equals(paymentMethod.getString("paymentMethodTypeId")))) { GenericValue creditCard = null; GenericValue billingAddress = null; @@ -1517,9 +1501,7 @@ public class CheckOutHelper { public Map<String, BigDecimal> makeBillingAccountMap(List<GenericValue> paymentPrefs) { Map<String, BigDecimal> accountMap = new HashMap<String, BigDecimal>(); if (paymentPrefs != null) { - Iterator<GenericValue> i = paymentPrefs.iterator(); - while (i.hasNext()) { - GenericValue pp = i.next(); + for(GenericValue pp : paymentPrefs) { if (pp.get("billingAccountId") != null) { accountMap.put(pp.getString("billingAccountId"), pp.getBigDecimal("maxAmount")); } @@ -1556,18 +1538,14 @@ public class CheckOutHelper { // update the selected payment methods amount with valid numbers if (paymentMethods != null) { List<String> nullPaymentIds = new ArrayList<String>(); - Iterator<String> i = paymentMethods.iterator(); - while (i.hasNext()) { - String paymentMethodId = i.next(); + for(String paymentMethodId : paymentMethods) { BigDecimal paymentAmount = cart.getPaymentAmount(paymentMethodId); if (paymentAmount == null || paymentAmount.compareTo(BigDecimal.ZERO) == 0) { if (Debug.verboseOn()) Debug.logVerbose("Found null paymentMethodId - " + paymentMethodId, module); nullPaymentIds.add(paymentMethodId); } } - Iterator<String> npi = nullPaymentIds.iterator(); - while (npi.hasNext()) { - String paymentMethodId = npi.next(); + for(String paymentMethodId : nullPaymentIds) { BigDecimal selectedPaymentTotal = cart.getPaymentTotal(); BigDecimal requiredAmount = cart.getGrandTotal(); BigDecimal newAmount = requiredAmount.subtract(selectedPaymentTotal); @@ -1635,9 +1613,7 @@ public class CheckOutHelper { String balanceField = null; // get the gift card objects to check - Iterator<GenericValue> i = cart.getGiftCards().iterator(); - while (i.hasNext()) { - GenericValue gc = i.next(); + for(GenericValue gc : cart.getGiftCards()) { Map<String, Object> gcBalanceMap = null; BigDecimal gcBalance = BigDecimal.ZERO; try { Modified: ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java URL: http://svn.apache.org/viewvc/ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java?rev=1305581&r1=1305580&r2=1305581&view=diff ============================================================================== --- ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java (original) +++ ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java Mon Mar 26 20:56:02 2012 @@ -20,6 +20,7 @@ package org.ofbiz.order.shoppingcart; import javolution.util.FastList; import javolution.util.FastMap; + import org.ofbiz.base.util.*; import org.ofbiz.entity.Delegator; import org.ofbiz.entity.DelegatorFactory; @@ -30,6 +31,7 @@ import org.ofbiz.entity.condition.Entity import org.ofbiz.entity.condition.EntityExpr; import org.ofbiz.entity.condition.EntityOperator; import org.ofbiz.entity.util.EntityUtil; +import org.ofbiz.entity.util.EntityUtilProperties; import org.ofbiz.order.finaccount.FinAccountHelper; import org.ofbiz.order.order.OrderReadHelper; import org.ofbiz.order.shoppingcart.product.ProductPromoWorker; @@ -49,6 +51,7 @@ import java.math.BigDecimal; import java.math.MathContext; import java.sql.Timestamp; import java.util.*; +import java.util.Map.Entry; /** * Shopping Cart Object @@ -215,9 +218,7 @@ public class ShoppingCart implements Ite } // clone the groups - Iterator<ShoppingCartItemGroup> groupIt = cart.itemGroupByNumberMap.values().iterator(); - while (groupIt.hasNext()) { - ShoppingCartItemGroup itemGroup = groupIt.next(); + for(ShoppingCartItemGroup itemGroup : cart.itemGroupByNumberMap.values()) { // get the new parent group by number from the existing set; as before the parent must come before all children to work... ShoppingCartItemGroup parentGroup = null; if (itemGroup.getParentGroup() != null) parentGroup = this.getItemGroupByNumber(itemGroup.getParentGroup().getGroupNumber()); @@ -226,12 +227,10 @@ public class ShoppingCart implements Ite } // clone the items - List<ShoppingCartItem> items = cart.items(); - Iterator<ShoppingCartItem> itIt = items.iterator(); - while (itIt.hasNext()) { - cartLines.add(new ShoppingCartItem(itIt.next())); + for(ShoppingCartItem item : cart.items()) { + cartLines.add(new ShoppingCartItem(item)); } - + this.facilityId = cart.facilityId; this.webSiteId = cart.webSiteId; } @@ -244,7 +243,7 @@ public class ShoppingCart implements Ite this.productStoreId = productStoreId; this.webSiteId = webSiteId; this.locale = (locale != null) ? locale : Locale.getDefault(); - this.currencyUom = (currencyUom != null) ? currencyUom : UtilProperties.getPropertyValue("general.properties", "currency.uom.id.default", "USD"); + this.currencyUom = (currencyUom != null) ? currencyUom : EntityUtilProperties.getPropertyValue("general.properties", "currency.uom.id.default", "USD", delegator); this.billToCustomerPartyId = billToCustomerPartyId; this.billFromVendorPartyId = billFromVendorPartyId; @@ -426,9 +425,7 @@ public class ShoppingCart implements Ite String previousCurrency = this.currencyUom; this.currencyUom = currencyUom; if (!previousCurrency.equals(this.currencyUom)) { - Iterator<ShoppingCartItem> itemIterator = this.iterator(); - while (itemIterator.hasNext()) { - ShoppingCartItem item = itemIterator.next(); + for(ShoppingCartItem item : this) { item.updatePrice(dispatcher, this); } } @@ -489,6 +486,14 @@ public class ShoppingCart implements Ite String accommodationMapId, String accommodationSpotId, Timestamp shipBeforeDate, Timestamp shipAfterDate, Map<String, GenericValue> features, Map<String, Object> attributes, String prodCatalogId, ProductConfigWrapper configWrapper, String itemType, String itemGroupNumber, String parentProductId, LocalDispatcher dispatcher) throws CartItemModifyException, ItemNotFoundException { + return addOrIncreaseItem(productId, selectedAmount, quantity, reservStart, reservLength, reservPersons, accommodationMapId, accommodationSpotId, shipBeforeDate, shipAfterDate, features, attributes, null, prodCatalogId, configWrapper, itemType, itemGroupNumber, parentProductId, dispatcher); + } + + /** add rental (with accommodation) item to cart and order item attributes*/ + public int addOrIncreaseItem(String productId, BigDecimal selectedAmount, BigDecimal quantity, Timestamp reservStart, BigDecimal reservLength, BigDecimal reservPersons, + String accommodationMapId, String accommodationSpotId, + Timestamp shipBeforeDate, Timestamp shipAfterDate, Map<String, GenericValue> features, Map<String, Object> attributes, Map<String, String> orderItemAttributes, String prodCatalogId, + ProductConfigWrapper configWrapper, String itemType, String itemGroupNumber, String parentProductId, LocalDispatcher dispatcher) throws CartItemModifyException, ItemNotFoundException { if (isReadOnlyCart()) { throw new CartItemModifyException("Cart items cannot be changed"); } @@ -504,7 +509,7 @@ public class ShoppingCart implements Ite ShoppingCartItem sci = cartLines.get(i); - if (sci.equals(productId, reservStart, reservLength, reservPersons, accommodationMapId, accommodationSpotId, features, attributes, prodCatalogId,selectedAmount, configWrapper, itemType, itemGroup, false)) { + if (sci.equals(productId, reservStart, reservLength, reservPersons, accommodationMapId, accommodationSpotId, features, attributes, orderItemAttributes, prodCatalogId,selectedAmount, configWrapper, itemType, itemGroup, false)) { BigDecimal newQuantity = sci.getQuantity().add(quantity); try { BigDecimal minQuantity = getMinimumOrderQuantity(getDelegator(),sci.getBasePrice(), productId); @@ -542,11 +547,12 @@ public class ShoppingCart implements Ite } } // Add the new item to the shopping cart if it wasn't found. + ShoppingCartItem item = null; if (getOrderType().equals("PURCHASE_ORDER")) { //GenericValue productSupplier = null; supplierProduct = getSupplierProduct(productId, quantity, dispatcher); if (supplierProduct != null || "_NA_".equals(this.getPartyId())) { - return this.addItem(0, ShoppingCartItem.makePurchaseOrderItem(Integer.valueOf(0), productId, selectedAmount, quantity, features, attributes, prodCatalogId, configWrapper, itemType, itemGroup, dispatcher, this, supplierProduct, shipBeforeDate, shipAfterDate, cancelBackOrderDate)); + item = ShoppingCartItem.makePurchaseOrderItem(Integer.valueOf(0), productId, selectedAmount, quantity, features, attributes, prodCatalogId, configWrapper, itemType, itemGroup, dispatcher, this, supplierProduct, shipBeforeDate, shipAfterDate, cancelBackOrderDate); } else { throw new CartItemModifyException("SupplierProduct not found"); } @@ -559,11 +565,20 @@ public class ShoppingCart implements Ite } catch (GenericEntityException e) { Debug.logError(e, module); } - return this.addItem(0, ShoppingCartItem.makeItem(Integer.valueOf(0), productId, selectedAmount, quantity, null, + item = ShoppingCartItem.makeItem(Integer.valueOf(0), productId, selectedAmount, quantity, null, reservStart, reservLength, reservPersons, accommodationMapId, accommodationSpotId, shipBeforeDate, shipAfterDate, features, attributes, prodCatalogId, configWrapper, itemType, itemGroup, dispatcher, - this, Boolean.TRUE, Boolean.TRUE, parentProductId, Boolean.FALSE, Boolean.FALSE)); + this, Boolean.TRUE, Boolean.TRUE, parentProductId, Boolean.FALSE, Boolean.FALSE); } + // add order item attributes + if (UtilValidate.isNotEmpty(orderItemAttributes)) { + for (Entry<String, String> entry : orderItemAttributes.entrySet()) { + item.setOrderItemAttribute(entry.getKey(), entry.getValue()); + } + } + + return this.addItem(0, item); + } /** Add a non-product item to the shopping cart. @@ -737,18 +752,14 @@ public class ShoppingCart implements Ite localList.addAll(multipleItems); // the ones to keep... for (int i=0; i<maxItems; i++) localList.remove(0); - Iterator<ShoppingCartItem> localIter = localList.iterator(); - while (localIter.hasNext()) { - ShoppingCartItem item = localIter.next(); + for(ShoppingCartItem item : localList) { this.removeCartItem(item, dispatcher); } } public static BigDecimal getItemsTotalQuantity(List<ShoppingCartItem> cartItems) { BigDecimal totalQuantity = BigDecimal.ZERO; - Iterator<ShoppingCartItem> localIter = cartItems.iterator(); - while (localIter.hasNext()) { - ShoppingCartItem item = localIter.next(); + for(ShoppingCartItem item : cartItems) { totalQuantity = totalQuantity.add(item.getQuantity()); } return totalQuantity; @@ -756,9 +767,7 @@ public class ShoppingCart implements Ite public static List<GenericValue> getItemsProducts(List<ShoppingCartItem> cartItems) { List<GenericValue> productList = FastList.newInstance(); - Iterator<ShoppingCartItem> localIter = cartItems.iterator(); - while (localIter.hasNext()) { - ShoppingCartItem item = localIter.next(); + for(ShoppingCartItem item : cartItems) { GenericValue product = item.getProduct(); if (product != null) { productList.add(product); @@ -768,9 +777,7 @@ public class ShoppingCart implements Ite } public void ensureItemsQuantity(List<ShoppingCartItem> cartItems, LocalDispatcher dispatcher, BigDecimal quantity) throws CartItemModifyException { - Iterator<ShoppingCartItem> localIter = cartItems.iterator(); - while (localIter.hasNext()) { - ShoppingCartItem item = localIter.next(); + for(ShoppingCartItem item : cartItems) { if (item.getQuantity() != quantity) { item.setQuantity(quantity, dispatcher, this); } @@ -781,10 +788,7 @@ public class ShoppingCart implements Ite BigDecimal quantityRemoved = BigDecimal.ZERO; // go through the items and reduce quantityToKeep by the item quantities until it is 0, then remove the remaining... BigDecimal quantityToKeep = quantity; - Iterator<ShoppingCartItem> localIter = cartItems.iterator(); - while (localIter.hasNext()) { - ShoppingCartItem item = localIter.next(); - + for(ShoppingCartItem item : cartItems) { if (quantityToKeep.compareTo(item.getQuantity()) >= 0) { // quantityToKeep sufficient to keep it all... just reduce quantityToKeep and move on quantityToKeep = quantityToKeep.subtract(item.getQuantity()); @@ -808,8 +812,7 @@ public class ShoppingCart implements Ite // ============== WorkEffort related methods =============== public boolean containAnyWorkEffortCartItems() { // Check for existing cart item. - for (int i = 0; i < this.cartLines.size(); i++) { - ShoppingCartItem cartItem = cartLines.get(i); + for(ShoppingCartItem cartItem : this.cartLines) { if (cartItem.getItemType().equals("RENTAL_ORDER_ITEM")) { // create workeffort items? return true; } @@ -819,8 +822,7 @@ public class ShoppingCart implements Ite public boolean containAllWorkEffortCartItems() { // Check for existing cart item. - for (int i = 0; i < this.cartLines.size(); i++) { - ShoppingCartItem cartItem = cartLines.get(i); + for(ShoppingCartItem cartItem : this.cartLines) { if (!cartItem.getItemType().equals("RENTAL_ORDER_ITEM")) { // not a item to create workefforts? return false; } @@ -833,8 +835,7 @@ public class ShoppingCart implements Ite * This is determined by making sure no Product has a type where ProductType.isPhysical!=N. */ public boolean containOnlyDigitalGoods() { - for (int i = 0; i < this.cartLines.size(); i++) { - ShoppingCartItem cartItem = cartLines.get(i); + for(ShoppingCartItem cartItem : this.cartLines) { GenericValue product = cartItem.getProduct(); try { GenericValue productType = product.getRelatedOneCache("ProductType"); @@ -1003,16 +1004,12 @@ public class ShoppingCart implements Ite if (itemGroup != null) { // go through all cart items and remove from group if they are in it List<ShoppingCartItem> cartItemList = this.getCartItemsInGroup(groupNumber); - Iterator<ShoppingCartItem> cartItemIter = cartItemList.iterator(); - while (cartItemIter.hasNext()) { - ShoppingCartItem cartItem = cartItemIter.next(); + for(ShoppingCartItem cartItem : cartItemList) { cartItem.setItemGroup(null); } // if this is a parent of any set them to this group's parent (or null) - Iterator<ShoppingCartItemGroup> itemGroupIter = this.itemGroupByNumberMap.values().iterator(); - while (itemGroupIter.hasNext()) { - ShoppingCartItemGroup otherItemGroup = itemGroupIter.next(); + for(ShoppingCartItemGroup otherItemGroup : this.itemGroupByNumberMap.values()) { if (itemGroup.equals(otherItemGroup.getParentGroup())) { otherItemGroup.inheritParentsParent(); } @@ -1068,9 +1065,7 @@ public class ShoppingCart implements Ite String partyId = this.getPartyId(); if (UtilValidate.isNotEmpty(partyId)) { // recalculate all prices - Iterator<ShoppingCartItem> cartItemIter = this.iterator(); - while (cartItemIter.hasNext()) { - ShoppingCartItem cartItem = cartItemIter.next(); + for(ShoppingCartItem cartItem : this) { cartItem.updatePrice(dispatcher, this); } @@ -1555,9 +1550,7 @@ public class ShoppingCart implements Ite /** Returns the CartPaymentInfo objects which have matching fields */ public List<CartPaymentInfo> getPaymentInfos(boolean isPaymentMethod, boolean isPaymentMethodType, boolean hasRefNum) { List<CartPaymentInfo> foundRecords = new LinkedList<CartPaymentInfo>(); - Iterator<CartPaymentInfo> i = paymentInfo.iterator(); - while (i.hasNext()) { - CartPaymentInfo inf = i.next(); + for(CartPaymentInfo inf : paymentInfo) { if (isPaymentMethod && inf.paymentMethodId != null) { if (hasRefNum && inf.refNum != null) { foundRecords.add(inf); @@ -1583,9 +1576,7 @@ public class ShoppingCart implements Ite /** Locates an existing (or creates a new) CartPaymentInfo object */ public CartPaymentInfo getPaymentInfo(String id, String refNum, String authCode, BigDecimal amount, boolean update) { CartPaymentInfo thisInf = this.makePaymentInfo(id, refNum, authCode, amount); - Iterator<CartPaymentInfo> i = paymentInfo.iterator(); - while (i.hasNext()) { - CartPaymentInfo inf = i.next(); + for(CartPaymentInfo inf : paymentInfo) { if (inf.compareTo(thisInf) == 0) { // update the info if (update) { @@ -1621,9 +1612,7 @@ public class ShoppingCart implements Ite // this payment method will set the billing address for the order; // before it is set we have to verify if the billing address is // compatible with the ProductGeos - Iterator<GenericValue> products = (ShoppingCart.getItemsProducts(this.cartLines)).iterator(); - while (products.hasNext()) { - GenericValue product = products.next(); + for(GenericValue product : ShoppingCart.getItemsProducts(this.cartLines)) { if (!ProductWorker.isBillableToAddress(product, billingAddress)) { throw new IllegalArgumentException("The billing address is not compatible with ProductGeos rules."); } @@ -1666,9 +1655,7 @@ public class ShoppingCart implements Ite } public String getPaymentRef(String id) { - Iterator<CartPaymentInfo> i = paymentInfo.iterator(); - while (i.hasNext()) { - CartPaymentInfo inf = i.next(); + for(CartPaymentInfo inf : paymentInfo) { if (inf.paymentMethodId.equals(id) || inf.paymentMethodTypeId.equals(id)) { return inf.refNum[0]; } @@ -1679,9 +1666,7 @@ public class ShoppingCart implements Ite /** returns the total payment amounts */ public BigDecimal getPaymentTotal() { BigDecimal total = BigDecimal.ZERO; - Iterator<CartPaymentInfo> i = paymentInfo.iterator(); - while (i.hasNext()) { - CartPaymentInfo inf = i.next(); + for(CartPaymentInfo inf : paymentInfo) { if (inf.amount != null) { total = total.add(inf.amount); } @@ -1734,8 +1719,7 @@ public class ShoppingCart implements Ite List<GenericValue> declinedPaymentMethods = delegator.findByAnd("OrderPaymentPreference", UtilMisc.toMap("orderId", orderId, "statusId", "PAYMENT_DECLINED")); if (!UtilValidate.isEmpty(declinedPaymentMethods)) { List<String> paymentMethodIdsToRemove = new ArrayList<String>(); - for (Iterator<GenericValue> iter = declinedPaymentMethods.iterator(); iter.hasNext();) { - GenericValue opp = iter.next(); + for(GenericValue opp : declinedPaymentMethods) { paymentMethodIdsToRemove.add(opp.getString("paymentMethodId")); } clearPaymentMethodsById(paymentMethodIdsToRemove); @@ -1749,9 +1733,7 @@ public class ShoppingCart implements Ite private void expireSingleUsePayments() { Timestamp now = UtilDateTime.nowTimestamp(); - Iterator<CartPaymentInfo> i = paymentInfo.iterator(); - while (i.hasNext()) { - CartPaymentInfo inf = i.next(); + for(CartPaymentInfo inf : paymentInfo) { if (inf.paymentMethodId == null || !inf.singleUse) { continue; } @@ -1778,9 +1760,7 @@ public class ShoppingCart implements Ite /** Returns the Payment Method Ids */ public List<String> getPaymentMethodIds() { List<String> pmi = new LinkedList<String>(); - Iterator<CartPaymentInfo> i = paymentInfo.iterator(); - while (i.hasNext()) { - CartPaymentInfo inf = i.next(); + for(CartPaymentInfo inf : paymentInfo) { if (inf.paymentMethodId != null) { pmi.add(inf.paymentMethodId); } @@ -1791,9 +1771,7 @@ public class ShoppingCart implements Ite /** Returns the Payment Method Ids */ public List<String> getPaymentMethodTypeIds() { List<String> pmt = FastList.newInstance(); - Iterator<CartPaymentInfo> i = paymentInfo.iterator(); - while (i.hasNext()) { - CartPaymentInfo inf = i.next(); + for(CartPaymentInfo inf : paymentInfo) { if (inf.paymentMethodTypeId != null) { pmt.add(inf.paymentMethodTypeId); } @@ -1805,9 +1783,7 @@ public class ShoppingCart implements Ite public List<GenericValue> getPaymentMethods() { List<GenericValue> methods = FastList.newInstance(); if (UtilValidate.isNotEmpty(paymentInfo)) { - Iterator<String> paymentMethodIdIter = getPaymentMethodIds().iterator(); - while (paymentMethodIdIter.hasNext()) { - String paymentMethodId = paymentMethodIdIter.next(); + for(String paymentMethodId : getPaymentMethodIds()) { try { GenericValue paymentMethod = this.getDelegator().findByPrimaryKeyCache("PaymentMethod", UtilMisc.toMap("paymentMethodId", paymentMethodId)); if (paymentMethod != null) { @@ -1828,9 +1804,7 @@ public class ShoppingCart implements Ite public List<GenericValue> getPaymentMethodTypes() { List<GenericValue> types = new LinkedList<GenericValue>(); if (UtilValidate.isNotEmpty(paymentInfo)) { - Iterator<String> i = getPaymentMethodTypeIds().iterator(); - while (i.hasNext()) { - String id = i.next(); + for(String id : getPaymentMethodIds()) { try { types.add(this.getDelegator().findByPrimaryKeyCache("PaymentMethodType", UtilMisc.toMap("paymentMethodTypeId", id))); } catch (GenericEntityException e) { @@ -1846,9 +1820,7 @@ public class ShoppingCart implements Ite List<GenericValue> paymentMethods = this.getPaymentMethods(); List<GenericValue> creditCards = new LinkedList<GenericValue>(); if (paymentMethods != null) { - Iterator<GenericValue> i = paymentMethods.iterator(); - while (i.hasNext()) { - GenericValue pm = i.next(); + for(GenericValue pm : paymentMethods) { if ("CREDIT_CARD".equals(pm.getString("paymentMethodTypeId"))) { try { GenericValue cc = pm.getRelatedOne("CreditCard"); @@ -1867,9 +1839,7 @@ public class ShoppingCart implements Ite List<GenericValue> paymentMethods = this.getPaymentMethods(); List<GenericValue> giftCards = new LinkedList<GenericValue>(); if (paymentMethods != null) { - Iterator<GenericValue> i = paymentMethods.iterator(); - while (i.hasNext()) { - GenericValue pm = i.next(); + for(GenericValue pm : paymentMethods) { if ("GIFT_CARD".equals(pm.getString("paymentMethodTypeId"))) { try { GenericValue gc = pm.getRelatedOne("GiftCard"); @@ -1901,9 +1871,7 @@ public class ShoppingCart implements Ite public GenericValue getBillingAddress() { GenericValue billingAddress = null; - Iterator<CartPaymentInfo> i = paymentInfo.iterator(); - while (i.hasNext()) { - CartPaymentInfo inf = i.next(); + for(CartPaymentInfo inf : paymentInfo) { billingAddress = inf.getBillingAddress(this.getDelegator()); if (billingAddress != null) { break; @@ -2088,8 +2056,7 @@ public class ShoppingCart implements Ite Map<Integer, BigDecimal> shipGroups = this.getShipGroups(item); if ((shipGroups != null) && (shipGroups.keySet() != null)) { - for (Iterator<Integer> shipGroupKeys = shipGroups.keySet().iterator(); shipGroupKeys.hasNext();) { - Integer shipGroup = shipGroupKeys.next(); + for(Integer shipGroup : shipGroups.keySet()) { CartShipInfo cartShipInfo = this.getShipInfo(shipGroup.intValue()); cartShipInfo.resetShipAfterDateIfBefore(item.getShipAfterDate()); @@ -2237,9 +2204,7 @@ public class ShoppingCart implements Ite if (shippingAddress != null) { Set<ShoppingCartItem> shipItems = csi.getShipItems(); if (UtilValidate.isNotEmpty(shipItems)) { - Iterator<ShoppingCartItem> siit = shipItems.iterator(); - while (siit.hasNext()) { - ShoppingCartItem cartItem = siit.next(); + for(ShoppingCartItem cartItem : shipItems) { GenericValue product = cartItem.getProduct(); if (UtilValidate.isNotEmpty(product)) { if (!ProductWorker.isShippableToAddress(product, shippingAddress)) { @@ -2586,11 +2551,8 @@ public class ShoppingCart implements Ite public BigDecimal getTotalShipping() { BigDecimal tempShipping = BigDecimal.ZERO; - Iterator<CartShipInfo> shipIter = this.shipInfo.iterator(); - while (shipIter.hasNext()) { - CartShipInfo csi = shipIter.next(); + for(CartShipInfo csi : this.shipInfo) { tempShipping = tempShipping.add(csi.shipEstimate); - } return tempShipping; @@ -2599,10 +2561,8 @@ public class ShoppingCart implements Ite /** Returns the item-total in the cart (not including discount/tax/shipping). */ public BigDecimal getItemTotal() { BigDecimal itemTotal = BigDecimal.ZERO; - Iterator<ShoppingCartItem> i = iterator(); - - while (i.hasNext()) { - itemTotal = itemTotal.add((i.next()).getBasePrice()); + for(ShoppingCartItem cartItem : this.cartLines) { + itemTotal = itemTotal.add(cartItem.getBasePrice()); } return itemTotal; } @@ -2610,10 +2570,8 @@ public class ShoppingCart implements Ite /** Returns the sub-total in the cart (item-total - discount). */ public BigDecimal getSubTotal() { BigDecimal itemsTotal = BigDecimal.ZERO; - Iterator<ShoppingCartItem> i = iterator(); - - while (i.hasNext()) { - itemsTotal = itemsTotal.add((i.next()).getItemSubTotal()); + for(ShoppingCartItem cartItem : this.cartLines) { + itemsTotal = itemsTotal.add(cartItem.getItemSubTotal()); } return itemsTotal; } @@ -2630,9 +2588,8 @@ public class ShoppingCart implements Ite public BigDecimal getDisplaySubTotal() { BigDecimal itemsTotal = BigDecimal.ZERO; - Iterator<ShoppingCartItem> i = iterator(); - while (i.hasNext()) { - itemsTotal = itemsTotal.add((i.next()).getDisplayItemSubTotal()); + for(ShoppingCartItem cartItem : this.cartLines) { + itemsTotal = itemsTotal.add(cartItem.getDisplayItemSubTotal()); } return itemsTotal; } @@ -2644,9 +2601,8 @@ public class ShoppingCart implements Ite public BigDecimal getDisplayRecurringSubTotal() { BigDecimal itemsTotal = BigDecimal.ZERO; - Iterator<ShoppingCartItem> i = iterator(); - while (i.hasNext()) { - itemsTotal = itemsTotal.add((i.next()).getDisplayItemRecurringSubTotal()); + for(ShoppingCartItem cartItem : this.cartLines) { + itemsTotal = itemsTotal.add(cartItem.getDisplayItemRecurringSubTotal()); } return itemsTotal; } @@ -2663,10 +2619,7 @@ public class ShoppingCart implements Ite /** Returns the sub-total in the cart (item-total - discount). */ public BigDecimal getSubTotalForPromotions() { BigDecimal itemsTotal = BigDecimal.ZERO; - Iterator<ShoppingCartItem> i = iterator(); - - while (i.hasNext()) { - ShoppingCartItem cartItem = i.next(); + for(ShoppingCartItem cartItem : this.cartLines) { GenericValue product = cartItem.getProduct(); if (product != null && "N".equals(product.getString("includeInPromotions"))) { // don't include in total if this is the case... @@ -2684,8 +2637,7 @@ public class ShoppingCart implements Ite public BigDecimal getOrderPaymentPreferenceTotalByType(String paymentMethodTypeId) { BigDecimal total = BigDecimal.ZERO; String thisPaymentMethodTypeId = null; - for (Iterator<CartPaymentInfo> iter = paymentInfo.iterator(); iter.hasNext();) { - CartPaymentInfo payment = iter.next(); + for(CartPaymentInfo payment : paymentInfo) { if (payment.amount == null) continue; if (payment.paymentMethodId != null) { try { @@ -2749,10 +2701,10 @@ public class ShoppingCart implements Ite public int getAdjustmentPromoIndex(String productPromoId) { int index = adjustments.size(); while (index > 0) { + index--; if (adjustments.get(index).getString("productPromoId").equals(productPromoId)) { return(index); } - index++; } return -1; } @@ -2831,9 +2783,7 @@ public class ShoppingCart implements Ite if (termTypeId == null) { return false; } - Iterator<GenericValue> orderTermsIt = orderTerms.iterator(); - while (orderTermsIt.hasNext()) { - GenericValue orderTerm = orderTermsIt.next(); + for(GenericValue orderTerm : orderTerms) { if (termTypeId.equals(orderTerm.getString("termTypeId"))) { return true; } @@ -2857,11 +2807,8 @@ public class ShoppingCart implements Ite List<List<GenericValue>> adjsLists = FastList.newInstance(); adjsLists.add(this.getAdjustments()); - Iterator<ShoppingCartItem> cartIterator = this.iterator(); - - while (cartIterator.hasNext()) { - ShoppingCartItem item = cartIterator.next(); + for(ShoppingCartItem item : this) { if (item.getAdjustments() != null) { adjsLists.add(item.getAdjustments()); } @@ -2886,11 +2833,8 @@ public class ShoppingCart implements Ite /** Returns the total weight in the cart. */ public BigDecimal getTotalWeight() { BigDecimal weight = BigDecimal.ZERO; - Iterator<ShoppingCartItem> i = iterator(); - - while (i.hasNext()) { - ShoppingCartItem item = i.next(); + for(ShoppingCartItem item : this.cartLines) { weight = weight.add(item.getWeight().multiply(item.getQuantity())); } return weight; @@ -2899,10 +2843,9 @@ public class ShoppingCart implements Ite /** Returns the total quantity in the cart. */ public BigDecimal getTotalQuantity() { BigDecimal count = BigDecimal.ZERO; - Iterator<ShoppingCartItem> i = iterator(); - while (i.hasNext()) { - count = count.add((i.next()).getQuantity()); + for(ShoppingCartItem item : this.cartLines) { + count = count.add(item.getQuantity()); } return count; } @@ -2997,9 +2940,7 @@ public class ShoppingCart implements Ite /** Returns true when there are shippable items in the cart */ public boolean shippingApplies() { boolean shippingApplies = false; - Iterator<ShoppingCartItem> i = this.iterator(); - while (i.hasNext()) { - ShoppingCartItem item = i.next(); + for(ShoppingCartItem item : this) { if (item.shippingApplies()) { shippingApplies = true; break; @@ -3011,9 +2952,7 @@ public class ShoppingCart implements Ite /** Returns true when there are taxable items in the cart */ public boolean taxApplies() { boolean taxApplies = false; - Iterator<ShoppingCartItem> i = this.iterator(); - while (i.hasNext()) { - ShoppingCartItem item = i.next(); + for(ShoppingCartItem item : this) { if (item.taxApplies()) { taxApplies = true; break; @@ -3131,9 +3070,7 @@ public class ShoppingCart implements Ite public void clearCartItemUseInPromoInfo() { // clear out info about which cart items have been used in promos - Iterator<ShoppingCartItem> cartLineIter = this.iterator(); - while (cartLineIter.hasNext()) { - ShoppingCartItem cartLine = cartLineIter.next(); + for(ShoppingCartItem cartLine : this) { cartLine.clearPromoRuleUseInfo(); } } @@ -3146,9 +3083,7 @@ public class ShoppingCart implements Ite BigDecimal totalDiscount = BigDecimal.ZERO; List<GenericValue> cartAdjustments = this.getAdjustments(); if (cartAdjustments != null) { - Iterator<GenericValue> cartAdjustmentIter = cartAdjustments.iterator(); - while (cartAdjustmentIter.hasNext()) { - GenericValue checkOrderAdjustment = cartAdjustmentIter.next(); + for(GenericValue checkOrderAdjustment : cartAdjustments) { if (UtilValidate.isNotEmpty(checkOrderAdjustment.getString("productPromoId")) && UtilValidate.isNotEmpty(checkOrderAdjustment.getString("productPromoRuleId")) && UtilValidate.isNotEmpty(checkOrderAdjustment.getString("productPromoActionSeqId"))) { @@ -3160,9 +3095,7 @@ public class ShoppingCart implements Ite } // add cart line adjustments from promo actions - Iterator<ShoppingCartItem> cartItemIter = this.iterator(); - while (cartItemIter.hasNext()) { - ShoppingCartItem checkItem = cartItemIter.next(); + for(ShoppingCartItem checkItem : this) { Iterator<GenericValue> checkOrderAdjustments = UtilMisc.toIterator(checkItem.getAdjustments()); while (checkOrderAdjustments != null && checkOrderAdjustments.hasNext()) { GenericValue checkOrderAdjustment = checkOrderAdjustments.next(); @@ -3266,17 +3199,13 @@ public class ShoppingCart implements Ite // remove all cart adjustments this.adjustments.clear(); // remove all cart item adjustments - Iterator<ShoppingCartItem> cartItemIter = this.iterator(); - while (cartItemIter.hasNext()) { - ShoppingCartItem checkItem = cartItemIter.next(); + for(ShoppingCartItem checkItem : this) { checkItem.getAdjustments().clear(); } } public void clearAllItemStatus() { - Iterator<ShoppingCartItem> lineIter = this.iterator(); - while (lineIter.hasNext()) { - ShoppingCartItem item = lineIter.next(); + for(ShoppingCartItem item : this) { item.setStatusId(null); } } @@ -3310,17 +3239,13 @@ public class ShoppingCart implements Ite } public synchronized void resetPromoRuleUse(String productPromoId, String productPromoRuleId) { - Iterator<ShoppingCartItem> lineIter = this.iterator(); - while (lineIter.hasNext()) { - ShoppingCartItem cartItem = lineIter.next(); + for(ShoppingCartItem cartItem : this) { cartItem.resetPromoRuleUse(productPromoId, productPromoRuleId); } } public synchronized void confirmPromoRuleUse(String productPromoId, String productPromoRuleId) { - Iterator<ShoppingCartItem> lineIter = this.iterator(); - while (lineIter.hasNext()) { - ShoppingCartItem cartItem = lineIter.next(); + for(ShoppingCartItem cartItem : this) { cartItem.confirmPromoRuleUse(productPromoId, productPromoRuleId); } } @@ -3334,9 +3259,8 @@ public class ShoppingCart implements Ite // search if there is an existing entry List<String> parties = additionalPartyRole.get(roleTypeId); if (parties != null) { - Iterator<String> it = parties.iterator(); - while (it.hasNext()) { - if ((it.next()).equals(partyId)) { + for(String pi : parties) { + if (pi.equals(partyId)) { return; } } @@ -3410,7 +3334,11 @@ public class ShoppingCart implements Ite serviceContext.put("internalName", internalName); serviceContext.put("productName", productName); serviceContext.put("description", description); - serviceContext.put("productTypeId", "AGGREGATED_CONF"); + if(ProductWorker.isAggregateService(delegator, item.getProductId())) + serviceContext.put("productTypeId", "AGGREGATEDSERV_CONF"); + else + serviceContext.put("productTypeId", "AGGREGATED_CONF"); + serviceContext.put("configId", configId); if (UtilValidate.isNotEmpty(product.getString("requirementMethodEnumId"))) { serviceContext.put("requirementMethodEnumId", product.getString("requirementMethodEnumId")); @@ -3466,9 +3394,7 @@ public class ShoppingCart implements Ite public List<GenericValue> makeOrderItemGroups() { List<GenericValue> result = FastList.newInstance(); - Iterator<ShoppingCartItemGroup> groupValueIter = this.itemGroupByNumberMap.values().iterator(); - while (groupValueIter.hasNext()) { - ShoppingCart.ShoppingCartItemGroup itemGroup = groupValueIter.next(); + for(ShoppingCart.ShoppingCartItemGroup itemGroup : this.itemGroupByNumberMap.values()) { result.add(itemGroup.makeOrderItemGroup(this.getDelegator())); } return result; @@ -3478,11 +3404,7 @@ public class ShoppingCart implements Ite if (dispatcher == null) return; synchronized (cartLines) { List<ShoppingCartItem> cartLineItems = new LinkedList<ShoppingCartItem>(cartLines); - Iterator<ShoppingCartItem> itemIter = cartLineItems.iterator(); - - while (itemIter.hasNext()) { - ShoppingCartItem item = itemIter.next(); - + for(ShoppingCartItem item : cartLineItems) { //Debug.logInfo("Item qty: " + item.getQuantity(), module); try { item.explodeItem(this, dispatcher); @@ -3503,10 +3425,7 @@ public class ShoppingCart implements Ite public void explodeItems(List<ShoppingCartItem> shoppingCartItems, LocalDispatcher dispatcher) { if (dispatcher == null) return; synchronized (cartLines) { - Iterator<ShoppingCartItem> itemIter = shoppingCartItems.iterator(); - while (itemIter.hasNext()) { - ShoppingCartItem item = itemIter.next(); - + for(ShoppingCartItem item : shoppingCartItems) { //Debug.logInfo("Item qty: " + item.getQuantity(), module); try { item.explodeItem(this, dispatcher); @@ -3780,9 +3699,7 @@ public class ShoppingCart implements Ite remainingAmount = BigDecimal.ZERO; } } - Iterator<CartPaymentInfo> i = paymentInfo.iterator(); - while (i.hasNext()) { - CartPaymentInfo inf = i.next(); + for(CartPaymentInfo inf : paymentInfo) { if (inf.amount == null) { inf.amount = remainingAmount; remainingAmount = BigDecimal.ZERO; @@ -3801,11 +3718,7 @@ public class ShoppingCart implements Ite Collection<GenericValue> infos = item.getOrderItemPriceInfos(); if (infos != null) { - Iterator<GenericValue> infosIter = infos.iterator(); - - while (infosIter.hasNext()) { - GenericValue orderItemPriceInfo = infosIter.next(); - + for(GenericValue orderItemPriceInfo : infos) { orderItemPriceInfo.set("orderItemSeqId", item.getOrderItemSeqId()); allInfos.add(orderItemPriceInfo); } @@ -3836,15 +3749,11 @@ public class ShoppingCart implements Ite /** make a list of SurveyResponse object to update with order information set */ public List<GenericValue> makeAllOrderItemSurveyResponses() { List<GenericValue> allInfos = new LinkedList<GenericValue>(); - Iterator<ShoppingCartItem> itemIter = this.iterator(); - while (itemIter.hasNext()) { - ShoppingCartItem item = itemIter.next(); + for(ShoppingCartItem item : this) { List<String> responses = UtilGenerics.checkList(item.getAttribute("surveyResponses")); GenericValue response = null; if (responses != null) { - Iterator<String> ri = responses.iterator(); - while (ri.hasNext()) { - String responseId = ri.next(); + for(String responseId : responses) { try { response = this.getDelegator().findByPrimaryKey("SurveyResponse", UtilMisc.toMap("surveyResponseId", responseId)); } catch (GenericEntityException e) { @@ -3910,10 +3819,8 @@ public class ShoppingCart implements Ite public List<GenericValue> makeAllShipGroupInfos() { List<GenericValue> groups = new LinkedList<GenericValue>(); - Iterator<CartShipInfo> grpIterator = this.shipInfo.iterator(); long seqId = 1; - while (grpIterator.hasNext()) { - CartShipInfo csi = grpIterator.next(); + for(CartShipInfo csi : this.shipInfo) { groups.addAll(csi.makeItemShipGroupAndAssoc(this.getDelegator(), this, seqId)); seqId++; } @@ -3936,9 +3843,7 @@ public class ShoppingCart implements Ite for (ShoppingCartItem item : cartLines) { Map<String, String> orderItemAttributes = item.getOrderItemAttributes(); - Iterator<String> attributesIter = orderItemAttributes.keySet().iterator(); - while (attributesIter.hasNext()) { - String key = attributesIter.next(); + for(String key : orderItemAttributes.keySet()) { String value = orderItemAttributes.get(key); GenericValue orderItemAttribute = getDelegator().makeValue("OrderItemAttribute"); @@ -4020,36 +3925,39 @@ public class ShoppingCart implements Ite public List<GenericValue> makeAllOrderItemAssociations() { List<GenericValue> allOrderItemAssociations = new LinkedList<GenericValue>(); - for (ShoppingCartItem item : cartLines) { - String requirementId = item.getRequirementId(); - if (requirementId != null) { - try { - List<GenericValue> commitments = getDelegator().findByAnd("OrderRequirementCommitment", UtilMisc.toMap("requirementId", requirementId)); - // TODO: multiple commitments for the same requirement are still not supported - GenericValue commitment = EntityUtil.getFirst(commitments); - if (commitment != null) { - GenericValue orderItemAssociation = getDelegator().makeValue("OrderItemAssoc"); - orderItemAssociation.set("orderId", commitment.getString("orderId")); - orderItemAssociation.set("orderItemSeqId", commitment.getString("orderItemSeqId")); - orderItemAssociation.set("shipGroupSeqId", "_NA_"); - orderItemAssociation.set("toOrderItemSeqId", item.getOrderItemSeqId()); - orderItemAssociation.set("toShipGroupSeqId", "_NA_"); - orderItemAssociation.set("orderItemAssocTypeId", "PURCHASE_ORDER"); - allOrderItemAssociations.add(orderItemAssociation); + for (CartShipInfo csi : shipInfo) { + Set<ShoppingCartItem> items = csi.getShipItems(); + for (ShoppingCartItem item : items) { + String requirementId = item.getRequirementId(); + if (requirementId != null) { + try { + List<GenericValue> commitments = getDelegator().findByAnd("OrderRequirementCommitment", UtilMisc.toMap("requirementId", requirementId)); + // TODO: multiple commitments for the same requirement are still not supported + GenericValue commitment = EntityUtil.getFirst(commitments); + if (commitment != null) { + GenericValue orderItemAssociation = getDelegator().makeValue("OrderItemAssoc"); + orderItemAssociation.set("orderId", commitment.getString("orderId")); + orderItemAssociation.set("orderItemSeqId", commitment.getString("orderItemSeqId")); + orderItemAssociation.set("shipGroupSeqId", "_NA_"); + orderItemAssociation.set("toOrderItemSeqId", item.getOrderItemSeqId()); + orderItemAssociation.set("toShipGroupSeqId", "_NA_"); + orderItemAssociation.set("orderItemAssocTypeId", "PURCHASE_ORDER"); + allOrderItemAssociations.add(orderItemAssociation); + } + } catch (GenericEntityException e) { + Debug.logError(e, "Unable to load OrderRequirementCommitment records for requirement ID : " + requirementId, module); } - } catch (GenericEntityException e) { - Debug.logError(e, "Unable to load OrderRequirementCommitment records for requirement ID : " + requirementId, module); } - } - if (item.getAssociatedOrderId() != null && item.getAssociatedOrderItemSeqId() != null) { - GenericValue orderItemAssociation = getDelegator().makeValue("OrderItemAssoc"); - orderItemAssociation.set("orderId", item.getAssociatedOrderId()); - orderItemAssociation.set("orderItemSeqId", item.getAssociatedOrderItemSeqId()); - orderItemAssociation.set("shipGroupSeqId", "_NA_"); - orderItemAssociation.set("toOrderItemSeqId", item.getOrderItemSeqId()); - orderItemAssociation.set("toShipGroupSeqId", "_NA_"); - orderItemAssociation.set("orderItemAssocTypeId", item.getOrderItemAssocTypeId()); - allOrderItemAssociations.add(orderItemAssociation); + if (item.getAssociatedOrderId() != null && item.getAssociatedOrderItemSeqId() != null) { + GenericValue orderItemAssociation = getDelegator().makeValue("OrderItemAssoc"); + orderItemAssociation.set("orderId", item.getAssociatedOrderId()); + orderItemAssociation.set("orderItemSeqId", item.getAssociatedOrderItemSeqId()); + orderItemAssociation.set("shipGroupSeqId", csi.getAssociatedShipGroupSeqId() != null ? csi.getAssociatedShipGroupSeqId() : "_NA_"); + orderItemAssociation.set("toOrderItemSeqId", item.getOrderItemSeqId()); + orderItemAssociation.set("toShipGroupSeqId", csi.getShipGroupSeqId() != null ? csi.getShipGroupSeqId() : "_NA_"); + orderItemAssociation.set("orderItemAssocTypeId", item.getOrderItemAssocTypeId()); + allOrderItemAssociations.add(orderItemAssociation); + } } } return allOrderItemAssociations; @@ -4172,11 +4080,7 @@ public class ShoppingCart implements Ite Set<ShoppingCartItem> shipItems = shipInfo.getShipItems(); if (UtilValidate.isEmpty(shipItems)) continue; - Iterator<ShoppingCartItem> siit = shipItems.iterator(); - while (siit.hasNext()) { - - ShoppingCartItem cartItem = siit.next(); - + for(ShoppingCartItem cartItem : shipItems) { BigDecimal itemQuantity = cartItem.getQuantity(); BigDecimal dropShipQuantity = BigDecimal.ZERO; @@ -4248,10 +4152,7 @@ public class ShoppingCart implements Ite } // Reassign the drop-shippable item quantities to new or existing drop-ship groups - Iterator<String> dsit = dropShipItems.keySet().iterator(); - while (dsit.hasNext()) { - String supplierPartyId = dsit.next(); - + for (String supplierPartyId : dropShipItems.keySet()) { CartShipInfo shipInfo = null; int newShipGroupIndex = -1 ; @@ -4268,15 +4169,9 @@ public class ShoppingCart implements Ite shipInfo.supplierPartyId = supplierPartyId; Map<ShoppingCartItem, Map<Integer, BigDecimal>> supplierCartItems = UtilGenerics.checkMap(dropShipItems.get(supplierPartyId)); - Iterator<ShoppingCartItem> itit = supplierCartItems.keySet().iterator(); - while (itit.hasNext()) { - - ShoppingCartItem cartItem = itit.next(); + for(ShoppingCartItem cartItem : supplierCartItems.keySet()) { Map<Integer, BigDecimal> cartItemGroupQuantities = UtilGenerics.checkMap(supplierCartItems.get(cartItem)); - Iterator<Integer> cigit = cartItemGroupQuantities.keySet().iterator(); - while (cigit.hasNext()) { - - Integer previousShipGroupIndex = cigit.next(); + for(Integer previousShipGroupIndex : cartItemGroupQuantities.keySet()) { BigDecimal dropShipQuantity = cartItemGroupQuantities.get(previousShipGroupIndex); positionItemToGroup(cartItem, dropShipQuantity, previousShipGroupIndex.intValue(), newShipGroupIndex, true); } @@ -4422,6 +4317,7 @@ public class ShoppingCart implements Ite public Timestamp shipBeforeDate = null; public Timestamp shipAfterDate = null; private String shipGroupSeqId = null; + private String associatedShipGroupSeqId = null; public String vendorPartyId = null; public String productStoreShipMethId = null; public Map<String, Object> attributes = FastMap.newInstance(); @@ -4456,6 +4352,11 @@ public class ShoppingCart implements Ite this.shipGroupSeqId = shipGroupSeqId; } + public String getAssociatedShipGroupSeqId() { return associatedShipGroupSeqId; } + public void setAssociatedShipGroupSeqId(String shipGroupSeqId) { + this.associatedShipGroupSeqId = shipGroupSeqId; + } + public String getFacilityId() { return facilityId; } public void setFacilityId(String facilityId) { this.facilityId = facilityId; @@ -4474,9 +4375,7 @@ public class ShoppingCart implements Ite public void clearAllTaxInfo() { this.shipTaxAdj.clear(); - Iterator<CartShipItemInfo> i = shipItemInfo.values().iterator(); - while (i.hasNext()) { - CartShipItemInfo itemInfo = i.next(); + for(CartShipItemInfo itemInfo : shipItemInfo.values()) { itemInfo.itemTaxAdj.clear(); } } @@ -4561,17 +4460,13 @@ public class ShoppingCart implements Ite } // create the top level tax adjustments - Iterator<GenericValue> ti = shipTaxAdj.iterator(); - while (ti.hasNext()) { - GenericValue taxAdj = ti.next(); + for(GenericValue taxAdj : shipTaxAdj) { taxAdj.set("shipGroupSeqId", shipGroupSeqId); values.add(taxAdj); } // create the ship group item associations - Iterator<ShoppingCartItem> i = shipItemInfo.keySet().iterator(); - while (i.hasNext()) { - ShoppingCartItem item = i.next(); + for(ShoppingCartItem item : shipItemInfo.keySet()) { CartShipItemInfo itemInfo = shipItemInfo.get(item); GenericValue assoc = delegator.makeValue("OrderItemShipGroupAssoc"); @@ -4581,9 +4476,7 @@ public class ShoppingCart implements Ite values.add(assoc); // create the item tax adjustment - Iterator<GenericValue> iti = itemInfo.itemTaxAdj.iterator(); - while (iti.hasNext()) { - GenericValue taxAdj = iti.next(); + for(GenericValue taxAdj : itemInfo.itemTaxAdj) { taxAdj.set("orderItemSeqId", item.getOrderItemSeqId()); taxAdj.set("shipGroupSeqId", shipGroupSeqId); values.add(taxAdj); @@ -4837,9 +4730,7 @@ public class ShoppingCart implements Ite throw new GeneralRuntimeException("Split Payment Preference per Ship Group does not yet support multiple Payment Methods"); } if ("Y".equals(splitPayPrefPerShpGrp) && cart.paymentInfo.size() == 1) { - Iterator<CartShipInfo> shipIter = cart.getShipGroups().iterator(); - while (shipIter.hasNext()) { - CartShipInfo csi = shipIter.next(); + for(CartShipInfo csi : cart.getShipGroups()) { maxAmount = csi.getTotal().add(cart.getOrderOtherAdjustmentTotal().divide(new BigDecimal(cart.getShipGroupSize()), generalRounding)).add(csi.getShipEstimate().add(csi.getTotalTax(cart))); maxAmount = maxAmount.setScale(scale, rounding); @@ -4875,8 +4766,8 @@ public class ShoppingCart implements Ite opp.set("statusId", "PAYMENT_RECEIVED"); } } - Debug.log("ShipGroup [" + csi.getShipGroupSeqId() +"]", module); - Debug.log("Creating OrderPaymentPreference - " + opp, module); + Debug.logInfo("ShipGroup [" + csi.getShipGroupSeqId() +"]", module); + Debug.logInfo("Creating OrderPaymentPreference - " + opp, module); values.add(opp); } } else if ("N".equals(splitPayPrefPerShpGrp)) { @@ -4914,7 +4805,7 @@ public class ShoppingCart implements Ite opp.set("statusId", "PAYMENT_RECEIVED"); } } - Debug.log("Creating OrderPaymentPreference - " + opp, module); + Debug.logInfo("Creating OrderPaymentPreference - " + opp, module); values.add(opp); } } @@ -5031,10 +4922,8 @@ public class ShoppingCart implements Ite } if (itemBasePrice == null) { List<GenericValue> productPriceList = EntityUtil.filterByDate(delegator.findList("ProductPrice", EntityCondition.makeCondition("productId", itemProductId), null, null, null, false)); - Iterator<GenericValue> it = productPriceList.iterator(); Map<String, BigDecimal> productPriceMap = FastMap.newInstance(); - while (it.hasNext()) { - GenericValue productPrice = it.next(); + for(GenericValue productPrice : productPriceList) { productPriceMap.put(productPrice.getString("productPriceTypeId"), productPrice.getBigDecimal("price")); } if (UtilValidate.isNotEmpty(productPriceMap.get("SPECIAL_PROMO_PRICE"))) { Modified: ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java URL: http://svn.apache.org/viewvc/ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java?rev=1305581&r1=1305580&r2=1305581&view=diff ============================================================================== --- ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java (original) +++ ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java Mon Mar 26 20:56:02 2012 @@ -522,9 +522,7 @@ public class ShoppingCartEvents { productAssocs = delegator.findList("ProductAssoc", cond, null, null, null, false); productAssocs = EntityUtil.filterByDate(productAssocs); List<String> productList = FastList.newInstance(); - Iterator<GenericValue> iter = productAssocs.iterator(); - while (iter.hasNext()) { - GenericValue productAssoc = iter.next(); + for(GenericValue productAssoc : productAssocs) { if (productId.equals(productAssoc.getString("productId"))) { productList.add(productAssoc.getString("productIdTo")); continue; @@ -534,9 +532,7 @@ public class ShoppingCartEvents { continue; } } - Iterator<ShoppingCartItem> sciIter = cart.iterator(); - while (sciIter.hasNext()) { - ShoppingCartItem sci = sciIter.next(); + for(ShoppingCartItem sci : cart) { if (productList.contains(sci.getProductId())) { try { cart.removeCartItem(sci, dispatcher); @@ -553,9 +549,7 @@ public class ShoppingCartEvents { EntityCondition.makeCondition("productAssocTypeId", EntityOperator.EQUALS, "PRODUCT_UPGRADE")), EntityOperator.AND); productList = delegator.findList("ProductAssoc", cond, UtilMisc.toSet("productId"), null, null, false); if (productList != null) { - Iterator<ShoppingCartItem> sciIter = cart.iterator(); - while (sciIter.hasNext()) { - ShoppingCartItem sci = sciIter.next(); + for(ShoppingCartItem sci : cart) { if (productList.contains(sci.getProductId())) { try { cart.removeCartItem(sci, dispatcher); Modified: ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartHelper.java URL: http://svn.apache.org/viewvc/ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartHelper.java?rev=1305581&r1=1305580&r2=1305581&view=diff ============================================================================== --- ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartHelper.java (original) +++ ofbiz/branches/20111205EmailHandling/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartHelper.java Mon Mar 26 20:56:02 2012 @@ -29,6 +29,7 @@ import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import javolution.util.FastMap; @@ -44,6 +45,7 @@ import org.ofbiz.base.util.UtilValidate; import org.ofbiz.entity.Delegator; import org.ofbiz.entity.GenericEntityException; import org.ofbiz.entity.GenericValue; +import org.ofbiz.entity.util.EntityTypeUtil; import org.ofbiz.entity.util.EntityUtil; import org.ofbiz.order.order.OrderReadHelper; import org.ofbiz.order.shoppingcart.product.ProductPromoWorker; @@ -207,10 +209,8 @@ public class ShoppingCartHelper { // Get the additional features selected for the product (if any) Map<String, Object> selectedFeatures = UtilHttp.makeParamMapWithPrefix(context, null, "FT", null); - Iterator<String> selectedFeaturesTypes = selectedFeatures.keySet().iterator(); Map<String, GenericValue> additionalFeaturesMap = FastMap.newInstance(); - while (selectedFeaturesTypes.hasNext()) { - String selectedFeatureType = selectedFeaturesTypes.next(); + for(String selectedFeatureType : selectedFeatures.keySet()) { String selectedFeatureValue = (String)selectedFeatures.get(selectedFeatureType); if (UtilValidate.isNotEmpty(selectedFeatureValue)) { GenericValue productFeatureAndAppl = null; @@ -229,6 +229,15 @@ public class ShoppingCartHelper { } } + // get order item attributes + Map<String, String> orderItemAttributes = FastMap.newInstance(); + String orderItemAttributePrefix = UtilProperties.getPropertyValue("order.properties", "order.item.attr.prefix"); + for (Entry<String, ? extends Object> entry : context.entrySet()) { + if (entry.getKey().toString().contains(orderItemAttributePrefix) && UtilValidate.isNotEmpty(entry.getValue())) { + orderItemAttributes.put(entry.getKey().replaceAll(orderItemAttributePrefix, ""), entry.getValue().toString()); + } + } + // add or increase the item to the cart int itemId = -1; try { @@ -236,7 +245,7 @@ public class ShoppingCartHelper { itemId = cart.addOrIncreaseItem(productId, amount, quantity, reservStart, reservLength, reservPersons, accommodationMapId, accommodationSpotId, shipBeforeDate, shipAfterDate, additionalFeaturesMap, attributes, - catalogId, configWrapper, itemType, itemGroupNumber, pProductId, dispatcher); + orderItemAttributes, catalogId, configWrapper, itemType, itemGroupNumber, pProductId, dispatcher); } else { itemId = cart.addNonProductItem(itemType, itemDescription, productCategoryId, price, quantity, attributes, catalogId, itemGroupNumber, dispatcher); @@ -317,7 +326,7 @@ public class ShoppingCartHelper { BigDecimal amount = orderItem.getBigDecimal("selectedAmount"); ProductConfigWrapper configWrapper = null; String aggregatedProdId = null; - if ("AGGREGATED_CONF".equals(ProductWorker.getProductTypeId(delegator, productId))) { + if (EntityTypeUtil.hasParentType(delegator, "ProductType", "productTypeId", ProductWorker.getProductTypeId(delegator, productId), "parentTypeId", "AGGREGATED")) { try { GenericValue instanceProduct = delegator.findByPrimaryKey("Product", UtilMisc.toMap("productId", productId)); String configId = instanceProduct.getString("configId"); @@ -577,10 +586,7 @@ public class ShoppingCartHelper { } BigDecimal totalQuantity = BigDecimal.ZERO; - Iterator<GenericValue> pcmIter = prodCatMemberCol.iterator(); - - while (pcmIter.hasNext()) { - GenericValue productCategoryMember = pcmIter.next(); + for(GenericValue productCategoryMember : prodCatMemberCol) { BigDecimal quantity = productCategoryMember.getBigDecimal("quantity"); if (quantity != null && quantity.compareTo(BigDecimal.ZERO) > 0) { @@ -610,13 +616,8 @@ public class ShoppingCartHelper { /** Delete an item from the shopping cart. */ public Map<String, Object> deleteFromCart(Map<String, ? extends Object> context) { Map<String, Object> result = null; - Set<String> names = context.keySet(); - Iterator<String> i = names.iterator(); ArrayList<String> errorMsgs = new ArrayList<String>(); - - while (i.hasNext()) { - String o = i.next(); - + for(String o : context.keySet()) { if (o.toUpperCase().startsWith("DELETE")) { try { String indexStr = o.substring(o.lastIndexOf('_') + 1); @@ -651,9 +652,6 @@ public class ShoppingCartHelper { ArrayList<ShoppingCartItem> deleteList = new ArrayList<ShoppingCartItem>(); ArrayList<String> errorMsgs = new ArrayList<String>(); - Set<String> parameterNames = context.keySet(); - Iterator<String> parameterNameIter = parameterNames.iterator(); - BigDecimal oldQuantity = BigDecimal.ONE.negate(); String oldDescription = ""; BigDecimal oldPrice = BigDecimal.ONE.negate(); @@ -666,8 +664,7 @@ public class ShoppingCartHelper { } // TODO: This should be refactored to use UtilHttp.parseMultiFormData(parameters) - while (parameterNameIter.hasNext()) { - String parameterName = parameterNameIter.next(); + for(String parameterName : context.keySet()) { int underscorePos = parameterName.lastIndexOf('_'); if (underscorePos >= 0) { @@ -870,10 +867,7 @@ public class ShoppingCartHelper { } } - Iterator<ShoppingCartItem> di = deleteList.iterator(); - - while (di.hasNext()) { - ShoppingCartItem item = di.next(); + for(ShoppingCartItem item : deleteList) { int itemIndex = this.cart.getItemIndex(item); if (Debug.infoOn()) |
Free forum by Nabble | Edit this page |