<?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-v2.xsd">

    <simple-method method-name="getOrder" short-description="Get Orders" login-required="false">
        <if-not-empty field="DateMonth">
            <set field="DateYear" value="2009"/>
            <set field="DateMonth" value="12"/>
            <set field="mount1" from-field="DateMonth" type="Integer"/>
            <calculate field="mount2" type="Integer">
                <calcop field="mount1" operator="subtract">
                    <number value="1"/>
                </calcop>
            </calculate>
            <entity-condition entity-name="SalesOrderItemStarSchema" list="starschemas">
                <condition-list combine="and">
                    <condition-list combine="or">
                        <condition-expr field-name="orderDateMonthOfYear" operator="equals" from-field="DateMonth"/>
                        <condition-expr field-name="orderDateMonthOfYear" operator="equals" from-field="mount2"/>
                    </condition-list>
                    <condition-expr field-name="orderDateYearName" operator="equals" from-field="DateYear"/>
                    <condition-expr field-name="productStoreId" operator="equals" from-field="productStoreId"/>
                </condition-list>
            </entity-condition>
        </if-not-empty>
    </simple-method>
    
</simple-methods>
