svn commit: r500287 - in /ofbiz/trunk/applications/order: config/ entitydef/ webapp/ordermgr/WEB-INF/ webapp/ordermgr/WEB-INF/actions/requirement/ webapp/ordermgr/requirement/ widget/ordermgr/

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r500287 - in /ofbiz/trunk/applications/order: config/ entitydef/ webapp/ordermgr/WEB-INF/ webapp/ordermgr/WEB-INF/actions/requirement/ webapp/ordermgr/requirement/ widget/ordermgr/

sichen
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>