Author: sichen
Date: Fri Jan 26 09:37:11 2007 New Revision: 500287 URL: http://svn.apache.org/viewvc?view=rev&rev=500287 Log: OFBIZ-654: Approved product requirements by vendor screen. This is an interesting screen as it uses two view entities chained together to perform a two-level query. One view entity is a subquery to group requirements, the next one calls it and counts the results. Added: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/requirement/ ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/requirement/ApprovedProductRequirementsByVendor.bsh Modified: ofbiz/trunk/applications/order/config/OrderUiLabels.properties ofbiz/trunk/applications/order/entitydef/entitygroup.xml ofbiz/trunk/applications/order/entitydef/entitymodel_view.xml ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml ofbiz/trunk/applications/order/webapp/ordermgr/requirement/RequirementForms.xml ofbiz/trunk/applications/order/webapp/ordermgr/requirement/RequirementsTabBar.ftl ofbiz/trunk/applications/order/widget/ordermgr/RequirementScreens.xml Modified: ofbiz/trunk/applications/order/config/OrderUiLabels.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/config/OrderUiLabels.properties?view=diff&rev=500287&r1=500286&r2=500287 ============================================================================== --- ofbiz/trunk/applications/order/config/OrderUiLabels.properties (original) +++ ofbiz/trunk/applications/order/config/OrderUiLabels.properties Fri Jan 26 09:37:11 2007 @@ -143,6 +143,7 @@ OrderApproveRequirements=Approve Requirements OrderApproved=Approved OrderApprovedProductRequirements=Approved Product Requirements +OrderApprovedProductRequirementsByVendor=Approved Requirements By Vendor OrderAutoCreateQuoteAdjustments=Auto Create Adjustments OrderAvs=AVS OrderBackOrdered=Backordered @@ -403,6 +404,7 @@ OrderPlannedInReceive=Received quantity OrderPlannedInShipment=Planned in Shipment OrderPlannedRejected=Rejected quantity +OrderPrepareOrder=Prepare Order OrderPrice=Price OrderPrintableNote=Public Note (Printed) OrderProcessingInActive=This order is currently in a 'Active' state. @@ -564,6 +566,7 @@ OrderValuePurchase=Value Purch OrderValueSold=Value Sold OrderViewEditDeliveryScheduleInfo=View/Edit Delivery Schedule Info +OrderVendorRequirementCount=# Products OrderViewImage=View Image OrderViewOrder=View Order OrderViewPermissionError=You do not have permission to view this page. Modified: ofbiz/trunk/applications/order/entitydef/entitygroup.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/entitydef/entitygroup.xml?view=diff&rev=500287&r1=500286&r2=500287 ============================================================================== --- ofbiz/trunk/applications/order/entitydef/entitygroup.xml (original) +++ ofbiz/trunk/applications/order/entitydef/entitygroup.xml Fri Jan 26 09:37:11 2007 @@ -148,6 +148,8 @@ <entity-group group="org.ofbiz" entity="RequirementAttribute" /> <entity-group group="org.ofbiz" entity="RequirementBudgetAllocation" /> <entity-group group="org.ofbiz" entity="RequirementByProductFacility" /> + <entity-group group="org.ofbiz" entity="RequirementPartyProductCountSubquery" /> + <entity-group group="org.ofbiz" entity="RequirementPartyProductCount" /> <entity-group group="org.ofbiz" entity="RequirementCustRequest" /> <entity-group group="org.ofbiz" entity="RequirementCustRequestView" /> <entity-group group="org.ofbiz" entity="RequirementRole" /> Modified: ofbiz/trunk/applications/order/entitydef/entitymodel_view.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/entitydef/entitymodel_view.xml?view=diff&rev=500287&r1=500286&r2=500287 ============================================================================== --- ofbiz/trunk/applications/order/entitydef/entitymodel_view.xml (original) +++ ofbiz/trunk/applications/order/entitydef/entitymodel_view.xml Fri Jan 26 09:37:11 2007 @@ -1292,6 +1292,36 @@ <alias entity-alias="RQ" name="facilityId" group-by="true"/> <alias entity-alias="RQ" name="quantity" function="sum"/> </view-entity> + <!-- Note how we chain the next two view entities to simulate a subquery operation --> + <view-entity entity-name="RequirementPartyProductCountSubquery" + package-name="org.ofbiz.order.request" + title="A subquery of RequirementPartyProductCount. Not intended for direct use."> + <member-entity entity-alias="RQ" entity-name="Requirement"/> + <member-entity entity-alias="RQR" entity-name="RequirementRole"/> + <alias entity-alias="RQ" name="requirementTypeId" group-by="true"/> + <alias entity-alias="RQ" name="statusId" group-by="true"/> + <alias entity-alias="RQ" name="productId" group-by="true"/> + <alias entity-alias="RQR" name="partyId" group-by="true"/> + <alias entity-alias="RQR" name="roleTypeId" group-by="true"/> + <alias entity-alias="RQR" name="fromDate" group-by="false"/> + <alias entity-alias="RQR" name="thruDate" group-by="false"/> + <view-link entity-alias="RQ" rel-entity-alias="RQR"> + <key-map field-name="requirementId"/> + </view-link> + </view-entity> + <view-entity entity-name="RequirementPartyProductCount" + package-name="org.ofbiz.order.request" + title="Reports number of distinct product requirements per party."> + <member-entity entity-alias="R" entity-name="RequirementPartyProductCountSubquery"/> + <alias entity-alias="R" name="requirementTypeId" group-by="true"/> + <alias entity-alias="R" name="statusId" group-by="true"/> + <alias entity-alias="R" name="productId" function="count"/> + <alias entity-alias="R" name="partyId" group-by="true"/> + <alias entity-alias="R" name="roleTypeId" group-by="true"/> + <alias entity-alias="R" name="fromDate" group-by="false"/> + <alias entity-alias="R" name="thruDate" group-by="false"/> + </view-entity> + <!-- ========================================================= --> <!-- org.ofbiz.order.opportunity --> Added: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/requirement/ApprovedProductRequirementsByVendor.bsh URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/requirement/ApprovedProductRequirementsByVendor.bsh?view=auto&rev=500287 ============================================================================== --- ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/requirement/ApprovedProductRequirementsByVendor.bsh (added) +++ ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/requirement/ApprovedProductRequirementsByVendor.bsh Fri Jan 26 09:37:11 2007 @@ -0,0 +1,42 @@ +/* + * + * 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. + */ + +// Gets an entity list iterator of product requirements by vendor. +// This report requires a two-level query: one subquery to merge the +// requirements with the same productId (grouped by partyId), another +// to count the products required by the partyId. This is modeled with two +// view entitities chained together, RequirementByPartyCount and +// ProductRequirementCount (see order entitymodel_view.xml). + +import org.ofbiz.base.util.UtilMisc; +import org.ofbiz.entity.*; +import org.ofbiz.entity.util.*; +import org.ofbiz.entity.condition.*; + +delegator = request.getAttribute("delegator"); + +fields = UtilMisc.toList("partyId", "productId"); +options = new EntityFindOptions(true, EntityFindOptions.TYPE_SCROLL_INSENSITIVE, EntityFindOptions.CONCUR_READ_ONLY, true); +orderBy = UtilMisc.toList("partyId"); +conditions = new EntityConditionList( UtilMisc.toList( + new EntityExpr("roleTypeId", EntityOperator.EQUALS, "SUPPLIER"), + new EntityExpr("statusId", EntityOperator.EQUALS, "REQ_APPROVED"), + new EntityExpr("requirementTypeId", EntityOperator.EQUALS, "PRODUCT_REQUIREMENT"), + EntityUtil.getFilterByDateExpr() + ), EntityOperator.AND); +requirements = delegator.findListIteratorByCondition("RequirementPartyProductCount", conditions, null, fields, orderBy, options); +context.put("requirements", requirements); Modified: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml?view=diff&rev=500287&r1=500286&r2=500287 ============================================================================== --- ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml (original) +++ ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml Fri Jan 26 09:37:11 2007 @@ -1050,6 +1050,14 @@ <security https="true" auth="true"/> <response name="success" type="view" value="ApprovedProductRequirementsReport"/> </request-map> + <request-map uri="ApprovedProductRequirementsByVendor"> + <security https="true" auth="true"/> + <response name="success" type="view" value="ApprovedProductRequirementsByVendor"/> + </request-map> + <request-map uri="ApprovedProductRequirementsByVendorReport"> + <security https="true" auth="true"/> + <response name="success" type="view" value="ApprovedProductRequirementsByVendorReport"/> + </request-map> <request-map uri="quickPurchaseOrderEntry"> <security https="true" auth="true"/> <event type="java" path="org.ofbiz.order.shoppingcart.ShoppingCartEvents" invoke="quickInitPurchaseOrder"/> @@ -1526,6 +1534,8 @@ <view-map name="ApproveRequirements" page="component://order/widget/ordermgr/RequirementScreens.xml#ApproveRequirements" type="screen"/> <view-map name="ApprovedProductRequirements" page="component://order/widget/ordermgr/RequirementScreens.xml#ApprovedProductRequirements" type="screen"/> <view-map name="ApprovedProductRequirementsReport" type="screenfop" page="component://order/widget/ordermgr/RequirementScreens.xml#ApprovedProductRequirementsReport" content-type="application/pdf" encoding="none"/> + <view-map name="ApprovedProductRequirementsByVendor" page="component://order/widget/ordermgr/RequirementScreens.xml#ApprovedProductRequirementsByVendor" type="screen"/> + <view-map name="ApprovedProductRequirementsByVendorReport" type="screenfop" page="component://order/widget/ordermgr/RequirementScreens.xml#ApprovedProductRequirementsByVendorReport" content-type="application/pdf" encoding="none"/> <view-map name="RequirementsForSupplier" type="screen" page="component://order/widget/ordermgr/OrderEntryScreens.xml#RequirementsForSupplier"/> <view-map name="FindQuoteForCart" type="screen" page="component://order/widget/ordermgr/OrderEntryScreens.xml#FindQuoteForCart"/> Modified: ofbiz/trunk/applications/order/webapp/ordermgr/requirement/RequirementForms.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/requirement/RequirementForms.xml?view=diff&rev=500287&r1=500286&r2=500287 ============================================================================== --- ofbiz/trunk/applications/order/webapp/ordermgr/requirement/RequirementForms.xml (original) +++ ofbiz/trunk/applications/order/webapp/ordermgr/requirement/RequirementForms.xml Fri Jan 26 09:37:11 2007 @@ -312,4 +312,16 @@ <field name="_rowSubmit" title="${uiLabelMap.CommonSelect}"><check/></field> <field name="submitButton" title="${uiLabelMap.OrderInputQuickPurchaseOrder}" widget-style="smallSubmit"><submit/></field> </form> + <form name="ApprovedProductRequirementsByVendor" type="list" list-name="requirements" + default-title-style="tableheadtext" default-widget-style="tabletext" default-tooltip-style="tabletext" + paginate-target="ApprovedProductRequirementsByVendor"> + <field name="partyId"> + <display-entity entity-name="PartyNameView" key-field-name="partyId" description="${firstName} ${middleName} ${lastName} ${groupName} (${partyId})" also-hidden="true"> + </display-entity> + </field> + <field name="productId" title="${uiLabelMap.OrderVendorRequirementCount}" widget-area-style="tabletextright"><display/></field> + <field name="prepare" title="${uiLabelMap.OrderPrepareOrder}" widget-style="buttontext"> + <hyperlink also-hidden="false" description="${uiLabelMap.OrderPrepareOrder}" target="ApprovedProductRequirements?partyId=${partyId}"/> + </field> + </form> </forms> Modified: ofbiz/trunk/applications/order/webapp/ordermgr/requirement/RequirementsTabBar.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/requirement/RequirementsTabBar.ftl?view=diff&rev=500287&r1=500286&r2=500287 ============================================================================== --- ofbiz/trunk/applications/order/webapp/ordermgr/requirement/RequirementsTabBar.ftl (original) +++ ofbiz/trunk/applications/order/webapp/ordermgr/requirement/RequirementsTabBar.ftl Fri Jan 26 09:37:11 2007 @@ -23,5 +23,6 @@ <div class='tabContainer'> <a href="<@ofbizUrl>FindRequirements</@ofbizUrl>" class="${selectedClassMap.FindRequirements?default(unselectedClassName)}">${uiLabelMap.OrderRequirements}</a> <a href="<@ofbizUrl>ApproveRequirements</@ofbizUrl>" class="${selectedClassMap.ApproveRequirements?default(unselectedClassName)}">${uiLabelMap.OrderApproveRequirements}</a> + <a href="<@ofbizUrl>ApprovedProductRequirementsByVendor</@ofbizUrl>" class="${selectedClassMap.ApprovedProductRequirementsByVendor?default(unselectedClassName)}">${uiLabelMap.OrderApprovedProductRequirementsByVendor}</a> <a href="<@ofbizUrl>ApprovedProductRequirements</@ofbizUrl>" class="${selectedClassMap.ApprovedProductRequirements?default(unselectedClassName)}">${uiLabelMap.OrderApprovedProductRequirements}</a> </div> Modified: ofbiz/trunk/applications/order/widget/ordermgr/RequirementScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/widget/ordermgr/RequirementScreens.xml?view=diff&rev=500287&r1=500286&r2=500287 ============================================================================== --- ofbiz/trunk/applications/order/widget/ordermgr/RequirementScreens.xml (original) +++ ofbiz/trunk/applications/order/widget/ordermgr/RequirementScreens.xml Fri Jan 26 09:37:11 2007 @@ -189,6 +189,45 @@ </widgets> </section> </screen> + <screen name="ApprovedProductRequirementsByVendor"> + <section> + <actions> + <set field="title" value="Approved Product Requirements By Vendor"/> + <set field="titleProperty" value="PageTitleFindRequirements"/> + <set field="headerItem" value="requirement"/> + <set field="tabButtonItem" value="ApprovedProductRequirementsByVendor"/> + <set field="viewIndex" from-field="parameters.VIEW_INDEX" type="Integer"/> + <set field="viewSize" from-field="parameters.VIEW_SIZE" type="Integer" default-value="50"/> + <script location="component://order/webapp/ordermgr/WEB-INF/actions/requirement/ApprovedProductRequirementsByVendor.bsh"/> + </actions> + <widgets> + <decorator-screen name="CommonRequirementsDecorator"> + <decorator-section name="body"> + <include-form name="ApprovedProductRequirementsByVendor" location="component://order/webapp/ordermgr/requirement/RequirementForms.xml"/> + </decorator-section> + </decorator-screen> + </widgets> + </section> + </screen> + <screen name="ApprovedProductRequirementsByVendorReport"> + <section> + <actions> + <property-map resource="OrderUiLabels" map-name="uiLabelMap" global="true"/> + <property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/> + <set field="pageLayoutName" value="simple-landscape"/> + <set field="titleProperty" value="PageTitleApprovedProductRequirementsByVendor"/> + <set field="viewIndex" from-field="parameters.VIEW_INDEX" type="Integer"/> + <set field="viewSize" from-field="parameters.VIEW_SIZE" type="Integer" default-value="500"/> + </actions> + <widgets> + <decorator-screen name="FoDecorator" location="component://common/widget/CommonScreens.xml"> + <decorator-section name="body"> + <include-form name="ApprovedProductRequirementsByVendorList" location="component://order/webapp/ordermgr/requirement/RequirementForms.xml"/> + </decorator-section> + </decorator-screen> + </widgets> + </section> + </screen> <screen name="EditRequirement"> <section> <actions> |
Free forum by Nabble | Edit this page |