svn commit: r554967 - in /ofbiz/trunk/applications/order: script/org/ofbiz/order/order/ servicedef/ src/org/ofbiz/order/order/ webapp/ordermgr/return/

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

svn commit: r554967 - in /ofbiz/trunk/applications/order: script/org/ofbiz/order/order/ servicedef/ src/org/ofbiz/order/order/ webapp/ordermgr/return/

jacopoc
Author: jacopoc
Date: Tue Jul 10 07:55:03 2007
New Revision: 554967

URL: http://svn.apache.org/viewvc?view=rev&rev=554967
Log:
Added ability to select which return adjustments can be included in a return; still some work needs to be done to improve the information on screen (right now there is no way to know the amount already returned of a given adjustment; the return type must be selected for each adjustments but it would be better to add some Javascript code to enhance the user experience).

Modified:
    ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderReturnServices.xml
    ofbiz/trunk/applications/order/servicedef/services_return.xml
    ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReadHelper.java
    ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java
    ofbiz/trunk/applications/order/webapp/ordermgr/return/returnItemInc.ftl

Modified: ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderReturnServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderReturnServices.xml?view=diff&rev=554967&r1=554966&r2=554967
==============================================================================
--- ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderReturnServices.xml (original)
+++ ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderReturnServices.xml Tue Jul 10 07:55:03 2007
@@ -359,18 +359,28 @@
         <create-value value-name="newEntity"/>
         <refresh-value value-name="newEntity"/>
 
-        <!-- create return adjustments for all adjustments associated with the order item -->
-        <if-not-empty field-name="orderItem">
-            <get-related value-name="orderItem" relation-name="OrderAdjustment" list-name="orderAdjustments"/>
-            <iterate entry-name="orderAdjustment" list-name="orderAdjustments">
-                <clear-field field-name="returnAdjCtx"/>
-                <set field="returnAdjCtx.returnId" from-field="parameters.returnId"/>
-                <set field="returnAdjCtx.returnItemSeqId" from-field="newEntity.returnItemSeqId"/>
-                <set field="returnAdjCtx.returnTypeId" from-field="newEntity.returnTypeId"/>
-                <set field="returnAdjCtx.orderAdjustmentId" from-field="orderAdjustment.orderAdjustmentId"/>
-                <call-service service-name="createReturnAdjustment" in-map-name="returnAdjCtx"/>
-            </iterate>
-        </if-not-empty>
+        <if>
+            <condition>
+                <or>
+                    <if-empty field-name="parameters.includeAdjustments"/>
+                    <if-compare field-name="parameters.includeAdjustments" operator="equals" value="Y"/>
+                </or>
+            </condition>
+            <then>
+                <!-- create return adjustments for all adjustments associated with the order item -->
+                <if-not-empty field-name="orderItem">
+                    <get-related value-name="orderItem" relation-name="OrderAdjustment" list-name="orderAdjustments"/>
+                    <iterate entry-name="orderAdjustment" list-name="orderAdjustments">
+                        <clear-field field-name="returnAdjCtx"/>
+                        <set field="returnAdjCtx.returnId" from-field="parameters.returnId"/>
+                        <set field="returnAdjCtx.returnItemSeqId" from-field="newEntity.returnItemSeqId"/>
+                        <set field="returnAdjCtx.returnTypeId" from-field="newEntity.returnTypeId"/>
+                        <set field="returnAdjCtx.orderAdjustmentId" from-field="orderAdjustment.orderAdjustmentId"/>
+                        <call-service service-name="createReturnAdjustment" in-map-name="returnAdjCtx"/>
+                    </iterate>
+                </if-not-empty>
+            </then>
+        </if>
     </simple-method>
     <simple-method method-name="updateReturnItem" short-description="Update Return Item">
         <check-permission permission="ORDERMGR" action="_UPDATE"><fail-property resource="OrderErrorUiLabels" property="OrderSecurityErrorToRunUpdateReturnHeader"/></check-permission>

Modified: ofbiz/trunk/applications/order/servicedef/services_return.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/servicedef/services_return.xml?view=diff&rev=554967&r1=554966&r2=554967
==============================================================================
--- ofbiz/trunk/applications/order/servicedef/services_return.xml (original)
+++ ofbiz/trunk/applications/order/servicedef/services_return.xml Tue Jul 10 07:55:03 2007
@@ -76,6 +76,7 @@
                      ORDERMGR_CREATE, but, if the former, the returnPrice will be overriden by the returnablePrice from getReturnableQuantity.</description>
         <implements service="returnItemInterface"/>
         <attribute name="returnItemMapKey" type="String" mode="IN" optional="true"/>
+        <attribute name="includeAdjustments" type="String" mode="IN" optional="true"/> <!-- The default is "Y": the adjustments associated with the item are included in the return -->
         <attribute name="returnItemSeqId" type="String" mode="OUT" optional="false"/>
         <override name="returnReasonId" optional="true"/>
     </service>

Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReadHelper.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReadHelper.java?view=diff&rev=554967&r1=554966&r2=554967
==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReadHelper.java (original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReadHelper.java Tue Jul 10 07:55:03 2007
@@ -2931,32 +2931,6 @@
     }
 
     /**
-     * Get order item adjustments that have no corresponding returnAdjustment
-     * @return orderAdjustmentList
-     */
-    public List getNotReturnedOrderItemAdjustments(GenericValue orderItem) {
-        List filteredAdjustments = new ArrayList();
-        try {
-            List orderAdjustments = orderItem.getRelated("OrderAdjustment");
-            if (orderAdjustments != null) {
-                Iterator orderAdjIterator = orderAdjustments.iterator();
-                while (orderAdjIterator.hasNext()) {
-                    GenericValue orderAdjustment = (GenericValue) orderAdjIterator.next();
-                    long count = 0;
-                    // TODO: we have to change this to also compute the adjustment amount minus the already returned amount
-                    count = orderItem.getDelegator().findCountByAnd("ReturnAdjustment", UtilMisc.toMap("orderAdjustmentId", orderAdjustment.get("orderAdjustmentId")));
-                    if (count == 0) {
-                        filteredAdjustments.add(orderAdjustment);
-                    }
-                }
-            }
-        } catch (GenericEntityException e) {
-            Debug.logError(e, module);
-        }
-        return filteredAdjustments;
-    }
-
-    /**
      * Get the total return adjustments for a set of key -> value condition pairs.  Done for code efficiency.
      * @param delegator
      * @param condition

Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java?view=diff&rev=554967&r1=554966&r2=554967
==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java (original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java Tue Jul 10 07:55:03 2007
@@ -484,7 +484,13 @@
                         returnable.put(item, returnInfo);
                         
                         // Order item adjustments
-                        List itemAdjustments = orh.getNotReturnedOrderItemAdjustments(item);
+                        List itemAdjustments = null;
+                        try {
+                            itemAdjustments = orderItem.getRelated("OrderAdjustment");
+                        } catch (GenericEntityException e) {
+                            Debug.logError(e, module);
+                            return ServiceUtil.returnError("Unable to obtain order item adjustments");
+                        }
                         if (UtilValidate.isNotEmpty(itemAdjustments)) {
                             Iterator itemAdjustmentsIt = itemAdjustments.iterator();
                             while (itemAdjustmentsIt.hasNext()) {
@@ -1994,6 +2000,20 @@
                             UtilMisc.toMap("returnId", returnId, "returnItemSeqId", returnItemSeqId));
                     Debug.log("returnId:" + returnId + ",returnItemSeqId:" + returnItemSeqId);
                     orderItem = returnItem.getRelatedOne("OrderItem");
+                } else {
+                    // we don't have the returnItemSeqId but before we consider this
+                    // an header adjustment we try to get a return item in this return
+                    // associated to the same order item to which the adjustments refers (if any)
+                    if (UtilValidate.isNotEmpty(orderAdjustment.getString("orderItemSeqId")) &&
+                            !"_NA_".equals(orderAdjustment.getString("orderItemSeqId"))) {
+                        returnItem = EntityUtil.getFirst(delegator.findByAnd("ReturnItem",
+                                                                             UtilMisc.toMap("returnId", returnId,
+                                                                                            "orderId", orderAdjustment.getString("orderId"),
+                                                                                            "orderItemSeqId", orderAdjustment.getString("orderItemSeqId"))));
+                        if (UtilValidate.isNotEmpty(returnItem)) {
+                            orderItem = returnItem.getRelatedOne("OrderItem");
+                        }
+                    }
                 }
             } catch (GenericEntityException e) {
                 Debug.logError(e, module);
@@ -2111,7 +2131,13 @@
         String serviceName = UtilValidate.isNotEmpty(orderItemSeqId) ? "createReturnItem" : "createReturnAdjustment";
         Debug.logInfo("serviceName:" + serviceName, module);
         try {
-            return dispatcher.runSync(serviceName, filterServiceContext(dctx, serviceName, context));
+            Map inMap = filterServiceContext(dctx, serviceName, context);
+            if ("createReturnItem".equals(serviceName)) {
+                // we don't want to automatically include the adjustments
+                // when the return item is created because they are selectable by the user
+                inMap.put("includeAdjustments", "N");
+            }
+            return dispatcher.runSync(serviceName, inMap);
         } catch (org.ofbiz.service.GenericServiceException e) {
             Debug.logError(e, module);
             return ServiceUtil.returnError(e.getMessage());

Modified: ofbiz/trunk/applications/order/webapp/ordermgr/return/returnItemInc.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/return/returnItemInc.ftl?view=diff&rev=554967&r1=554966&r2=554967
==============================================================================
--- ofbiz/trunk/applications/order/webapp/ordermgr/return/returnItemInc.ftl (original)
+++ ofbiz/trunk/applications/order/webapp/ordermgr/return/returnItemInc.ftl Tue Jul 10 07:55:03 2007
@@ -67,12 +67,8 @@
                     <#assign adjustmentType = orderItem.getRelatedOne("OrderAdjustmentType")/>
                     <#assign description = orderItem.description?default(adjustmentType.get("description",locale))/>
 
-                    <#--
                     <input type="hidden" name="returnAdjustmentTypeId_o_${rowCount}" value="${returnAdjustmentType}"/>                
                     <input type="hidden" name="orderAdjustmentId_o_${rowCount}" value="${orderItem.orderAdjustmentId}"/>
-                    <input type="hidden" name="returnItemSeqId_o_${rowCount}" value="_NA_"/>
-                    <input type="hidden" name="description_o_${rowCount}" value="${description}"/>
-                    -->
                     <tr>
                       <td colspan="4">
                         ${description?default("N/A")}
@@ -81,8 +77,7 @@
                         ${orderItem.amount?string("##0.00")}
                         <#--<input type="text" class="inputBox" size="8" name="amount_o_${rowCount}" <#if orderItem.amount?has_content>value="${orderItem.amount?string("##0.00")}"</#if>/>-->
                       </td>
-                      <td colspan="3"></td>
-                      <#--
+                      <td></td>
                       <td>
                         <select name="returnTypeId_o_${rowCount}" class="selectBox">
                           <#list returnTypes as type>
@@ -90,15 +85,11 @@
                           </#list>
                         </select>
                       </td>
-                      -->
                       <td></td>
-                      <#--
                       <td align="right">
                         <input type="checkbox" name="_rowSubmit_o_${rowCount}" value="Y" onclick="javascript:checkToggle(this, '${selectAllFormName}');"/>
                       </td>
-                      -->
                     </tr>
-
                 <#else>
                     <#-- this is an order item -->
                     <#assign returnItemType = returnItemTypeMap.get(returnableItems.get(orderItem).get("itemTypeKey"))/>