Author: surajk
Date: Sat Sep 22 04:08:22 2018 New Revision: 1841644 URL: http://svn.apache.org/viewvc?rev=1841644&view=rev Log: Improved: Auto requirement created for product store facility instead of ship group facility in which item belongs. (OFBIZ-10570) Modified: ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/requirement/RequirementServices.java Modified: ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/requirement/RequirementServices.java URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/requirement/RequirementServices.java?rev=1841644&r1=1841643&r2=1841644&view=diff ============================================================================== --- ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/requirement/RequirementServices.java (original) +++ ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/requirement/RequirementServices.java Sat Sep 22 04:08:22 2018 @@ -222,9 +222,9 @@ public class RequirementServices { Debug.logInfo("ProductStore for order ID " + orderId + " not found, requirements not created", module); return ServiceUtil.returnSuccess(); } - String facilityId = productStore.getString("inventoryFacilityId"); - List<GenericValue> orderItems = order.getRelated("OrderItem", null, null, false); - for (GenericValue item : orderItems) { + List<GenericValue> orderItemAndShipGroups = EntityQuery.use(delegator).select("orderId", "shipGroupSeqId", "orderItemSeqId").from("OrderItemAndShipGroupAssoc").where("orderId", orderId).distinct().queryList(); + for (GenericValue orderItemAndShipGroup : orderItemAndShipGroups) { + GenericValue item = EntityQuery.use(delegator).from("OrderItem").where("orderId", orderItemAndShipGroup.getString("orderId"), "orderItemSeqId", orderItemAndShipGroup.getString("orderItemSeqId")).queryOne(); GenericValue product = item.getRelatedOne("Product", false); if (product == null) continue; if ((!"PRODRQM_AUTO".equals(product.get("requirementMethodEnumId")) && @@ -235,8 +235,8 @@ public class RequirementServices { BigDecimal cancelQuantity = item.getBigDecimal("cancelQuantity"); BigDecimal required = quantity.subtract(cancelQuantity == null ? BigDecimal.ZERO : cancelQuantity); if (required.compareTo(BigDecimal.ZERO) <= 0) continue; - - Map<String, Object> input = UtilMisc.toMap("userLogin", userLogin, "facilityId", facilityId, "productId", product.get("productId"), "quantity", required, "requirementTypeId", "PRODUCT_REQUIREMENT"); + GenericValue orderItemShipGroup = EntityQuery.use(delegator).from("OrderItemShipGroup").where("orderId", orderId, "shipGroupSeqId", orderItemAndShipGroup.getString("shipGroupSeqId")).cache().queryOne(); + Map<String, Object> input = UtilMisc.toMap("userLogin", userLogin, "facilityId", orderItemShipGroup.getString("facilityId"), "productId", product.get("productId"), "quantity", required, "requirementTypeId", "PRODUCT_REQUIREMENT"); Map<String, Object> results = dispatcher.runSync("createRequirement", input); if (ServiceUtil.isError(results)) { return ServiceUtil.returnError(ServiceUtil.getErrorMessage(results)); |
Free forum by Nabble | Edit this page |