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

jleroux pushed a commit to branch 
ecomify-OFBIZ-11468_Convert_ShipmentReceiptServices-squashed
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git

commit 3e4a2ecd1a2fb114ae1acb77abac6a5be892109b
Author: Suraj Khurana <64310724+surajkhur...@users.noreply.github.com>
AuthorDate: Sat May 23 12:38:07 2020 +0530

    Improved: Converted createPaymentContent, updatePaymentContent services 
from mini-lang to groovy. (#155)
    
    (OFBIZ-11501)(OFBIZ-11502)
    Thanks Devanshu Vyas for reporting and Sourabh Punyani for providing the 
patch.
---
 .../groovyScripts/payment/PaymentServices.groovy   | 40 ++++++++++++++++++++++
 .../minilang/payment/PaymentServices.xml           | 31 -----------------
 .../accounting/servicedef/services_payment.xml     |  8 ++---
 3 files changed, 44 insertions(+), 35 deletions(-)

diff --git 
a/applications/accounting/groovyScripts/payment/PaymentServices.groovy 
b/applications/accounting/groovyScripts/payment/PaymentServices.groovy
index b71c419..c28ce07 100644
--- a/applications/accounting/groovyScripts/payment/PaymentServices.groovy
+++ b/applications/accounting/groovyScripts/payment/PaymentServices.groovy
@@ -23,6 +23,8 @@ import org.apache.ofbiz.base.util.UtilProperties
 import org.apache.ofbiz.entity.condition.EntityCondition
 import org.apache.ofbiz.entity.condition.EntityOperator
 import org.apache.ofbiz.entity.GenericValue
+import org.apache.ofbiz.service.ServiceUtil
+import java.sql.Timestamp
 
 MODULE = "PaymentServices.groovy"
 def createPayment() {
@@ -94,3 +96,41 @@ def getPaymentRunningTotal(){
     result.paymentRunningTotal = paymentRunningTotal
     return result
 }
+def createPaymentContent() {
+    GenericValue newEntity = delegator.makeValue("PaymentContent")
+    newEntity.setPKFields(parameters, true)
+    newEntity.setNonPKFields(parameters, true)
+
+    if (!newEntity.fromDate) {
+        Timestamp nowTimestamp = UtilDateTime.nowTimestamp()
+        newEntity.fromDate  = nowTimestamp
+    }
+    newEntity.create()
+
+    result = run service: 'updateContent', with: parameters
+    if (ServiceUtil.isError(result)) return result
+
+    Map result = success()
+    result.contentId = newEntity.contentId
+    result.paymentId = newEntity.paymentId
+    result.paymentContentTypeId = newEntity.paymentContentTypeId
+    return result
+}
+//TODO: This can be converted into entity-auto with a seca rule for 
updateContent
+def updatePaymentContent() {
+    serviceResult = success()
+    GenericValue lookupPKMap = delegator.makeValue("PaymentContent")
+    lookupPKMap.setPKFields(parameters, true)
+
+    GenericValue lookedUpValue = findOne("PaymentContent", lookupPKMap, false)
+    if (lookedUpValue) {
+        lookedUpValue.setNonPKFields(parameters)
+        lookedUpValue.store()
+        result = run service: 'updateContent', with: parameters
+        if (ServiceUtil.isError(result)) return result
+        return serviceResult
+    } else {
+        return ServiceUtil.returnError("Error getting Payment Content")
+    }
+}
+
diff --git a/applications/accounting/minilang/payment/PaymentServices.xml 
b/applications/accounting/minilang/payment/PaymentServices.xml
index 3811bf7..1c32621 100644
--- a/applications/accounting/minilang/payment/PaymentServices.xml
+++ b/applications/accounting/minilang/payment/PaymentServices.xml
@@ -1074,35 +1074,4 @@ under the License.
             </if-not-empty>
         </if-not-empty>
     </simple-method>
-
-    <!-- PaymentContent -->
-    <simple-method method-name="createPaymentContent" 
short-description="Create Content For Payment">
-        <make-value entity-name="PaymentContent" value-field="newEntity"/>
-        <set-pk-fields map="parameters" value-field="newEntity"/>
-        <set-nonpk-fields map="parameters" value-field="newEntity"/>
-
-        <if-empty field="newEntity.fromDate">
-            <now-timestamp field="nowTimestamp"/>
-            <set field="newEntity.fromDate" from-field="nowTimestamp"/>
-        </if-empty>
-
-        <create-value value-field="newEntity"/>
-
-        <set-service-fields service-name="updateContent" map="parameters" 
to-map="updateContent"/>
-        <call-service service-name="updateContent" 
in-map-name="updateContent"/>
-
-        <field-to-result field="newEntity.contentId" result-name="contentId"/>
-        <field-to-result field="newEntity.paymentId" result-name="paymentId"/>
-        <field-to-result field="newEntity.paymentContentTypeId" 
result-name="paymentContentTypeId"/>
-    </simple-method>
-    <simple-method method-name="updatePaymentContent" 
short-description="Update Content For Payment">
-        <make-value entity-name="PaymentContent" value-field="lookupPKMap"/>
-        <set-pk-fields map="parameters" value-field="lookupPKMap"/>
-        <find-by-primary-key map="lookupPKMap" value-field="lookedUpValue"/>
-        <set-nonpk-fields map="parameters" value-field="lookedUpValue"/>
-        <store-value value-field="lookedUpValue"/>
-
-        <set-service-fields service-name="updateContent" map="parameters" 
to-map="updateContent"/>
-        <call-service service-name="updateContent" 
in-map-name="updateContent"/>
-    </simple-method>
 </simple-methods>
diff --git a/applications/accounting/servicedef/services_payment.xml 
b/applications/accounting/servicedef/services_payment.xml
index a7d9554..dd9b2cd 100644
--- a/applications/accounting/servicedef/services_payment.xml
+++ b/applications/accounting/servicedef/services_payment.xml
@@ -253,16 +253,16 @@ under the License.
     </service>
 
     <!-- Payment content services -->
-    <service name="createPaymentContent" default-entity-name="PaymentContent" 
engine="simple"
-        location="component://accounting/minilang/payment/PaymentServices.xml" 
invoke="createPaymentContent" auth="true">
+    <service name="createPaymentContent" default-entity-name="PaymentContent" 
engine="groovy"
+             
location="component://accounting/groovyScripts/payment/PaymentServices.groovy" 
invoke="createPaymentContent" auth="true">
         <description>Add Content To Payment</description>
         <auto-attributes include="pk" mode="INOUT" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
         <auto-attributes entity-name="Content" include="nonpk" mode="IN" 
optional="true"/>
         <override name="fromDate" optional="true"/>
     </service>
-    <service name="updatePaymentContent" default-entity-name="PaymentContent" 
engine="simple"
-        location="component://accounting/minilang/payment/PaymentServices.xml" 
invoke="updatePaymentContent" auth="true">
+    <service name="updatePaymentContent" default-entity-name="PaymentContent" 
engine="groovy"
+             
location="component://accounting/groovyScripts/payment/PaymentServices.groovy" 
invoke="updatePaymentContent" auth="true">
         <description>Update Content To Payment</description>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>

Reply via email to