<?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"
        xmlns="http://ofbiz.apache.org/Simple-Method" xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method http://ofbiz.apache.org/dtds/simple-methods.xsd">

    <simple-method method-name="testGroupOrderLimitReached" short-description="Test GroupOrder the limit is reached" login-required="false">
        <!-- Test GroupOrder the limit is reached
             Step 1) Create ProductGroupOrder .
             Step 2) Create an order.
             Step 3) Check soldOrderQty is added.
             Step 4) Check ProductGroupOrder expired.
             Step 5) Check Order Item should approved.
        -->
        <!-- Step 1 -->
        <now-timestamp field="nowTimestamp"/>
        <set field="days" value="1" type="Integer"/>
        <call-class-method class-name="org.apache.ofbiz.base.util.UtilDateTime" method-name="addDaysToTimestamp" ret-field="thruDate">
            <field field="nowTimestamp" type="java.sql.Timestamp"/>
            <field field="days" type="int"/>
        </call-class-method>
        <entity-one entity-name="UserLogin" value-field="systemUserLogin">
            <field-map field-name="userLoginId" value="system"/>
        </entity-one>
        <set field="createProductGroupOrderMap.userLogin" from-field="systemUserLogin"/>
        <set field="createProductGroupOrderMap.productId" value="GZ-1000"/>
        <set field="createProductGroupOrderMap.fromDate" from-field="nowTimestamp"/>
        <set field="createProductGroupOrderMap.thruDate" from-field="thruDate"/>
        <set field="createProductGroupOrderMap.statusId" value="GO_CREATED"/>
        <set field="createProductGroupOrderMap.reqOrderQty" value="1" type="BigDecimal"/>
        <set field="createProductGroupOrderMap.soldOrderQty" value="0" type="BigDecimal"/>
        <call-service service-name="createProductGroupOrder" in-map-name="createProductGroupOrderMap">
            <result-to-field result-name="groupOrderId" field="groupOrderId"/>
        </call-service>
        <!-- Step 2 -->
        <field-to-session field="nullField" session-name="orderMode"/>
        <set field="request" from-field="parameters.request"/>
        <set field="response" from-field="parameters.response"/>
        <call-class-method method-name="routeOrderEntry" class-name="org.apache.ofbiz.order.shoppingcart.ShoppingCartEvents" ret-field="result">
            <field field="request" type="javax.servlet.http.HttpServletRequest"/>
            <field field="response" type="javax.servlet.http.HttpServletResponse"/>
        </call-class-method>
        <log level="info" message="===== >>> Event : routeOrderEntry, Response : ${result}"/>
        <entity-one entity-name="UserLogin" value-field="userLogin">
            <field-map field-name="userLoginId" value="admin"/>
        </entity-one>
        <script>groovy:
            request.setParameter("orderMode", "SALES_ORDER");
            request.setParameter("productStoreId", "9000");
            request.setParameter("partyId", "DemoCustomer");
            request.setParameter("currencyUom", "USD");
            session = request.getSession();
            session.setAttribute("userLogin", userLogin);
        </script>
        <call-class-method method-name="initializeOrderEntry" class-name="org.apache.ofbiz.order.shoppingcart.ShoppingCartEvents" ret-field="result">
            <field field="request" type="javax.servlet.http.HttpServletRequest"/>
            <field field="response" type="javax.servlet.http.HttpServletResponse"/>
        </call-class-method>
        <log level="info" message="===== >>> Event : initializeOrderEntry, Response : ${result}"/>
        <call-class-method method-name="setOrderCurrencyAgreementShipDates" class-name="org.apache.ofbiz.order.shoppingcart.ShoppingCartEvents" ret-field="result">
            <field field="request" type="javax.servlet.http.HttpServletRequest"/>
            <field field="response" type="javax.servlet.http.HttpServletResponse"/>
        </call-class-method>
        <log level="info" message="===== >>> Event : setOrderCurrencyAgreementShipDates, Response : ${result}"/>
        <script>groovy:
            request.setParameter("add_product_id", "GZ-1000");
        </script>
        <call-class-method method-name="addToCart" class-name="org.apache.ofbiz.order.shoppingcart.ShoppingCartEvents" ret-field="result">
            <field field="request" type="javax.servlet.http.HttpServletRequest"/>
            <field field="response" type="javax.servlet.http.HttpServletResponse"/>
        </call-class-method>
        <log level="info" message="===== >>> Event : addToCart, Response : ${result}"/>
        <script>groovy:
            request.setParameter("checkoutpage", "quick");
            request.setParameter("shipping_contact_mech_id", "9015");
            request.setParameter("shipping_method", "GROUND@UPS");
            request.setParameter("checkOutPaymentId", "EXT_PAYPAL");
            request.setParameter("is_gift", "false");
            request.setParameter("may_split", "false");
        </script>
        <field-to-request field="nullField" request-name="shoppingCart"/>
        <call-class-method method-name="setQuickCheckOutOptions" class-name="org.apache.ofbiz.order.shoppingcart.CheckOutEvents" ret-field="result">
            <field field="request" type="javax.servlet.http.HttpServletRequest"/>
            <field field="response" type="javax.servlet.http.HttpServletResponse"/>
        </call-class-method>
        <log level="info" message="===== >>> Event : setQuickCheckOutOptions, Response : ${result}"/>
        <call-class-method method-name="createOrder" class-name="org.apache.ofbiz.order.shoppingcart.CheckOutEvents" ret-field="result">
            <field field="request" type="javax.servlet.http.HttpServletRequest"/>
            <field field="response" type="javax.servlet.http.HttpServletResponse"/>
        </call-class-method>
        <log level="info" message="===== >>> Event : createOrder, Response : ${result}"/>
        <call-class-method method-name="processPayment" class-name="org.apache.ofbiz.order.shoppingcart.CheckOutEvents" ret-field="result">
            <field field="request" type="javax.servlet.http.HttpServletRequest"/>
            <field field="response" type="javax.servlet.http.HttpServletResponse"/>
        </call-class-method>
        <log level="info" message="===== >>> Event : processPayment, Response : ${result}"/>
        <call-service-asynch service-name="sendOrderConfirmation"/>
        <call-class-method method-name="destroyCart" class-name="org.apache.ofbiz.order.shoppingcart.ShoppingCartEvents" ret-field="result">
            <field field="request" type="javax.servlet.http.HttpServletRequest"/>
            <field field="response" type="javax.servlet.http.HttpServletResponse"/>
        </call-class-method>
        <log level="info" message="===== >>> Event : destroyCart, Response = ${result}"/>
        <!-- Step 3 -->
        <entity-one entity-name="ProductGroupOrder" value-field="productGroupOrder">
            <field-map field-name="groupOrderId" from-field="groupOrderId"/>
        </entity-one>
        <assert>
            <if-compare field="productGroupOrder.soldOrderQty" operator="not-equals" value="0"/>
        </assert>
        <!-- Step 4 -->
        <set field="checkProductGroupOrderExpiredMap.userLogin" from-field="systemUserLogin"/>
        <set field="checkProductGroupOrderExpiredMap.groupOrderId" from-field="groupOrderId"/>
        <call-service service-name="checkProductGroupOrderExpired" in-map-name="checkProductGroupOrderExpiredMap"/>
        <!-- Step 5 -->
        <entity-and entity-name="OrderItemGroupOrder" list="orderItemGroupOrders">
            <field-map field-name="groupOrderId" from-field="groupOrderId"/>
        </entity-and>
        <first-from-list list="orderItemGroupOrders" entry="orderItemGroupOrder"/>
        <entity-one entity-name="OrderItem" value-field="orderItem">
            <field-map field-name="orderId" from-field="orderItemGroupOrder.orderId"/>
            <field-map field-name="orderItemSeqId" from-field="orderItemGroupOrder.orderItemSeqId"/>
        </entity-one>
        <assert>
            <if-compare field="orderItem.statusId" operator="equals" value="ITEM_APPROVED"/>
        </assert>
        <check-errors/>
    </simple-method>

    <simple-method method-name="testGroupOrderLimitNotReached" short-description="Test GroupOrder the limit is not reached" login-required="false">
        <!-- Test GroupOrder the limit is not reached
             Step 1) Create ProductGroupOrder.
             Step 2) Create an order.
             Step 3) Check soldOrderQty is added.
             Step 4) Check ProductGroupOrder expired.
             Step 5) Check Order Item should cancelled.
        -->
        <!-- Step 1 -->
        <now-timestamp field="nowTimestamp"/>
        <set field="days" value="1" type="Integer"/>
        <call-class-method class-name="org.apache.ofbiz.base.util.UtilDateTime" method-name="addDaysToTimestamp" ret-field="thruDate">
            <field field="nowTimestamp" type="java.sql.Timestamp"/>
            <field field="days" type="int"/>
        </call-class-method>
        <entity-one entity-name="UserLogin" value-field="systemUserLogin">
            <field-map field-name="userLoginId" value="system"/>
        </entity-one>
        <set field="createProductGroupOrderMap.userLogin" from-field="systemUserLogin"/>
        <set field="createProductGroupOrderMap.productId" value="GZ-1001"/>
        <set field="createProductGroupOrderMap.fromDate" from-field="nowTimestamp"/>
        <set field="createProductGroupOrderMap.thruDate" from-field="thruDate"/>
        <set field="createProductGroupOrderMap.statusId" value="GO_CREATED"/>
        <set field="createProductGroupOrderMap.reqOrderQty" value="2" type="BigDecimal"/>
        <set field="createProductGroupOrderMap.soldOrderQty" value="0" type="BigDecimal"/>
        <call-service service-name="createProductGroupOrder" in-map-name="createProductGroupOrderMap">
            <result-to-field result-name="groupOrderId" field="groupOrderId"/>
        </call-service>
        <!-- Step 2 -->
        <field-to-session field="nullField" session-name="orderMode"/>
        <set field="request" from-field="parameters.request"/>
        <set field="response" from-field="parameters.response"/>
        <call-class-method method-name="routeOrderEntry" class-name="org.apache.ofbiz.order.shoppingcart.ShoppingCartEvents" ret-field="result">
            <field field="request" type="javax.servlet.http.HttpServletRequest"/>
            <field field="response" type="javax.servlet.http.HttpServletResponse"/>
        </call-class-method>
        <log level="info" message="===== >>> Event : routeOrderEntry, Response : ${result}"/>
        <entity-one entity-name="UserLogin" value-field="userLogin">
            <field-map field-name="userLoginId" value="admin"/>
        </entity-one>
        <script>groovy:
            request.setParameter("orderMode", "SALES_ORDER");
            request.setParameter("productStoreId", "9000");
            request.setParameter("partyId", "DemoCustomer");
            request.setParameter("currencyUom", "USD");
            session = request.getSession();
            session.setAttribute("userLogin", userLogin);
        </script>
        <call-class-method method-name="initializeOrderEntry" class-name="org.apache.ofbiz.order.shoppingcart.ShoppingCartEvents" ret-field="result">
            <field field="request" type="javax.servlet.http.HttpServletRequest"/>
            <field field="response" type="javax.servlet.http.HttpServletResponse"/>
        </call-class-method>
        <log level="info" message="===== >>> Event : initializeOrderEntry, Response : ${result}"/>
        <call-class-method method-name="setOrderCurrencyAgreementShipDates" class-name="org.apache.ofbiz.order.shoppingcart.ShoppingCartEvents" ret-field="result">
            <field field="request" type="javax.servlet.http.HttpServletRequest"/>
            <field field="response" type="javax.servlet.http.HttpServletResponse"/>
        </call-class-method>
        <log level="info" message="===== >>> Event : setOrderCurrencyAgreementShipDates, Response : ${result}"/>
        <script>groovy:
            request.setParameter("add_product_id", "GZ-1001");
        </script>
        <call-class-method method-name="addToCart" class-name="org.apache.ofbiz.order.shoppingcart.ShoppingCartEvents" ret-field="result">
            <field field="request" type="javax.servlet.http.HttpServletRequest"/>
            <field field="response" type="javax.servlet.http.HttpServletResponse"/>
        </call-class-method>
        <log level="info" message="===== >>> Event : addToCart, Response : ${result}"/>
        <script>groovy:
            request.setParameter("checkoutpage", "quick");
            request.setParameter("shipping_contact_mech_id", "9015");
            request.setParameter("shipping_method", "GROUND@UPS");
            request.setParameter("checkOutPaymentId", "EXT_PAYPAL");
            request.setParameter("is_gift", "false");
            request.setParameter("may_split", "false");
        </script>
        <field-to-request field="nullField" request-name="shoppingCart"/>
        <call-class-method method-name="setQuickCheckOutOptions" class-name="org.apache.ofbiz.order.shoppingcart.CheckOutEvents" ret-field="result">
            <field field="request" type="javax.servlet.http.HttpServletRequest"/>
            <field field="response" type="javax.servlet.http.HttpServletResponse"/>
        </call-class-method>
        <log level="info" message="===== >>> Event : setQuickCheckOutOptions, Response : ${result}"/>
        <call-class-method method-name="createOrder" class-name="org.apache.ofbiz.order.shoppingcart.CheckOutEvents" ret-field="result">
            <field field="request" type="javax.servlet.http.HttpServletRequest"/>
            <field field="response" type="javax.servlet.http.HttpServletResponse"/>
        </call-class-method>
        <log level="info" message="===== >>> Event : createOrder, Response : ${result}"/>
        <call-class-method method-name="processPayment" class-name="org.apache.ofbiz.order.shoppingcart.CheckOutEvents" ret-field="result">
            <field field="request" type="javax.servlet.http.HttpServletRequest"/>
            <field field="response" type="javax.servlet.http.HttpServletResponse"/>
        </call-class-method>
        <log level="info" message="===== >>> Event : processPayment, Response : ${result}"/>
        <call-service-asynch service-name="sendOrderConfirmation"/>
        <call-class-method method-name="destroyCart" class-name="org.apache.ofbiz.order.shoppingcart.ShoppingCartEvents" ret-field="result">
            <field field="request" type="javax.servlet.http.HttpServletRequest"/>
            <field field="response" type="javax.servlet.http.HttpServletResponse"/>
        </call-class-method>
        <log level="info" message="===== >>> Event : destroyCart, Response = ${result}"/>
        <!-- Step 3 -->
        <entity-one entity-name="ProductGroupOrder" value-field="productGroupOrder">
            <field-map field-name="groupOrderId" from-field="groupOrderId"/>
        </entity-one>
        <assert>
            <if-compare field="productGroupOrder.soldOrderQty" operator="not-equals" value="0"/>
        </assert>
        <!-- Step 4 -->
        <set field="checkProductGroupOrderExpiredMap.userLogin" from-field="systemUserLogin"/>
        <set field="checkProductGroupOrderExpiredMap.groupOrderId" from-field="groupOrderId"/>
        <call-service service-name="checkProductGroupOrderExpired" in-map-name="checkProductGroupOrderExpiredMap"/>
        <!-- Step 5 -->
        <entity-and entity-name="OrderItemGroupOrder" list="orderItemGroupOrders">
            <field-map field-name="groupOrderId" from-field="groupOrderId"/>
        </entity-and>
        <first-from-list list="orderItemGroupOrders" entry="orderItemGroupOrder"/>
        <entity-one entity-name="OrderItem" value-field="orderItem">
            <field-map field-name="orderId" from-field="orderItemGroupOrder.orderId"/>
            <field-map field-name="orderItemSeqId" from-field="orderItemGroupOrder.orderItemSeqId"/>
        </entity-one>
        <assert>
            <if-compare field="orderItem.statusId" operator="equals" value="ITEM_CANCELLED"/>
        </assert>
        <check-errors/>
    </simple-method>
</simple-methods>
