Author: lektran
Date: Tue Nov 17 08:01:49 2009
New Revision: 881185
URL: http://svn.apache.org/viewvc?rev=881185&view=rev
Log:
Moved all AcctgTransEntry balance checks to an inline method
Modified:
ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/test/AutoAcctgTransTests.xml
Modified:
ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/test/AutoAcctgTransTests.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/test/AutoAcctgTransTests.xml?rev=881185&r1=881184&r2=881185&view=diff
==============================================================================
---
ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/test/AutoAcctgTransTests.xml
(original)
+++
ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/test/AutoAcctgTransTests.xml
Tue Nov 17 08:01:49 2009
@@ -57,12 +57,15 @@
<field-map field-name="shipmentId"/>
</entity-and>
<first-from-list entry="acctgTrans" list="acctgTransList"/>
- <get-related value-field="acctgTrans" relation-name="AcctgTransEntry"
list="acctgTransEntries"/>
+ <get-related value-field="acctgTrans" relation-name="AcctgTransEntry"
list="acctgTransEntryList"/>
<set field="productFilter.productId" from-field="productId"/>
- <filter-list-by-and list="acctgTransEntries" map="productFilter"
to-list="acctgTransEntries"/>
+ <filter-list-by-and list="acctgTransEntryList" map="productFilter"
to-list="acctgTransEntryList"/>
- <assert><not><if-empty field="acctgTransEntries"/></not></assert>
- <iterate list="acctgTransEntries" entry="acctgTransEntry">
+ <assert><not><if-empty field="acctgTransEntryList"/></not></assert>
+
+ <call-simple-method method-name="UtilCheckEntriesBalance"/>
+
+ <iterate list="acctgTransEntryList" entry="acctgTransEntry">
<if-compare field="acctgTransEntry.debitCreditFlag"
operator="equals" value="C">
<assert>
<if-compare field="acctgTransEntry.glAccountTypeId"
operator="equals" value="UNINVOICED_SHIP_RCPT"/>
@@ -112,33 +115,20 @@
</entity-one>
<get-related value-field="invoice" relation-name="AcctgTrans"
list="acctgTransList"/>
<first-from-list list="acctgTransList" entry="acctgTrans"/>
- <get-related value-field="acctgTrans" relation-name="AcctgTransEntry"
list="acctgTransEntries"/>
+ <get-related value-field="acctgTrans" relation-name="AcctgTransEntry"
list="acctgTransEntryList"/>
- <set field="debitTotal" type="BigDecimal" value="0.0"/>
- <set field="creditTotal" type="BigDecimal" value="0.0"/>
+ <assert><not><if-empty field="acctgTransEntryList"/></not></assert>
+
+ <call-simple-method method-name="UtilCheckEntriesBalance"/>
- <assert><not><if-empty field="acctgTransEntries"/></not></assert>
- <iterate list="acctgTransEntries" entry="acctgTransEntry">
+ <iterate list="acctgTransEntryList" entry="acctgTransEntry">
<if-compare field="acctgTransEntry.debitCreditFlag"
operator="equals" value="C">
<assert>
<if-compare field="acctgTransEntry.glAccountTypeId"
operator="equals" value="ACCOUNTS_PAYABLE"/>
<if-compare field="acctgTransEntry.glAccountId"
operator="equals" value="210000"/>
</assert>
- <calculate field="creditTotal">
- <calcop operator="add" field="acctgTransEntry.origAmount"/>
- </calculate>
- <else>
- <if-compare field="acctgTransEntry.debitCreditFlag"
operator="equals" value="D">
- <calculate field="debitTotal">
- <calcop operator="add"
field="acctgTransEntry.origAmount"/>
- </calculate>
- </if-compare>
- </else>
</if-compare>
</iterate>
- <assert>
- <if-compare-field field="debitTotal" operator="equals"
to-field="creditTotal" type="BigDecimal"/>
- </assert>
<check-errors/>
</simple-method>
@@ -166,33 +156,28 @@
</entity-one>
<get-related value-field="payment" relation-name="AcctgTrans"
list="acctgTransList"/>
<first-from-list list="acctgTransList" entry="acctgTrans"/>
- <get-related value-field="acctgTrans" relation-name="AcctgTransEntry"
list="acctgTransEntries"/>
+ <get-related value-field="acctgTrans" relation-name="AcctgTransEntry"
list="acctgTransEntryList"/>
- <set field="debitTotal" type="BigDecimal" value="0.0"/>
- <set field="creditTotal" type="BigDecimal" value="0.0"/>
+ <assert><not><if-empty field="acctgTransEntryList"/></not></assert>
- <assert><not><if-empty field="acctgTransEntries"/></not></assert>
- <iterate list="acctgTransEntries" entry="acctgTransEntry">
+ <call-simple-method method-name="UtilCheckEntriesBalance"/>
+
+ <iterate list="acctgTransEntryList" entry="acctgTransEntry">
<if-compare field="acctgTransEntry.debitCreditFlag"
operator="equals" value="C">
<!--<assert>
<if-compare field="acctgTransEntry.glAccountTypeId"
operator="equals" value="GENERAL_CHECKING_ACCOUNT"/>
<if-compare field="acctgTransEntry.glAccountId"
operator="equals" value="111100"/>
</assert>-->
- <set field="creditTotal"
from-field="acctgTransEntry.origAmount"/>
<else>
<if-compare field="acctgTransEntry.debitCreditFlag"
operator="equals" value="D">
<assert>
<if-compare field="acctgTransEntry.glAccountTypeId"
operator="equals" value="ACCOUNTS_PAYABLE"/>
<if-compare field="acctgTransEntry.glAccountId"
operator="equals" value="210000"/>
</assert>
- <set field="debitTotal"
from-field="acctgTransEntry.origAmount"/>
</if-compare>
</else>
</if-compare>
</iterate>
- <assert>
- <if-compare field="debitTotal" operator="equals"
value="${creditTotal}"/>
- </assert>
<check-errors/>
</simple-method>
@@ -239,6 +224,9 @@
<get-related list="acctgTransEntryList"
relation-name="AcctgTransEntry" value-field="acctgTrans"/>
<assert><not><if-empty field="acctgTransEntryList"/></not></assert>
+
+ <call-simple-method method-name="UtilCheckEntriesBalance"/>
+
<iterate list="acctgTransEntryList" entry="acctgTransEntry">
<if-compare field="acctgTransEntry.debitCreditFlag"
operator="equals" value="C">
<assert>
@@ -298,41 +286,22 @@
<entity-one entity-name="Invoice" value-field="invoice">
<field-map field-name="invoiceId" from-field="invoiceId"/>
</entity-one>
- <get-related value-field="invoice" relation-name="AcctgTrans"
list="acctgTransList"/>
+ <get-related value-field="invoice" relation-name="AcctgTrans"
list="acctgTransList" order-by-list="[-transactionDate]"/>
<first-from-list list="acctgTransList" entry="acctgTrans"/>
- <get-related value-field="acctgTrans" relation-name="AcctgTransEntry"
list="acctgTransEntries"/>
+ <get-related value-field="acctgTrans" relation-name="AcctgTransEntry"
list="acctgTransEntryList"/>
- <assert><not><if-empty field="acctgTransEntries"/></not></assert>
- <set field="debitTotal" value="0" type="BigDecimal"/>
- <set field="creditTotal" value="0" type="BigDecimal"/>
- <iterate entry="acctgTransEntry" list="acctgTransEntries">
- <if-compare field="acctgTransEntry.debitCreditFlag"
operator="equals" value="C">
- <calculate field="creditTotal">
- <calcop operator="add" field="acctgTransEntry.origAmount"/>
- <calcop operator="get" field="creditTotal"/>
- </calculate>
- <else>
- <if-compare field="acctgTransEntry.debitCreditFlag"
operator="equals" value="D">
- <calculate field="debitTotal">
- <calcop operator="add"
field="acctgTransEntry.origAmount"/>
- <calcop operator="get" field="debitTotal"/>
- </calculate>
- </if-compare>
- </else>
- </if-compare>
- </iterate>
- <assert>
- <if-compare-field field="debitTotal" operator="equals"
to-field="creditTotal"/>
- </assert>
+ <assert><not><if-empty field="acctgTransEntryList"/></not></assert>
+
+ <call-simple-method method-name="UtilCheckEntriesBalance"/>
<set field="checkMap.glAccountTypeId" value="ACCOUNTS_RECEIVABLE"/>
<set field="checkMap.glAccountId" value="120000"/>
- <filter-list-by-and list="acctgTransEntries"
to-list="accountsReceivableEntries" map="checkMap"/>
+ <filter-list-by-and list="acctgTransEntryList"
to-list="accountsReceivableEntries" map="checkMap"/>
<assert><not><if-empty
field="accountsReceivableEntries"></if-empty></not></assert>
<clear-field field="checkMap"/>
<set field="checkMap.glAccountId" value="400000"/>
- <filter-list-by-and list="acctgTransEntries"
to-list="salesAccountEntries" map="checkMap"/>
+ <filter-list-by-and list="acctgTransEntryList"
to-list="salesAccountEntries" map="checkMap"/>
<assert><not><if-empty
field="salesAccountEntries"></if-empty></not></assert>
<check-errors/>
@@ -365,34 +334,26 @@
</entity-one>
<get-related value-field="payment" relation-name="AcctgTrans"
list="acctgTransList"/>
<first-from-list list="acctgTransList" entry="acctgTrans"/>
- <get-related value-field="acctgTrans" relation-name="AcctgTransEntry"
list="acctgTransEntries"/>
- <set field="debitTotal" type="BigDecimal" value="0.0"/>
- <set field="creditTotal" type="BigDecimal" value="0.0"/>
+ <get-related value-field="acctgTrans" relation-name="AcctgTransEntry"
list="acctgTransEntryList"/>
+
+ <assert><not><if-empty field="acctgTransEntryList"/></not></assert>
- <assert><not><if-empty field="acctgTransEntries"/></not></assert>
- <iterate entry="acctgTransEntry" list="acctgTransEntries">
+ <call-simple-method method-name="UtilCheckEntriesBalance"/>
+
+ <iterate entry="acctgTransEntry" list="acctgTransEntryList">
<if-compare field="acctgTransEntry.debitCreditFlag"
operator="equals" value="C">
<!--<assert>
<if-compare field="acctgTransEntry.glAccountTypeId"
operator="equals" value="ACCOUNTS_RECEIVABLE"/>
<if-compare field="acctgTransEntry.glAccountId"
operator="equals" value="120000"/>
</assert>-->
- <calculate field="creditTotal">
- <calcop operator="add" field="acctgTransEntry.origAmount"/>
- </calculate>
</if-compare>
<if-compare field="acctgTransEntry.debitCreditFlag"
operator="equals" value="D">
<!--<assert>
<if-compare field="acctgTransEntry.glAccountTypeId"
operator="equals" value="UNDEPOSITED_RECEIPTS"/>
<if-compare field="acctgTransEntry.glAccountId"
operator="equals" value="112000"/>
</assert>-->
- <calculate field="debitTotal">
- <calcop operator="add" field="acctgTransEntry.origAmount"/>
- </calculate>
</if-compare>
</iterate>
- <assert>
- <if-compare field="debitTotal" operator="equals"
value="creditTotal"/>
- </assert>
<check-errors/>
</simple-method>
@@ -581,4 +542,31 @@
</assert>
<check-errors/>
</simple-method>
+
+ <simple-method method-name="UtilCheckEntriesBalance"
+ short-description="Short util method that takes a list of
AcctgTransEntry values (acctgTransEntryList) and checks that the debit and
credit totals balance.">
+ <set field="debitTotal" type="BigDecimal" value="0.0"/>
+ <set field="creditTotal" type="BigDecimal" value="0.0"/>
+
+ <assert><not><if-empty field="acctgTransEntryList"/></not></assert>
+ <iterate list="acctgTransEntryList" entry="acctgTransEntry">
+ <if-compare field="acctgTransEntry.debitCreditFlag"
operator="equals" value="C">
+ <calculate field="creditTotal">
+ <calcop operator="get" field="creditTotal"/>
+ <calcop operator="add" field="acctgTransEntry.origAmount"/>
+ </calculate>
+ <else>
+ <if-compare field="acctgTransEntry.debitCreditFlag"
operator="equals" value="D">
+ <calculate field="debitTotal">
+ <calcop operator="get" field="debitTotal"/>
+ <calcop operator="add"
field="acctgTransEntry.origAmount"/>
+ </calculate>
+ </if-compare>
+ </else>
+ </if-compare>
+ </iterate>
+ <assert>
+ <if-compare-field field="debitTotal" operator="equals"
to-field="creditTotal" type="BigDecimal"/>
+ </assert>
+ </simple-method>
</simple-methods>