blob: df51e5121dbac91049e40efcfaf2748fca05661b [file] [log] [blame]
<?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="setPaymentMethodAddress" short-description="Set the initial payment method address">
<make-value value-field="lookupPKMap" entity-name="PaymentMethod"/>
<set-pk-fields map="parameters" value-field="lookupPKMap"/>
<find-by-primary-key entity-name="PaymentMethod" map="lookupPKMap" value-field="lookedUpValue"/>
<if-compare field="lookedUpValue.paymentMethodTypeId" operator="equals" value="CREDIT_CARD">
<find-by-primary-key entity-name="CreditCard" map="lookupPKMap" value-field="mainValue"/>
<clone-value value-field="mainValue" new-value-field="savedValue"/>
<set-nonpk-fields map="parameters" value-field="mainValue"/>
<if-compare-field field="mainValue" to-field="savedValue" operator="not-equals" type="Object">
<store-value value-field="mainValue"/>
</if-compare-field>
</if-compare>
<if-compare field="lookedUpValue.paymentMethodTypeId" operator="equals" value="EFT_ACCOUNT">
<find-by-primary-key entity-name="CreditCard" map="lookupPKMap" value-field="mainValue"/>
<clone-value value-field="mainValue" new-value-field="savedValue"/>
<set-nonpk-fields map="parameters" value-field="mainValue"/>
<if-compare-field field="mainValue" to-field="savedValue" operator="not-equals" type="Object">
<store-value value-field="mainValue"/>
</if-compare-field>
</if-compare>
</simple-method>
<simple-method method-name="updatePaymentMethodAddress" short-description="Update payment method addresses" use-transaction="false">
<!-- find all CreditCard and EftAccount instances that use the current oldContactMechId and update them
through the updateCreditCard or updateEftAccount services to use the new contactMechId -->
<set field="lookupMap.contactMechId" from-field="parameters.oldContactMechId"/>
<find-by-and entity-name="CreditCard" map="lookupMap" list="creditCards"/>
<iterate entry="creditCard" list="creditCards">
<call-class-method class-name="org.ofbiz.base.util.UtilValidate" method-name="isDateAfterToday" ret-field="isNotExpired">
<field field="creditCard.expireDate"/>
</call-class-method>
<if-compare field="isNotExpired" operator="equals" type="Boolean" value="true">
<set-service-fields service-name="updateCreditCard" map="creditCard" to-map="uccMap"/>
<set field="uccMap.contactMechId" from-field="parameters.contactMechId"/>
<set field="uccMap.partyId" from-field="parameters.partyId"/>
<!-- use the service so it will expire the old card and create a new one; don't break on error since this is a background process, just get whatever we can done... -->
<call-service service-name="updateCreditCard" in-map-name="uccMap" break-on-error="false"/>
</if-compare>
</iterate>
<find-by-and entity-name="EftAccount" map="lookupMap" list="eftAccounts"/>
<iterate entry="eftAccount" list="eftAccounts">
<get-related-one relation-name="PaymentMethod" to-value-field="paymentMethod" value-field="eftAccount"/>
<if-empty field="paymentMethod.thruDate">
<set-service-fields service-name="updateEftAccount" map="eftAccount" to-map="ueaMap"/>
<set field="ueaMap.contactMechId" from-field="parameters.contactMechId"/>
<set field="ueaMap.partyId" from-field="parameters.partyId"/>
<!-- use the service so it will expire the old account and create a new one; don't break on error since this is a background process, just get whatever we can done... -->
<call-service service-name="updateEftAccount" in-map-name="ueaMap" break-on-error="false"/>
</if-empty>
</iterate>
</simple-method>
<!--CreateCreditCardTypeGlAccount methods -->
<simple-method method-name="createCreditCardTypeGlAccount" short-description="Create a Credit Card Gl Account">
<make-value entity-name="CreditCardTypeGlAccount" value-field="newEntity"/>
<set-pk-fields map="parameters" value-field="newEntity"/>
<set-nonpk-fields map="parameters" value-field="newEntity"/>
<create-value value-field="newEntity"/>
</simple-method>
<simple-method method-name="updateCreditCardTypeGlAccount" short-description="Update a Credit Card Gl Account">
<entity-one entity-name="CreditCardTypeGlAccount" value-field="lookedUpValue"/>
<set-nonpk-fields value-field="lookedUpValue" map="parameters"/>
<store-value value-field="lookedUpValue"/>
</simple-method>
<simple-method method-name="deleteCreditCardTypeGlAccount" short-description="Delete a Credit Card Gl Account">
<entity-one entity-name="CreditCardTypeGlAccount" value-field="lookedUpValue"/>
<remove-value value-field="lookedUpValue"/>
</simple-method>
<!-- Updates a Payment Method Type default glAccountId -->
<simple-method method-name="updatePaymentMethodType" short-description="Updates a Payment Method Type default glAccountId">
<entity-one entity-name="PaymentMethodType" value-field="lookedUpValue"/>
<set-nonpk-fields value-field="lookedUpValue" map="parameters"/>
<store-value value-field="lookedUpValue"/>
</simple-method>
<simple-method method-name="expirePaymentGroupMember" short-description="expire a Payment Group Member">
<entity-one entity-name="PaymentGroupMember" value-field="paymentGroupMember"/>
<set-service-fields service-name="updatePaymentGroupMember" map="paymentGroupMember" to-map="updatePaymentGroupMemberMap"/>
<now-timestamp field="updatePaymentGroupMemberMap.thruDate"/>
<call-service service-name="updatePaymentGroupMember" in-map-name="updatePaymentGroupMemberMap"/>
</simple-method>
<simple-method method-name="createPayPalPaymentMethod" short-description="Create a PayPal Payment Method">
<make-value value-field="newPaymentMethod" entity-name="PaymentMethod"/>
<set-pk-fields value-field="newPaymentMethod" map="parameters"/>
<if-empty field="newPaymentMethod.paymentMethodId">
<sequenced-id sequence-name="PaymentMethod" field="newPaymentMethod.paymentMethodId"/>
</if-empty>
<set-nonpk-fields value-field="newPaymentMethod" map="parameters"/>
<set field="newPaymentMethod.paymentMethodTypeId" value="EXT_PAYPAL"/>
<create-value value-field="newPaymentMethod"/>
<make-value value-field="newPayPalPaymentMethod" entity-name="PayPalPaymentMethod"/>
<set field="newPayPalPaymentMethod.paymentMethodId" from-field="newPaymentMethod.paymentMethodId"/>
<set-nonpk-fields value-field="newPayPalPaymentMethod" map="parameters"/>
<create-value value-field="newPayPalPaymentMethod"/>
<field-to-result result-name="paymentMethodId" field="newPaymentMethod.paymentMethodId"/>
</simple-method>
<simple-method method-name="updatePayPalPaymentMethod" short-description="Update a PayPal Payment Method">
<entity-one value-field="payPalPaymentMethod" entity-name="PayPalPaymentMethod"/>
<set-nonpk-fields value-field="payPalPaymentMethod" map="parameters"/>
<store-value value-field="payPalPaymentMethod"/>
<field-to-result result-name="paymentMethodId" field="payPalPaymentMethod.paymentMethodId"/>
</simple-method>
<simple-method method-name="createPaymentGroupMember" short-description="Check For Outgoing/Incoming Payment And Create Payment Group Member">
<make-value entity-name="PaymentGroupMember" value-field="newPaymentGroupMember"/>
<set-pk-fields map="parameters" value-field="newPaymentGroupMember"/>
<set-nonpk-fields map="parameters" value-field="newPaymentGroupMember"/>
<if-empty field="parameters.fromDate">
<now-timestamp field="newPaymentGroupMember.fromDate"/>
</if-empty>
<entity-one entity-name="PaymentGroup" value-field="paymentGroup"/>
<entity-one entity-name="Payment" value-field="payment"/>
<if-compare field="paymentGroup.paymentGroupTypeId" operator="equals" value="CHECK_RUN">
<set field="isDisbursement" value="${groovy:org.ofbiz.accounting.util.UtilAccounting.isDisbursement(payment)}" type="Boolean"/>
<if-compare field="isDisbursement" operator="equals" value="true" type="Boolean">
<create-value value-field="newPaymentGroupMember"/>
<else>
<add-error><fail-property resource="AccountingUiLabels" property="AccountingCannotCreateIncomingPaymentError"/></add-error>
</else>
</if-compare>
<else>
<if-compare field="paymentGroup.paymentGroupTypeId" operator="equals" value="BATCH_PAYMENT" type="Boolean">
<set field="isReceipt" value="${groovy:org.ofbiz.accounting.util.UtilAccounting.isReceipt(payment)}" type="Boolean"/>
<if-compare field="isReceipt" operator="equals" value="true">
<create-value value-field="newPaymentGroupMember"/>
<else>
<add-error><fail-property resource="AccountingUiLabels" property="AccountingCannotCreateOutgoingPaymentError"/></add-error>
</else>
</if-compare>
</if-compare>
</else>
</if-compare>
<check-errors/>
</simple-method>
</simple-methods>