You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ja...@apache.org on 2006/09/11 16:42:23 UTC
svn commit: r442234 - in /incubator/ofbiz/trunk/applications/order:
src/org/ofbiz/order/order/OrderServices.java
webapp/ordermgr/order/orderheader.ftl
Author: jacopoc
Date: Mon Sep 11 07:42:22 2006
New Revision: 442234
URL: http://svn.apache.org/viewvc?view=rev&rev=442234
Log:
Items in drop ship groups are not reserved; the shipment action links are also hidden in the order detail screen.
Modified:
incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java
incubator/ofbiz/trunk/applications/order/webapp/ordermgr/order/orderheader.ftl
Modified: incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java
URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java?view=diff&rev=442234&r1=442233&r2=442234
==============================================================================
--- incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java (original)
+++ incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java Mon Sep 11 07:42:22 2006
@@ -734,6 +734,7 @@
}
// set the order item ship groups
+ List dropShipGroupIds = FastList.newInstance(); // this list will contain the ids of all the ship groups for drop shipments (no reservations)
if (orderItemShipGroupInfo != null && orderItemShipGroupInfo.size() > 0) {
Iterator osiInfos = orderItemShipGroupInfo.iterator();
while (osiInfos.hasNext()) {
@@ -744,6 +745,9 @@
if (valueObj.get("carrierRoleTypeId") == null) {
valueObj.set("carrierRoleTypeId", "CARRIER");
}
+ if (!UtilValidate.isEmpty(valueObj.getString("supplierPartyId"))) {
+ dropShipGroupIds.add(valueObj.getString("shipGroupSeqId"));
+ }
} else if ("OrderAdjustment".equals(valueObj.getEntityName())) {
// shipping / tax adjustment(s)
if (valueObj.get("orderItemSeqId") == null || valueObj.getString("orderItemSeqId").length() == 0) {
@@ -966,7 +970,7 @@
// START inventory reservation
List resErrorMessages = new LinkedList();
try {
- reserveInventory(delegator, dispatcher, userLogin, locale, orderItemShipGroupInfo, itemValuesBySeqId,
+ reserveInventory(delegator, dispatcher, userLogin, locale, orderItemShipGroupInfo, dropShipGroupIds, itemValuesBySeqId,
orderTypeId, productStoreId, resErrorMessages);
} catch (GeneralException e) {
return ServiceUtil.returnError(e.getMessage());
@@ -986,7 +990,7 @@
return successResult;
}
- public static void reserveInventory(GenericDelegator delegator, LocalDispatcher dispatcher, GenericValue userLogin, Locale locale, List orderItemShipGroupInfo, Map itemValuesBySeqId, String orderTypeId, String productStoreId, List resErrorMessages) throws GeneralException {
+ public static void reserveInventory(GenericDelegator delegator, LocalDispatcher dispatcher, GenericValue userLogin, Locale locale, List orderItemShipGroupInfo, List dropShipGroupIds, Map itemValuesBySeqId, String orderTypeId, String productStoreId, List resErrorMessages) throws GeneralException {
boolean isImmediatelyFulfilled = false;
GenericValue productStore = null;
if (UtilValidate.isNotEmpty(productStoreId)) {
@@ -1014,15 +1018,19 @@
while (osiInfos.hasNext()) {
GenericValue orderItemShipGroupAssoc = (GenericValue) osiInfos.next();
if ("OrderItemShipGroupAssoc".equals(orderItemShipGroupAssoc.getEntityName())) {
+ if (dropShipGroupIds != null && dropShipGroupIds.contains(orderItemShipGroupAssoc.getString("shipGroupSeqId"))) {
+ // the items in the drop ship groups are not reserved
+ continue;
+ }
GenericValue orderItem = (GenericValue) itemValuesBySeqId.get(orderItemShipGroupAssoc.get("orderItemSeqId"));
String itemStatus = orderItem.getString("statusId");
if ("ITEM_REJECTED".equals(itemStatus) || "ITEM_CANCELLED".equals(itemStatus) || "ITEM_COMPLETED".equals(itemStatus)) {
Debug.logInfo("Order item [" + orderItem.getString("orderId") + " / " + orderItem.getString("orderItemSeqId") + "] is not in a proper status for reservation", module);
continue;
}
- if (UtilValidate.isNotEmpty(orderItem.getString("productId")) && !"RENTAL_ORDER_ITEM".equals(orderItem.getString("orderItemTypeId")))
- { // ignore for rental
- // only reserve product items; ignore non-product items
+ if (UtilValidate.isNotEmpty(orderItem.getString("productId")) && // only reserve product items, ignore non-product items
+ !"RENTAL_ORDER_ITEM".equals(orderItem.getString("orderItemTypeId")) // ignore for rental
+ ) {
try {
Map reserveInput = new HashMap();
reserveInput.put("productStoreId", productStoreId);
@@ -3123,6 +3131,7 @@
toStore.addAll(cart.makeAllOrderPaymentInfos());
// set the orderId & other information on all new value objects
+ List dropShipGroupIds = FastList.newInstance(); // this list will contain the ids of all the ship groups for drop shipments (no reservations)
Iterator tsi = toStore.iterator();
while (tsi.hasNext()) {
GenericValue valueObj = (GenericValue) tsi.next();
@@ -3132,6 +3141,9 @@
if (valueObj.get("carrierRoleTypeId") == null) {
valueObj.set("carrierRoleTypeId", "CARRIER");
}
+ if (valueObj.get("supplierPartyId") != null) {
+ dropShipGroupIds.add(valueObj.getString("shipGroupSeqId"));
+ }
} else if ("OrderAdjustment".equals(valueObj.getEntityName())) {
// shipping / tax adjustment(s)
if (valueObj.get("orderItemSeqId") == null || valueObj.getString("orderItemSeqId").length() == 0) {
@@ -3264,7 +3276,7 @@
List resErrorMessages = new LinkedList();
try {
Debug.log("Calling reserve inventory...", module);
- reserveInventory(delegator, dispatcher, userLogin, locale, orderItemShipGroupAssoc, itemValuesBySeqId,
+ reserveInventory(delegator, dispatcher, userLogin, locale, orderItemShipGroupAssoc, dropShipGroupIds, itemValuesBySeqId,
orderTypeId, productStoreId, resErrorMessages);
} catch (GeneralException e) {
Debug.logError(e, module);
Modified: incubator/ofbiz/trunk/applications/order/webapp/ordermgr/order/orderheader.ftl
URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/applications/order/webapp/ordermgr/order/orderheader.ftl?view=diff&rev=442234&r1=442233&r2=442234
==============================================================================
--- incubator/ofbiz/trunk/applications/order/webapp/ordermgr/order/orderheader.ftl (original)
+++ incubator/ofbiz/trunk/applications/order/webapp/ordermgr/order/orderheader.ftl Mon Sep 11 07:42:22 2006
@@ -883,7 +883,9 @@
<td align="left" valign="top" width="80%">
<div class="tabletext">
<#if orderHeader.orderTypeId == "SALES_ORDER">
- <a href="<@o...@ofbizUrl>" class="buttontext">${uiLabelMap.OrderQuickShipEntireOrder}</a>
+ <#if !shipGroup.supplierPartyId?has_content>
+ <a href="<@o...@ofbizUrl>" class="buttontext">${uiLabelMap.OrderQuickShipEntireOrder}</a>
+ </#if>
<#else> <#-- PURCHASE_ORDER -->
<#if facilities?has_content>
<form action="/facility/control/quickShipPurchaseOrder" method="POST">
@@ -917,8 +919,10 @@
<td align="left" valign="top" width="80%">
<#if orderHeader.orderTypeId == "SALES_ORDER">
+ <#if !shipGroup.supplierPartyId?has_content>
<div class="tabletext"><a href="/facility/control/PackOrder?facilityId=${storeFacilityId?if_exists}&orderId=${orderId}&shipGroupSeqId=${shipGroup.shipGroupSeqId}&externalLoginKey=${externalLoginKey}" class="buttontext">${uiLabelMap.OrderPackShipmentForShipGroup} [${shipGroup.shipGroupSeqId}]</a></div>
<div class="tabletext"><a href="/facility/control/createShipment?primaryOrderId=${orderId}&primaryShipGroupSeqId=${shipGroup.shipGroupSeqId}&statusId=SHIPMENT_INPUT&originFacilityId=${storeFacilityId}&externalLoginKey=${externalLoginKey}" class="buttontext">${uiLabelMap.OrderNewShipmentForShipGroup} [${shipGroup.shipGroupSeqId}]</a></div>
+ </#if>
<#else>
<div class="tabletext">
<#if facilities?has_content>