You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jo...@apache.org on 2007/03/07 18:01:24 UTC

svn commit: r515648 - in /ofbiz/trunk/applications: order/webapp/ordermgr/WEB-INF/actions/entry/catalog/ product/script/org/ofbiz/product/inventory/ product/servicedef/

Author: jonesde
Date: Wed Mar  7 09:01:23 2007
New Revision: 515648

URL: http://svn.apache.org/viewvc?view=rev&rev=515648
Log:
Applied patch from Anil Patel in OFBIZ-693; small improvement in lead time display when not in stock changed to use availableToPromiseTotal; added caching support for productsummary call to make it perform reasonably

Modified:
    ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/productdetail.bsh
    ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/productsummary.bsh
    ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryServices.xml
    ofbiz/trunk/applications/product/servicedef/services_facility.xml

Modified: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/productdetail.bsh
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/productdetail.bsh?view=diff&rev=515648&r1=515647&r2=515648
==============================================================================
--- ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/productdetail.bsh (original)
+++ ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/productdetail.bsh Wed Mar  7 09:01:23 2007
@@ -206,9 +206,26 @@
     // get the days to ship
 
     facilityId = productStore.getString("inventoryFacilityId");
-    productFacility = delegator.findByPrimaryKeyCache("ProductFacility", UtilMisc.toMap("productId", productId, "facilityId", facilityId));
+    /*productFacility = delegator.findByPrimaryKeyCache("ProductFacility", UtilMisc.toMap("productId", productId, "facilityId", facilityId));    
     if (productFacility != null && productFacility.get("daysToShip") != null) {
         context.put("daysToShip", productFacility.get("daysToShip"));
+    }*/
+    
+    resultOutput = dispatcher.runSync("getInventoryAvailableByFacility", UtilMisc.toMap("productId",productId, "facilityId", facilityId, "useCache", false));
+    totalAvailableToPromise = resultOutput.get("availableToPromiseTotal");    
+    if(totalAvailableToPromise != null && totalAvailableToPromise.doubleValue() > 0) {
+        productFacility = delegator.findByPrimaryKeyCache("ProductFacility", UtilMisc.toMap("productId", productId, "facilityId", facilityId));
+        if (productFacility != null && productFacility.get("daysToShip") != null) {
+            context.put("daysToShip", productFacility.get("daysToShip"));
+        }    
+    } else {
+       supplierProducts=delegator.findByAndCache("SupplierProduct", UtilMisc.toMap("productId", productId),UtilMisc.toList("-availableFromDate"));
+       supplierProduct = EntityUtil.getFirst(supplierProducts);
+       if (supplierProduct != null && supplierProduct.get("standardLeadTimeDays") != null) {
+           Double standardLeadTimeDays = supplierProduct.get("standardLeadTimeDays");
+           double daysToShip = standardLeadTimeDays.doubleValue()+1;
+           context.put("daysToShip", new Double(daysToShip));
+       }
     }
 
     // get the product distinguishing features

Modified: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/productsummary.bsh
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/productsummary.bsh?view=diff&rev=515648&r1=515647&r2=515648
==============================================================================
--- ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/productsummary.bsh (original)
+++ ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/productsummary.bsh Wed Mar  7 09:01:23 2007
@@ -24,12 +24,14 @@
 
 import org.ofbiz.base.util.*;
 import org.ofbiz.entity.*;
+import org.ofbiz.entity.util.*;
 import org.ofbiz.service.*;
 import org.ofbiz.product.product.ProductContentWrapper;
 import org.ofbiz.product.catalog.*;
 import org.ofbiz.product.store.*;
 import org.ofbiz.order.shoppingcart.*;
 
+
 //either optProduct, optProductId or productId must be specified
 product = request.getAttribute("optProduct");
 optProductId = request.getAttribute("optProductId");
@@ -60,12 +62,23 @@
 if (product == null && productId != null) {
     product = delegator.findByPrimaryKeyCache("Product", UtilMisc.toMap("productId", productId));
 }
-if (product != null) {
-    productFacility = delegator.findByPrimaryKeyCache("ProductFacility", UtilMisc.toMap("productId", product.get("productId"), "facilityId", facilityId));
-    if (productFacility != null && productFacility.get("daysToShip") != null) {
-        context.put("daysToShip", productFacility.get("daysToShip"));
+if (product != null) {    
+    resultOutput = dispatcher.runSync("getInventoryAvailableByFacility", UtilMisc.toMap("productId",product.get("productId"), "facilityId", facilityId, "useCache", true));
+    totalAvailableToPromise = resultOutput.get("availableToPromiseTotal");    
+    if(totalAvailableToPromise != null && totalAvailableToPromise.doubleValue() > 0) {
+        productFacility = delegator.findByPrimaryKeyCache("ProductFacility", UtilMisc.toMap("productId", product.get("productId"), "facilityId", facilityId));
+        if (productFacility != null && productFacility.get("daysToShip") != null) {
+            context.put("daysToShip", productFacility.get("daysToShip"));
+        }    
+    } else {
+       supplierProducts=delegator.findByAndCache("SupplierProduct", UtilMisc.toMap("productId", product.get("productId")),UtilMisc.toList("-availableFromDate"));
+       supplierProduct = EntityUtil.getFirst(supplierProducts);
+       if (supplierProduct != null && supplierProduct.get("standardLeadTimeDays") != null) {
+           Double standardLeadTimeDays = supplierProduct.get("standardLeadTimeDays");
+           double daysToShip = standardLeadTimeDays.doubleValue()+1;
+           context.put("daysToShip", new Double(daysToShip));
+       }
     }
-    
     // make the productContentWrapper
     ProductContentWrapper productContentWrapper = new ProductContentWrapper(product, request);
     context.put("productContentWrapper", productContentWrapper);

Modified: ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryServices.xml?view=diff&rev=515648&r1=515647&r2=515648
==============================================================================
--- ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryServices.xml (original)
+++ ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryServices.xml Wed Mar  7 09:01:23 2007
@@ -417,7 +417,12 @@
         </if-compare>
 
         <!-- we might get away with a cache here since real serious errors will occur during the reservation service... but only if we need the speed -->
-        <find-by-and entity-name="InventoryItem" map-name="lookupFieldMap" list-name="inventoryItems"/> <!-- use-cache="true" -->
+        <if-compare field-name="parameters.useCache" operator="equals" value="true" type="Boolean">
+            <find-by-and entity-name="InventoryItem" map-name="lookupFieldMap" list-name="inventoryItems" use-cache="true"/>
+            <else>
+                <find-by-and entity-name="InventoryItem" map-name="lookupFieldMap" list-name="inventoryItems" use-cache="false"/>
+            </else>
+        </if-compare>
         
         <set field="parameters.availableToPromiseTotal" value="0" type="Double"/>
         <set field="parameters.quantityOnHandTotal" value="0" type="Double"/>

Modified: ofbiz/trunk/applications/product/servicedef/services_facility.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/servicedef/services_facility.xml?view=diff&rev=515648&r1=515647&r2=515648
==============================================================================
--- ofbiz/trunk/applications/product/servicedef/services_facility.xml (original)
+++ ofbiz/trunk/applications/product/servicedef/services_facility.xml Wed Mar  7 09:01:23 2007
@@ -119,6 +119,7 @@
         <attribute name="productId" type="String" mode="IN" optional="false"/>
         <attribute name="quantityOnHandTotal" type="Double" mode="OUT" optional="false"/>
         <attribute name="availableToPromiseTotal" type="Double" mode="OUT" optional="false"/>
+        <attribute name="useCache" type="Boolean" mode="IN" optional="true"/>
     </service>
     <service name="getInventoryAvailableByFacility" engine="simple"
                 location="org/ofbiz/product/inventory/InventoryServices.xml" invoke="getProductInventoryAvailable" auth="false" use-transaction="false">
@@ -127,6 +128,7 @@
         <attribute name="facilityId" type="String" mode="IN" optional="false"/>
         <attribute name="quantityOnHandTotal" type="Double" mode="OUT" optional="false"/>
         <attribute name="availableToPromiseTotal" type="Double" mode="OUT" optional="false"/>
+        <attribute name="useCache" type="Boolean" mode="IN" optional="true"/>
     </service>
     <service name="getInventoryAvailableByLocation" engine="simple"
                 location="org/ofbiz/product/inventory/InventoryServices.xml" invoke="getProductInventoryAvailable" auth="false">
@@ -136,6 +138,7 @@
         <attribute name="locationSeqId" type="String" mode="IN" optional="false"/>
         <attribute name="quantityOnHandTotal" type="Double" mode="OUT" optional="false"/>
         <attribute name="availableToPromiseTotal" type="Double" mode="OUT" optional="false"/>
+        <attribute name="useCache" type="Boolean" mode="IN" optional="true"/>
     </service>
     <service name="getInventoryAvailableByContainer" engine="simple"
                 location="org/ofbiz/product/inventory/InventoryServices.xml" invoke="getProductInventoryAvailable" auth="false" use-transaction="false">
@@ -151,6 +154,7 @@
         <attribute name="inventoryItemId" type="String" mode="IN" optional="false"/>
         <attribute name="quantityOnHandTotal" type="Double" mode="OUT" optional="false"/>
         <attribute name="availableToPromiseTotal" type="Double" mode="OUT" optional="false"/>
+        <attribute name="useCache" type="Boolean" mode="IN" optional="true"/>
     </service>
     <service name="getProductInventoryAvailableFromAssocProducts" engine="java"
              location="org.ofbiz.product.inventory.InventoryServices" invoke="getProductInventoryAvailableFromAssocProducts" auth="false" use-transaction="false">