Author: jonesde
Date: Fri Aug 24 10:01:15 2007
New Revision: 569456

URL: http://svn.apache.org/viewvc?rev=569456&view=rev
Log:
Changed to only request a returnlabel if it is a cross-ship replacement

Modified:
    
ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java

Modified: 
ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java?rev=569456&r1=569455&r2=569456&view=diff
==============================================================================
--- 
ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java 
(original)
+++ 
ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java 
Fri Aug 24 10:01:15 2007
@@ -657,12 +657,33 @@
                     // Check if order was a return replacement order 
(associated with return)
                     GenericValue returnItemResponse = 
EntityUtil.getFirst(delegator.findByAnd("ReturnItemResponse", 
UtilMisc.toMap("replacementOrderId", orderId)));
                     if (returnItemResponse != null) {
-                        bodyParameters.put("shipnotes", "RETURNLABEL");
+                        boolean includeReturnLabel = false;
                         
                         // Get the associated return Id (replaceReturnId)
                         String returnItemResponseId = 
returnItemResponse.getString("returnItemResponseId");
-                        GenericValue returnItem = 
EntityUtil.getFirst(delegator.findByAnd("ReturnItem", 
UtilMisc.toMap("returnItemResponseId", returnItemResponseId)));
-                        bodyParameters.put("replacementReturnId", 
returnItem.getString("returnId"));
+                        List returnItemList = 
delegator.findByAnd("ReturnItem", UtilMisc.toMap("returnItemResponseId", 
returnItemResponseId));
+                        GenericValue firstReturnItem = 
EntityUtil.getFirst(returnItemList);
+                        if (firstReturnItem != null) {
+                            bodyParameters.put("replacementReturnId", 
firstReturnItem.getString("returnId"));
+                        } else {
+                            Debug.logWarning("Could not find a ReturnItem for 
returnItemResponseId [" + returnItemResponseId + "]; this really shouldn't 
happen but isn't a real error either. It means a ReturnItemResponse was created 
but not attached to any item!", module);
+                        }
+
+                        // return label should only be sent when we want a 
return label to be included; this would be for a cross-ship replacement type 
ReturnItem
+                        
+                        // go through the returnItemList and if any are 
cross-ship replacement, then include a label (not for wait replacement in other 
words)
+                        Iterator returnItemIter = returnItemList.iterator();
+                        while (returnItemIter.hasNext()) {
+                            GenericValue returnItem = (GenericValue) 
returnItemIter.next();
+                            if 
("returnTypeId".equals(returnItem.getString("RTN_CSREPLACE"))) {
+                                includeReturnLabel = true;
+                            }
+                        }
+                        
+                        if (includeReturnLabel) {
+                            bodyParameters.put("shipnotes", "RETURNLABEL");
+                        }
+                        
                     }
                     // tracking shipper account, other Party info
                     String partyId = shipment.getString("partyIdTo");


Reply via email to