blob: 75454362fcb0ea291d93e2df0c46dc85df56f025 [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">
<!-- Test case for Batching Payments process-->
<simple-method method-name="testCreatePaymentGroupAndMember" short-description="auto test createPaymentGroupAndMember service" login-required="false">
<set field="paymentIds[]" value="demo10001"/>
<set field="paymentIds[]" value="demo10000"/>
<set field="paymentGroupTypeId" value="BATCH_PAYMENT"/>
<set field="paymentGroupName" value="Payment Batch"/>
<entity-one entity-name="UserLogin" value-field="userLogin">
<field-map field-name="userLoginId" value="system"/>
</entity-one>
<set field="serviceInMap.paymentIds" from-field="paymentIds"/>
<set field="serviceInMap.paymentGroupTypeId" from-field="paymentGroupTypeId"/>
<set field="serviceInMap.paymentGroupName" from-field="paymentGroupName"/>
<set field="serviceInMap.userLogin" from-field="userLogin"/>
<call-service service-name="createPaymentGroupAndMember" in-map-name="serviceInMap">
<result-to-field result-name="paymentGroupId"/>
</call-service>
<entity-one entity-name="PaymentGroup" value-field="paymentGroup"/>
<entity-and entity-name="PaymentGroupMember" list="paymentGroupMemberList">
<field-map field-name="paymentGroupId"/>
</entity-and>
<assert>
<not><if-empty field="paymentGroupMemberList"/></not>
<if-compare-field field="paymentGroupName" operator="equals" to-field="paymentGroup.paymentGroupName"/>
<if-compare-field field="paymentGroupTypeId" operator="equals" to-field="paymentGroup.paymentGroupTypeId"/>
</assert>
<check-errors/>
<iterate list="paymentGroupMemberList" entry="paymentGroupMember">
<assert>
<or>
<if-compare-field field="paymentGroupMember.paymentId" operator="equals" to-field="paymentIds[0]"/>
<if-compare-field field="paymentGroupMember.paymentId" operator="equals" to-field="paymentIds[1]"/>
</or>
</assert>
<check-errors/>
</iterate>
<log level="info" message="Payment Group ${paymentGroupId} is created successfully for payments"/>
</simple-method>
<!--Test case for voiding payments -->
<simple-method method-name="testVoidPayment" short-description="Test case for voiding payments" login-required="false">
<!-- Precondition : payment is in sent status and invoice is in ready for posting status
Credit in account 213000 - CUSTOMER CREDIT
Debit in account 210000 - ACCOUNTS PAYABLE -->
<!-- Post condition : payment status changes to void.
removes PaymentApplication if any associated.
Credit in account 210000- ACCOUNTS PAYABLE
Debit in account 213000 - CUSTOMER CREDIT-->
<set field="paymentId" value="8000"/>
<entity-one entity-name="UserLogin" value-field="userLogin">
<field-map field-name="userLoginId" value="system"/>
</entity-one>
<set field="voidPaymentMap.userLogin" from-field="userLogin"/>
<set field="voidPaymentMap.paymentId" from-field="paymentId"/>
<call-service service-name="voidPayment" in-map-name="voidPaymentMap"/>
<entity-one entity-name="Payment" value-field="payment"/>
<assert>
<if-compare field="payment.statusId" operator="equals" value="PMNT_VOID"/>
</assert>
<check-errors/>
<set field="orderBy[]" value="-transactionDate"/>
<get-related relation-name="AcctgTrans" value-field="payment" list="acctgTransList" order-by-list="orderBy"/>
<first-from-list list="acctgTransList" entry="acctgTrans"/>
<get-related relation-name="AcctgTransEntry" value-field="acctgTrans" list="acctgTransEntries"/>
<iterate list="acctgTransEntries" entry="acctgTransEntry">
<if-compare field="acctgTransEntry.debitCreditFlag" operator="equals" value="D">
<assert>
<if-compare field="acctgTransEntry.glAccountId" operator="equals" value="213000"/>
</assert>
</if-compare>
<if-compare field="acctgTransEntry.debitCreditFlag" operator="equals" value="C">
<assert>
<if-compare field="acctgTransEntry.glAccountId" operator="equals" value="210000"/>
<if-compare field="acctgTransEntry.glAccountTypeId" operator="equals" value="ACCOUNTS_PAYABLE"/>
</assert>
</if-compare>
</iterate>
<check-errors/>
</simple-method>
<!--Test case for canceling invoices-->
<simple-method method-name="testCancelInvoice" short-description="Test case for canceling invoices" login-required="false">
<!-- Precondition : invoice is in ready status
Credit in account 210000 - ACCOUNTS PAYABLE
Debit in account 516100 -->
<!-- Post condition : invoice status changes to cancelled.
removes PaymentApplication if any associated.
Credit in account 516100
Debit in account 210000 - ACCOUNTS PAYABLE -->
<set field="invoiceId" value="8001"/>
<set field="statusId" value="INVOICE_CANCELLED"/>
<entity-one entity-name="UserLogin" value-field="userLogin">
<field-map field-name="userLoginId" value="system"/>
</entity-one>
<set field="setInvoiceStatusMap.userLogin" from-field="userLogin"/>
<set field="setInvoiceStatusMap.invoiceId" from-field="invoiceId"/>
<set field="setInvoiceStatusMap.statusId" from-field="statusId"/>
<call-service service-name="setInvoiceStatus" in-map-name="setInvoiceStatusMap"/>
<entity-one entity-name="Invoice" value-field="invoice"/>
<assert>
<if-compare field="invoice.statusId" operator="equals" value="INVOICE_CANCELLED"/>
</assert>
<check-errors/>
<set field="orderBy[]" value="-transactionDate"/>
<get-related relation-name="AcctgTrans" value-field="invoice" list="acctgTransList" order-by-list="orderBy"/>
<first-from-list list="acctgTransList" entry="acctgTrans"/>
<get-related relation-name="AcctgTransEntry" value-field="acctgTrans" list="acctgTransEntries"/>
<iterate list="acctgTransEntries" entry="acctgTransEntry">
<if-compare field="acctgTransEntry.debitCreditFlag" operator="equals" value="C">
<assert>
<if-compare field="acctgTransEntry.glAccountId" operator="equals" value="516100"/>
</assert>
</if-compare>
<if-compare field="acctgTransEntry.debitCreditFlag" operator="equals" value="D">
<assert>
<if-compare field="acctgTransEntry.glAccountId" operator="equals" value="210000"/>
<if-compare field="acctgTransEntry.glAccountTypeId" operator="equals" value="ACCOUNTS_PAYABLE"/>
</assert>
</if-compare>
</iterate>
<check-errors/>
</simple-method>
<!--Test case for process mass check run-->
<simple-method method-name="testCreatePaymentAndPaymentGroupForInvoices" short-description="Test case for validate service which is creating payment and payment group" login-required="false">
<!-- Precondition : Invoice is in ready status.
Invoice outstanding amount should be greater than zero -->
<!-- Following process is tested by test case:
This will call createPaymentAndPaymentGroupForInvoices service and return a paymentGroupId;
1. Checked for paymentGroupId for not empty
2. Checked for associated paymentGroupMembers for not empty -->
<!-- Post condition : Invoice status should be changed to paid.
Payment should be created with PaymentApplications.
PaymentGroup and PaymentGroupMembers should be created. -->
<entity-one entity-name="UserLogin" value-field="createPaymentAndPaymentGroupForInvoicesMap.userLogin">
<field-map field-name="userLoginId" value="system"/>
</entity-one>
<set field="createPaymentAndPaymentGroupForInvoicesMap.organizationPartyId" value="Company"/>
<set field="createPaymentAndPaymentGroupForInvoicesMap.checkStartNumber" type="Long" value="100101"/>
<string-to-list string="8000" list="invoiceIds"/>
<string-to-list string="8008" list="invoiceIds"/>
<set field="createPaymentAndPaymentGroupForInvoicesMap.invoiceIds" from-field="invoiceIds"/>
<set field="createPaymentAndPaymentGroupForInvoicesMap.paymentMethodTypeId" value="COMPANY_CHECK"/>
<set field="createPaymentAndPaymentGroupForInvoicesMap.paymentMethodId" value="SC_CHECKING"/>
<call-service service-name="createPaymentAndPaymentGroupForInvoices" in-map-name="createPaymentAndPaymentGroupForInvoicesMap">
<result-to-field result-name="paymentGroupId"/>
</call-service>
<assert>
<not>
<if-empty field="paymentGroupId"/>
</not>
</assert>
<check-errors/>
<entity-condition entity-name="PaymentGroupMember" list="paymentGroupMembers">
<condition-expr field-name="paymentGroupId" from-field="paymentGroupId"/>
</entity-condition>
<assert>
<not>
<if-empty field="paymentGroupMembers"/>
</not>
</assert>
<check-errors/>
<log level="info" message="Test case ran successfully for input - invoiceIds : ${invoiceIds} and output - paymentGroupId : ${paymentGroupId}"/>
</simple-method>
<!--Test case for cancel check run-->
<simple-method method-name="testCancelCheckRunPayments" short-description="Test case for cancelCheckRunPayments" login-required="false">
<!-- Pre condition : Invoice is in paid status.
Payment should be present.
thruDate for PaymentGroupMember should be Null -->
<!-- Following process is tested by test case:
This will call cancelCheckRunPayments service;
1. Checked for thruDate for not empty
2. Checked for associated payment status as PMNT_VOID -->
<!-- Post condition : thruDate for PaymentGroupMember should be Not Null
payment status should be changed to PMNT_VOID. -->
<set field="paymentGroupId" value="9001"/>
<entity-one entity-name="UserLogin" value-field="userLogin">
<field-map field-name="userLoginId" value="system"/>
</entity-one>
<set field="cancelCheckRunPaymentsMap.userLogin" from-field="userLogin"/>
<set field="cancelCheckRunPaymentsMap.paymentGroupId" from-field="paymentGroupId"/>
<call-service service-name="cancelCheckRunPayments" in-map-name="cancelCheckRunPaymentsMap"/>
<entity-and entity-name="PmtGrpMembrPaymentAndFinAcctTrans" list="paymentGroupMemberAndTransList">
<field-map field-name="paymentGroupId"/>
</entity-and>
<first-from-list list="paymentGroupMemberAndTransList" entry="paymentGroupMemberAndTrans"/>
<if-compare field="paymentGroupMemberAndTrans.finAccountTransStatusId" operator="not-equals" value="FINACT_TRNS_APPROVED">
<iterate list="paymentGroupMemberAndTransList" entry="paymentGroupMemberAndTrans">
<assert>
<not>
<if-empty field="paymentGroupMemberAndTrans.thruDate"/>
</not>
</assert>
<check-errors/>
<assert>
<if-compare field="paymentGroupMemberAndTrans.statusId" operator="equals" value="PMNT_VOID"/>
</assert>
<check-errors/>
</iterate>
</if-compare>
<log level="info" message="Test case for cancelCheckRunPayments ran successfully for paymentGroupId = ${paymentGroupId}"/>
</simple-method>
<!-- Test case for deposit or withdraw payments -->
<simple-method method-name="testDepositWithdrawPayments" short-description="test depositWithdrawPayments service" login-required="false">
<set field="paymentIds[]" value="demo10010"/>
<set field="finAccountId" value="SC_CHECKING"/>
<entity-one entity-name="UserLogin" value-field="userLogin">
<field-map field-name="userLoginId" value="system"/>
</entity-one>
<set field="depositWithdrawPaymentsMap.paymentIds" from-field="paymentIds"/>
<set field="depositWithdrawPaymentsMap.finAccountId" from-field="finAccountId"/>
<set field="depositWithdrawPaymentsMap.userLogin" from-field="userLogin"/>
<call-service service-name="depositWithdrawPayments" in-map-name="depositWithdrawPaymentsMap"/>
<entity-condition entity-name="Payment" list="payments">
<condition-expr field-name="paymentId" operator="in" from-field="paymentIds"/>
</entity-condition>
<iterate list="payments" entry="payment">
<get-related-one value-field="payment" relation-name="FinAccountTrans" to-value-field="finAccountTrans"/>
<assert><not><if-empty field="finAccountTrans"/></not></assert>
<check-errors/>
<assert>
<or>
<if-compare field="finAccountTrans.finAccountTransTypeId" operator="equals" value="DEPOSIT"/>
<if-compare field="finAccountTrans.finAccountTransTypeId" operator="equals" value="WITHDRAWAL"/>
</or>
<if-compare-field field="finAccountTrans.amount" operator="equals" to-field="payment.amount"/>
</assert>
<check-errors/>
</iterate>
<log level="info" message="fin Account Trans has been created for passed payments"/>
</simple-method>
<simple-method method-name="testDepositWithdrawPaymentsInSingleTrans" short-description="test depositWithdrawPayments service for single transaction" login-required="false">
<set field="paymentIds[]" value="8004"/>
<set field="finAccountId" value="SC_CHECKING"/>
<set field="groupInOneTransaction" value="Y"/>
<entity-one entity-name="UserLogin" value-field="userLogin">
<field-map field-name="userLoginId" value="system"/>
</entity-one>
<set field="depositWithdrawPaymentsMap.paymentIds" from-field="paymentIds"/>
<set field="depositWithdrawPaymentsMap.finAccountId" from-field="finAccountId"/>
<set field="depositWithdrawPaymentsMap.groupInOneTransaction" from-field="groupInOneTransaction"/>
<set field="depositWithdrawPaymentsMap.paymentGroupTypeId" value="BATCH_PAYMENT"/>
<set field="depositWithdrawPaymentsMap.userLogin" from-field="userLogin"/>
<call-service service-name="depositWithdrawPayments" in-map-name="depositWithdrawPaymentsMap">
<result-to-field result-name="finAccountTransId"/>
</call-service>
<set field="paymentRunningTotal" type="BigDecimal" value="0"/>
<entity-condition entity-name="Payment" list="payments">
<condition-expr field-name="paymentId" operator="in" from-field="paymentIds"/>
</entity-condition>
<iterate list="payments" entry="payment">
<set field="paymentRunningTotal" value="${paymentRunningTotal + payment.amount}" type="BigDecimal"/>
</iterate>
<entity-one entity-name="FinAccountTrans" value-field="finAccountTrans"/>
<assert>
<if-compare-field field="finAccountTrans.amount" operator="equals" to-field="paymentRunningTotal"/>
</assert>
<check-errors/>
<iterate list="payments" entry="payment">
<assert>
<if-compare-field field="payment.finAccountTransId" operator="equals" to-field="finAccountTransId"/>
</assert>
<check-errors/>
</iterate>
<log level="info" message="fin Account Trans has been created with Id ${finAccountTransId}"/>
</simple-method>
<!--Test case for fin account trans-->
<simple-method method-name="testSetFinAccountTransStatus" short-description="test case for setFinAccountTransStatus service" login-required="false">
<!-- Precondition : FinAccountTrans should be in CREATED status -->
<!-- Post condition : FinAccountTrans status changes to CANCELED
Clear finAccountTransId field and update associated Payment record -->
<set field="finAccountTransId" value="9102"/>
<set field="statusId" value="FINACT_TRNS_CANCELED"/>
<entity-one entity-name="UserLogin" value-field="userLogin">
<field-map field-name="userLoginId" value="system"/>
</entity-one>
<set field="setFinAccountTransStatusMap.finAccountTransId" from-field="finAccountTransId"/>
<set field="setFinAccountTransStatusMap.statusId" from-field="statusId"/>
<set field="setFinAccountTransStatusMap.userLogin" from-field="userLogin"/>
<call-service service-name="setFinAccountTransStatus" in-map-name="setFinAccountTransStatusMap"/>
<entity-one entity-name="FinAccountTrans" value-field="finAccountTrans"/>
<assert>
<if-compare-field field="finAccountTrans.statusId" operator="equals" to-field="statusId"/>
</assert>
<check-errors/>
<get-related-one relation-name="Payment" value-field="finAccountTrans" to-value-field="payment"/>
<if-not-empty field="payment">
<assert>
<if-empty field="payment.finAccountTransId"/>
</assert>
<check-errors/>
</if-not-empty>
</simple-method>
<!--Test case to verify GL postings for Void Payment process-->
<simple-method method-name="testGlPostingsOnVoidPayment" short-description="Test case to verify GL postings for Void Payment Process" login-required="false">
<!-- Precondition :
* Payment is in sent status so accounting transaction is already posted to the GL
* GL Account associated with Payment :8003 are ACCOUNTS RECEVABLE and UNDEPOSITED RECEIPTS
* Credit in account 120000 - ACCOUNTS RECEVABLE ;debitTotal :$754.17 ; creditTotal:$274.18 ; debitCreditDifference : $479.99
* Debit in account 112000 UNDEPOSITED RECEIPTS ;debitTotal :$136.85 ; creditTotal:$116.85 ; debitCreditDifference : $20
-->
<!-- Post condition : When status is set to void, an reverse accounting transaction is automatically posted to the GL.
* Payment status changes to void.
* Credit in account 112000- UNDEPOSITED RECEIPTS ;debitTotal :$136.85 ; creditTotal: $136.85 ; debitCreditDifference : $0
* Debit in account 120000 - ACCOUNTS RECEVABLE debitTotal :$774.17 ; creditTotal: $274.18 ; debitCreditDifference : $ 499.99
-->
<entity-one entity-name="UserLogin" value-field="userLogin">
<field-map field-name="userLoginId" value="system"/>
</entity-one>
<now-timestamp field="nowTimestamp"/>
<set field="findCustomTimePeriodsMap.userLogin" from-field="userLogin"/>
<set field="findCustomTimePeriodsMap.findDate" from-field="nowTimestamp" type="Timestamp"/>
<set field="findCustomTimePeriodsMap.organizationPartyId" value="Company"/>
<call-service service-name="findCustomTimePeriods" in-map-name="findCustomTimePeriodsMap">
<result-to-field result-name="customTimePeriodList"/>
</call-service>
<first-from-list list="customTimePeriodList" entry="customTimePeriod"/>
<set field="getAcctgTransEntriesAndTransTotalMap.userLogin" from-field="userLogin"/>
<set field="getAcctgTransEntriesAndTransTotalMap.organizationPartyId" value="Company"/>
<set field="getAcctgTransEntriesAndTransTotalMap.customTimePeriodStartDate" from-field="customTimePeriod.fromDate" type="Timestamp"/>
<set field="getAcctgTransEntriesAndTransTotalMap.customTimePeriodEndDate" from-field="customTimePeriod.thruDate" type="Timestamp"/>
<set field="getAcctgTransEntriesAndTransTotalMap.glAccountId" value="120000"/>
<call-service service-name="getAcctgTransEntriesAndTransTotal" in-map-name="getAcctgTransEntriesAndTransTotalMap">
<result-to-field result-name="debitTotal" field="receivableDebitTotal"/>
<result-to-field result-name="creditTotal" field="receivableCreditTotal"/>
<result-to-field result-name="debitCreditDifference" field="receivableDebitCreditDifference"/>
</call-service>
<set field="getAcctgTransEntriesAndTransTotalMap.glAccountId" value="112000"/>
<call-service service-name="getAcctgTransEntriesAndTransTotal" in-map-name="getAcctgTransEntriesAndTransTotalMap">
<result-to-field result-name="debitTotal" field="undepositedDebitTotal"/>
<result-to-field result-name="creditTotal" field="undepositedCreditTotal"/>
<result-to-field result-name="debitCreditDifference" field="undepositedDebitCreditDifference"/>
</call-service>
<log level="info" message="BEFORE RUNNING VOID PAYMENT : ACCOUNTS RECEVABLE ;debitTotal :${receivableDebitTotal} ; creditTotal:${receivableCreditTotal} ; debitCreditDifference : ${receivableDebitCreditDifference}"/>
<log level="info" message="BEFORE RUNNING VOID PAYMENT : UNDEPOSITED RECEIPTS ;debitTotal :${undepositedDebitTotal} ; creditTotal:${undepositedCreditTotal} ; debitCreditDifference : ${undepositedDebitCreditDifference}"/>
<set field="paymentId" value="8003"/>
<set field="voidPaymentMap.userLogin" from-field="userLogin"/>
<set field="voidPaymentMap.paymentId" from-field="paymentId"/>
<call-service service-name="voidPayment" in-map-name="voidPaymentMap"/>
<set field="totalReceivableDebitAmount" value="${receivableDebitTotal + 20.00}" type="BigDecimal"/>
<set field="totalReceivableDebitCreditDifference" value="${receivableDebitCreditDifference + 20.00}" type="BigDecimal"/>
<set field="getAcctgTransEntriesAndTransTotalMap.glAccountId" value="120000"/>
<call-service service-name="getAcctgTransEntriesAndTransTotal" in-map-name="getAcctgTransEntriesAndTransTotalMap">
<result-to-field result-name="debitTotal" field="receivableDebitTotal"/>
<result-to-field result-name="creditTotal" field="receivableCreditTotal"/>
<result-to-field result-name="debitCreditDifference" field="receivableDebitCreditDifference"/>
</call-service>
<assert>
<if-compare-field field="totalReceivableDebitAmount" operator="equals" to-field="receivableDebitTotal" type="BigDecimal"/>
<if-compare-field field="totalReceivableDebitCreditDifference" operator="equals" to-field="receivableDebitCreditDifference" type="BigDecimal"/>
</assert>
<check-errors/>
<set field="totalUndepositedCreditAmount" value="${undepositedCreditTotal + 20.00}" type="BigDecimal"/>
<set field="totalUndepositedDebitCreditDifference" value="${undepositedDebitCreditDifference - 20.00}" type="BigDecimal"/>
<set field="getAcctgTransEntriesAndTransTotalMap.glAccountId" value="112000"/>
<call-service service-name="getAcctgTransEntriesAndTransTotal" in-map-name="getAcctgTransEntriesAndTransTotalMap">
<result-to-field result-name="debitTotal" field="undepositedDebitTotal"/>
<result-to-field result-name="creditTotal" field="undepositedCreditTotal"/>
<result-to-field result-name="debitCreditDifference" field="undepositedDebitCreditDifference"/>
</call-service>
<assert>
<if-compare-field field="totalUndepositedCreditAmount" operator="equals" to-field="undepositedCreditTotal" type="BigDecimal"/>
<if-compare-field field="totalUndepositedDebitCreditDifference" operator="equals" to-field="undepositedDebitCreditDifference" type="BigDecimal"/>
</assert>
<check-errors/>
<log level="info" message="AFTER RUNNING VOID PAYMENT : ACCOUNTS RECEVABLE ;debitTotal :${receivableDebitTotal} ; creditTotal:${receivableCreditTotal}; debitCreditDifference : ${receivableDebitCreditDifference}"/>
<log level="info" message="AFTER RUNNING VOID PAYMENT : UNDEPOSITED RECEIPTS ;debitTotal :${undepositedDebitTotal} ; creditTotal:${undepositedCreditTotal} ; debitCreditDifference : ${undepositedDebitCreditDifference}"/>
</simple-method>
<!---Test case to verify GL postings for Check Run process-->
<simple-method method-name="testGlPostingOnCheckRun" short-description="Test case to verify GL postings for Check Run functionality" login-required="false">
<!-- Precondition :
* Invoice is in ready status so accounting transaction is already posted to the GL
* GL Accounts associated with Invoice :8007 are ACCOUNTS PAYABLE and UNINVOICED ITEM RECEIPTS
* Credit in account 210000 - ACCOUNTS PAYABLE ;debitTotal $430 ; creditTotal:$1955.4 ; debitCreditDifference : $ -1524.85
* Debit in account 214000 - UNINVOICED ITEM RECEIPTS;debitTotal :$408 ; creditTotal:$48 ; debitCreditDifference : $360
* UNDEPOSITED RECEIPTS 112000 - debitTotal :$136.85 ; creditTotal:$136.85 ; debitCreditDifference : $0
-->
<!-- Post condition : After Check Run process accounting transactions are automatically posted to the GL.
* Payment get associated with invoice.
* GL Accounts associated with Payment are ACCOUNTS PAYABLE and UNDEPOSITED RECEIPTS.
* ACCOUNTS PAYABLE 210000(for Invoice and Payment) - debitTotal $503.41 ; creditTotal:$1991.83 ; debitCreditDifference : $ -1488.42
* UNINVOICED ITEM RECEIPTS 214000 - debitTotal :$408 ; creditTotal:$48 ; debitCreditDifference : $360
* GENERAL CHECKING ACCOUNT 111100 (for payment)- debitTotal :$136.85 ; creditTotal:$173.28 ; debitCreditDifference : $ -36.43
-->
<entity-one entity-name="UserLogin" value-field="userLogin">
<field-map field-name="userLoginId" value="system"/>
</entity-one>
<now-timestamp field="nowTimestamp"/>
<set field="findCustomTimePeriodsMap.userLogin" from-field="userLogin"/>
<set field="findCustomTimePeriodsMap.findDate" from-field="nowTimestamp" type="Timestamp"/>
<set field="findCustomTimePeriodsMap.organizationPartyId" value="Company"/>
<call-service service-name="findCustomTimePeriods" in-map-name="findCustomTimePeriodsMap">
<result-to-field result-name="customTimePeriodList"/>
</call-service>
<first-from-list list="customTimePeriodList" entry="customTimePeriod"/>
<set field="getAcctgTransEntriesAndTransTotalMap.userLogin" from-field="userLogin"/>
<set field="getAcctgTransEntriesAndTransTotalMap.organizationPartyId" value="Company"/>
<set field="getAcctgTransEntriesAndTransTotalMap.customTimePeriodStartDate" from-field="customTimePeriod.fromDate" type="Timestamp"/>
<set field="getAcctgTransEntriesAndTransTotalMap.customTimePeriodEndDate" from-field="customTimePeriod.thruDate" type="Timestamp"/>
<set field="getAcctgTransEntriesAndTransTotalMap.glAccountId" value="210000"/>
<call-service service-name="getAcctgTransEntriesAndTransTotal" in-map-name="getAcctgTransEntriesAndTransTotalMap">
<result-to-field result-name="debitTotal" field="payableDebitTotal"/>
<result-to-field result-name="creditTotal" field="payableCreditTotal"/>
<result-to-field result-name="debitCreditDifference" field="payableDebitCreditDifference"/>
</call-service>
<set field="getAcctgTransEntriesAndTransTotalMap.glAccountId" value="111100"/>
<call-service service-name="getAcctgTransEntriesAndTransTotal" in-map-name="getAcctgTransEntriesAndTransTotalMap">
<result-to-field result-name="debitTotal" field="undepositedDebitTotal"/>
<result-to-field result-name="creditTotal" field="undepositedCreditTotal"/>
<result-to-field result-name="debitCreditDifference" field="undepositedDebitCreditDifference"/>
</call-service>
<log level="info" message="BEFORE RUNNING CHECK RUN : ACCOUNTS PAYABLE ;debitTotal :${payableDebitTotal} ; creditTotal:${payableCreditTotal} ; debitCreditDifference : ${payableDebitCreditDifference}"/>
<log level="info" message="BEFORE RUNNING VOID PAYMENT : GENERAL CHECKING ACCOUNT ;debitTotal :${undepositedDebitTotal} ; creditTotal:${undepositedCreditTotal} ; debitCreditDifference : ${undepositedDebitCreditDifference}"/>
<clear-field field="invoiceIds"/>
<string-to-list string="8007" list="invoiceIds"/>
<set field="createPaymentAndPaymentGroupForInvoicesMap.userLogin" from-field="userLogin"/>
<set field="createPaymentAndPaymentGroupForInvoicesMap.organizationPartyId" value="Company"/>
<set field="createPaymentAndPaymentGroupForInvoicesMap.checkStartNumber" type="Long" value="100100"/>
<set field="createPaymentAndPaymentGroupForInvoicesMap.invoiceIds" from-field="invoiceIds"/>
<set field="createPaymentAndPaymentGroupForInvoicesMap.paymentMethodTypeId" value="COMPANY_CHECK"/>
<set field="createPaymentAndPaymentGroupForInvoicesMap.paymentMethodId" value="SC_CHECKING"/>
<call-service service-name="createPaymentAndPaymentGroupForInvoices" in-map-name="createPaymentAndPaymentGroupForInvoicesMap">
<result-to-field result-name="paymentGroupId"/>
</call-service>
<set field="totalPayableDebitAmount" value="${payableDebitTotal + 36.43}" type="BigDecimal"/>
<set field="totalPayableCreditAmount" from-field="payableCreditTotal" type="BigDecimal"/>
<set field="totalPayableDebitCreditDifference" value="${payableDebitCreditDifference + 36.43}" type="BigDecimal"/>
<set field="getAcctgTransEntriesAndTransTotalMap.glAccountId" value="210000"/>
<call-service service-name="getAcctgTransEntriesAndTransTotal" in-map-name="getAcctgTransEntriesAndTransTotalMap">
<result-to-field result-name="debitTotal" field="payableDebitTotal"/>
<result-to-field result-name="creditTotal" field="payableCreditTotal"/>
<result-to-field result-name="debitCreditDifference" field="payableDebitCreditDifference"/>
</call-service>
<assert>
<if-compare-field field="totalPayableDebitAmount" operator="equals" to-field="payableDebitTotal" type="BigDecimal"/>
<if-compare-field field="totalPayableCreditAmount" operator="equals" to-field="payableCreditTotal" type="BigDecimal"/>
<if-compare-field field="totalPayableDebitCreditDifference" operator="equals" to-field="payableDebitCreditDifference" type="BigDecimal"/>
</assert>
<check-errors/>
<set field="totalUndepositedCreditAmount" value="${undepositedCreditTotal + 36.43}" type="BigDecimal"/>
<set field="totalUndepositedDebitCreditDifference" value="${undepositedDebitCreditDifference - 36.43}" type="BigDecimal"/>
<set field="getAcctgTransEntriesAndTransTotalMap.glAccountId" value="111100"/>
<call-service service-name="getAcctgTransEntriesAndTransTotal" in-map-name="getAcctgTransEntriesAndTransTotalMap">
<result-to-field result-name="debitTotal" field="undepositedDebitTotal"/>
<result-to-field result-name="creditTotal" field="undepositedCreditTotal"/>
<result-to-field result-name="debitCreditDifference" field="undepositedDebitCreditDifference"/>
</call-service>
<assert>
<if-compare-field field="totalUndepositedCreditAmount" operator="equals" to-field="undepositedCreditTotal" type="BigDecimal"/>
<if-compare-field field="totalUndepositedDebitCreditDifference" operator="equals" to-field="undepositedDebitCreditDifference" type="BigDecimal"/>
</assert>
<check-errors/>
<log level="info" message="AFTER RUNNING CHECK RUN : ACCOUNTS PAYABLE ;debitTotal :${payableDebitTotal} ; creditTotal:${payableCreditTotal} ; debitCreditDifference : ${payableDebitCreditDifference}"/>
<log level="info" message="AFTER RUNNING VOID PAYMENT : GENERAL CHECKING ACCOUNT ;debitTotal :${undepositedDebitTotal} ; creditTotal:${undepositedCreditTotal} ; debitCreditDifference : ${undepositedDebitCreditDifference}"/>
</simple-method>
<simple-method method-name="disabledTestUpdatePaymentMethodAddress" short-description="Creates a new postal address for Company and then calls updatePaymentMethodAddress with the new contactMechId" login-required="false">
<entity-one entity-name="UserLogin" value-field="userLogin">
<field-map field-name="userLoginId" value="flexadmin"/>
</entity-one>
<!-- Create a new Postal Address, set the bare minimum necessary, this test isn't about the postal address -->
<set field="createPartyPostalAddress.userLogin" from-field="userLogin"/>
<set field="createPartyPostalAddress.address1" value="2003 Open Blvd"/>
<set field="createPartyPostalAddress.city" value="2003 Open Blvd"/>
<set field="createPartyPostalAddress.postalCode" value="999999"/>
<call-service service-name="createPartyPostalAddress" in-map-name="createPartyPostalAddress">
<result-to-field result-name="contactMechId"/>
</call-service>
<!-- Count the number of EftAccounts and CreditCards associated to the oldContactMechId, use to verify at the end -->
<entity-count count-field="noEftAccounts9000Before" entity-name="EftAccount">
<condition-expr field-name="contactMechId" value="9000"/>
</entity-count>
<entity-count count-field="noCreditCards9000Before" entity-name="CreditCard">
<condition-expr field-name="contactMechId" value="9000"/>
</entity-count>
<!-- Run the actual service to be tested -->
<set field="updatePaymentMethodAddress.userLogin" from-field="userLogin"/>
<set field="updatePaymentMethodAddress.oldContactMechId" value="9000"/>
<set field="updatePaymentMethodAddress.contactMechId" from-field="contactMechId"/>
<call-service service-name="updatePaymentMethodAddress" in-map-name="updatePaymentMethodAddress"/>
<!-- Count the number EftAccounts and CreditCards now associated with the oldContactMechId (should be zero for both)-->
<entity-count count-field="noEftAccounts9000After" entity-name="EftAccount">
<condition-expr field-name="contactMechId" value="9000"/>
</entity-count>
<entity-count count-field="noCreditCards9000After" entity-name="CreditCard">
<condition-expr field-name="contactMechId" value="9000"/>
</entity-count>
<!-- Count the number of EftAccounts and CreditCards associated to the oldContactMechId, use to verify at the end -->
<entity-count count-field="noEftAccountsNewContactMech" entity-name="EftAccount">
<condition-expr field-name="contactMechId" from-field="contactMechId"/>
</entity-count>
<entity-count count-field="noCreditCardsNewContactMech" entity-name="CreditCard">
<condition-expr field-name="contactMechId" from-field="contactMechId"/>
</entity-count>
<!-- Verify the results -->
<assert>
<!-- New contactMech should have the same number of payment methods as the old did -->
<if-compare-field field="noEftAccountsNewContactMech" operator="equals" to-field="noEftAccounts9000Before" type="Long"/>
<if-compare-field field="noCreditCardsNewContactMech" operator="equals" to-field="noCreditCards9000Before" type="Long"/>
<!-- Old contactMech should no longer have any payment methods associated to it -->
<if-compare field="noEftAccounts9000After" operator="equals" value="0" type="Long"/>
<if-compare field="noCreditCards9000After" operator="equals" value="0" type="Long"/>
</assert>
<check-errors/>
</simple-method>
</simple-methods>