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 2008/06/06 20:24:21 UTC
svn commit: r664069 - in /ofbiz/trunk/applications:
manufacturing/script/org/ofbiz/manufacturing/jobshopmgt/ product/data/
product/script/org/ofbiz/product/inventory/ product/servicedef/
product/src/org/ofbiz/product/inventory/ product/webapp/facility/...
Author: jacopoc
Date: Fri Jun 6 11:24:20 2008
New Revision: 664069
URL: http://svn.apache.org/viewvc?rev=664069&view=rev
Log:
Added support for non-serialized status to mark items as defective or on-hold and exclude them form the inventory reservation and issuance services; enhanced inventory counting services to consider only non serialized items with an empty status (i.e. exclude on-hold or damaged items) but also added the statusId field so that it is possible to count on-hold or damaged items.
Modified:
ofbiz/trunk/applications/manufacturing/script/org/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.xml
ofbiz/trunk/applications/product/data/ProductTypeData.xml
ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryIssueServices.xml
ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryReserveServices.xml
ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryServices.xml
ofbiz/trunk/applications/product/servicedef/services_facility.xml
ofbiz/trunk/applications/product/src/org/ofbiz/product/inventory/InventoryServices.java
ofbiz/trunk/applications/product/webapp/facility/WEB-INF/actions/facility/ViewFacilityInventoryByProduct.bsh
ofbiz/trunk/applications/product/webapp/facility/facility/FacilityForms.xml
ofbiz/trunk/applications/product/webapp/facility/inventory/InventoryForms.xml
ofbiz/trunk/applications/product/widget/facility/FacilityScreens.xml
Modified: ofbiz/trunk/applications/manufacturing/script/org/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/manufacturing/script/org/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.xml?rev=664069&r1=664068&r2=664069&view=diff
==============================================================================
--- ofbiz/trunk/applications/manufacturing/script/org/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.xml (original)
+++ ofbiz/trunk/applications/manufacturing/script/org/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.xml Fri Jun 6 11:24:20 2008
@@ -262,62 +262,70 @@
</calculate>
</if-compare>
</if-compare>
- <if-compare field-name="inventoryItem.inventoryItemTypeId" operator="equals" value="NON_SERIAL_INV_ITEM">
- <if-compare field-name="parameters.useReservedItems" operator="equals" value="Y">
- <set field="inventoryItemQuantity" from-field="inventoryItem.quantityOnHandTotal"/>
- <else>
- <set field="inventoryItemQuantity" from-field="inventoryItem.availableToPromiseTotal"/>
- </else>
- </if-compare>
-
- <if-not-empty field-name="inventoryItemQuantity">
- <!-- reduce atp on inventoryItem if availableToPromise greater than 0, if not the code at the end of this method will handle it -->
- <if-compare field-name="inventoryItemQuantity" operator="greater" value="0" type="Double">
- <if-compare-field field-name="parameters.quantityNotIssued" operator="greater" to-field-name="inventoryItemQuantity" type="Double">
- <set from-field="inventoryItemQuantity" field="parameters.deductAmount"/>
- <else>
- <set from-field="parameters.quantityNotIssued" field="parameters.deductAmount"/>
- </else>
- </if-compare-field>
-
- <!-- create WorkEffortInventoryAssign record -->
- <set from-field="parameters.workEffortId" field="issuanceCreateMap.workEffortId"/>
- <set from-field="inventoryItem.inventoryItemId" field="issuanceCreateMap.inventoryItemId"/>
- <set from-field="parameters.deductAmount" field="issuanceCreateMap.quantity"/>
- <call-service service-name="assignInventoryToWorkEffort" in-map-name="issuanceCreateMap">
- </call-service>
-
- <!-- instead of updating InventoryItem, add an InventoryItemDetail -->
- <set from-field="inventoryItem.inventoryItemId" field="createDetailMap.inventoryItemId"/>
- <set from-field="parameters.workEffortId" field="createDetailMap.workEffortId"/>
- <!-- update availableToPromiseDiff AND quantityOnHandDiff since this is an issuance -->
- <calculate field-name="createDetailMap.availableToPromiseDiff" type="Double">
- <calcop field-name="parameters.deductAmount" operator="negative"/>
- </calculate>
- <calculate field-name="createDetailMap.quantityOnHandDiff" type="Double">
- <calcop field-name="parameters.deductAmount" operator="negative"/>
- </calculate>
- <set field="createDetailMap.reasonEnumId" from-field="parameters.reasonEnumId"/>
- <set field="createDetailMap.description" from-field="parameters.description"/>
- <call-service service-name="createInventoryItemDetail" in-map-name="createDetailMap"/>
- <clear-field field-name="createDetailMap"/>
-
- <calculate field-name="quantityNotIssued" map-name="parameters">
- <calcop operator="subtract" field-name="parameters.quantityNotIssued">
- <calcop operator="get" field-name="parameters.deductAmount"/>
- </calcop>
- </calculate>
- <set field="balanceInventoryItemsInMap.inventoryItemId" from-field="inventoryItem.inventoryItemId"/>
- <call-service service-name="balanceInventoryItems" in-map-name="balanceInventoryItemsInMap"/>
-
- <clear-field field-name="issuanceCreateMap"/>
+ <if>
+ <condition>
+ <and>
+ <if-empty field-name="inventoryItem.statusId"/>
+ <if-compare field-name="inventoryItem.inventoryItemTypeId" operator="equals" value="NON_SERIAL_INV_ITEM"/>
+ </and>
+ </condition>
+ <then>
+ <if-compare field-name="parameters.useReservedItems" operator="equals" value="Y">
+ <set field="inventoryItemQuantity" from-field="inventoryItem.quantityOnHandTotal"/>
+ <else>
+ <set field="inventoryItemQuantity" from-field="inventoryItem.availableToPromiseTotal"/>
+ </else>
</if-compare>
- </if-not-empty>
-
- <!-- keep track of the last non-serialized inventory item for use if inventory is not sufficient for amount already issued -->
- <!-- use env variable named lastNonSerInventoryItem -->
- <set from-field="inventoryItem" field="lastNonSerInventoryItem"/>
- </if-compare>
+
+ <if-not-empty field-name="inventoryItemQuantity">
+ <!-- reduce atp on inventoryItem if availableToPromise greater than 0, if not the code at the end of this method will handle it -->
+ <if-compare field-name="inventoryItemQuantity" operator="greater" value="0" type="Double">
+ <if-compare-field field-name="parameters.quantityNotIssued" operator="greater" to-field-name="inventoryItemQuantity" type="Double">
+ <set from-field="inventoryItemQuantity" field="parameters.deductAmount"/>
+ <else>
+ <set from-field="parameters.quantityNotIssued" field="parameters.deductAmount"/>
+ </else>
+ </if-compare-field>
+
+ <!-- create WorkEffortInventoryAssign record -->
+ <set from-field="parameters.workEffortId" field="issuanceCreateMap.workEffortId"/>
+ <set from-field="inventoryItem.inventoryItemId" field="issuanceCreateMap.inventoryItemId"/>
+ <set from-field="parameters.deductAmount" field="issuanceCreateMap.quantity"/>
+ <call-service service-name="assignInventoryToWorkEffort" in-map-name="issuanceCreateMap">
+ </call-service>
+
+ <!-- instead of updating InventoryItem, add an InventoryItemDetail -->
+ <set from-field="inventoryItem.inventoryItemId" field="createDetailMap.inventoryItemId"/>
+ <set from-field="parameters.workEffortId" field="createDetailMap.workEffortId"/>
+ <!-- update availableToPromiseDiff AND quantityOnHandDiff since this is an issuance -->
+ <calculate field-name="createDetailMap.availableToPromiseDiff" type="Double">
+ <calcop field-name="parameters.deductAmount" operator="negative"/>
+ </calculate>
+ <calculate field-name="createDetailMap.quantityOnHandDiff" type="Double">
+ <calcop field-name="parameters.deductAmount" operator="negative"/>
+ </calculate>
+ <set field="createDetailMap.reasonEnumId" from-field="parameters.reasonEnumId"/>
+ <set field="createDetailMap.description" from-field="parameters.description"/>
+ <call-service service-name="createInventoryItemDetail" in-map-name="createDetailMap"/>
+ <clear-field field-name="createDetailMap"/>
+
+ <calculate field-name="quantityNotIssued" map-name="parameters">
+ <calcop operator="subtract" field-name="parameters.quantityNotIssued">
+ <calcop operator="get" field-name="parameters.deductAmount"/>
+ </calcop>
+ </calculate>
+ <set field="balanceInventoryItemsInMap.inventoryItemId" from-field="inventoryItem.inventoryItemId"/>
+ <call-service service-name="balanceInventoryItems" in-map-name="balanceInventoryItemsInMap"/>
+
+ <clear-field field-name="issuanceCreateMap"/>
+ </if-compare>
+ </if-not-empty>
+
+ <!-- keep track of the last non-serialized inventory item for use if inventory is not sufficient for amount already issued -->
+ <!-- use env variable named lastNonSerInventoryItem -->
+ <set from-field="inventoryItem" field="lastNonSerInventoryItem"/>
+ </then>
+ </if>
</if-compare>
</simple-method>
Modified: ofbiz/trunk/applications/product/data/ProductTypeData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/data/ProductTypeData.xml?rev=664069&r1=664068&r2=664069&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/data/ProductTypeData.xml (original)
+++ ofbiz/trunk/applications/product/data/ProductTypeData.xml Fri Jun 6 11:24:20 2008
@@ -464,6 +464,8 @@
<StatusItem description="Being Transfered (Promised)" sequenceId="11" statusCode="BEING_TRANS_PRM" statusId="INV_BEING_TRANS_PRM" statusTypeId="INV_SERIALIZED_STTS"/>
<StatusItem description="Returned" sequenceId="20" statusCode="RETURNED" statusId="INV_RETURNED" statusTypeId="INV_SERIALIZED_STTS"/>
<StatusItem description="Defective" sequenceId="21" statusCode="DEFECTIVE" statusId="INV_DEFECTIVE" statusTypeId="INV_SERIALIZED_STTS"/>
+ <StatusItem description="On Hold (Non-Serialized)" sequenceId="01" statusCode="ON_HOLD_NS" statusId="INV_NS_ON_HOLD" statusTypeId="INV_NON_SER_STTS"/>
+ <StatusItem description="Defective (Non-Serialized)" sequenceId="02" statusCode="DEFECTIVE_NS" statusId="INV_NS_DEFECTIVE" statusTypeId="INV_NON_SER_STTS"/>
<StatusValidChange condition="" statusId="INV_ON_ORDER" statusIdTo="INV_AVAILABLE" transitionName="Order Arrived"/>
<StatusValidChange condition="" statusId="INV_AVAILABLE" statusIdTo="INV_PROMISED" transitionName="Promise"/>
<StatusValidChange condition="" statusId="INV_AVAILABLE" statusIdTo="INV_ON_HOLD" transitionName="Hold"/>
Modified: ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryIssueServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryIssueServices.xml?rev=664069&r1=664068&r2=664069&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryIssueServices.xml (original)
+++ ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryIssueServices.xml Fri Jun 6 11:24:20 2008
@@ -214,9 +214,16 @@
</if-compare>
</if-compare>
<if-compare field-name="inventoryItem.inventoryItemTypeId" operator="equals" value="NON_SERIAL_INV_ITEM">
- <if-not-empty field-name="inventoryItem.availableToPromiseTotal">
- <!-- reduce atp on inventoryItem if availableToPromise greater than 0, if not the code at the end of this method will handle it -->
- <if-compare field-name="inventoryItem.availableToPromiseTotal" operator="greater" value="0" type="Double">
+ <!-- reduce atp on inventoryItem if availableToPromise greater than 0, if not the code at the end of this method will handle it -->
+ <if>
+ <condition>
+ <and>
+ <if-empty field-name="inventoryItem.statusId"/>
+ <not><if-empty field-name="inventoryItem.availableToPromiseTotal"/></not>
+ <if-compare field-name="inventoryItem.availableToPromiseTotal" operator="greater" value="0" type="Double"/>
+ </and>
+ </condition>
+ <then>
<if-compare-field field-name="parameters.quantityNotIssued" operator="greater" to-field-name="inventoryItem.availableToPromiseTotal" type="Double">
<set field="parameters.deductAmount" from-field="inventoryItem.availableToPromiseTotal" />
<else>
@@ -256,15 +263,13 @@
<clear-field field-name="issuanceCreateMap"/>
<clear-field field-name="itemIssuanceId"/>
- </if-compare>
- </if-not-empty>
- <!-- keep track of the last non-serialized inventory item for use if inventory is not sufficient for amount already issued -->
- <!-- use env variable named lastNonSerInventoryItem -->
- <set field="lastNonSerInventoryItem" from-field="inventoryItem" />
+ <!-- keep track of the last non-serialized inventory item for use if inventory is not sufficient for amount already issued -->
+ <!-- use env variable named lastNonSerInventoryItem -->
+ <set field="lastNonSerInventoryItem" from-field="inventoryItem" />
+ </then>
+ </if>
</if-compare>
</if-compare>
</simple-method>
</simple-methods>
-
-
Modified: ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryReserveServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryReserveServices.xml?rev=664069&r1=664068&r2=664069&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryReserveServices.xml (original)
+++ ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryReserveServices.xml Fri Jun 6 11:24:20 2008
@@ -27,7 +27,7 @@
-containerId
If the service definitions are used then only one of these two will ever be specified, or neither of them.
- Whatever it is called with, it will basicly get a list of InventoryItems and reserve the first available inventory.
+ Whatever it is called with, it will basically get a list of InventoryItems and reserve the first available inventory.
If requireInventory is Y the quantity not reserved is returned, if N then a negative
availableToPromise will be used to track quantity ordered beyond what is in stock.
@@ -417,9 +417,16 @@
</if-compare>
</if-compare>
<if-compare field-name="inventoryItem.inventoryItemTypeId" operator="equals" value="NON_SERIAL_INV_ITEM">
- <if-not-empty field-name="inventoryItem.availableToPromiseTotal">
- <!-- reduce atp on inventoryItem if availableToPromise greater than 0, if not the code at the end of this method will handle it -->
- <if-compare field-name="inventoryItem.availableToPromiseTotal" operator="greater" value="0" type="Double">
+ <!-- reduce atp on inventoryItem if availableToPromise greater than 0, if not the code at the end of this method will handle it -->
+ <if>
+ <condition>
+ <and>
+ <if-empty field-name="inventoryItem.statusId"/>
+ <not><if-empty field-name="inventoryItem.availableToPromiseTotal"/></not>
+ <if-compare field-name="inventoryItem.availableToPromiseTotal" operator="greater" value="0" type="Double"/>
+ </and>
+ </condition>
+ <then>
<if-compare-field field-name="parameters.quantityNotReserved" operator="greater" to-field-name="inventoryItem.availableToPromiseTotal" type="Double">
<set from-field="inventoryItem.availableToPromiseTotal" field="parameters.deductAmount"/>
<else>
@@ -457,12 +464,11 @@
<calcop operator="get" field-name="deductAmount" map-name="parameters"/>
</calcop>
</calculate>
- </if-compare>
- </if-not-empty>
-
- <!-- keep track of the last non-serialized inventory item for use if inventory is not required for purchase -->
- <!-- use env variable named lastNonSerInventoryItem -->
- <set from-field="inventoryItem" field="lastNonSerInventoryItem"/>
+ </then>
+ <!-- keep track of the last non-serialized inventory item for use if inventory is not required for purchase -->
+ <!-- use env variable named lastNonSerInventoryItem -->
+ <set from-field="inventoryItem" field="lastNonSerInventoryItem"/>
+ </if>
</if-compare>
</if-compare>
</simple-method>
@@ -612,10 +618,3 @@
</if-compare>
</simple-method>
</simple-methods>
-
-
-
-
-
-
-
Modified: ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryServices.xml?rev=664069&r1=664068&r2=664069&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryServices.xml (original)
+++ ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryServices.xml Fri Jun 6 11:24:20 2008
@@ -638,18 +638,34 @@
</if-compare>
</if-compare>
<if-compare field-name="inventoryItem.inventoryItemTypeId" operator="equals" value="NON_SERIAL_INV_ITEM">
- <if-not-empty field-name="inventoryItem.quantityOnHandTotal">
- <calculate field-name="parameters.quantityOnHandTotal" type="Double">
- <calcop operator="get" field-name="parameters.quantityOnHandTotal"/>
- <calcop operator="get" field-name="inventoryItem.quantityOnHandTotal"/>
- </calculate>
- </if-not-empty>
- <if-not-empty field-name="inventoryItem.availableToPromiseTotal">
- <calculate field-name="parameters.availableToPromiseTotal" type="Double">
- <calcop operator="get" field-name="parameters.availableToPromiseTotal"/>
- <calcop operator="get" field-name="inventoryItem.availableToPromiseTotal"/>
- </calculate>
- </if-not-empty>
+ <if>
+ <condition>
+ <or>
+ <and>
+ <not><if-empty field-name="parameters.statusId"/></not>
+ <if-compare-field operator="equals" field-name="parameters.statusId" to-field-name="inventoryItem.statusId"/>
+ </and>
+ <and>
+ <if-empty field-name="parameters.statusId"/>
+ <if-empty field-name="inventoryItem.statusId"/>
+ </and>
+ </or>
+ </condition>
+ <then>
+ <if-not-empty field-name="inventoryItem.quantityOnHandTotal">
+ <calculate field-name="parameters.quantityOnHandTotal" type="Double">
+ <calcop operator="get" field-name="parameters.quantityOnHandTotal"/>
+ <calcop operator="get" field-name="inventoryItem.quantityOnHandTotal"/>
+ </calculate>
+ </if-not-empty>
+ <if-not-empty field-name="inventoryItem.availableToPromiseTotal">
+ <calculate field-name="parameters.availableToPromiseTotal" type="Double">
+ <calcop operator="get" field-name="parameters.availableToPromiseTotal"/>
+ <calcop operator="get" field-name="inventoryItem.availableToPromiseTotal"/>
+ </calculate>
+ </if-not-empty>
+ </then>
+ </if>
</if-compare>
</iterate>
@@ -676,6 +692,7 @@
<if-not-empty field-name="assocProducts">
<set from-field="assocProducts" field="inventoryByAssocProductsParams.assocProducts"/>
<set from-field="parameters.facilityId" field="inventoryByAssocProductsParams.facilityId"/>
+ <set from-field="parameters.statusId" field="inventoryByAssocProductsParams.statusId"/>
<call-service service-name="getProductInventoryAvailableFromAssocProducts" in-map-name="inventoryByAssocProductsParams">
<result-to-field result-name="quantityOnHandTotal"/>
<result-to-field result-name="availableToPromiseTotal"/>
Modified: ofbiz/trunk/applications/product/servicedef/services_facility.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/servicedef/services_facility.xml?rev=664069&r1=664068&r2=664069&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/servicedef/services_facility.xml (original)
+++ ofbiz/trunk/applications/product/servicedef/services_facility.xml Fri Jun 6 11:24:20 2008
@@ -141,6 +141,7 @@
<description>Get Marketing Packages Available From Components In Inventory</description>
<attribute name="productId" type="String" mode="IN" optional="false"/>
<attribute name="facilityId" type="String" mode="IN" optional="true"/>
+ <attribute name="statusId" type="String" mode="IN" optional="true"/>
<attribute name="quantityOnHandTotal" type="Double" mode="OUT" optional="false"/>
<attribute name="availableToPromiseTotal" type="Double" mode="OUT" optional="false"/>
</service>
@@ -148,6 +149,7 @@
location="org/ofbiz/product/inventory/InventoryServices.xml" invoke="getProductInventoryAvailable" auth="false" use-transaction="false">
<description>Get Inventory Availability for a Product</description>
<attribute name="productId" type="String" mode="IN" optional="false"/>
+ <attribute name="statusId" type="String" mode="IN" optional="true"/>
<attribute name="quantityOnHandTotal" type="Double" mode="OUT" optional="false"/>
<attribute name="availableToPromiseTotal" type="Double" mode="OUT" optional="false"/>
<attribute name="useCache" type="Boolean" mode="IN" optional="true"/>
@@ -157,6 +159,7 @@
<description>Get Inventory Availability for a Product constrained by a facilityId</description>
<attribute name="productId" type="String" mode="IN" optional="false"/>
<attribute name="facilityId" type="String" mode="IN" optional="false"/>
+ <attribute name="statusId" type="String" mode="IN" optional="true"/>
<attribute name="quantityOnHandTotal" type="Double" mode="OUT" optional="false"/>
<attribute name="availableToPromiseTotal" type="Double" mode="OUT" optional="false"/>
<attribute name="useCache" type="Boolean" mode="IN" optional="true"/>
@@ -167,6 +170,7 @@
<attribute name="productId" type="String" mode="IN" optional="false"/>
<attribute name="facilityId" type="String" mode="IN" optional="false"/>
<attribute name="locationSeqId" type="String" mode="IN" optional="false"/>
+ <attribute name="statusId" type="String" mode="IN" optional="true"/>
<attribute name="quantityOnHandTotal" type="Double" mode="OUT" optional="false"/>
<attribute name="availableToPromiseTotal" type="Double" mode="OUT" optional="false"/>
<attribute name="useCache" type="Boolean" mode="IN" optional="true"/>
@@ -176,6 +180,7 @@
<description>Get Inventory Availability for a Product constrained by a containerId</description>
<attribute name="productId" type="String" mode="IN" optional="false"/>
<attribute name="containerId" type="String" mode="IN" optional="false"/>
+ <attribute name="statusId" type="String" mode="IN" optional="true"/>
<attribute name="quantityOnHandTotal" type="Double" mode="OUT" optional="false"/>
<attribute name="availableToPromiseTotal" type="Double" mode="OUT" optional="false"/>
</service>
@@ -195,6 +200,7 @@
</description>
<attribute name="facilityId" type="String" mode="IN" optional="true"/>
<attribute name="assocProducts" type="List" mode="IN" optional="false"/>
+ <attribute name="statusId" type="String" mode="IN" optional="true"/>
<attribute name="quantityOnHandTotal" type="Double" mode="OUT" optional="false"/>
<attribute name="availableToPromiseTotal" type="Double" mode="OUT" optional="false"/>
</service>
@@ -217,6 +223,7 @@
<attribute name="facilityId" type="String" mode="IN" optional="false"/>
<attribute name="productId" type="String" mode="IN" optional="false"/>
<attribute name="minimumStock" mode="IN" type="String" optional="true"/>
+ <attribute name="statusId" type="String" mode="IN" optional="true"/>
<attribute name="totalQuantityOnHand" mode="OUT" type="String" optional="true"/>
<attribute name="totalAvailableToPromise" mode="OUT" type="String" optional="true"/>
<attribute name="quantityOnOrder" mode="OUT" type="Double" optional="true"/>
Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/inventory/InventoryServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/inventory/InventoryServices.java?rev=664069&r1=664068&r2=664069&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/inventory/InventoryServices.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/inventory/InventoryServices.java Fri Jun 6 11:24:20 2008
@@ -648,6 +648,7 @@
LocalDispatcher dispatcher = dctx.getDispatcher();
List productAssocList = (List) context.get("assocProducts");
String facilityId = (String)context.get("facilityId");
+ String statusId = (String)context.get("statusId");
Double availableToPromiseTotal = new Double(0);
Double quantityOnHandTotal = new Double(0);
@@ -672,7 +673,7 @@
// figure out the inventory available for this associated product
Map resultOutput = null;
try {
- Map inputMap = UtilMisc.toMap("productId", productIdTo);
+ Map inputMap = UtilMisc.toMap("productId", productIdTo, "statusId", statusId);
if (facilityId != null) {
inputMap.put("facilityId", facilityId);
resultOutput = dispatcher.runSync("getInventoryAvailableByFacility", inputMap);
@@ -728,12 +729,12 @@
// get a list of all available facilities for looping
List facilities = null;
- try {
- if (facilityId != null) {
+ try {
+ if (facilityId != null) {
facilities = delegator.findByAnd("Facility", UtilMisc.toMap("facilityId", facilityId));
} else {
facilities = delegator.findList("Facility", null, null, null, null, false);
- }
+ }
} catch (GenericEntityException e) {
return ServiceUtil.returnError("Unable to locate facilities." + e.getMessage());
}
@@ -815,11 +816,12 @@
String facilityId = (String)context.get("facilityId");
String productId = (String)context.get("productId");
String minimumStock = (String)context.get("minimumStock");
+ String statusId = (String)context.get("statusId");
Map result = new HashMap();
Map resultOutput = new HashMap();
- Map contextInput = UtilMisc.toMap("productId", productId, "facilityId", facilityId);
+ Map contextInput = UtilMisc.toMap("productId", productId, "facilityId", facilityId, "statusId", statusId);
GenericValue product = null;
try {
product = delegator.findByPrimaryKey("Product", UtilMisc.toMap("productId", productId));
Modified: ofbiz/trunk/applications/product/webapp/facility/WEB-INF/actions/facility/ViewFacilityInventoryByProduct.bsh
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/facility/WEB-INF/actions/facility/ViewFacilityInventoryByProduct.bsh?rev=664069&r1=664068&r2=664069&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/webapp/facility/WEB-INF/actions/facility/ViewFacilityInventoryByProduct.bsh (original)
+++ ofbiz/trunk/applications/product/webapp/facility/WEB-INF/actions/facility/ViewFacilityInventoryByProduct.bsh Fri Jun 6 11:24:20 2008
@@ -176,6 +176,7 @@
oneInventory.put("minimumStock", oneProd.getString("minimumStock"));
oneInventory.put("reorderQuantity", oneProd.getString("reorderQuantity"));
oneInventory.put("daysToShip", oneProd.getString("daysToShip"));
+ oneInventory.put("statusId", statusId);
rows.add(oneInventory);
}
Modified: ofbiz/trunk/applications/product/webapp/facility/facility/FacilityForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/facility/facility/FacilityForms.xml?rev=664069&r1=664068&r2=664069&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/webapp/facility/facility/FacilityForms.xml (original)
+++ ofbiz/trunk/applications/product/webapp/facility/facility/FacilityForms.xml Fri Jun 6 11:24:20 2008
@@ -336,6 +336,16 @@
</entity-options>
</drop-down>
</field>
+ <field name="statusId">
+ <drop-down allow-empty="true">
+ <entity-options entity-name="StatusItem" description="${description}" key-field-name="statusId">
+ <entity-constraint name="statusTypeId" operator="equals" value="INV_NON_SER_STTS"/>
+ </entity-options>
+ <entity-options entity-name="StatusItem" description="${description}" key-field-name="statusId">
+ <entity-constraint name="statusTypeId" operator="equals" value="INV_SERIALIZED_STTS"/>
+ </entity-options>
+ </drop-down>
+ </field>
<field name="offsetQOHQty" title="${uiLabelMap.ProductQtyOffsetQOHBelow}"><text/></field>
<field name="offsetATPQty" title="${uiLabelMap.ProductQtyOffsetATPBelow}"><text/></field>
<field name="productsSoldThruTimestamp" title="${uiLabelMap.ProductShowProductsSoldThruTimestamp}">
@@ -356,6 +366,7 @@
<field-map field-name="productId" env-name="productId"/>
<field-map field-name="facilityId" env-name="facilityId"/>
<field-map field-name="checkTime" env-name="checkTime"/>
+ <field-map field-name="statusId" env-name="statusId"/>
</service>
</row-actions>
<field name="items" title="${uiLabelMap.ProductProductId}" widget-style="buttontext">
Modified: ofbiz/trunk/applications/product/webapp/facility/inventory/InventoryForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/facility/inventory/InventoryForms.xml?rev=664069&r1=664068&r2=664069&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/webapp/facility/inventory/InventoryForms.xml (original)
+++ ofbiz/trunk/applications/product/webapp/facility/inventory/InventoryForms.xml Fri Jun 6 11:24:20 2008
@@ -51,14 +51,31 @@
<text>
<sub-hyperlink use-when="productId!=null" target="/catalog/control/EditProduct?productId=${productId}" target-type="inter-app" description="${uiLabelMap.ProductEditProduct} [${productId}]"/>
</text>
- </field>
- <field name="statusId">
+ </field>
+ <field name="statusId" use-when="inventoryItem==null">
<drop-down allow-empty="true">
<entity-options entity-name="StatusItem" description="${description}" key-field-name="statusId">
+ <entity-constraint name="statusTypeId" operator="equals" value="INV_NON_SER_STTS"/>
+ </entity-options>
+ <entity-options entity-name="StatusItem" description="${description}" key-field-name="statusId">
+ <entity-constraint name="statusTypeId" operator="equals" value="INV_SERIALIZED_STTS"/>
+ </entity-options>
+ </drop-down>
+ </field>
+ <field name="statusId" use-when="inventoryItem!=null&&"SERIALIZED_INV_ITEM".equals(inventoryItem.getString("inventoryItemTypeId"))">
+ <drop-down allow-empty="false">
+ <entity-options entity-name="StatusItem" description="${description}" key-field-name="statusId">
<entity-constraint name="statusTypeId" operator="equals" value="INV_SERIALIZED_STTS"/>
</entity-options>
</drop-down>
</field>
+ <field name="statusId" use-when="inventoryItem!=null&&"NON_SERIAL_INV_ITEM".equals(inventoryItem.getString("inventoryItemTypeId"))">
+ <drop-down allow-empty="true">
+ <entity-options entity-name="StatusItem" description="${description}" key-field-name="statusId">
+ <entity-constraint name="statusTypeId" operator="equals" value="INV_NON_SER_STTS"/>
+ </entity-options>
+ </drop-down>
+ </field>
<field name="expireDate" title="${uiLabelMap.ProductExpireDate}"/>
<field name="facilityId">
<drop-down allow-empty="true">
Modified: ofbiz/trunk/applications/product/widget/facility/FacilityScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/widget/facility/FacilityScreens.xml?rev=664069&r1=664068&r2=664069&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/widget/facility/FacilityScreens.xml (original)
+++ ofbiz/trunk/applications/product/widget/facility/FacilityScreens.xml Fri Jun 6 11:24:20 2008
@@ -328,6 +328,7 @@
<set field="productsSoldThruTimestamp" from-field="parameters.productsSoldThruTimestamp"/>
<set field="internalName" from-field="parameters.internalName"/>
<set field="productId" from-field="parameters.productId"/>
+ <set field="statusId" from-field="parameters.statusId"/>
<!-- do not use the countFacilityInventoryByProduct.bsh script unless the issues mentioned in it are correctly addressed -->
<script location="component://product/webapp/facility/WEB-INF/actions/facility/ViewFacilityInventoryByProduct.bsh"/>
<entity-one entity-name="Facility" value-name="facility"/>