svn commit: r1225641 - in /ofbiz/branches/release11.04/applications/order/src/org/ofbiz/order: order/OrderServices.java shoppingcart/ShoppingCart.java

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

svn commit: r1225641 - in /ofbiz/branches/release11.04/applications/order/src/org/ofbiz/order: order/OrderServices.java shoppingcart/ShoppingCart.java

mor-2
Author: mor
Date: Thu Dec 29 20:30:56 2011
New Revision: 1225641

URL: http://svn.apache.org/viewvc?rev=1225641&view=rev
Log:
Merged from trunk r1225639 & r1225640. Log: Added support to associate ship groups of sales and drop ship purchase orders.

Modified:
    ofbiz/branches/release11.04/applications/order/src/org/ofbiz/order/order/OrderServices.java
    ofbiz/branches/release11.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java

Modified: ofbiz/branches/release11.04/applications/order/src/org/ofbiz/order/order/OrderServices.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release11.04/applications/order/src/org/ofbiz/order/order/OrderServices.java?rev=1225641&r1=1225640&r2=1225641&view=diff
==============================================================================
--- ofbiz/branches/release11.04/applications/order/src/org/ofbiz/order/order/OrderServices.java (original)
+++ ofbiz/branches/release11.04/applications/order/src/org/ofbiz/order/order/OrderServices.java Thu Dec 29 20:30:56 2011
@@ -4803,7 +4803,6 @@ public class OrderServices {
                                     sci.setAssociatedOrderId(orderId);
                                     sci.setAssociatedOrderItemSeqId(item.getString("orderItemSeqId"));
                                     sci.setOrderItemAssocTypeId("DROP_SHIPMENT");
-                                    // TODO: we should consider also the ship group in the association between sales and purchase orders
                                 } catch (Exception e) {
                                     return ServiceUtil.returnError(UtilProperties.getMessage(resource,
                                             "OrderOrderCreatingDropShipmentsError",
@@ -4819,11 +4818,12 @@ public class OrderServices {
                             cart.setDefaultCheckoutOptions(dispatcher);
                             // the shipping address is the one of the customer
                             cart.setShippingContactMechId(shipGroup.getString("contactMechId"));
+                            // associate ship groups of sales and purchase orders
+                            ShoppingCart.CartShipInfo cartShipInfo = cart.getShipGroups().get(0);
+                            cartShipInfo.setAssociatedShipGroupSeqId(shipGroup.getString("shipGroupSeqId"));
                             // create the order
                             CheckOutHelper coh = new CheckOutHelper(dispatcher, delegator, cart);
                             coh.createOrder(userLogin);
-                            
-                            // TODO: associate the new purchase order with the sales order (ship group)
                         } else {
                             // if there are no items to drop ship, then clear out the supplier partyId
                             Debug.logWarning("No drop ship items found for order [" + shipGroup.getString("orderId") + "] and ship group [" + shipGroup.getString("shipGroupSeqId") + "] and supplier party [" + shipGroup.getString("supplierPartyId") + "].  Supplier party information will be cleared for this ship group", module);

Modified: ofbiz/branches/release11.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release11.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java?rev=1225641&r1=1225640&r2=1225641&view=diff
==============================================================================
--- ofbiz/branches/release11.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java (original)
+++ ofbiz/branches/release11.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java Thu Dec 29 20:30:56 2011
@@ -4015,36 +4015,39 @@ public class ShoppingCart implements Ite
     public List<GenericValue> makeAllOrderItemAssociations() {
         List<GenericValue> allOrderItemAssociations = new LinkedList<GenericValue>();
 
-        for (ShoppingCartItem item : cartLines) {
-            String requirementId = item.getRequirementId();
-            if (requirementId != null) {
-                try {
-                    List<GenericValue> commitments = getDelegator().findByAnd("OrderRequirementCommitment", UtilMisc.toMap("requirementId", requirementId));
-                    // TODO: multiple commitments for the same requirement are still not supported
-                    GenericValue commitment = EntityUtil.getFirst(commitments);
-                    if (commitment != null) {
-                        GenericValue orderItemAssociation = getDelegator().makeValue("OrderItemAssoc");
-                        orderItemAssociation.set("orderId", commitment.getString("orderId"));
-                        orderItemAssociation.set("orderItemSeqId", commitment.getString("orderItemSeqId"));
-                        orderItemAssociation.set("shipGroupSeqId", "_NA_");
-                        orderItemAssociation.set("toOrderItemSeqId", item.getOrderItemSeqId());
-                        orderItemAssociation.set("toShipGroupSeqId", "_NA_");
-                        orderItemAssociation.set("orderItemAssocTypeId", "PURCHASE_ORDER");
-                        allOrderItemAssociations.add(orderItemAssociation);
+        for (CartShipInfo csi : shipInfo) {
+            Set<ShoppingCartItem> items = csi.getShipItems();
+            for (ShoppingCartItem item : items) {
+                String requirementId = item.getRequirementId();
+                if (requirementId != null) {
+                    try {
+                        List<GenericValue> commitments = getDelegator().findByAnd("OrderRequirementCommitment", UtilMisc.toMap("requirementId", requirementId));
+                        // TODO: multiple commitments for the same requirement are still not supported
+                        GenericValue commitment = EntityUtil.getFirst(commitments);
+                        if (commitment != null) {
+                            GenericValue orderItemAssociation = getDelegator().makeValue("OrderItemAssoc");
+                            orderItemAssociation.set("orderId", commitment.getString("orderId"));
+                            orderItemAssociation.set("orderItemSeqId", commitment.getString("orderItemSeqId"));
+                            orderItemAssociation.set("shipGroupSeqId", "_NA_");
+                            orderItemAssociation.set("toOrderItemSeqId", item.getOrderItemSeqId());
+                            orderItemAssociation.set("toShipGroupSeqId", "_NA_");
+                            orderItemAssociation.set("orderItemAssocTypeId", "PURCHASE_ORDER");
+                            allOrderItemAssociations.add(orderItemAssociation);
+                        }
+                    } catch (GenericEntityException e) {
+                        Debug.logError(e, "Unable to load OrderRequirementCommitment records for requirement ID : " + requirementId, module);
                     }
-                } catch (GenericEntityException e) {
-                    Debug.logError(e, "Unable to load OrderRequirementCommitment records for requirement ID : " + requirementId, module);
                 }
-            }
-            if (item.getAssociatedOrderId() != null && item.getAssociatedOrderItemSeqId() != null) {
-                GenericValue orderItemAssociation = getDelegator().makeValue("OrderItemAssoc");
-                orderItemAssociation.set("orderId", item.getAssociatedOrderId());
-                orderItemAssociation.set("orderItemSeqId", item.getAssociatedOrderItemSeqId());
-                orderItemAssociation.set("shipGroupSeqId", "_NA_");
-                orderItemAssociation.set("toOrderItemSeqId", item.getOrderItemSeqId());
-                orderItemAssociation.set("toShipGroupSeqId", "_NA_");
-                orderItemAssociation.set("orderItemAssocTypeId", item.getOrderItemAssocTypeId());
-                allOrderItemAssociations.add(orderItemAssociation);
+                if (item.getAssociatedOrderId() != null && item.getAssociatedOrderItemSeqId() != null) {
+                    GenericValue orderItemAssociation = getDelegator().makeValue("OrderItemAssoc");
+                    orderItemAssociation.set("orderId", item.getAssociatedOrderId());
+                    orderItemAssociation.set("orderItemSeqId", item.getAssociatedOrderItemSeqId());
+                    orderItemAssociation.set("shipGroupSeqId", csi.getAssociatedShipGroupSeqId() != null ? csi.getAssociatedShipGroupSeqId() : "_NA_");
+                    orderItemAssociation.set("toOrderItemSeqId", item.getOrderItemSeqId());
+                    orderItemAssociation.set("toShipGroupSeqId", csi.getShipGroupSeqId() != null ? csi.getShipGroupSeqId() : "_NA_");
+                    orderItemAssociation.set("orderItemAssocTypeId", item.getOrderItemAssocTypeId());
+                    allOrderItemAssociations.add(orderItemAssociation);
+                }
             }
         }
         return allOrderItemAssociations;
@@ -4417,6 +4420,7 @@ public class ShoppingCart implements Ite
         public Timestamp shipBeforeDate = null;
         public Timestamp shipAfterDate = null;
         private String shipGroupSeqId = null;
+        private String associatedShipGroupSeqId = null;
         public String vendorPartyId = null;
         public String productStoreShipMethId = null;
         public Map<String, Object> attributes = FastMap.newInstance();
@@ -4451,6 +4455,11 @@ public class ShoppingCart implements Ite
             this.shipGroupSeqId = shipGroupSeqId;
         }
 
+        public String getAssociatedShipGroupSeqId() { return associatedShipGroupSeqId; }
+        public void setAssociatedShipGroupSeqId(String shipGroupSeqId) {
+            this.associatedShipGroupSeqId = shipGroupSeqId;
+        }
+
         public String getFacilityId() { return facilityId; }
         public void setFacilityId(String facilityId) {
             this.facilityId = facilityId;