svn commit: r482584 - /incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java

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

svn commit: r482584 - /incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java

jacopoc
Author: jacopoc
Date: Tue Dec  5 02:46:27 2006
New Revision: 482584

URL: http://svn.apache.org/viewvc?view=rev&rev=482584
Log:
When an order for a return replacement is automatically created by the system, the order roles are also cloned.

Modified:
    incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java

Modified: incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java
URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java?view=diff&rev=482584&r1=482583&r2=482584
==============================================================================
--- incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java (original)
+++ incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java Tue Dec  5 02:46:27 2006
@@ -29,6 +29,7 @@
 import java.util.Set;
 
 import javolution.util.FastMap;
+import javolution.util.FastList;
 
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.GeneralRuntimeException;
@@ -1369,7 +1370,29 @@
                 try {
                     orderMap.put("orderTerms", orderHeader.getRelated("OrderTerm"));
                 } catch (GenericEntityException e) {
-                    Debug.logError(e, "Cannot create replacement order because order terms for original order is not available", module);
+                    Debug.logError(e, "Cannot create replacement order because order terms for original order are not available", module);
+                }
+                // we'll assume the new order has the same order roles of the original one
+                try {
+                    List orderRoles = orderHeader.getRelated("OrderRole");
+                    Map orderRolesMap = FastMap.newInstance();
+                    if (orderRoles != null) {
+                        Iterator orderRolesIt = orderRoles.iterator();
+                        while (orderRolesIt.hasNext()) {
+                            GenericValue orderRole = (GenericValue) orderRolesIt.next();
+                            List parties = (List) orderRolesMap.get(orderRole.getString("roleTypeId"));
+                            if (parties == null) {
+                                parties = FastList.newInstance();
+                                orderRolesMap.put(orderRole.getString("roleTypeId"), parties);
+                            }
+                            parties.add(orderRole.getString("partyId"));
+                        }
+                    }
+                    if (orderRolesMap.size() > 0) {
+                        orderMap.put("orderAdditionalPartyRoleMap", orderRolesMap);
+                    }
+                } catch (GenericEntityException e) {
+                    Debug.logError(e, "Cannot create replacement order because order roles for original order are not available", module);
                 }
 
                 // create the order