Author: sichen
Date: Fri Aug 31 10:11:45 2007 New Revision: 571525 URL: http://svn.apache.org/viewvc?rev=571525&view=rev Log: Fix bug where dependent production runs were being created for parts which had ProductFacility thresholds but of 0. Now if it is a WIP or has any ProductFacility records, it is warehouse managed. Thanks to Jacopo for showing me where this was Modified: ofbiz/trunk/applications/manufacturing/src/org/ofbiz/manufacturing/bom/BOMNode.java Modified: ofbiz/trunk/applications/manufacturing/src/org/ofbiz/manufacturing/bom/BOMNode.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/manufacturing/src/org/ofbiz/manufacturing/bom/BOMNode.java?rev=571525&r1=571524&r2=571525&view=diff ============================================================================== --- ofbiz/trunk/applications/manufacturing/src/org/ofbiz/manufacturing/bom/BOMNode.java (original) +++ ofbiz/trunk/applications/manufacturing/src/org/ofbiz/manufacturing/bom/BOMNode.java Fri Aug 31 10:11:45 2007 @@ -126,7 +126,8 @@ oneChildNode.loadChildren(partBomTypeId, inDate, productFeatures, BOMTree.EXPLOSION); break; case BOMTree.EXPLOSION_MANUFACTURING: - if (!oneChildNode.isWarehouseManaged()) { + // for manfacturing trees, do not look through and create production runs for children unless there is no warehouse stocking of this node item + if (!oneChildNode.isWarehouseManaged()) { oneChildNode.loadChildren(partBomTypeId, inDate, productFeatures, type); } break; @@ -601,6 +602,10 @@ return minStartDate; } + /** + * Returns false if the product of this BOM Node is of type "WIP" or if it has no ProductFacility records defined for it, + * meaning that no active stock targets are set for this product. + */ public boolean isWarehouseManaged() { boolean isWarehouseManaged = false; try { @@ -608,32 +613,18 @@ return false; } List pfs = getProduct().getRelatedCache("ProductFacility"); - Iterator pfsIt = pfs.iterator(); - GenericValue pf = null; - boolean found = false; - while(pfsIt.hasNext()) { - found = true; - pf = (GenericValue)pfsIt.next(); - if (pf.getDouble("minimumStock") != null && pf.getDouble("minimumStock").doubleValue() > 0) { - isWarehouseManaged = true; - } - } - // If no records are found, we try to search for substituted node's records - if (!found && getSubstitutedNode() != null) { + if (UtilValidate.isNotEmpty(pfs)) { + isWarehouseManaged = true; + } else { pfs = getSubstitutedNode().getProduct().getRelatedCache("ProductFacility"); - pfsIt = pfs.iterator(); - pf = null; - while(pfsIt.hasNext()) { - pf = (GenericValue)pfsIt.next(); - if (pf.getDouble("minimumStock") != null && pf.getDouble("minimumStock").doubleValue() > 0) { - isWarehouseManaged = true; - } + if (UtilValidate.isNotEmpty(pfs)) { + isWarehouseManaged = true; } } } catch(GenericEntityException gee) { Debug.logError("Problem in BOMNode.isWarehouseManaged()", module); } - return isWarehouseManaged; + return isWarehouseManaged; } public boolean isManufactured(boolean ignoreSupplierProducts) { |
Free forum by Nabble | Edit this page |