svn commit: r1618379 - /ofbiz/branches/release13.07/applications/order/src/org/ofbiz/order/order/OrderServices.java

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

svn commit: r1618379 - /ofbiz/branches/release13.07/applications/order/src/org/ofbiz/order/order/OrderServices.java

apatel-2
Author: apatel
Date: Sat Aug 16 16:09:14 2014
New Revision: 1618379

URL: http://svn.apache.org/r1618379
Log:
[OFBIZ-5424] Now creating status items for promotion order items. Thanks Christian Carlow for reporting the issue and ofbiz.us team for the fix.

Modified:
    ofbiz/branches/release13.07/applications/order/src/org/ofbiz/order/order/OrderServices.java

Modified: ofbiz/branches/release13.07/applications/order/src/org/ofbiz/order/order/OrderServices.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release13.07/applications/order/src/org/ofbiz/order/order/OrderServices.java?rev=1618379&r1=1618378&r2=1618379&view=diff
==============================================================================
--- ofbiz/branches/release13.07/applications/order/src/org/ofbiz/order/order/OrderServices.java (original)
+++ ofbiz/branches/release13.07/applications/order/src/org/ofbiz/order/order/OrderServices.java Sat Aug 16 16:09:14 2014
@@ -4069,6 +4069,7 @@ public class OrderServices {
 
         // get the new orderItems, adjustments, shipping info, payments and order item attributes from the cart
         List<Map<String, Object>> modifiedItems = FastList.newInstance();
+        List<Map<String, Object>> newItems = FastList.newInstance();
         List<GenericValue> toStore = new LinkedList<GenericValue>();
         List<GenericValue> toAddList = new ArrayList<GenericValue>();
         toAddList.addAll(cart.makeAllAdjustments());
@@ -4219,6 +4220,12 @@ public class OrderServices {
 
                 //  ignore promotion items. They are added/canceled automatically
                 if ("Y".equals(valueObj.getString("isPromo"))) {
+                    //Fetching the new promo items and adding it to list so that we can create OrderStatus record for that items.
+                    Map<String, Object> promoItem = FastMap.newInstance();
+                    promoItem.put("orderId", valueObj.getString("orderId"));
+                    promoItem.put("orderItemSeqId", valueObj.getString("orderItemSeqId"));
+                    promoItem.put("quantity", valueObj.getBigDecimal("quantity"));
+                    newItems.add(promoItem);
                     continue;
                 }
                 GenericValue oldOrderItem = null;
@@ -4291,6 +4298,7 @@ public class OrderServices {
                     appendedItem.put("quantity", valueObj.getBigDecimal("quantity"));
                     appendedItem.put("changeTypeEnumId", "ODR_ITM_APPEND");
                     modifiedItems.add(appendedItem);
+                    newItems.add(appendedItem);
                 }
             }
         }
@@ -4340,6 +4348,20 @@ public class OrderServices {
             }
         }
 
+      //To create record of OrderStatus entity
+        if (UtilValidate.isNotEmpty(newItems)) {
+            for (Map<String, Object> newItem : newItems) {
+                String itemStatusId = delegator.getNextSeqId("OrderStatus");
+                GenericValue itemStatus = delegator.makeValue("OrderStatus", UtilMisc.toMap("orderStatusId", itemStatusId));
+                itemStatus.put("statusId", "ITEM_CREATED");
+                itemStatus.put("orderId", newItem.get("orderId"));
+                itemStatus.put("orderItemSeqId", newItem.get("orderItemSeqId"));
+                itemStatus.put("statusDatetime", UtilDateTime.nowTimestamp());
+                itemStatus.set("statusUserLogin", userLogin.get("userLogin"));
+                delegator.create(itemStatus);
+            }
+        }
+        
         // make the order item object map & the ship group assoc list
         List<GenericValue> orderItemShipGroupAssoc = new LinkedList<GenericValue>();
         Map<String, GenericValue> itemValuesBySeqId = new HashMap<String, GenericValue>();