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 b884835 Implemented: Convert createPayment service from mini-lang to groovy DSL b884835 is described below commit b8848355d188ff91ce84e71b16433c9cf278b8d0 Author: Jacques Le Roux <[hidden email]> AuthorDate: Thu Apr 9 10:23:56 2020 +0200 Implemented: Convert createPayment service from mini-lang to groovy DSL (OFBIZ-11479) jleroux: I have only changed the MODULE name (and uppercased it) Thanks: Priya Sharma --- .../groovyScripts/payment/PaymentServices.groovy | 55 +++++++++++++++++++ .../minilang/payment/PaymentServices.xml | 63 ---------------------- .../accounting/servicedef/services_payment.xml | 4 +- 3 files changed, 57 insertions(+), 65 deletions(-) diff --git a/applications/accounting/groovyScripts/payment/PaymentServices.groovy b/applications/accounting/groovyScripts/payment/PaymentServices.groovy new file mode 100644 index 0000000..2a3493f --- /dev/null +++ b/applications/accounting/groovyScripts/payment/PaymentServices.groovy @@ -0,0 +1,55 @@ +/* + * 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. + */ +import org.apache.ofbiz.base.util.Debug +import org.apache.ofbiz.base.util.UtilDateTime +import org.apache.ofbiz.base.util.UtilProperties +import org.apache.ofbiz.base.util.UtilValidate +import org.apache.ofbiz.entity.GenericValue + +MODULE = "PaymentServices.groovy" +def createPayment() { + if (!security.hasEntityPermission("ACCOUNTING", "_CREATE", parameters.userLogin) && (!security.hasEntityPermission("PAY_INFO", "_CREATE", parameters.userLogin) && userLogin.partyId != parameters.partyIdFrom && userLogin.partyId != parameters.partyIdTo)) { + return error(UtilProperties.getResourceBundleMap("AccountingUiLabels", locale)?.AccountingCreatePaymentPermissionError) + } + GenericValue payment = delegator.makeValue("Payment") + payment.paymentId = parameters.paymentId ?: delegator.getNextSeqId("Payment") + paymentId = payment.paymentId + parameters.statusId = parameters.statusId ?: "PMNT_NOT_PAID" + if (UtilValidate.isNotEmpty(parameters.paymentMethodId)) { + GenericValue paymentMethod = from("PaymentMethod").where("paymentMethodId", parameters.paymentMethodId).queryOne() + if (parameters.paymentMethodTypeId != paymentMethod.paymentMethodTypeId) { + Debug.logInfo("Replacing passed payment method type [" + parameters.paymentMethodTypeId + "] with payment method type [" + paymentMethod.paymentMethodTypeId + "] for payment method [" + parameters.paymentMethodId +"]", MODULE) + parameters.paymentMethodTypeId = paymentMethod.paymentMethodTypeId + } + } + if (UtilValidate.isNotEmpty(parameters.paymentPreferenceId)) { + GenericValue orderPaymentPreference = from("OrderPaymentPreference").where("orderPaymentPreferenceId", parameters.paymentPreferenceId).queryOne() + parameters.paymentId = parameters.paymentId ?: orderPaymentPreference.paymentMethodId + parameters.paymentMethodTypeId = parameters.paymentMethodTypeId ?: orderPaymentPreference.paymentMethodTypeId + } + if (UtilValidate.isEmpty(parameters.paymentMethodTypeId)) { + return error(UtilProperties.getResourceBundleMap("AccountingUiLabels", locale)?.AccountingPaymentMethodIdPaymentMethodTypeIdNullError) + } + payment.setNonPKFields(parameters) + payment.effectiveDate = payment.effectiveDate ?: UtilDateTime.nowTimestamp() + delegator.create(payment) + Map result = success() + result.paymentId = paymentId + return result +} diff --git a/applications/accounting/minilang/payment/PaymentServices.xml b/applications/accounting/minilang/payment/PaymentServices.xml index 19c2368..3d6f961 100644 --- a/applications/accounting/minilang/payment/PaymentServices.xml +++ b/applications/accounting/minilang/payment/PaymentServices.xml @@ -20,69 +20,6 @@ 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"> - <simple-method method-name="createPayment" short-description="Create a Payment"> - <if> - <condition> - <and> - <not><if-has-permission permission="ACCOUNTING" action="_CREATE"/></not> - <not><if-has-permission permission="PAY_INFO" action="_CREATE"/></not> - <not><if-compare-field field="userLogin.partyId" to-field="parameters.partyIdFrom" operator="equals"/></not> - <not><if-compare-field field="userLogin.partyId" to-field="parameters.partyIdTo" operator="equals"/></not> - </and> - </condition> - <then> - <add-error> - <fail-property resource="AccountingUiLabels" property="AccountingCreatePaymentPermissionError"/> - </add-error> - </then> - </if> - <check-errors/> - - <make-value entity-name="Payment" value-field="payment"/> - <if-empty field="parameters.paymentId"> - <sequenced-id sequence-name="Payment" field="payment.paymentId"/> - <else> - <set field="payment.paymentId" from-field="parameters.paymentId"/> - </else> - </if-empty> - <field-to-result field="payment.paymentId" result-name="paymentId"/> - - <if-empty field="parameters.statusId"> - <set field="parameters.statusId" value="PMNT_NOT_PAID"/> - </if-empty> - - <if-not-empty field="parameters.paymentMethodId"> - <entity-one entity-name="PaymentMethod" value-field="paymentMethod"> - <field-map field-name="paymentMethodId" from-field="parameters.paymentMethodId"/> - </entity-one> - <if-compare-field field="parameters.paymentMethodTypeId" operator="not-equals" to-field="paymentMethod.paymentMethodTypeId"> - <log level="info" message="Replacing passed payment method type [${parameters.paymentMethodTypeId}] with payment method type [${paymentMethod.paymentMethodTypeId}] for payment method [${parameters.paymentMethodId}]"/> - <set field="parameters.paymentMethodTypeId" from-field="paymentMethod.paymentMethodTypeId"/> - </if-compare-field> - </if-not-empty> - <if-not-empty field="parameters.paymentPreferenceId"> - <entity-one entity-name="OrderPaymentPreference" value-field="orderPaymentPreference"> - <field-map field-name="orderPaymentPreferenceId" from-field="parameters.paymentPreferenceId"/> - </entity-one> - <if-empty field="parameters.paymentMethodId"> - <set field="parameters.paymentMethodId" from-field="orderPaymentPreference.paymentMethodId"/> - </if-empty> - <if-empty field="parameters.paymentMethodTypeId"> - <set field="parameters.paymentMethodTypeId" from-field="orderPaymentPreference.paymentMethodTypeId"/> - </if-empty> - </if-not-empty> - <if-empty field="parameters.paymentMethodTypeId"> - <add-error> - <fail-property resource="AccountingUiLabels" property="AccountingPaymentMethodIdPaymentMethodTypeIdNullError"/> - </add-error> - </if-empty> - - <set-nonpk-fields map="parameters" value-field="payment"/> - <if-empty field="payment.effectiveDate"> - <now-timestamp field="payment.effectiveDate"/> - </if-empty> - <create-value value-field="payment"/> - </simple-method> <simple-method method-name="updatePayment" short-description="Update a Payment"> <make-value entity-name="Payment" value-field="lookupPayment"/> <set-pk-fields value-field="lookupPayment" map="parameters"/> diff --git a/applications/accounting/servicedef/services_payment.xml b/applications/accounting/servicedef/services_payment.xml index f96eb37..ba0cacd 100644 --- a/applications/accounting/servicedef/services_payment.xml +++ b/applications/accounting/servicedef/services_payment.xml @@ -25,8 +25,8 @@ under the License. <version>1.0</version> <!-- Payment services --> - <service name="createPayment" engine="simple" default-entity-name="Payment" - location="component://accounting/minilang/payment/PaymentServices.xml" invoke="createPayment" auth="true"> + <service name="createPayment" engine="groovy" default-entity-name="Payment" + location="component://accounting/groovyScripts/payment/PaymentServices.groovy" invoke="createPayment" auth="true"> <description>Create a Payment. If a paymentMethodId is supplied, paymentMethodTypeId is gotten from paymentMethod. Otherwise, it must be supplied. If no paymentMethodTypeId and no paymentMethodId is supplied, then an error will be returned. </description> <auto-attributes include="nonpk" mode="IN" optional="true"/> |
Free forum by Nabble | Edit this page |