Author: jacopoc
Date: Thu Sep 27 01:49:35 2007
New Revision: 579947
URL: http://svn.apache.org/viewvc?rev=579947&view=rev
Log:
Iissuance of materials for productions: added ability to specify a secondary
location; added flag to return an error message if materials are not available.
Modified:
ofbiz/trunk/applications/manufacturing/config/ManufacturingUiLabels.properties
ofbiz/trunk/applications/manufacturing/config/ManufacturingUiLabels_it.properties
ofbiz/trunk/applications/manufacturing/script/org/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.xml
ofbiz/trunk/applications/manufacturing/servicedef/services_production_run.xml
ofbiz/trunk/applications/manufacturing/webapp/manufacturing/jobshopmgt/ProductionRunForms.xml
Modified:
ofbiz/trunk/applications/manufacturing/config/ManufacturingUiLabels.properties
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/manufacturing/config/ManufacturingUiLabels.properties?rev=579947&r1=579946&r2=579947&view=diff
==============================================================================
---
ofbiz/trunk/applications/manufacturing/config/ManufacturingUiLabels.properties
(original)
+++
ofbiz/trunk/applications/manufacturing/config/ManufacturingUiLabels.properties
Thu Sep 27 01:49:35 2007
@@ -128,6 +128,7 @@
ManufacturingMandatoryWorkEfforts=Mandatory Production Runs
ManufacturingManufacturingRules=Manufacturing Rules
ManufacturingMaterials=Materials
+ManufacturingMaterialsNotAvailable=Materials Not Available in Warehouse
ManufacturingMaterialsRequiredByRunningTask=Materials Required By The Running
Task
ManufacturingMrp=MRP
ManufacturingMrpJobLastExecuted=Last Job
Modified:
ofbiz/trunk/applications/manufacturing/config/ManufacturingUiLabels_it.properties
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/manufacturing/config/ManufacturingUiLabels_it.properties?rev=579947&r1=579946&r2=579947&view=diff
==============================================================================
---
ofbiz/trunk/applications/manufacturing/config/ManufacturingUiLabels_it.properties
(original)
+++
ofbiz/trunk/applications/manufacturing/config/ManufacturingUiLabels_it.properties
Thu Sep 27 01:49:35 2007
@@ -128,6 +128,7 @@
ManufacturingMandatoryWorkEfforts=Cicli Produzione Obbligatori
ManufacturingManufacturingRules=Regole Produzione
ManufacturingMaterials=Materiali
+ManufacturingMaterialsNotAvailable=Materiali Non Disponibili a Magazzino
ManufacturingMrp=MRP
ManufacturingMrpJobLastExecuted=Ultimo Lavoro
ManufacturingMrpJobIsRunning=Un Lavoro MRP \u00e8 in esecuzione
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=579947&r1=579946&r2=579947&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
Thu Sep 27 01:49:35 2007
@@ -40,6 +40,7 @@
<set-service-fields to-map-name="callSvcMap"
service-name="issueProductionRunTaskComponent" map-name="component"/>
<set from-field="reserveOrderEnumId"
field="callSvcMap.reserveOrderEnumId"/>
<set field="callSvcMap.description" value="BOM Part"/>
+ <set field="callSvcMap.failIfItemsAreNotAvailable"
value="Y"/>
<call-service
service-name="issueProductionRunTaskComponent" in-map-name="callSvcMap"/>
</if-not-empty>
</iterate>
@@ -93,10 +94,20 @@
<field-to-list field-name="orderByString" list-name="orderByList"/>
<set from-field="productId" field="lookupFieldMap.productId"/>
<set from-field="workEffort.facilityId"
field="lookupFieldMap.facilityId"/>
+ <!-- if locationSeqId is passed, then only the inventory items in
the location are considered -->
<if-not-empty field-name="parameters.locationSeqId">
<set from-field="parameters.locationSeqId"
field="lookupFieldMap.locationSeqId"/>
</if-not-empty>
- <find-by-and entity-name="InventoryItem" map-name="lookupFieldMap"
list-name="inventoryItemList" order-by-list-name="orderByList"/>
+ <find-by-and entity-name="InventoryItem" map-name="lookupFieldMap"
list-name="primaryInventoryItemList" order-by-list-name="orderByList"/>
+ <!-- if secondaryLocationSeqId is also passed, then also the
inventory items in the secondary location are considered, after the ones in the
main location -->
+ <if-not-empty field-name="parameters.locationSeqId">
+ <if-not-empty field-name="parameters.secondaryLocationSeqId">
+ <set from-field="parameters.secondaryLocationSeqId"
field="lookupFieldMap.locationSeqId"/>
+ </if-not-empty>
+ </if-not-empty>
+ <find-by-and entity-name="InventoryItem" map-name="lookupFieldMap"
list-name="secondaryInventoryItemList" order-by-list-name="orderByList"/>
+ <set from-field="primaryInventoryItemList"
field="inventoryItemList"/>
+ <list-to-list list-name="secondaryInventoryItemList"
to-list-name="inventoryItemList"/>
<set from-field="estimatedQuantity"
field="parameters.quantityNotIssued"/>
@@ -107,6 +118,11 @@
<!-- if quantityNotIssued is not 0, then pull it from the last
non-serialized inventory item found, in the quantityNotIssued field -->
<if-compare field-name="parameters.quantityNotIssued"
operator="not-equals" value="0" type="Double">
+ <if-compare field-name="parameters.failIfItemsAreNotAvailable"
operator="equals" value="Y" type="String">
+ <add-error><fail-property
property="ManufacturingMaterialsNotAvailable"
resource="ManufacturingUiLabels"/></add-error>
+ <add-error><fail-message message=" ${productId}:
${parameters.quantityNotIssued}"/></add-error>
+ </if-compare>
+ <check-errors/>
<if-not-empty field-name="lastNonSerInventoryItem">
<!-- create ItemIssuance record -->
<set from-field="parameters.workEffortId"
field="issuanceCreateMap.workEffortId"/>
@@ -141,7 +157,7 @@
<call-service service-name="createInventoryItem"
in-map-name="createInvItemInMap">
<result-to-field result-name="inventoryItemId"
field-name="createInvItemOutMap.inventoryItemId"/>
</call-service>
-
+
<!-- create ItemIssuance record -->
<set field="issuanceCreateMap.workEffortId"
from-field="parameters.workEffortId"/>
<set field="issuanceCreateMap.inventoryItemId"
from-field="createInvItemOutMap.inventoryItemId"/>
@@ -166,7 +182,6 @@
<clear-field field-name="createDetailMap"/>
</else>
</if-not-empty>
-
<calculate field-name="quantityNotIssued"
map-name="parameters"><number value="0"/></calculate>
</if-compare>
<if-not-empty field-name="workEffortGoodStandard">
Modified:
ofbiz/trunk/applications/manufacturing/servicedef/services_production_run.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/manufacturing/servicedef/services_production_run.xml?rev=579947&r1=579946&r2=579947&view=diff
==============================================================================
---
ofbiz/trunk/applications/manufacturing/servicedef/services_production_run.xml
(original)
+++
ofbiz/trunk/applications/manufacturing/servicedef/services_production_run.xml
Thu Sep 27 01:49:35 2007
@@ -148,14 +148,18 @@
If fromDate is passed, then the WorkEffortGoodStandard record with
pk composed of (workEffortId|productId|fromDate)
with type PRUNT_PROD_NEEDED is retrieved and used to get the
quantity; its status is also updated to COMPLETED after
the issuance is done.
- If locationSeqId is provided, then the items are only issued from
the inventory items associated to the location.
+ If locationSeqIds are provided, then the items are only issued
from the inventory items associated to the locations.
+ If failIfItemsAreNotAvailable is set to "Y" (the default is "N")
then the service fails if there isn not enough inventory:
+ no items with negative qoh will be created.
</description>
<attribute name="workEffortId" type="String" mode="IN"
optional="false"/>
<attribute name="productId" type="String" mode="IN" optional="false"/>
<attribute name="fromDate" type="Timestamp" mode="IN" optional="true"/>
<attribute name="quantity" type="Double" mode="IN" optional="true"/>
+ <attribute name="failIfItemsAreNotAvailable" type="String" mode="IN"
optional="true"/>
<attribute name="reserveOrderEnumId" type="String" mode="IN"
optional="true"/>
<attribute name="locationSeqId" type="String" mode="IN"
optional="true"/>
+ <attribute name="secondaryLocationSeqId" type="String" mode="IN"
optional="true"/>
<attribute name="reasonEnumId" type="String" mode="IN"
optional="true"/>
<attribute name="description" type="String" mode="IN" optional="true"/>
</service>
Modified:
ofbiz/trunk/applications/manufacturing/webapp/manufacturing/jobshopmgt/ProductionRunForms.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/manufacturing/webapp/manufacturing/jobshopmgt/ProductionRunForms.xml?rev=579947&r1=579946&r2=579947&view=diff
==============================================================================
---
ofbiz/trunk/applications/manufacturing/webapp/manufacturing/jobshopmgt/ProductionRunForms.xml
(original)
+++
ofbiz/trunk/applications/manufacturing/webapp/manufacturing/jobshopmgt/ProductionRunForms.xml
Thu Sep 27 01:49:35 2007
@@ -273,6 +273,7 @@
<field name="productionRunId"><hidden/></field>
<field name="workEffortId"><hidden/></field>
<field name="fromDate"><hidden/></field>
+ <field name="failIfItemsAreNotAvailable"><hidden value="Y"/></field>
<field name="task" entry-name="workEffortId"
title="${uiLabelMap.ManufacturingRoutingTaskId}">
<display description="${workEffortName} [${workEffortId}]"/>
</field>
@@ -284,6 +285,14 @@
<field name="locationSeqId">
<drop-down allow-empty="true">
<entity-options entity-name="ProductFacilityLocation"
description="${locationSeqId}">
+ <entity-constraint name="productId" env-name="productId"/>
+ <entity-constraint name="facilityId"
env-name="facilityId"/>
+ </entity-options>
+ </drop-down>
+ </field>
+ <field name="secondaryLocationSeqId">
+ <drop-down allow-empty="true">
+ <entity-options entity-name="ProductFacilityLocation"
description="${locationSeqId}" key-field-name="locationSeqId">
<entity-constraint name="productId" env-name="productId"/>
<entity-constraint name="facilityId"
env-name="facilityId"/>
</entity-options>