Author: jleroux
Date: Sat Feb 18 22:06:51 2012
New Revision: 1290890

URL: http://svn.apache.org/viewvc?rev=1290890&view=rev
Log:
A patch from Ankit Jain "If Picklist is Cancelled than all the PicklistItem 
related to that PicklistId should also get Cancel." 
https://issues.apache.org/jira/browse/OFBIZ-4690

If we cancel a picklist from Manage Picklist screen then this ECA will fire and 
cancel all the PicklistItem. 

Modified:
    ofbiz/trunk/applications/product/entitydef/eecas.xml
    
ofbiz/trunk/applications/product/script/org/ofbiz/shipment/picklist/PicklistServices.xml
    ofbiz/trunk/applications/product/servicedef/services_picklist.xml

Modified: ofbiz/trunk/applications/product/entitydef/eecas.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/entitydef/eecas.xml?rev=1290890&r1=1290889&r2=1290890&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/entitydef/eecas.xml (original)
+++ ofbiz/trunk/applications/product/entitydef/eecas.xml Sat Feb 18 22:06:51 
2012
@@ -70,6 +70,11 @@ under the License.
         <condition field-name="availableToPromiseDiff" operator="not-equals" 
value="0" type="BigDecimal"/>
         <action service="setLastInventoryCount" mode="sync"/>
     </eca>
+    <!-- If the Picklist status is Cancelled then cancel all the PicklistItems 
-->
+    <eca entity="Picklist" operation="create-store" event="return">
+        <condition field-name="statusId" operator="equals" 
value="PICKLIST_CANCELLED"/>
+        <action service="cancelPicklistAndItems" mode="async"/>
+    </eca>
 
     <!-- Product GroupOrder ECAs -->
     <eca entity="ProductGroupOrder" operation="create" event="return">

Modified: 
ofbiz/trunk/applications/product/script/org/ofbiz/shipment/picklist/PicklistServices.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/script/org/ofbiz/shipment/picklist/PicklistServices.xml?rev=1290890&r1=1290889&r2=1290890&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/product/script/org/ofbiz/shipment/picklist/PicklistServices.xml
 (original)
+++ 
ofbiz/trunk/applications/product/script/org/ofbiz/shipment/picklist/PicklistServices.xml
 Sat Feb 18 22:06:51 2012
@@ -1672,4 +1672,23 @@ under the License.
         </else>
         </if-compare>
     </simple-method>
+
+    <simple-method method-name="cancelPicklistAndItems" short-description="If 
Picklist is Cancelled then cancel all the PicklistItem">
+        <entity-and entity-name="PicklistBin" list="picklistBinList">
+            <field-map field-name="picklistId" 
from-field="parameters.picklistId"/>
+        </entity-and>
+        <if-not-empty field="picklistBinList">
+            <iterate entry="picklistBin" list="picklistBinList">
+                <entity-and entity-name="PicklistItem" list="itemList">
+                    <field-map field-name="picklistBinId" 
from-field="picklistBin.picklistBinId"/>
+                </entity-and>
+                <if-not-empty field="itemList">
+                    <iterate entry="item" list="itemList">
+                        <set field="item.itemStatusId" 
value="PICKITEM_CANCELLED"/>
+                        <store-value value-field="item"/>
+                    </iterate>
+                </if-not-empty>
+            </iterate>
+        </if-not-empty>
+    </simple-method>
 </simple-methods>

Modified: ofbiz/trunk/applications/product/servicedef/services_picklist.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/servicedef/services_picklist.xml?rev=1290890&r1=1290889&r2=1290890&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/servicedef/services_picklist.xml (original)
+++ ofbiz/trunk/applications/product/servicedef/services_picklist.xml Sat Feb 
18 22:06:51 2012
@@ -179,6 +179,11 @@ under the License.
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="false"/>
     </service>
+    <service name="cancelPicklistAndItems" engine="simple"
+            
location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml"
 invoke="cancelPicklistAndItems" auth="true">
+        <description>If Picklist is Cancelled then cancel all the 
PicklistItems.</description>
+        <attribute name="picklistId" type="String" mode="IN"/>
+    </service>
 
     <!-- PicklistRole -->
     <service name="createPicklistRole" default-entity-name="PicklistRole" 
engine="simple"


Reply via email to