applications/order/widget/ordermgr/ReportScreens.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
This file is subject to the terms and conditions defined in the
files 'LICENSE' and 'NOTICE', which are part of this source
code package.
-->
<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-screen.xsd">
<screen name="OrderPurchaseReportOptions">
<section>
<actions>
<set field="titleProperty" value="OrderReports"/>
<property-map resource="BirtUiLabels" map-name="uiLabelMap" global="true"/>
</actions>
<widgets>
<decorator-screen name="CommonReportDecorator" location="${parameters.mainDecoratorLocation}">
<decorator-section name="body">
<label style="common-msg-info-important">${uiLabelMap.BirtOrderReportsWarning}</label>
<container style="${styles.grid_large}12 ${styles.grid_cell}">
<include-portal-page id="OrderReportPage"/>
</container>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="OrderReportSalesByStore">
<section>
<actions>
<property-map resource="ProductUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="AccountingUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="OrderUiLabels" map-name="uiLabelMap" global="true"/>
</actions>
<widgets>
<screenlet title="${uiLabelMap.OrderReportSalesByStore}">
<include-form name="SalesByStoreReport" location="component://order/widget/ordermgr/ReportForms.xml"/>
</screenlet>
</widgets>
</section>
</screen>
<screen name="OrderReportOpenOrderItems">
<section>
<actions>
<property-map resource="ProductUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="OrderUiLabels" map-name="uiLabelMap" global="true"/>
</actions>
<widgets>
<screenlet title="${uiLabelMap.OrderReportOpenOrderItems}">
<include-form name="OpenOrderItemsReport" location="component://order/widget/ordermgr/ReportForms.xml"/>
</screenlet>
</widgets>
</section>
</screen>
<screen name="OrderReportPurchasesByOrganization">
<section>
<actions>
<property-map resource="AccountingUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="OrderUiLabels" map-name="uiLabelMap" global="true"/>
</actions>
<widgets>
<screenlet title="${uiLabelMap.OrderReportPurchasesByOrganization}">
<include-form name="PurchasesByOrganizationReport" location="component://order/widget/ordermgr/ReportForms.xml"/>
</screenlet>
</widgets>
</section>
</screen>
<screen name="OrderReportPurchasesByProduct">
<section>
<actions>
<property-map resource="ProductUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="OrderUiLabels" map-name="uiLabelMap" global="true"/>
</actions>
<widgets>
<screenlet title="${uiLabelMap.OrderReportPurchasesByProduct}">
<include-form name="OrderPurchaseProductOptions" location="component://order/widget/ordermgr/ReportForms.xml"/>
</screenlet>
</widgets>
</section>
</screen>
<screen name="OrderReportPurchasesByPaymentMethod">
<section>
<actions>
<property-map resource="ProductUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="OrderUiLabels" map-name="uiLabelMap" global="true"/>
</actions>
<widgets>
<screenlet title="${uiLabelMap.OrderReportPurchasesByPaymentMethod}">
<include-form name="OrderPurchasePaymentOptions" location="component://order/widget/ordermgr/ReportForms.xml"/>
</screenlet>
</widgets>
</section>
</screen>
<screen name="OrderPurchaseReportPayment">
<section>
<actions>
<set field="titleProperty" value="OrderReportPurchasesByPaymentMethod"/>
<property-map resource="OrderUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="AccountingUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="ProductUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="PartyUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/>
<entity-condition entity-name="OrderPurchasePaymentSummary" list="orderPurchasePaymentSummaryList">
<condition-list combine="and">
<condition-expr field-name="productStoreId" operator="equals" from-field="parameters.productStoreId" ignore-if-empty="true"/>
<condition-expr field-name="originFacilityId" operator="equals" from-field="parameters.originFacilityId" ignore-if-empty="true"/>
<condition-expr field-name="terminalId" operator="equals" from-field="parameters.terminalId" ignore-if-empty="true"/>
<condition-expr field-name="statusId" operator="equals" from-field="parameters.statusId" ignore-if-empty="true"/>
<condition-expr field-name="orderDate" operator="greater-equals" from-field="parameters.fromOrderDate" ignore-if-empty="true"/>
<condition-expr field-name="orderDate" operator="less" from-field="parameters.thruOrderDate" ignore-if-empty="true"/>
</condition-list>
<select-field field-name="productStoreId"/>
<select-field field-name="originFacilityId"/>
<select-field field-name="terminalId"/>
<select-field field-name="statusId"/>
<select-field field-name="paymentMethodTypeId"/>
<select-field field-name="description"/>
<select-field field-name="maxAmount"/>
<order-by field-name="productStoreId"/>
<order-by field-name="originFacilityId"/>
<order-by field-name="terminalId"/>
<order-by field-name="paymentMethodTypeId"/>
</entity-condition>
</actions>
<widgets>
<platform-specific>
<xsl-fo><html-template location="component://order/webapp/ordermgr/reports/OrderPurchaseReportPayment.fo.ftl"/></xsl-fo>
</platform-specific>
</widgets>
</section>
</screen>
<screen name="OrderPurchaseReportProduct">
<section>
<actions>
<set field="titleProperty" value="OrderReportPurchasesByProduct"/>
<property-map resource="OrderUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="ProductUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="PartyUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/>
<entity-condition entity-name="OrderPurchaseProductSummary" list="orderPurchaseProductSummaryList">
<condition-list combine="and">
<condition-expr field-name="productStoreId" operator="equals" from-field="parameters.productStoreId" ignore-if-empty="true"/>
<condition-expr field-name="orderTypeId" operator="equals" from-field="parameters.orderTypeId" ignore-if-empty="true"/>
<condition-expr field-name="originFacilityId" operator="equals" from-field="parameters.originFacilityId" ignore-if-empty="true"/>
<condition-expr field-name="terminalId" operator="equals" from-field="parameters.terminalId" ignore-if-empty="true"/>
<condition-expr field-name="statusId" operator="equals" from-field="parameters.statusId" ignore-if-empty="true"/>
<condition-expr field-name="orderDate" operator="greater-equals" from-field="parameters.fromOrderDate" ignore-if-empty="true"/>
<condition-expr field-name="orderDate" operator="less" from-field="parameters.thruOrderDate" ignore-if-empty="true"/>
</condition-list>
<select-field field-name="productStoreId"/>
<select-field field-name="originFacilityId"/>
<select-field field-name="terminalId"/>
<select-field field-name="statusId"/>
<select-field field-name="productId"/>
<select-field field-name="internalName"/>
<select-field field-name="quantity"/>
<select-field field-name="cancelQuantity"/>
<order-by field-name="productStoreId"/>
<order-by field-name="originFacilityId"/>
<order-by field-name="terminalId"/>
<order-by field-name="productId"/>
</entity-condition>
</actions>
<widgets>
<platform-specific>
<xsl-fo><html-template location="component://order/webapp/ordermgr/reports/OrderPurchaseReportProduct.fo.ftl"/></xsl-fo>
</platform-specific>
</widgets>
</section>
</screen>
<!-- generates the pdf for report of sales by store and customer, grouped by product -->
<screen name="SalesByStoreReport">
<section>
<actions>
<set field="titleProperty" value="OrderReportSalesByStore"/>
<set field="toPartyId" from-field="parameters.toPartyId"/>
<property-map resource="OrderUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="ProductUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="PartyUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/>
<entity-condition entity-name="OrderReportSalesGroupByProduct" list="productReportList">
<condition-list combine="and">
<!-- this can use the other view, so long as the filter is by SALES_ORDER and fromPartyId = ProductStore.payToPartyId if provided -->
<condition-expr field-name="productStoreId" operator="equals" from-field="parameters.productStoreId" ignore-if-empty="true"/>
<condition-expr field-name="partyId" operator="equals" from-field="parameters.toPartyId" ignore-if-empty="true"/>
<condition-expr field-name="roleTypeId" operator="equals" value="BILL_TO_CUSTOMER"/>
<condition-expr field-name="orderTypeId" operator="equals" value="SALES_ORDER"/>
<!-- possible bug: using from-field="parameters.orderStatusId" did not work for the following line -->
<condition-expr field-name="orderStatusId" operator="equals" value="${parameters.orderStatusId}" ignore-if-empty="true"/>
<condition-expr field-name="orderDate" operator="greater-equals" from-field="parameters.fromOrderDate" ignore-if-empty="true"/>
<condition-expr field-name="orderDate" operator="less" from-field="parameters.thruOrderDate" ignore-if-empty="true"/>
</condition-list>
<!-- note that we need to explicitly identify the fields to select, otherwise the query will include fields that can't logically be grouped -->
<select-field field-name="productStoreId"/>
<select-field field-name="storeName"/>
<select-field field-name="productId"/>
<select-field field-name="internalName"/>
<select-field field-name="quantityOrdered"/>
<select-field field-name="unitPrice"/>
<order-by field-name="storeName"/>
<order-by field-name="internalName"/>
</entity-condition>
</actions>
<widgets>
<platform-specific>
<xsl-fo><html-template location="component://order/webapp/ordermgr/reports/SalesByStoreReport.fo.ftl"/></xsl-fo>
</platform-specific>
</widgets>
</section>
</screen>
<!-- generates report of open order items -->
<screen name="OpenOrderItemsReport">
<section>
<actions>
<set field="titleProperty" value="OrderReportOpenOrderItems"/>
<set field="viewSize" value="${parameters.VIEW_SIZE}" default-value="20" type="Integer"/>
<set field="viewIndex" value="${parameters.VIEW_INDEX}" default-value="0" type="Integer"/>
<set field="fromOrderDate" from-field="parameters.fromOrderDate" type="Timestamp"/>
<set field="thruOrderDate" from-field="parameters.thruOrderDate" type="Timestamp"/>
<script location="component://order/webapp/ordermgr/WEB-INF/actions/reports/OpenOrderItemsReport.groovy"/>
</actions>
<widgets>
<decorator-screen name="CommonReportDecorator" location="${parameters.mainDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.OrderReportOpenOrderItems} - ${productStore.storeName}">
<include-form name="OpenOrderItemsList" location="component://order/widget/ordermgr/ReportForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.OrderReportOpenOrderItems}">
<include-form name="OpenOrderItemsTotal" location="component://order/widget/ordermgr/ReportForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<!-- generates the pdf for report of purchases by organization, grouped by product -->
<screen name="PurchasesByOrganizationReport">
<section>
<actions>
<set field="titleProperty" value="OrderReportPurchasesByOrganization"/>
<set field="toPartyId" from-field="parameters.toPartyId"/>
<set field="fromPartyId" from-field="parameters.fromPartyId"/>
<property-map resource="OrderUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="ProductUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="PartyUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/>
<entity-condition entity-name="OrderReportPurchasesGroupByProduct" list="productReportList">
<condition-list combine="and">
<condition-expr field-name="toPartyId" operator="equals" from-field="parameters.toPartyId" ignore-if-empty="true"/>
<condition-expr field-name="toRoleTypeId" operator="equals" value="BILL_TO_CUSTOMER"/>
<condition-expr field-name="fromPartyId" operator="equals" from-field="parameters.fromPartyId" ignore-if-empty="true"/>
<condition-expr field-name="fromRoleTypeId" operator="equals" value="BILL_FROM_VENDOR"/>
<condition-expr field-name="orderTypeId" operator="equals" value="PURCHASE_ORDER"/>
<condition-expr field-name="orderStatusId" operator="equals" value="${parameters.orderStatusId}" ignore-if-empty="true"/>
<condition-expr field-name="orderDate" operator="greater-equals" from-field="parameters.fromOrderDate" ignore-if-empty="true"/>
<condition-expr field-name="orderDate" operator="less" from-field="parameters.thruOrderDate" ignore-if-empty="true"/>
</condition-list>
<!-- note that we need to explicitly identify the fields to select, otherwise the query will include fields that can't logically be grouped -->
<select-field field-name="productId"/>
<select-field field-name="internalName"/>
<select-field field-name="quantity"/>
<select-field field-name="unitPrice"/>
<order-by field-name="internalName"/>
</entity-condition>
</actions>
<widgets>
<platform-specific>
<xsl-fo><html-template location="component://order/webapp/ordermgr/reports/PurchasesByOrganizationReport.fo.ftl"/></xsl-fo>
</platform-specific>
</widgets>
</section>
</screen>
</screens>