Author: ashish
Date: Thu Mar 25 05:47:33 2010 New Revision: 927276 URL: http://svn.apache.org/viewvc?rev=927276&view=rev Log: The code was not working if you set flag on ProductStore for Requirement enum id. I have put conditional check so that it will first check in product store and then in product for the existence of requirementEnumId if found then it will run the code in if block. Conditional if existed in past is transferred into else block. Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java?rev=927276&r1=927275&r2=927276&view=diff ============================================================================== --- ofbiz/trunk/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java (original) +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java Thu Mar 25 05:47:33 2010 @@ -215,21 +215,23 @@ public class RequirementServices { GenericValue item = (GenericValue) iter.next(); GenericValue product = item.getRelatedOne("Product"); if (product == null) continue; - if (! "PRODRQM_AUTO".equals(product.get("requirementMethodEnumId"))) continue; - - BigDecimal quantity = item.getBigDecimal("quantity"); - BigDecimal cancelQuantity = item.getBigDecimal("cancelQuantity"); - BigDecimal required = quantity.subtract(cancelQuantity == null ? BigDecimal.ZERO : cancelQuantity); - if (required.compareTo(BigDecimal.ZERO) <= 0) continue; - - Map input = UtilMisc.toMap("userLogin", userLogin, "facilityId", facilityId, "productId", product.get("productId"), "quantity", required, "requirementTypeId", "PRODUCT_REQUIREMENT"); - Map results = dispatcher.runSync("createRequirement", input); - if (ServiceUtil.isError(results)) return results; - String requirementId = (String) results.get("requirementId"); - - input = UtilMisc.toMap("userLogin", userLogin, "orderId", order.get("orderId"), "orderItemSeqId", item.get("orderItemSeqId"), "requirementId", requirementId, "quantity", required); - results = dispatcher.runSync("createOrderRequirementCommitment", input); - if (ServiceUtil.isError(results)) return results; + if ("PRODRQM_AUTO".equals(productStore.get("requirementMethodEnumId")) || "PRODRQM_AUTO".equals(product.get("requirementMethodEnumId"))) { + BigDecimal quantity = item.getBigDecimal("quantity"); + BigDecimal cancelQuantity = item.getBigDecimal("cancelQuantity"); + BigDecimal required = quantity.subtract(cancelQuantity == null ? BigDecimal.ZERO : cancelQuantity); + if (required.compareTo(BigDecimal.ZERO) <= 0) continue; + + Map input = UtilMisc.toMap("userLogin", userLogin, "facilityId", facilityId, "productId", product.get("productId"), "quantity", required, "requirementTypeId", "PRODUCT_REQUIREMENT"); + Map results = dispatcher.runSync("createRequirement", input); + if (ServiceUtil.isError(results)) return results; + String requirementId = (String) results.get("requirementId"); + + input = UtilMisc.toMap("userLogin", userLogin, "orderId", order.get("orderId"), "orderItemSeqId", item.get("orderItemSeqId"), "requirementId", requirementId, "quantity", required); + results = dispatcher.runSync("createOrderRequirementCommitment", input); + if (ServiceUtil.isError(results)) return results; + } else if (! "PRODRQM_AUTO".equals(product.get("requirementMethodEnumId"))) { + continue; + } } } catch (GenericEntityException e) { Debug.logError(e, module); |
Free forum by Nabble | Edit this page |