[OFBiz] SVN: r4667 - in trunk/applications/product: script/org/ofbiz/shipment/picklist servicedef webapp/facility/WEB-INF webapp/facility/WEB-INF/actions/facility webapp/facility/WEB-INF/pagedefs/facility webapp/facility/facility widget/facility

jonesde at svn.ofbiz.org jonesde at svn.ofbiz.org
Mon Mar 14 12:08:03 EST 2005


Author: jonesde
Date: 2005-03-14 11:07:48 -0600 (Mon, 14 Mar 2005)
New Revision: 4667

Removed:
   trunk/applications/product/webapp/facility/WEB-INF/actions/facility/PickMoveStock.bsh
   trunk/applications/product/webapp/facility/WEB-INF/actions/facility/Picklist.bsh
   trunk/applications/product/webapp/facility/WEB-INF/pagedefs/facility/PickMoveStock.xml
   trunk/applications/product/webapp/facility/WEB-INF/pagedefs/facility/Picklist.fo.xml
   trunk/applications/product/webapp/facility/WEB-INF/pagedefs/facility/Picklist.xml
   trunk/applications/product/webapp/facility/facility/Picklist.ftl
Modified:
   trunk/applications/product/script/org/ofbiz/shipment/picklist/PicklistServices.xml
   trunk/applications/product/servicedef/services_picklist.xml
   trunk/applications/product/webapp/facility/WEB-INF/controller.xml
   trunk/applications/product/webapp/facility/facility/PickMoveStock.ftl
   trunk/applications/product/webapp/facility/facility/Picklist.fo.ftl
   trunk/applications/product/widget/facility/FacilityScreens.xml
Log:
Moved PickMoveStock to screen widget, more refinements and some progress on the pick/pack report, still not finished though

Modified: trunk/applications/product/script/org/ofbiz/shipment/picklist/PicklistServices.xml
===================================================================
--- trunk/applications/product/script/org/ofbiz/shipment/picklist/PicklistServices.xml	2005-03-14 15:01:30 UTC (rev 4666)
+++ trunk/applications/product/script/org/ofbiz/shipment/picklist/PicklistServices.xml	2005-03-14 17:07:48 UTC (rev 4667)
@@ -806,7 +806,8 @@
         <!-- 
             Creates:
               1. Standard picklistInfo Map from the getPicklistSingleInfoInline simple-method (see comment there for details)
-              2. inventoryItemAndLocationInfoList (inventoryItemAndLocation, picklistItemInfoList (picklistItem, orderItem, inventoryItemAndLocation, orderItemShipGrpInvRes, itemIssuanceList))
+              2. facilityLocationInfoList (facilityLocation, picklistItemInfoList (picklistItem, orderItem, inventoryItemAndLocation, orderItemShipGrpInvRes, itemIssuanceList))
+              3. noLocationProductInfoList (product, 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"/>
@@ -823,22 +824,38 @@
             <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 
+                      1. A Map with all FacilityLocation records by locationSeqId, so that we have one unique of each 
                          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 
+                         AND
+                         A Map containing a List of PicklistItemInfo records keyed by the locationSeqId
+                      2. A Map with key productId, value product
+                         AND
+                         A Map with a List of PicklistItemInfo records keyed by the productId
                 -->
-                <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}"/>
+                <if-not-empty field-name="picklistItemInfo.inventoryItemAndLocation.locationSeqId">
+                    <make-value value-name="facilityLocation" entity-name="FacilityLocation" map-name="picklistItemInfo.inventoryItemAndLocation"/>
+                    <env-to-env env-name="facilityLocation" to-env-name="facilityLocationByLocationSeqIdMap.${facilityLocation.locationSeqId}"/>
+    
+                    <clear-field field-name="picklistItemInfoTempList"/>
+                    <env-to-env env-name="picklistItemInfoListByLocationSeqIdMap.${facilityLocation.locationSeqId}" to-env-name="picklistItemInfoTempList"/>
+                    <field-to-list field-name="picklistItemInfo" list-name="picklistItemInfoTempList"/>
+                    <env-to-env env-name="picklistItemInfoTempList" to-env-name="picklistItemInfoListByLocationSeqIdMap.${facilityLocation.locationSeqId}"/>
+                <else>
+                    <!-- TODO: handle case where an InventoryItem is not associated with a location -->
+                    <if-not-empty field-name="picklistItemInfo.orderItem.productId">
+                        
+                    <else>
+                        <!-- Uh oh, no productId, how did this happen? -->
+                        <log level="warning" message="No productId and no FacilityLocation, not showing in Picklist for PicklistItem: ${picklistItemInfo.picklistItem}"/>
+                    </else>
+                    </if-not-empty>
+                </else>
+                </if-not-empty>
             </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[]"/>
+        <!-- make a inventoryItemAndLocationList from the facilityLocationByLocationSeqIdMap, which was used to guarantee uniqueness of InventoryItems -->
+        <iterate-map map-name="facilityLocationByLocationSeqIdMap" key-name="locationSeqId" value-name="facilityLocationList[]"/>
 
         <!-- order the facilityLocations -->
         <string-to-list string="+areaId" list-name="facilityLocsOrdLst"/>
@@ -846,19 +863,17 @@
         <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"/>
+        <order-value-list list-name="facilityLocationList" 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 entry-name="facilityLocation" list-name="facilityLocationList">
+            <clear-field field-name="facilityLocationInfo"/>
+            <env-to-env env-name="facilityLocation" to-env-name="facilityLocationInfo.facilityLocation"/>
+            <env-to-env env-name="picklistItemInfoListByLocationSeqIdMap.${facilityLocation.locationSeqId}" to-env-name="facilityLocationInfo.picklistItemInfoList"/>
+            <env-to-env env-name="facilityLocationInfo" to-env-name="facilityLocationInfoList[]"/>
         </iterate>
         
-        <field-to-result field-name="inventoryItemAndLocationInfoList"/>
+        <field-to-result field-name="facilityLocationInfoList"/>
     </simple-method>
 
     <simple-method method-name="getPicklistSingleInfoInline" short-description="getPicklistSingleInfoInline">

Modified: trunk/applications/product/servicedef/services_picklist.xml
===================================================================
--- trunk/applications/product/servicedef/services_picklist.xml	2005-03-14 15:01:30 UTC (rev 4666)
+++ trunk/applications/product/servicedef/services_picklist.xml	2005-03-14 17:07:48 UTC (rev 4667)
@@ -73,7 +73,8 @@
         <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"/>
+        <attribute name="facilityLocationInfoList" type="List" mode="OUT" optional="false"/>
+        <attribute name="noLocationProductInfoList" type="List" mode="OUT" optional="false"/>
     </service>
         
     <!-- Picklist -->

Deleted: trunk/applications/product/webapp/facility/WEB-INF/actions/facility/PickMoveStock.bsh
===================================================================
--- trunk/applications/product/webapp/facility/WEB-INF/actions/facility/PickMoveStock.bsh	2005-03-14 15:01:30 UTC (rev 4666)
+++ trunk/applications/product/webapp/facility/WEB-INF/actions/facility/PickMoveStock.bsh	2005-03-14 17:07:48 UTC (rev 4667)
@@ -1,52 +0,0 @@
-/*
- *  Copyright (c) 2003 The Open For Business Project - www.ofbiz.org
- *
- *  Permission is hereby granted, free of charge, to any person obtaining a 
- *  copy of this software and associated documentation files (the "Software"), 
- *  to deal in the Software without restriction, including without limitation 
- *  the rights to use, copy, modify, merge, publish, distribute, sublicense, 
- *  and/or sell copies of the Software, and to permit persons to whom the 
- *  Software is furnished to do so, subject to the following conditions:
- *
- *  The above copyright notice and this permission notice shall be included 
- *  in all copies or substantial portions of the Software.
- *
- *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
- *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
- *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
- *  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 
- *  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT 
- *  OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR 
- *  THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *@author     David E. Jones (jonesde at ofbiz.org)
- *@version    $Rev$
- *@since      3.0
- */
-
-import java.util.*;
-import java.sql.Timestamp;
-import org.ofbiz.entity.*;
-import org.ofbiz.base.util.*;
-
-delegator = request.getAttribute("delegator");
-dispatcher = request.getAttribute("dispatcher");
-userLogin = session.getAttribute("userLogin");
-
-facilityId = request.getParameter("facilityId");
-context.put("facilityId", facilityId);
-
-outMap = dispatcher.runSync("findStockMovesNeeded", UtilMisc.toMap("userLogin", userLogin, "facilityId", facilityId));
-moveByOisgirInfoList = outMap.get("moveByOisgirInfoList");
-oiirWarningMessageList = outMap.get("warningMessageList");
-stockMoveHandled = outMap.get("stockMoveHandled");
-context.put("moveByOisgirInfoList", moveByOisgirInfoList);
-context.put("oiirWarningMessageList", oiirWarningMessageList);
-context.put("stockMoveHandledWithOiir", stockMoveHandled);
-
-outMap = dispatcher.runSync("findStockMovesRecommended", UtilMisc.toMap("userLogin", userLogin, "facilityId", facilityId, "stockMoveHandled", stockMoveHandled));
-moveByPflInfoList = outMap.get("moveByPflInfoList");
-pflWarningMessageList = outMap.get("warningMessageList");
-context.put("moveByPflInfoList", moveByPflInfoList);
-context.put("pflWarningMessageList", pflWarningMessageList);
-

Deleted: trunk/applications/product/webapp/facility/WEB-INF/actions/facility/Picklist.bsh
===================================================================
--- trunk/applications/product/webapp/facility/WEB-INF/actions/facility/Picklist.bsh	2005-03-14 15:01:30 UTC (rev 4666)
+++ trunk/applications/product/webapp/facility/WEB-INF/actions/facility/Picklist.bsh	2005-03-14 17:07:48 UTC (rev 4667)
@@ -1,63 +0,0 @@
-/*
- *  Copyright (c) 2003 The Open For Business Project - www.ofbiz.org
- *
- *  Permission is hereby granted, free of charge, to any person obtaining a 
- *  copy of this software and associated documentation files (the "Software"), 
- *  to deal in the Software without restriction, including without limitation 
- *  the rights to use, copy, modify, merge, publish, distribute, sublicense, 
- *  and/or sell copies of the Software, and to permit persons to whom the 
- *  Software is furnished to do so, subject to the following conditions:
- *
- *  The above copyright notice and this permission notice shall be included 
- *  in all copies or substantial portions of the Software.
- *
- *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
- *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
- *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
- *  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 
- *  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT 
- *  OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR 
- *  THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *@author     David E. Jones (jonesde at ofbiz.org)
- *@version    $Rev$
- *@since      2.2
- */
-
-import java.util.*;
-import java.sql.Timestamp;
-import org.ofbiz.entity.*;
-import org.ofbiz.entity.condition.*;
-import org.ofbiz.service.*;
-import org.ofbiz.base.util.*;
-
-dispatcher = request.getAttribute("dispatcher");
-delegator = request.getAttribute("delegator");
-userLogin = session.getAttribute("userLogin");
-
-facilityId = request.getParameter("facilityId");
-context.put("facilityId", facilityId);
-facility = delegator.findByPrimaryKey("Facility", UtilMisc.toMap("facilityId", facilityId));
-context.put("facility", facility);
-
-shipmentMethodTypeId = request.getParameter("shipmentMethodTypeId");
-context.put("shipmentMethodTypeId", shipmentMethodTypeId);
-maxNumberOfOrders = Long.valueOf(request.getParameter("maxNumberOfOrders"));
-context.put("maxNumberOfOrders", maxNumberOfOrders);
-setPickStartedDate = request.getParameter("setPickStartedDate");
-context.put("setPickStartedDate", setPickStartedDate);
-
-
-// if orderHeaderList is null or empty the service will get all approved orders
-inMap = UtilMisc.toMap("userLogin", userLogin, "facilityId", facilityId, "shipmentMethodTypeId", shipmentMethodTypeId, "maxNumberOfOrders", maxNumberOfOrders, "setPickStartedDate", setPickStartedDate);
-outMap = dispatcher.runSync("getPicklistData", inMap);
-
-context.put("facilityLocationInfoList", outMap.get("facilityLocationInfoList"));
-context.put("inventoryItemInfoList", outMap.get("inventoryItemInfoList"));
-context.put("orderHeaderInfoList", outMap.get("orderHeaderInfoList"));
-context.put("wrongQuantityReservedList", outMap.get("wrongQuantityReservedList"));
-context.put("insufficientQohList", outMap.get("insufficientQohList"));
-
-if ("error".equals(outMap.get("responseMessage"))) {
-    Debug.log("errorMessage: " + ServiceUtil.makeErrorMessage(outMap, "", "", "", ""));
-}

Modified: trunk/applications/product/webapp/facility/WEB-INF/controller.xml
===================================================================
--- trunk/applications/product/webapp/facility/WEB-INF/controller.xml	2005-03-14 15:01:30 UTC (rev 4666)
+++ trunk/applications/product/webapp/facility/WEB-INF/controller.xml	2005-03-14 17:07:48 UTC (rev 4667)
@@ -524,14 +524,10 @@
         <response name="error" type="view" value="PicklistManage"/>
     </request-map>
 
-    <request-map uri="Picklist">
+    <request-map uri="PicklistReport.pdf">
         <security https="true" auth="true"/>
-        <response name="success" type="view" value="Picklist"/>
+        <response name="success" type="view" value="PicklistReport.pdf"/>
     </request-map>
-    <request-map uri="Picklist.pdf">
-        <security https="true" auth="true"/>
-        <response name="success" type="view" value="Picklist.pdf"/>
-    </request-map>
 
     <request-map uri="PickMoveStock">
         <security https="true" auth="true"/>
@@ -841,11 +837,9 @@
 
     <view-map name="PicklistOptions" type="screen" page="component://product/widget/facility/FacilityScreens.xml#PicklistOptions"/>
     <view-map name="PicklistManage" type="screen" page="component://product/widget/facility/FacilityScreens.xml#PicklistManage"/>
+    <view-map name="PickMoveStock" type="screen" page="component://product/widget/facility/FacilityScreens.xml#PickMoveStock"/>
+    <view-map name="PicklistReport.pdf" type="screenfop" page="component://product/widget/facility/FacilityScreens.xml#PicklistReport.fo"/>
 
-    <view-map name="Picklist" type="jpublish" page="/facility/Picklist.ftl"/>
-    <view-map name="Picklist.pdf" type="fop" page="/facility/Picklist.fo.ftl"/>
-    <view-map name="PickMoveStock" type="jpublish" page="/facility/PickMoveStock.ftl"/>
-
     <view-map name="FindFacilityGroup" type="jpublish" page="/group/FindFacilityGroup.ftl"/>
     <view-map name="EditFacilityGroup" type="jpublish" page="/group/EditFacilityGroup.ftl"/>
     <view-map name="EditFacilityGroupMembers" type="jpublish" page="/group/EditFacilityGroupMembers.ftl"/>

Deleted: trunk/applications/product/webapp/facility/WEB-INF/pagedefs/facility/PickMoveStock.xml
===================================================================
--- trunk/applications/product/webapp/facility/WEB-INF/pagedefs/facility/PickMoveStock.xml	2005-03-14 15:01:30 UTC (rev 4666)
+++ trunk/applications/product/webapp/facility/WEB-INF/pagedefs/facility/PickMoveStock.xml	2005-03-14 17:07:48 UTC (rev 4667)
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<page>
-    <template>main</template>
-    <property name="title">Picking: Move Stock</property>
-    <property name="titleProperty">PageTitlePickingMoveStock</property>
-    <property name="headerItem">facility</property>
-    <property name="tabButtonItem">PicklistOptions</property>
-    <content-action name="/facility/PickMoveStock.bsh"/>
-</page>

Deleted: trunk/applications/product/webapp/facility/WEB-INF/pagedefs/facility/Picklist.fo.xml
===================================================================
--- trunk/applications/product/webapp/facility/WEB-INF/pagedefs/facility/Picklist.fo.xml	2005-03-14 15:01:30 UTC (rev 4666)
+++ trunk/applications/product/webapp/facility/WEB-INF/pagedefs/facility/Picklist.fo.xml	2005-03-14 17:07:48 UTC (rev 4667)
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<page>
-    <template>plain</template>
-    <content-action name="/facility/Picklist.bsh"/>
-</page>

Deleted: trunk/applications/product/webapp/facility/WEB-INF/pagedefs/facility/Picklist.xml
===================================================================
--- trunk/applications/product/webapp/facility/WEB-INF/pagedefs/facility/Picklist.xml	2005-03-14 15:01:30 UTC (rev 4666)
+++ trunk/applications/product/webapp/facility/WEB-INF/pagedefs/facility/Picklist.xml	2005-03-14 17:07:48 UTC (rev 4667)
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<page>
-    <template>main</template>
-    <property name="title">Pick List</property>
-    <property name="titleProperty">PageTitlePickList</property>
-    <property name="headerItem">facility</property>
-    <property name="tabButtonItem">PicklistOptions</property>
-    <content-action name="/facility/Picklist.bsh"/> 
-</page>

Modified: trunk/applications/product/webapp/facility/facility/PickMoveStock.ftl
===================================================================
--- trunk/applications/product/webapp/facility/facility/PickMoveStock.ftl	2005-03-14 15:01:30 UTC (rev 4666)
+++ trunk/applications/product/webapp/facility/facility/PickMoveStock.ftl	2005-03-14 17:07:48 UTC (rev 4667)
@@ -25,12 +25,6 @@
  *@since          3.0
 -->
 
-<#assign uiLabelMap = requestAttributes.uiLabelMap>
-
-<#if security.hasEntityPermission("FACILITY", "_VIEW", session)>
-
-${pages.get("/facility/FacilityTabBar.ftl")}
-
 <div class="screenlet">
     <div class="screenlet-header">
         <div class="simple-right-half">
@@ -127,7 +121,3 @@
         </form>
     </div>
 </div>
-
-<#else>
-    <h3>${uiLabelMap.ProductFacilityViewPermissionError}</h3>
-</#if>

Modified: trunk/applications/product/webapp/facility/facility/Picklist.fo.ftl
===================================================================
--- trunk/applications/product/webapp/facility/facility/Picklist.fo.ftl	2005-03-14 15:01:30 UTC (rev 4666)
+++ trunk/applications/product/webapp/facility/facility/Picklist.fo.ftl	2005-03-14 17:07:48 UTC (rev 4667)
@@ -28,8 +28,6 @@
  *@since      3.0
 -->
 
-<#assign uiLabelMap = requestAttributes.uiLabelMap>
-
 <fo:layout-master-set>
     <fo:simple-page-master master-name="main" page-height="11in" page-width="8.5in"
             margin-top="0.5in" margin-bottom="1in" margin-left="1in" margin-right="1in">
@@ -231,49 +229,9 @@
     </#list>          
 </#if>
 
-    <#if insufficientQohList?has_content || wrongQuantityReservedList?has_content>
-        <fo:page-sequence master-reference="main">
-        <fo:flow flow-name="xsl-region-body" font-family="Helvetica">
-        <fo:block font-size="14pt">${uiLabelMap.ProductPickPackWarnings}</fo:block>
-        <#-- wrongQuantityReservedList: List of Maps with reservedQuantity and orderItemAndShipGroupAssoc -->
-        <#-- insufficientQohList: List of Maps with inventoryItem and quantityNeeded -->
-        <#assign rowColor = "white">
-        <#list insufficientQohList?if_exists as insufficientQoh>
-            <#assign inventoryItem = insufficientQoh.inventoryItem>
-            <#assign quantityNeeded = insufficientQoh.quantityNeeded>
-            <fo:block font-size="10pt">
-                  Inventory item with ID [${inventoryItem.inventoryItemId}] has ${inventoryItem.quantityOnHandTotal?if_exists} on hand but needs ${quantityNeeded} for a full pick.
-            </fo:block>
-            <#-- toggle the row color -->
-            <#if rowColor == "white">
-                <#assign rowColor = "#D4D0C8">
-            <#else>
-                <#assign rowColor = "white">
-            </#if>        
-        </#list>          
-        <#list wrongQuantityReservedList?if_exists as wrongQuantityReserved>
-            <#assign orderItemAndShipGroupAssoc = wrongQuantityReserved.orderItemAndShipGroupAssoc>
-            <#assign reservedQuantity = wrongQuantityReserved.reservedQuantity>
-            <#assign issuedQuantity = wrongQuantityReserved.issuedQuantity>
-            <#assign reservedIssuedQuantity = wrongQuantityReserved.reservedIssuedQuantity>
-            <fo:block font-size="10pt">
-                Order Item ${orderItemAndShipGroupAssoc.orderId}:${orderItemAndShipGroupAssoc.orderItemSeqId} is for ${orderItemAndShipGroupAssoc.quantity} of product ID [${orderItemAndShipGroupAssoc.productId}] but ${reservedQuantity} was reserved and ${issuedQuantity} has been issued. The total reserved and issued is ${reservedIssuedQuantity} which does not equal: ${orderItemAndShipGroupAssoc.quantity} the order item quantity.
-            </fo:block>
-            <#-- toggle the row color -->
-            <#if rowColor == "white">
-                <#assign rowColor = "#D4D0C8">
-            <#else>
-                <#assign rowColor = "white">
-            </#if>        
-        </#list>          
-        </fo:flow>
-        </fo:page-sequence>
-    </#if>
-
     <#else>
         <fo:block font-size="14pt">
             ${uiLabelMap.ProductFacilityViewPermissionError}
         </fo:block>
     </#if>
-
 </fo:root>

Deleted: trunk/applications/product/webapp/facility/facility/Picklist.ftl
===================================================================
--- trunk/applications/product/webapp/facility/facility/Picklist.ftl	2005-03-14 15:01:30 UTC (rev 4666)
+++ trunk/applications/product/webapp/facility/facility/Picklist.ftl	2005-03-14 17:07:48 UTC (rev 4667)
@@ -1,306 +0,0 @@
-<#--
- *  Copyright (c) 2003-2005 The Open For Business Project - www.ofbiz.org
- *
- *  Permission is hereby granted, free of charge, to any person obtaining a 
- *  copy of this software and associated documentation files (the "Software"), 
- *  to deal in the Software without restriction, including without limitation 
- *  the rights to use, copy, modify, merge, publish, distribute, sublicense, 
- *  and/or sell copies of the Software, and to permit persons to whom the 
- *  Software is furnished to do so, subject to the following conditions:
- *
- *  The above copyright notice and this permission notice shall be included 
- *  in all copies or substantial portions of the Software.
- *
- *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
- *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
- *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
- *  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 
- *  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT 
- *  OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR 
- *  THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *@author     David E. Jones (jonesde at ofbiz.org)
- *@author     thierry.grauss at etu.univ-tours.fr (migration to uiLabelMap)
- *@version    $Rev$
- *@since      2.2
--->
-
-
-<#assign uiLabelMap = requestAttributes.uiLabelMap>
-
-<#if security.hasEntityPermission("FACILITY", "_VIEW", session)>
-
-${pages.get("/facility/FacilityTabBar.ftl")}
-
-<table border=0 width="100%" cellspacing="0" cellpadding="0" class="boxoutside">
-  <tr>
-    <td width="100%">
-      <table width="100%" border="0" cellspacing="0" cellpadding="0" class="boxtop">
-        <tr>
-          <td width="50%"><div class="boxhead">${uiLabelMap.ProductInventoryItemsToPick}</div></td>
-          <td width="50%"><div class="boxhead" align=right>&nbsp;</div></td>
-        </tr>
-      </table>
-      <table width="100%" border="0" cellspacing="0" cellpadding="2" class="boxbottom">
-        <tr>
-          <td width="10%" align="left"><div class="tableheadtext">${uiLabelMap.ProductLocation}</div></td>
-          <td width="30%" align="left"><div class="tableheadtext">${uiLabelMap.ProductProductId}</div></td>
-          <td width="10%" align="left"><div class="tableheadtext">${uiLabelMap.ProductToPick}</div></td>
-          <td width="20%" align="left"><div class="tableheadtext">${uiLabelMap.OrderOrderItems}</div></td>
-          <td width="10%" align="left"><div class="tableheadtext">${uiLabelMap.ProductInventoryItems}</div></td>
-          <#--
-          <td width="10%" align="left"><div class="tableheadtext">On Hand</div></td>
-          <td width="10%" align="left"><div class="tableheadtext">Available</div></td>
-          -->
-        </tr>
-        <tr>
-          <td colspan="10"><hr class="sepbar"></td>
-        </tr>
-        <#if facilityLocationInfoList?has_content || inventoryItemInfoList?has_content>
-          <#assign rowClass = "viewManyTR2">
-          <#-- facilityLocationInfoList: facilityLocation, productInfoList (product, quantity, inventoryItemList, orderItemList) -->
-          <#list facilityLocationInfoList as facilityLocationInfo>
-              <#assign facilityLocation = facilityLocationInfo.facilityLocation>
-              <#assign productInfoList = facilityLocationInfo.productInfoList>
-              <#list productInfoList as productInfo>
-                <#assign product = productInfo.product>
-                <#assign quantity = productInfo.quantity>
-                <#assign inventoryItemList = productInfo.inventoryItemList>
-                <#assign orderItemList = productInfo.orderItemList>
-                <tr class="${rowClass}">
-                  <td valign="top">
-                    <div class="tabletext">${facilityLocation.facilityId}:${facilityLocation.areaId?if_exists}-${facilityLocation.aisleId?if_exists}-${facilityLocation.sectionId?if_exists}-${facilityLocation.levelId?if_exists}-${facilityLocation.positionId?if_exists}</div>
-                  </td>
-                  <td valign="top">
-                    <#if product?has_content>
-                      <div class="tabletext">${product.internalName} [${product.productId}]</div>
-                    <#else>
-                      <div class="tabletext">&nbsp;</div>
-                    </#if>
-                  </td>
-                  <td valign="top">
-                      <div class="tabletext">${quantity}</div>
-                  </td>
-                  <td valign="top">
-                    <#list orderItemList as orderItem>
-                      <div class="tabletext">${orderItem.orderId}:${orderItem.orderItemSeqId}-${orderItem.quantity}</div>
-                    </#list>
-                  </td>
-                  <td valign="top">
-                    <#list inventoryItemList as inventoryItem>
-                      <div class="tabletext">${inventoryItem.inventoryItemId}:${inventoryItem.binNumber?if_exists}</div>
-                    </#list>
-                  </td>
-                  <#--
-                  <td valign="top">
-                      <div class="tabletext">&nbsp;</div>
-                  </td>
-                  <td valign="top">
-                      <div class="tabletext">&nbsp;</div>
-                  </td>
-                  -->
-                </tr>
-                <#-- toggle the row color -->
-                <#if rowClass == "viewManyTR2">
-                  <#assign rowClass = "viewManyTR1">
-                <#else>
-                  <#assign rowClass = "viewManyTR2">
-                </#if>
-              </#list>
-          </#list>
-          <#list inventoryItemInfoList as inventoryItemInfo>
-            <#-- inventoryItemInfoList: List of Maps with inventoryItem, facilityLocation, orderItems, product, quantity, statusItem -->
-            <#-- for this list, only display for inventoryItems with no location since those with locations will be displayed above -->
-            <#if !inventoryItemInfo.facilityLocation?exists>
-                <#assign inventoryItem = inventoryItemInfo.inventoryItem>
-                <#assign facilityLocation = inventoryItemInfo.facilityLocation?if_exists>
-                <#assign orderItems = inventoryItemInfo.orderItems>
-                <#assign product = inventoryItemInfo.product>
-                <#assign quantity = inventoryItemInfo.quantity>
-                <#assign statusItem = inventoryItemInfo.statusItem?if_exists>
-                <tr class="${rowClass}">
-                  <td valign="top">
-                    <#if facilityLocation?has_content>
-                      <div class="tabletext">${facilityLocation.facilityId}:${facilityLocation.areaId?if_exists}-${facilityLocation.aisleId?if_exists}-${facilityLocation.sectionId?if_exists}-${facilityLocation.levelId?if_exists}-${facilityLocation.positionId?if_exists}</div>
-                    <#else>
-                      <div class="tabletext">&nbsp;</div>
-                    </#if>
-                  </td>
-                  <td valign="top">
-                    <#if product?has_content>
-                      <div class="tabletext">${product.internalName} [${product.productId}]</div>
-                    <#else>
-                      <div class="tabletext">&nbsp;</div>
-                    </#if>
-                  </td>
-                  <td valign="top">
-                      <div class="tabletext">${quantity}</div>
-                  </td>
-                  <td valign="top">
-                    <#list orderItems as orderItem>
-                      <div class="tabletext">${orderItem.orderId}:${orderItem.orderItemSeqId}-${orderItem.quantity}</div>
-                    </#list>
-                  </td>
-                  <td valign="top">
-                    <div class="tabletext">${inventoryItem.inventoryItemId}:${inventoryItem.binNumber?if_exists}</div>
-                  </td>
-                  <#--
-                  <#if inventoryItem.inventoryItemTypeId == "NON_SERIAL_INV_ITEM">
-                    <td valign="top">
-                      <div class="tabletext">${inventoryItem.quantityOnHandTotal?if_exists}</div>
-                    </td>
-                    <td valign="top">
-                      <div class="tabletext">${inventoryItem.availableToPromiseTotal?if_exists}</div>
-                    </td>
-                  <#else>
-                    <td colspan="2" valign="top">
-                      <#if statusItem?exists>
-                        <div class="tabletext">${statusItem.description}</div>
-                      <#else>
-                        <div class="tabletext">${inventoryItem.statusId?if_exists}</div>
-                      </#if>
-                    </td>
-                  </#if>
-                  -->
-                </tr>
-                <#-- toggle the row color -->
-                <#if rowClass == "viewManyTR2">
-                  <#assign rowClass = "viewManyTR1">
-                <#else>
-                  <#assign rowClass = "viewManyTR2">
-                </#if>
-              </#if>
-          </#list>
-        <#else>
-          <tr>
-            <td colspan="4"><div class="head3">${uiLabelMap.ProductNoInventoryFoundToPick}.</div></td>
-          </tr>        
-        </#if>
-      </table>
-    </td>
-  </tr>
-</table>
-<br>
-<table border=0 width="100%" cellspacing="0" cellpadding="0" class="boxoutside">
-  <tr>
-    <td width="100%">
-      <table width="100%" border="0" cellspacing="0" cellpadding="0" class="boxtop">
-        <tr>
-          <td width="50%"><div class="boxhead">${uiLabelMap.OrderOrdersToPack}</div></td>
-          <td width="50%"><div class="boxhead" align=right>&nbsp;</div></td>
-        </tr>
-      </table>
-      <table width="100%" border="0" cellspacing="0" cellpadding="2" class="boxbottom">
-        <tr>
-          <td width="10%" align="left"><div class="tableheadtext">${uiLabelMap.OrderOrderItem}</div></td>
-          <td width="40%" align="left"><div class="tableheadtext">${uiLabelMap.ProductProductId}</div></td>
-          <td width="20%" align="left"><div class="tableheadtext">${uiLabelMap.ProductQuantity}</div></td>
-          <td width="20%" align="left"><div class="tableheadtext">${uiLabelMap.ProductInventoryAvailNotAvail}</div></td>
-        </tr>
-        <tr>
-          <td colspan="10"><hr class="sepbar"></td>
-        </tr>
-        <#if orderHeaderInfoList?has_content>
-          <#assign rowClass = "viewManyTR2">
-          <#list orderHeaderInfoList as orderHeaderInfo>
-    	    <#-- orderHeaderInfoList: List of Maps with orderHeader and orderItemInfoList which is List of Maps with orderItem, product and orderItemShipGrpInvResList -->
-            <#assign orderHeader = orderHeaderInfo.orderHeader>
-            <#assign orderItemInfoList = orderHeaderInfo.orderItemInfoList>
-            <#list orderItemInfoList as orderItemInfo>
-              <#assign orderItemAndShipGroupAssoc = orderItemInfo.orderItemAndShipGroupAssoc>
-              <#assign product = orderItemInfo.product>
-              <#assign orderItemShipGrpInvResList = orderItemInfo.orderItemShipGrpInvResList>
-              <tr class="${rowClass}">
-                <td valign="top">
-                  <div class="tabletext"><b>${orderHeaderInfo_index+1}</b>-${orderItemAndShipGroupAssoc.orderId}:${orderItemAndShipGroupAssoc.orderItemSeqId}</div>
-                </td>
-                <td valign="top">
-                  <#if product?has_content>
-                    <div class="tabletext">${product.internalName} [${product.productId}]</div>
-                  <#else>
-                    <div class="tabletext">&nbsp;</div>
-                  </#if>
-                </td>
-                <td valign="top">
-                  <div class="tabletext">${orderItemAndShipGroupAssoc.quantity}</div>
-                </td>
-                <td valign="top">
-                  <#list orderItemShipGrpInvResList as orderItemShipGrpInvRes>
-                    <div class="tabletext">${orderItemShipGrpInvRes.inventoryItemId}:${orderItemShipGrpInvRes.quantity}:${orderItemShipGrpInvRes.quantityNotAvailable?if_exists}</div>
-                  </#list>
-                </td>
-              </tr>
-            </#list>
-              <#-- toggle the row color -->
-              <#if rowClass == "viewManyTR2">
-                <#assign rowClass = "viewManyTR1">
-              <#else>
-                <#assign rowClass = "viewManyTR2">
-              </#if>        
-          </#list>          
-        <#else>
-          <tr>
-            <td colspan="4"><div class="head3">${uiLabelMap.ProductNoInventoryFoundToPick}.</div></td>
-          </tr>        
-        </#if>
-      </table>
-    </td>
-  </tr>
-</table>
-
-<#if insufficientQohList?has_content || wrongQuantityReservedList?has_content>
-<br>
-<table border=0 width="100%" cellspacing="0" cellpadding="0" class="boxoutside">
-  <tr>
-    <td width="100%">
-      <table width="100%" border="0" cellspacing="0" cellpadding="0" class="boxtop">
-        <tr>
-          <td width="50%"><div class="boxhead">${uiLabelMap.ProductPickPackWarnings}</div></td>
-          <td width="50%"><div class="boxhead" align=right>&nbsp;</div></td>
-        </tr>
-      </table>
-      <table width="100%" border="0" cellspacing="0" cellpadding="2" class="boxbottom">
-    	<#-- wrongQuantityReservedList: List of Maps with reservedQuantity and orderItemAndShipGroupAssoc -->
-    	<#-- insufficientQohList: List of Maps with inventoryItem and quantityNeeded -->
-        <#assign rowClass = "viewManyTR2">
-          <#list insufficientQohList?if_exists as insufficientQoh>
-            <#assign inventoryItem = insufficientQoh.inventoryItem>
-            <#assign quantityNeeded = insufficientQoh.quantityNeeded>
-              <tr class="${rowClass}">
-                <td>
-                  <div class="tabletext">Inventory item with ID [${inventoryItem.inventoryItemId}] has ${inventoryItem.quantityOnHand?if_exists} on hand but needs ${quantityNeeded} for a full pick.</div>
-                </td>
-              </tr>
-              <#-- toggle the row color -->
-              <#if rowClass == "viewManyTR2">
-                <#assign rowClass = "viewManyTR1">
-              <#else>
-                <#assign rowClass = "viewManyTR2">
-              </#if>        
-          </#list>          
-          <#list wrongQuantityReservedList?if_exists as wrongQuantityReserved>
-            <#assign orderItemAndShipGroupAssoc = wrongQuantityReserved.orderItemAndShipGroupAssoc>
-            <#assign reservedQuantity = wrongQuantityReserved.reservedQuantity>
-            <#assign issuedQuantity = wrongQuantityReserved.issuedQuantity>
-            <#assign reservedIssuedQuantity = wrongQuantityReserved.reservedIssuedQuantity>
-              <tr class="${rowClass}">
-                <td>
-                  <div class="tabletext">Order Item ${orderItemAndShipGroupAssoc.orderId}:${orderItemAndShipGroupAssoc.orderItemSeqId} is for ${orderItemAndShipGroupAssoc.quantity} of product ID [${orderItemAndShipGroupAssoc.productId}] but ${reservedQuantity} was reserved and ${issuedQuantity} has been issued. The total reserved and issued is ${reservedIssuedQuantity} which does not equal: ${orderItemAndShipGroupAssoc.quantity} the order item quantity.</div>
-                </td>
-              </tr>
-              <#-- toggle the row color -->
-              <#if rowClass == "viewManyTR2">
-                <#assign rowClass = "viewManyTR1">
-              <#else>
-                <#assign rowClass = "viewManyTR2">
-              </#if>        
-          </#list>          
-      </table>
-    </td>
-  </tr>
-</table>
-</#if>
-
-<#else>
-  <h3>${uiLabelMap.ProductFacilityViewPermissionError}</h3>
-</#if>

Modified: trunk/applications/product/widget/facility/FacilityScreens.xml
===================================================================
--- trunk/applications/product/widget/facility/FacilityScreens.xml	2005-03-14 15:01:30 UTC (rev 4666)
+++ trunk/applications/product/widget/facility/FacilityScreens.xml	2005-03-14 17:07:48 UTC (rev 4667)
@@ -83,6 +83,15 @@
                 <service service-name="findOrdersToPickMove">
                     <field-map env-name="facilityId"/>
                 </service>
+
+                <entity-condition entity-name="Picklist" list-name="picklistActiveList">
+                    <condition-list combine="and">
+                        <condition-expr field-name="facilityId" operator="equals" env-name="parameters.facilityId"/>
+                        <condition-expr field-name="statusId" operator="not-equals" value="PICKLIST_PICKED"/>
+                        <condition-expr field-name="statusId" operator="not-equals" value="PICKLIST_CANCELLED"/>
+                    </condition-list>
+                    <order-by field-name="picklistDate"/>
+                </entity-condition>
             </actions>
             <widgets>
                 <decorator-screen name="CommonFacilityDecorator">
@@ -110,7 +119,6 @@
                 <entity-condition entity-name="PartyRoleAndPartyDetail" list-name="partyRoleAndPartyDetailList" use-cache="true">
                     <condition-expr field-name="roleTypeId" value="PICKER"/>
                 </entity-condition>
-
                 <entity-condition entity-name="Picklist" list-name="picklistActiveList">
                     <condition-list combine="and">
                         <condition-expr field-name="facilityId" operator="equals" env-name="parameters.facilityId"/>
@@ -131,5 +139,54 @@
             </widgets>
         </section>
     </screen>
+    <screen name="PickMoveStock">
+        <section>
+            <actions>
+                <set field="titleProperty" value="PageTitlePickingMoveStock"/>
+                <set field="headerItem" value="facility"/>
+                <set field="tabButtonItem" value="PicklistOptions"/>
+
+                <set field="facilityId" from-field="parameters.facilityId"/>
+                <service service-name="findStockMovesNeeded">
+                    <field-map env-name="facilityId"/>
+                </service>
+                <set field="oiirWarningMessageList" from-field="warningMessageList"/>
+                <service service-name="findStockMovesRecommended">
+                    <field-map env-name="facilityId"/>
+                    <field-map env-name="stockMoveHandled"/>
+                </service>
+                <set field="pflWarningMessageList" from-field="warningMessageList"/>
+            </actions>
+            <widgets>
+                <decorator-screen name="CommonFacilityDecorator">
+                    <decorator-section name="body">
+                        <platform-specific>
+                            <html><html-template location="component://product/webapp/facility/facility/PickMoveStock.ftl"/></html>
+                        </platform-specific>
+                    </decorator-section>
+                </decorator-screen>
+            </widgets>
+        </section>
+    </screen>
+
+    <screen name="PicklistReport.fo">
+        <section>
+            <actions>
+                <!-- base/top/specific map first, then more common map added for shared labels --> 
+                <property-map resource="ProductUiLabels" map-name="uiLabelMap" global="true"/>
+                <property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/>
+
+                <set field="picklistId" from-field="parameters.picklistId"/>
+                <service service-name="getPickAndPackReportInfo">
+                    <field-map env-name="picklistId"/>
+                </service>
+            </actions>
+            <widgets>
+                <platform-specific>
+                    <html><html-template location="component://product/webapp/facility/facility/Picklist.fo.ftl"/></html>
+                </platform-specific>
+            </widgets>
+        </section>
+    </screen>
 </screens>
 



More information about the Svn mailing list