svn commit: r1749111 - in /ofbiz/trunk/applications/order: servicedef/services.xml src/org/ofbiz/order/order/OrderEvents.java src/org/ofbiz/order/order/OrderServices.java template/order/EditOrderItems.ftl

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

svn commit: r1749111 - in /ofbiz/trunk/applications/order: servicedef/services.xml src/org/ofbiz/order/order/OrderEvents.java src/org/ofbiz/order/order/OrderServices.java template/order/EditOrderItems.ftl

diveshdutta
Author: diveshdutta
Date: Sun Jun 19 00:46:55 2016
New Revision: 1749111

URL: http://svn.apache.org/viewvc?rev=1749111&view=rev
Log:
[OFBIZ-7190] Now CSR should be able to cancel order items of multiple ship groups. Also CSR should be able to cancel quantities less than ordered quantity. This should also fix OFBIZ-7255. Thanks Ankush Upadhyay for your patch. Thanks Mohammad Kathawala and Ratnesh Upadhyay for reporting the issues.

Modified:
    ofbiz/trunk/applications/order/servicedef/services.xml
    ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderEvents.java
    ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java
    ofbiz/trunk/applications/order/template/order/EditOrderItems.ftl

Modified: ofbiz/trunk/applications/order/servicedef/services.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/servicedef/services.xml?rev=1749111&r1=1749110&r2=1749111&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/servicedef/services.xml (original)
+++ ofbiz/trunk/applications/order/servicedef/services.xml Sun Jun 19 00:46:55 2016
@@ -282,6 +282,7 @@ under the License.
         <attribute name="cancelQuantity" type="BigDecimal" mode="IN" optional="true"/>
         <attribute name="itemReasonMap" type="Map" mode="IN" string-map-prefix="irm_" optional="true"/>
         <attribute name="itemCommentMap" type="Map" mode="IN" string-map-prefix="icm_" optional="true"/>
+        <attribute name="itemQtyMap" type="Map" mode="IN" string-map-prefix="iqm_" optional="true"/>
     </service>
     <service name="cancelOrderItemNoActions" engine="java" auth="true"
             location="org.ofbiz.order.order.OrderServices" invoke="cancelOrderItem">

Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderEvents.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderEvents.java?rev=1749111&r1=1749110&r2=1749111&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderEvents.java (original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderEvents.java Sun Jun 19 00:46:55 2016
@@ -34,6 +34,7 @@ import javax.servlet.http.HttpSession;
 import org.apache.commons.io.IOUtils;
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.GeneralException;
+import org.ofbiz.base.util.UtilGenerics;
 import org.ofbiz.base.util.UtilHttp;
 import org.ofbiz.content.data.DataResourceWorker;
 import org.ofbiz.entity.Delegator;
@@ -43,6 +44,7 @@ import org.ofbiz.entity.util.EntityQuery
 import org.ofbiz.service.GenericServiceException;
 import org.ofbiz.service.LocalDispatcher;
 import org.ofbiz.service.ServiceUtil;
+import java.math.BigDecimal;
 
 /**
  * Order Events
@@ -112,21 +114,21 @@ public class OrderEvents {
 
         Map<String, Object> resultMap = new HashMap<String, Object>();
         String  orderId = request.getParameter("orderId");
-        String[] orderItemSeqIds = request.getParameterValues("selectedItem");
-
-        if (orderItemSeqIds != null) {
-            for (String orderItemSeqId : orderItemSeqIds) {
-                try {
-                    GenericValue orderItem = EntityQuery.use(delegator).from("OrderItem").where("orderId", orderId, "orderItemSeqId", orderItemSeqId).queryOne();
-                    List<GenericValue> orderItemShipGroupAssocs = orderItem.getRelated("OrderItemShipGroupAssoc", null, null, false);
-                    for (GenericValue orderItemShipGroupAssoc : orderItemShipGroupAssocs) {
-                        GenericValue orderItemShipGroup = orderItemShipGroupAssoc.getRelatedOne("OrderItemShipGroup", false);
-                        String shipGroupSeqId = orderItemShipGroup.getString("shipGroupSeqId");
-
+        String[] selectedItems = request.getParameterValues("selectedItem");
+        
+        
+        
+        if (selectedItems != null) {
+            for (String selectedItem : selectedItems) {
+             String [] orderItemSeqIdAndOrderItemShipGrpId = selectedItem.split(":");
+             String orderItemSeqId = orderItemSeqIdAndOrderItemShipGrpId[0];
+             String shipGroupSeqId = orderItemSeqIdAndOrderItemShipGrpId[1];
+                        BigDecimal cancelQuantity = new BigDecimal(request.getParameter("iqm_"+orderItemSeqId+":"+shipGroupSeqId));
                         Map<String, Object> contextMap = new HashMap<String, Object>();
                         contextMap.put("orderId", orderId);
                         contextMap.put("orderItemSeqId", orderItemSeqId);
                         contextMap.put("shipGroupSeqId", shipGroupSeqId);
+                        contextMap.put("cancelQuantity", cancelQuantity);
                         contextMap.put("userLogin", userLogin);
                         contextMap.put("locale", locale);
                         try {
@@ -144,11 +146,6 @@ public class OrderEvents {
                             request.setAttribute("_ERROR_MESSAGE_", e.getMessage());
                             return "error";
                         }
-                    }
-                } catch (GenericEntityException e) {
-                    Debug.logError(e, module);
-                    return "error";
-                }
             }
             return "success";
         } else {

Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java?rev=1749111&r1=1749110&r2=1749111&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java (original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java Sun Jun 19 00:46:55 2016
@@ -2058,7 +2058,14 @@ public class OrderServices {
         String shipGroupSeqId = (String) context.get("shipGroupSeqId");
         Map<String, String> itemReasonMap = UtilGenerics.checkMap(context.get("itemReasonMap"));
         Map<String, String> itemCommentMap = UtilGenerics.checkMap(context.get("itemCommentMap"));
-
+        Map<String, String> itemQuantityMap = UtilGenerics.checkMap(context.get("itemQtyMap"));
+        if ((cancelQuantity == null) && UtilValidate.isNotEmpty(itemQuantityMap)) {
+         String key = orderItemSeqId+":"+shipGroupSeqId;
+         if (UtilValidate.isNotEmpty(itemQuantityMap.get(key))) {
+         cancelQuantity = new BigDecimal(itemQuantityMap.get(key));
+         }
+        
+        }
         // debugging message info
         String itemMsgInfo = orderId + " / " + orderItemSeqId + " / " + shipGroupSeqId;
 
@@ -2157,12 +2164,15 @@ public class OrderServices {
                             "orderId", orderItem.getString("orderId"),
                             "orderItemSeqId", orderItem.getString("orderItemSeqId"),
                             "shipGroupSeqId", orderItemShipGroupAssoc.getString("shipGroupSeqId"));
-                    try {
-                        dispatcher.runSync("deleteOrderItemShipGroupAssoc", localCtx);
-                    } catch (GenericServiceException e) {
-                        Debug.logError(e, module);
-                        return ServiceUtil.returnError(e.getMessage());
+                    if (availableQuantity.compareTo(thisCancelQty) == 0) {
+                     try {
+                            dispatcher.runSync("deleteOrderItemShipGroupAssoc", localCtx);
+                        } catch (GenericServiceException e) {
+                            Debug.logError(e, module);
+                            return ServiceUtil.returnError(e.getMessage());
+                        }
                     }
+                    
 
                     //  create order item change record
                     if (!"Y".equals(orderItem.getString("isPromo"))) {

Modified: ofbiz/trunk/applications/order/template/order/EditOrderItems.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/template/order/EditOrderItems.ftl?rev=1749111&r1=1749110&r2=1749111&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/template/order/EditOrderItems.ftl (original)
+++ ofbiz/trunk/applications/order/template/order/EditOrderItems.ftl Sun Jun 19 00:46:55 2016
@@ -257,7 +257,7 @@ under the License.
                                         <td align="center">
                                             <input type="text" name="iqm_${shipGroupAssoc.orderItemSeqId}:${shipGroupAssoc.shipGroupSeqId}" size="6" value="${shipGroupQty?string.number}"/>
                                             <#if itemSelectable>
-                                                <input type="checkbox" name="selectedItem" value="${orderItem.orderItemSeqId}" />
+                                                <input type="checkbox" name="selectedItem" value="${orderItem.orderItemSeqId}:${shipGroupAssoc.shipGroupSeqId}" />
                                             </#if>
                                         </td>
                                     </#if>