This is an automated email from the ASF dual-hosted git repository.

akashjain pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git


The following commit(s) were added to refs/heads/trunk by this push:
     new f764266  Improved: Convert AutoInvoiceTests.xml to Groovy (OFBIZ-11531)
f764266 is described below

commit f764266d171a68968f73d2c8349c174b352b2af1
Author: Akash Jain <akash.j...@hotwaxsystems.com>
AuthorDate: Thu Jul 2 12:20:18 2020 +0530

    Improved: Convert AutoInvoiceTests.xml to Groovy (OFBIZ-11531)
    
    Thanks, Rohit Hukkeri for the report.
---
 .../accounting/minilang/test/AutoInvoiceTests.xml  | 248 ---------------------
 .../ofbiz/accounting/AutoInvoiceTests.groovy       | 195 ++++++++++++++++
 applications/accounting/testdef/invoicetests.xml   |   1 -
 3 files changed, 195 insertions(+), 249 deletions(-)

diff --git a/applications/accounting/minilang/test/AutoInvoiceTests.xml 
b/applications/accounting/minilang/test/AutoInvoiceTests.xml
deleted file mode 100644
index 833d11c..0000000
--- a/applications/accounting/minilang/test/AutoInvoiceTests.xml
+++ /dev/null
@@ -1,248 +0,0 @@
-<?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";
-        xmlns="http://ofbiz.apache.org/Simple-Method"; 
xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method 
http://ofbiz.apache.org/dtds/simple-methods.xsd";>
-
-    <!-- Test case for Commission Run -->
-    <simple-method method-name="testCommissionRun" short-description="Test 
case for Commission Run" login-required="false">
-
-        <!-- Precondition : For Creating Commission invoice following data 
should be there :
-                1 ) Sales invoices with paid status.(invoiceId = "8100")
-                2 ) Sales Representative with agreement to Company on product 
(DemoCustAgent and DemoRepAll). -->
-        <!-- Postcondition :
-                1 ) Two commission will be creating for the parties 
DemoCustAgent and DemoRepAll (like 10000 and 10001 invoiceId).
-                2 ) Its amountTotal will be same as commission cost of 
associated products. -->
-
-        <set field="invoiceId" value="8100"/>
-        <set field="invoiceIds[]" from-field="invoiceId"/>
-        <set field="partyIds[]" value="DemoRepAll"/>
-        <set field="partyIds[]" value="DemoCustAgent"/>
-        <set field="partyIds[]" value="DemoRepStore"/>
-        <set field="invoiceTotal" type="BigDecimal" value="0"/>
-        <entity-one entity-name="UserLogin" value-field="userLogin">
-            <field-map field-name="userLoginId" value="system"/>
-        </entity-one>
-        <entity-and  entity-name="InvoiceItem" list="invoiceItems">
-            <field-map field-name="invoiceId" from-field="invoiceId"/>
-        </entity-and>
-        <iterate list="invoiceItems" entry="invoiceItem">
-            <if-compare field="invoiceItem.productId" operator="equals" 
value="WG-9943-B3">
-                <set field="invoiceTotal" value="${invoiceTotal + 
(invoiceItem.quantity * (invoiceItem.amount * 3 / 100 + 1))}" 
type="BigDecimal"/>
-            </if-compare>
-        </iterate>
-        <set field="createCommissionInvoicesMap.invoiceIds" 
from-field="invoiceIds"/>
-        <set field="createCommissionInvoicesMap.partyIds" 
from-field="partyIds"/>
-        <set field="createCommissionInvoicesMap.userLogin" 
from-field="userLogin"/>
-        <call-service service-name="createCommissionInvoices"  
in-map-name="createCommissionInvoicesMap">
-            <result-to-field result-name="invoicesCreated"/>
-        </call-service>
-        <assert>
-            <not><if-empty field="invoicesCreated"/></not>
-        </assert>
-        <check-errors/>
-        <iterate list="invoicesCreated" entry="invoice">
-            <call-class-method method-name="getInvoiceTotal" 
ret-field="amountTotal" 
class-name="org.apache.ofbiz.accounting.invoice.InvoiceWorker">
-                <field field="delegator" 
type="org.apache.ofbiz.entity.Delegator"/>
-                <field field="invoice.commissionInvoiceId" type="String"/>
-            </call-class-method>
-            <assert>
-                <or>
-                    <if-compare-field field="amountTotal" operator="equals" 
to-field="invoiceTotal"/>
-                </or>
-            </assert>
-            <check-errors/>
-        </iterate>
-        <log level="info" message="Commission Invoice ${invoicesCreated} is 
created successfully for ${partyIds}"/>
-    </simple-method>
-
-    <!--Test case to verify GL postings for Cancel Invoice process-->
-    <simple-method method-name="testGlPostingOnCancelInvoice" 
short-description="Test case to verify GL postings for Cancel Invoice 
functionality" login-required="false">
-        <!-- Precondition :
-            * Invoice is in ready status so accounting transaction is already 
posted to the GL
-            * GL Accounts associated with Invoice :8008 are ACCOUNTS PAYABLE 
and UNINVOICED ITEM RECEIPTS
-            * Credit in account 210000 - ACCOUNTS PAYABLE ;debitTotal $303.41 
; creditTotal:$1651.7 ; debitCreditDifference : $ -1348.42
-            * Debit in account 214000 - UNINVOICED ITEM RECEIPTS;debitTotal 
:$408 ; creditTotal:$48 ; debitCreditDifference : $360
-        -->
-
-        <!-- Post condition : After Cancel Invoice process reverse accounting 
transactions are automatically posted to the GL.
-            * ACCOUNTS PAYABLE 210000  - debitTotal $351.41 ; 
creditTotal:$1651.7 ; debitCreditDifference : $ -1300
-            * UNINVOICED ITEM RECEIPTS 214000 - debitTotal :$408 ; 
creditTotal:$96 ; debitCreditDifference : $312
-        -->
-        <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="214000"/>
-        <call-service service-name="getAcctgTransEntriesAndTransTotal" 
in-map-name="getAcctgTransEntriesAndTransTotalMap">
-            <result-to-field result-name="debitTotal" 
field="uninvoicedDebitTotal"/>
-            <result-to-field result-name="creditTotal" 
field="uninvoicedCreditTotal"/>
-            <result-to-field result-name="debitCreditDifference" 
field="uninvoicedDebitCreditDifference"/>
-        </call-service>
-        <log level="info" message="BEFORE RUNNING CANCEL INVOICE : ACCOUNTS 
PAYABLE ;debitTotal :${payableDebitTotal} ; creditTotal:${payableCreditTotal} ; 
debitCreditDifference : ${payableDebitCreditDifference}"/>
-        <log level="info" message="BEFORE RUNNING CANCEL INVOICE :UNINVOICED 
RECEIPTS;debitTotal :${uninvoicedDebitTotal} ; 
creditTotal:${uninvoicedCreditTotal} ; debitCreditDifference : 
${uninvoicedDebitCreditDifference}"/>
-        <set field="invoiceId" value="8008"/>
-        <set field="cancelInvoiceMap.userLogin" from-field="userLogin"/>
-        <set field="cancelInvoiceMap.invoiceId" from-field="invoiceId"/>
-        <call-service service-name="cancelInvoice" 
in-map-name="cancelInvoiceMap"/>
-
-        <set field="totalPayableDebitAmount" value="${payableDebitTotal + 48}" 
type="BigDecimal"/>
-        <set field="totalPayableDebitCreditDifference" 
value="${payableDebitCreditDifference + 48}" 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="totalPayableDebitCreditDifference" 
operator="equals" to-field="payableDebitCreditDifference" type="BigDecimal"/>
-        </assert>
-        <check-errors/>
-        <set field="totalUnInvoicedCreditAmount" 
value="${uninvoicedCreditTotal + 48}" type="BigDecimal"/>
-        <set field="totalUnInvoicedDebitCreditDifference" 
value="${uninvoicedDebitCreditDifference - 48}" type="BigDecimal"/>
-        <set field="getAcctgTransEntriesAndTransTotalMap.glAccountId" 
value="214000"/>
-        <call-service service-name="getAcctgTransEntriesAndTransTotal" 
in-map-name="getAcctgTransEntriesAndTransTotalMap">
-            <result-to-field result-name="debitTotal" 
field="uninvoicedDebitTotal"/>
-            <result-to-field result-name="creditTotal" 
field="uninvoicedCreditTotal"/>
-            <result-to-field result-name="debitCreditDifference" 
field="uninvoicedDebitCreditDifference"/>
-        </call-service>
-        <assert>
-            <if-compare-field field="totalUnInvoicedCreditAmount" 
operator="equals" to-field="uninvoicedCreditTotal" type="BigDecimal"/>
-            <if-compare-field field="totalUnInvoicedDebitCreditDifference" 
operator="equals" to-field="uninvoicedDebitCreditDifference" type="BigDecimal"/>
-        </assert>
-        <check-errors/>
-        <log level="info" message="AFTER RUNNING CANCEL INVOICE : ACCOUNTS 
PAYABLE ;debitTotal :${payableDebitTotal} ; creditTotal:${payableCreditTotal} ; 
debitCreditDifference : ${payableDebitCreditDifference}"/>
-        <log level="info" message="AFTER RUNNING CANCEL INVOICE : UNINVOICED 
RECEIPTS ;debitTotal :${uninvoicedDebitTotal} ; 
creditTotal:${uninvoicedCreditTotal} ; debitCreditDifference : 
${uninvoicedDebitCreditDifference}"/>
-    </simple-method>
-
-    <!--Test case to verify GL postings for Cancel Check Run process-->
-    <simple-method method-name="testGlPostingOnCancelCheckRun" 
short-description="Test case to verify GL postings for Cancel Check Run 
functionality" login-required="false">
-        <!-- Precondition :
-            * Two invoices are associated with PaymentGroupId 9000 which are 
8001 and 8002
-            * Invoices are in ready status so accounting transactions are 
already posted to the GL
-            * GL Accounts associated with Invoices are ACCOUNTS PAYABLE 
(210000) and GENERAL CHECKING ACCOUNT (111100)
-        -->
-
-        <!-- Post condition : After Cancel Check Run process accounting 
transactions are automatically posted to the GL.
-            * ACCOUNTS PAYABLE 210000  - debitTotal increased of $82.86 ; 
creditTotal increased of $165.72 ; debitCreditDifference decreased of $82.86
-            * GENERAL CHECKING ACCOUNT 111100 - debitTotal increased of $82.86 
; debitCreditDifference increased of $82.86
-        -->
-        <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 CANCEL CHECK RUN  : 
ACCOUNTS PAYABLE ;debitTotal :${payableDebitTotal} ; 
creditTotal:${payableCreditTotal} ; debitCreditDifference : 
${payableDebitCreditDifference}"/>
-        <log level="info" message="BEFORE  RUNNING CANCEL CHECK RUN : 
UNDEPOSITED RECEIPTS ;debitTotal :${undepositedDebitTotal} ; 
creditTotal:${undepositedCreditTotal} ; debitCreditDifference : 
${undepositedDebitCreditDifference}"/>
-
-        <set field="paymentGroupId" value="9000"/>
-        <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">
-
-        <set field="tempBig" value="82.86" type="BigDecimal"/><!-- Necessary, 
see OFBIZ-6386 -->
-        <set field="totalPayableDebitAmount" value="${payableDebitTotal + 
tempBig}" type="BigDecimal"/>
-        <set field="totalPayableCreditAmount" value="165.72" 
type="BigDecimal"/>
-        <set field="totalPayableCreditAmount" value="${payableCreditTotal + 
totalPayableCreditAmount}" type="BigDecimal"/>
-        <set field="totalPayableDebitCreditDifference" 
value="${payableDebitCreditDifference - tempBig}" 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="totalUndepositedDebitAmount" 
value="${undepositedDebitTotal + tempBig}" type="BigDecimal"/>
-        <set field="totalUndepositedDebitCreditDifference" 
value="${undepositedDebitCreditDifference + tempBig}" 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="totalUndepositedDebitAmount" 
operator="equals" to-field="undepositedDebitTotal" type="BigDecimal"/>
-            <if-compare-field field="totalUndepositedDebitCreditDifference" 
operator="equals" to-field="undepositedDebitCreditDifference" 
type="BigDecimal"/>
-        </assert>
-        <check-errors/>
-
-        </if-compare>
-        <log level="info" message="AFTER  RUNNING CANCEL CHECK RUN: ACCOUNTS 
PAYABLE ;debitTotal :${payableDebitTotal} ; creditTotal:${payableCreditTotal} ; 
debitCreditDifference : ${payableDebitCreditDifference}"/>
-        <log level="info" message="AFTER  RUNNING CANCEL CHECK RUN  : 
UNDEPOSITED RECEIPTS ;debitTotal :${undepositedDebitTotal} ; 
creditTotal:${undepositedCreditTotal} ; debitCreditDifference : 
${undepositedDebitCreditDifference}"/>
-    </simple-method>
-
-</simple-methods>
diff --git 
a/applications/accounting/src/main/groovy/org/apache/ofbiz/accounting/AutoInvoiceTests.groovy
 
b/applications/accounting/src/main/groovy/org/apache/ofbiz/accounting/AutoInvoiceTests.groovy
index a3291fd..5f3d32a 100644
--- 
a/applications/accounting/src/main/groovy/org/apache/ofbiz/accounting/AutoInvoiceTests.groovy
+++ 
b/applications/accounting/src/main/groovy/org/apache/ofbiz/accounting/AutoInvoiceTests.groovy
@@ -20,8 +20,10 @@
  package org.apache.ofbiz.accounting;
 
 import org.apache.ofbiz.accounting.invoice.InvoiceWorker
+import org.apache.ofbiz.base.util.UtilDateTime
 import org.apache.ofbiz.entity.GenericValue
 import org.apache.ofbiz.entity.util.EntityQuery
+import org.apache.ofbiz.service.ServiceUtil
 import org.apache.ofbiz.service.testtools.OFBizTestCase
 
 class AutoInvoiceTests extends OFBizTestCase {
@@ -108,4 +110,197 @@ class AutoInvoiceTests extends OFBizTestCase {
         BigDecimal invoiceTotal = InvoiceWorker.getInvoiceTotal(invoice)
         assert  invoiceTotal == amount
     }
+
+    // Test case for Commission Run
+    void testCommissionRun() {
+        /*
+            Precondition : For Creating Commission invoice following data 
should be there :
+                1 ) Sales invoices with paid status.(invoiceId = "8100")
+                2 ) Sales Representative with agreement to Company on product 
(DemoCustAgent and DemoRepAll). -->
+            Postcondition :
+                1 ) Two commission will be creating for the parties 
DemoCustAgent and DemoRepAll (like 10000 and 10001 invoiceId).
+                2 ) Its amountTotal will be same as commission cost of 
associated products.
+        */
+        BigDecimal invoiceTotal = new BigDecimal('0')
+        BigDecimal amountTotal = new BigDecimal('0')
+
+        List<GenericValue> invoiceItems = from('InvoiceItem')
+                .where('invoiceId', '8100')
+                .queryList()
+        assert invoiceItems
+
+        for (GenericValue invoiceItem : invoiceItems) {
+            if (invoiceItem.productId && 
'WG-9943-B3'.equals(invoiceItem.productId)) {
+                invoiceTotal = invoiceTotal.add(invoiceItem.quantity * 
(invoiceItem.amount * 0.03 + 1))
+            }
+        }
+
+        Map serviceCtx = [
+                invoiceIds: ['8100'],
+                partyIds: ['DemoRepAll', 'DemoCustAgent', 'DemoRepStore'],
+                userLogin: userLogin
+        ]
+        Map serviceResult = dispatcher.runSync('createCommissionInvoices', 
serviceCtx)
+        assert ServiceUtil.isSuccess(serviceResult)
+        assert serviceResult.invoicesCreated
+
+        for (Map invoice : serviceResult.invoicesCreated) {
+            amountTotal = 
amountTotal.add(InvoiceWorker.getInvoiceTotal(delegator, 
invoice.commissionInvoiceId))
+        }
+        assert invoiceTotal.compareTo(amountTotal) == 0
+    }
+
+    // Test case to verify GL postings for Cancel Invoice process
+    void testGlPostingOnCancelInvoice() {
+        /*
+            Precondition :
+              * Invoice is in ready status so accounting transaction is 
already posted to the GL
+              * GL Accounts associated with Invoice :8008 are ACCOUNTS PAYABLE 
and UNINVOICED ITEM RECEIPTS
+              * Credit in account 210000 - ACCOUNTS PAYABLE ;debitTotal 
$303.41 ; creditTotal:$1651.7 ; debitCreditDifference : $ -1348.42
+              * Debit in account 214000 - UNINVOICED ITEM RECEIPTS;debitTotal 
:$408 ; creditTotal:$48 ; debitCreditDifference : $360
+
+            Post condition : After Cancel Invoice process reverse accounting 
transactions are automatically posted to the GL.
+              * ACCOUNTS PAYABLE 210000  - debitTotal $351.41 ; 
creditTotal:$1651.7 ; debitCreditDifference : $ -1300
+              * UNINVOICED ITEM RECEIPTS 214000 - debitTotal :$408 ; 
creditTotal:$96 ; debitCreditDifference : $312
+        */
+        Map serviceCtx = [
+                organizationPartyId: 'Company',
+                findDate: UtilDateTime.nowTimestamp(),
+                userLogin: userLogin
+        ]
+        Map serviceResult = dispatcher.runSync('findCustomTimePeriods', 
serviceCtx)
+        assert ServiceUtil.isSuccess(serviceResult)
+        assert serviceResult.customTimePeriodList
+        GenericValue customTimePeriod = 
(serviceResult.customTimePeriodList).get(0)
+
+        serviceCtx.clear()
+        serviceResult.clear()
+        serviceCtx = [
+                organizationPartyId: 'Company',
+                customTimePeriodStartDate: customTimePeriod.fromDate,
+                customTimePeriodEndDate: customTimePeriod.thruDate,
+                glAccountId: '210000',
+                userLogin: userLogin
+        ]
+        serviceResult = 
dispatcher.runSync('getAcctgTransEntriesAndTransTotal', serviceCtx)
+        assert ServiceUtil.isSuccess(serviceResult)
+        BigDecimal payableDebitTotal = serviceResult.debitTotal
+        BigDecimal payableCreditTotal = serviceResult.creditTotal
+        BigDecimal payableDebitCreditDifference = 
serviceResult.debitCreditDifference
+
+        serviceResult.clear()
+        serviceCtx.glAccountId = '214000'
+        serviceResult = 
dispatcher.runSync('getAcctgTransEntriesAndTransTotal', serviceCtx)
+        assert ServiceUtil.isSuccess(serviceResult)
+        BigDecimal uninvoicedDebitTotal = serviceResult.debitTotal
+        BigDecimal uninvoicedCreditTotal = serviceResult.creditTotal
+        BigDecimal uninvoicedDebitCreditDifference = 
serviceResult.debitCreditDifference
+
+        serviceResult.clear()
+        Map cancelInvoiceCtx = [
+                invoiceId: '8008',
+                userLogin: userLogin
+        ]
+        serviceResult = dispatcher.runSync('cancelInvoice', cancelInvoiceCtx)
+        assert ServiceUtil.isSuccess(serviceResult)
+
+        BigDecimal totalPayableDebitAmount = payableDebitTotal.add(new 
BigDecimal('48'))
+        BigDecimal totalPayableDebitCreditDifference = 
payableDebitCreditDifference.add(new BigDecimal('48'))
+        serviceResult.clear()
+        serviceCtx.glAccountId = '210000'
+        serviceResult = 
dispatcher.runSync('getAcctgTransEntriesAndTransTotal', serviceCtx)
+        assert ServiceUtil.isSuccess(serviceResult)
+        assert totalPayableDebitAmount.compareTo(serviceResult.debitTotal) == 0
+        assert 
totalPayableDebitCreditDifference.compareTo(serviceResult.debitCreditDifference)
 == 0
+
+        BigDecimal totalUnInvoicedCreditAmount = uninvoicedCreditTotal.add(new 
BigDecimal('48'))
+        BigDecimal totalUnInvoicedDebitCreditDifference = 
uninvoicedDebitCreditDifference.subtract(new BigDecimal('48'))
+        serviceResult.clear()
+        serviceCtx.glAccountId = '214000'
+        serviceResult = 
dispatcher.runSync('getAcctgTransEntriesAndTransTotal', serviceCtx)
+        assert ServiceUtil.isSuccess(serviceResult)
+        assert 
totalUnInvoicedCreditAmount.compareTo(serviceResult.creditTotal) == 0
+        assert 
totalUnInvoicedDebitCreditDifference.compareTo(serviceResult.debitCreditDifference)
 == 0
+    }
+
+    // Test case to verify GL postings for Cancel Check Run process
+    void testGlPostingOnCancelCheckRun() {
+        /*
+            Precondition :
+              * Two invoices are associated with PaymentGroupId 9000 which are 
8001 and 8002
+              * Invoices are in ready status so accounting transactions are 
already posted to the GL
+              * GL Accounts associated with Invoices are ACCOUNTS PAYABLE 
(210000) and GENERAL CHECKING ACCOUNT (111100)
+
+            Post condition : After Cancel Check Run process accounting 
transactions are automatically posted to the GL.
+              * ACCOUNTS PAYABLE 210000  - debitTotal increased of $82.86 ; 
creditTotal increased of $165.72 ; debitCreditDifference decreased of $82.86
+              * GENERAL CHECKING ACCOUNT 111100 - debitTotal increased of 
$82.86 ; debitCreditDifference increased of $82.86
+        */
+        Map serviceCtx = [
+                organizationPartyId: 'Company',
+                findDate: UtilDateTime.nowTimestamp(),
+                userLogin: userLogin
+        ]
+        Map serviceResult = dispatcher.runSync('findCustomTimePeriods', 
serviceCtx)
+        assert ServiceUtil.isSuccess(serviceResult)
+        assert serviceResult.customTimePeriodList
+        GenericValue customTimePeriod = 
(serviceResult.customTimePeriodList).get(0)
+
+        serviceCtx.clear()
+        serviceResult.clear()
+        serviceCtx = [
+                organizationPartyId: 'Company',
+                customTimePeriodStartDate: customTimePeriod.fromDate,
+                customTimePeriodEndDate: customTimePeriod.thruDate,
+                glAccountId: '210000',
+                userLogin: userLogin
+        ]
+        serviceResult = 
dispatcher.runSync('getAcctgTransEntriesAndTransTotal', serviceCtx)
+        assert ServiceUtil.isSuccess(serviceResult)
+        BigDecimal payableDebitTotal = serviceResult.debitTotal
+        BigDecimal payableCreditTotal = serviceResult.creditTotal
+        BigDecimal payableDebitCreditDifference = 
serviceResult.debitCreditDifference
+
+        serviceResult.clear()
+        serviceCtx.glAccountId = '111100'
+        serviceResult = 
dispatcher.runSync('getAcctgTransEntriesAndTransTotal', serviceCtx)
+        assert ServiceUtil.isSuccess(serviceResult)
+        BigDecimal undepositedDebitTotal = serviceResult.debitTotal
+        BigDecimal undepositedCreditTotal = serviceResult.creditTotal
+        BigDecimal undepositedDebitCreditDifference = 
serviceResult.debitCreditDifference
+
+        serviceResult.clear()
+        Map cancelCheckRunPaymentsCtx = [
+                paymentGroupId: '9000',
+                userLogin: userLogin
+        ]
+        serviceResult = dispatcher.runSync('cancelCheckRunPayments', 
cancelCheckRunPaymentsCtx)
+        assert ServiceUtil.isSuccess(serviceResult)
+
+        GenericValue paymentGroupMemberAndTrans = 
from('PmtGrpMembrPaymentAndFinAcctTrans')
+                .where('paymentGroupId', '9000')
+                .queryFirst()
+        if (paymentGroupMemberAndTrans && 
!'FINACT_TRNS_APPROVED'.equals(paymentGroupMemberAndTrans.finAccountTransStatusId))
 {
+            BigDecimal tempBig = new BigDecimal('82.86')
+
+            BigDecimal totalPayableDebitAmount = tempBig.add(payableDebitTotal)
+            BigDecimal totalPayableCreditAmount = new 
BigDecimal('165.72').add(payableCreditTotal)
+            BigDecimal totalPayableDebitCreditDifference = 
payableDebitCreditDifference.subtract(tempBig)
+            serviceResult.clear()
+            serviceCtx.glAccountId = '210000'
+            serviceResult = 
dispatcher.runSync('getAcctgTransEntriesAndTransTotal', serviceCtx)
+            assert ServiceUtil.isSuccess(serviceResult)
+            assert totalPayableDebitAmount.compareTo(serviceResult.debitTotal) 
== 0
+            assert 
totalPayableCreditAmount.compareTo(serviceResult.creditTotal) == 0
+            assert 
totalPayableDebitCreditDifference.compareTo(serviceResult.debitCreditDifference)
 == 0
+
+            BigDecimal totalUndepositedDebitAmount = 
tempBig.add(undepositedDebitTotal)
+            BigDecimal totalUndepositedDebitCreditDifference = 
tempBig.add(undepositedDebitCreditDifference)
+            serviceResult.clear()
+            serviceCtx.glAccountId = '111100'
+            serviceResult = 
dispatcher.runSync('getAcctgTransEntriesAndTransTotal', serviceCtx)
+            assert ServiceUtil.isSuccess(serviceResult)
+            assert 
totalUndepositedDebitAmount.compareTo(serviceResult.debitTotal) == 0
+            assert 
totalUndepositedDebitCreditDifference.compareTo(serviceResult.debitCreditDifference)
 == 0
+        }
+    }
 }
diff --git a/applications/accounting/testdef/invoicetests.xml 
b/applications/accounting/testdef/invoicetests.xml
index a3e8388..f2f7cfb 100644
--- a/applications/accounting/testdef/invoicetests.xml
+++ b/applications/accounting/testdef/invoicetests.xml
@@ -23,7 +23,6 @@
         
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/test-suite.xsd";>
 
     <test-group case-name="auto-invoice-tests">
-        <simple-method-test 
location="component://accounting/minilang/test/AutoInvoiceTests.xml"/>
         <junit-test-suite 
class-name="org.apache.ofbiz.accounting.AutoInvoiceTests"/>
     </test-group>
     <test-case case-name="invoice-per-shipment-tests">

Reply via email to