|
Propchange: ofbiz/trunk/applications/order/data/SalesOrderDemoData.xml
------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/applications/order/data/SalesOrderDemoData.xml ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/applications/order/data/SalesOrderDemoData.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Modified: ofbiz/trunk/applications/order/entitydef/entitymodel_olap.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/entitydef/entitymodel_olap.xml?rev=890830&r1=890829&r2=890830&view=diff ============================================================================== --- ofbiz/trunk/applications/order/entitydef/entitymodel_olap.xml (original) +++ ofbiz/trunk/applications/order/entitydef/entitymodel_olap.xml Tue Dec 15 15:34:29 2009 @@ -38,14 +38,24 @@ <field name="productDimId" type="id-ne"></field> <field name="origCurrencyDimId" type="id-ne"></field> <field name="billToCustomerDimId" type="id-ne"></field> <!-- TODO: implement the dimension --> - + + <field name="salesChannelEnumId" type="id-ne"></field> + <field name="saleChannel" type="description"></field> + <field name="orderStatus" type="description"></field> + <field name="visitId" type="id-ne"></field> + <field name="initialReferrer" type="url"></field> + <field name="productPromoCode" type="id"></field> + <field name="quantity" type="fixed-point"> <description>Quantity order. From OrderItem.quantity</description> </field> - + <field name="extGrossAmount" type="currency-precise"> <description>Extended gross amount: quantity item multiplied by the unit price.</description> </field> + <field name="extGrossCost" type="currency-precise"> + <description>Extended gross cost: quantity item multiplied by the last price.</description> + </field> <field name="extDiscountAmount" type="currency-precise"> <description>Extended discount amount.</description> </field> @@ -60,26 +70,36 @@ </field> <field name="GrossSales" type="currency-precise"> - <description>Gross Sales</description> + <description>Gross Sales: extGrossAmount less extShippingAmount.</description> </field> <field name="GrossMerchandizeSales" type="currency-precise"> - <description>Gross Merchandize Sales</description> + <description>Gross Merchandize Sales: extGrossAmount.</description> </field> <field name="GrossMerchandizeProfit" type="currency-precise"> - <description>Gross Merchandize Profit</description> + <description>Gross Merchandize Profit: GrossMerchandizeSales less default price.</description> </field> <field name="GrossShippingProfit" type="currency-precise"> <description>Gross Shipping Profit</description> </field> <field name="GrossProfit" type="currency-precise"> - <description>Gross Profit</description> + <description>Gross Profit: GrossMerchandizeProfit less GrossShippingProfit.</description> + </field> + + <field name="eBay" type="currency-precise"> + <description>eBay Fee: current ebay fee is captured manually by employee and updated into sharepoint list.</description> + </field> + <field name="RRC" type="currency-precise"> + <description>RRC: the total amount of our RRC (refund, replace and cancellation).</description> </field> - <field name="AverageMerchandizeProfit" type="currency-precise"> + <field name="OtherFree" type="currency-precise"> + <description>Others: other fee which calculation is just a percentage of GrossSales.</description> + </field> +<!-- <field name="AverageMerchandizeProfit" type="currency-precise"> <description>Average Merchandize Profit</description> </field> <field name="AverageGrossProfit" type="currency-precise"> <description>Average Gross Profit</description> - </field> + </field>--> <!--<field name="extGrossAmount" type="currency-precise"> <description>Extended gross amount: quantity invoiced multiplied by the list unit price.</description> @@ -142,7 +162,7 @@ <prim-key field="orderId"/> <prim-key field="orderItemSeqId"/> - <relation type="one" fk-name="SOIF_INVDATE" rel-entity-name="DateDimension"> + <relation type="one" fk-name="SOIF_ORDERDATE" rel-entity-name="DateDimension"> <key-map field-name="orderDateDimId" rel-field-name="dimensionId"/> </relation> <relation type="one" fk-name="SOIF_CURRENCY" rel-entity-name="CurrencyDimension"> @@ -160,12 +180,12 @@ <view-entity entity-name="SalesOrderItemStarSchema" package-name="org.ofbiz.bi.starschema.order" title="Sales Order Item Star Schema"> <description>Order Item star schema (Profit and Loss Statement).</description> - <member-entity entity-alias="SIIF" entity-name="SalesOrderItemFact"/> - <member-entity entity-alias="IDD" entity-name="DateDimension"/> + <member-entity entity-alias="SOIF" entity-name="SalesOrderItemFact"/> + <member-entity entity-alias="ODD" entity-name="DateDimension"/> <member-entity entity-alias="PD" entity-name="ProductDimension"/> <member-entity entity-alias="CD" entity-name="CurrencyDimension"/> - <alias-all entity-alias="IDD" prefix="orderDate" group-by="true"> + <alias-all entity-alias="ODD" prefix="orderDate" group-by="true"> <exclude field="dimensionId"/> </alias-all> <alias-all entity-alias="PD" prefix="product" group-by="true"> @@ -174,27 +194,38 @@ <alias-all entity-alias="CD" prefix="currency" group-by="true"> <exclude field="dimensionId"/> </alias-all> - <alias-all entity-alias="SIIF" function="sum"> + <alias-all entity-alias="SOIF" function="sum"> + <exclude field="orderId"/> <exclude field="orderItemSeqId"/> <exclude field="orderDateDimId"/> <exclude field="productDimId"/> - <exclude field="billToCustomerDimId"/> <exclude field="origCurrencyDimId"/> - <exclude field="orderId"/> - <exclude field="orderItemSeqId"/> + <exclude field="billToCustomerDimId"/> + <exclude field="salesChannelEnumId"/> + <exclude field="saleChannel"/> + <exclude field="orderStatus"/> + <exclude field="visitId"/> + <exclude field="initialReferrer"/> + <exclude field="productPromoCode"/> </alias-all> - <alias entity-alias="SIIF" name="orderId" group-by="true"> + <alias entity-alias="SOIF" name="orderId" group-by="true"> <description>Order id</description> </alias> - <alias entity-alias="SIIF" name="orderItemSeqId" group-by="true"/> + <alias entity-alias="SOIF" name="orderItemSeqId" group-by="true"/> + <alias entity-alias="SOIF" name="salesChannelEnumId" group-by="true"/> + <alias entity-alias="SOIF" name="saleChannel" group-by="true"/> + <alias entity-alias="SOIF" name="orderStatus" group-by="true"/> + <alias entity-alias="SOIF" name="visitId" group-by="true"/> + <alias entity-alias="SOIF" name="initialReferrer" group-by="true"/> + <alias entity-alias="SOIF" name="productPromoCode" group-by="true"/> - <view-link entity-alias="SIIF" rel-entity-alias="IDD"> + <view-link entity-alias="SOIF" rel-entity-alias="ODD"> <key-map field-name="orderDateDimId" rel-field-name="dimensionId"/> </view-link> - <view-link entity-alias="SIIF" rel-entity-alias="PD"> + <view-link entity-alias="SOIF" rel-entity-alias="PD"> <key-map field-name="productDimId" rel-field-name="dimensionId"/> </view-link> - <view-link entity-alias="SIIF" rel-entity-alias="CD"> + <view-link entity-alias="SOIF" rel-entity-alias="CD"> <key-map field-name="origCurrencyDimId" rel-field-name="dimensionId"/> </view-link> Modified: ofbiz/trunk/applications/order/ofbiz-component.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/ofbiz-component.xml?rev=890830&r1=890829&r2=890830&view=diff ============================================================================== --- ofbiz/trunk/applications/order/ofbiz-component.xml (original) +++ ofbiz/trunk/applications/order/ofbiz-component.xml Tue Dec 15 15:34:29 2009 @@ -37,6 +37,7 @@ <entity-resource type="data" reader-name="seed" loader="main" location="data/OrderSecurityData.xml"/> <entity-resource type="data" reader-name="demo" loader="main" location="data/OrderDemoUser.xml"/> <entity-resource type="data" reader-name="demo" loader="main" location="data/OrderDemoData.xml"/> + <entity-resource type="data" reader-name="demo" loader="main" location="data/SalesOrderDemoData.xml"/> <service-resource type="model" loader="main" location="servicedef/services.xml"/> <service-resource type="model" loader="main" location="servicedef/services_cart.xml"/> <service-resource type="model" loader="main" location="servicedef/services_shoppinglist.xml"/> Modified: ofbiz/trunk/applications/order/script/org/ofbiz/order/olap/FactServices.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/script/org/ofbiz/order/olap/FactServices.xml?rev=890830&r1=890829&r2=890830&view=diff ============================================================================== --- ofbiz/trunk/applications/order/script/org/ofbiz/order/olap/FactServices.xml (original) +++ ofbiz/trunk/applications/order/script/org/ofbiz/order/olap/FactServices.xml Tue Dec 15 15:34:29 2009 @@ -52,7 +52,7 @@ </if-empty> <if-empty field="orderAdjustment"> <entity-and entity-name="OrderAdjustment" list="orderAdjustments"> - <field-map field-name="orderId" from-field="orderHeader.orderId"/> + <field-map field-name="orderId" from-field="orderItem.orderId"/> </entity-and> </if-empty> <if-empty field="orderHeader"> @@ -73,6 +73,7 @@ <make-value entity-name="SalesOrderItemFact" value-field="fact"/> <set field="fact.orderId" from-field="orderHeader.orderId"/> <set field="fact.orderItemSeqId" from-field="orderItem.orderItemSeqId"/> + <set field="fact.salesChannelEnumId" from-field="orderHeader.salesChannelEnumId"/> <!-- conversion of the order date --> <if-not-empty field="orderHeader.orderDate"> <clear-field field="inMap"/> @@ -137,16 +138,30 @@ <set field="fact.GrossMerchandizeProfit" value="0.0" type="BigDecimal"/> <set field="fact.GrossShippingProfit" value="0.0" type="BigDecimal"/> <set field="fact.GrossProfit" value="0.0" type="BigDecimal"/> - <set field="fact.AverageMerchandizeProfit" value="0.0" type="BigDecimal"/> - <set field="fact.AverageGrossProfit" value="0.0" type="BigDecimal"/> +<!-- <set field="fact.AverageMerchandizeProfit" value="0.0" type="BigDecimal"/> + <set field="fact.AverageGrossProfit" value="0.0" type="BigDecimal"/>--> - <!-- gross --> + <!-- amount --> <calculate field="fact.extGrossAmount"> <calcop field="fact.quantity" operator="multiply"> <calcop field="orderItem.unitPrice" operator="get"/> </calcop> </calculate> + <!-- cost --> + <entity-and entity-name="SupplierProduct" list="costs"> + <field-map field-name="productId" from-field="orderItem.productId"/> + </entity-and> + <iterate list="costs" entry="cost"> + <if-compare field="cost.minimumOrderQuantity" operator="equals" value="0"> + <calculate field="fact.extGrossCost"> + <calcop field="fact.quantity" operator="multiply"> + <calcop field="cost.lastPrice" operator="get"/> + </calcop> + </calculate> + </if-compare> + </iterate> + <!-- shipping --> <iterate list="orderAdjustments" entry="shipping"> <if-compare field="shipping.orderAdjustmentTypeId" operator="equals" value="SHIPPING_CHARGES"> @@ -174,9 +189,20 @@ <if-compare field="discount.orderAdjustmentTypeId" operator="equals" value="PROMOTION_ADJUSTMENT"> <calculate field="fact.extDiscountAmount"> <calcop field="fact.extDiscountAmount" operator="add"> - <calcop field="discount.amount" operator="negative"/> + <calcop field="discount.amount" operator="get"/> </calcop> </calculate> + <!-- product promo code --> + <entity-and entity-name="ProductPromoCode" list="productPromo"> + <field-map field-name="productPromoId" from-field="discount.productPromoId"/> + </entity-and> + <first-from-list entry="productPromoCode" list="productPromo"/> + <if-not-empty field="productPromoCode"> + <set field="fact.productPromoCode" from-field="productPromoCode.productPromoCodeId"/> + <else> + <set field="fact.productPromoCode" value="Not require code"/> + </else> + </if-not-empty> </if-compare> </iterate> @@ -202,23 +228,51 @@ </calculate> <!-- Gross Merchandize Profit --> - <entity-and entity-name="ProductPrice" list="costs"> - <field-map field-name="productId" from-field="orderItem.productId"/> - </entity-and> - <iterate list="costs" entry="cost"> - <if-compare field="cost.productPriceTypeId" operator="equals" value="DEFAULT_PRICE"> - <log level="always" message="===================price : ${cost.price}"/> - <calculate field="fact.GrossMerchandizeProfit"> - <calcop field="fact.GrossMerchandizeSales" operator="subtract"> - <calcop field="cost.price" operator="get"/> - </calcop> - </calculate> - </if-compare> - </iterate> + <calculate field="fact.GrossMerchandizeProfit"> + <calcop field="fact.GrossMerchandizeSales" operator="subtract"> + <calcop field="fact.extGrossCost" operator="get"/> + </calcop> + </calculate> + + <!-- Sale Channel --> + <if-not-empty field="orderHeader.salesChannelEnumId"> + <entity-one entity-name="Enumeration" value-field="enumeration"> + <field-map field-name="enumId" from-field="orderHeader.salesChannelEnumId"/> + </entity-one> + <if-not-empty field="enumeration"> + <set field="fact.saleChannel" from-field="enumeration.description"/> + </if-not-empty> + </if-not-empty> + + <!-- Order status --> + <if-not-empty field="orderHeader.statusId"> + <entity-one entity-name="StatusItem" value-field="statusItem"> + <field-map field-name="statusId" from-field="orderHeader.statusId"/> + </entity-one> + <if-not-empty field="statusItem"> + <set field="fact.orderStatus" from-field="statusItem.description"/> + </if-not-empty> + </if-not-empty> + + <!-- Order visit and referrer --> + <if-not-empty field="orderHeader.visitId"> + <entity-one entity-name="Visit" value-field="visit"> + <field-map field-name="visitId" from-field="orderHeader.visitId"/> + </entity-one> + <if-not-empty field="visit"> + <set field="fact.visitId" from-field="visit.visitId"/> + <set field="fact.initialReferrer" from-field="visit.initialReferrer"/> + </if-not-empty> + </if-not-empty> <!-- Gross Shipping Profit --> <!-- Gross Profit --> + <calculate field="fact.GrossProfit"> + <calcop field="fact.GrossMerchandizeProfit" operator="subtract"> + <calcop field="fact.GrossShippingProfit" operator="get"/> + </calcop> + </calculate> <!-- Average Merchandize Profit --> @@ -238,9 +292,19 @@ <calcop field="fact.extStorageCost" operator="get"/> <calcop field="fact.extDistributionCost" operator="get"/> </calcop> - </calculate>--> + </calculate>--> + + <!-- eBay --> + <set field="fact.eBay" value="7"/> + + <!-- RRC --> + <set field="fact.RRC" value="2"/> + + <!-- Others --> + <set field="fact.OtherFree" value="5"/> <store-value value-field="fact"/> </if-compare> </simple-method> + </simple-methods> Added: ofbiz/trunk/applications/order/script/org/ofbiz/order/reports/SalesReportEvent.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/script/org/ofbiz/order/reports/SalesReportEvent.xml?rev=890830&view=auto ============================================================================== --- ofbiz/trunk/applications/order/script/org/ofbiz/order/reports/SalesReportEvent.xml (added) +++ ofbiz/trunk/applications/order/script/org/ofbiz/order/reports/SalesReportEvent.xml Tue Dec 15 15:34:29 2009 @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you 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://ofbiz.apache.org/dtds/simple-methods.xsd"> + + <simple-method method-name="getOrder" short-description="Get Orders" login-required="false"> + <log level="always" message="===================CheckfromDate : ${fromDate}"/> + <log level="always" message="===================CheckthruDate : ${thruDate}"/> + <if-not-empty field="fromDate"> + <entity-condition entity-name="SalesOrderItemStarSchema" list="starschemas"> + <condition-list combine="and"> + <condition-expr field-name="orderDateYearMonthDay" operator="greater-equals" from-field="fromDate"/> + <condition-expr field-name="orderDateYearMonthDay" operator="less" from-field="thruDate"/> + <condition-list combine="or"> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="VV_AU_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="VV_CA_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="VV_IE_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="VV_SG_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="VV_UK_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="VV_US_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="VV_DE_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="VV_ES_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="VV_FR_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="VV_IT_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="B2B_AU_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="B2B_CA_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="B2B_IE_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="B2B_SG_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="B2B_UK_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="B2B_US_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="B2B_DE_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="B2B_ES_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="B2B_FR_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="B2B_IT_SALES_CHANNEL"/> + </condition-list> + </condition-list> + </entity-condition> + <log level="always" message="===================starschemas : ${starschemas}"/> + </if-not-empty> + <if-empty field="fromDate"> + <entity-condition list="starschemas" entity-name="SalesOrderItemStarSchema"> + <condition-list combine="or"> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="VV_AU_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="VV_CA_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="VV_IE_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="VV_SG_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="VV_UK_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="VV_US_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="VV_DE_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="VV_ES_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="VV_FR_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="VV_IT_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="B2B_AU_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="B2B_CA_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="B2B_IE_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="B2B_SG_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="B2B_UK_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="B2B_US_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="B2B_DE_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="B2B_ES_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="B2B_FR_SALES_CHANNEL"/> + <condition-expr field-name="salesChannelEnumId" operator="equals" value="B2B_IT_SALES_CHANNEL"/> + </condition-list> + </entity-condition> + <log level="always" message="===================starschemas : ${starschemas}"/> + </if-empty> + </simple-method> + +</simple-methods> Propchange: ofbiz/trunk/applications/order/script/org/ofbiz/order/reports/SalesReportEvent.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/applications/order/script/org/ofbiz/order/reports/SalesReportEvent.xml ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/applications/order/script/org/ofbiz/order/reports/SalesReportEvent.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Modified: ofbiz/trunk/applications/order/servicedef/services.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/servicedef/services.xml?rev=890830&r1=890829&r2=890830&view=diff ============================================================================== --- ofbiz/trunk/applications/order/servicedef/services.xml (original) +++ ofbiz/trunk/applications/order/servicedef/services.xml Tue Dec 15 15:34:29 2009 @@ -1063,4 +1063,4 @@ <attribute name="orderItem" type="org.ofbiz.entity.GenericValue" mode="IN" optional="true"/> <attribute name="orderAdjustment " type="org.ofbiz.entity.GenericValue" mode="IN" optional="true"/> </service> -</services> \ No newline at end of file +</services> Modified: ofbiz/trunk/applications/order/servicedef/services_olap.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/servicedef/services_olap.xml?rev=890830&r1=890829&r2=890830&view=diff ============================================================================== --- ofbiz/trunk/applications/order/servicedef/services_olap.xml (original) +++ ofbiz/trunk/applications/order/servicedef/services_olap.xml Tue Dec 15 15:34:29 2009 @@ -39,4 +39,5 @@ <description>Calls the loadSalesOrderItemFact service for all the order items.</description> <attribute name="orderId" type="String" mode="IN" optional="false"/> </service> + </services> Added: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/reports/OrderByChannel.groovy URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/reports/OrderByChannel.groovy?rev=890830&view=auto ============================================================================== --- ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/reports/OrderByChannel.groovy (added) +++ ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/reports/OrderByChannel.groovy Tue Dec 15 15:34:29 2009 @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +import org.ofbiz.base.util.*; + +birtParameters = [:]; +if(request.getParameter("saleChannel")){ + birtParameters.saleChannel = request.getParameter("saleChannel"); +}else{ + birtParameters.saleChannel = "null"; +} + +request.setAttribute("birtParameters", birtParameters); + +return "success"; \ No newline at end of file Propchange: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/reports/OrderByChannel.groovy ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/reports/OrderByChannel.groovy ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/reports/OrderByChannel.groovy ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/reports/SalesReport.groovy URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/reports/SalesReport.groovy?rev=890830&view=auto ============================================================================== --- ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/reports/SalesReport.groovy (added) +++ ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/reports/SalesReport.groovy Tue Dec 15 15:34:29 2009 @@ -0,0 +1,25 @@ +import org.ofbiz.base.util.*; +import java.sql.*; + +fromDateStr = parameters.fromDate; +thruDateStr = parameters.thruDate; + +Debug.logInfo("================ fromDateStr:" + fromDateStr, ""); +Debug.logInfo("================ thruDateStr:" + thruDateStr, ""); + +birtParameters = [:]; +try { + birtParameters.fromDate = Date.valueOf(fromDateStr); + birtParameters.thruDate = Date.valueOf(thruDateStr); + //birtParameters.fromDate = Timestamp.valueOf(fromDateStr); + //birtParameters.thruDate = Timestamp.valueOf(thruDateStr); +} catch (e) { + Debug.logError(e, ""); +} + +Debug.logInfo("================ fromDate:" + birtParameters.fromDate, ""); +Debug.logInfo("================ thruDate:" + birtParameters.thruDate, ""); + +request.setAttribute("birtParameters", birtParameters); + +return "success"; Propchange: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/reports/SalesReport.groovy ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/reports/SalesReport.groovy ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/reports/SalesReport.groovy ------------------------------------------------------------------------------ svn:mime-type = text/plain 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?rev=890830&r1=890829&r2=890830&view=diff ============================================================================== --- ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml (original) +++ ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml Tue Dec 15 15:34:29 2009 @@ -1084,9 +1084,23 @@ <response name="success" type="view" value="PurchasesByOrganizationReport"/> </request-map> <request-map uri="SalesReport.pdf"><security https="true" auth="true"/> - <event type="groovy" path="component://order/webapp/ordermgr/WEB-INF/actions/report/" invoke="SalesReport.groovy"/> + <event type="groovy" path="component://order/webapp/ordermgr/WEB-INF/actions/reports/" invoke="SalesReport.groovy"/> <response name="success" type="view" value="SalesOrderReport"/> </request-map> + <request-map uri="OrderByReferrer.pdf"><security https="true" auth="true"/> + <response name="success" type="view" value="OrderByReferrerReport"/> + </request-map> + <request-map uri="OrdersByChannel.pdf"><security https="true" auth="true"/> + <event type="groovy" path="component://order/webapp/ordermgr/WEB-INF/actions/reports/" invoke="OrderByChannel.groovy"/> + <response name="success" type="view" value="OrdersByChannelReport"/> + </request-map> + <request-map uri="OrderDiscountCode.pdf"> + <security https="true" auth="true"/> + <response name="success" type="view" value="SaleOrderDiscountCodeReport"/> + </request-map> + <request-map uri="Last3MonthsSalesReport.pdf"><security https="true" auth="true"/> + <response name="success" type="view" value="Last3MonthsSalesReport"/> + </request-map> <!-- Requirement request mappings --> <request-map uri="FindRequirements"> @@ -1765,7 +1779,11 @@ <view-map name="SalesByStoreReport" type="screenfop" page="component://order/widget/ordermgr/ReportScreens.xml#SalesByStoreReport" content-type="application/pdf" encoding="none"/> <view-map name="OpenOrderItemsReport" type="screen" page="component://order/widget/ordermgr/ReportScreens.xml#OpenOrderItemsReport"/> <view-map name="PurchasesByOrganizationReport" type="screenfop" page="component://order/widget/ordermgr/ReportScreens.xml#PurchasesByOrganizationReport" content-type="application/pdf" encoding="none"/> - <view-map name="SalesOrderReport" type="birt" page="component://birt/webapp/birt/report/SalesReport.rptdesign" content-type="application/pdf"/> + <view-map name="SalesOrderReport" type="birt" page="component://order/webapp/ordermgr/reports/SalesReport.rptdesign" content-type="application/pdf"/> + <view-map name="OrderByReferrerReport" type="birt" page="component://order/webapp/ordermgr/reports/OrderByReferrer.rptdesign" content-type="application/pdf"/> + <view-map name="OrdersByChannelReport" type="birt" page="component://order/webapp/ordermgr/reports/OrdersByChannel.rptdesign" content-type="application/pdf"/> + <view-map name="SaleOrderDiscountCodeReport" type="birt" page="component://order/webapp/ordermgr/reports/OrderDiscountCodeReport.rptdesign" content-type="application/pdf"/> + <view-map name="Last3MonthsSalesReport" type="birt" page="component://order/webapp/ordermgr/reports/Last3MonthsSalesReport.rptdesign" content-type="application/pdf"/> <view-map name="FindRequirements" type="screen" page="component://order/widget/ordermgr/RequirementScreens.xml#FindRequirements"/> <view-map name="EditRequirement" type="screen" page="component://order/widget/ordermgr/RequirementScreens.xml#EditRequirement"/> Added: ofbiz/trunk/applications/order/webapp/ordermgr/reports/Last3MonthsSalesReport.rptdesign URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/reports/Last3MonthsSalesReport.rptdesign?rev=890830&view=auto ============================================================================== --- ofbiz/trunk/applications/order/webapp/ordermgr/reports/Last3MonthsSalesReport.rptdesign (added) +++ ofbiz/trunk/applications/order/webapp/ordermgr/reports/Last3MonthsSalesReport.rptdesign Tue Dec 15 15:34:29 2009 @@ -0,0 +1,816 @@ +<?xml version="1.0" encoding="UTF-8"?> +<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.20" id="1"> + <property name="createdBy">Eclipse BIRT Designer Version 2.5.1.v20090903 Build <2.5.1.v20090917-1447></property> + <property name="units">in</property> + <method name="initialize"><![CDATA[importPackage(Packages.org.ofbiz.base.util) +importPackage(Packages.javolution.util) +importPackage(Packages.org.ofbiz.entity.util) +importPackage(Packages.java.util) +importPackage(Packages.java.lang) +importPackage(Packages.org.ofbiz.entity.condition) +module = "Last3MonthsSalesReport.rptdesign";]]></method> + <property name="iconFile">/templates/blank_report.gif</property> + <property name="bidiLayoutOrientation">ltr</property> + <data-sources> + <script-data-source name="OFBIZ" id="7"/> + </data-sources> + <data-sets> + <script-data-set name="SalesOrderItemStarSchema" id="8"> + <list-property name="resultSetHints"> + <structure> + <property name="position">1</property> + <property name="name">orderId</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">2</property> + <property name="name">orderItemSeqId</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">3</property> + <property name="name">orderStatus</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">4</property> + <property name="name">saleChannel</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">5</property> + <property name="name">quantity</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">6</property> + <property name="name">extGrossAmount</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">7</property> + <property name="name">orderDateDayOfMonth</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">8</property> + <property name="name">orderDateMonthOfYear</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">9</property> + <property name="name">orderDateYearName</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">10</property> + <property name="name">price</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">11</property> + <property name="name">stock</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">12</property> + <property name="name">productId</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">13</property> + <property name="name">internalName</property> + <property name="dataType">string</property> + </structure> + </list-property> + <list-property name="columnHints"> + <structure> + <property name="columnName">orderId</property> + </structure> + <structure> + <property name="columnName">orderItemSeqId</property> + </structure> + <structure> + <property name="columnName">orderStatus</property> + </structure> + <structure> + <property name="columnName">saleChannel</property> + </structure> + <structure> + <property name="columnName">quantity</property> + </structure> + <structure> + <property name="columnName">extGrossAmount</property> + </structure> + <structure> + <property name="columnName">orderDateDayOfMonth</property> + </structure> + <structure> + <property name="columnName">orderDateMonthOfYear</property> + </structure> + <structure> + <property name="columnName">orderDateYearName</property> + </structure> + <structure> + <property name="columnName">price</property> + </structure> + <structure> + <property name="columnName">stock</property> + </structure> + <structure> + <property name="columnName">productId</property> + </structure> + <structure> + <property name="columnName">internalName</property> + </structure> + </list-property> + <structure name="cachedMetaData"> + <list-property name="resultSet"> + <structure> + <property name="position">1</property> + <property name="name">orderId</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">2</property> + <property name="name">orderItemSeqId</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">3</property> + <property name="name">orderStatus</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">4</property> + <property name="name">saleChannel</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">5</property> + <property name="name">quantity</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">6</property> + <property name="name">extGrossAmount</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">7</property> + <property name="name">orderDateDayOfMonth</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">8</property> + <property name="name">orderDateMonthOfYear</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">9</property> + <property name="name">orderDateYearName</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">10</property> + <property name="name">price</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">11</property> + <property name="name">stock</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">12</property> + <property name="name">productId</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">13</property> + <property name="name">internalName</property> + <property name="dataType">string</property> + </structure> + </list-property> + </structure> + <property name="dataSource">OFBIZ</property> + <method name="open"><![CDATA[salesOrderItemStarSchemas = null; +userLogin = null; +try { + userLogin = delegator.findByPrimaryKey("UserLogin",UtilMisc.toMap("userLoginId","admin")); + months = FastList.newInstance(); + thisMonth = 0; + thisMonth = UtilDateTime.getMonth(UtilDateTime.nowTimestamp(), TimeZone.getDefault(), Locale.getDefault())+1; + thisYear = UtilDateTime.getYear(UtilDateTime.nowTimestamp(), TimeZone.getDefault(), Locale.getDefault()) + i = 0; + month = thisMonth; + while(i<3){ + i = i + 1; + switch(month) + { + case 1: + months.add(1); + break; + case 2: + months.add(2); + break; + case 3: + months.add(3); + break; + case 4: + months.add(4); + break; + case 5: + months.add(5); + break; + case 6: + months.add(6); + break; + case 7: + months.add(7); + break; + case 8: + months.add(8); + break; + case 9: + months.add(9); + break; + case 10: + months.add(10); + break; + case 11: + months.add(11); + break; + case 12: + months.add(12); + break; + } + month = month - 1 + } + Debug.log("================ Last 3 Months Sale Order Report====="+months); + cond = FastList.newInstance(); + cond.add(EntityCondition.makeCondition("orderDateMonthOfYear", EntityOperator.IN, months)); + cond.add(EntityCondition.makeCondition("orderDateYearName", EntityOperator.EQUALS, thisYear)); + salesOrderItemStarSchemas = delegator.findList("SalesOrderItemStarSchema", EntityCondition.makeCondition(cond, EntityOperator.AND), null, null, null, false); +} catch(e) { + Debug.logError(e,""); +} +totalRow = 0; +countOfRow = 0; +if (salesOrderItemStarSchemas) { + totalRow = salesOrderItemStarSchemas.size(); +} +]]></method> + <method name="fetch"><![CDATA[if (countOfRow == totalRow - 1) return false; +salesOrderItemStarSchema = salesOrderItemStarSchemas.get(countOfRow); +input = FastMap.newInstance(); +input.put("productId", salesOrderItemStarSchema.getString("productProductId")); +input.put("userLogin", userLogin); +QOH = 0; + +try { + result = dispatcher.runSync("getInventoryValuationList", input); + inventorys = result.get("inventoryValuationList"); + QOH = inventorys.get(0).get("totalQuantityOnHand"); +} catch (e) { + Debug.logError(e, module); +} + +price = 0; +internalName = "None"; +input = FastMap.newInstance(); +try { + product = delegator.findByPrimaryKey("Product",UtilMisc.toMap("productId", salesOrderItemStarSchema.getString("productProductId"))); + input.put("product", product); + input.put("userLogin", userLogin); + result = dispatcher.runSync("calculateProductPrice", input); + price = result.get("price"); + if(product.get("internalName")){ + internalName = product.get("internalName"); + } +} catch (e) { + Debug.logError(e, module); +} + +row["orderId"] = salesOrderItemStarSchema.getString("orderId"); +row["orderItemSeqId"] = salesOrderItemStarSchema.getString("orderItemSeqId"); +row["orderStatus"] = salesOrderItemStarSchema.getString("orderStatus"); +row["saleChannel"] = salesOrderItemStarSchema.getString("saleChannel"); +row["quantity"] = salesOrderItemStarSchema.getString("quantity"); +row["extGrossAmount"] = salesOrderItemStarSchema.getString("extGrossAmount"); +row["orderDateDayOfMonth"] = salesOrderItemStarSchema.getString("orderDateDayOfMonth"); +row["orderDateMonthOfYear"] = salesOrderItemStarSchema.getString("orderDateMonthOfYear"); +row["orderDateYearName"] = salesOrderItemStarSchema.getString("orderDateYearName"); +row["price"] = price; +row["stock"] = QOH; +row["productId"]= salesOrderItemStarSchema.getString("productProductId"); +row["internalName"] = internalName; +countOfRow ++; +return true;]]></method> + </script-data-set> + </data-sets> + <cubes> + <tabular-cube name="DataCube" id="9"> + <property name="dimensions"> + <tabular-dimension name="Group" id="86"> + <property name="defaultHierarchy">NewTabularHierarchy</property> + <property name="hierarchies"> + <tabular-hierarchy name="NewTabularHierarchy" id="87"> + <property name="levels"> + <tabular-level name="productId" id="88"> + <property name="dataType">string</property> + <property name="columnName">productId</property> + </tabular-level> + <tabular-level name="internalName" id="281"> + <property name="dataType">string</property> + <property name="columnName">internalName</property> + </tabular-level> + <tabular-level name="price" id="223"> + <property name="dataType">string</property> + <property name="columnName">price</property> + </tabular-level> + <tabular-level name="stock" id="224"> + <property name="dataType">string</property> + <property name="columnName">stock</property> + </tabular-level> + <tabular-level name="orderDateMonthOfYear" id="222"> + <property name="dataType">string</property> + <property name="columnName">orderDateMonthOfYear</property> + </tabular-level> + </property> + </tabular-hierarchy> + </property> + </tabular-dimension> + </property> + <property name="measureGroups"> + <tabular-measure-group name="Summary Field" id="89"> + <property name="measures"> + <tabular-measure name="orderItemSeqId" id="90"> + <property name="function">count</property> + <expression name="measureExpression">dataSetRow["orderItemSeqId"]</expression> + <property name="dataType">integer</property> + </tabular-measure> + <tabular-measure name="quantity" id="91"> + <property name="function">sum</property> + <expression name="measureExpression" type="javascript">dataSetRow["quantity"]</expression> + <property name="dataType">float</property> + </tabular-measure> + <tabular-measure name="extGrossAmount" id="92"> + <property name="function">sum</property> + <expression name="measureExpression" type="javascript">dataSetRow["extGrossAmount"]</expression> + <property name="dataType">float</property> + </tabular-measure> + </property> + </tabular-measure-group> + </property> + <property name="dataSet">SalesOrderItemStarSchema</property> + </tabular-cube> + </cubes> + <styles> + <style name="report" id="4"> + <property name="fontFamily">sans-serif</property> + <property name="fontSize">10pt</property> + </style> + <style name="crosstab-cell" id="5"> + <property name="borderBottomColor">#CCCCCC</property> + <property name="borderBottomStyle">solid</property> + <property name="borderBottomWidth">1pt</property> + <property name="borderLeftColor">#CCCCCC</property> + <property name="borderLeftStyle">solid</property> + <property name="borderLeftWidth">1pt</property> + <property name="borderRightColor">#CCCCCC</property> + <property name="borderRightStyle">solid</property> + <property name="borderRightWidth">1pt</property> + <property name="borderTopColor">#CCCCCC</property> + <property name="borderTopStyle">solid</property> + <property name="borderTopWidth">1pt</property> + </style> + <style name="crosstab" id="6"> + <property name="borderBottomColor">#CCCCCC</property> + <property name="borderBottomStyle">solid</property> + <property name="borderBottomWidth">1pt</property> + <property name="borderLeftColor">#CCCCCC</property> + <property name="borderLeftStyle">solid</property> + <property name="borderLeftWidth">1pt</property> + <property name="borderRightColor">#CCCCCC</property> + <property name="borderRightStyle">solid</property> + <property name="borderRightWidth">1pt</property> + <property name="borderTopColor">#CCCCCC</property> + <property name="borderTopStyle">solid</property> + <property name="borderTopWidth">1pt</property> + </style> + </styles> + <page-setup> + <simple-master-page name="Simple MasterPage" id="2"> + <page-footer> + <text id="3"> + <property name="contentType">html</property> + <text-property name="content"><![CDATA[<value-of>new Date()</value-of>]]></text-property> + </text> + </page-footer> + </simple-master-page> + </page-setup> + <body> + <text id="366"> + <property name="fontSize">larger</property> + <property name="fontWeight">bold</property> + <property name="textAlign">center</property> + <property name="contentType">auto</property> + <text-property name="content"><![CDATA[Last 3 Months Sales Report]]></text-property> + </text> + <text id="367"/> + <extended-item extensionName="Crosstab" extensionVersion="2.5.0" id="282"> + <property name="measures"> + <extended-item extensionName="MeasureView" id="301"> + <property name="measure">orderItemSeqId</property> + <property name="detail"> + <extended-item extensionName="AggregationCell" id="302"> + <property name="aggregationOnRow">Group/orderDateMonthOfYear</property> + <property name="content"> + <data id="303"> + <property name="resultSetColumn">orderItemSeqId_Group/orderDateMonthOfYear</property> + </data> + </property> + <property name="width">0.9888888888888889in</property> + </extended-item> + </property> + <property name="aggregations"> + <extended-item extensionName="AggregationCell" id="317"> + <property name="aggregationOnRow">Group/productId</property> + <property name="content"> + <data id="318"> + <property name="resultSetColumn">orderItemSeqId_Group/productId</property> + </data> + </property> + </extended-item> + <extended-item extensionName="AggregationCell" id="325"> + <property name="content"> + <data id="326"> + <property name="resultSetColumn">orderItemSeqId</property> + </data> + </property> + </extended-item> + </property> + <property name="header"> + <extended-item extensionName="CrosstabCell" id="304"> + <property name="content"> + <label id="305"> + <property name="fontWeight">bold</property> + <text-property name="text">Items</text-property> + </label> + </property> + <property name="height">0.32222222222222224in</property> + </extended-item> + </property> + </extended-item> + <extended-item extensionName="MeasureView" id="306"> + <property name="measure">quantity</property> + <property name="detail"> + <extended-item extensionName="AggregationCell" id="307"> + <property name="aggregationOnRow">Group/orderDateMonthOfYear</property> + <property name="content"> + <data id="308"> + <property name="resultSetColumn">quantity_Group/orderDateMonthOfYear</property> + </data> + </property> + <property name="width">0.9888888888888889in</property> + </extended-item> + </property> + <property name="aggregations"> + <extended-item extensionName="AggregationCell" id="319"> + <property name="aggregationOnRow">Group/productId</property> + <property name="content"> + <data id="320"> + <property name="resultSetColumn">quantity_Group/productId</property> + </data> + </property> + </extended-item> + <extended-item extensionName="AggregationCell" id="327"> + <property name="content"> + <data id="328"> + <property name="resultSetColumn">quantity</property> + </data> + </property> + </extended-item> + </property> + <property name="header"> + <extended-item extensionName="CrosstabCell" id="309"> + <property name="content"> + <label id="310"> + <property name="fontWeight">bold</property> + <text-property name="text">QTY</text-property> + </label> + </property> + </extended-item> + </property> + </extended-item> + <extended-item extensionName="MeasureView" id="311"> + <property name="measure">extGrossAmount</property> + <property name="detail"> + <extended-item extensionName="AggregationCell" id="312"> + <property name="aggregationOnRow">Group/orderDateMonthOfYear</property> + <property name="content"> + <data id="313"> + <property name="resultSetColumn">extGrossAmount_Group/orderDateMonthOfYear</property> + </data> + </property> + <property name="width">0.9888888888888889in</property> + </extended-item> + </property> + <property name="aggregations"> + <extended-item extensionName="AggregationCell" id="321"> + <property name="aggregationOnRow">Group/productId</property> + <property name="content"> + <data id="322"> + <property name="resultSetColumn">extGrossAmount_Group/productId</property> + </data> + </property> + </extended-item> + <extended-item extensionName="AggregationCell" id="329"> + <property name="content"> + <data id="330"> + <property name="resultSetColumn">extGrossAmount</property> + </data> + </property> + </extended-item> + </property> + <property name="header"> + <extended-item extensionName="CrosstabCell" id="314"> + <property name="content"> + <label id="315"> + <property name="fontWeight">bold</property> + <text-property name="text">ToTal</text-property> + </label> + </property> + </extended-item> + </property> + </extended-item> + </property> + <property name="rows"> + <extended-item extensionName="CrosstabView" id="284"> + <property name="grandTotal"> + <extended-item extensionName="CrosstabCell" id="324"> + <property name="content"> + <label id="331"> + <property name="fontWeight">bold</property> + <property name="textAlign">right</property> + <text-property name="text">Grand Total</text-property> + </label> + </property> + </extended-item> + </property> + <property name="views"> + <extended-item extensionName="DimensionView" id="285"> + <property name="dimension">Group</property> + <property name="levels"> + <extended-item extensionName="LevelView" name="NewLevel View" id="286"> + <property name="level">Group/productId</property> + <property name="member"> + <extended-item extensionName="CrosstabCell" id="287"> + <property name="content"> + <data name="productId" id="288"> + <property name="resultSetColumn">productId</property> + </data> + </property> + <property name="width">0.8777777777777778in</property> + </extended-item> + </property> + <property name="aggregationHeader"> + <extended-item extensionName="CrosstabCell" id="316"> + <property name="content"> + <data name="productId_TOTAL" id="323"> + <property name="fontWeight">bold</property> + <property name="textAlign">right</property> + <property name="resultSetColumn">productId_TOTAL</property> + </data> + </property> + </extended-item> + </property> + </extended-item> + <extended-item extensionName="LevelView" name="NewLevel View1" id="289"> + <property name="level">Group/internalName</property> + <property name="member"> + <extended-item extensionName="CrosstabCell" id="290"> + <property name="content"> + <data name="internalName" id="291"> + <property name="resultSetColumn">internalName</property> + </data> + </property> + <property name="width">2.3222222222222224in</property> + </extended-item> + </property> + </extended-item> + <extended-item extensionName="LevelView" name="NewLevel View2" id="292"> + <property name="level">Group/price</property> + <property name="member"> + <extended-item extensionName="CrosstabCell" id="293"> + <property name="content"> + <data name="price" id="294"> + <property name="resultSetColumn">price</property> + </data> + </property> + <property name="width">0.5666666666666667in</property> + </extended-item> + </property> + </extended-item> + <extended-item extensionName="LevelView" name="NewLevel View3" id="295"> + <property name="level">Group/stock</property> + <property name="member"> + <extended-item extensionName="CrosstabCell" id="296"> + <property name="content"> + <data name="stock" id="297"> + <property name="resultSetColumn">stock</property> + </data> + </property> + <property name="width">0.6in</property> + </extended-item> + </property> + </extended-item> + <extended-item extensionName="LevelView" name="NewLevel View4" id="298"> + <property name="level">Group/orderDateMonthOfYear</property> + <property name="member"> + <extended-item extensionName="CrosstabCell" id="299"> + <property name="content"> + <data name="orderDateMonthOfYear" id="300"> + <property name="resultSetColumn">orderDateMonthOfYear</property> + </data> + </property> + <property name="width">0.5666666666666667in</property> + </extended-item> + </property> + </extended-item> + </property> + </extended-item> + </property> + <property name="grandTotalLocation">after</property> + </extended-item> + </property> + <property name="header"> + <extended-item extensionName="CrosstabCell" id="283"> + <property name="content"> + <grid id="345"> + <property name="width">4.844444444444444in</property> + <column id="346"> + <property name="width">0.8333333333333334in</property> + </column> + <column id="347"> + <property name="width">2.2888888888888888in</property> + </column> + <column id="348"> + <property name="width">0.6in</property> + </column> + <column id="349"> + <property name="width">0.5888888888888889in</property> + </column> + <column id="350"> + <property name="width">0.5444444444444444in</property> + </column> + <row id="351"> + <cell id="352"> + <text id="357"> + <property name="fontWeight">bold</property> + <property name="contentType">auto</property> + <text-property name="content"><![CDATA[ProductID]]></text-property> + </text> + </cell> + <cell id="353"> + <text id="358"> + <property name="fontWeight">bold</property> + <property name="contentType">auto</property> + <text-property name="content"><![CDATA[Product Name]]></text-property> + </text> + </cell> + <cell id="354"> + <text id="363"> + <property name="fontWeight">bold</property> + <property name="contentType">auto</property> + <text-property name="content"><![CDATA[Price]]></text-property> + </text> + </cell> + <cell id="355"> + <text id="364"> + <property name="fontWeight">bold</property> + <property name="contentType">auto</property> + <text-property name="content"><![CDATA[Stock]]></text-property> + </text> + </cell> + <cell id="356"> + <text id="365"> + <property name="fontWeight">bold</property> + <property name="contentType">auto</property> + <text-property name="content"><![CDATA[Month]]></text-property> + </text> + </cell> + </row> + </grid> + </property> + </extended-item> + </property> + <property name="cube">DataCube</property> + <list-property name="boundDataColumns"> + <structure> + <property name="name">productId</property> + <expression name="expression">dimension["Group"]["productId"]</expression> + <property name="dataType">string</property> + </structure> + <structure> + <property name="name">internalName</property> + <expression name="expression">dimension["Group"]["internalName"]</expression> + <property name="dataType">string</property> + </structure> + <structure> + <property name="name">price</property> + <expression name="expression">dimension["Group"]["price"]</expression> + <property name="dataType">string</property> + </structure> + <structure> + <property name="name">stock</property> + <expression name="expression">dimension["Group"]["stock"]</expression> + <property name="dataType">string</property> + </structure> + <structure> + <property name="name">orderDateMonthOfYear</property> + <expression name="expression">dimension["Group"]["orderDateMonthOfYear"]</expression> + <property name="dataType">string</property> + </structure> + <structure> + <property name="name">orderItemSeqId_Group/orderDateMonthOfYear</property> + <expression name="expression">measure["orderItemSeqId"]</expression> + <property name="dataType">integer</property> + <simple-property-list name="aggregateOn"> + <value>Group/orderDateMonthOfYear</value> + </simple-property-list> + <property name="aggregateFunction">SUM</property> + </structure> + <structure> + <property name="name">quantity_Group/orderDateMonthOfYear</property> + <expression name="expression">measure["quantity"]</expression> + <property name="dataType">float</property> + <simple-property-list name="aggregateOn"> + <value>Group/orderDateMonthOfYear</value> + </simple-property-list> + <property name="aggregateFunction">SUM</property> + </structure> + <structure> + <property name="name">extGrossAmount_Group/orderDateMonthOfYear</property> + <expression name="expression">measure["extGrossAmount"]</expression> + <property name="dataType">float</property> + <simple-property-list name="aggregateOn"> + <value>Group/orderDateMonthOfYear</value> + </simple-property-list> + <property name="aggregateFunction">SUM</property> + </structure> + <structure> + <property name="name">orderItemSeqId_Group/productId</property> + <expression name="expression">measure["orderItemSeqId"]</expression> + <property name="dataType">integer</property> + <simple-property-list name="aggregateOn"> + <value>Group/productId</value> + </simple-property-list> + <property name="aggregateFunction">SUM</property> + </structure> + <structure> + <property name="name">quantity_Group/productId</property> + <expression name="expression">measure["quantity"]</expression> + <property name="dataType">float</property> + <simple-property-list name="aggregateOn"> + <value>Group/productId</value> + </simple-property-list> + <property name="aggregateFunction">SUM</property> + </structure> + <structure> + <property name="name">extGrossAmount_Group/productId</property> + <expression name="expression">measure["extGrossAmount"]</expression> + <property name="dataType">float</property> + <simple-property-list name="aggregateOn"> + <value>Group/productId</value> + </simple-property-list> + <property name="aggregateFunction">SUM</property> + </structure> + <structure> + <property name="name">productId_TOTAL</property> + <expression name="expression">dimension["Group"]["productId"]+" TOTAL"</expression> + <property name="dataType">string</property> + </structure> + <structure> + <property name="name">orderItemSeqId</property> + <expression name="expression">measure["orderItemSeqId"]</expression> + <property name="dataType">integer</property> + <property name="aggregateFunction">SUM</property> + </structure> + <structure> + <property name="name">quantity</property> + <expression name="expression">measure["quantity"]</expression> + <property name="dataType">float</property> + <property name="aggregateFunction">SUM</property> + </structure> + <structure> + <property name="name">extGrossAmount</property> + <expression name="expression">measure["extGrossAmount"]</expression> + <property name="dataType">float</property> + <property name="aggregateFunction">SUM</property> + </structure> + </list-property> + </extended-item> + </body> +</report> |
| Free forum by Nabble | Edit this page |
