| <?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. |
| --> |
| |
| <service-eca xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/service-eca.xsd"> |
| |
| <eca service="createPaymentApplication" event="commit"> |
| <condition field-name="invoiceId" operator="is-not-empty"/> |
| <action service="checkInvoicePaymentApplications" mode="sync"/> |
| </eca> |
| |
| <!-- Uncomment this if you want commission invoices to be set to READY automatically, which means they are official |
| <eca service="createCommissionInvoices" event="commit"> |
| <condition field-name="invoicesCreated" operator="is-not-empty"/> |
| <action service="readyInvoices" mode="sync"/> |
| </eca> |
| --> |
| |
| <eca service="createPartyPostalAddress" event="commit"> |
| <condition field-name="paymentMethodId" operator="is-not-empty"/> |
| <action service="setPaymentMethodAddress" mode="sync"/> |
| </eca> |
| <!-- do the updatePostalAddress before the return and after the commit so it can use its own transaction and not effect the updating of the PostalAddress --> |
| <eca service="updatePostalAddress" event="return"> |
| <action service="updatePaymentMethodAddress" mode="sync"/> |
| </eca> |
| |
| <eca service="createBillingAccount" event="return"> |
| <condition field-name="roleTypeId" operator="is-not-empty"/> |
| <condition field-name="partyId" operator="is-not-empty"/> |
| <action service="createBillingAccountRole" mode="sync"/> |
| </eca> |
| <eca service="createBillingAccountRole" event="invoke"> |
| <condition field-name="roleTypeId" operator="is-not-empty"/> |
| <condition field-name="partyId" operator="is-not-empty"/> |
| <action service="ensurePartyRole" mode="sync"/> |
| </eca> |
| |
| <eca service="createCreditCard" event="in-validate"> |
| <condition field-name="expMonth" operator="is-not-empty"/> |
| <condition field-name="expYear" operator="is-not-empty"/> |
| <action service="buildCcExpireDate" mode="sync"/> |
| </eca> |
| <eca service="updateCreditCard" event="in-validate"> |
| <condition field-name="expMonth" operator="is-not-empty"/> |
| <condition field-name="expYear" operator="is-not-empty"/> |
| <action service="buildCcExpireDate" mode="sync"/> |
| </eca> |
| <eca service="createCreditCard" event="commit"> |
| <set field-name="mode" value="CREATE"/> |
| <action service="verifyCreditCard" mode="sync" run-as-user="system"/> |
| </eca> |
| <eca service="updateCreditCard" event="commit"> |
| <condition-field field-name="oldPaymentMethodId" operator="not-equals" to-field-name="paymentMethodId"/> |
| <set field-name="mode" value="UPDATE"/> |
| <action service="verifyCreditCard" mode="sync" run-as-user="system"/> |
| </eca> |
| |
| <eca service="createCreditCardAndAddress" event="in-validate"> |
| <condition field-name="expMonth" operator="is-not-empty"/> |
| <condition field-name="expYear" operator="is-not-empty"/> |
| <action service="buildCcExpireDate" mode="sync"/> |
| </eca> |
| <eca service="updateCreditCardAndAddress" event="in-validate"> |
| <condition field-name="expMonth" operator="is-not-empty"/> |
| <condition field-name="expYear" operator="is-not-empty"/> |
| <action service="buildCcExpireDate" mode="sync"/> |
| </eca> |
| |
| <eca service="createGiftCard" event="in-validate"> |
| <condition field-name="expMonth" operator="is-not-empty"/> |
| <condition field-name="expYear" operator="is-not-empty"/> |
| <action service="buildCcExpireDate" mode="sync"/> |
| </eca> |
| <eca service="updateGiftCard" event="in-validate"> |
| <condition field-name="expMonth" operator="is-not-empty"/> |
| <condition field-name="expYear" operator="is-not-empty"/> |
| <action service="buildCcExpireDate" mode="sync"/> |
| </eca> |
| |
| <eca service="authOrderPayments" event="global-rollback"> |
| <action service="releaseOrderPayments" mode="sync"/> |
| </eca> |
| |
| <eca service="retryFailedOrderAuth" event="commit"> |
| <condition field-name="processResult" operator="not-equals" value="ERROR"/> |
| <action service="sendOrderPayRetryNotification" mode="async" persist="true"/> |
| </eca> |
| |
| <!-- budget role ecas --> |
| <eca service="createBudgetRole" event="invoke"> |
| <action service="ensurePartyRole" mode="sync" run-as-user="system"/> |
| </eca> |
| |
| <!-- financial account role ecas --> |
| <eca service="createFinAccountRole" event="invoke"> |
| <action service="ensurePartyRole" mode="sync" run-as-user="system"/> |
| </eca> |
| |
| <!-- financial account transaction ecas --> |
| <eca service="finAccountWithdraw" event="return" run-on-error="true"> |
| <condition field-name="productStoreId" operator="is-not-empty"/> |
| <action service="finAccountReplenish" mode="async" persist="true" run-as-user="system"/> |
| </eca> |
| |
| <!-- attempt replenish when payment method is updated --> |
| <eca service="updateFinAccount" event="commit" run-on-error="false"> |
| <condition-field field-name="oldReplenishPaymentId" operator="not-equals" to-field-name="replenishPaymentId"/> |
| <condition field-name="replenishLevel" operator="is-not-empty"/> |
| <action service="finAccountReplenish" mode="sync" run-as-user="system"/> |
| </eca> |
| |
| <!-- attempt replenish when replenish level is updated --> |
| <eca service="updateFinAccount" event="commit" run-on-error="false"> |
| <condition-field field-name="oldReplenishLevel" operator="not-equals" to-field-name="replenishLevel"/> |
| <condition field-name="replenishPaymentId" operator="is-not-empty"/> |
| <action service="finAccountReplenish" mode="sync" run-as-user="system"/> |
| </eca> |
| |
| <eca service="createFinAccountTrans" event="commit"> |
| <condition field-name="glAccountId" operator="is-not-empty"/> |
| <action service="postFinAccountTransToGl" mode="sync"/> |
| </eca> |
| |
| <!-- sample ECA rules for the sampleInvoiceAffiliateCommission service triggering |
| <eca service="createPayment" event="commit"> |
| <condition field-name="statusId" operator="equals" value="PMNT_RECEIVED"/> |
| <action service="sampleInvoiceAffiliateCommission" mode="sync"/> |
| </eca> |
| <eca service="setPaymentStatus" event="commit"> |
| <condition field-name="statusId" operator="equals" value="PMNT_RECEIVED"/> |
| <condition-field field-name="statusId" operator="not-equals" to-field-name="oldStatusId"/> |
| <condition field-name="oldStatusId" operator="not-equals" value="PMNT_CONFIRMED"/> |
| <action service="sampleInvoiceAffiliateCommission" mode="sync"/> |
| </eca> |
| --> |
| |
| <!-- automatically create a fixed asset when a 'asset usage' type product |
| is created and create the link between them --> |
| <eca service="createProduct" event="commit"> |
| <condition field-name="productTypeId" operator="equals" value="ASSET_USAGE"/> |
| <action service="createFixedAssetAndLinkToProduct" mode="sync"/> |
| </eca> |
| |
| <!-- automatically set company to user when create an accounting company --> |
| <eca service="createPartyAcctgPreference" event="return"> |
| <set field-name="organizationPartyId" env-name="partyId"/> |
| <action service="setAcctgCompany" mode="sync"/> |
| </eca> |
| </service-eca> |