svn commit: r927276 - /ofbiz/trunk/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java

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

svn commit: r927276 - /ofbiz/trunk/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java

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