Author: sichen Date: Thu Sep 13 12:44:16 2007 New Revision: 575413 URL: http://svn.apache.org/viewvc?rev=575413&view=rev Log: Fix a bug where MRP was using daysToShip to create requirements for parts. Also provide some information about MRP requirements: show productId and start date
Modified: ofbiz/trunk/applications/manufacturing/src/org/ofbiz/manufacturing/mrp/MrpServices.java Modified: ofbiz/trunk/applications/manufacturing/src/org/ofbiz/manufacturing/mrp/MrpServices.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/manufacturing/src/org/ofbiz/manufacturing/mrp/MrpServices.java?rev=575413&r1=575412&r2=575413&view=diff ============================================================================== --- ofbiz/trunk/applications/manufacturing/src/org/ofbiz/manufacturing/mrp/MrpServices.java (original) +++ ofbiz/trunk/applications/manufacturing/src/org/ofbiz/manufacturing/mrp/MrpServices.java Thu Sep 13 12:44:16 2007 @@ -496,7 +496,7 @@ parameters.put("inventoryEventPlanTypeId", "MRP_REQUIREMENT"); double componentEventQuantity = node.getQuantity(); try { - InventoryEventPlannedServices.createOrUpdateInventoryEventPlanned(parameters, new Double(-1.0 * componentEventQuantity), null, null, false, delegator); + InventoryEventPlannedServices.createOrUpdateInventoryEventPlanned(parameters, new Double(-1.0 * componentEventQuantity), null, product.get("productId") + ": " + eventDate, false, delegator); } catch (GenericEntityException e) { Debug.logError("Error : delegator.findByPrimaryKey(\"InventoryEventPlanned\", parameters) ="+parameters+"--"+e.getMessage(), module); logMrpError(node.getProduct().getString("productId"), "Unable to create event (processBomComponent)", delegator); @@ -639,13 +639,17 @@ } catch (GenericEntityException e) { return ServiceUtil.returnError("Problem running createOrUpdateInventoryEventPlanned"); } + // days to ship is only relevant for sales order to plan for preparatory days to ship. Otherwise MRP will push event dates for manufacturing parts + // as well and cause problems + daysToShip = 0; if (productFacility != null) { reorderQuantity = (productFacility.getDouble("reorderQuantity") != null? productFacility.getDouble("reorderQuantity").doubleValue(): -1); minimumStock = (productFacility.getDouble("minimumStock") != null? productFacility.getDouble("minimumStock").doubleValue(): 0); - daysToShip = (productFacility.getLong("daysToShip") != null? productFacility.getLong("daysToShip").intValue(): 0); + if ("SALES_ORDER_SHIP".equals(inventoryEventForMRP.getString("inventoryEventPlanTypeId"))) { + daysToShip = (productFacility.getLong("daysToShip") != null? productFacility.getLong("daysToShip").intValue(): 0); + } } else { minimumStock = 0; - daysToShip = 0; reorderQuantity = -1; } // -----------------------------------------------------