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 7c4a117 Improved: Convert getPaymentGroupReconciliationId service
from mini-lang to groovy DSL (OFBIZ-11496) Thanks: Devanshu Vyas for report and
Rohit Koushal for the patch
7c4a117 is described below
commit 7c4a117448429be6bd9f9d435d21cbd0bbe81d44
Author: Jacques Le Roux <[email protected]>
AuthorDate: Thu Jul 9 13:56:36 2020 +0200
Improved: Convert getPaymentGroupReconciliationId service from mini-lang to
groovy DSL (OFBIZ-11496)
Thanks: Devanshu Vyas for report and Rohit Koushal for the patch
Improved: Convert createPaymentAndApplication service from mini-lang to
groovy DSL (OFBIZ-11484)
Thanks: Devanshu Vyas for report and Anushi Gupta for the patch
Sorry due to a bad handling there are 2 commits in one (squashed)
---
.../groovyScripts/payment/PaymentServices.groovy | 34 ++++++++++++++++++++++
.../minilang/payment/PaymentServices.xml | 34 ----------------------
.../accounting/servicedef/services_payment.xml | 8 ++---
3 files changed, 38 insertions(+), 38 deletions(-)
diff --git
a/applications/accounting/groovyScripts/payment/PaymentServices.groovy
b/applications/accounting/groovyScripts/payment/PaymentServices.groovy
index 02846d7..b3b6b6a 100644
--- a/applications/accounting/groovyScripts/payment/PaymentServices.groovy
+++ b/applications/accounting/groovyScripts/payment/PaymentServices.groovy
@@ -320,6 +320,40 @@ def massChangePaymentStatus() {
return serviceResult
}
+def getPaymentGroupReconciliationId() {
+ paymentGroupMember = from("PaymentGroupMember").where("paymentGroupId",
parameters.paymentGroupId).queryFirst()
+ glReconciliationId = null;
+ Map result = success()
+ if (paymentGroupMember) {
+ payment = paymentGroupMember.getRelatedOne('Payment', false)
+ finAccountTrans = payment.getRelatedOne('FinAccountTrans', false)
+ if (finAccountTrans) {
+ glReconciliationId = finAccountTrans.glReconciliationId
+ }
+ }
+ result.glReconciliationId = glReconciliationId
+ return result
+}
+
+def createPaymentAndApplication() {
+ Map result = success()
+ Map createPaymentCtx =
dispatcher.getDispatchContext().makeValidContext('createPayment', 'IN',
parameters)
+ Map createPaymentResp = dispatcher.runSync('createPayment',
createPaymentCtx)
+
+ if (ServiceUtil.isError(createPaymentResp)) return createPaymentResp
+
+ Map createPaymentApplicationCtx =
dispatcher.getDispatchContext().makeValidContext('createPaymentApplication',
'IN', parameters)
+ createPaymentApplicationCtx.paymentId = createPaymentResp.paymentId
+ createPaymentApplicationCtx.amountApplied = parameters.amount
+ Map createPaymentApplicationResp =
dispatcher.runSync('createPaymentApplication', createPaymentApplicationCtx)
+
+ if (ServiceUtil.isError(createPaymentApplicationResp)) return
createPaymentApplicationResp
+
+ result.put("paymentId", createPaymentResp.paymentId)
+ result.put("paymentApplicationId",
createPaymentApplicationResp.paymentApplicationId)
+ return result
+
+}
def createFinAccoutnTransFromPayment() {
serviceResult = success()
diff --git a/applications/accounting/minilang/payment/PaymentServices.xml
b/applications/accounting/minilang/payment/PaymentServices.xml
index a848315..eb05f11 100644
--- a/applications/accounting/minilang/payment/PaymentServices.xml
+++ b/applications/accounting/minilang/payment/PaymentServices.xml
@@ -228,23 +228,6 @@ under the License.
</if-compare-field>
</simple-method>
- <simple-method method-name="createPaymentAndApplication"
short-description="Create a payment and a payment application for the full
amount">
- <set-service-fields service-name="createPayment" map="parameters"
to-map="createPaymentInMap"/>
- <call-service service-name="createPayment"
in-map-name="createPaymentInMap">
- <result-to-field result-name="paymentId" field="paymentId"/>
- </call-service>
- <check-errors/>
- <set-service-fields service-name="createPaymentApplication"
map="parameters" to-map="createPaymentAppInMap"/>
- <set field="createPaymentAppInMap.paymentId" from-field="paymentId"/>
- <set field="createPaymentAppInMap.amountApplied"
from-field="parameters.amount"/>
- <call-service service-name="createPaymentApplication"
in-map-name="createPaymentAppInMap">
- <result-to-field result-name="paymentApplicationId"
field="paymentApplicationId"/>
- </call-service>
- <check-errors/>
- <field-to-result field="paymentId" result-name="paymentId"/>
- <field-to-result field="paymentApplicationId"
result-name="paymentApplicationId"/>
- </simple-method>
-
<simple-method method-name="getInvoicePaymentInfoListByDueDateOffset"
short-description="Select a list with information on payment due dates and
amounts for invoices.">
<now-timestamp field="nowTimestamp"/>
<call-class-method
class-name="org.apache.ofbiz.base.util.UtilDateTime" method-name="getDayEnd"
ret-field="asOfDate">
@@ -431,23 +414,6 @@ under the License.
</if-compare>
</simple-method>
- <simple-method method-name="getPaymentGroupReconciliationId"
short-description="Get ReconciliationId associated to paymentGroup">
- <set field="paymentGroupId" from-field="parameters.paymentGroupId"/>
- <entity-and entity-name="PaymentGroupMember"
list="paymentGroupMembers">
- <field-map field-name="paymentGroupId"/>
- </entity-and>
- <if-not-empty field="paymentGroupMembers">
- <first-from-list list="paymentGroupMembers"
entry="paymentGroupMember"/>
- <get-related-one relation-name="Payment"
value-field="paymentGroupMember" to-value-field="payment"/>
- <get-related-one relation-name="FinAccountTrans"
value-field="payment" to-value-field="finAccountTrans"/>
- <if-not-empty field="finAccountTrans">
- <if-not-empty field="finAccountTrans.glReconciliationId">
- <set field="glReconciliationId"
from-field="finAccountTrans.glReconciliationId"/>
- </if-not-empty>
- </if-not-empty>
- </if-not-empty>
- <field-to-result field="glReconciliationId"/>
- </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 0e44ee4..5a4d03a 100644
--- a/applications/accounting/servicedef/services_payment.xml
+++ b/applications/accounting/servicedef/services_payment.xml
@@ -108,8 +108,8 @@ under the License.
<auto-attributes mode="OUT" include="nonpk" optional="true"/>
</service>
- <service name="createPaymentAndApplication" engine="simple"
-
location="component://accounting/minilang/payment/PaymentServices.xml"
invoke="createPaymentAndApplication" auth="true">
+ <service name="createPaymentAndApplication" engine="groovy"
+
location="component://accounting/groovyScripts/payment/PaymentServices.groovy"
invoke="createPaymentAndApplication" auth="true">
<description>Create a payment and a payment application for the full
amount</description>
<auto-attributes entity-name="Payment" include="nonpk" mode="IN"
optional="true"/>
<auto-attributes entity-name="Payment" include="pk" mode="INOUT"
optional="true"/>
@@ -214,8 +214,8 @@ under the License.
<attribute name="finAccountTransId" type="String" mode="IN"
optional="true"/>
<attribute name="payments" type="List" mode="OUT" optional="true"/>
</service>
- <service name="getPaymentGroupReconciliationId" engine="simple"
-
location="component://accounting/minilang/payment/PaymentServices.xml"
invoke="getPaymentGroupReconciliationId" auth="true">
+ <service name="getPaymentGroupReconciliationId" engine="groovy"
+
location="component://accounting/groovyScripts/payment/PaymentServices.groovy"
invoke="getPaymentGroupReconciliationId" auth="true">
<description>Get ReconciliationId associated to
paymentGroup</description>
<attribute name="paymentGroupId" type="String" mode="IN"
optional="false"/>
<attribute name="glReconciliationId" type="String" mode="OUT"
optional="true"/>