[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> </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"> </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"> </div>
- </td>
- <td valign="top">
- <div class="tabletext"> </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"> </div>
- </#if>
- </td>
- <td valign="top">
- <#if product?has_content>
- <div class="tabletext">${product.internalName} [${product.productId}]</div>
- <#else>
- <div class="tabletext"> </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> </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"> </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> </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