svn commit: r606532 - in /ofbiz/trunk/applications: accounting/src/org/ofbiz/accounting/agreement/ ecommerce/webapp/ecommerce/WEB-INF/actions/shoppinglist/ manufacturing/script/org/ofbiz/manufacturing/bom/ manufacturing/src/org/ofbiz/manufacturing/bom/...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r606532 - in /ofbiz/trunk/applications: accounting/src/org/ofbiz/accounting/agreement/ ecommerce/webapp/ecommerce/WEB-INF/actions/shoppinglist/ manufacturing/script/org/ofbiz/manufacturing/bom/ manufacturing/src/org/ofbiz/manufacturing/bom/...

lektran
Author: lektran
Date: Sat Dec 22 20:06:56 2007
New Revision: 606532

URL: http://svn.apache.org/viewvc?rev=606532&view=rev
Log:
Had a look through all the code using ProductAssoc and made sure it was honouring thru dates, plus a few tidy ups along the way

Modified:
    ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/agreement/AgreementServices.java
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/WEB-INF/actions/shoppinglist/editShoppingList.bsh
    ofbiz/trunk/applications/manufacturing/script/org/ofbiz/manufacturing/bom/BomSimpleMethods.xml
    ofbiz/trunk/applications/manufacturing/src/org/ofbiz/manufacturing/bom/BOMServices.java
    ofbiz/trunk/applications/manufacturing/src/org/ofbiz/manufacturing/bom/BOMTree.java
    ofbiz/trunk/applications/manufacturing/webapp/manufacturing/WEB-INF/actions/bom/EditProductBom.bsh
    ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReadHelper.java
    ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java
    ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductDisplayWorker.java
    ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java
    ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/shipGroups.bsh
    ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/editShoppingList.bsh
    ofbiz/trunk/applications/product/script/org/ofbiz/product/catalog/CatalogServices.xml
    ofbiz/trunk/applications/product/script/org/ofbiz/product/product/ProductServices.xml
    ofbiz/trunk/applications/product/src/org/ofbiz/product/feature/ProductFeatureServices.java
    ofbiz/trunk/applications/product/src/org/ofbiz/product/product/KeywordIndex.java
    ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductEvents.java
    ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java
    ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductUtilServices.java
    ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductWorker.java
    ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/actions/product/EditProductAssoc.bsh

Modified: ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/agreement/AgreementServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/agreement/AgreementServices.java?rev=606532&r1=606531&r2=606532&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/agreement/AgreementServices.java (original)
+++ ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/agreement/AgreementServices.java Sat Dec 22 20:06:56 2007
@@ -102,6 +102,7 @@
                 List productAssocs = delegator.findByAndCache("ProductAssoc", UtilMisc.toMap(
                         "productIdTo", productId,
                         "productAssocTypeId", "PRODUCT_VARIANT"));
+                productAssocs = EntityUtil.filterByDate(productAssocs);
                 if (productAssocs.size() > 0) {
                     GenericEntity productAssoc = EntityUtil.getFirst(productAssocs);
                     agreementItems = delegator.findByAndCache("AgreementItemAndProductAppl", UtilMisc.toMap(

Modified: ofbiz/trunk/applications/ecommerce/webapp/ecommerce/WEB-INF/actions/shoppinglist/editShoppingList.bsh
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/WEB-INF/actions/shoppinglist/editShoppingList.bsh?rev=606532&r1=606531&r2=606532&view=diff
==============================================================================
--- ofbiz/trunk/applications/ecommerce/webapp/ecommerce/WEB-INF/actions/shoppinglist/editShoppingList.bsh (original)
+++ ofbiz/trunk/applications/ecommerce/webapp/ecommerce/WEB-INF/actions/shoppinglist/editShoppingList.bsh Sat Dec 22 20:06:56 2007
@@ -140,6 +140,7 @@
                 productVariantAssocs = null;
                 if ("Y".equals(product.getString("isVirtual"))) {
                     productVariantAssocs = product.getRelatedCache("MainProductAssoc", UtilMisc.toMap("productAssocTypeId", "PRODUCT_VARIANT"), UtilMisc.toList("sequenceNum"));
+                    productVariantAssocs = EntityUtil.filterByDate(productVariantAssocs);
                 }
                 shoppingListItemData.put("shoppingListItem", shoppingListItem);
                 shoppingListItemData.put("product", product);

Modified: ofbiz/trunk/applications/manufacturing/script/org/ofbiz/manufacturing/bom/BomSimpleMethods.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/manufacturing/script/org/ofbiz/manufacturing/bom/BomSimpleMethods.xml?rev=606532&r1=606531&r2=606532&view=diff
==============================================================================
--- ofbiz/trunk/applications/manufacturing/script/org/ofbiz/manufacturing/bom/BomSimpleMethods.xml (original)
+++ ofbiz/trunk/applications/manufacturing/script/org/ofbiz/manufacturing/bom/BomSimpleMethods.xml Sat Dec 22 20:06:56 2007
@@ -51,6 +51,7 @@
         <make-value value-name="lookupMap" entity-name="ProductAssoc"/>
         <set-pk-fields map-name="parameters" value-name="lookupMap"/>
         <find-by-and entity-name="ProductAssoc" map-name="lookupMap" list-name="assocs"/>
+        <filter-list-by-date list-name="assocs"/>
         <iterate entry-name="assoc" list-name="assocs">
             <set-service-fields service-name="createBOMAssoc" map-name="assoc" to-map-name="context"/>
             <set field="context.productId" from-field="parameters.copyToProductId"/>

Modified: ofbiz/trunk/applications/manufacturing/src/org/ofbiz/manufacturing/bom/BOMServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/manufacturing/src/org/ofbiz/manufacturing/bom/BOMServices.java?rev=606532&r1=606531&r2=606532&view=diff
==============================================================================
--- ofbiz/trunk/applications/manufacturing/src/org/ofbiz/manufacturing/bom/BOMServices.java (original)
+++ ofbiz/trunk/applications/manufacturing/src/org/ofbiz/manufacturing/bom/BOMServices.java Sat Dec 22 20:06:56 2007
@@ -35,6 +35,7 @@
 import org.ofbiz.entity.GenericDelegator;
 import org.ofbiz.entity.GenericEntityException;
 import org.ofbiz.entity.GenericValue;
+import org.ofbiz.entity.util.EntityUtil;
 import org.ofbiz.order.order.OrderReadHelper;
 import org.ofbiz.service.DispatchContext;
 import org.ofbiz.service.GenericServiceException;
@@ -140,26 +141,25 @@
             // If the product is a variant of a virtual, then the billOfMaterialLevel cannot be
             // lower than the billOfMaterialLevel of the virtual product.
             List virtualProducts = delegator.findByAnd("ProductAssoc", UtilMisc.toMap("productIdTo", productId, "productAssocTypeId", "PRODUCT_VARIANT"));
-            if (virtualProducts != null) {
-                int virtualMaxDepth = 0;
-                Iterator virtualProductsIt = virtualProducts.iterator();
-                while (virtualProductsIt.hasNext()) {
-                    int virtualDepth = 0;
-                    GenericValue oneVirtualProductAssoc = (GenericValue)virtualProductsIt.next();
-                    GenericValue virtualProduct = delegator.findByPrimaryKey("Product", UtilMisc.toMap("productId", oneVirtualProductAssoc.getString("productId")));
-                    if (virtualProduct.get("billOfMaterialLevel") != null) {
-                        virtualDepth = virtualProduct.getLong("billOfMaterialLevel").intValue();
-                    } else {
-                        virtualDepth = 0;
-                    }
-                    if (virtualDepth > virtualMaxDepth) {
-                        virtualMaxDepth = virtualDepth;
-                    }
+            virtualProducts = EntityUtil.filterByDate(virtualProducts);
+            int virtualMaxDepth = 0;
+            Iterator virtualProductsIt = virtualProducts.iterator();
+            while (virtualProductsIt.hasNext()) {
+                int virtualDepth = 0;
+                GenericValue oneVirtualProductAssoc = (GenericValue)virtualProductsIt.next();
+                GenericValue virtualProduct = delegator.findByPrimaryKey("Product", UtilMisc.toMap("productId", oneVirtualProductAssoc.getString("productId")));
+                if (virtualProduct.get("billOfMaterialLevel") != null) {
+                    virtualDepth = virtualProduct.getLong("billOfMaterialLevel").intValue();
+                } else {
+                    virtualDepth = 0;
                 }
-                if (virtualMaxDepth > llc.intValue()) {
-                    llc = new Long(virtualMaxDepth);
+                if (virtualDepth > virtualMaxDepth) {
+                    virtualMaxDepth = virtualDepth;
                 }
             }
+            if (virtualMaxDepth > llc.intValue()) {
+                llc = new Long(virtualMaxDepth);
+            }
             product.set("billOfMaterialLevel", llc);
             product.store();
             if (alsoComponents.booleanValue()) {
@@ -182,14 +182,13 @@
             }
             if (alsoVariants.booleanValue()) {
                 List variantProducts = delegator.findByAnd("ProductAssoc", UtilMisc.toMap("productId", productId, "productAssocTypeId", "PRODUCT_VARIANT"));
-                if (variantProducts != null) {
-                    Iterator variantProductsIt = variantProducts.iterator();
-                    while (variantProductsIt.hasNext()) {
-                        GenericValue oneVariantProductAssoc = (GenericValue)variantProductsIt.next();
-                        GenericValue variantProduct = delegator.findByPrimaryKey("Product", UtilMisc.toMap("productId", oneVariantProductAssoc.getString("productId")));
-                        variantProduct.set("billOfMaterialLevel", llc);
-                        variantProduct.store();
-                    }
+                variantProducts = EntityUtil.filterByDate(variantProducts, true);
+                Iterator variantProductsIt = variantProducts.iterator();
+                while (variantProductsIt.hasNext()) {
+                    GenericValue oneVariantProductAssoc = (GenericValue)variantProductsIt.next();
+                    GenericValue variantProduct = delegator.findByPrimaryKey("Product", UtilMisc.toMap("productId", oneVariantProductAssoc.getString("productId")));
+                    variantProduct.set("billOfMaterialLevel", llc);
+                    variantProduct.store();
                 }
             }
         } catch (Exception e) {

Modified: ofbiz/trunk/applications/manufacturing/src/org/ofbiz/manufacturing/bom/BOMTree.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/manufacturing/src/org/ofbiz/manufacturing/bom/BOMTree.java?rev=606532&r1=606531&r2=606532&view=diff
==============================================================================
--- ofbiz/trunk/applications/manufacturing/src/org/ofbiz/manufacturing/bom/BOMTree.java (original)
+++ ofbiz/trunk/applications/manufacturing/src/org/ofbiz/manufacturing/bom/BOMTree.java Sat Dec 22 20:06:56 2007
@@ -129,18 +129,16 @@
         // product is variant).
         if (!hasBom(product, inDate)) {
             List virtualProducts = product.getRelatedByAnd("AssocProductAssoc", UtilMisc.toMap("productAssocTypeId", "PRODUCT_VARIANT"));
-            if (virtualProducts != null && virtualProducts.size() > 0) {
-                virtualProducts = EntityUtil.filterByDate(virtualProducts, inDate);
-                if (virtualProducts != null && virtualProducts.size() > 0) {
-                    GenericValue virtualProduct = (GenericValue)virtualProducts.get(0);
-                    // If the virtual product is manufactured as a different product,
-                    // load the new product
-                    productIdForRules = virtualProduct.getString("productId");
-                    manufacturedAsProduct = manufacturedAsProduct(virtualProduct.getString("productId"), inDate);
-                    product = delegator.findByPrimaryKey("Product",
-                                                UtilMisc.toMap("productId",
-                                                (manufacturedAsProduct != null? manufacturedAsProduct.getString("productIdTo"): virtualProduct.get("productId"))));
-                }
+            virtualProducts = EntityUtil.filterByDate(virtualProducts, inDate);
+            GenericValue virtualProduct = EntityUtil.getFirst(virtualProducts);
+            if (virtualProduct != null) {
+                // If the virtual product is manufactured as a different product,
+                // load the new product
+                productIdForRules = virtualProduct.getString("productId");
+                manufacturedAsProduct = manufacturedAsProduct(virtualProduct.getString("productId"), inDate);
+                product = delegator.findByPrimaryKey("Product",
+                        UtilMisc.toMap("productId",
+                                (manufacturedAsProduct != null? manufacturedAsProduct.getString("productIdTo"): virtualProduct.get("productId"))));
             }
         }
         if (product == null) return;
@@ -173,8 +171,8 @@
                                          "productAssocTypeId", "PRODUCT_MANUFACTURED"));
         manufacturedAsProducts = EntityUtil.filterByDate(manufacturedAsProducts, inDate);
         GenericValue manufacturedAsProduct = null;
-        if (manufacturedAsProducts != null && manufacturedAsProducts.size() > 0) {
-            manufacturedAsProduct = (GenericValue)manufacturedAsProducts.get(0);
+        if (UtilValidate.isNotEmpty(manufacturedAsProducts)) {
+            manufacturedAsProduct = EntityUtil.getFirst(manufacturedAsProducts);
         }
         return manufacturedAsProduct;
     }
@@ -182,7 +180,7 @@
     private boolean hasBom(GenericValue product, Date inDate) throws GenericEntityException {
         List children = product.getRelatedByAnd("MainProductAssoc", UtilMisc.toMap("productAssocTypeId", bomTypeId));
         children = EntityUtil.filterByDate(children, inDate);
-        return (children != null && children.size() > 0);
+        return UtilValidate.isNotEmpty(children);
     }
 
     /** It tells if the current (in-memory) tree representing

Modified: ofbiz/trunk/applications/manufacturing/webapp/manufacturing/WEB-INF/actions/bom/EditProductBom.bsh
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/manufacturing/webapp/manufacturing/WEB-INF/actions/bom/EditProductBom.bsh?rev=606532&r1=606531&r2=606532&view=diff
==============================================================================
--- ofbiz/trunk/applications/manufacturing/webapp/manufacturing/WEB-INF/actions/bom/EditProductBom.bsh (original)
+++ ofbiz/trunk/applications/manufacturing/webapp/manufacturing/WEB-INF/actions/bom/EditProductBom.bsh Sat Dec 22 20:06:56 2007
@@ -50,7 +50,7 @@
 String fromDateStr = request.getParameter("fromDate");
 
 Timestamp fromDate = null;
-if (fromDateStr != null && fromDateStr.length() > 0) fromDate = Timestamp.valueOf(fromDateStr);
+if (UtilValidate.isNotEmpty(fromDateStr)) fromDate = Timestamp.valueOf(fromDateStr);
 if (fromDate == null) fromDate = (Timestamp)request.getAttribute("ProductAssocCreateFromDate");
 if (fromDate != null) context.put("fromDate", fromDate);
 

Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReadHelper.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReadHelper.java?rev=606532&r1=606531&r2=606532&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReadHelper.java (original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReadHelper.java Sat Dec 22 20:06:56 2007
@@ -1181,9 +1181,7 @@
                     GenericValue virtual = null;
                     try {
                         List virtuals = delegator.findByAnd("ProductAssoc", UtilMisc.toMap("productIdTo", product.getString("productId"), "productAssocTypeId", "PRODUCT_VARIANT"), UtilMisc.toList("-fromDate"));
-                        if (virtuals != null) {
-                            virtuals = EntityUtil.filterByDate(virtuals);
-                        }
+                        virtuals = EntityUtil.filterByDate(virtuals);
                         virtual = EntityUtil.getFirst(virtuals);
                     } catch (GenericEntityException e) {
                         Debug.logError(e, "Problem getting virtual product");

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=606532&r1=606531&r2=606532&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 Sat Dec 22 20:06:56 2007
@@ -414,29 +414,28 @@
                         new EntityExpr(new EntityExpr("productId", EntityOperator.EQUALS, productId), EntityOperator.OR, new EntityExpr("productIdTo", EntityOperator.EQUALS, productId)),
                         new EntityExpr("productAssocTypeId", EntityOperator.EQUALS, "PRODUCT_INCOMPATABLE")), EntityOperator.AND);
                 productAssocs = delegator.findByCondition("ProductAssoc", cond, null, null);
+                productAssocs = EntityUtil.filterByDate(productAssocs);
                 List productList = FastList.newInstance();
-                if (productAssocs != null) {
-                    Iterator iter = productAssocs.iterator();
-                    while (iter.hasNext()) {
-                        GenericValue productAssoc = (GenericValue) iter.next();
-                        if (productId.equals(productAssoc.getString("productId"))) {
-                            productList.add(productAssoc.getString("productIdTo"));
-                            continue;
-                        }
-                        if (productId.equals(productAssoc.getString("productIdTo"))) {
-                            productList.add(productAssoc.getString("productId"));
-                            continue;
-                        }
-                    }    
-                    Iterator sciIter = cart.iterator();
-                    while (sciIter.hasNext()) {
-                        ShoppingCartItem sci = (ShoppingCartItem) sciIter.next();
-                        if (productList.contains(sci.getProductId())) {
-                            try {
-                                cart.removeCartItem(sci, dispatcher);
-                            } catch (CartItemModifyException e) {
-                                Debug.logError(e.getMessage(), module);
-                            }
+                Iterator iter = productAssocs.iterator();
+                while (iter.hasNext()) {
+                    GenericValue productAssoc = (GenericValue) iter.next();
+                    if (productId.equals(productAssoc.getString("productId"))) {
+                        productList.add(productAssoc.getString("productIdTo"));
+                        continue;
+                    }
+                    if (productId.equals(productAssoc.getString("productIdTo"))) {
+                        productList.add(productAssoc.getString("productId"));
+                        continue;
+                    }
+                }    
+                Iterator sciIter = cart.iterator();
+                while (sciIter.hasNext()) {
+                    ShoppingCartItem sci = (ShoppingCartItem) sciIter.next();
+                    if (productList.contains(sci.getProductId())) {
+                        try {
+                            cart.removeCartItem(sci, dispatcher);
+                        } catch (CartItemModifyException e) {
+                            Debug.logError(e.getMessage(), module);
                         }
                     }
                 }

Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductDisplayWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductDisplayWorker.java?rev=606532&r1=606531&r2=606532&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductDisplayWorker.java (original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductDisplayWorker.java Sat Dec 22 20:06:56 2007
@@ -70,7 +70,7 @@
                 // Collection upgradeProducts = delegator.findByAndCache("ProductAssoc", UtilMisc.toMap("productId", item.getProductId(), "productAssocTypeId", "PRODUCT_UPGRADE"), null);
                 List complementProducts = delegator.findByAndCache("ProductAssoc", UtilMisc.toMap("productId", item.getProductId(), "productAssocTypeId", "PRODUCT_COMPLEMENT"), null);
                 // since ProductAssoc records have a fromDate and thruDate, we can filter by now so that only assocs in the date range are included
-                complementProducts = EntityUtil.filterByDate(complementProducts, true);
+                complementProducts = EntityUtil.filterByDate(complementProducts);
                 
                 List productsCategories = delegator.findByAndCache("ProductCategoryMember", UtilMisc.toMap("productId", item.getProductId()), null);
                 productsCategories = EntityUtil.filterByDate(productsCategories, true);

Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java?rev=606532&r1=606531&r2=606532&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java (original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java Sat Dec 22 20:06:56 2007
@@ -1104,7 +1104,7 @@
                     }
                     if ("Y".equals(product.getString("isVirtual"))) {
                         List productAssocs = EntityUtil.filterByDate(product.getRelatedCache("MainProductAssoc",
-                                UtilMisc.toMap("productAssocTypeId", "PRODUCT_VARIANT"), UtilMisc.toList("sequenceNum")), true);
+                                UtilMisc.toMap("productAssocTypeId", "PRODUCT_VARIANT"), UtilMisc.toList("sequenceNum")));
                         Iterator productAssocIter = productAssocs.iterator();
                         while (productAssocIter.hasNext()) {
                             GenericValue productAssoc = (GenericValue) productAssocIter.next();

Modified: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/shipGroups.bsh
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/shipGroups.bsh?rev=606532&r1=606531&r2=606532&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/shipGroups.bsh (original)
+++ ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/shipGroups.bsh Sat Dec 22 20:06:56 2007
@@ -39,7 +39,7 @@
 FastList expandProductGroup(product, quantityInGroup, quantityShipped, quantityOpen, assocType) {
     sublines = FastList.newInstance();
     associations = product.getRelatedByAnd("MainProductAssoc", UtilMisc.toMap("productAssocTypeId", assocType));
-    associations = EntityUtil.filterByDate( associations );
+    associations = EntityUtil.filterByDate(associations);
     for (iter = associations.iterator(); iter.hasNext(); ) {
         association = iter.next();
         line = FastMap.newInstance();

Modified: ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/editShoppingList.bsh
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/editShoppingList.bsh?rev=606532&r1=606531&r2=606532&view=diff
==============================================================================
--- ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/editShoppingList.bsh (original)
+++ ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/editShoppingList.bsh Sat Dec 22 20:06:56 2007
@@ -99,6 +99,7 @@
                 productVariantAssocs = null;
                 if ("Y".equals(product.getString("isVirtual"))) {
                     productVariantAssocs = product.getRelatedCache("MainProductAssoc", UtilMisc.toMap("productAssocTypeId", "PRODUCT_VARIANT"), UtilMisc.toList("sequenceNum"));
+                    productVariantAssocs = EntityUtil.filterByDate(productVariantAssocs);
                 }
 
                 shoppingListItemData.put("shoppingListItem", shoppingListItem);

Modified: ofbiz/trunk/applications/product/script/org/ofbiz/product/catalog/CatalogServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/script/org/ofbiz/product/catalog/CatalogServices.xml?rev=606532&r1=606531&r2=606532&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/script/org/ofbiz/product/catalog/CatalogServices.xml (original)
+++ ofbiz/trunk/applications/product/script/org/ofbiz/product/catalog/CatalogServices.xml Sat Dec 22 20:06:56 2007
@@ -311,58 +311,58 @@
                 <!--  get related assoc product -->
                 <get-related-one relation-name="Product" value-name="productCategoryMember" to-value-name="product"/>
                 <if-compare operator="equals" field-name="isVirtual" value="Y" map-name="product">                
-                <!-- log level="info" message = "Virtual product =====${productCategoryMember.productId}"/ -->
-                <set field="virtualProductContext.productId" from-field="product.productId"/>
-                <set field="virtualProductContext.productAssocTypeId" value="PRODUCT_VARIANT"/>                
-                <find-by-and entity-name="ProductAssoc" map-name="virtualProductContext" list-name="variantProducts"/>  
-                
-                <if-not-empty field-name="variantProducts">
-                   <iterate entry-name="variantProduct" list-name="variantProducts">
-                       <!-- log level="info" message = "Variant product =====${variantProduct.productIdTo}"/ -->
-                       <set field="variantProductContext.productId" from-field="variantProduct.productIdTo"/>
-                       <call-service service-name="checkImageUrlForProduct" in-map-name="variantProductContext">
-                           <result-to-field result-name="filesImageMap" field-name="filesImageMap"/>
-                       </call-service>
-                       <if-not-empty field-name="filesImageMap">
-                           <if-not-empty field-name="smallImageUrl" map-name="filesImageMap.smallImageUrlMap">
-                               <if-compare value="Y" field-name="filesImageMap.smallImageUrlMap.isExists" operator="equals">
-                                   <field-to-list list-name="fileExists" field-name="smallImageUrl" map-name="filesImageMap.smallImageUrlMap"/>
-                               <else>
-                                   <field-to-list list-name="fileNotExists" field-name="smallImageUrl" map-name="filesImageMap.smallImageUrlMap"/>
-                               </else>    
-                               </if-compare>
-                           </if-not-empty>
+                    <!-- log level="info" message = "Virtual product =====${productCategoryMember.productId}"/ -->
+                    <set field="virtualProductContext.productId" from-field="product.productId"/>
+                    <set field="virtualProductContext.productAssocTypeId" value="PRODUCT_VARIANT"/>                
+                    <find-by-and entity-name="ProductAssoc" map-name="virtualProductContext" list-name="variantProducts"/>  
+                    <filter-list-by-date list-name="variantProducts"/>
+                    <if-not-empty field-name="variantProducts">
+                        <iterate entry-name="variantProduct" list-name="variantProducts">
+                            <!-- log level="info" message = "Variant product =====${variantProduct.productIdTo}"/ -->
+                            <set field="variantProductContext.productId" from-field="variantProduct.productIdTo"/>
+                            <call-service service-name="checkImageUrlForProduct" in-map-name="variantProductContext">
+                                <result-to-field result-name="filesImageMap" field-name="filesImageMap"/>
+                            </call-service>
+                            <if-not-empty field-name="filesImageMap">
+                                <if-not-empty field-name="smallImageUrl" map-name="filesImageMap.smallImageUrlMap">
+                                    <if-compare value="Y" field-name="filesImageMap.smallImageUrlMap.isExists" operator="equals">
+                                        <field-to-list list-name="fileExists" field-name="smallImageUrl" map-name="filesImageMap.smallImageUrlMap"/>
+                                    <else>
+                                            <field-to-list list-name="fileNotExists" field-name="smallImageUrl" map-name="filesImageMap.smallImageUrlMap"/>
+                                    </else>    
+                                    </if-compare>
+                                </if-not-empty>
                       
-                           <if-not-empty field-name="mediumImageUrl" map-name="filesImageMap.mediumImageUrlMap">
-                               <if-compare value="Y" field-name="filesImageMap.mediumImageUrlMap.isExists" operator="equals">
-                                   <field-to-list list-name="fileExists" field-name="mediumImageUrl" map-name="filesImageMap.mediumImageUrlMap"/>
-                               <else>
-                                   <field-to-list list-name="fileNotExists" field-name="mediumImageUrl" map-name="filesImageMap.mediumImageUrlMap"/>
-                               </else>    
-                               </if-compare>
-                           </if-not-empty>
+                                <if-not-empty field-name="mediumImageUrl" map-name="filesImageMap.mediumImageUrlMap">
+                                    <if-compare value="Y" field-name="filesImageMap.mediumImageUrlMap.isExists" operator="equals">
+                                        <field-to-list list-name="fileExists" field-name="mediumImageUrl" map-name="filesImageMap.mediumImageUrlMap"/>
+                                    <else>
+                                        <field-to-list list-name="fileNotExists" field-name="mediumImageUrl" map-name="filesImageMap.mediumImageUrlMap"/>
+                                    </else>    
+                                    </if-compare>
+                                </if-not-empty>
                       
-                           <if-not-empty field-name="largeImageUrl" map-name="filesImageMap.largeImageUrlMap">
-                               <if-compare value="Y" field-name="filesImageMap.largeImageUrlMap.isExists" operator="equals">
-                                   <field-to-list list-name="fileExists" field-name="largeImageUrl" map-name="filesImageMap.largeImageUrlMap"/>
-                               <else>
-                                   <field-to-list list-name="fileNotExists" field-name="largeImageUrl" map-name="filesImageMap.largeImageUrlMap"/>
-                               </else>    
-                               </if-compare>
-                           </if-not-empty>                                        
+                                <if-not-empty field-name="largeImageUrl" map-name="filesImageMap.largeImageUrlMap">
+                                    <if-compare value="Y" field-name="filesImageMap.largeImageUrlMap.isExists" operator="equals">
+                                        <field-to-list list-name="fileExists" field-name="largeImageUrl" map-name="filesImageMap.largeImageUrlMap"/>
+                                    <else>
+                                        <field-to-list list-name="fileNotExists" field-name="largeImageUrl" map-name="filesImageMap.largeImageUrlMap"/>
+                                    </else>    
+                                    </if-compare>
+                                </if-not-empty>                                        
                       
-                           <if-not-empty field-name="detailImageUrl" map-name="filesImageMap.detailImageUrlMap">
-                               <if-compare value="Y" field-name="filesImageMap.detailImageUrl.isExists" operator="equals">
-                                  <field-to-list list-name="fileExists" field-name="detailImageUrl" map-name="filesImageMap.detailImageUrl"/>
-                               <else>
-                                  <field-to-list list-name="fileNotExists" field-name="detailImageUrl" map-name="filesImageMap.detailImageUrl"/>
-                               </else>    
-                               </if-compare>
-                           </if-not-empty>                    
+                                <if-not-empty field-name="detailImageUrl" map-name="filesImageMap.detailImageUrlMap">
+                                    <if-compare value="Y" field-name="filesImageMap.detailImageUrl.isExists" operator="equals">
+                                        <field-to-list list-name="fileExists" field-name="detailImageUrl" map-name="filesImageMap.detailImageUrl"/>
+                                    <else>
+                                        <field-to-list list-name="fileNotExists" field-name="detailImageUrl" map-name="filesImageMap.detailImageUrl"/>
+                                    </else>    
+                                    </if-compare>
+                                </if-not-empty>                    
                       
-                       </if-not-empty>
-                   </iterate>
-                </if-not-empty>
+                            </if-not-empty>
+                        </iterate>
+                    </if-not-empty>
                 </if-compare>
             </iterate>
             <field-to-result field-name="fileExists" result-name="fileExists"/>

Modified: ofbiz/trunk/applications/product/script/org/ofbiz/product/product/ProductServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/script/org/ofbiz/product/product/ProductServices.xml?rev=606532&r1=606531&r2=606532&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/script/org/ofbiz/product/product/ProductServices.xml (original)
+++ ofbiz/trunk/applications/product/script/org/ofbiz/product/product/ProductServices.xml Sat Dec 22 20:06:56 2007
@@ -142,6 +142,7 @@
 
             <!-- get all productAssocs, then get the actual product to update -->
             <find-by-and entity-name="ProductAssoc" map-name="variantProductAssocMap" list-name="variantProductAssocs"/>
+            <filter-list-by-date list-name="variantProductAssocs"/>
             <iterate entry-name="variantProductAssoc" list-name="variantProductAssocs">
                 <clear-field field-name="variantProduct"/>
                 <entity-one entity-name="Product" value-name="variantProduct" auto-field-map="false">
@@ -593,6 +594,7 @@
         <set from-field="parameters.virtualProductId" field="variantsFindContext.productId"/>
         <set value="PRODUCT_VARIANT" field="variantsFindContext.productAssocTypeId"/>
         <find-by-and entity-name="ProductAssoc" map-name="variantsFindContext" list-name="variants"/>
+        <filter-list-by-date list-name="variants"/>
         <iterate entry-name="newProduct" list-name="variants">
             <set from-field="newProduct.productIdTo" field="productVariantContext.productId"/>
             <!-- if requested, duplicate related data -->

Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/feature/ProductFeatureServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/feature/ProductFeatureServices.java?rev=606532&r1=606531&r2=606532&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/feature/ProductFeatureServices.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/feature/ProductFeatureServices.java Sat Dec 22 20:06:56 2007
@@ -28,6 +28,7 @@
 
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.UtilMisc;
+import org.ofbiz.base.util.UtilValidate;
 import org.ofbiz.entity.GenericDelegator;
 import org.ofbiz.entity.GenericEntity;
 import org.ofbiz.entity.GenericEntityException;
@@ -137,37 +138,35 @@
              * see if it has every single feature in the list of productFeatureAppls as a STANDARD_FEATURE.  If so, then
              * it qualifies and add it to the list of existingVariantProductIds.
              */
-            List productAssocs = EntityUtil.filterByDate(delegator.findByAnd("ProductAssoc", UtilMisc.toMap("productId", productId, "productAssocTypeId", "PRODUCT_VARIANT")), true);
-            if (productAssocs != null && productAssocs.size() > 0) {
-                Iterator productAssocIter = productAssocs.iterator();
-                while (productAssocIter.hasNext()) {
-                    GenericEntity productAssoc = (GenericEntity) productAssocIter.next();
-                    
-                    //for each associated product, if it has all standard features, display it's productId
-                    boolean hasAllFeatures = true;
-                    Iterator curProductFeatureAndApplIter = curProductFeatureAndAppls.iterator();
-                    while (curProductFeatureAndApplIter.hasNext()) {
-                        String productFeatureAndAppl = (String) curProductFeatureAndApplIter.next();
-                        Map findByMap = UtilMisc.toMap("productId", productAssoc.getString("productIdTo"),
-                                "productFeatureId", productFeatureAndAppl,
-                                "productFeatureApplTypeId", "STANDARD_FEATURE");
-
-                        //Debug.log("Using findByMap: " + findByMap);
-
-                        List standardProductFeatureAndAppls = EntityUtil.filterByDate(delegator.findByAnd("ProductFeatureAppl", findByMap), true);
-                        if (standardProductFeatureAndAppls == null || standardProductFeatureAndAppls.size() == 0) {
-                            // Debug.log("Does NOT have this standard feature");
-                            hasAllFeatures = false;
-                            break;
-                        } else {
-                            // Debug.log("DOES have this standard feature");
-                        }
+            List productAssocs = EntityUtil.filterByDate(delegator.findByAnd("ProductAssoc", UtilMisc.toMap("productId", productId, "productAssocTypeId", "PRODUCT_VARIANT")));
+            Iterator productAssocIter = productAssocs.iterator();
+            while (productAssocIter.hasNext()) {
+                GenericEntity productAssoc = (GenericEntity) productAssocIter.next();
+
+                //for each associated product, if it has all standard features, display it's productId
+                boolean hasAllFeatures = true;
+                Iterator curProductFeatureAndApplIter = curProductFeatureAndAppls.iterator();
+                while (curProductFeatureAndApplIter.hasNext()) {
+                    String productFeatureAndAppl = (String) curProductFeatureAndApplIter.next();
+                    Map findByMap = UtilMisc.toMap("productId", productAssoc.getString("productIdTo"),
+                            "productFeatureId", productFeatureAndAppl,
+                            "productFeatureApplTypeId", "STANDARD_FEATURE");
+
+                    //Debug.log("Using findByMap: " + findByMap);
+
+                    List standardProductFeatureAndAppls = EntityUtil.filterByDate(delegator.findByAnd("ProductFeatureAppl", findByMap));
+                    if (UtilValidate.isEmpty(standardProductFeatureAndAppls)) {
+                        // Debug.log("Does NOT have this standard feature");
+                        hasAllFeatures = false;
+                        break;
+                    } else {
+                        // Debug.log("DOES have this standard feature");
                     }
+                }
 
-                    if (hasAllFeatures) {
-                        // add to list of existing variants: productId=productAssoc.productIdTo
-                        existingVariantProductIds.add(productAssoc.get("productIdTo"));
-                    }
+                if (hasAllFeatures) {
+                    // add to list of existing variants: productId=productAssoc.productIdTo
+                    existingVariantProductIds.add(productAssoc.get("productIdTo"));
                 }
             }
             results = ServiceUtil.returnSuccess();

Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/product/KeywordIndex.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/product/KeywordIndex.java?rev=606532&r1=606531&r2=606532&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/product/KeywordIndex.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/product/KeywordIndex.java Sat Dec 22 20:06:56 2007
@@ -150,9 +150,11 @@
         // Variant Product IDs
         if ("Y".equals(product.getString("isVirtual"))) {
             if (!"0".equals(UtilProperties.getPropertyValue("prodsearch", "index.weight.Variant.Product.productId", "0"))) {
-                Iterator variantProductAssocs = UtilMisc.toIterator(delegator.findByAnd("ProductAssoc", UtilMisc.toMap("productId", productId, "productAssocTypeId", "PRODUCT_VARIANT")));
-                while (variantProductAssocs != null && variantProductAssocs.hasNext()) {
-                    GenericValue variantProductAssoc = (GenericValue) variantProductAssocs.next();
+                List variantProductAssocs = delegator.findByAnd("ProductAssoc", UtilMisc.toMap("productId", productId, "productAssocTypeId", "PRODUCT_VARIANT"));
+                variantProductAssocs = EntityUtil.filterByDate(variantProductAssocs);
+                Iterator variantProductAssocsIt = variantProductAssocs.iterator();
+                while (variantProductAssocsIt.hasNext()) {
+                    GenericValue variantProductAssoc = (GenericValue) variantProductAssocsIt.next();
                     int weight = 1;
                     try {
                         weight = Integer.parseInt(UtilProperties.getPropertyValue("prodsearch", "index.weight.Variant.Product.productId", "0"));

Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductEvents.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductEvents.java?rev=606532&r1=606531&r2=606532&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductEvents.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductEvents.java Sat Dec 22 20:06:56 2007
@@ -685,6 +685,7 @@
                             boolean foundFeatureOnVariant = false;
                             // get/check all the variants
                             List variantAssocs = product.getRelatedByAnd("MainProductAssoc", UtilMisc.toMap("productAssocTypeId", "PRODUCT_VARIANT"));
+                            variantAssocs = EntityUtil.filterByDate(variantAssocs);
                             List variants = EntityUtil.getRelated("AssocProduct", variantAssocs);
                             Iterator variantIter = variants.iterator();
                             while (!foundFeatureOnVariant && variantIter.hasNext()) {
@@ -771,6 +772,7 @@
             GenericValue product = delegator.findByPrimaryKey("Product", UtilMisc.toMap("productId", productId));
             // get all the variants
             List variantAssocs = product.getRelatedByAnd("MainProductAssoc", UtilMisc.toMap("productAssocTypeId", "PRODUCT_VARIANT"));
+            variantAssocs = EntityUtil.filterByDate(variantAssocs);
             List variants = EntityUtil.getRelated("AssocProduct", variantAssocs);
             Iterator variantIter = variants.iterator();
             while (variantIter.hasNext()) {

Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java?rev=606532&r1=606531&r2=606532&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java Sat Dec 22 20:06:56 2007
@@ -381,18 +381,15 @@
             if (product.get("isVariant") != null && product.getString("isVariant").equalsIgnoreCase("Y")) {
                 List c = product.getRelatedByAndCache("AssocProductAssoc",
                         UtilMisc.toMap("productAssocTypeId", "PRODUCT_VARIANT"));
-
-                if (c != null) {
-                    //if (Debug.infoOn()) Debug.logInfo("Found related: " + c, module);
-                    c = EntityUtil.filterByDate(c, true);
-                    //if (Debug.infoOn()) Debug.logInfo("Found Filtered related: " + c, module);
-                    if (c.size() > 0) {
-                        GenericValue asV = (GenericValue) c.iterator().next();
-
-                        //if (Debug.infoOn()) Debug.logInfo("ASV: " + asV, module);
-                        mainProduct = asV.getRelatedOneCache("MainProduct");
-                        //if (Debug.infoOn()) Debug.logInfo("Main product = " + mainProduct, module);
-                    }
+                //if (Debug.infoOn()) Debug.logInfo("Found related: " + c, module);
+                c = EntityUtil.filterByDate(c);
+                //if (Debug.infoOn()) Debug.logInfo("Found Filtered related: " + c, module);
+                if (c.size() > 0) {
+                    GenericValue asV = (GenericValue) c.iterator().next();
+
+                    //if (Debug.infoOn()) Debug.logInfo("ASV: " + asV, module);
+                    mainProduct = asV.getRelatedOneCache("MainProduct");
+                    //if (Debug.infoOn()) Debug.logInfo("Main product = " + mainProduct, module);
                 }
             }
             result.put("product", mainProduct);
@@ -469,7 +466,7 @@
                 productAssocs = product.getRelatedCache("AssocProductAssoc", UtilMisc.toMap("productAssocTypeId", type), UtilMisc.toList("sequenceNum"));
             }
             // filter the list by date
-            productAssocs = EntityUtil.filterByDate(productAssocs, true);
+            productAssocs = EntityUtil.filterByDate(productAssocs);
             // first check to see if there is a view allow category and if these producta are in it...
             if (checkViewAllow && prodCatalogId != null && productAssocs != null && productAssocs.size() > 0) {
                 String viewProductCategoryId = CatalogWorker.getCatalogViewAllowCategoryId(delegator, prodCatalogId);

Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductUtilServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductUtilServices.java?rev=606532&r1=606531&r2=606532&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductUtilServices.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductUtilServices.java Sat Dec 22 20:06:56 2007
@@ -60,7 +60,7 @@
     public static final String module = ProductUtilServices.class.getName();
     public static final String resource = "ProductUiLabels";
 
-    /** First expirt all ProductAssocs for all disc variants, then disc all virtuals that have all expired variant ProductAssocs */
+    /** First expire all ProductAssocs for all disc variants, then disc all virtuals that have all expired variant ProductAssocs */
     public static Map discVirtualsWithDiscVariants(DispatchContext dctx, Map context) {
         GenericDelegator delegator = dctx.getDelegator();
         Timestamp nowTimestamp = UtilDateTime.nowTimestamp();
@@ -83,7 +83,7 @@
                     continue;
                 }
                 List passocList = delegator.findByAnd("ProductAssoc", UtilMisc.toMap("productId", virtualProductId, "productIdTo", productOne.get("productId"), "productAssocTypeId", "PRODUCT_VARIANT"));
-                passocList = EntityUtil.filterByDate(passocList, nowTimestamp);
+                passocList = EntityUtil.filterByDate(passocList);
                 if (passocList.size() > 0) {
                     Iterator passocIter = passocList.iterator();
                     while (passocIter.hasNext()) {
@@ -110,7 +110,7 @@
             int numSoFar = 0;
             while ((product = (GenericValue) eli.next()) != null) {
                 List passocList = delegator.findByAnd("ProductAssoc", UtilMisc.toMap("productId", product.get("productId"), "productAssocTypeId", "PRODUCT_VARIANT"));
-                passocList = EntityUtil.filterByDate(passocList, nowTimestamp);
+                passocList = EntityUtil.filterByDate(passocList);
                 if (passocList.size() == 0) {
                     product.set("salesDiscontinuationDate", nowTimestamp);
 
@@ -269,6 +269,7 @@
 
                 String productId = value.getString("productId");
                 List paList = delegator.findByAnd("ProductAssoc", UtilMisc.toMap("productId", productId, "productAssocTypeId", "PRODUCT_VARIANT"));
+                paList = EntityUtil.filterByDate(paList);
                 // verify the query; tested on a bunch, looks good
                 if (paList.size() != 1) {
                     Debug.logInfo("Virtual product with ID " + productId + " should have 1 assoc, has " + paList.size(), module);
@@ -305,7 +306,7 @@
                 // has only one valid variant
                 String productId = value.getString("productId");
 
-                List paList = EntityUtil.filterByDate(delegator.findByAnd("ProductAssoc", UtilMisc.toMap("productId", productId, "productAssocTypeId", "PRODUCT_VARIANT")), nowTimestamp);
+                List paList = EntityUtil.filterByDate(delegator.findByAnd("ProductAssoc", UtilMisc.toMap("productId", productId, "productAssocTypeId", "PRODUCT_VARIANT")));
 
                 // verify the query; tested on a bunch, looks good
                 if (paList.size() != 1) {
@@ -357,7 +358,7 @@
             GenericValue product = delegator.findByPrimaryKey("Product", UtilMisc.toMap("productId", productId));
             Debug.logInfo("Processing virtual product with one variant with ID: " + productId + " and name: " + product.getString("internalName"), module);
 
-            List paList = EntityUtil.filterByDate(delegator.findByAnd("ProductAssoc", UtilMisc.toMap("productId", productId, "productAssocTypeId", "PRODUCT_VARIANT")), nowTimestamp);
+            List paList = EntityUtil.filterByDate(delegator.findByAnd("ProductAssoc", UtilMisc.toMap("productId", productId, "productAssocTypeId", "PRODUCT_VARIANT")));
             if (paList.size() > 1) {
                 Map messageMap = UtilMisc.toMap("productId", productId);
                 errMsg = UtilProperties.getMessage(resource,"productutilservices.found_more_than_one_valid_variant_for_virtual_ID", messageMap, locale);
@@ -523,7 +524,7 @@
 
                 if ("Y".equals(product.getString("isVirtual"))) {
                     // find the first variant, use it's ID for the names...
-                    List productAssocList = EntityUtil.filterByDate(delegator.findByAnd("ProductAssoc", UtilMisc.toMap("productId", productId, "productAssocTypeId", "PRODUCT_VARIANT")), nowTimestamp);
+                    List productAssocList = EntityUtil.filterByDate(delegator.findByAnd("ProductAssoc", UtilMisc.toMap("productId", productId, "productAssocTypeId", "PRODUCT_VARIANT")));
                     if (productAssocList.size() > 0) {
                         GenericValue productAssoc = EntityUtil.getFirst(productAssocList);
                         smallMap.put("productId", productAssoc.get("productIdTo"));

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=606532&r1=606531&r2=606532&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 Sat Dec 22 20:06:56 2007
@@ -189,7 +189,7 @@
     public static List getVariantVirtualAssocs(GenericValue variantProduct) throws GenericEntityException {
         if (variantProduct != null && "Y".equals(variantProduct.getString("isVariant"))) {
             List productAssocs = EntityUtil.filterByDate(variantProduct.getRelatedByAndCache("AssocProductAssoc",
-                    UtilMisc.toMap("productAssocTypeId", "PRODUCT_VARIANT")), true);
+                    UtilMisc.toMap("productAssocTypeId", "PRODUCT_VARIANT")));
             return productAssocs;
         }
         return null;
@@ -278,10 +278,10 @@
                     UtilMisc.toMap("productAssocTypeId", "PRODUCT_OBSOLESCENCE"));
 
             // since ProductAssoc records have a fromDate and thruDate, we can filter by now so that only assocs in the date range are included
-            upgradeProducts = EntityUtil.filterByDate(upgradeProducts, true);
-            complementProducts = EntityUtil.filterByDate(complementProducts, true);
-            obsolescenceProducts = EntityUtil.filterByDate(obsolescenceProducts, true);
-            obsoleteByProducts = EntityUtil.filterByDate(obsoleteByProducts, true);
+            upgradeProducts = EntityUtil.filterByDate(upgradeProducts);
+            complementProducts = EntityUtil.filterByDate(complementProducts);
+            obsolescenceProducts = EntityUtil.filterByDate(obsolescenceProducts);
+            obsoleteByProducts = EntityUtil.filterByDate(obsoleteByProducts);
 
             if (upgradeProducts != null && upgradeProducts.size() > 0)
                 pageContext.setAttribute(assocPrefix + "upgrade", upgradeProducts);
@@ -657,13 +657,13 @@
 
         try {
             List virtualProductAssocs = delegator.findByAndCache("ProductAssoc", UtilMisc.toMap("productIdTo", productId, "productAssocTypeId", "PRODUCT_VARIANT"), UtilMisc.toList("-fromDate"));
-            virtualProductAssocs = EntityUtil.filterByDate(virtualProductAssocs, true);
-            if (virtualProductAssocs == null || virtualProductAssocs.size() == 0) {
+            virtualProductAssocs = EntityUtil.filterByDate(virtualProductAssocs);
+            if (UtilValidate.isEmpty(virtualProductAssocs)) {
                 //okay, not a variant, try a UNIQUE_ITEM
                 virtualProductAssocs = delegator.findByAndCache("ProductAssoc", UtilMisc.toMap("productIdTo", productId, "productAssocTypeId", "UNIQUE_ITEM"), UtilMisc.toList("-fromDate"));
-                virtualProductAssocs = EntityUtil.filterByDate(virtualProductAssocs, true);
+                virtualProductAssocs = EntityUtil.filterByDate(virtualProductAssocs);
             }
-            if (virtualProductAssocs != null && virtualProductAssocs.size() > 0) {
+            if (UtilValidate.isNotEmpty(virtualProductAssocs)) {
                 //found one, set this first as the parent product
                 GenericValue productAssoc = EntityUtil.getFirst(virtualProductAssocs);
                 _parentProduct = productAssoc.getRelatedOneCache("MainProduct");
@@ -826,7 +826,7 @@
 
         // find associated refurb items, we want serial number for main item or any refurb items too
         List refubProductAssocs = EntityUtil.filterByDate(delegator.findByAnd("ProductAssoc",
-                UtilMisc.toMap("productId", productId, "productAssocTypeId", "PRODUCT_REFURB")), true);
+                UtilMisc.toMap("productId", productId, "productAssocTypeId", "PRODUCT_REFURB")));
         Iterator refubProductAssocIter = refubProductAssocs.iterator();
         while (refubProductAssocIter.hasNext()) {
             GenericValue refubProductAssoc = (GenericValue) refubProductAssocIter.next();
@@ -835,7 +835,7 @@
         
         // see if this is a refurb productId to, and find product(s) it is a refurb of
         List refubProductToAssocs = EntityUtil.filterByDate(delegator.findByAnd("ProductAssoc",
-                UtilMisc.toMap("productIdTo", productId, "productAssocTypeId", "PRODUCT_REFURB")), true);
+                UtilMisc.toMap("productIdTo", productId, "productAssocTypeId", "PRODUCT_REFURB")));
         Iterator refubProductToAssocIter = refubProductToAssocs.iterator();
         while (refubProductToAssocIter.hasNext()) {
             GenericValue refubProductToAssoc = (GenericValue) refubProductToAssocIter.next();

Modified: ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/actions/product/EditProductAssoc.bsh
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/actions/product/EditProductAssoc.bsh?rev=606532&r1=606531&r2=606532&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/actions/product/EditProductAssoc.bsh (original)
+++ ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/actions/product/EditProductAssoc.bsh Sat Dec 22 20:06:56 2007
@@ -46,7 +46,7 @@
 fromDateStr = request.getParameter("FROM_DATE");
 
 Timestamp fromDate = null;
-if (fromDateStr != null && fromDateStr.length() > 0) fromDate = Timestamp.valueOf(fromDateStr);
+if (UtilValidate.isNotEmpty(fromDateStr.length())) fromDate = Timestamp.valueOf(fromDateStr);
 if (fromDate == null) fromDate = (Timestamp)request.getAttribute("ProductAssocCreateFromDate");
 if (fromDate != null) context.put("fromDate", fromDate);