Author: jacopoc
Date: Tue Dec 5 13:57:06 2006 New Revision: 482800 URL: http://svn.apache.org/viewvc?view=rev&rev=482800 Log: First commit of the "hhfacility" component a special purpose application for warehouse operations done using hand held devices. The application is still in a very initial stage, a lot of cleanups still need to be done, but it is a nice start. It has been contributed by Daniel Goodwin and Ray Barlow; see OFBIZ-226 for details. Daniel, Ray many thanks to both of you. Added: incubator/ofbiz/trunk/specialpurpose/hhfacility/ (with props) incubator/ofbiz/trunk/specialpurpose/hhfacility/build.xml (with props) incubator/ofbiz/trunk/specialpurpose/hhfacility/ofbiz-component.xml (with props) incubator/ofbiz/trunk/specialpurpose/hhfacility/script/ incubator/ofbiz/trunk/specialpurpose/hhfacility/script/org/ incubator/ofbiz/trunk/specialpurpose/hhfacility/script/org/ofbiz/ incubator/ofbiz/trunk/specialpurpose/hhfacility/script/org/ofbiz/hhfacility/ incubator/ofbiz/trunk/specialpurpose/hhfacility/script/org/ofbiz/hhfacility/FacilityServices.xml (with props) incubator/ofbiz/trunk/specialpurpose/hhfacility/servicedef/ incubator/ofbiz/trunk/specialpurpose/hhfacility/servicedef/services_hhfacility.xml (with props) incubator/ofbiz/trunk/specialpurpose/hhfacility/src/ incubator/ofbiz/trunk/specialpurpose/hhfacility/src/org/ incubator/ofbiz/trunk/specialpurpose/hhfacility/src/org/ofbiz/ incubator/ofbiz/trunk/specialpurpose/hhfacility/src/org/ofbiz/hhfacility/ incubator/ofbiz/trunk/specialpurpose/hhfacility/src/org/ofbiz/hhfacility/FacilityServices.java (with props) incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/ incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/ incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/WEB-INF/ incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/WEB-INF/actions/ incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/WEB-INF/controller.xml (with props) incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/error/ incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/error/error.jsp (with props) incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/facilities.ftl (with props) incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/forms/ incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/forms/FacilityForms.xml (with props) incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/includes/ incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/includes/header.ftl (with props) incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/includes/messages.ftl (with props) incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/index.jsp (with props) incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/main.ftl (with props) incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/menu.ftl (with props) incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/productstocktake.ftl (with props) incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/receipt.ftl (with props) incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/setFocusOnField.ftl (with props) incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/stocktake.ftl (with props) incubator/ofbiz/trunk/specialpurpose/hhfacility/widget/ incubator/ofbiz/trunk/specialpurpose/hhfacility/widget/hhfacility/ Modified: incubator/ofbiz/trunk/specialpurpose/build.xml incubator/ofbiz/trunk/specialpurpose/component-load.xml Modified: incubator/ofbiz/trunk/specialpurpose/build.xml URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/specialpurpose/build.xml?view=diff&rev=482800&r1=482799&r2=482800 ============================================================================== --- incubator/ofbiz/trunk/specialpurpose/build.xml (original) +++ incubator/ofbiz/trunk/specialpurpose/build.xml Tue Dec 5 13:57:06 2006 @@ -17,7 +17,7 @@ <project name="OFBiz Special Purpose Applications Build" default="build" basedir="."> <filelist id="application-builds" dir="." - files="pos/build.xml"/> + files="pos/build.xml, hhfacility/build.xml"/> <!-- ================================================================== --> <!-- Removes all created files and directories --> Modified: incubator/ofbiz/trunk/specialpurpose/component-load.xml URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/specialpurpose/component-load.xml?view=diff&rev=482800&r1=482799&r2=482800 ============================================================================== --- incubator/ofbiz/trunk/specialpurpose/component-load.xml (original) +++ incubator/ofbiz/trunk/specialpurpose/component-load.xml Tue Dec 5 13:57:06 2006 @@ -18,4 +18,5 @@ <component-loader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/component-loader.xsd"> <load-component component-location="${ofbiz.home}/specialpurpose/pos"/> + <load-component component-location="${ofbiz.home}/specialpurpose/hhfacility"/> </component-loader> Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/ ------------------------------------------------------------------------------ --- svn:ignore (added) +++ svn:ignore Tue Dec 5 13:57:06 2006 @@ -0,0 +1 @@ +build Added: incubator/ofbiz/trunk/specialpurpose/hhfacility/build.xml URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/specialpurpose/hhfacility/build.xml?view=auto&rev=482800 ============================================================================== --- incubator/ofbiz/trunk/specialpurpose/hhfacility/build.xml (added) +++ incubator/ofbiz/trunk/specialpurpose/hhfacility/build.xml Tue Dec 5 13:57:06 2006 @@ -0,0 +1,118 @@ +<?xml version="1.0"?> +<!-- +Copyright 2001-2006 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); you may not +use this file except in compliance with the License. You may obtain a copy of +the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +License for the specific language governing permissions and limitations +under the License. +--> + +<project name="OFBiz - HHFacility" default="jar" basedir="."> + + <!-- ================================================================== --> + <!-- Initialization of all property settings --> + <!-- ================================================================== --> + + <target name="init"> + <property environment="env"/> + <property name="desc" value="HHFacility Component"/> + <property name="name" value="ofbiz-hhfacility"/> + <property name="ofbiz.home.dir" value="../.."/> + <property name="src.dir" value="src"/> + <property name="build.dir" value="build"/> + </target> + + <target name="classpath"> + <path id="local.class.path"> + <fileset dir="../../framework/base/lib" includes="*.jar"/> + <fileset dir="../../framework/base/lib/commons" includes="*.jar"/> + <fileset dir="../../framework/base/lib/j2eespecs" includes="*.jar"/> + <fileset dir="../../framework/base/lib/scripting" includes="*.jar"/> + <fileset dir="../../framework/base/build/lib" includes="*.jar"/> + <fileset dir="../../framework/entity/lib" includes="*.jar"/> + <fileset dir="../../framework/entity/build/lib" includes="*.jar"/> + <fileset dir="../../framework/security/build/lib" includes="*.jar"/> + <fileset dir="../../framework/service/lib" includes="*.jar"/> + <fileset dir="../../framework/service/build/lib" includes="*.jar"/> + <fileset dir="../../framework/entityext/build/lib" includes="*.jar"/> + <fileset dir="../../framework/guiapp/lib" includes="*.jar"/> + <fileset dir="../../framework/guiapp/build/lib" includes="*.jar"/> + <fileset dir="../../framework/webapp/build/lib" includes="*.jar"/> + <fileset dir="../../applications/party/build/lib" includes="*.jar"/> + <fileset dir="../../applications/product/build/lib" includes="*.jar"/> + </path> + </target> + + <!-- ================================================================== --> + <!-- Removes all created files and directories --> + <!-- ================================================================== --> + + <target name="clean" depends="clean-lib"> + <delete dir="${build.dir}"/> + </target> + + <target name="clean-lib" depends="init"> + <delete dir="${build.dir}/lib"/> + </target> + + <!-- ================================================================== --> + <!-- Makes sure the needed directory structure is in place --> + <!-- ================================================================== --> + + <target name="prepare" depends="clean-lib"> + <mkdir dir="${build.dir}/classes"/> + <mkdir dir="${build.dir}/lib"/> + </target> + + <target name="prepare-docs" depends="init"> + <mkdir dir="${build.dir}/javadocs"/> + </target> + + <!-- ================================================================== --> + <!-- Compilation of the source files --> + <!-- ================================================================== --> + + <target name="classes" depends="prepare,classpath"> + <javac debug="on" source="1.4" deprecation="on" destdir="${build.dir}/classes"> + <classpath> + <path refid="local.class.path"/> + </classpath> + <src path="${src.dir}"/> + </javac> + <copy todir="${build.dir}/classes"> + <fileset dir="${src.dir}" includes="**/*.properties,**/*.xml,**/*.bsh,**/*.logic,**/*.js,**/*.jacl,**/*.py"/> + </copy> + + <!-- now add the NOTICE and LICENSE files to allow the jar file to be distributed alone --> + <copy todir="${build.dir}/classes/META-INF"> + <fileset dir="${ofbiz.home.dir}" includes="NOTICE,LICENSE"/> + </copy> + </target> + + <target name="jar" depends="classes"> + <jar jarfile="${build.dir}/lib/${name}.jar" basedir="${build.dir}/classes"/> + </target> + + <!-- ================================================================== --> + <!-- Build JavaDoc --> + <!-- ================================================================== --> + + <target name="docs" depends="prepare-docs,classpath"> + <javadoc packagenames="org.ofbiz.pos.*" + classpathref="local.class.path" + destdir="${build.dir}/javadocs" + Windowtitle="Open for Business - ${desc}"> + <sourcepath path="${src.dir}"/> + </javadoc> + </target> + + <target name="all" depends="jar,docs"/> +</project> Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/build.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/build.xml ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/build.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: incubator/ofbiz/trunk/specialpurpose/hhfacility/ofbiz-component.xml URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/specialpurpose/hhfacility/ofbiz-component.xml?view=auto&rev=482800 ============================================================================== --- incubator/ofbiz/trunk/specialpurpose/hhfacility/ofbiz-component.xml (added) +++ incubator/ofbiz/trunk/specialpurpose/hhfacility/ofbiz-component.xml Tue Dec 5 13:57:06 2006 @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + +Copyright 2003-2006 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); you may not +use this file except in compliance with the License. You may obtain a copy of +the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +License for the specific language governing permissions and limitations +under the License. +--> + +<ofbiz-component name="hhfacility" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/ofbiz-component.xsd"> + <resource-loader name="main" type="component"/> + <classpath type="dir" location="script"/> + <classpath type="jar" location="build/lib/*"/> + + <service-resource type="model" loader="main" location="servicedef/services_hhfacility.xml"/> + + <webapp name="hhfacility" title="Handheld Facility" server="default-server" location="webapp/hhfacility" + base-permission="OFBTOOLS,FACILITY" mount-point="/hhfacility"/> +</ofbiz-component> Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/ofbiz-component.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/ofbiz-component.xml ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/ofbiz-component.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: incubator/ofbiz/trunk/specialpurpose/hhfacility/script/org/ofbiz/hhfacility/FacilityServices.xml URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/specialpurpose/hhfacility/script/org/ofbiz/hhfacility/FacilityServices.xml?view=auto&rev=482800 ============================================================================== --- incubator/ofbiz/trunk/specialpurpose/hhfacility/script/org/ofbiz/hhfacility/FacilityServices.xml (added) +++ incubator/ofbiz/trunk/specialpurpose/hhfacility/script/org/ofbiz/hhfacility/FacilityServices.xml Tue Dec 5 13:57:06 2006 @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Copyright 2001-2006 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); you may not +use this file except in compliance with the License. You may obtain a copy of +the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +License for the specific language governing permissions and limitations +under the License. +--> + +<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/simple-methods.xsd"> + + <simple-method method-name="tc_ProductExists" short-description="Check Product Exists" login-required="false"> + <set from-field="parameters.productId" field="productIdMap.productId"/> + <find-by-primary-key entity-name="Product" map-name="productIdMap" value-name="product"/> + <if-not-empty field-name="product.productId"> + <log level="info" message="Found product ID ${parameters.productId}, "/> + <!-- <log level="info"><string value="Product Details are: "/><field field-name="product"/></log> --> + <return response-code="success"/> <!-- all done --> + </if-not-empty> + <if-empty field-name="product.productId"> + <log level="info" message="No product found for ID ${parameters.productId}, "/> + <add-error error-list-name="errorMessageList"><fail-message message="Product not found"/></add-error> + <return response-code="error"/> <!-- all done --> + </if-empty> + </simple-method> + + <simple-method method-name="tc_ReceiveProductQty" short-description="Receive Product to Facility" login-required="false"> + <log level="info" message="Receive product ${parameters.productId} qty ${parameters.qty} to location ${parameters.location} in facility ${parameters.facilityId} "/> + <now-timestamp-to-env env-name="nowTimestamp"/> + <clear-field field-name="receiveCtx"/> + <set from-field="parameters.facilityId" field="receiveCtx.facilityId"/> + <set from-field="parameters.productId" field="receiveCtx.productId"/> + <set from-field="parameters.productQty" field="receiveCtx.quantityAccepted"/> + <set from-field="parameters.productLocation" field="receiveCtx.locationSeqId"/> + <set value="hhFacility Receipt" field="receiveCtx.comments"/> + <set from-field="nowTimestamp" field="receiveCtx.datetimeReceived"/> + <set value="NON_SERIAL_INV_ITEM" field="receiveCtx.inventoryItemTypeId"/> + <calculate field-name="quantityRejected" map-name="receiveCtx" type="Double"> + <number value="0"/> + </calculate> + <call-service service-name="receiveInventoryProduct" in-map-name="receiveCtx"/> + </simple-method> + +</simple-methods> Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/script/org/ofbiz/hhfacility/FacilityServices.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/script/org/ofbiz/hhfacility/FacilityServices.xml ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/script/org/ofbiz/hhfacility/FacilityServices.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: incubator/ofbiz/trunk/specialpurpose/hhfacility/servicedef/services_hhfacility.xml URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/specialpurpose/hhfacility/servicedef/services_hhfacility.xml?view=auto&rev=482800 ============================================================================== --- incubator/ofbiz/trunk/specialpurpose/hhfacility/servicedef/services_hhfacility.xml (added) +++ incubator/ofbiz/trunk/specialpurpose/hhfacility/servicedef/services_hhfacility.xml Tue Dec 5 13:57:06 2006 @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Copyright 2001-2006 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); you may not +use this file except in compliance with the License. You may obtain a copy of +the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +License for the specific language governing permissions and limitations +under the License. +--> + +<services xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/services.xsd"> + <description>Handheld Facility Demo Services</description> + + <service name="tc_ProductExists" engine="simple" + location="org/ofbiz/hhfacility/FacilityServices.xml" invoke="tc_ProductExists"> + <description>Check Product exists</description> + <attribute name="productId" type="String" mode="IN" optional="false"/> + </service> + + <service name="tc_ReceiveProductQty" engine="simple" + location="org/ofbiz/hhfacility/FacilityServices.xml" invoke="tc_ReceiveProductQty"> + <description>Receive Product Qty to Facility</description> + <attribute name="facilityId" type="String" mode="IN" optional="false"/> + <attribute name="productId" type="String" mode="IN" optional="false"/> + <attribute name="productQty" type="Double" mode="IN" optional="false"/> + <attribute name="productLocation" type="String" mode="IN" optional="true"/> + </service> + + <service name="findProductsById" engine="java" + location="org.ofbiz.hhfacility.FacilityServices" invoke="findProductsById" auth="false"> + <description> + Returns a map of products based on either productId or SKU. + </description> + <attribute name="facilityId" type="String" mode="IN" optional="false"/> + <attribute name="idValue" type="String" mode="IN" optional="false"/> + <attribute name="productList" type="List" mode="OUT" optional="true"/> + </service> + + <service name="updateProductStocktake" engine="java" + location="org.ofbiz.hhfacility.FacilityServices" invoke="updateProductStocktake" auth="true"> + <description> + Pass this a productId, facilityId, locationSeqId and a desired QOH and it will adjust stock levels to match. + QOH is expected to be what you can see on the shelf. + Pass in locationSeqIdNew and all inventoryItems found with the above criteria will be moved to the new location. + </description> + <attribute name="facilityId" type="String" mode="IN" optional="false"/> + <attribute name="locationSeqId" type="String" mode="IN" optional="false"/> + <attribute name="productId" type="String" mode="IN" optional="false"/> + <attribute name="quantity" type="Double" mode="IN" optional="false"/> + <attribute name="locationSeqIdNew" type="String" mode="IN" optional="true"/> + </service> + + <service name="fixProductNegativeQOH" engine="java" + location="org.ofbiz.hhfacility.FacilityServices" invoke="fixProductNegativeQOH" auth="true"> + <description> + Pass this a productId, facilityId and it will check for negative QOH values and correct them to zero. + ATP will be adjusted the same amount but they may still leave it below zero which can realistically happen. + </description> + <attribute name="facilityId" type="String" mode="IN" optional="false"/> + <attribute name="productId" type="String" mode="IN" optional="false"/> + </service> + +</services> Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/servicedef/services_hhfacility.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/servicedef/services_hhfacility.xml ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/servicedef/services_hhfacility.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: incubator/ofbiz/trunk/specialpurpose/hhfacility/src/org/ofbiz/hhfacility/FacilityServices.java URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/specialpurpose/hhfacility/src/org/ofbiz/hhfacility/FacilityServices.java?view=auto&rev=482800 ============================================================================== --- incubator/ofbiz/trunk/specialpurpose/hhfacility/src/org/ofbiz/hhfacility/FacilityServices.java (added) +++ incubator/ofbiz/trunk/specialpurpose/hhfacility/src/org/ofbiz/hhfacility/FacilityServices.java Tue Dec 5 13:57:06 2006 @@ -0,0 +1,273 @@ +/* + * Copyright 2001-2006 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package org.ofbiz.hhfacility; + +import java.util.HashMap; +import java.util.Map; +import java.util.List; +import java.util.ArrayList; +import java.util.Iterator; + +import org.ofbiz.base.util.UtilValidate; +import org.ofbiz.base.util.GeneralRuntimeException; +import org.ofbiz.base.util.Debug; +import org.ofbiz.base.util.UtilMisc; +import org.ofbiz.entity.GenericDelegator; +import org.ofbiz.entity.GenericEntityException; +import org.ofbiz.entity.GenericValue; +import org.ofbiz.service.DispatchContext; +import org.ofbiz.service.GenericServiceException; +import org.ofbiz.service.LocalDispatcher; +import org.ofbiz.service.ServiceUtil; + +public class FacilityServices { + + public static final String module = FacilityServices.class.getName(); + + public static Map findProductsById(DispatchContext dctx, Map context) { + GenericDelegator delegator = dctx.getDelegator(); + String facilityId = (String) context.get("facilityId"); + String idValue = (String) context.get("idValue"); + GenericValue product = null; + List productsFound = null; + + GenericValue productItem = null; + if (UtilValidate.isNotEmpty(idValue)) { + // First lets find the productId from the Sku(s) + try { + productsFound = delegator.findByAnd("GoodIdentificationAndProduct", + UtilMisc.toMap("idValue", idValue), UtilMisc.toList("productId")); + } catch (GenericEntityException e) { + Debug.logError(e, module); + throw new GeneralRuntimeException(e.getMessage()); + } + } + + // Now do a direct lookup.. + productItem = null; + try { + productItem = delegator.findByPrimaryKey("Product", UtilMisc.toMap("productId", idValue)); + } catch (GenericEntityException e) { + Debug.logError(e, module); + throw new GeneralRuntimeException(e.getMessage()); + } + if (productItem != null) { + if (productsFound == null) { + productsFound = new ArrayList(); + } + productsFound.add(productItem); + } + + // Send back the results + Map result = ServiceUtil.returnSuccess(); + if (productsFound != null && productsFound.size() > 0) { + result.put("productList", productsFound); + } + return result; + } + + public static Map fixProductNegativeQOH(DispatchContext dctx, Map context) { + GenericDelegator delegator = dctx.getDelegator(); + LocalDispatcher dispatcher = dctx.getDispatcher(); + + String facilityId = (String) context.get("facilityId"); + String productId = (String) context.get("productId"); + GenericValue userLogin = (GenericValue) context.get("userLogin"); + + // Now we build a list of inventory items against the facility and product. + // todo: change this to a select from inv_items where productId and facilityId matches distinct (locationSeqId). + List invItemList = null; + try { + invItemList = delegator.findByAnd("InventoryItem", + UtilMisc.toMap("productId", productId, "facilityId", facilityId)); + } catch (GenericEntityException e) { + Debug.logError(e, module); + throw new GeneralRuntimeException(e.getMessage()); + } + + Map locations = new HashMap(); + Iterator invItemListIter = invItemList.iterator(); + while (invItemListIter.hasNext()) { + GenericValue invItem = (GenericValue)invItemListIter.next(); + if ( invItem != null) { + int qoh = ((Double)invItem.get("quantityOnHandTotal")).intValue(); + + if ( qoh < 0 ) { + // Got a negative qoh so lets balance if off to zero. + Map contextInput = UtilMisc.toMap("userLogin", userLogin, "inventoryItemId", invItem.get("inventoryItemId"), + "varianceReasonId", "VAR_LOST", "availableToPromiseVar", new Double(qoh*-1), + "quantityOnHandVar", new Double(qoh*-1), "comments", "QOH < 0 stocktake correction"); + try { + dispatcher.runSync("createPhysicalInventoryAndVariance",contextInput); + } catch (GenericServiceException e) { + Debug.logError(e, "fixProductNegativeQOH failed on createPhysicalInventoryAndVariance invItemId"+invItem.get("inventoryItemId"), module); + return ServiceUtil.returnError("fixProductNegativeQOH failed on createPhysicalInventoryAndVariance invItemId"+invItem.get("inventoryItemId")); + } + } + } + } + Map result = ServiceUtil.returnSuccess(); + return result; + } + + public static Map updateProductStocktake(DispatchContext dctx, Map context) { + GenericDelegator delegator = dctx.getDelegator(); + LocalDispatcher dispatcher = dctx.getDispatcher(); + + String facilityId = (String) context.get("facilityId"); + String productId = (String) context.get("productId"); + String locationSeqId = (String) context.get("locationSeqId"); + String locationSeqIdNew = (String) context.get("locationSeqIdNew"); + Double quantity = (Double) context.get("quantity"); + if ( UtilValidate.isEmpty(productId) || UtilValidate.isEmpty(facilityId) ) { + return ServiceUtil.returnError("productId or facilityId not found"); + } + + // First identify the location and get a list of inventoryItemIds for that location. + if ( UtilValidate.isEmpty(locationSeqId) ) { + // Assume this is the null field version + locationSeqId = "nullField"; + } + + // Get the current atp/qoh values for the location(s). + Map contextInput = UtilMisc.toMap("productId",productId, "facilityId", facilityId, "locationSeqId", locationSeqId); + Map invAvailability = null; + try { + invAvailability = dispatcher.runSync("getInventoryAvailableByLocationSeq",contextInput); + } catch (GenericServiceException e) { + Debug.logError(e, "updateProductStocktake failed getting inventory counts", module); + return ServiceUtil.returnError("updateProductStocktake failed getting inventory counts"); + } + int atp = ((Double)invAvailability.get("availableToPromiseTotal")).intValue(); + int qoh = ((Double)invAvailability.get("quantityOnHandTotal")).intValue(); + if ( quantity.intValue() == qoh ) { + // No change required. + Debug.logInfo("updateProductStocktake No change required quantity("+quantity+") = qoh("+qoh+")", module); + return ServiceUtil.returnSuccess(); + } + + // Now get the inventory items that are found for that location, facility and product + List invItemList = null; + try { + invItemList = delegator.findByAnd("InventoryItem", + UtilMisc.toMap("productId", productId, "facilityId", facilityId, "locationSeqId", locationSeqId)); + } catch (GenericEntityException e) { + Debug.logError(e, "updateProductStocktake failed getting inventory items", module); + return ServiceUtil.returnError("updateProductStocktake failed getting inventory items"); + } + + Iterator invItemListIter = invItemList.iterator(); + while (invItemListIter.hasNext()) { + GenericValue invItem = (GenericValue)invItemListIter.next(); + String locationFound = invItem.getString("locationSeqId"); + Debug.logInfo("updateProductStocktake: InvItemId("+invItem.getString("inventoryItemId")+")", module); + if ( locationFound == null ) { + locationFound = "nullField"; + } + } + // Check if there is a request to change the locationSeqId + GenericValue product = null; + try { + Map resultOutput = dispatcher.runSync("getInventoryAvailableByFacility", UtilMisc.toMap("productId", productId, + "facilityId", facilityId)); + } catch (GenericServiceException e) { + Debug.logError(e, module); + return ServiceUtil.returnError("Inventory atp/qoh lookup problem [" + e.getMessage() + "]"); + } + +/* + try { + inventoryTransfer = delegator.findByPrimaryKey("InventoryTransfer", + UtilMisc.toMap("inventoryTransferId", inventoryTransferId)); + inventoryItem = inventoryTransfer.getRelatedOne("InventoryItem"); + destinationFacility = inventoryTransfer.getRelatedOne("ToFacility"); + } catch (GenericEntityException e) { + return ServiceUtil.returnError("Inventory Item/Transfer lookup problem [" + e.getMessage() + "]"); + } + + if (inventoryTransfer == null || inventoryItem == null) { + return ServiceUtil.returnError("ERROR: Lookup of InventoryTransfer and/or InventoryItem failed!"); + } + + String inventoryType = inventoryItem.getString("inventoryItemTypeId"); + + // set the fields on the transfer record + if (inventoryTransfer.get("receiveDate") == null) { + inventoryTransfer.set("receiveDate", UtilDateTime.nowTimestamp()); + } + + if (inventoryType.equals("NON_SERIAL_INV_ITEM")) { + // add an adjusting InventoryItemDetail so set ATP back to QOH: ATP = ATP + (QOH - ATP), diff = QOH - ATP + double atp = inventoryItem.get("availableToPromiseTotal") == null ? 0 : inventoryItem.getDouble("availableToPromiseTotal").doubleValue(); + double qoh = inventoryItem.get("quantityOnHandTotal") == null ? 0 : inventoryItem.getDouble("quantityOnHandTotal").doubleValue(); + Map createDetailMap = UtilMisc.toMap("availableToPromiseDiff", new Double(qoh - atp), + "inventoryItemId", inventoryItem.get("inventoryItemId"), "userLogin", userLogin); + try { + Map result = dctx.getDispatcher().runSync("createInventoryItemDetail", createDetailMap); + if (ServiceUtil.isError(result)) { + return ServiceUtil.returnError("Inventory Item Detail create problem in complete inventory transfer", null, null, result); + } + } catch (GenericServiceException e1) { + return ServiceUtil.returnError("Inventory Item Detail create problem in complete inventory transfer: [" + e1.getMessage() + "]"); + } + try { + inventoryItem.refresh(); + } catch (GenericEntityException e) { + return ServiceUtil.returnError("Inventory refresh problem [" + e.getMessage() + "]"); + } + } else if (inventoryType.equals("SERIALIZED_INV_ITEM")) { + inventoryItem.set("statusId", "INV_AVAILABLE"); + } + + // set the fields on the item + Map updateInventoryItemMap = UtilMisc.toMap("inventoryItemId", inventoryItem.getString("inventoryItemId"), + "facilityId", inventoryTransfer.get("facilityIdTo"), + "containerId", inventoryTransfer.get("containerIdTo"), + "locationSeqId", inventoryTransfer.get("locationSeqIdTo"), + "userLogin", userLogin); + // if the destination facility's owner is different + // from the inventory item's ownwer, + // the inventory item is assigned to the new owner. + if (destinationFacility != null && destinationFacility.get("ownerPartyId") != null) { + String fromPartyId = inventoryItem.getString("ownerPartyId"); + String toPartyId = destinationFacility.getString("ownerPartyId"); + if (fromPartyId == null || !fromPartyId.equals(toPartyId)) { + updateInventoryItemMap.put("ownerPartyId", toPartyId); + } + } + try { + Map result = dctx.getDispatcher().runSync("updateInventoryItem", updateInventoryItemMap); + if (ServiceUtil.isError(result)) { + return ServiceUtil.returnError("Inventory item store problem", null, null, result); + } + } catch (GenericServiceException exc) { + return ServiceUtil.returnError("Inventory item store problem [" + exc.getMessage() + "]"); + } + + // set the inventory transfer record to complete + inventoryTransfer.set("statusId", "IXF_COMPLETE"); + + // store the entities + try { + inventoryTransfer.store(); + } catch (GenericEntityException e) { + return ServiceUtil.returnError("Inventory store problem [" + e.getMessage() + "]"); + } + */ + return ServiceUtil.returnSuccess(); + } +} Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/src/org/ofbiz/hhfacility/FacilityServices.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/src/org/ofbiz/hhfacility/FacilityServices.java ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/src/org/ofbiz/hhfacility/FacilityServices.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/WEB-INF/controller.xml URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/WEB-INF/controller.xml?view=auto&rev=482800 ============================================================================== --- incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/WEB-INF/controller.xml (added) +++ incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/WEB-INF/controller.xml Tue Dec 5 13:57:06 2006 @@ -0,0 +1,190 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Copyright 2001-2006 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); you may not +use this file except in compliance with the License. You may obtain a copy of +the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +License for the specific language governing permissions and limitations +under the License. +--> + +<site-conf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/site-conf.xsd"> + <description>Facility Handheld Demo</description> + <owner>Copyright 2001-2006 The Apache Software Foundation</owner> + <errorpage>/error/error.jsp</errorpage> + + <handler name="java" type="request" class="org.ofbiz.webapp.event.JavaEventHandler"/> + <handler name="bsf" type="request" class="org.ofbiz.webapp.event.BsfEventHandler"/> + <handler name="soap" type="request" class="org.ofbiz.webapp.event.SOAPEventHandler"/> + <handler name="service" type="request" class="org.ofbiz.webapp.event.ServiceEventHandler"/> + <handler name="service-multi" type="request" class="org.ofbiz.webapp.event.ServiceMultiEventHandler"/> + <handler name="simple" type="request" class="org.ofbiz.webapp.event.SimpleEventHandler"/> + + <!-- view handlers --> + <handler name="screen" type="view" class="org.ofbiz.widget.screen.ScreenWidgetViewHandler"/> + + <handler name="ftl" type="view" class="org.ofbiz.webapp.ftl.FreeMarkerViewHandler"/> + <handler name="jsp" type="view" class="org.ofbiz.webapp.view.JspViewHandler"/> + <handler name="http" type="view" class="org.ofbiz.webapp.view.HttpViewHandler"/> + + <!-- Events to run on every request before security (chains exempt) --> + <preprocessor> + <!-- Events to run on every request before security (chains exempt) --> + <!-- <event type="java" path="org.ofbiz.webapp.event.TestEvent" invoke="test"/> --> + <event type="java" path="org.ofbiz.webapp.control.LoginWorker" invoke="checkExternalLoginKey"/> + </preprocessor> + <postprocessor> + <!-- Events to run on every request after all other processing (chains exempt) --> + <!-- <event type="java" path="org.ofbiz.webapp.event.TestEvent" invoke="test"/> --> + </postprocessor> + + <!-- Security Mappings --> + <request-map uri="checkLogin" edit="false"> + <description>Verify a user is logged in.</description> + <security https="true" auth="false"/> + <event type="java" path="org.ofbiz.webapp.control.LoginWorker" invoke="checkLogin" /> + <response name="success" type="view" value="main" /> + <response name="error" type="view" value="login" /> + </request-map> + + <request-map uri="login"> + <security https="true" auth="false"/> + <event type="java" path="org.ofbiz.webapp.control.LoginWorker" invoke="login"/> + <response name="success" type="view" value="main"/> + <response name="error" type="view" value="login"/> + </request-map> + + <request-map uri="logout"> + <security https="true" auth="true"/> + <event type="java" path="org.ofbiz.webapp.control.LoginWorker" invoke="logout"/> + <response name="success" type="request" value="checkLogin"/> + <response name="error" type="view" value="main"/> + </request-map> + <!-- End of Security Mappings --> + + + <!-- Request Mappings --> + <request-map uri="main"> + <security https="true" auth="true"/> + <response name="success" type="view" value="main"/> + </request-map> + <request-map uri="receipt"> + <security https="true" auth="true"/> + <response name="success" type="view" value="receipt"/> + </request-map> + <request-map uri="poreceipt"> + <security https="true" auth="true"/> + <response name="success" type="view" value="poreceipt"/> + </request-map> + <request-map uri="productreceipt"> + <security https="true" auth="true"/> + <response name="success" type="view" value="productreceipt"/> + </request-map> + <request-map uri="movement"> + <security https="true" auth="true"/> + <response name="success" type="view" value="movement"/> + </request-map> + <request-map uri="picking"> + <security https="true" auth="true"/> + <response name="success" type="view" value="picking"/> + </request-map> + <request-map uri="packing"> + <security https="true" auth="true"/> + <response name="success" type="view" value="packing"/> + </request-map> + + <request-map uri="stocktake"> + <security https="true" auth="true"/> + <response name="success" type="view" value="stocktake"/> + </request-map> + <request-map uri="findstocktake"> + <security https="true" auth="true"/> + <event type="java" path="org.ofbiz.hhfacility.FacilitySession" invoke="findProductsById"/> + <response name="success" type="view" value="stocktake"/> + </request-map> + + <request-map uri="menu"> + <security https="true" auth="true"/> + <response name="success" type="view" value="menu"/> + </request-map> + <request-map uri="facilities"> + <security https="true" auth="true"/> + <response name="success" type="view" value="facilities"/> + </request-map> + + <!-- these requests correspond to POSTs of forms and call services to do their work. + OFBiz automatically parses form fields to service inputs. + User can be re-directed to other requests or views after the service is called. + The re-direct can depend on if the service succeeded or failed. --> + <request-map uri="polinereceipt"> + <security https="true" auth="true"/> + <!-- <event type="service" invoke="tc_POExists"/> --> + <response name="success" type="view" value="linereceipt"/> + <response name="error" type="view" value="poreceipt"/> + </request-map> + + + <request-map uri="productqtyreceipt"> + <security https="true" auth="true"/> + <event type="service" invoke="tc_ProductExists"/> + <response name="success" type="view" value="qtyreceipt"/> + <response name="error" type="view" value="productreceipt"/> + </request-map> + + <request-map uri="receiveproductqty"> + <security https="true" auth="true"/> + <event type="service" invoke="tc_ReceiveProductQty"/> + <response name="success" type="view" value="productreceipt"/> + <response name="error" type="view" value="qtyreceipt"/> + </request-map> + + <request-map uri="productstocktake"> + <security https="true" auth="true"/> + <response name="success" type="view" value="productstocktake"/> + <response name="error" type="view" value="productstocktake"/> + </request-map> + + <request-map uri="updateproductstocktake"> + <security https="true" auth="true"/> + <event type="service" invoke="updateProductStocktake"/> + <response name="success" type="view" value="productstocktake"/> + <response name="error" type="view" value="productstocktake"/> + </request-map> + + <request-map uri="fixproductnegativeqoh"> + <security https="true" auth="true"/> + <event type="service" invoke="fixProductNegativeQOH"/> + <response name="success" type="view" value="productstocktake"/> + <response name="error" type="view" value="productstocktake"/> + </request-map> + + <!-- end of request mappings --> + + <!-- View Mappings --> + <view-map name="error" type="jsp" page="/error/error.jsp"/> + <view-map name="main" type="screen" page="component://hhfacility/widget/hhfacility/FacilityScreens.xml#main"/> + <view-map name="login" type="screen" page="component://hhfacility/widget/hhfacility/FacilityScreens.xml#login"/> + + <view-map name="receipt" type="screen" page="component://hhfacility/widget/hhfacility/FacilityScreens.xml#receipt"/> + <view-map name="poreceipt" type="screen" page="component://hhfacility/widget/hhfacility/FacilityScreens.xml#poreceipt"/> + <view-map name="linereceipt" type="screen" page="component://hhfacility/widget/hhfacility/FacilityScreens.xml#linereceipt"/> + <view-map name="productreceipt" type="screen" page="component://hhfacility/widget/hhfacility/FacilityScreens.xml#productreceipt"/> + <view-map name="qtyreceipt" type="screen" page="component://hhfacility/widget/hhfacility/FacilityScreens.xml#qtyreceipt"/> + <view-map name="movement" type="screen" page="component://hhfacility/widget/hhfacility/FacilityScreens.xml#movement"/> + <view-map name="picking" type="screen" page="component://hhfacility/widget/hhfacility/FacilityScreens.xml#picking"/> + <view-map name="stocktake" type="screen" page="component://hhfacility/widget/hhfacility/FacilityScreens.xml#stocktake"/> + <view-map name="packing" type="screen" page="component://hhfacility/widget/hhfacility/FacilityScreens.xml#packing"/> + <view-map name="facilities" type="screen" page="component://hhfacility/widget/hhfacility/FacilityScreens.xml#facilities"/> + <view-map name="menu" type="screen" page="component://hhfacility/widget/hhfacility/FacilityScreens.xml#menu"/> + + <view-map name="productstocktake" type="screen" page="component://hhfacility/widget/hhfacility/FacilityScreens.xml#productstocktake"/> + <!-- end of view mappings --> +</site-conf> Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/WEB-INF/controller.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/WEB-INF/controller.xml ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/WEB-INF/controller.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/error/error.jsp URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/error/error.jsp?view=auto&rev=482800 ============================================================================== --- incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/error/error.jsp (added) +++ incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/error/error.jsp Tue Dec 5 13:57:06 2006 @@ -0,0 +1,50 @@ +<%-- +Copyright 2001-2006 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); you may not +use this file except in compliance with the License. You may obtain a copy of +the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +License for the specific language governing permissions and limitations +under the License. +--%> + +<%@ page import="org.ofbiz.base.util.*" %> +<html> +<head> +<title>Open For Business Message</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<% String errorMsg = (String) request.getAttribute("_ERROR_MESSAGE_"); %> + +<body bgcolor="#FFFFFF"> +<div align="center"> + <br/> + <table width="100%" border="1" height="200"> + <tr> + <td> + <table width="100%" border="0" height="200"> + <tr bgcolor="#CC6666"> + <td height="45"> + <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="4" color="#FFFFFF"><b>:ERROR MESSAGE:</b></font></div> + </td> + </tr> + <tr> + <td> + <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><%=UtilFormatOut.replaceString(errorMsg, "\n", "<br/>")%></font></div> + </td> + </tr> + </table> + </td> + </tr> + </table> +</div> +<div align="center"></div> +</body> +</html> Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/error/error.jsp ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/error/error.jsp ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/facilities.ftl URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/facilities.ftl?view=auto&rev=482800 ============================================================================== --- incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/facilities.ftl (added) +++ incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/facilities.ftl Tue Dec 5 13:57:06 2006 @@ -0,0 +1,25 @@ +<#-- +Copyright 2001-2006 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); you may not +use this file except in compliance with the License. You may obtain a copy of +the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +License for the specific language governing permissions and limitations +under the License. +--> + +<#if facilities?has_content> +Facilities : +<ul> + <#list facilities as facility> + <li> ${facility.facilityId?if_exists} ${facility.facilityName?if_exists} ${facility.description?if_exists} + + </#list> +</ul> +</#if> \ No newline at end of file Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/facilities.ftl ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/facilities.ftl ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/facilities.ftl ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/forms/FacilityForms.xml URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/forms/FacilityForms.xml?view=auto&rev=482800 ============================================================================== --- incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/forms/FacilityForms.xml (added) +++ incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/forms/FacilityForms.xml Tue Dec 5 13:57:06 2006 @@ -0,0 +1,109 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Copyright 2001-2006 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); you may not +use this file except in compliance with the License. You may obtain a copy of +the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +License for the specific language governing permissions and limitations +under the License. +--> + +<forms xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/widget-form.xsd"> + + <form name="ListFacilities" type="list" list-name="facilities" paginate-target="main" + default-title-style="tableheadtext" default-widget-style="tabletext" default-tooltip-style="tabletext"> + <actions> + <entity-condition entity-name="Facility"> + <order-by field-name="description"/> + </entity-condition> + </actions> + + <field name="facilityId" title="ID" widget-style="buttontext"> + <hyperlink also-hidden="false" description="${facilityId}" target="menu?facilityId=${facilityId}"/> + </field> + <field name="facilityName" title="Name"><display/></field> + <field name="description" title="Description"><display/></field> + </form> + + <!-- this form posts to "polinereceipt" (see controller.xml) --> + <form name="POEnter" type="single" target="polinereceipt" + default-title-style="tableheadtext" default-widget-style="tabletext" default-tooltip-style="tabletext"> + <field name="facilityId"><hidden/></field> + <field name="OrderId" required-field="true" title="PO Number"><text size="10"/></field> + <field name="submitButton" title="Next" widget-style="standardSubmit"><submit button-type="button"/></field> + </form> + + <!-- this form posts to "productqtyreceipt" (see controller.xml) --> + <form name="ProductEnter" type="single" target="productqtyreceipt" + default-title-style="tableheadtext" default-widget-style="tabletext" default-tooltip-style="tabletext"> + <field name="facilityId"><hidden/></field> + <field name="productId" required-field="true" title="Product ID" ><text size="10" default-value=""/></field> + <field name="submitButton" title="Next" widget-style="standardSubmit"><submit button-type="button"/></field> + </form> + + <!-- this form posts to "receiveproductqty" (see controller.xml) --> + <form name="ProductQtyEnter" type="single" target="receiveproductqty" + default-title-style="tableheadtext" default-widget-style="tabletext" default-tooltip-style="tabletext"> + <field name="facilityId"><hidden/></field> + <field name="productId"><hidden/></field> + <field name="productId" title="Product" entry-name="product.productId" ><display/></field> + <field name="productName" title=" " entry-name="product.productName" ><display/></field> + <field name="productLocation" title="Location" event="onkeypress" action="return enter(event,document.forms[0].productQty)"><text size="10"/></field> + <field name="productQty" required-field="true" title="Qty" ><text default-value="1" size="5"/></field> + <field name="submitButton" title="Receive" widget-style="standardSubmit"><submit button-type="button"/></field> + </form> + + <!-- this form posts to "findstocktake" (see controller.xml) --> + <form name="FindProductStock" type="single" target="findstocktake" + default-title-style="tableheadtext" default-widget-style="tabletext" default-tooltip-style="tabletext"> + <field name="facilityId"><hidden/></field> + <field name="idValue" required-field="true" title="ID Value" ><text size="10" default-value=""/></field> + <field name="submitButton" title="Next" widget-style="standardSubmit"><submit button-type="button"/></field> + </form> + + <form name="ProductStocktake" type="single" target="updateproductstocktake" + default-title-style="tableheadtext" default-widget-style="tabletext" default-tooltip-style="tabletext"> + <field name="facilityId"><hidden/></field> + <field name="productId" title="Product"><display/></field> + <field name="productName" title="Name" entry-name="product.productName"><display/></field> + <field name="atp_qoh" title="ATP/QOH" entry-name="quantitySummary.atp_qoh"><display/></field> + <field name="locationSeqId" title="Location" entry-name="locationSeqId"><display/></field> + <!--<field name="submitButton" title="Submit" widget-style="standardSubmit"><submit button-type="button"/></field>--> + </form> + <form name="UpdateProductStocktake" type="list" + target="updateproductstocktake" title="" list-name="productQtyByLocations" + default-title-style="tableheadtext" default-widget-style="inputBox" default-tooltip-style="tabletext"> + <!-- <auto-fields-service service-name="updateproductstocktake"/> --> + <field name="productId"><hidden/></field> + <field name="facilityId"><hidden/></field> + <field name="atp_qoh" title="ATP/QOH" entry-name="atp_qoh"><display/></field> + <field name="locationSeqId"><hidden/></field> + <field name="locationSeqIdNew" title="Location" entry-name="locationSeqId"><text size="10" default-value=""/></field> + <field name="quantity" title="Quantity" required-field="true" entry-name="totalQuantityOnHand"><text size="6" default-value=""/></field> + <field name="submitButton" title="Update" widget-style="smallSubmit"><submit button-type="button"/></field> + <field name="deleteLink" title="" widget-style="buttontext"> + <hyperlink target="removeProductFromCategory?productId=${productId}&productCategoryId=${productCategoryId}&fromDate=${fromDate}" + description="${uiLabelMap.CommonDelete}" also-hidden="false"/> + </field> + </form> + + <form name="MainMenu" type="single" target="menu"> + <field name="facilityId"><hidden/></field> + <field name="m1" title="Facility : ${facilityId}" position="1"><display/></field> + <field name="receipt" title="1. Goods Receipt"> + <submit button-type="text-link"/> + </field> + <field name="picking" title="2. Picking" position="1"> + <submit button-type="text-link"/> + </field> + </form> + +</forms> Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/forms/FacilityForms.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/forms/FacilityForms.xml ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: incubator/ofbiz/trunk/specialpurpose/hhfacility/webapp/hhfacility/forms/FacilityForms.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: incubator/ofbiz/trunk/specialpurpose/hhfacility |
Free forum by Nabble | Edit this page |