ilscipio/scipio-erp

View on GitHub
applications/order/widget/ordermgr/ReportScreens.xml

Summary

Maintainability
Test Coverage
<?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>