<?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="createProductStore" short-description="Create a Product Store">
        <check-permission permission="CATALOG" action="_CREATE">
            <fail-property resource="ProductUiLabels" property="ProductCatalogCreatePermissionError"/>
        </check-permission>
        <check-errors/>

        <if-compare field="parameters.oneInventoryFacility" operator="equals" value="Y">
            <if-empty field="parameters.inventoryFacilityId">
                <add-error>
                    <fail-property resource="ProductUiLabels" property="InventoryFacilityIdRequired"/>
                </add-error>
            </if-empty>
            <check-errors/>
        </if-compare>

        <if-compare field="parameters.showPricesWithVatTax" operator="equals" value="Y">
            <if-empty field="parameters.vatTaxAuthGeoId">
                <add-error>
                    <fail-property resource="ProductUiLabels" property="ProductVatTaxAuthGeoNotSet"/>
                </add-error>
            </if-empty>
            <if-empty field="parameters.vatTaxAuthPartyId">
                <add-error>
                    <fail-property resource="ProductUiLabels" property="ProductVatTaxAuthPartyNotSet"/>
                </add-error>
            </if-empty>
            <check-errors/>
        </if-compare>

        <make-value value-field="newEntity" entity-name="ProductStore"/>
        <set-nonpk-fields map="parameters" value-field="newEntity"/>

        <sequenced-id sequence-name="ProductStore" field="productStoreId"/>
        <set from-field="productStoreId" field="newEntity.productStoreId"/>

        <field-to-result field="productStoreId" result-name="productStoreId"/>
        <create-value value-field="newEntity"/>

        <!-- create the ProductStoreFacility record -->
        <now-timestamp field="nowTimestamp"/>

        <if-not-empty field="newEntity.inventoryFacilityId">
            <make-value value-field="storeFacility" entity-name="ProductStoreFacility"/>
            <set from-field="newEntity.inventoryFacilityId" field="storeFacility.facilityId"/>
            <set from-field="newEntity.productStoreId" field="storeFacility.productStoreId"/>
            <set from-field="nowTimestamp" field="storeFacility.fromDate"/>
            <create-value value-field="storeFacility"/>
        </if-not-empty>
    </simple-method>
    <simple-method method-name="updateProductStore" short-description="Update a Product Store">
        <check-permission permission="CATALOG" action="_UPDATE">
            <fail-property resource="ProductUiLabels" property="ProductCatalogUpdatePermissionError"/>
        </check-permission>
        <check-errors/>
        
         <if-compare field="parameters.oneInventoryFacility" operator="equals" value="Y">
            <if-empty field="parameters.inventoryFacilityId">
                <add-error>
                    <fail-property resource="ProductUiLabels" property="InventoryFacilityIdRequired"/>
                </add-error>
            </if-empty>
            <check-errors/>
        </if-compare>

        <set from-field="parameters.productStoreId" field="lookupPKMap.productStoreId"/>
        <find-by-primary-key entity-name="ProductStore" map="lookupPKMap" value-field="store"/>
        <set from-field="store.inventoryFacilityId" field="oldFacilityId"/>
        <set-nonpk-fields map="parameters" value-field="store"/>

        <if-compare field="store.showPricesWithVatTax" operator="equals" value="Y">
            <if-empty field="store.vatTaxAuthGeoId">
                <add-error>
                    <fail-property resource="ProductUiLabels" property="ProductVatTaxAuthGeoNotSet"/>
                </add-error>
            </if-empty>
            <if-empty field="store.vatTaxAuthPartyId">
                <add-error>
                    <fail-property resource="ProductUiLabels" property="ProductVatTaxAuthPartyNotSet"/>
                </add-error>
            </if-empty>
            <check-errors/>
        </if-compare>

        <store-value value-field="store"/>

        <!-- update the ProductStoreFacility record -->
        <now-timestamp field="nowTimestamp"/>
        <if-compare-field field="store.inventoryFacilityId" to-field="oldFacilityId" operator="not-equals">
            <if-compare field="store.oneInventoryFacility" operator="equals" value="Y">
                <!-- expire all the facilities -->
                <set from-field="store.productStoreId" field="lookupPFMap.productStoreId"/>
                <find-by-and entity-name="ProductStoreFacility" map="lookupPFMap" list="storeFacilities"/>
                <filter-list-by-date list="storeFacilities"/>
                <iterate list="storeFacilities" entry="facility">
                    <set from-field="nowTimestamp" field="facility.thruDate"/>
                    <store-value value-field="facility"/>
                </iterate>
            </if-compare>
            <!-- create the new entry -->
            <make-value value-field="storeFacility" entity-name="ProductStoreFacility"/>
            <set from-field="store.inventoryFacilityId" field="storeFacility.facilityId"/>
            <set from-field="store.productStoreId" field="storeFacility.productStoreId"/>
            <set from-field="nowTimestamp" field="storeFacility.fromDate"/>
            <create-value value-field="storeFacility"/>
        </if-compare-field>
    </simple-method>

    <!-- Store Inventory Services -->
    <simple-method method-name="reserveStoreInventory" short-description="Reserve Store Inventory">
        <entity-one entity-name="Product" value-field="product" use-cache="true"/>
        <entity-one entity-name="ProductStore" value-field="productStore" use-cache="true"/>
        <entity-one entity-name="OrderHeader" value-field="orderHeader" use-cache="true"/>
        <set field="parameters.priority" from-field="orderHeader.priority"/>
        <if-empty field="productStore">
            <add-error>
                <fail-property resource="ProductUiLabels" property="ProductProductStoreNotFound"/>
            </add-error>
            <check-errors/>
        </if-empty>

        <!-- if prodCatalog is set to not reserve inventory, break here -->
        <if-compare value="N" operator="equals" field="productStore.reserveInventory">
            <!-- note: if not set, defaults to yes, reserve inventory -->
            <log level="verbose" message="ProductStore with id ${productStore.productStoreId}, is set to NOT reserve inventory, not reserving inventory"/>
            <field-to-result field="parameters.quantity" result-name="quantityNotReserved"/>
            <return response-code="success"/>
        </if-compare>

        <call-simple-method method-name="isStoreInventoryRequiredInline"/>

        <set from-field="parameters.facilityId" field="facilityId"/>
        <if-empty field="facilityId">
            <if-compare field="productStore.oneInventoryFacility" operator="equals" value="Y">
                <if-empty field="productStore.inventoryFacilityId">
                    <add-error>
                        <fail-property resource="ProductUiLabels" property="ProductProductStoreNoSpecifiedInventoryFacility"/>
                    </add-error>
                    <check-errors/>
                </if-empty>
                <set-service-fields service-name="reserveProductInventoryByFacility" map="parameters" to-map="callServiceMap"/>
                <set from-field="productStore.inventoryFacilityId" field="callServiceMap.facilityId"/>
                <set from-field="requireInventory" field="callServiceMap.requireInventory"/>
                <set from-field="productStore.reserveOrderEnumId" field="callServiceMap.reserveOrderEnumId"/>
                <call-service service-name="reserveProductInventoryByFacility" in-map-name="callServiceMap">
                    <result-to-field result-name="quantityNotReserved"/>
                </call-service>

                <if-compare field="quantityNotReserved" operator="equals" value="0" type="BigDecimal">
                    <log level="info" message="Inventory IS reserved in facility with id [${productStore.inventoryFacilityId}] for product id [${parameters.productId}]; desired quantity was ${parameters.quantity}"/>
                <else>
                    <log level="info" message="There is insufficient inventory available in facility with id [${productStore.inventoryFacilityId}] for product id [${parameters.productId}]; desired quantity is ${parameters.quantity}, amount could not reserve is ${quantityNotReserved}"/>
                </else>
                </if-compare>
            <else>
                <entity-and entity-name="ProductStoreFacility" list="productStoreFacilities" use-cache="true">
                    <field-map field-name="productStoreId" from-field="productStore.productStoreId"/>
                    <order-by field-name="sequenceNum"/>
                </entity-and>
                <iterate list="productStoreFacilities" entry="productStoreFacility">
                    <!-- in this case quantityNotReserved will always be empty until it finds a facility it can totally reserve from, then it will be 0.0 and we are done -->
                    <if-empty field="storeFound">
                        <!-- TODO: must entire quantity be available in one location? -->
                        <!-- Right now the answer is yes, it only succeeds if one facility has sufficient inventory for the order. -->
                        <set from-field="parameters.productId" field="callServiceMap.productId"/>
                        <set from-field="productStoreFacility.facilityId" field="callServiceMap.facilityId"/>
                        <log level="info" message="ProductStoreService:In productStoreFacilities loop: [${parameters.facilityId}]"/>
                        <call-service service-name="getInventoryAvailableByFacility" in-map-name="callServiceMap">
                            <result-to-field result-name="availableToPromiseTotal"/>
                        </call-service>
                        <clear-field field="callServiceMap"/>

                        <if-compare-field field="availableToPromiseTotal" to-field="parameters.quantity" operator="greater-equals" type="BigDecimal">
                            <set field="storeFound" from-field="productStoreFacility"/>
                        </if-compare-field>
                        <clear-field field="availableToPromiseTotal"/>
                    </if-empty>
                </iterate>

                <!-- didn't find anything? Take the first facility from list -->
                <if-empty field="storeFound">
                    <first-from-list list="productStoreFacilities" entry="storeFound"/>
                </if-empty>
                <set from-field="storeFound.facilityId" field="facilityId" default-value=""/>
                <set-service-fields service-name="reserveProductInventoryByFacility" map="parameters" to-map="callServiceMap"/>
                <set from-field="facilityId" field="callServiceMap.facilityId"/>
                <set from-field="requireInventory" field="callServiceMap.requireInventory"/>
                <set from-field="productStore.reserveOrderEnumId" field="callServiceMap.reserveOrderEnumId"/>
                <call-service service-name="reserveProductInventoryByFacility" in-map-name="callServiceMap">
                    <result-to-field result-name="quantityNotReserved"/>
                </call-service>
                <log level="info" message="Inventory IS reserved in facility with id [${storeFound.facilityId}] for product id [${parameters.productId}]; desired quantity was ${parameters.quantity}"/>
            </else>
            </if-compare>
        <else>
            <entity-and entity-name="ProductStoreFacility" list="productStoreFacilities" use-cache="true">
                <field-map field-name="productStoreId" from-field="productStore.productStoreId"/>
                <field-map field-name="facilityId" from-field="facilityId"/>
                <order-by field-name="sequenceNum"/>
            </entity-and>
            <iterate list="productStoreFacilities" entry="productStoreFacility">
                <!-- Search Product Store Facilities to insure the facility passed in is associated to the Product Store passed in -->
                <set field="facilityFound" from-field="productStoreFacility"/>
                <log level="info" message="ProductStoreService:Facility Found : [${facilityFound}]"/>
            </iterate>
            <if-empty field="facilityFound">
                <add-error>
                    <fail-property resource="ProductUiLabels" property="FacilityNoAssociatedWithProcuctStore"/>
                </add-error>
                <check-errors/>
            </if-empty>
            <set-service-fields service-name="reserveProductInventoryByFacility" map="parameters" to-map="callServiceMap"/>
            <set from-field="facilityId" field="callServiceMap.facilityId"/>
            <set from-field="requireInventory" field="callServiceMap.requireInventory"/>
            <set from-field="productStore.reserveOrderEnumId" field="callServiceMap.reserveOrderEnumId"/>
            <call-service service-name="reserveProductInventoryByFacility" in-map-name="callServiceMap">
                <result-to-field result-name="quantityNotReserved"/>
            </call-service>
            <if-compare field="quantityNotReserved" operator="equals" value="0" type="BigDecimal">
                <log level="info" message="Inventory IS reserved in facility with id [${facilityId}] for product id [${parameters.productId}]; desired quantity was ${parameters.quantity}"/>
            <else>
                <log level="info" message="There is insufficient inventory available in facility with id [${facilityId}] for product id [${parameters.productId}]; desired quantity is ${parameters.quantity}, amount could not reserve is ${quantityNotReserved}"/>
            </else>
            </if-compare>
        </else>
        </if-empty>
        <field-to-result field="quantityNotReserved"/>
    </simple-method>

    <simple-method method-name="isStoreInventoryRequired" short-description="Is Store Inventory Required" login-required="false">
        <if-empty field="parameters.productStore">
            <entity-one entity-name="ProductStore" value-field="productStore" use-cache="true"/>
        <else>
            <set from-field="parameters.productStore" field="productStore"/>
        </else>
        </if-empty>
        <if-empty field="parameters.product">
            <entity-one entity-name="Product" value-field="product" use-cache="true"/>
        <else>
            <set from-field="parameters.product" field="product"/>
        </else>
        </if-empty>

        <call-simple-method method-name="isStoreInventoryRequiredInline"/>
        <field-to-result field="requireInventory"/>
    </simple-method>
    <simple-method method-name="isStoreInventoryRequiredInline" short-description="Is Store Inventory Required" login-required="false">
        <set from-field="product.requireInventory" field="requireInventory"/>
        <if-empty field="requireInventory">
            <set from-field="productStore.requireInventory" field="requireInventory"/>
        </if-empty>
        <if-empty field="requireInventory">
            <set value="Y" field="requireInventory"/>
        </if-empty>
    </simple-method>

    <simple-method method-name="isStoreInventoryAvailable" short-description="Is Store Inventory Available" login-required="false">
        <if-empty field="parameters.productStore">
            <entity-one entity-name="ProductStore" value-field="productStore" use-cache="true"/>
        <else>
            <set from-field="parameters.productStore" field="productStore"/>
        </else>
        </if-empty>
        <if-empty field="parameters.product">
            <entity-one entity-name="Product" value-field="product" use-cache="true"/>
        <else>
            <set from-field="parameters.product" field="product"/>
        </else>
        </if-empty>

        <!-- If the given product is a SERVICE or DIGITAL_GOOD -->
        <if>
            <condition>
                <or>
                    <if-compare field="product.productTypeId" operator="equals" value="SERVICE"/>
                    <if-compare field="product.productTypeId" operator="equals" value="DIGITAL_GOOD"/>
                </or>
            </condition>
            <then>
                <log level="verbose" message="Product with id ${product.productId}, is of type ${product.productTypeId}, returning true for inventory available check"/>
                <set value="Y" field="available"/>
                <field-to-result field="available"/>
                <return/>
            </then>
        </if>

        <!-- TODO: what to do with ASSET_USAGE? Only done elsewhere? Would need date/time range info to check availability -->

        <!-- if prodCatalog is set to not check inventory break here -->
        <if-compare field="productStore.checkInventory" operator="equals" value="N">
            <!-- note: if not set, defaults to yes, check inventory -->
            <log level="verbose" message="ProductStore with id ${productStore.productStoreId}, is set to NOT check inventory, returning true for inventory available check"/>
            <set value="Y" field="available"/>
            <field-to-result field="available"/>
            <return/>
        </if-compare>

        <if-compare value="Y" operator="equals" field="productStore.oneInventoryFacility">
            <if-empty field="productStore.inventoryFacilityId">
                <add-error>
                    <fail-property resource="ProductUiLabels" property="ProductProductStoreNotCheckAvailability"/>
                </add-error>
                <check-errors/>
            </if-empty>

            <set from-field="parameters.productId" field="callServiceMap.productId"/>
            <set from-field="productStore.inventoryFacilityId" field="callServiceMap.facilityId"/>
            <set field="isMarketingPkg" value="${groovy: org.apache.ofbiz.entity.util.EntityTypeUtil.hasParentType(delegator, 'ProductType', 'productTypeId', product.productTypeId, 'parentTypeId', 'MARKETING_PKG')}" type="Boolean"/>
            <if-compare field="isMarketingPkg" operator="equals" value="true" type="Boolean">
                <call-service service-name="getMktgPackagesAvailable" in-map-name="callServiceMap">
                    <result-to-field result-name="availableToPromiseTotal"/>
                </call-service>
                <else>
                    <call-service service-name="getInventoryAvailableByFacility" in-map-name="callServiceMap">
                        <result-to-field result-name="availableToPromiseTotal"/>
                    </call-service>
                </else>
            </if-compare>
            <!-- check to see if we got enough back... -->
            <if-compare-field field="availableToPromiseTotal" to-field="parameters.quantity" operator="greater-equals" type="BigDecimal">
                <set value="Y" field="available"/>
                <log level="info" message="Inventory IS available in facility with id ${productStore.inventoryFacilityId} for product id ${parameters.productId}; desired quantity is ${parameters.quantity}, available quantity is ${availableToPromiseTotal}"/>
            <else>
                <set value="N" field="available"/>
                <log level="info" message="Returning false because there is insufficient inventory available in facility with id ${productStore.inventoryFacilityId} for product id ${parameters.productId}; desired quantity is ${parameters.quantity}, available quantity is ${availableToPromiseTotal}"/>
            </else>
            </if-compare-field>
        <else>
            <entity-and entity-name="ProductStoreFacility" list="productStoreFacilities" use-cache="true">
                <field-map field-name="productStoreId" from-field="productStore.productStoreId"/>
                <order-by field-name="sequenceNum"/>
            </entity-and>

            <set value="N" field="available"/>
            <iterate list="productStoreFacilities" entry="productStoreFacility">
                <if-compare field="available" operator="equals" value="N">
                    <!-- TODO: must entire quantity be available in one location? -->
                    <!-- Right now the answer is yes, it only succeeds if one facility has sufficient inventory for the order. -->
                    <set from-field="parameters.productId" field="callServiceMap.productId"/>
                    <set from-field="productStoreFacility.facilityId" field="callServiceMap.facilityId"/>
                    <set field="isMarketingPkg" value="${groovy: org.apache.ofbiz.entity.util.EntityTypeUtil.hasParentType(delegator, 'ProductType', 'productTypeId', product.productTypeId, 'parentTypeId', 'MARKETING_PKG')}" type="Boolean"/>
                    <if-compare field="isMarketingPkg" operator="equals" value="true" type="Boolean">
                        <call-service service-name="getMktgPackagesAvailable" in-map-name="callServiceMap">
                            <result-to-field result-name="availableToPromiseTotal"/>
                        </call-service>
                        <else>
                            <call-service service-name="getInventoryAvailableByFacility" in-map-name="callServiceMap">
                                <result-to-field result-name="availableToPromiseTotal"/>
                            </call-service>
                        </else>
                    </if-compare>

                    <clear-field field="callServiceMap"/>

                    <if-compare-field field="availableToPromiseTotal" to-field="parameters.quantity" operator="greater-equals" type="BigDecimal">
                        <set value="Y" field="available"/>
                        <log level="info" message="Inventory IS available in facility with id ${productStoreFacility.facilityId} for product id ${parameters.productId}; desired quantity is ${parameters.quantity}, available quantity is ${availableToPromiseTotal}"/>
                    </if-compare-field>
                    <clear-field field="availableToPromiseTotal"/>
                </if-compare>
            </iterate>
        </else>
        </if-compare>

        <field-to-result field="available"/>

        <!--
            /* TODO: must entire quantity be available in one location?
             *  Right now the answer is yes, it only succeeds if one facility has sufficient inventory for the order.
             *  When we get into splitting options it is much more complicated. There are various options like:
             *  - allow split between facilities
             *  - in split order facilities by highest quantities
             *  - in split order facilities by lowest quantities
             *  - in split order facilities by order in database, ie sequence numbers on facility-store join table
             *  - in split order facilities by nearest locations to customer (not an easy one there...)
             */

            // loop through all facilities attached to this catalog and check for individual or cumulative sufficient inventory
        -->
    </simple-method>

    <simple-method method-name="isStoreInventoryAvailableOrNotRequired" short-description="Is Store Inventory Available or Not Required" login-required="false">
        <if-empty field="parameters.productStore">
            <entity-one entity-name="ProductStore" value-field="productStore" use-cache="true"/>
        <else>
            <set from-field="parameters.productStore" field="productStore"/>
        </else>
        </if-empty>
        <if-empty field="parameters.product">
            <entity-one entity-name="Product" value-field="product" use-cache="true"/>
        <else>
            <set from-field="parameters.product" field="product"/>
        </else>
        </if-empty>

        <call-simple-method method-name="isStoreInventoryRequiredInline"/>

        <if-compare field="requireInventory" operator="not-equals" value="Y">
            <set value="Y" field="availableOrNotRequired"/>
            <field-to-result field="availableOrNotRequired"/>
        <else>
            <set-service-fields service-name="isStoreInventoryAvailable" map="parameters" to-map="callServiceMap"/>
            <call-service service-name="isStoreInventoryAvailable" in-map-name="callServiceMap">
                <result-to-result result-name="available" service-result-name="availableOrNotRequired"/>
            </call-service>
        </else>
        </if-compare>
    </simple-method>

    <!-- ============================= -->
    <!-- Permission Methods -->
    <!-- ============================= -->

    <!-- a methods to centralize product security code, meant to be called in-line with
        call-simple-method, and the checkAction and callingMethodName attributes should be in the method context -->
    <simple-method method-name="checkProductStoreRelatedPermission" short-description="Check ProductStore Related Permission">
        <if-empty field="callingMethodName">
            <property-to-field resource="CommonUiLabels" property="CommonPermissionThisOperation" field="callingMethodName"/>
        </if-empty>
        <if-empty field="checkAction">
            <set field="checkAction" value="UPDATE"/>
        </if-empty>
        <if-empty field="productStoreIdName">
            <set field="productStoreIdName" value="productStoreId"/>
        </if-empty>
        <if-empty field="productStoreIdToCheck">
            <set field="productStoreIdToCheck" from-field="parameters.${productStoreIdName}"/>
        </if-empty>

        <!-- find all role-store that this productStore is a member of -->
        <if>
            <condition>
                <not><if-has-permission permission="CATALOG" action="_${checkAction}"/></not>
            </condition>
            <then>
                <entity-and entity-name="ProductStoreRole" list="roleStores" filter-by-date="true">
                    <field-map field-name="productStoreId" from-field="productStoreIdToCheck"/>
                    <field-map field-name="partyId" from-field="userLogin.partyId"/>
                    <field-map field-name="roleTypeId" value="LTD_ADMIN"/>
                </entity-and>
                <filter-list-by-date list="roleStores" from-field-name="roleFromDate" thru-field-name="roleThruDate"/>
            </then>
        </if>
        <log level="info" message="Checking store permission, roleStores=${roleStores}"/>
        <if>
            <condition>
                <not>
                    <or>
                        <if-has-permission permission="CATALOG" action="_${checkAction}"/>
                        <and>
                            <if-has-permission permission="CATALOG_ROLE" action="_${checkAction}"/>
                            <not><if-empty field="roleStores"/></not>
                        </and>
                    </or>
                </not>
            </condition>
            <then>
                <log level="verbose" message="Permission check failed, user does not have permission"/>
                <set field="checkActionLabel" value="${groovy: 'ProductCatalog' + checkAction.charAt(0) + checkAction.substring(1).toLowerCase() + 'PermissionError'}"/>
                <set field="resourceDescription" from-field="callingMethodName"/>
                <add-error>
                    <fail-property resource="ProductUiLabels" property="${checkActionLabel}"/>
                </add-error>
                <set field="hasPermission" type="Boolean" value="false"/>
            </then>
        </if>
    </simple-method>
    <simple-method method-name="productStoreGenericPermission" short-description="Main permission logic">
        <set field="mainAction" from-field="parameters.mainAction"/>
        <if-empty field="mainAction">
            <add-error>
                <fail-property resource="ProductUiLabels" property="ProductMissingMainActionInPermissionService"/>
            </add-error>
            <check-errors/>
        </if-empty>

        <set field="callingMethodName" from-field="parameters.resourceDescription"/>
        <set field="checkAction" from-field="parameters.mainAction"/>
        <call-simple-method method-name="checkProductStoreRelatedPermission"/>

        <if-empty field="error_list">
            <set field="hasPermission" type="Boolean" value="true"/>
            <field-to-result field="hasPermission"/>

            <else>
                <property-to-field resource="ProductUiLabels" property="ProductPermissionError" field="failMessage"/>
                <set field="hasPermission" type="Boolean" value="false"/>
                <field-to-result field="hasPermission"/>
                <field-to-result field="failMessage"/>
            </else>
        </if-empty>
    </simple-method>

    <simple-method method-name="checkProductStoreGroupRollup" short-description="When product store group hierarchy has been operate, synchronize primaryParentGroupId with ProductStoreGroupRollup">
        <entity-one entity-name="ProductStoreGroup" value-field="productStoreGroup"/>
        <if-empty field="parameters.primaryParentGroupId">
            <entity-one entity-name="ProductStoreGroupRollup" value-field="productStoreGroupRollup"/>
            <if-not-empty field="productStoreGroupRollup">
                <set field="productStoreGroup.primaryParentGroupId"/>
                <set-service-fields service-name="updateProductStoreGroup" map="productStoreGroup" to-map="productStoreGroupMap"/>
                <call-service service-name="updateProductStoreGroup" in-map-name="productStoreGroupMap"/>
            </if-not-empty>
            <else>
                <entity-and entity-name="ProductStoreGroupRollup" list="productStoreGroupRollups" filter-by-date="true">
                    <field-map field-name="productStoreGroupId" from-field="productStoreGroup.productStoreGroupId"/>
                    <field-map field-name="parentGroupId" from-field="parameters.primaryParentGroupId"/>
                </entity-and>
                <if-empty field="productStoreGroupRollups">
                    <set field="productStoreGroupRollupMap.productStoreGroupId" from="productStoreGroup.productStoreGroupId"/>
                    <set field="productStoreGroupRollupMap.parentGroupId" from="parameters.primaryParentGroupId"/>
                    <set field="productStoreGroupRollupMap.fromDate" from="date:nowTimestamp()"/>
                    <call-service service-name="createProductStoreGroupRollup" in-map-name="productStoreGroupRollupMap"/>
                </if-empty>
            </else>
        </if-empty>
    </simple-method>
</simple-methods>

