[ofbiz-framework] branch trunk updated: Improved: Convert getPaymentGroupReconciliationId service from mini-lang to groovy DSL (OFBIZ-11496) Thanks: Devanshu Vyas for report and Rohit Koushal for the patch

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[ofbiz-framework] branch trunk updated: Improved: Convert getPaymentGroupReconciliationId service from mini-lang to groovy DSL (OFBIZ-11496) Thanks: Devanshu Vyas for report and Rohit Koushal for the patch

jleroux@apache.org
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 <[hidden email]>
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"/>