ilscipio/scipio-erp

View on GitHub
applications/product/servicedef/secas.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.
-->

<service-eca xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/service-eca.xsd">
    <!-- update inventory item -->
    <eca service="updateInventoryItem" event="commit">
        <condition field-name="statusId" operator="is-not-empty"/>
        <condition-field field-name="oldStatusId" operator="not-equals" to-field-name="statusId"/>
        <action service="createInventoryItemStatus" mode="sync"/>
    </eca>
    <eca service="updateInventoryItem" event="commit">
        <condition field-name="statusId" operator="is-not-empty"/>
        <condition field-name="productId" operator="is-not-empty"/>
        <condition-field field-name="oldProductId" operator="not-equals" to-field-name="productId"/>
        <action service="createInventoryItemStatus" mode="sync"/>
    </eca>
    <eca service="updateInventoryItem" event="commit">
        <condition field-name="statusId" operator="is-not-empty"/>
        <condition field-name="ownerPartyId" operator="is-not-empty"/>
        <condition-field field-name="oldOwnerPartyId" operator="not-equals" to-field-name="ownerPartyId"/>
        <action service="createInventoryItemStatus" mode="sync"/>
    </eca>
    <eca service="createItemIssuance" event="return"><!-- change the owner after item issuance transactions are created for old owner -->
        <condition field-name="orderId" operator="is-not-empty"/>
        <condition field-name="inventoryItemId" operator="is-not-empty"/>
        <action service="changeOwnerUponIssuance" mode="sync"/>
    </eca>

    <!-- inventory transfer -->
    <eca service="createInventoryTransfer" event="invoke">
        <condition field-name="statusId" operator="not-equals" value="IXF_CANCELLED"/>
        <action service="prepareInventoryTransfer" mode="sync"/>
    </eca>
    <eca service="createInventoryTransfer" event="commit">
        <condition field-name="statusId" operator="equals" value="IXF_COMPLETE"/>
        <action service="completeInventoryTransfer" mode="sync"/>
        <action service="balanceInventoryItems" mode="sync"/>
    </eca>

    <eca service="updateInventoryTransfer" event="invoke">
        <condition field-name="statusId" operator="equals" value="IXF_CANCELLED"/>
        <action service="cancelInventoryTransfer" mode="sync"/>
    </eca>
    <eca service="updateInventoryTransfer" event="commit">
        <condition field-name="statusId" operator="equals" value="IXF_COMPLETE"/>
        <action service="completeInventoryTransfer" mode="sync"/>
        <action service="balanceInventoryItems" mode="sync"/>
    </eca>

    <!-- inventory variance -->
    <eca service="createPhysicalInventoryAndVariance" event="commit">
        <action service="balanceInventoryItems" mode="sync"/>
    </eca>

    <!-- inventory changes -->
    <eca service="balanceInventoryItems" event="commit">
        <action service="updateProductIfAvailableFromShipment" mode="sync"/>
    </eca>

    <!-- Product Price Change ECAs -->
    <eca service="createProductPrice" event="commit">
        <action service="saveProductPriceChange" mode="sync"/>
    </eca>
    <eca service="updateProductPrice" event="commit">
        <condition-field field-name="price" operator="not-equals" to-field-name="oldPrice" type="BigDecimal"/>
        <action service="saveProductPriceChange" mode="sync"/>
    </eca>
    <eca service="deleteProductPrice" event="commit">
        <action service="saveProductPriceChange" mode="sync"/>
    </eca>

    <!-- Product Party ECAs -->
    <eca service="addPartyToCategory" event="invoke">
        <condition field-name="roleTypeId" operator="equals" value="_NA_"/>
        <action service="ensureNaPartyRole" mode="sync"/>
    </eca>
    <eca service="addPartyToFacility" event="invoke">
        <condition field-name="roleTypeId" operator="equals" value="_NA_"/>
        <action service="ensureNaPartyRole" mode="sync"/>
    </eca>
    <eca service="addPartyToFacilityGroup" event="invoke">
        <condition field-name="roleTypeId" operator="equals" value="_NA_"/>
        <action service="ensureNaPartyRole" mode="sync"/>
    </eca>
    <eca service="addProdCatalogToParty" event="invoke">
        <condition field-name="roleTypeId" operator="equals" value="_NA_"/>
        <action service="ensureNaPartyRole" mode="sync"/>
    </eca>

    <!-- Product Content ECAs -->
    <eca service="createProductContent" event="in-validate">
        <condition field-name="contentId" operator="is-empty"/>
        <action service="createContent" mode="sync"/>
    </eca>

    <!-- pick list ECAs -->
    <eca service="createPicklistFromOrders" event="in-validate">
        <condition field-name="orderHeaderList" operator="is-empty"/>
        <condition field-name="orderIdList" operator="is-not-empty"/>
        <action service="convertPickOrderIdListToHeaders" mode="sync"/>
    </eca>
    
    <eca service="receiveInventoryProduct" event="commit">
        <condition field-name="facilityId" operator="is-not-empty"/>
        <condition field-name="orderId" operator="is-not-empty"/>
        <action service="updateIssuanceShipmentAndPoOnReceiveInventory" mode="sync"/>
    </eca>

    <!-- Set the average cost of product -->
    <eca service="receiveInventoryProduct" event="commit">
        <condition field-name="inventoryItemId" operator="is-not-empty"/>
        <action service="updateProductAverageCostOnReceiveInventory" mode="sync"/>
    </eca>
    
    <!-- Remove party content of image  -->
    <eca service="deletePartyRole" event="commit">
        <condition field-name="roleTypeId" operator="equals" value="IMAGEAPPROVER"/>
        <action service="removeImageContentApproval" mode="sync"/>
    </eca>

    <!-- ProductStoreGroup seca  -->
    <eca service="updateProductStoreGroup" event="commit">
        <condition field-name="primaryParentGroupId" operator="not-equals" value=""/>
        <action service="checkProductStoreGroupRollup" mode="sync"/>
    </eca>
    <eca service="createProductStoreGroupRollup" event="commit">
        <action service="checkProductStoreGroupRollup" mode="sync"/>
    </eca>
    
    <!-- SCIPIO: 2017: Automatic SEO alt URL generation -->
    
    <!-- TODO: 
    
    <eca service="createProduct" event="commit">
        <action service="generateProductAlternativeUrlsCore" mode="sync" value-attr="product" reload-value="true"/>
    </eca>
    <eca service="updateProduct" event="commit">
        <action service="generateProductAlternativeUrlsCore" mode="sync" value-attr="product" reload-value="true"/>
    </eca>
    
    -->
    
</service-eca>