[OFBiz] SVN: r4663 - in trunk/applications/product: entitydef script/org/ofbiz/shipment/picklist servicedef

jonesde at svn.ofbiz.org jonesde at svn.ofbiz.org
Sun Mar 13 05:34:30 EST 2005


Author: jonesde
Date: 2005-03-13 04:34:24 -0600 (Sun, 13 Mar 2005)
New Revision: 4663

Modified:
   trunk/applications/product/entitydef/entitymodel.xml
   trunk/applications/product/script/org/ofbiz/shipment/picklist/PicklistServices.xml
   trunk/applications/product/servicedef/services_picklist.xml
Log:
Some more progress on the pick and pack report, data gathering service now pretty much complete and commented, just need to implement XSL:FO template and perhaps HTML template

Modified: trunk/applications/product/entitydef/entitymodel.xml
===================================================================
--- trunk/applications/product/entitydef/entitymodel.xml	2005-03-13 04:38:44 UTC (rev 4662)
+++ trunk/applications/product/entitydef/entitymodel.xml	2005-03-13 10:34:24 UTC (rev 4663)
@@ -877,7 +877,7 @@
       <member-entity entity-alias="FL" entity-name="FacilityLocation"/>
       <alias-all entity-alias="II"/>
       <alias-all entity-alias="FL"/>
-      <view-link entity-alias="II" rel-entity-alias="FL">
+      <view-link entity-alias="II" rel-entity-alias="FL" rel-optional="true">
         <key-map field-name="facilityId"/>
         <key-map field-name="locationSeqId"/>
       </view-link>

Modified: trunk/applications/product/script/org/ofbiz/shipment/picklist/PicklistServices.xml
===================================================================
--- trunk/applications/product/script/org/ofbiz/shipment/picklist/PicklistServices.xml	2005-03-13 04:38:44 UTC (rev 4662)
+++ trunk/applications/product/script/org/ofbiz/shipment/picklist/PicklistServices.xml	2005-03-13 10:34:24 UTC (rev 4663)
@@ -516,7 +516,7 @@
     </simple-method>
 
     <!-- ========================================================= -->
-    <!-- =========== Persisted Picklist Services ================= -->
+    <!-- ======= Persisted Picklist Maintenance Services ========= -->
     <!-- ========================================================= -->
     <simple-method method-name="createPicklistFromOrders" short-description="Create Picklist From Orders">
         <check-permission permission="FACILITY" action="_CREATE">
@@ -776,6 +776,9 @@
         <remove-value value-name="lookedUpValue"/>
     </simple-method>
     
+    <!-- ========================================================= -->
+    <!-- =========== Picklist Report/Display Services ============ -->
+    <!-- ========================================================= -->
     <simple-method method-name="getPicklistDisplayInfo" short-description="Get Picklist Display Info">
         <check-permission permission="FACILITY" action="_VIEW">
             <fail-message message="Security Error: to run deletePicklistRole you must have the FACILITY_VIEW or FACILITY_ADMIN permission"/>
@@ -790,16 +793,88 @@
             </condition-list>
             <order-by field-name="picklistDate"/>
         </entity-condition>
-        
+
         <iterate entry-name="picklist" list-name="picklistList">
-            <call-simple-method method-name="getPicklistSingleDisplayInfoInline"/>
+            <call-simple-method method-name="getPicklistSingleInfoInline"/>
             <field-to-list field-name="picklistInfo" list-name="picklistInfoList"/>
         </iterate>
         
         <field-to-result field-name="picklistInfoList"/>
     </simple-method>
 
-    <simple-method method-name="getPicklistSingleDisplayInfoInline" short-description="getPicklistSingleDisplayInfoInline">
+    <simple-method method-name="getPickAndPackReportInfo" short-description="getPickAndPackReportInfo">
+        <!-- 
+            Creates:
+              1. Standard picklistInfo Map from the getPicklistSingleInfoInline simple-method (see comment there for details)
+              2. inventoryItemAndLocationInfoList (inventoryItemAndLocation, picklistItemInfoList (picklistItem, orderItem, inventoryItemAndLocation, orderItemShipGrpInvRes, itemIssuanceList))
+        -->
+        <check-permission permission="FACILITY" action="_VIEW">
+            <fail-message message="Security Error: to run getPickAndPackReportInfo you must have the FACILITY_VIEW or FACILITY_ADMIN permission"/>
+        </check-permission>
+        <check-errors/>
+
+        <!-- Get the general information for the picklist, this will be used for the pack sheets -->
+        <entity-one entity-name="Picklist" value-name="picklist" auto-field-map="true"/>
+        <call-simple-method method-name="getPicklistSingleInfoInline"/>
+        <field-to-result field-name="picklistInfo"/>
+        
+        <!-- Assemble the information per facility location for the pick sheet -->
+        <iterate entry-name="picklistBinInfo" list-name="picklistInfo.picklistBinInfoList">
+            <iterate entry-name="picklistItemInfo" list-name="picklistBinInfo.picklistItemInfoList">
+                <!-- 
+                    In this iteration through the items we want 2 things:
+                      1. A map with all inventoryItemAndLocation records by inventoryItemId, so that we have one unique 
+                         instance per inventoryItem, this will be put into a list and sorted by facility location fields
+                      2. A Map containing a List of PicklistItemInfo records keyed by the inventoryItemId 
+                -->
+                <env-to-env env-name="picklistItemInfo.inventoryItemAndLocation" to-env-name="inventoryItemAndLocationByInventoryItemIdMap.${picklistItemInfo.inventoryItemAndLocation.inventoryItemId}"/>
+                <!-- handle case where an InventoryItem is not associated with a location: handled automatically since the FacilityLocation is optional in the view-entity -->
+
+                <clear-field field-name="picklistItemInfoTempList"/>
+                <env-to-env env-name="picklistItemInfoListByInventoryItemIdMap.${picklistItemInfo.inventoryItemAndLocation.inventoryItemId}" to-env-name="picklistItemInfoTempList"/>
+                <field-to-list field-name="picklistItemInfo" list-name="picklistItemInfoTempList"/>
+                <env-to-env env-name="picklistItemInfoTempList" to-env-name="picklistItemInfoListByInventoryItemIdMap.${picklistItemInfo.inventoryItemAndLocation.inventoryItemId}"/>
+            </iterate>
+        </iterate>
+
+        <!-- make a inventoryItemAndLocationList from the inventoryItemAndLocationByInventoryItemIdMap, which was used to guarantee uniqueness of InventoryItems -->
+        <iterate-map map-name="inventoryItemAndLocationByInventoryItemIdMap" key-name="locationSeqId" value-name="inventoryItemAndLocationList[]"/>
+
+        <!-- order the facilityLocations -->
+        <string-to-list string="+areaId" list-name="facilityLocsOrdLst"/>
+        <string-to-list string="+aisleId" list-name="facilityLocsOrdLst"/>
+        <string-to-list string="+sectionId" list-name="facilityLocsOrdLst"/>
+        <string-to-list string="+levelId" list-name="facilityLocsOrdLst"/>
+        <string-to-list string="+positionId" list-name="facilityLocsOrdLst"/>
+        <string-to-list string="+productId" list-name="facilityLocsOrdLst"/> <!-- This is here just in case there is no FacilityLocation -->
+        <string-to-list string="+datetimeReceived" list-name="facilityLocsOrdLst"/>
+        <order-value-list list-name="inventoryItemAndLocationList" order-by-list-name="facilityLocsOrdLst"/>
+        
+        <!-- Now we have an ordered list of InventoryItems, create an inventoryItemAndLocationInfoList -->
+        <iterate entry-name="inventoryItemAndLocation" list-name="inventoryItemAndLocationList">
+            <clear-field field-name="inventoryItemAndLocationInfo"/>
+            <env-to-env env-name="inventoryItemAndLocation" to-env-name="inventoryItemAndLocationInfo.inventoryItemAndLocation"/>
+            <env-to-env env-name="picklistItemInfoListByInventoryItemIdMap.${inventoryItemAndLocation.inventoryItemId}" to-env-name="inventoryItemAndLocationInfo.picklistItemInfoList"/>
+            <env-to-env env-name="inventoryItemAndLocationInfo" to-env-name="inventoryItemAndLocationInfoList[]"/>
+        </iterate>
+        
+        <field-to-result field-name="inventoryItemAndLocationInfoList"/>
+    </simple-method>
+
+    <simple-method method-name="getPicklistSingleInfoInline" short-description="getPicklistSingleInfoInline">
+        <!--
+            Creates picklistInfo Map containing:
+             - picklist
+             - statusItem
+             - statusValidChangeToDetailList
+             - picklistRoleInfoList (picklistRole, partyNameView, roleType)
+             - picklistStatusHistoryInfoList (picklistStatusHistory, statusItem, statusItemTo)
+             - picklistBinInfoList
+               - picklistBin
+               - primaryOrderHeader
+               - primaryOrderItemShipGroup
+               - picklistItemInfoList (picklistItem, orderItem, inventoryItemAndLocation, orderItemShipGrpInvRes, itemIssuanceList) 
+        -->
         <!-- expects a picklist GenericValue to be in the context, and creates a picklistInfo Map -->
         <clear-field field-name="picklistRoleInfoList"/>
         <get-related value-name="picklist" relation-name="PicklistRole" list-name="picklistRoleList"/>
@@ -854,7 +929,4 @@
         <get-related-one value-name="picklist" relation-name="StatusItem" to-value-name="picklistInfo.statusItem" use-cache="true"/>
         <get-related value-name="picklist" relation-name="StatusValidChangeToDetail" list-name="picklistInfo.statusValidChangeToDetailList"/>
     </simple-method>
-
-    <simple-method method-name="getPickAndPackReportInfo" short-description="getPickAndPackReportInfo">
-    </simple-method>
 </simple-methods>

Modified: trunk/applications/product/servicedef/services_picklist.xml
===================================================================
--- trunk/applications/product/servicedef/services_picklist.xml	2005-03-13 04:38:44 UTC (rev 4662)
+++ trunk/applications/product/servicedef/services_picklist.xml	2005-03-13 10:34:24 UTC (rev 4663)
@@ -68,7 +68,14 @@
         <attribute name="picklistInfoList" type="List" mode="OUT" optional="true"/>
     </service>
     
-    
+    <service name="getPickAndPackReportInfo" engine="simple"
+            location="org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="getPickAndPackReportInfo">
+        <description>Get Pick And Pack Report Info</description>
+        <attribute name="picklistId" type="String" mode="IN" optional="false"/>
+        <attribute name="picklistInfo" type="Map" mode="OUT" optional="false"/>
+        <attribute name="inventoryItemAndLocationInfoList" type="List" mode="OUT" optional="false"/>
+    </service>
+        
     <!-- Picklist -->
     <service name="createPicklist" default-entity-name="Picklist" engine="simple"
             location="org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="createPicklist" auth="true">



More information about the Svn mailing list