Author: jleroux
Date: Mon Jan 24 11:24:26 2011
New Revision: 1062733

URL: http://svn.apache.org/viewvc?rev=1062733&view=rev
Log:
A patch from Leon "Desired Delivery Date and comment are lost when selecting a 
variant product into shopping cart" 
(https://issues.apache.org/jira/browse/OFBIZ-4133) - OFBIZ-4133

>From "ordermgr/control/additem/product" page, if you try to select a "virtual" 
>product into shopping cart with some comments or "desired delivery date" 
>input, you'll be redirect to varaints selection page. After you select 
>neccessary features and submit, the variant product appears in shopping cart 
>item list, but the comments and "desired delivery date" you input ealier is 
>lost.
1. add some hidden fields to store the values from previous "additem" form
2. add paramMap to request attributes in case those values were lost again if 
an error occurs

Modified:
    
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java
    
ofbiz/trunk/applications/order/webapp/ordermgr/entry/catalog/productdetail.ftl

Modified: 
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java?rev=1062733&r1=1062732&r2=1062733&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java
 (original)
+++ 
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java
 Mon Jan 24 11:24:26 2011
@@ -264,6 +264,7 @@ public class ShoppingCartEvents {
 
                 // check if features are selected
                 if (UtilValidate.isEmpty(selectedFeatures)) {
+                    request.setAttribute("paramMap", paramMap);
                     request.setAttribute("product_id", productId);
                     request.setAttribute("_EVENT_MESSAGE_", 
UtilProperties.getMessage(resource_error, 
"cart.addToCart.chooseVariationBeforeAddingToCart", locale));
                     return "product";
@@ -273,12 +274,14 @@ public class ShoppingCartEvents {
                 if (UtilValidate.isNotEmpty(variantProductId)) {
                     productId = variantProductId;
                 } else {
+                    request.setAttribute("paramMap", paramMap);
                     request.setAttribute("product_id", productId);
                     request.setAttribute("_EVENT_MESSAGE_", 
UtilProperties.getMessage(resource_error, 
"cart.addToCart.incompatibilityVariantFeature", locale));
                     return "product";
                 }
 
             } else {
+                request.setAttribute("paramMap", paramMap);
                 request.setAttribute("product_id", productId);
                 request.setAttribute("_EVENT_MESSAGE_", 
UtilProperties.getMessage(resource_error, 
"cart.addToCart.chooseVariationBeforeAddingToCart", locale));
                 return "product";

Modified: 
ofbiz/trunk/applications/order/webapp/ordermgr/entry/catalog/productdetail.ftl
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/entry/catalog/productdetail.ftl?rev=1062733&r1=1062732&r2=1062733&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/order/webapp/ordermgr/entry/catalog/productdetail.ftl 
(original)
+++ 
ofbiz/trunk/applications/order/webapp/ordermgr/entry/catalog/productdetail.ftl 
Mon Jan 24 11:24:26 2011
@@ -433,6 +433,12 @@ ${virtualJavaScript?if_exists}
       </#if>
 
       <form method="post" action="<@ofbizUrl>additem<#if 
requestAttributes._CURRENT_VIEW_?exists>/${requestAttributes._CURRENT_VIEW_}</#if></@ofbizUrl>"
 name="addform"  style="margin: 0;">
+        <#if requestAttributes.paramMap?has_content>
+          <input type="hidden" name="itemComment" 
value="${requestAttributes.paramMap.itemComment?if_exists}" />
+          <input type="hidden" name="shipBeforeDate" 
value="${requestAttributes.paramMap.shipBeforeDate?if_exists}" />
+          <input type="hidden" name="shipAfterDate" 
value="${requestAttributes.paramMap.shipAfterDate?if_exists}" />
+          <input type="hidden" name="itemDesiredDeliveryDate" 
value="${requestAttributes.paramMap.itemDesiredDeliveryDate?if_exists}" />
+        </#if>
         <#assign inStock = true>
         <#-- Variant Selection -->
         <#if product.isVirtual?if_exists?upper_case == "Y">


Reply via email to