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

nmalin pushed a commit to branch release24.09
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git

commit d8b7a3cc291fe1e87e62cd3f5036fa7bea203321
Author: Nicolas Malin <nicolas.ma...@nereide.fr>
AuthorDate: Thu Jan 2 18:08:00 2025 +0100

    Improved: slim down groovy scriptlet on minilang (OFBIZ-13146)
    
    Convert to groovy natural language or uel function (third pass)
---
 .../commonext/minilang/setup/SetupEvents.xml       |  9 ++--
 .../marketing/contact/ContactListServices.xml      |  2 +-
 .../order/minilang/test/ShoppingCartTests.xml      | 12 +++--
 .../party/minilang/customer/CustomerEvents.xml     |  9 ++--
 applications/party/minilang/user/UserEvents.xml    | 13 +++---
 .../product/inventory/InventoryReserveServices.xml | 21 +++------
 .../product/inventory/InventoryServices.xml        |  4 +-
 .../minilang/product/test/GroupOrderTest.xml       | 52 +++++++++++-----------
 8 files changed, 55 insertions(+), 67 deletions(-)

diff --git a/applications/commonext/minilang/setup/SetupEvents.xml 
b/applications/commonext/minilang/setup/SetupEvents.xml
index b8287c2f18..e2924365a4 100644
--- a/applications/commonext/minilang/setup/SetupEvents.xml
+++ b/applications/commonext/minilang/setup/SetupEvents.xml
@@ -286,12 +286,9 @@
 
         <entity-one entity-name="PartyGroup" value-field="partyGroup"/>
         <script>groovy:
-           groupName = partyGroup.get("groupName")
-           if (groupName != null) {
-              parameters.put("invoiceIdPrefix", 
groupName.toUpperCase().substring(0, 2)+"CI")
-           } else {
-              parameters.put("invoiceIdPrefix", "CI")
-           }
+            parameters.invoiceIdPrefix = (partyGroup.groupName
+            ? partyGroup.groupName.toUpperCase().substring(0, 2)
+            : "") + "CI"
         </script>
 
         <entity-one entity-name="PartyAcctgPreference" 
value-field="partyAcctgPreference"/>
diff --git 
a/applications/marketing/minilang/marketing/contact/ContactListServices.xml 
b/applications/marketing/minilang/marketing/contact/ContactListServices.xml
index 0bb7117b4e..caf02e0de3 100644
--- a/applications/marketing/minilang/marketing/contact/ContactListServices.xml
+++ b/applications/marketing/minilang/marketing/contact/ContactListServices.xml
@@ -287,7 +287,7 @@ under the License.
         <if>
             <condition><if-compare field="newEntity.statusId" 
operator="equals" value="CLPT_PENDING"/></condition>
             <then>
-                <script>groovy:newEntity.set("optInVerifyCode", 
Long.toString(Math.round(9999999999L * Math.random())))</script>
+                <script>groovy: newEntity.optInVerifyCode = 
Long.toString(Math.round(9999999999L * Math.random()))</script>
             </then>
         <else-if>
             <condition><if-compare field="newEntity.statusId" 
operator="equals" value="CLPT_ACCEPTED"/></condition>
diff --git a/applications/order/minilang/test/ShoppingCartTests.xml 
b/applications/order/minilang/test/ShoppingCartTests.xml
index 3d4826c498..8cb5abeb05 100644
--- a/applications/order/minilang/test/ShoppingCartTests.xml
+++ b/applications/order/minilang/test/ShoppingCartTests.xml
@@ -51,8 +51,7 @@ under the License.
         <set field="currencyUom" value="USD" type="String"/>
 
         <script>groovy:
-            shoppingCart = new 
org.apache.ofbiz.order.shoppingcart.ShoppingCart(delegator, productStoreId, 
locale, currencyUom);
-            parameters.put("shoppingCart", shoppingCart);
+            parameters.shoppingCart = new 
org.apache.ofbiz.order.shoppingcart.ShoppingCart(delegator, productStoreId, 
locale, currencyUom)
         </script>
 
         <set field="orderTypeId" value="SALES_ORDER" type="String"/>
@@ -263,9 +262,8 @@ under the License.
 
         <!-- Shopping Cart checkout and create order -->
         <script>groovy:
-            checkOutHelper = new 
org.apache.ofbiz.order.shoppingcart.CheckOutHelper(dispatcher, delegator, 
shoppingCart);
-            java.util.Map orderMap = checkOutHelper.createOrder(userLogin);
-            parameters.put("orderMap", orderMap);
+            checkOutHelper = new 
org.apache.ofbiz.order.shoppingcart.CheckOutHelper(dispatcher, delegator, 
shoppingCart)
+            parameters.orderMap = checkOutHelper.createOrder(userLogin)
         </script>
         
         <!-- Clear Shopping Cart -->
@@ -629,8 +627,8 @@ under the License.
             <field-map field-name="userLoginId" value="DemoCustomer"/>
         </entity-one>
         <script>groovy:
-            session = request.getSession();
-            session.setAttribute("userLogin", userLogin);
+            session = request.getSession()
+            session.setAttribute("userLogin", userLogin)
         </script>
         <call-class-method method-name="initializeOrderEntry" 
class-name="org.apache.ofbiz.order.shoppingcart.ShoppingCartEvents" 
ret-field="result">
             <field field="request" 
type="javax.servlet.http.HttpServletRequest"/>
diff --git a/applications/party/minilang/customer/CustomerEvents.xml 
b/applications/party/minilang/customer/CustomerEvents.xml
index 87f902837a..a38e590ac6 100644
--- a/applications/party/minilang/customer/CustomerEvents.xml
+++ b/applications/party/minilang/customer/CustomerEvents.xml
@@ -77,10 +77,11 @@ under the License.
 
         <!-- Check the password, etc for validity -->
         <script>groovy:
-            String password = (String) userLoginContext.get("currentPassword")
-            String confirmPassword = (String) 
userLoginContext.get("currentPasswordVerify")
-            String passwordHint = (String) userLoginContext.get("passwordHint")
-            
org.apache.ofbiz.common.login.LoginServices.checkNewPassword(newUserLogin, 
null, password, confirmPassword, passwordHint, error_list, true, locale)
+            
org.apache.ofbiz.common.login.LoginServices.checkNewPassword(newUserLogin, null,
+                userLoginContext.currentPassword,
+                userLoginContext.currentPasswordVerify,
+                userLoginContext.passwordHint,
+                error_list, true, locale)
         </script>
 
         <!-- Create the Person -->
diff --git a/applications/party/minilang/user/UserEvents.xml 
b/applications/party/minilang/user/UserEvents.xml
index 6a3fa5098d..6348bac79f 100644
--- a/applications/party/minilang/user/UserEvents.xml
+++ b/applications/party/minilang/user/UserEvents.xml
@@ -112,10 +112,11 @@ under the License.
 
             <!-- Check the password, etc for validity -->
             <script>groovy:
-                String password = (String) 
userLoginContext.get("currentPassword")
-                String confirmPassword = (String) 
userLoginContext.get("currentPasswordVerify")
-                String passwordHint = (String) 
userLoginContext.get("passwordHint")
-                
org.apache.ofbiz.common.login.LoginServices.checkNewPassword(newUserLogin, 
null, password, confirmPassword, passwordHint, error_list, true, locale)
+                
org.apache.ofbiz.common.login.LoginServices.checkNewPassword(newUserLogin, null,
+                userLoginContext.currentPassword,
+                userLoginContext.currentPasswordVerify,
+                userLoginContext.passwordHint,
+                error_list, true, locale)
             </script>
         <else>
             <if-compare field="require_login" operator="equals" value="true">
@@ -318,10 +319,10 @@ under the License.
             <!-- If password encryption is enabled, encrpyt it now -->
             <set field="delegator" from-field="parameters.delegator" 
type="Object"/>
             <script>groovy:
-                boolean useEncryption = 
"true".equals(org.apache.ofbiz.entity.util.EntityUtilProperties.getPropertyValue("security",
 "password.encrypt", delegator))
+                boolean useEncryption = "true" == 
org.apache.ofbiz.entity.util.EntityUtilProperties.getPropertyValue("security", 
"password.encrypt", delegator)
                 if (useEncryption) {
                     String hashType = 
org.apache.ofbiz.common.login.LoginServices.getHashType()
-                    newUserLogin.set("currentPassword", 
org.apache.ofbiz.base.crypto.HashCrypt.digestHash(hashType, null, 
newUserLogin.get("currentPassword"))) 
+                    newUserLogin.currentPassword = 
org.apache.ofbiz.base.crypto.HashCrypt.digestHash(hashType, null, 
newUserLogin.currentPassword)
                 }
             </script>
 
diff --git 
a/applications/product/minilang/product/inventory/InventoryReserveServices.xml 
b/applications/product/minilang/product/inventory/InventoryReserveServices.xml
index 5146bec889..41f05fef3c 100644
--- 
a/applications/product/minilang/product/inventory/InventoryReserveServices.xml
+++ 
b/applications/product/minilang/product/inventory/InventoryReserveServices.xml
@@ -201,11 +201,8 @@ under the License.
                                 </if-not-empty>
                             </if-empty>
                             <script>groovy:
-                            java.sql.Timestamp orderDate = 
orderHeader.getTimestamp("orderDate")
-                            com.ibm.icu.util.Calendar cal = 
com.ibm.icu.util.Calendar.getInstance()
-                            cal.setTimeInMillis(orderDate.getTime())
-                            cal.add(com.ibm.icu.util.Calendar.DAY_OF_YEAR, 
daysToShip.intValue())
-                            return 
org.apache.ofbiz.base.util.UtilMisc.toMap("promisedDatetime", new 
java.sql.Timestamp(cal.getTimeInMillis()))
+                                [promisedDatetime: 
org.apache.ofbiz.base.util.UtilDateTime.adjustTimestamp(
+                                orderHeader.orderDate, Calendar.DAY_OF_YEAR, 
daysToShip as int)]
                             </script>
 
                             <!-- create or update OrderItemShipGrpInvRes 
record -->
@@ -268,11 +265,8 @@ under the License.
                                 </if-not-empty>
                             </if-empty>
                             <script>groovy:
-                            java.sql.Timestamp orderDate = 
orderHeader.getTimestamp("orderDate")
-                            com.ibm.icu.util.Calendar cal = 
com.ibm.icu.util.Calendar.getInstance()
-                            cal.setTimeInMillis(orderDate.getTime())
-                            cal.add(com.ibm.icu.util.Calendar.DAY_OF_YEAR, 
daysToShip.intValue())
-                            return 
org.apache.ofbiz.base.util.UtilMisc.toMap("promisedDatetime", new 
java.sql.Timestamp(cal.getTimeInMillis()))
+                                [promisedDatetime: 
org.apache.ofbiz.base.util.UtilDateTime.adjustTimestamp(
+                                orderHeader.orderDate, Calendar.DAY_OF_YEAR, 
daysToShip as int)]
                             </script>
 
                             <!-- create OrderItemShipGrpInvRes record -->
@@ -510,11 +504,8 @@ under the License.
             <set field="daysToShip" value="30" type="Long"/>
         </if-empty>
         <script>groovy:
-        java.sql.Timestamp orderDate = orderHeader.getTimestamp("orderDate")
-        com.ibm.icu.util.Calendar cal = com.ibm.icu.util.Calendar.getInstance()
-        cal.setTimeInMillis(orderDate.getTime())
-        cal.add(com.ibm.icu.util.Calendar.DAY_OF_YEAR, daysToShip.intValue())
-        return org.apache.ofbiz.base.util.UtilMisc.toMap("promisedDatetime", 
new java.sql.Timestamp(cal.getTimeInMillis()))
+            [promisedDatetime: 
org.apache.ofbiz.base.util.UtilDateTime.adjustTimestamp(
+            orderHeader.orderDate, Calendar.DAY_OF_YEAR, daysToShip as int)]
         </script>
     </simple-method>
 
diff --git 
a/applications/product/minilang/product/inventory/InventoryServices.xml 
b/applications/product/minilang/product/inventory/InventoryServices.xml
index bf3525e132..985f449b9f 100644
--- a/applications/product/minilang/product/inventory/InventoryServices.xml
+++ b/applications/product/minilang/product/inventory/InventoryServices.xml
@@ -812,7 +812,7 @@ under the License.
                 <set from-field="parameters.quantity" 
field="quantityNotTransferred"/>
                 <set field="locationTypeMap.enumTypeId" value="FACLOC_TYPE"/>
                 <find-by-and entity-name="Enumeration" 
list="locationTypeEnums" map="locationTypeMap"/>
-                <set field="locationTypeEnumIds" value="${groovy: return 
org.apache.ofbiz.entity.util.EntityUtil.getFieldListFromEntityList(locationTypeEnums,
 'enumId', true);}" type="List"/>
+                <set field="locationTypeEnumIds" value="${groovy: 
locationTypeEnums*.enumId}" type="List"/>
                 <set field="nothing" value="${groovy: 
locationTypeEnumIds.add(null)}" type="List"/>
                 <iterate list="locationTypeEnumIds" entry="locationTypeEnumId">
                     <find-by-and entity-name="InventoryItemAndLocation" 
map="lookupFieldMap" list="inventoryItemAndLocations" use-iterator="true" 
order-by-list="orderByList"/> 
@@ -870,7 +870,7 @@ under the License.
         <field-to-result field="quantityNotTransferred"/>
         <if-compare operator="greater" value="0" 
field="quantityNotTransferred">
             <add-error>
-                <fail-message message="${groovy: import 
org.apache.ofbiz.base.util.UtilProperties; return 
(UtilProperties.getMessage('ProductUiLabels', 
'ProductInventoryATPNotAvailable', ['unavailableQuantity' : 
quantityNotTransferred, 'xferQty': parameters.quantity], locale))}"/>
+                <fail-message message="${groovy: label('ProductUiLabels', 
'ProductInventoryATPNotAvailable', ['unavailableQuantity' : 
quantityNotTransferred, 'xferQty': parameters.quantity], locale)}"/>
             </add-error>
             <check-errors/>
         </if-compare>
diff --git a/applications/product/minilang/product/test/GroupOrderTest.xml 
b/applications/product/minilang/product/test/GroupOrderTest.xml
index 78c7a6b863..f264a6f5d2 100644
--- a/applications/product/minilang/product/test/GroupOrderTest.xml
+++ b/applications/product/minilang/product/test/GroupOrderTest.xml
@@ -62,12 +62,12 @@ under the License.
             <field-map field-name="userLoginId" value="admin"/>
         </entity-one>
         <script>groovy:
-            request.setParameter("orderMode", "SALES_ORDER");
-            request.setParameter("productStoreId", "9000");
-            request.setParameter("partyId", "DemoCustomer");
-            request.setParameter("currencyUom", "USD");
-            session = request.getSession();
-            session.setAttribute("userLogin", userLogin);
+            request.setParameter("orderMode", "SALES_ORDER")
+            request.setParameter("productStoreId", "9000")
+            request.setParameter("partyId", "DemoCustomer")
+            request.setParameter("currencyUom", "USD")
+            session = request.getSession()
+            session.setAttribute("userLogin", userLogin)
         </script>
         <call-class-method method-name="initializeOrderEntry" 
class-name="org.apache.ofbiz.order.shoppingcart.ShoppingCartEvents" 
ret-field="result">
             <field field="request" 
type="javax.servlet.http.HttpServletRequest"/>
@@ -80,7 +80,7 @@ under the License.
         </call-class-method>
         <log level="info" message="===== >>> Event : 
setOrderCurrencyAgreementShipDates, Response : ${result}"/>
         <script>groovy:
-            request.setParameter("add_product_id", "GZ-1000");
+            request.setParameter("add_product_id", "GZ-1000")
         </script>
         <call-class-method method-name="addToCart" 
class-name="org.apache.ofbiz.order.shoppingcart.ShoppingCartEvents" 
ret-field="result">
             <field field="request" 
type="javax.servlet.http.HttpServletRequest"/>
@@ -88,12 +88,12 @@ under the License.
         </call-class-method>
         <log level="info" message="===== >>> Event : addToCart, Response : 
${result}"/>
         <script>groovy:
-            request.setParameter("checkoutpage", "quick");
-            request.setParameter("shipping_contact_mech_id", "9015");
-            request.setParameter("shipping_method", "GROUND@UPS");
-            request.setParameter("checkOutPaymentId", "EXT_PAYPAL");
-            request.setParameter("is_gift", "false");
-            request.setParameter("may_split", "false");
+            request.setParameter("checkoutpage", "quick")
+            request.setParameter("shipping_contact_mech_id", "9015")
+            request.setParameter("shipping_method", "GROUND@UPS")
+            request.setParameter("checkOutPaymentId", "EXT_PAYPAL")
+            request.setParameter("is_gift", "false")
+            request.setParameter("may_split", "false")
         </script>
         <field-to-request field="nullField" request-name="shoppingCart"/>
         <call-class-method method-name="setQuickCheckOutOptions" 
class-name="org.apache.ofbiz.order.shoppingcart.CheckOutEvents" 
ret-field="result">
@@ -184,12 +184,12 @@ under the License.
             <field-map field-name="userLoginId" value="admin"/>
         </entity-one>
         <script>groovy:
-            request.setParameter("orderMode", "SALES_ORDER");
-            request.setParameter("productStoreId", "9000");
-            request.setParameter("partyId", "DemoCustomer");
-            request.setParameter("currencyUom", "USD");
-            session = request.getSession();
-            session.setAttribute("userLogin", userLogin);
+            request.setParameter("orderMode", "SALES_ORDER")
+            request.setParameter("productStoreId", "9000")
+            request.setParameter("partyId", "DemoCustomer")
+            request.setParameter("currencyUom", "USD")
+            session = request.getSession()
+            session.setAttribute("userLogin", userLogin)
         </script>
         <call-class-method method-name="initializeOrderEntry" 
class-name="org.apache.ofbiz.order.shoppingcart.ShoppingCartEvents" 
ret-field="result">
             <field field="request" 
type="javax.servlet.http.HttpServletRequest"/>
@@ -202,7 +202,7 @@ under the License.
         </call-class-method>
         <log level="info" message="===== >>> Event : 
setOrderCurrencyAgreementShipDates, Response : ${result}"/>
         <script>groovy:
-            request.setParameter("add_product_id", "GZ-1001");
+            request.setParameter("add_product_id", "GZ-1001")
         </script>
         <call-class-method method-name="addToCart" 
class-name="org.apache.ofbiz.order.shoppingcart.ShoppingCartEvents" 
ret-field="result">
             <field field="request" 
type="javax.servlet.http.HttpServletRequest"/>
@@ -210,12 +210,12 @@ under the License.
         </call-class-method>
         <log level="info" message="===== >>> Event : addToCart, Response : 
${result}"/>
         <script>groovy:
-            request.setParameter("checkoutpage", "quick");
-            request.setParameter("shipping_contact_mech_id", "9015");
-            request.setParameter("shipping_method", "GROUND@UPS");
-            request.setParameter("checkOutPaymentId", "EXT_PAYPAL");
-            request.setParameter("is_gift", "false");
-            request.setParameter("may_split", "false");
+            request.setParameter("checkoutpage", "quick")
+            request.setParameter("shipping_contact_mech_id", "9015")
+            request.setParameter("shipping_method", "GROUND@UPS")
+            request.setParameter("checkOutPaymentId", "EXT_PAYPAL")
+            request.setParameter("is_gift", "false")
+            request.setParameter("may_split", "false")
         </script>
         <field-to-request field="nullField" request-name="shoppingCart"/>
         <call-class-method method-name="setQuickCheckOutOptions" 
class-name="org.apache.ofbiz.order.shoppingcart.CheckOutEvents" 
ret-field="result">

Reply via email to