You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by bi...@apache.org on 2008/11/09 11:28:23 UTC

svn commit: r712478 - in /ofbiz/trunk: applications/order/config/ applications/order/src/org/ofbiz/order/shoppingcart/ applications/order/webapp/ordermgr/entry/cart/ applications/product/src/org/ofbiz/product/product/ framework/images/webapp/images/

Author: bibryam
Date: Sun Nov  9 02:28:23 2008
New Revision: 712478

URL: http://svn.apache.org/viewvc?rev=712478&view=rev
Log:
Fixed various bugs related to product amounts.
Allow product amount  modification during cart update.
This commit contains new labels.

Modified:
    ofbiz/trunk/applications/order/config/OrderUiLabels.xml
    ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java
    ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartHelper.java
    ofbiz/trunk/applications/order/webapp/ordermgr/entry/cart/showcartitems.ftl
    ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductWorker.java
    ofbiz/trunk/framework/images/webapp/images/maincss.css

Modified: ofbiz/trunk/applications/order/config/OrderUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/config/OrderUiLabels.xml?rev=712478&r1=712477&r2=712478&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/config/OrderUiLabels.xml (original)
+++ ofbiz/trunk/applications/order/config/OrderUiLabels.xml Sun Nov  9 02:28:23 2008
@@ -9500,6 +9500,9 @@
         <value xml:lang="fr">Configurer l'article avant de l'ajouter au panier</value>
         <value xml:lang="th">สร้างสินค้าก่อนที่จะเพิ่มลงตระกร้า</value>
     </property>
+    <property key="cart.addToCart.enterAmountBeforeAddingToCart">
+        <value xml:lang="en">Enter Amount Before Adding to Cart</value>
+    </property>
     <property key="cart.addToCart.enterBookingInforamtionBeforeAddingToCart">
         <value xml:lang="de">Reservationsinformationen erfassen vor dem Hinzufügen zum Warenkorb</value>
         <value xml:lang="en">Enter Booking Information Before Adding to Cart</value>
@@ -9563,6 +9566,9 @@
         <value xml:lang="zh_CN">没有指定的协议被加入</value>
         <value xml:lang="zh">没有指定要添加进来的合同。</value>
     </property>
+    <property key="cart.amount_not_positive_number">
+        <value xml:lang="en">Amount must be a positive number</value>
+    </property>    
     <property key="cart.category_not_specified_to_add_from">
         <value xml:lang="de">Keine Kategorie angegeben, aus der hinzugefügt werden kann.</value>
         <value xml:lang="en">No category specified to add from.</value>

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=712478&r1=712477&r2=712478&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 Sun Nov  9 02:28:23 2008
@@ -411,7 +411,14 @@
                 amount = null;
             }
         }
-
+        
+        // check for required amount
+        if ((ProductWorker.isAmountRequired(delegator, productId)) && (amount == null || amount.doubleValue() == 0.0)) {
+            request.setAttribute("product_id", productId);
+            request.setAttribute("_EVENT_MESSAGE_",UtilProperties.getMessage(resource,"cart.addToCart.enterAmountBeforeAddingToCart",locale));
+            return "product";
+        }
+                
         // get the ship before date (handles both yyyy-mm-dd input and full timestamp)
         shipBeforeDateStr = (String) paramMap.remove("shipBeforeDate");
         if (shipBeforeDateStr != null && shipBeforeDateStr.length() > 0) {

Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartHelper.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartHelper.java?rev=712478&r1=712477&r2=712478&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartHelper.java (original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartHelper.java Sun Nov  9 02:28:23 2008
@@ -137,7 +137,9 @@
 
         // amount sanity check
         if (amount != null && amount.doubleValue() < 0) {
-            amount = null;
+            String errMsg = UtilProperties.getMessage(resource, "cart.amount_not_positive_number", this.cart.getLocale());
+            result = ServiceUtil.returnError(errMsg);
+            return result;
         }
 
         // check desiredDeliveryDate syntax and remove if empty
@@ -708,14 +710,28 @@
                                 quantString += " 00:00:00.000";
                             item.setShipAfterDate(Timestamp.valueOf(quantString));
                         }
+                    } else if (parameterName.startsWith("amount")) {
+                        if (item != null && quantString.length() > 0) {
+                            double amount = nf.parse(quantString).doubleValue();
+                            if (amount <= 0 ) {
+                                String errMsg = UtilProperties.getMessage(resource, "cart.amount_not_positive_number", this.cart.getLocale());
+                                errorMsgs.add(errMsg);
+                                result = ServiceUtil.returnError(errorMsgs);
+                                return result;
+                            }
+                            item.setSelectedAmount(amount);
+                        }
                     } else if (parameterName.startsWith("itemType")) {
                         if (item != null && quantString.length() > 0) {
                             item.setItemType(quantString);
-                        }
+                        }                      
                     } else {
                         quantity = nf.parse(quantString).doubleValue();
                         if (quantity < 0) {
-                            throw new CartItemModifyException("Quantity must be a positive number.");
+                            String errMsg = UtilProperties.getMessage(resource, "cart.quantity_not_positive_number", this.cart.getLocale());
+                            errorMsgs.add(errMsg);
+                            result = ServiceUtil.returnError(errorMsgs);
+                            return result;
                         }
                     }
 

Modified: ofbiz/trunk/applications/order/webapp/ordermgr/entry/cart/showcartitems.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/entry/cart/showcartitems.ftl?rev=712478&r1=712477&r2=712478&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/webapp/ordermgr/entry/cart/showcartitems.ftl (original)
+++ ofbiz/trunk/applications/order/webapp/ordermgr/entry/cart/showcartitems.ftl Sun Nov  9 02:28:23 2008
@@ -104,7 +104,7 @@
                        <#list cartLine.getAttribute("surveyResponses") as surveyResponseId>
                         <a href="/content/control/ViewSurveyResponses?surveyResponseId=${surveyResponseId}&externalLoginKey=${externalLoginKey}" class="buttontext" style="font-size: xx-small;">${surveyResponseId}</a> 
                        </#list>
-                    </#if>
+                    </#if>                    
                 </div>
             </td></tr>
             <#if cartLine.getRequirementId()?has_content>
@@ -235,14 +235,22 @@
                 <#else>
                     <input size="6" type="text" name="update_${cartLineIndex}" value="${cartLine.getQuantity()?string.number}"/>
                 </#if>
-              </div>
+                <#if (cartLine.getSelectedAmount() > 0) >                  
+                  <br/><b>${uiLabelMap.OrderAmount}:</b><br/><input size="6" type="text" name="amount_${cartLineIndex}" value="${cartLine.getSelectedAmount()?string.number}"/>                  
+                </#if>                  
+              </div>                 
             </td>
             <td nowrap align="right">
               <div>
                 <#if cartLine.getIsPromo() || (shoppingCart.getOrderType() == "SALES_ORDER" && !security.hasEntityPermission("ORDERMGR", "_SALES_PRICEMOD", session))>
                   <@ofbizCurrency amount=cartLine.getDisplayPrice() isoCode=currencyUomId/>
                 <#else>
-                  <input size="6" type="text" name="price_${cartLineIndex}" value="${cartLine.getBasePrice()}"/>
+                    <#if (cartLine.getSelectedAmount() > 0) >
+                        <#assign price = cartLine.getBasePrice() / cartLine.getSelectedAmount()>                                                         
+                    <#else>
+                        <#assign price = cartLine.getBasePrice()>                           
+                    </#if>                     
+                    <input size="6" type="text" name="price_${cartLineIndex}" value="${price}"/>
                 </#if>
               </div>
             </td>

Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductWorker.java?rev=712478&r1=712477&r2=712478&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductWorker.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductWorker.java Sun Nov  9 02:28:23 2008
@@ -836,6 +836,19 @@
 
         return false;
     }
+    
+    public static boolean isAmountRequired(GenericDelegator delegator, String productI) {
+        try {
+            GenericValue product = delegator.findByPrimaryKeyCache("Product", UtilMisc.toMap("productId", productI));
+            if (product != null) {
+                return "Y".equals(product.getString("requireAmount"));
+            }
+        } catch (GenericEntityException e) {
+            Debug.logWarning(e.getMessage(), module);
+        }
+
+        return false;
+    }    
 
     public static String getProductTypeId(GenericDelegator delegator, String productI) {
         try {

Modified: ofbiz/trunk/framework/images/webapp/images/maincss.css
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/maincss.css?rev=712478&r1=712477&r2=712478&view=diff
==============================================================================
--- ofbiz/trunk/framework/images/webapp/images/maincss.css (original)
+++ ofbiz/trunk/framework/images/webapp/images/maincss.css Sun Nov  9 02:28:23 2008
@@ -813,7 +813,6 @@
 }
 
 .hidden {
-height: 0;
 visibility: hidden;
 }