svn commit: r791100 - in /ofbiz/trunk/applications/order: config/OrderUiLabels.xml src/org/ofbiz/order/order/OrderEvents.java webapp/ordermgr/WEB-INF/controller.xml webapp/ordermgr/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: r791100 - in /ofbiz/trunk/applications/order: config/OrderUiLabels.xml src/org/ofbiz/order/order/OrderEvents.java webapp/ordermgr/WEB-INF/controller.xml webapp/ordermgr/order/editorderitems.ftl

mor-2
Author: mor
Date: Sat Jul  4 10:57:01 2009
New Revision: 791100

URL: http://svn.apache.org/viewvc?rev=791100&view=rev
Log:
Added an option to cancel selected order items on Order Detail Page. Applied patch from Divesh Dutta, part of OFBIZ-2696 (https://issues.apache.org/jira/browse/OFBIZ-2696)

Modified:
    ofbiz/trunk/applications/order/config/OrderUiLabels.xml
    ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderEvents.java
    ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml
    ofbiz/trunk/applications/order/webapp/ordermgr/order/editorderitems.ftl

Modified: ofbiz/trunk/applications/order/config/OrderUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/config/OrderUiLabels.xml?rev=791100&r1=791099&r2=791100&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/config/OrderUiLabels.xml (original)
+++ ofbiz/trunk/applications/order/config/OrderUiLabels.xml Sat Jul  4 10:57:01 2009
@@ -1731,6 +1731,9 @@
         <value xml:lang="th">บัตรใช้ในโปรโมชัน</value>
         <value xml:lang="zh">购物车明细使用促销情况</value>
     </property>
+    <property key="OrderCancelSelectedItems">
+        <value xml:lang="en">Cancel Selected Items</value>
+    </property>
     <property key="OrderCartSummary">
         <value xml:lang="cs">Obsah košíku</value>
         <value xml:lang="de">Ihr Warenkorb enthält</value>

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=791100&r1=791099&r2=791100&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 Sat Jul  4 10:57:01 2009
@@ -21,6 +21,7 @@
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.List;
+import java.util.Map;
 
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
@@ -36,6 +37,12 @@
 import org.ofbiz.entity.GenericEntityException;
 import org.ofbiz.entity.GenericValue;
 
+import org.ofbiz.service.GenericServiceException;
+import org.ofbiz.service.LocalDispatcher;
+import org.ofbiz.service.ServiceUtil;
+
+import javolution.util.FastMap;
+
 /**
  * Order Events
  */
@@ -89,4 +96,56 @@
 
         return "success";
     }
+    
+    public static String cancelSelectedOrderItems(HttpServletRequest request, HttpServletResponse response) {
+        LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");
+        GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator");
+        HttpSession session = request.getSession();
+        GenericValue userLogin = (GenericValue) session.getAttribute("userLogin");
+    
+        Map resultMap = FastMap.newInstance();
+        String  orderId = request.getParameter("orderId");
+        String[] orderItemSeqIds = request.getParameterValues("selectedItem");
+    
+        if (orderItemSeqIds != null) {
+            for (String orderItemSeqId : orderItemSeqIds) {
+                try {
+                    GenericValue orderItem = delegator.findOne("OrderItem", UtilMisc.toMap("orderId", orderId, "orderItemSeqId", orderItemSeqId), false);
+                    List<GenericValue> orderItemShipGroupAssocs = orderItem.getRelated("OrderItemShipGroupAssoc");
+                    for (GenericValue orderItemShipGroupAssoc : orderItemShipGroupAssocs) {
+                        GenericValue orderItemShipGroup = orderItemShipGroupAssoc.getRelatedOne("OrderItemShipGroup");
+                        String shipGroupSeqId = orderItemShipGroup.getString("shipGroupSeqId");
+                        
+                        Map contextMap = FastMap.newInstance();
+                        contextMap.put("orderId", orderId);
+                        contextMap.put("orderItemSeqId", orderItemSeqId);
+                        contextMap.put("shipGroupSeqId", shipGroupSeqId);
+                        contextMap.put("userLogin", userLogin);
+                        try {
+                            resultMap = dispatcher.runSync("cancelOrderItem", contextMap);
+                            
+                            if(ServiceUtil.isError(resultMap)) {
+                                String errorMessage = (String) resultMap.get("errorMessage");
+                                Debug.logError(errorMessage, module);
+                                request.setAttribute("_ERROR_MESSAGE_", errorMessage);
+                                return "error";
+                            }
+                            
+                        } catch (GenericServiceException e) {
+                            Debug.logError(e, module);
+                            request.setAttribute("_ERROR_MESSAGE_", resultMap.get("errorMessage"));
+                            return "error";
+                        }
+                    }
+                } catch (GenericEntityException e ) {
+                    Debug.logError(e, module);
+                    return "error";
+                }
+            }
+            return "success";
+        } else {
+            request.setAttribute("_ERROR_MESSAGE_", "No order item selected. Please select an order item to cancel");
+            return "error";
+        }
+    }
 }

Modified: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml?rev=791100&r1=791099&r2=791100&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml (original)
+++ ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml Sat Jul  4 10:57:01 2009
@@ -188,6 +188,12 @@
         <response name="success" type="view" value="orderview"/>
         <response name="error" type="view" value="orderview"/>
     </request-map>
+    <request-map uri="cancelSelectedOrderItems">
+        <security https="true" auth="true"/>
+        <event type="java" path="org.ofbiz.order.order.OrderEvents" invoke="cancelSelectedOrderItems"/>
+        <response name="success" type="view" value="orderview"/>
+        <response name="error" type="view" value="orderview"/>
+    </request-map>
     <request-map uri="createOrderAdjustment">
         <security https="true" auth="true"/>
         <event type="service" invoke="createOrderAdjustment"/>

Modified: ofbiz/trunk/applications/order/webapp/ordermgr/order/editorderitems.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/order/editorderitems.ftl?rev=791100&r1=791099&r2=791100&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/webapp/ordermgr/order/editorderitems.ftl (original)
+++ ofbiz/trunk/applications/order/webapp/ordermgr/order/editorderitems.ftl Sat Jul  4 10:57:01 2009
@@ -17,6 +17,7 @@
 under the License.
 -->
 
+
 <#if orderHeader?has_content>
 
 <#-- Order Items changes to basic-table style  -->
@@ -41,6 +42,7 @@
           <li class="h3">&nbsp;${uiLabelMap.OrderOrderItems}</li>
           <#if security.hasEntityPermission("ORDERMGR", "_UPDATE", session) || security.hasRolePermission("ORDERMGR", "_UPDATE", "", "", session)>
               <#if orderHeader?has_content && orderHeader.statusId != "ORDER_CANCELLED" && orderHeader.statusId != "ORDER_COMPLETED">
+                  <li><a href="javascript:document.updateItemInfo.action='<@ofbizUrl>cancelSelectedOrderItems</@ofbizUrl>';document.updateItemInfo.submit()">${uiLabelMap.OrderCancelSelectedItems}</a></li>
                   <li><a href="javascript:document.updateItemInfo.action='<@ofbizUrl>cancelOrderItem</@ofbizUrl>';document.updateItemInfo.submit()">${uiLabelMap.OrderCancelAllItems}</a></li>
                   <li><a href="<@ofbizUrl>orderview?${paramString}</@ofbizUrl>">${uiLabelMap.OrderViewOrder}</a></li>
               </#if>
@@ -168,13 +170,6 @@
                                   </#if>
                               </td>
                               <td>&nbsp;</td>
-                              <td>
-                                  <#if ("Y" != orderItem.isPromo?if_exists) && ((security.hasEntityPermission("ORDERMGR", "_ADMIN", session) && orderItem.statusId != "ITEM_CANCELLED" && orderItem.statusId != "ITEM_COMPLETED") || (security.hasEntityPermission("ORDERMGR", "_UPDATE", session) && orderItem.statusId != "ITEM_CANCELLED" && orderItem.statusId != "ITEM_COMPLETED" && orderHeader.statusId != "ORDER_SENT"))>
-                                      <a href="javascript:document.updateItemInfo.action='<@ofbizUrl>cancelOrderItem</@ofbizUrl>';document.updateItemInfo.submit()" class="buttontext">${uiLabelMap.CommonCancelAll}</a>
-                                  <#else>
-                                      &nbsp;
-                                  </#if>
-                              </td>
                           </#if>
                       </tr>
 
@@ -251,6 +246,7 @@
                                   <td>
                                       <#assign itemStatusOkay = (orderItem.statusId != "ITEM_CANCELLED" && orderItem.statusId != "ITEM_COMPLETED" && (shipGroupAssoc.cancelQuantity?default(0) < shipGroupAssoc.quantity?default(0)) && ("Y" != orderItem.isPromo?if_exists))>
                                       <#if (security.hasEntityPermission("ORDERMGR", "_ADMIN", session) && itemStatusOkay) || (security.hasEntityPermission("ORDERMGR", "_UPDATE", session) && itemStatusOkay && orderHeader.statusId != "ORDER_SENT")>
+                                          <input type="checkbox" name="selectedItem" value="${orderItem.orderItemSeqId}">
                                           <a href="javascript:document.updateItemInfo.action='<@ofbizUrl>cancelOrderItem</@ofbizUrl>';document.updateItemInfo.orderItemSeqId.value='${orderItem.orderItemSeqId}';document.updateItemInfo.shipGroupSeqId.value='${shipGroup.shipGroupSeqId}';document.updateItemInfo.submit()" class="buttontext">${uiLabelMap.CommonCancel}</a>
                                       <#else>
                                           &nbsp;