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);


Reply via email to