This is an automated email from the ASF dual-hosted git repository.
jleroux 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 cc61673 Improved: Convert cancelCheckRunPayments service from
mini-lang to groovy DSL (OFBIZ-11494)
cc61673 is described below
commit cc6167319863a3ae2c8b6670fb5ff5bf8add6d2a
Author: Jacques Le Roux <[email protected]>
AuthorDate: Sun Aug 9 20:07:51 2020 +0200
Improved: Convert cancelCheckRunPayments service from mini-lang to groovy
DSL (OFBIZ-11494)
Thanks: Devanshu Vyas for report, Yogesh Naroliya for the patch
---
.../groovyScripts/payment/PaymentServices.groovy | 21 +++++++++++++++++
.../minilang/payment/PaymentServices.xml | 26 ----------------------
.../accounting/servicedef/services_payment.xml | 4 ++--
3 files changed, 23 insertions(+), 28 deletions(-)
diff --git
a/applications/accounting/groovyScripts/payment/PaymentServices.groovy
b/applications/accounting/groovyScripts/payment/PaymentServices.groovy
index b3b6b6a..40ab002 100644
--- a/applications/accounting/groovyScripts/payment/PaymentServices.groovy
+++ b/applications/accounting/groovyScripts/payment/PaymentServices.groovy
@@ -439,3 +439,24 @@ def getPayments() {
result.payments = payments
return result
}
+
+def cancelCheckRunPayments() {
+ paymentGroupMemberAndTransList =
from("PmtGrpMembrPaymentAndFinAcctTrans").where("paymentGroupId",
parameters.paymentGroupId).queryList()
+ if (paymentGroupMemberAndTransList) {
+ paymentGroupMemberAndTrans =
EntityUtil.getFirst(paymentGroupMemberAndTransList)
+ if ("FINACT_TRNS_APPROVED" !=
paymentGroupMemberAndTrans.finAccountTransStatusId) {
+ for (GenericValue paymentGroupMemberAndTrans :
paymentGroupMemberAndTransList) {
+ payment = from("Payment").where("paymentId",
paymentGroupMemberAndTrans.paymentId).queryOne()
+ Map voidPaymentMap =
dispatcher.getDispatchContext().makeValidContext("voidPayment", "IN", payment)
+ result = runService("voidPayment", voidPaymentMap)
+ if (ServiceUtil.isError(result)) return result
+ Map expirePaymentGroupMemberMap =
dispatcher.getDispatchContext().makeValidContext("expirePaymentGroupMember",
"IN", paymentGroupMemberAndTrans)
+ result = runService("expirePaymentGroupMember",
expirePaymentGroupMemberMap)
+ if (ServiceUtil.isError(result)) return result
+ }
+ } else {
+ return error(UtilProperties.getMessage("AccountingErrorUiLabels",
"AccountingCheckIsAlreadyIssued", locale))
+ }
+ }
+ return success()
+}
diff --git a/applications/accounting/minilang/payment/PaymentServices.xml
b/applications/accounting/minilang/payment/PaymentServices.xml
index eb05f11..4d7bc1e 100644
--- a/applications/accounting/minilang/payment/PaymentServices.xml
+++ b/applications/accounting/minilang/payment/PaymentServices.xml
@@ -388,32 +388,6 @@ under the License.
</iterate>
</simple-method>
- <simple-method method-name="cancelCheckRunPayments"
short-description="Cancel all payments for payment group">
- <entity-and entity-name="PmtGrpMembrPaymentAndFinAcctTrans"
list="paymentGroupMemberAndTransList">
- <field-map field-name="paymentGroupId"
from-field="parameters.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">
- <entity-one entity-name="Payment" value-field="payment">
- <field-map field-name="paymentId"
from-field="paymentGroupMemberAndTrans.paymentId"/>
- </entity-one>
- <set-service-fields service-name="voidPayment" map="payment"
to-map="voidPaymentMap"/>
- <call-service service-name="voidPayment"
in-map-name="voidPaymentMap"/>
- <set-service-fields service-name="expirePaymentGroupMember"
map="paymentGroupMemberAndTrans" to-map="expirePaymentGroupMemberMap"/>
- <call-service service-name="expirePaymentGroupMember"
in-map-name="expirePaymentGroupMemberMap"/>
- <clear-field field="voidPaymentMap"/>
- <clear-field field="expirePaymentGroupMemberMap"/>
- </iterate>
- <else>
- <add-error>
- <fail-property resource="AccountingUiLabels"
property="AccountingCheckIsAlreadyIssued"/>
- </add-error>
- <check-errors/>
- </else>
- </if-compare>
- </simple-method>
-
<simple-method method-name="checkAndCreateBatchForValidPayments"
short-description="Check the valid(unbatched) payment and create batch for
same">
<set field="paymentIds" from-field="parameters.paymentIds"/>
<entity-condition entity-name="Payment" list="payments">
diff --git a/applications/accounting/servicedef/services_payment.xml
b/applications/accounting/servicedef/services_payment.xml
index 5a4d03a..5579568 100644
--- a/applications/accounting/servicedef/services_payment.xml
+++ b/applications/accounting/servicedef/services_payment.xml
@@ -196,8 +196,8 @@ under the License.
<attribute name="paymentGroupName" type="String" mode="IN"
optional="true"/>
<attribute name="paymentGroupId" type="String" mode="OUT"
optional="false"/>
</service>
- <service name="cancelCheckRunPayments" engine="simple"
-
location="component://accounting/minilang/payment/PaymentServices.xml"
invoke="cancelCheckRunPayments" auth="true">
+ <service name="cancelCheckRunPayments" engine="groovy"
+
location="component://accounting/groovyScripts/payment/PaymentServices.groovy"
invoke="cancelCheckRunPayments" auth="true">
<description>Cancel all payments for payment group</description>
<attribute name="paymentGroupId" type="String" mode="IN"
optional="false"/>
</service>