[ofbiz-framework] branch ecomify-OFBIZ-11468_Convert_ShipmentReceiptServices-squashed created (now 2ff8190)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
29 messages Options
12
Reply | Threaded
Open this post in threaded view
|

[ofbiz-framework] branch ecomify-OFBIZ-11468_Convert_ShipmentReceiptServices-squashed created (now 2ff8190)

jleroux@apache.org
This is an automated email from the ASF dual-hosted git repository.

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


      at 2ff8190  Improved: removes useless "@deprecated No replacement" comments in Java code

This branch includes the following new commits:

     new 3f6e976  Fixed: Entering manually date in date-time field become unworkable (OFBIZ-10432)
     new 39d0b91  Improved: Clean how HTTP vs HTTPS is handled
     new 1f44bcd  Improved: Apply multi-block attr to each application (OFBIZ-11706)
     new 2621fd4  Fixed: showjGrowl called twice (OFBIZ-11720)
     new c020b56  Improved: Apply multi-block attr to each application (OFBIZ-11706)
     new ffede15  Improved: just remove trailing space
     new fa1c0eb  Improved: Converted getPaymentRunningTotal service from mini-lang to groovy DSL (OFBIZ-11488) Thanks Nitish Mishra for the patch and Devanshu Vyas for reporting and review.
     new a45f0f2  Improved: Refactor simple methods names as per naming convention best practices. (#137)
     new 05640f7  Improved: Apply multi-block attr to each application (OFBIZ-11706)
     new 3e4a2ec  Improved: Converted createPaymentContent, updatePaymentContent services from mini-lang to groovy. (#155)
     new ae2585c  Improved: Convert setContentStatus service from mini-lang to groovy DSL(OFBIZ-11365). Thanks Devanshu Vyas for the contribution.
     new d0fb482  Improved: Converted massChangePaymentStatus service from mini-lang to groovy. (OFBIZ-11498) Thanks Devanshu Vyas for reporting and Rushikesh Mawal for initial patch.
     new d5c7151  Improved: Converted createPaymentAndApplicationForParty service from mini-lang to groovy (OFBIZ-11491) Thanks Devanshu Vyas for reporting and Sourabh Punyani for providing the patch.
     new 452a893  Improved: Make shipment services loosely coupled with work-effort generation. (#132)
     new 71b4abe  Fixed: paginateOrderList does not find orders on next page specific to FindOrders.ftl (OFBIZ-11356) Adding the missing showAll flag in the paginateOrder form because of which the orders were not shown while submitting the next button. Thanks Michael Brohl for reporting the issue and Ankit Joshi for providing the patch
     new 36b4837  Improved: All the service level error messages for missing required field for humanares component. (OFBIZ-8716) Thanks Jagpreet for reporting and Prasheel for providing the initial patch
     new 835de70  Improved: Converted updatePayment service from mini-lang to groovy. (OFBIZ-11480) Thanks Devanshu Vyas for reporting and Priya Sharma for the patch.
     new 335b346  Fixed: Requesthandler exception is showing after clicking cancel/done button on editPerson screen (OFBIZ-10890) Set the value of missing parameter. Thanks Minal Phalak for reporting and providing the patch
     new c759ccd  Fixed: RuntimeException in getPartyNameForDate service for partyNameHistory.gender field(OFBIZ-11736)
     new 8a290d3  Improved: Added UI labels for success/error messages for humanres, marketing, order component. (OFBIZ-7696) Thanks Deepak Nigam for reporting and Sourabh Punyani for the patch.
     new 0caf66d  Improved: Converted createDownloadContent,updateDownloadContent services from mini-lang to groovy. (OFBIZ-11372)(OFBIZ-11373) Thanks Devanshu Vyas for reporting, Harman Kaur and Rahul for initial patch, Pawan for review.
     new 260ae0f  Improved: downgrades tasks.checkstyleMain.maxErrors to stop failures in Buildbot
     new ae3f166  Improved: quote menu
     new 7603d5c  Improved: Improved: Changed lineSplit value to 150. (OFBIZ-11737) Earlier it was 120, as per discussion over ML we decided to make it 150 instead.
     new 4f07148  Fixed: organisation tree in humanres doesn't show person names (OFBIZ-11677) (#121)
     new db463e7  Documented: datamodel markdown migration to asciidoc (OFBIZ-11574)
     new 9c54082  Improved: instructions to upgrade due to datamodel changes (OFBIZ-11719) (#162)
     new 2ff8190  Improved: removes useless "@deprecated No replacement" comments in Java code

The 28 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Reply | Threaded
Open this post in threaded view
|

[ofbiz-framework] 01/28: Fixed: Entering manually date in date-time field become unworkable (OFBIZ-10432)

jleroux@apache.org
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 3f6e976c208718308a985f11b0ee1c52ef2159f7
Author: Pawan Verma <[hidden email]>
AuthorDate: Wed May 20 14:26:52 2020 +0530

    Fixed: Entering manually date in date-time field become unworkable
    (OFBIZ-10432)
   
    Thanks, Olivier for the report.
---
 themes/common-theme/template/macro/HtmlFormMacroLibrary.ftl | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/themes/common-theme/template/macro/HtmlFormMacroLibrary.ftl b/themes/common-theme/template/macro/HtmlFormMacroLibrary.ftl
index fa549ea..ea4763d 100644
--- a/themes/common-theme/template/macro/HtmlFormMacroLibrary.ftl
+++ b/themes/common-theme/template/macro/HtmlFormMacroLibrary.ftl
@@ -84,7 +84,7 @@ under the License.
     <#if tabindex?has_content> tabindex="${tabindex}"</#if><#rt/>
     <#if visualEditorEnable?has_content> data-toolbar="${buttons?default("maxi")}"</#if><#rt/>
     <#if language?has_content> data-language="${language!"en"}"</#if><#rt/>
-    <#if disabled?has_content> disabled="${disabled}"</#if><#rt/>
+    <#if disabled?has_content && disabled> disabled="disabled"</#if><#rt/>
     ><#t/>
     <#if value?has_content>${value}</#if><#t/>
   </textarea><#lt/>
@@ -98,7 +98,7 @@ under the License.
         <#if value?has_content> value="${value}"</#if>
         <#if size?has_content> size="${size}"</#if><#rt/>
         <#if maxlength?has_content>  maxlength="${maxlength}"</#if>
-        <#if disabled?has_content> disabled="${disabled}"</#if><#rt/>
+        <#if disabled?has_content && disabled> disabled="disabled"</#if><#rt/>
         <#if id?has_content> id="${id}_i18n"</#if>/><#rt/>
         <#local className = className + " date-time-picker"/>
     </#if>
@@ -198,7 +198,7 @@ under the License.
   <#list items as item>
     <span <@renderClass className alert />><#rt/>
       <input type="radio"<#if currentValue?has_content><#if currentValue==item.key> checked="checked"</#if><#if tabindex?has_content> tabindex="${tabindex}"</#if><#rt/>
-        <#elseif noCurrentSelectedKey?has_content && noCurrentSelectedKey == item.key> checked="checked"</#if><#if disabled?has_content> disabled="${disabled}"</#if>
+        <#elseif noCurrentSelectedKey?has_content && noCurrentSelectedKey == item.key> checked="checked"</#if><#if disabled?has_content && disabled> disabled="disabled"</#if>
         name="${name?default("")?html}" value="${item.key?default("")?html}"<#if event?has_content> ${event}="${action}"</#if>/><#rt/>
       ${item.description}
     </span>

Reply | Threaded
Open this post in threaded view
|

[ofbiz-framework] 02/28: Improved: Clean how HTTP vs HTTPS is handled

jleroux@apache.org
In reply to this post by jleroux@apache.org
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 39d0b91ea14fb80bf1a4a9cb60c19ed95a540f9d
Author: Jacques Le Roux <[hidden email]>
AuthorDate: Wed May 20 13:01:22 2020 +0200

    Improved: Clean how HTTP vs HTTPS is handled
   
    (OFBIZ-11717)
   
    No functional changes, just better comments
---
 .../java/org/apache/ofbiz/webapp/control/RequestHandler.java  | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/RequestHandler.java b/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/RequestHandler.java
index b17a55b..d9a5251 100644
--- a/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/RequestHandler.java
+++ b/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/RequestHandler.java
@@ -323,12 +323,14 @@ public class RequestHandler {
             // Check if we SHOULD be secure and are not.
             boolean forwardedHTTPS = "HTTPS".equalsIgnoreCase(request.getHeader("X-Forwarded-Proto"));
             if (!request.isSecure() && !forwardedHTTPS && requestMap.securityHttps) {
-                // If the request method was POST then return an error to avoid problems with XSRF where the request may have come from another machine/program and had the same session ID but was not encrypted as it should have been (we used to let it pass to not lose data since it was too late to protect that data anyway)
+                // If the request method was POST then return an error to avoid problems with CSRF where the request
+                // may have come from another machine/program and had the same session ID but was not encrypted as it
+                // should have been (we used to let it pass to not lose data since it was too late to protect that data anyway)
                 if ("POST".equalsIgnoreCase(request.getMethod())) {
-                    // we can't redirect with the body parameters, and for better security from XSRF, just return an error message
+                    // we can't redirect with the body parameters, and for better security from CSRF, just return an error message
                     Locale locale = UtilHttp.getLocale(request);
                     String errMsg = UtilProperties.getMessage("WebappUiLabels", "requestHandler.InsecureFormPostToSecureRequest", locale);
-                    Debug.logError("Got a insecure (non-https) form POST to a secure (http) request [" + requestMap.uri + "], returning error", MODULE);
+                    Debug.logError("Got an insecure (non HTTPS) form POST to a secure (HTTPS) request [" + requestMap.uri + "], returning error", MODULE);
 
                     // see if HTTPS is enabled, if not then log a warning instead of throwing an exception
                     Boolean enableHttps = null;
@@ -346,7 +348,8 @@ public class RequestHandler {
                     }
 
                     if (Boolean.FALSE.equals(enableHttps)) {
-                        Debug.logWarning("HTTPS is disabled for this site, so we can't tell if this was encrypted or not which means if a form was POSTed and it was not over HTTPS we don't know, but it would be vulnerable to an XSRF and other attacks: " + errMsg, MODULE);
+                        Debug.logWarning("HTTPS is disabled for this site, so we can't tell if this was encrypted or not which means if a form was POSTed "
+                                + "and it was not over HTTPS we don't know, but it would be vulnerable to an CSRF and other attacks: " + errMsg, MODULE);
                     } else {
                         throw new RequestHandlerException(errMsg);
                     }

Reply | Threaded
Open this post in threaded view
|

[ofbiz-framework] 03/28: Improved: Apply multi-block attr to each application (OFBIZ-11706)

jleroux@apache.org
In reply to this post by jleroux@apache.org
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 1f44bcda85741c3e981a98e7204360541ed9d9af
Author: James Yong <[hidden email]>
AuthorDate: Thu May 21 00:07:36 2020 +0800

    Improved: Apply multi-block attr to each application (OFBIZ-11706)
   
    Revert regression for showHelp.
---
 themes/common-theme/template/includes/LookupFooter.ftl | 1 +
 themes/common-theme/widget/CommonScreens.xml           | 2 +-
 themes/common-theme/widget/HelpScreens.xml             | 2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/themes/common-theme/template/includes/LookupFooter.ftl b/themes/common-theme/template/includes/LookupFooter.ftl
index 638bbdf..1c9f388 100644
--- a/themes/common-theme/template/includes/LookupFooter.ftl
+++ b/themes/common-theme/template/includes/LookupFooter.ftl
@@ -17,4 +17,5 @@ specific language governing permissions and limitations
 under the License.
 -->
   </body>
+  <@scriptTemplateList/>
 </html>
diff --git a/themes/common-theme/widget/CommonScreens.xml b/themes/common-theme/widget/CommonScreens.xml
index b02d774..a7655d4 100644
--- a/themes/common-theme/widget/CommonScreens.xml
+++ b/themes/common-theme/widget/CommonScreens.xml
@@ -368,7 +368,7 @@ under the License.
                                 <if-compare value="layer" operator="not-equals" field="parameters.presentation"/>
                         </condition>
                             <widgets>
-                                <platform-specific><html><html-template multi-block="true" location="component://common-theme/template/includes/Lookup.ftl" /></html></platform-specific>
+                                <platform-specific><html><html-template location="component://common-theme/template/includes/Lookup.ftl" /></html></platform-specific>
                             </widgets>
                         </section>
                         <platform-specific><html><html-template location="${messagesTemplateLocation}"/></html></platform-specific>
diff --git a/themes/common-theme/widget/HelpScreens.xml b/themes/common-theme/widget/HelpScreens.xml
index 0c9563c..7385377 100644
--- a/themes/common-theme/widget/HelpScreens.xml
+++ b/themes/common-theme/widget/HelpScreens.xml
@@ -30,7 +30,7 @@ under the License.
                 <set field="messagesTemplateLocation" from-field="layoutSettings.VT_MSG_TMPLT_LOC" default-value="component://common-theme/template/includes/Messages.ftl"/>
             </actions>
             <widgets>
-                <platform-specific><html><html-template multi-block="true" location="component://common-theme/template/includes/Lookup.ftl"/></html></platform-specific>
+                <platform-specific><html><html-template location="component://common-theme/template/includes/Lookup.ftl"/></html></platform-specific>
                 <platform-specific><html><html-template multi-block="true" location="${messagesTemplateLocation}"/></html></platform-specific>
                 <container style="contentarea">
                     <container id="column-container">

Reply | Threaded
Open this post in threaded view
|

[ofbiz-framework] 04/28: Fixed: showjGrowl called twice (OFBIZ-11720)

jleroux@apache.org
In reply to this post by jleroux@apache.org
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 2621fd4ef48f2255a337f3e2dc858e7f4521f755
Author: James Yong <[hidden email]>
AuthorDate: Thu May 21 21:38:08 2020 +0800

    Fixed: showjGrowl called twice (OFBIZ-11720)
   
    showjGrowl function is called twice,
    even when there is no message to show.
---
 themes/common-theme/template/includes/Messages.ftl | 42 +++++++++-------------
 1 file changed, 16 insertions(+), 26 deletions(-)

diff --git a/themes/common-theme/template/includes/Messages.ftl b/themes/common-theme/template/includes/Messages.ftl
index 78f82ab..78996db 100644
--- a/themes/common-theme/template/includes/Messages.ftl
+++ b/themes/common-theme/template/includes/Messages.ftl
@@ -57,17 +57,10 @@ under the License.
       </#if>
     </div>
   </#if>
-  <#assign jGrowlPosition = modelTheme.getProperty("jgrowlPosition")>
-  <#assign jGrowlWidth = modelTheme.getProperty("jgrowlWidth")>
-  <#assign jGrowlHeight = modelTheme.getProperty("jgrowlHeight")>
-  <#assign jGrowlSpeed = modelTheme.getProperty("jgrowlSpeed")>
 
-  <script>showjGrowl(
-          "${uiLabelMap.CommonShowAll}", "${uiLabelMap.CommonCollapse}", "${uiLabelMap.CommonHideAllNotifications}",
-          "${jGrowlPosition}", "${jGrowlWidth}", "${jGrowlHeight}", "${jGrowlSpeed}");</script>
   <#-- display the event messages -->
   <#if (eventMessage?has_content || eventMessageList?has_content)>
-  <div id="content-messages" class="content-messages eventMessage"
+    <div id="content-messages" class="content-messages eventMessage"
       onclick="document.getElementById('content-messages').parentNode.removeChild(this)">
     <#noescape><p>${uiLabelMap.CommonFollowingOccurred}:</p></#noescape>
     <#if eventMessage?has_content>
@@ -78,24 +71,17 @@ under the License.
         <p>${StringUtil.wrapString(eventMsg)}</p>
       </#list>
     </#if>
-  </div>
-  <#assign jGrowlPosition = modelTheme.getProperty("jgrowlPosition")>
-  <#assign jGrowlWidth = modelTheme.getProperty("jgrowlWidth")>
-  <#assign jGrowlHeight = modelTheme.getProperty("jgrowlHeight")>
-  <#assign jGrowlSpeed = modelTheme.getProperty("jgrowlSpeed")>
-  <script>showjGrowl(
-          "${uiLabelMap.CommonShowAll}", "${uiLabelMap.CommonCollapse}", "${uiLabelMap.CommonHideAllNotifications}",
-          "${jGrowlPosition}", "${jGrowlWidth}", "${jGrowlHeight}", "${jGrowlSpeed}");</script>
+    </div>
   </#if>
 
-   <#-- display the warning messages -->
+  <#-- display the warning messages -->
   <#if (warningMessage?has_content || warningMessageList?has_content)>
     <div id="content-messages" class="content-messages errorMessage"
         onclick="document.getElementById('content-messages').parentNode.removeChild(this)">
-      <#noescape><p>${uiLabelMap.CommonFollowingErrorsOccurred}:</p></#noescape>
-      <#if warningMessage?has_content>
-        <p>${StringUtil.wrapString(warningMessage)}</p>
-      </#if>
+    <#noescape><p>${uiLabelMap.CommonFollowingErrorsOccurred}:</p></#noescape>
+    <#if warningMessage?has_content>
+      <p>${StringUtil.wrapString(warningMessage)}</p>
+    </#if>
       <#if warningMessageList?has_content>
         <#list warningMessageList as warningMsg>
           <p>${StringUtil.wrapString(warningMsg)}</p>
@@ -103,12 +89,16 @@ under the License.
       </#if>
     </div>
   </#if>
-  <#assign jGrowlPosition = modelTheme.getProperty("jgrowlPosition")>
-  <#assign jGrowlWidth = modelTheme.getProperty("jgrowlWidth")>
-  <#assign jGrowlHeight = modelTheme.getProperty("jgrowlHeight")>
-  <#assign jGrowlSpeed = modelTheme.getProperty("jgrowlSpeed")>
 
-  <script>showjGrowl(
+  <#if (errorMessage?has_content || errorMessageList?has_content
+     || eventMessage?has_content || eventMessageList?has_content
+     || warningMessage?has_content || warningMessageList?has_content)>
+    <#assign jGrowlPosition = modelTheme.getProperty("jgrowlPosition")>
+    <#assign jGrowlWidth = modelTheme.getProperty("jgrowlWidth")>
+    <#assign jGrowlHeight = modelTheme.getProperty("jgrowlHeight")>
+    <#assign jGrowlSpeed = modelTheme.getProperty("jgrowlSpeed")>
+    <script>showjGrowl(
           "${uiLabelMap.CommonShowAll}", "${uiLabelMap.CommonCollapse}", "${uiLabelMap.CommonHideAllNotifications}",
           "${jGrowlPosition}", "${jGrowlWidth}", "${jGrowlHeight}", "${jGrowlSpeed}");</script>
+  </#if>
 </#escape>

Reply | Threaded
Open this post in threaded view
|

[ofbiz-framework] 05/28: Improved: Apply multi-block attr to each application (OFBIZ-11706)

jleroux@apache.org
In reply to this post by jleroux@apache.org
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 c020b56dfee923091f2fb7e3359477ffa5414b8c
Author: James Yong <[hidden email]>
AuthorDate: Fri May 22 00:54:20 2020 +0800

    Improved: Apply multi-block attr to each application (OFBIZ-11706)
   
    1. Fix missing Boundary Comment at beginning
    2. Apply multi-block attr
---
 .../widget/src/main/java/org/apache/ofbiz/widget/model/HtmlWidget.java  | 2 +-
 themes/common-theme/widget/CommonScreens.xml                            | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/HtmlWidget.java b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/HtmlWidget.java
index 9acdbf2..221bd85 100644
--- a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/HtmlWidget.java
+++ b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/HtmlWidget.java
@@ -217,7 +217,7 @@ public class HtmlWidget extends ModelScreenWidget {
                 String data = stringWriter.toString();
                 stringWriter.close();
 
-                Document doc = Jsoup.parse(data);
+                Document doc = Jsoup.parseBodyFragment(data);
 
                 // extract scripts
                 Elements scriptElements = doc.select("script");
diff --git a/themes/common-theme/widget/CommonScreens.xml b/themes/common-theme/widget/CommonScreens.xml
index a7655d4..9c9172b 100644
--- a/themes/common-theme/widget/CommonScreens.xml
+++ b/themes/common-theme/widget/CommonScreens.xml
@@ -271,7 +271,7 @@ under the License.
                 <!-- render messages -->
                 <platform-specific>
                     <html>
-                        <html-template location="${messagesTemplateLocation}" />
+                        <html-template multi-block="true" location="${messagesTemplateLocation}" />
                     </html>
                 </platform-specific>
                 <!-- render content area -->

Reply | Threaded
Open this post in threaded view
|

[ofbiz-framework] 06/28: Improved: just remove trailing space

jleroux@apache.org
In reply to this post by jleroux@apache.org
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 ffede15c589ed6e0ac7d7635e2cae4a0ddf5e478
Author: holivier <[hidden email]>
AuthorDate: Fri May 22 11:44:23 2020 +0200

    Improved: just remove trailing space
---
 framework/widget/dtd/widget-form.xsd | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/framework/widget/dtd/widget-form.xsd b/framework/widget/dtd/widget-form.xsd
index 68a9829..9eb3efd 100644
--- a/framework/widget/dtd/widget-form.xsd
+++ b/framework/widget/dtd/widget-form.xsd
@@ -168,9 +168,9 @@ under the License.
             </xs:attribute>
             <xs:attribute type="xs:string" name="override-list-size">
                 <xs:annotation>
-                    <xs:documentation>The total number of rows in the original list (used for pagination).
+                    <xs:documentation>The total number of rows in the original list (used for pagination).
                                       If not specified, the size of the list will be used. Accepts ${} notation.
-                                      You may use any value, true makes sense, when using performFindList, but one value must be passed.
+                                      You may use any value, true makes sense, when using performFindList, but one value must be passed.
                     </xs:documentation>
                 </xs:annotation>
             </xs:attribute>
@@ -659,9 +659,9 @@ under the License.
             <xs:attribute type="xs:string" name="title">
                 <xs:annotation>
                     <xs:documentation>
-                        The name of this field that will be shown to the user.
+                        The name of this field that will be shown to the user.
                         It can use the ${} and foo.bar (dot) syntax to insert values from the context for parameterization or internationalization.
-                        
+
                         Be sure a "FormFieldTitle_" labels does not already exist, else it will be overridden.
                     </xs:documentation>
                 </xs:annotation>
@@ -1035,7 +1035,7 @@ under the License.
     <xs:element name="display-entity" substitutionGroup="AllFields">
         <xs:annotation>
             <xs:documentation>
-                This is just like display but looks up a description using the Entity Engine;
+                This is just like display but looks up a description using the Entity Engine;
                 note that if also-hidden is true then it uses the key as the value, not the shown description.
             </xs:documentation>
         </xs:annotation>
@@ -1049,7 +1049,7 @@ under the License.
             <xs:attribute type="xs:integer" name="size">
                 <xs:annotation>
                     <xs:documentation>
-                        Specifies the size of the field (as a number of characters),
+                        Specifies the size of the field (as a number of characters),
                         when the text to display exceed the given size it is truncated and add the complete text as a hint
                      </xs:documentation>
                 </xs:annotation>
@@ -1231,7 +1231,7 @@ under the License.
                           type="xs:boolean" default="true">
                 <xs:annotation>
                     <xs:documentation>
-                        Tells the browser whether or not to try and autocomplete with values previously entered.
+                        Tells the browser whether or not to try and autocomplete with values previously entered.
                         Default to true.
                     </xs:documentation>
                 </xs:annotation>
@@ -1244,7 +1244,7 @@ under the License.
             <xs:attribute name="presentation" default="layer">
                 <xs:annotation>
                     <xs:documentation>
-                        Shows the lookup as moveable and resizable layer or popup window.
+                        Shows the lookup as moveable and resizable layer or popup window.
                         if set to none only autocompletion is active (no lookup form would be call)
                         Default to layer.
                     </xs:documentation>
@@ -1295,8 +1295,8 @@ under the License.
             </xs:attribute>
             <xs:attribute name="show-description" type="xs:boolean">
                 <xs:annotation>
-                    <xs:documentation>If true, a special span with css class "tooltip" will be created at right of the lookup button
-                        and a description will fill in.
+                    <xs:documentation>If true, a special span with css class "tooltip" will be created at right of the lookup button
+                        and a description will fill in.
                         If not set then it depends on the "widget.lookup.showDescription" setting.
                     </xs:documentation>
                 </xs:annotation>

Reply | Threaded
Open this post in threaded view
|

[ofbiz-framework] 07/28: Improved: Converted getPaymentRunningTotal service from mini-lang to groovy DSL (OFBIZ-11488) Thanks Nitish Mishra for the patch and Devanshu Vyas for reporting and review.

jleroux@apache.org
In reply to this post by jleroux@apache.org
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 fa1c0ebd83e21cb2daa08a49e7637b4e7a7996f0
Author: Suraj Khurana <[hidden email]>
AuthorDate: Sat May 23 10:27:50 2020 +0530

    Improved: Converted getPaymentRunningTotal service from mini-lang to groovy DSL
    (OFBIZ-11488)
    Thanks Nitish Mishra for the patch and Devanshu Vyas for reporting and review.
---
 .../groovyScripts/payment/PaymentServices.groovy   | 37 ++++++++++++++++++++++
 .../minilang/payment/PaymentServices.xml           | 21 ------------
 .../accounting/servicedef/services_payment.xml     |  4 +--
 3 files changed, 39 insertions(+), 23 deletions(-)

diff --git a/applications/accounting/groovyScripts/payment/PaymentServices.groovy b/applications/accounting/groovyScripts/payment/PaymentServices.groovy
index 56c653b..b71c419 100644
--- a/applications/accounting/groovyScripts/payment/PaymentServices.groovy
+++ b/applications/accounting/groovyScripts/payment/PaymentServices.groovy
@@ -18,7 +18,10 @@
  */
 import org.apache.ofbiz.base.util.Debug
 import org.apache.ofbiz.base.util.UtilDateTime
+import org.apache.ofbiz.base.util.UtilFormatOut
 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
 
 MODULE = "PaymentServices.groovy"
@@ -57,3 +60,37 @@ def createPayment() {
     result.paymentId = paymentId
     return result
 }
+
+def getPaymentRunningTotal(){
+    paymentIds = parameters.paymentIds;
+    runningTotal = 0;
+    payments = from("Payment").where(EntityCondition.makeCondition("paymentId", EntityOperator.IN, paymentIds)).queryList()
+    if (payments) {
+        for (GenericValue payment : payments) {
+            runningTotal = runningTotal + payment.amount;
+        }
+    }
+
+    if (parameters.organizationPartyId) {
+        serviceCtx = [
+                organizationPartyId: parameters.organizationPartyId,
+                userLogin: userLogin
+        ]
+        serviceResult = dispatcher.runSync('getPartyAccountingPreferences', serviceCtx);
+        partyAcctgPreference = serviceResult.partyAccountingPreference;
+
+        if (partyAcctgPreference.baseCurrencyUomId) {
+            currencyUomId = partyAcctgPreference.baseCurrencyUomId;
+        } else {
+            currencyUomId = UtilProperties.getPropertyValue('general.properties', 'currency.uom.id.default');
+        }
+    } else  {
+        currencyUomId = UtilProperties.getPropertyValue('general.properties', 'currency.uom.id.default');
+    }
+
+    paymentRunningTotal = UtilFormatOut.formatCurrency(runningTotal, currencyUomId, locale);
+
+    result = success()
+    result.paymentRunningTotal = paymentRunningTotal
+    return result
+}
diff --git a/applications/accounting/minilang/payment/PaymentServices.xml b/applications/accounting/minilang/payment/PaymentServices.xml
index 3d6f961..3811bf7 100644
--- a/applications/accounting/minilang/payment/PaymentServices.xml
+++ b/applications/accounting/minilang/payment/PaymentServices.xml
@@ -512,27 +512,6 @@ under the License.
         </iterate>
     </simple-method>
 
-    <simple-method method-name="getPaymentRunningTotal" short-description="calculate running total for payments">
-        <set field="paymentIds" from-field="parameters.paymentIds"/>
-        <set field="runningTotal" type="BigDecimal" value="0"/>
-        <entity-condition entity-name="Payment" list="payments">
-            <condition-expr field-name="paymentId" operator="in" from-field="paymentIds"/>
-        </entity-condition>
-        <iterate list="payments" entry="payment">
-            <set field="runningTotal" value="${runningTotal + payment.amount}" type="BigDecimal"/>
-        </iterate>
-        <set-service-fields service-name="getPartyAccountingPreferences" map="parameters" to-map="getPartyAccountingPreferencesMap"/>
-        <call-service service-name="getPartyAccountingPreferences" in-map-name="getPartyAccountingPreferencesMap">
-            <result-to-field result-name="partyAccountingPreference"/>
-        </call-service>
-        <set field="currencyUomId" from-field="partyAccountingPreference.baseCurrencyUomId"/>
-        <if-empty field="currencyUomId">
-            <property-to-field resource="general" property="currency.uom.id.default" field="currencyUomId"/>
-        </if-empty>
-        <set field="paymentRunningTotal" value="${groovy:org.apache.ofbiz.base.util.UtilFormatOut.formatCurrency(runningTotal, currencyUomId, parameters.locale)}"/>
-        <field-to-result field="paymentRunningTotal"/>
-    </simple-method>
-
     <simple-method method-name="cancelPaymentBatch" short-description="cancel payment batch">
         <entity-and entity-name="PmtGrpMembrPaymentAndFinAcctTrans" list="paymentGroupMemberAndTransList">
             <field-map field-name="paymentGroupId" from-field="parameters.paymentGroupId"/>
diff --git a/applications/accounting/servicedef/services_payment.xml b/applications/accounting/servicedef/services_payment.xml
index ba0cacd..a7d9554 100644
--- a/applications/accounting/servicedef/services_payment.xml
+++ b/applications/accounting/servicedef/services_payment.xml
@@ -151,8 +151,8 @@ under the License.
         <attribute name="finAccountTransId" type="String" mode="OUT" optional="true"/>
         <attribute name="statusId" type="String" mode="OUT" optional="true"/>
     </service>
-    <service name="getPaymentRunningTotal" engine="simple"
-            location="component://accounting/minilang/payment/PaymentServices.xml" invoke="getPaymentRunningTotal" auth="true">
+    <service name="getPaymentRunningTotal" engine="groovy"
+            location="component://accounting/groovyScripts/payment/PaymentServices.groovy" invoke="getPaymentRunningTotal" auth="true">
         <description>calculate running total for payments</description>
         <attribute name="paymentIds" type="List" mode="IN" optional="false"/>
         <attribute name="organizationPartyId" type="String" mode="IN" optional="true"/>

Reply | Threaded
Open this post in threaded view
|

[ofbiz-framework] 08/28: Improved: Refactor simple methods names as per naming convention best practices. (#137)

jleroux@apache.org
In reply to this post by jleroux@apache.org
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 a45f0f26981a1cfdbfd81bc1d3f1eae5f4d86301
Author: Suraj Khurana <[hidden email]>
AuthorDate: Sat May 23 10:33:46 2020 +0530

    Improved: Refactor simple methods names as per naming convention best practices. (#137)
   
    (OFBIZ-11700)
---
 .../accounting/minilang/invoice/InvoiceServices.xml    | 18 +++++++++---------
 .../minilang/test/AutoAcctgTransTestsPurchase.xml      |  8 ++++----
 .../minilang/test/AutoAcctgTransTestsSales.xml         |  8 ++++----
 applications/order/minilang/order/OrderServices.xml    |  2 +-
 applications/order/minilang/test/ShoppingCartTests.xml |  2 +-
 applications/order/servicedef/services.xml             |  4 ++--
 .../imagemanagement/ImageManagementServices.xml        |  2 +-
 applications/product/servicedef/services.xml           |  2 +-
 8 files changed, 23 insertions(+), 23 deletions(-)

diff --git a/applications/accounting/minilang/invoice/InvoiceServices.xml b/applications/accounting/minilang/invoice/InvoiceServices.xml
index 4629f1e..166b166 100644
--- a/applications/accounting/minilang/invoice/InvoiceServices.xml
+++ b/applications/accounting/minilang/invoice/InvoiceServices.xml
@@ -102,7 +102,7 @@ under the License.
     </simple-method>
 
     <simple-method method-name="updateInvoice" short-description="Update the header of an existing Invoice">
-        <call-simple-method method-name="InvoiceStatusInProgress"/>
+        <call-simple-method method-name="checkInvoiceStatusInProgress"/>
         <!-- find the current record -->
         <make-value entity-name="Invoice" value-field="lookupPKMap"/>
         <set-pk-fields map="parameters" value-field="lookupPKMap"/>
@@ -150,7 +150,7 @@ under the License.
 
     <simple-method method-name="createInvoiceItem" short-description="Create a new Invoice Item">
         <set field="invoiceId" from-field="parameters.invoiceId"/>
-        <call-simple-method method-name="InvoiceStatusInProgress"/>
+        <call-simple-method method-name="checkInvoiceStatusInProgress"/>
         <make-value entity-name="InvoiceItem" value-field="newEntity"/>
         <set-pk-fields map="parameters" value-field="newEntity"/>
         <set-nonpk-fields map="parameters" value-field="newEntity"/>
@@ -184,7 +184,7 @@ under the License.
     </simple-method>
     <simple-method method-name="updateInvoiceItem"
         short-description="Update an existing Invoice Item">
-        <call-simple-method method-name="InvoiceStatusInProgress"/>
+        <call-simple-method method-name="checkInvoiceStatusInProgress"/>
         <make-value entity-name="InvoiceItem" value-field="lookupPKMap"/>
         <set-pk-fields map="parameters" value-field="lookupPKMap"/>
 
@@ -218,9 +218,9 @@ under the License.
         <field-to-result field="lookedUpValue.invoiceId" result-name="invoiceId"/>
     </simple-method>
     <simple-method method-name="removeInvoiceItem" short-description="Remove an existing Invoice Item">
-        <call-simple-method method-name="InvoiceStatusInProgress"/>
+        <call-simple-method method-name="checkInvoiceStatusInProgress"/>
         <set field="invoiceId" from-field="parameters.invoiceId"/>
-        <call-simple-method method-name="InvoiceStatusInProgress"/>
+        <call-simple-method method-name="checkInvoiceStatusInProgress"/>
 
         <set field="paymentApplicationMap.invoiceId" from-field="parameters.invoiceId"/>
         <set field="paymentApplicationMap.invoiceItemSeqId" from-field="parameters.invoiceItemSeqId"/>
@@ -328,7 +328,7 @@ under the License.
     </simple-method>
 
     <simple-method method-name="createInvoiceRole" short-description="Create a Invoice Role">
-        <call-simple-method method-name="InvoiceStatusInProgress"/>
+        <call-simple-method method-name="checkInvoiceStatusInProgress"/>
         <make-value entity-name="InvoiceRole" value-field="newEntity"/>
         <set-nonpk-fields map="parameters" value-field="newEntity"/>
         <set-pk-fields map="parameters" value-field="newEntity"/>
@@ -337,7 +337,7 @@ under the License.
     </simple-method>
 
     <simple-method method-name="removeInvoiceRole" short-description="Remove existing Invoice Role">
-        <call-simple-method method-name="InvoiceStatusInProgress"/>
+        <call-simple-method method-name="checkInvoiceStatusInProgress"/>
         <entity-one entity-name="InvoiceRole" value-field="lookedUpValue"/>
         <remove-value value-field="lookedUpValue"/>
     </simple-method>
@@ -433,7 +433,7 @@ under the License.
     </simple-method>
 
     <simple-method method-name="createInvoiceTerm" short-description="Create a Invoice Term">
-        <call-simple-method method-name="InvoiceStatusInProgress"/>
+        <call-simple-method method-name="checkInvoiceStatusInProgress"/>
 
         <make-value entity-name="InvoiceTerm" value-field="newEntity"/>
         <set-nonpk-fields map="parameters" value-field="newEntity"/>
@@ -456,7 +456,7 @@ under the License.
     </simple-method>
 
     <!-- ===============subroutine services =================-->
-    <simple-method method-name="InvoiceStatusInProgress" short-description="Check if the invoiceStatus is in progress">
+    <simple-method method-name="checkInvoiceStatusInProgress" short-description="Check if the invoiceStatus is in progress">
         <!-- find the current header record -->
         <entity-one entity-name="Invoice" value-field="headerValue"/>
         <if-empty field="headerValue">
diff --git a/applications/accounting/minilang/test/AutoAcctgTransTestsPurchase.xml b/applications/accounting/minilang/test/AutoAcctgTransTestsPurchase.xml
index 7174d54..f6523a3 100644
--- a/applications/accounting/minilang/test/AutoAcctgTransTestsPurchase.xml
+++ b/applications/accounting/minilang/test/AutoAcctgTransTestsPurchase.xml
@@ -67,7 +67,7 @@ under the License.
 
         <assert><not><if-empty field="acctgTransEntryList"/></not></assert>
 
-        <call-simple-method method-name="UtilCheckEntriesBalance"/>
+        <call-simple-method method-name="checkEntriesBalance"/>
 
         <iterate list="acctgTransEntryList" entry="acctgTransEntry">
             <if-compare field="acctgTransEntry.debitCreditFlag" operator="equals" value="C">
@@ -133,7 +133,7 @@ under the License.
 
         <assert><not><if-empty field="acctgTransEntryList"/></not></assert>
 
-        <call-simple-method method-name="UtilCheckEntriesBalance"/>
+        <call-simple-method method-name="checkEntriesBalance"/>
 
         <iterate list="acctgTransEntryList" entry="acctgTransEntry">
             <if-compare field="acctgTransEntry.debitCreditFlag" operator="equals" value="C">
@@ -177,7 +177,7 @@ under the License.
 
         <assert><not><if-empty field="acctgTransEntryList"/></not></assert>
 
-        <call-simple-method method-name="UtilCheckEntriesBalance"/>
+        <call-simple-method method-name="checkEntriesBalance"/>
 
         <iterate list="acctgTransEntryList" entry="acctgTransEntry">
             <if-compare field="acctgTransEntry.debitCreditFlag" operator="equals" value="C">
@@ -198,7 +198,7 @@ under the License.
     </simple-method>
 
 
-    <simple-method method-name="UtilCheckEntriesBalance" login-required="false"
+    <simple-method method-name="checkEntriesBalance" login-required="false"
             short-description="Short util method that takes a list of AcctgTransEntry values (acctgTransEntryList) and checks that the debit and credit totals balance.">
         <set field="debitTotal" type="BigDecimal" value="0.0"/>
         <set field="creditTotal" type="BigDecimal" value="0.0"/>
diff --git a/applications/accounting/minilang/test/AutoAcctgTransTestsSales.xml b/applications/accounting/minilang/test/AutoAcctgTransTestsSales.xml
index e1095bd..b826d7e 100644
--- a/applications/accounting/minilang/test/AutoAcctgTransTestsSales.xml
+++ b/applications/accounting/minilang/test/AutoAcctgTransTestsSales.xml
@@ -68,7 +68,7 @@ under the License.
         <get-related list="acctgTransEntryList" relation-name="AcctgTransEntry" value-field="acctgTrans"/>
         <assert><not><if-empty field="acctgTransEntryList"/></not></assert>
 
-        <call-simple-method method-name="UtilCheckEntriesBalance" xml-resource="component://accounting/minilang/test/AutoAcctgTransTestsPurchase.xml"/>
+        <call-simple-method method-name="checkEntriesBalance" xml-resource="component://accounting/minilang/test/AutoAcctgTransTestsPurchase.xml"/>
 
         <iterate list="acctgTransEntryList" entry="acctgTransEntry">
             <if-compare field="acctgTransEntry.debitCreditFlag" operator="equals" value="C">
@@ -144,7 +144,7 @@ under the License.
 
         <assert><not><if-empty field="acctgTransEntryList"/></not></assert>
 
-        <call-simple-method method-name="UtilCheckEntriesBalance" xml-resource="component://accounting/minilang/test/AutoAcctgTransTestsPurchase.xml"/>
+        <call-simple-method method-name="checkEntriesBalance" xml-resource="component://accounting/minilang/test/AutoAcctgTransTestsPurchase.xml"/>
 
         <set field="acctgTransEntryFilter.glAccountTypeId" value="ACCOUNTS_RECEIVABLE"/>
         <set field="acctgTransEntryFilter.glAccountId" value="120000"/>
@@ -168,7 +168,7 @@ under the License.
 
         <assert><not><if-empty field="acctgTransEntryList"/></not></assert>
 
-        <call-simple-method method-name="UtilCheckEntriesBalance" xml-resource="component://accounting/minilang/test/AutoAcctgTransTestsPurchase.xml"/>
+        <call-simple-method method-name="checkEntriesBalance" xml-resource="component://accounting/minilang/test/AutoAcctgTransTestsPurchase.xml"/>
 
         <set field="acctgTransEntryFilter.glAccountTypeId" value="ACCOUNTS_RECEIVABLE"/>
         <set field="acctgTransEntryFilter.glAccountId" value="120000"/>
@@ -226,7 +226,7 @@ under the License.
 
         <assert><not><if-empty field="acctgTransEntryList"/></not></assert>
 
-        <call-simple-method method-name="UtilCheckEntriesBalance" xml-resource="component://accounting/minilang/test/AutoAcctgTransTestsPurchase.xml"/>
+        <call-simple-method method-name="checkEntriesBalance" xml-resource="component://accounting/minilang/test/AutoAcctgTransTestsPurchase.xml"/>
 
         <iterate list="acctgTransEntryList" entry="acctgTransEntry">
             <if-compare field="acctgTransEntry.debitCreditFlag" operator="equals" value="C">
diff --git a/applications/order/minilang/order/OrderServices.xml b/applications/order/minilang/order/OrderServices.xml
index a0c7eb1..f318825 100644
--- a/applications/order/minilang/order/OrderServices.xml
+++ b/applications/order/minilang/order/OrderServices.xml
@@ -1269,7 +1269,7 @@ under the License.
         </if-not-empty>
     </simple-method>
 
-    <simple-method method-name="MoveItemBetweenShipGroups" short-description="Move order items between ship groups">
+    <simple-method method-name="moveItemBetweenShipGroups" short-description="Move order items between ship groups">
         <entity-one entity-name="OrderItemShipGroupAssoc" value-field="orderItemShipGroupAssoc">
             <field-map field-name="orderId" from-field="parameters.orderId"/>
             <field-map field-name="orderItemSeqId" from-field="parameters.orderItemSeqId"/>
diff --git a/applications/order/minilang/test/ShoppingCartTests.xml b/applications/order/minilang/test/ShoppingCartTests.xml
index a881b14..0e4e08a 100644
--- a/applications/order/minilang/test/ShoppingCartTests.xml
+++ b/applications/order/minilang/test/ShoppingCartTests.xml
@@ -720,7 +720,7 @@ under the License.
         <set field="map.fromGroupIndex" value="00001"/>
         <set field="map.toGroupIndex" value="00002"/>
         <set field="map.quantity" value="2" type="BigDecimal"/>
-        <call-service service-name="MoveItemBetweenShipGroups" in-map-name="map"/>
+        <call-service service-name="moveItemBetweenShipGroups" in-map-name="map"/>
         
         <entity-one entity-name="OrderItemShipGroupAssoc" value-field="orderItemShipGroupAssoc1">
             <field-map field-name="orderId" from-field="orderMap.orderId"/>
diff --git a/applications/order/servicedef/services.xml b/applications/order/servicedef/services.xml
index 3ad4c59..76d5eb0 100644
--- a/applications/order/servicedef/services.xml
+++ b/applications/order/servicedef/services.xml
@@ -1567,8 +1567,8 @@ under the License.
         </attribute>
     </service>
     
-    <service name="MoveItemBetweenShipGroups" engine="simple"
-        location="component://order/minilang/order/OrderServices.xml" invoke="MoveItemBetweenShipGroups">
+    <service name="moveItemBetweenShipGroups" engine="simple"
+        location="component://order/minilang/order/OrderServices.xml" invoke="moveItemBetweenShipGroups">
         <description>Move order items between ship groups</description>
         <attribute name="orderId" type="String" mode="IN"/>
         <attribute name="orderItemSeqId" type="String" mode="IN"/>
diff --git a/applications/product/minilang/product/imagemanagement/ImageManagementServices.xml b/applications/product/minilang/product/imagemanagement/ImageManagementServices.xml
index 5cf0d23..436c64d 100644
--- a/applications/product/minilang/product/imagemanagement/ImageManagementServices.xml
+++ b/applications/product/minilang/product/imagemanagement/ImageManagementServices.xml
@@ -21,7 +21,7 @@ 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="UploadProductImages" short-description="Method to upload multiple images for product">
+    <simple-method method-name="uploadProductImages" short-description="Method to upload multiple images for product">
         <set-service-fields service-name="addMultipleuploadForProduct" map="parameters" to-map="addAdditionalViewForProductMap"/>
         <if-not-empty field="parameters._additionalImageOne_fileName">
             <set field="addAdditionalViewForProductMap.productId" from-field="parameters.productId"/>
diff --git a/applications/product/servicedef/services.xml b/applications/product/servicedef/services.xml
index 203a971..ac7f217 100644
--- a/applications/product/servicedef/services.xml
+++ b/applications/product/servicedef/services.xml
@@ -1388,7 +1388,7 @@ under the License.
     </service>
 
     <service name="multipleUploadProductImages" engine="simple"
-        location="component://product/minilang/product/imagemanagement/ImageManagementServices.xml" invoke="UploadProductImages" auth="true">
+        location="component://product/minilang/product/imagemanagement/ImageManagementServices.xml" invoke="uploadProductImages" auth="true">
         <description>Multiple upload Images For Product</description>
         <permission-service service-name="genericContentPermission" main-action="CREATE"/>
         <attribute name="productId" type="String" mode="INOUT" optional="false"/>

Reply | Threaded
Open this post in threaded view
|

[ofbiz-framework] 09/28: Improved: Apply multi-block attr to each application (OFBIZ-11706)

jleroux@apache.org
In reply to this post by jleroux@apache.org
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 05640f79f544b96be7f1ef73dd4c1d1e9ff39b9d
Author: James Yong <[hidden email]>
AuthorDate: Sat May 23 14:08:35 2020 +0800

    Improved: Apply multi-block attr to each application (OFBIZ-11706)
   
    1. Bug Fix
    2. Disable multi-block until function is stabilized.
---
 .../src/main/java/org/apache/ofbiz/widget/model/HtmlWidget.java       | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/HtmlWidget.java b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/HtmlWidget.java
index 221bd85..36d4742 100644
--- a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/HtmlWidget.java
+++ b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/HtmlWidget.java
@@ -208,7 +208,7 @@ public class HtmlWidget extends ModelScreenWidget {
         @Override
         public void renderWidgetString(Appendable writer, Map<String, Object> context, ScreenStringRenderer screenStringRenderer) throws IOException {
 
-            if (isMultiBlock()) {
+            if (false && isMultiBlock()) {
 
                 StringWriter stringWriter = new StringWriter();
                 context.put("MultiBlockWriter", stringWriter);
@@ -250,7 +250,7 @@ public class HtmlWidget extends ModelScreenWidget {
                 }
 
                 // check for external script
-                String externalScripts = doc.head().select("script").toString();
+                String externalScripts = doc.body().select("script").toString();
                 writer.append(externalScripts);
 
                 // the 'template' block

Reply | Threaded
Open this post in threaded view
|

[ofbiz-framework] 10/28: Improved: Converted createPaymentContent, updatePaymentContent services from mini-lang to groovy. (#155)

jleroux@apache.org
In reply to this post by jleroux@apache.org
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 <[hidden email]>
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 | Threaded
Open this post in threaded view
|

[ofbiz-framework] 11/28: Improved: Convert setContentStatus service from mini-lang to groovy DSL(OFBIZ-11365). Thanks Devanshu Vyas for the contribution.

jleroux@apache.org
In reply to this post by jleroux@apache.org
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 ae2585c32d5d7ef475d7d2d42bed86b360350373
Author: Mridul Pathak <[hidden email]>
AuthorDate: Sat May 23 18:12:13 2020 +0530

    Improved: Convert setContentStatus service from mini-lang to groovy DSL(OFBIZ-11365). Thanks Devanshu Vyas for the contribution.
---
 .../groovyScripts/content/ContentServices.groovy   | 22 ++++++++++++++++++
 .../content/minilang/content/ContentServices.xml   | 26 ----------------------
 .../content/servicedef/services_content.xml        |  4 ++--
 3 files changed, 24 insertions(+), 28 deletions(-)

diff --git a/applications/content/groovyScripts/content/ContentServices.groovy b/applications/content/groovyScripts/content/ContentServices.groovy
index 4ecc039..fef62e4 100644
--- a/applications/content/groovyScripts/content/ContentServices.groovy
+++ b/applications/content/groovyScripts/content/ContentServices.groovy
@@ -319,3 +319,25 @@ def createArticleContent() {
     result.contentId = contentId
     return result
 }
+
+def setContentStatus() {
+    Map resultMap = new HashMap()
+    content = from("Content").where("contentId", parameters.contentId).queryOne()
+    if (content) {
+        oldStatusId = content.statusId
+        resultMap.oldStatusId = oldStatusId
+        if (!oldStatusId.equals(parameters.statusId)) {
+            statusChange = from("StatusValidChange").where("statusId", oldStatusId, "statusIdTo", parameters.statusId).queryOne()
+            if (statusChange) {
+                content.put("statusId", parameters.statusId)
+                content.store()
+            } else {
+                resultMap.errorMessage = "Cannot change from " + oldStatusId + " to " + parameters.statusId
+                logError(resultMap.errorMessage)
+            }
+        }
+    } else {
+        return failure("No Content is not available in the system with content ID - " + parameters.contentId)
+    }
+    return resultMap
+}
\ No newline at end of file
diff --git a/applications/content/minilang/content/ContentServices.xml b/applications/content/minilang/content/ContentServices.xml
index b8e451b..d920e1d 100644
--- a/applications/content/minilang/content/ContentServices.xml
+++ b/applications/content/minilang/content/ContentServices.xml
@@ -46,32 +46,6 @@
         </if-not-empty>
     </simple-method>
 
-    <!-- update content; just status -->
-    <simple-method method-name="setContentStatus" short-description="Set The Content Status">
-
-        <entity-one entity-name="Content" value-field="content"/>
-        <field-to-result field="content.statusId" result-name="oldStatusId"/>
-
-       <if-compare-field field="content.statusId" to-field="parameters.statusId" operator="not-equals">
-            <entity-one entity-name="StatusValidChange" value-field="statusChange" auto-field-map="false">
-                <field-map field-name="statusId" from-field="content.statusId"/>
-                <field-map field-name="statusIdTo" from-field="parameters.statusId"/>
-            </entity-one>
-
-            <if-empty field="statusChange">
-                <add-error>
-                    <fail-property resource="ContentUiLabels" property="ContentCannotChangeStatus"/>
-                </add-error>
-                <log level="error" message="Cannot change from ${content.statusId} to ${parameters.statusId}"/>
-                <check-errors/>
-                <else>
-                    <set from-field="parameters.statusId" field="content.statusId"/>
-                    <store-value value-field="content"/>
-                </else>
-            </if-empty>
-        </if-compare-field>
-    </simple-method>
-
     <simple-method method-name="copyContentAndElectronicTextandAssoc" short-description="copy a content, electronic text and assocs and set status in progress">
         <set-service-fields service-name="getContent" map="parameters" to-map="getC"/>
         <call-service service-name="getContent" in-map-name="getC">
diff --git a/applications/content/servicedef/services_content.xml b/applications/content/servicedef/services_content.xml
index ee931fa..a85b902 100644
--- a/applications/content/servicedef/services_content.xml
+++ b/applications/content/servicedef/services_content.xml
@@ -288,8 +288,8 @@
     </service>
 
     <!-- content status services -->
-    <service name="setContentStatus" engine="simple" auth="true"
-            location="component://content/minilang/content/ContentServices.xml" invoke="setContentStatus">
+    <service name="setContentStatus" engine="groovy" auth="true"
+            location="component://content/groovyScripts/content/ContentServices.groovy" invoke="setContentStatus">
         <description>Set the Content Status</description>
         <permission-service service-name="genericContentPermission" main-action="UPDATE"/>
         <attribute name="contentId" type="String" mode="IN" optional="false">

Reply | Threaded
Open this post in threaded view
|

[ofbiz-framework] 12/28: Improved: Converted massChangePaymentStatus service from mini-lang to groovy. (OFBIZ-11498) Thanks Devanshu Vyas for reporting and Rushikesh Mawal for initial patch.

jleroux@apache.org
In reply to this post by jleroux@apache.org
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 d0fb482257128b5471bb71f15218fcd6057a495c
Author: Suraj Khurana <[hidden email]>
AuthorDate: Sat May 23 15:23:13 2020 +0530

    Improved: Converted massChangePaymentStatus service from mini-lang to groovy.
    (OFBIZ-11498)
    Thanks Devanshu Vyas for reporting and Rushikesh Mawal for initial patch.
---
 .../accounting/groovyScripts/payment/PaymentServices.groovy | 13 +++++++++++++
 .../accounting/minilang/payment/PaymentServices.xml         | 10 ----------
 applications/accounting/servicedef/services_payment.xml     |  4 ++--
 3 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/applications/accounting/groovyScripts/payment/PaymentServices.groovy b/applications/accounting/groovyScripts/payment/PaymentServices.groovy
index c28ce07..212207d 100644
--- a/applications/accounting/groovyScripts/payment/PaymentServices.groovy
+++ b/applications/accounting/groovyScripts/payment/PaymentServices.groovy
@@ -133,4 +133,17 @@ def updatePaymentContent() {
         return ServiceUtil.returnError("Error getting Payment Content")
     }
 }
+def massChangePaymentStatus() {
+    serviceResult = success()
+    Map setPaymentStatusMap = [:]
+    parameters.paymentIds.each{ paymentId ->
+        setPaymentStatusMap.paymentId = paymentId
+        setPaymentStatusMap.statusId = parameters.statusId
+        setPaymentStatusMap.userLogin = parameters.userLogin
+        result = run service: 'setPaymentStatus', with: setPaymentStatusMap
+        if (ServiceUtil.isError(result)) return result
+        setPaymentStatusMap.clear()
+    }
+    return serviceResult
+}
 
diff --git a/applications/accounting/minilang/payment/PaymentServices.xml b/applications/accounting/minilang/payment/PaymentServices.xml
index 1c32621..ae862251 100644
--- a/applications/accounting/minilang/payment/PaymentServices.xml
+++ b/applications/accounting/minilang/payment/PaymentServices.xml
@@ -785,16 +785,6 @@ under the License.
         </else>
         </if-not-empty>
     </simple-method>
-
-    <simple-method method-name="massChangePaymentStatus" short-description="Service set status of Payments in bulk.">
-        <iterate list="parameters.paymentIds" entry="paymentId">
-            <set field="setPaymentStatusMap.paymentId" from-field="paymentId"/>
-            <set field="setPaymentStatusMap.statusId" from-field="parameters.statusId"/>
-            <call-service service-name="setPaymentStatus" in-map-name="setPaymentStatusMap"/>
-            <clear-field field="setPaymentStatusMap"/>
-        </iterate>
-    </simple-method>
-
     <simple-method method-name="createPaymentFromOrder" short-description="Service auto create Payment from Order when payment does exist yet and not disabled by accounting config">
         <entity-one entity-name="OrderHeader" value-field="orderHeader"/>
 
diff --git a/applications/accounting/servicedef/services_payment.xml b/applications/accounting/servicedef/services_payment.xml
index dd9b2cd..e1c8344 100644
--- a/applications/accounting/servicedef/services_payment.xml
+++ b/applications/accounting/servicedef/services_payment.xml
@@ -227,8 +227,8 @@ under the License.
         <implements service="createPaymentGroupAndMember"/>
     </service>
     
-    <service name="massChangePaymentStatus" engine="simple"
-            location="component://accounting/minilang/payment/PaymentServices.xml" invoke="massChangePaymentStatus" auth="true">
+    <service name="massChangePaymentStatus" engine="groovy"
+        location="component://accounting/groovyScripts/payment/PaymentServices.groovy" invoke="massChangePaymentStatus" auth="true">
         <description>Set status of Payments in bulk.</description>
         <attribute name="paymentIds" type="List" mode="IN" optional="false"/>
         <attribute name="statusId" type="String" mode="IN" optional="false"/>

Reply | Threaded
Open this post in threaded view
|

[ofbiz-framework] 13/28: Improved: Converted createPaymentAndApplicationForParty service from mini-lang to groovy (OFBIZ-11491) Thanks Devanshu Vyas for reporting and Sourabh Punyani for providing the patch.

jleroux@apache.org
In reply to this post by jleroux@apache.org
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 d5c7151223df334c0d35b06990bfc569d37f693f
Author: Suraj Khurana <[hidden email]>
AuthorDate: Sat May 23 15:57:21 2020 +0530

    Improved: Converted createPaymentAndApplicationForParty service from mini-lang to groovy
    (OFBIZ-11491)
    Thanks Devanshu Vyas for reporting and Sourabh Punyani for providing the patch.
---
 .../groovyScripts/payment/PaymentServices.groovy   | 61 +++++++++++++++++++++-
 .../minilang/payment/PaymentServices.xml           | 59 ---------------------
 .../accounting/servicedef/services_payment.xml     |  4 +-
 3 files changed, 62 insertions(+), 62 deletions(-)

diff --git a/applications/accounting/groovyScripts/payment/PaymentServices.groovy b/applications/accounting/groovyScripts/payment/PaymentServices.groovy
index 212207d..5e2749b 100644
--- a/applications/accounting/groovyScripts/payment/PaymentServices.groovy
+++ b/applications/accounting/groovyScripts/payment/PaymentServices.groovy
@@ -23,6 +23,7 @@ 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.ModelService
 import org.apache.ofbiz.service.ServiceUtil
 import java.sql.Timestamp
 
@@ -62,7 +63,65 @@ def createPayment() {
     result.paymentId = paymentId
     return result
 }
-
+def createPaymentAndApplicationForParty() {
+    paymentAmount = 0
+    List invoiceIds = []
+    Map result = success()
+    parameters.invoices.each { invoice ->
+        if ("INVOICE_READY" == invoice.statusId) {
+            Map serviceContext = dispatcher.getDispatchContext().makeValidContext('getInvoicePaymentInfoList', ModelService.IN_PARAM, invoice)
+            serviceContext.userLogin = userLogin
+            serviceResult = run service: 'getInvoicePaymentInfoList', with: serviceContext
+            if (ServiceUtil.isError(serviceResult)) return serviceResult
+            invoicePaymentInfo = serviceResult.invoicePaymentInfoList[0]
+            paymentAmount += invoicePaymentInfo.outstandingAmount
+        } else {
+            return error(UtilProperties.getMessage("AccountingUiLabels", "AccountingInvoicesRequiredInReadyStatus", parameters.locale))
+        }
+    }
+    if (paymentAmount > 0) {
+        serviceResult = run service: 'getPartyAccountingPreferences', with: parameters
+        if (ServiceUtil.isError(serviceResult)) return serviceResult
+        partyAcctgPreference = serviceResult.partyAccountingPreference
+        Map createPaymentMap = [:]
+        createPaymentMap.paymentTypeId = "VENDOR_PAYMENT"
+        createPaymentMap.partyIdFrom = parameters.organizationPartyId
+        createPaymentMap.currencyUomId = partyAcctgPreference.baseCurrencyUomId
+        createPaymentMap.partyIdTo = parameters.partyId
+        createPaymentMap.statusId = "PMNT_SENT"
+        createPaymentMap.amount = paymentAmount
+        createPaymentMap.paymentMethodTypeId = parameters.paymentMethodTypeId
+        createPaymentMap.paymentMethodId = parameters.paymentMethodId
+        createPaymentMap.paymentRefNum = parameters.checkStartNumber
+        createPaymentMap.userLogin = userLogin
+        serviceResult = run service: 'createPayment', with: createPaymentMap
+        if (ServiceUtil.isError(serviceResult)) return serviceResult
+        paymentId = serviceResult.paymentId
+        result.paymentId = paymentId
+
+        parameters.invoices.each {invoice ->
+        if ("INVOICE_READY" == invoice.statusId) {
+            Map serviceContext = dispatcher.getDispatchContext().makeValidContext('getInvoicePaymentInfoList', ModelService.IN_PARAM, invoice)
+            serviceContext.userLogin = userLogin
+            serviceResult = run service: 'getInvoicePaymentInfoList', with: serviceContext
+            if (ServiceUtil.isError(serviceResult)) return serviceResult
+            invoicePaymentInfo = serviceResult.invoicePaymentInfoList[0]
+            if (invoicePaymentInfo.outstandingAmount > 0) {
+                Map createPaymentApplicationMap = [:]
+                createPaymentApplicationMap.paymentId =  paymentId
+                createPaymentApplicationMap.amountApplied = invoicePaymentInfo.outstandingAmount
+                createPaymentApplicationMap.invoiceId = invoice.invoiceId
+                serviceResult = run service: 'createPaymentApplication', with: createPaymentApplicationMap
+                if (ServiceUtil.isError(serviceResult)) return serviceResult
+            }
+        }
+        invoiceIds.add(invoice.invoiceId)
+        }
+    }
+    result.invoiceIds = invoiceIds
+    result.amount =  paymentAmount
+    return result
+}
 def getPaymentRunningTotal(){
     paymentIds = parameters.paymentIds;
     runningTotal = 0;
diff --git a/applications/accounting/minilang/payment/PaymentServices.xml b/applications/accounting/minilang/payment/PaymentServices.xml
index ae862251..9ce7e3b 100644
--- a/applications/accounting/minilang/payment/PaymentServices.xml
+++ b/applications/accounting/minilang/payment/PaymentServices.xml
@@ -593,65 +593,6 @@ under the License.
         </if-empty>
     </simple-method>
 
-    <simple-method method-name="createPaymentAndApplicationForParty" short-description="create Payment and PaymentApplications for multiple invoices for one party">
-        <set field="paymentAmount" type="BigDecimal" value="0"/>
-        <iterate list="parameters.invoices" entry="invoice">
-            <if-compare field="invoice.statusId" operator="equals" value="INVOICE_READY" type="String">
-                <set-service-fields service-name="getInvoicePaymentInfoList" map="invoice" to-map="getInvoicePaymentInfoListCtx"/>
-                <call-service service-name="getInvoicePaymentInfoList" in-map-name="getInvoicePaymentInfoListCtx">
-                    <result-to-field result-name="invoicePaymentInfoList"/>
-                </call-service>
-                <first-from-list list="invoicePaymentInfoList" entry="invoicePaymentInfo"/>
-                <set field="paymentAmount" value="${paymentAmount + invoicePaymentInfo.outstandingAmount}"/>
-            <else>
-                <add-error>
-                    <fail-property resource="AccountingUiLabels" property="AccountingInvoicesRequiredInReadyStatus"/>
-                </add-error>
-                <check-errors/>
-            </else>
-            </if-compare>
-        </iterate>
-        <if-compare field="paymentAmount" operator="greater" type="BigDecimal" value="0">
-            <set-service-fields service-name="getPartyAccountingPreferences" map="parameters" to-map="getPartyAccountingPreferencesMap"/>
-            <call-service service-name="getPartyAccountingPreferences" in-map-name="getPartyAccountingPreferencesMap">
-                <result-to-field result-name="partyAccountingPreference" field="partyAcctgPreference"/>
-            </call-service>
-            <set field="createPaymentMap.paymentTypeId" value="VENDOR_PAYMENT"/>
-            <set field="createPaymentMap.partyIdFrom" from-field="parameters.organizationPartyId"/>
-            <set field="createPaymentMap.currencyUomId" from-field="partyAcctgPreference.baseCurrencyUomId"/>
-            <set field="createPaymentMap.partyIdTo" from-field="parameters.partyId"/>
-            <set field="createPaymentMap.statusId" value="PMNT_SENT"/>
-            <set field="createPaymentMap.amount" type="BigDecimal" from-field="paymentAmount"/>
-            <set field="createPaymentMap.paymentMethodTypeId" from-field="parameters.paymentMethodTypeId"/>
-            <set field="createPaymentMap.paymentMethodId" from-field="parameters.paymentMethodId"/>
-            <set field="createPaymentMap.paymentRefNum" type="String" from-field="parameters.checkStartNumber"/>
-            <call-service service-name="createPayment" in-map-name="createPaymentMap">
-                <result-to-field result-name="paymentId"/>
-                <result-to-result result-name="paymentId"/>
-            </call-service>
-            <iterate list="parameters.invoices" entry="invoice">
-                <if-compare field="invoice.statusId" operator="equals" value="INVOICE_READY">
-                    <set-service-fields service-name="getInvoicePaymentInfoList" map="invoice" to-map="getInvoicePaymentInfoListCtx"/>
-                    <call-service service-name="getInvoicePaymentInfoList" in-map-name="getInvoicePaymentInfoListCtx">
-                        <result-to-field result-name="invoicePaymentInfoList" field="invoicePaymentInfoList"/>
-                    </call-service>
-                    <first-from-list list="invoicePaymentInfoList" entry="invoicePaymentInfo"/>
-                    <if-compare field="invoicePaymentInfo.outstandingAmount" operator="greater" value="0">
-                        <set field="createPaymentApplicationMap.paymentId" from-field="paymentId"/>
-                        <set field="createPaymentApplicationMap.amountApplied" from-field="invoicePaymentInfo.outstandingAmount"/>
-                        <set field="createPaymentApplicationMap.invoiceId" from-field="invoice.invoiceId"/>
-                        <call-service service-name="createPaymentApplication" in-map-name="createPaymentApplicationMap"/>
-                    </if-compare>
-                </if-compare>
-                <field-to-list field="invoice.invoiceId" list="invoiceIds"/>
-                <clear-field field="createPaymentApplicationMap"/>
-            </iterate>
-        </if-compare>
-        <field-to-result field="invoiceIds"/>
-        <set field="amount" type="BigDecimal" from-field="paymentAmount"/>
-        <field-to-result field="amount"/>
-    </simple-method>
-
     <simple-method method-name="createFinAccoutnTransFromPayment" short-description="Creates a record for FinAccountTrans on creation of payment.">
         <set-service-fields service-name="createFinAccountTrans" map="parameters" to-map="createFinAccountTransMap"/>
         <set field="createFinAccountTransMap.finAccountTransTypeId" value="WITHDRAWAL"/>
diff --git a/applications/accounting/servicedef/services_payment.xml b/applications/accounting/servicedef/services_payment.xml
index e1c8344..00099dd 100644
--- a/applications/accounting/servicedef/services_payment.xml
+++ b/applications/accounting/servicedef/services_payment.xml
@@ -174,8 +174,8 @@ under the License.
         <attribute name="paymentGroupId" type="String" mode="OUT" optional="true"/>
         <attribute name="errorMessage" type="String" optional="true" mode="OUT"/>
     </service>
-    <service name="createPaymentAndApplicationForParty" engine="simple"
-            location="component://accounting/minilang/payment/PaymentServices.xml" invoke="createPaymentAndApplicationForParty" auth="true">
+    <service name="createPaymentAndApplicationForParty" engine="groovy"
+            location="component://accounting/groovyScripts/payment/PaymentServices.groovy" invoke="createPaymentAndApplicationForParty" auth="true">
         <description>create Payment and PaymentApplications for multiple invoices for one party</description>
         <attribute name="organizationPartyId" type="String" mode="INOUT" optional="true"/>
         <attribute name="partyId" type="String" mode="IN" optional="false"/>

Reply | Threaded
Open this post in threaded view
|

[ofbiz-framework] 14/28: Improved: Make shipment services loosely coupled with work-effort generation. (#132)

jleroux@apache.org
In reply to this post by jleroux@apache.org
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 452a893cf64da3d04307815b40f021ae024f2007
Author: Suraj Khurana <[hidden email]>
AuthorDate: Sat May 23 15:26:26 2020 +0530

    Improved: Make shipment services loosely coupled with work-effort generation. (#132)
   
    * Improved: Make shipment services loosely coupled with work-effort generation.
    (OFBIZ-11678)
    Removed workeffort generation related code in separate service, in createShipment and updateShipment service. In this effort, createShipment has been successfully changed to entity-auto as well.
    Thanks: Pierre Smits and Arun Patidar for discussion and review.
---
 .../shipment/shipment/ShipmentServices.groovy      | 156 +-------------------
 applications/product/servicedef/secas_shipment.xml |  16 ++-
 .../product/servicedef/services_shipment.xml       |   7 +-
 .../workeffort/WorkEffortServices.groovy           | 158 +++++++++++++++++++++
 applications/workeffort/servicedef/services.xml    |  12 ++
 .../workeffort/workeffort/WorkEffortServices.java  |   2 +-
 6 files changed, 191 insertions(+), 160 deletions(-)

diff --git a/applications/product/groovyScripts/shipment/shipment/ShipmentServices.groovy b/applications/product/groovyScripts/shipment/shipment/ShipmentServices.groovy
index 026e7a0..1940f59 100644
--- a/applications/product/groovyScripts/shipment/shipment/ShipmentServices.groovy
+++ b/applications/product/groovyScripts/shipment/shipment/ShipmentServices.groovy
@@ -17,8 +17,6 @@
  * under the License.
  */
 
-
-
 import java.sql.Timestamp
 
 import org.apache.ofbiz.base.util.UtilDateTime
@@ -30,83 +28,6 @@ import org.apache.ofbiz.party.contact.ContactMechWorker
 import org.apache.ofbiz.product.product.ProductWorker
 import org.apache.ofbiz.service.ServiceUtil
 
-
-/**
- * Create Shipment
- * @return
- */
-def createShipment() {
-    GenericValue newEntity = makeValue("Shipment")
-    newEntity.setNonPKFields(parameters)
-
-    if (parameters.shipmentId) {
-        newEntity.setPKFields(parameters)
-    } else {
-        newEntity.shipmentId = delegator.getNextSeqId("Shipment")
-    }
-    Map result = success()
-    result.shipmentId = newEntity.shipmentId
-    String shipmentTypeId = parameters.shipmentTypeId
-    // set the created and lastModified info
-    newEntity.createdDate = UtilDateTime.nowTimestamp()
-    newEntity.createdByUserLogin = userLogin.userLoginId
-    newEntity.lastModifiedDate = UtilDateTime.nowTimestamp()
-    newEntity.lastModifiedByUserLogin = userLogin.userLoginId
-    /*
-     * if needed create some WorkEfforts and remember their IDs:
-     * estimatedShipDate: estimatedShipWorkEffId
-     * estimatedArrivalDate: estimatedArrivalWorkEffId
-     */
-    if (parameters.estimatedShipDate) {
-        Map shipWorkEffortMap = [workEffortName: "Shipment #${newEntity.shipmentId} ${newEntity.primaryOrderId} Ship",
-                                 currentStatusId: "CAL_TENTATIVE",
-                                 workEffortPurposeTypeId: "WEPT_WAREHOUSING",
-                                 estimatedStartDate: parameters.estimatedShipDate,
-                                 estimatedCompletionDate: parameters.estimatedShipDate,
-                                 facilityId: parameters.originFacilityId,
-                                 quickAssignPartyId: userLogin.partyId]
-        if (["OUTGOING_SHIPMENT", "SALES_SHIPMENT", "PURCHASE_RETURN"].contains(shipmentTypeId)) {
-            shipWorkEffortMap.workEffortTypeId = "SHIPMENT_OUTBOUND"
-        }
-        Map serviceResultSD = run service: "createWorkEffort", with: shipWorkEffortMap
-        newEntity.estimatedShipWorkEffId = serviceResultSD.workEffortId
-        if (newEntity.partyIdFrom) {
-            run service: "assignPartyToWorkEffort", with: [workEffortId: newEntity.estimatedShipWorkEffId,
-                                                           partyId: newEntity.partyIdFrom,
-                                                           roleTypeId: "CAL_ATTENDEE",
-                                                           statusId: "CAL_SENT"]
-        }
-    }
-    if (parameters.estimatedArrivalDate) {
-        Map arrivalWorkEffortMap = [workEffortName: "Shipment #${newEntity.shipmentId} ${newEntity.primaryOrderId} Arrival",
-                                    currentStatusId: "CAL_TENTATIVE",
-                                    workEffortPurposeTypeId: "WEPT_WAREHOUSING",
-                                    estimatedStartDate: parameters.estimatedArrivalDate,
-                                    estimatedCompletionDate: parameters.estimatedArrivalDate,
-                                    facilityId: parameters.destinationFacilityId,
-                                    quickAssignPartyId: userLogin.partyId]
-        if (["INCOMING_SHIPMENT", "PURCHASE_SHIPMENT", "SALES_RETURN"].contains(shipmentTypeId)) {
-            arrivalWorkEffortMap.workEffortTypeId = "SHIPMENT_INBOUND"
-        }
-        Map serviceResultAD = run service: "createWorkEffort", with: arrivalWorkEffortMap
-        newEntity.estimatedArrivalWorkEffId = serviceResultAD.workEffortId
-        if (newEntity.partyIdTo) {
-            run service: "assignPartyToWorkEffort", with: [workEffortId: newEntity.estimatedArrivalWorkEffId,
-                                                           partyId: newEntity.partyIdTo,
-                                                           roleTypeId: "CAL_ATTENDEE",
-                                                           statusId: "CAL_SENT"]
-        }
-    }
-    newEntity.create()
-
-    // get the ShipmentStatus history started
-    if (newEntity.statusId) {
-        run service: "createShipmentStatus", with: [shipmentId: newEntity.shipmentId,
-                                                    statusId: newEntity.statusId]
-    }
-    return result
-}
-
 /**
  * Update Shipment
  * @return
@@ -140,80 +61,11 @@ def updateShipment() {
     }
     // now finally check for errors
     if (errorList) {
-        return error(errorList)
-    }
-    // Check the pickup and delivery dates for changes and update the corresponding WorkEfforts
-    if ((parameters.estimatedShipDate && parameters.estimatedShipDate != lookedUpValue.estimatedShipDate)
-            || (parameters.originFacilityId && parameters.originFacilityId != lookedUpValue.originFacilityId)
-            || (parameters.statusId && parameters.statusId != lookedUpValue.statusId
-                && ["SHIPMENT_CANCELLED", "SHIPMENT_PACKED", "SHIPMENT_SHIPPED"].contains(parameters.statusId))) {
-        GenericValue estShipWe = from("WorkEffort").where(workEffortId: lookedUpValue.estimatedShipWorkEffId).queryOne()
-        if (estShipWe) {
-            estShipWe.estimatedStartDate = parameters.estimatedShipDate
-            estShipWe.estimatedCompletionDate = parameters.estimatedShipDate
-            estShipWe.facilityId = parameters.originFacilityId
-            if ((parameters.statusId) && (parameters.statusId != lookedUpValue.statusId)) {
-                if (parameters.statusId == "SHIPMENT_CANCELLED") {
-                    estShipWe.currentStatusId = "CAL_CANCELLED"
-                }
-                if (parameters.statusId == "SHIPMENT_PACKED") {
-                    estShipWe.currentStatusId = "CAL_CONFIRMED"
-                }
-                if (parameters.statusId == "SHIPMENT_SHIPPED") {
-                    estShipWe.currentStatusId = "CAL_COMPLETED"
-                }
-            }
-            Map estShipWeUpdMap = [:]
-            estShipWeUpdMap << estShipWe
-            run service: "updateWorkEffort", with: estShipWeUpdMap
-        }
-    }
-    if ((parameters.estimatedArrivalDate
-            && parameters.estimatedArrivalDate != lookedUpValue.estimatedArrivalDate)
-            || (parameters.destinationFacilityId
-            && parameters.destinationFacilityId != lookedUpValue.destinationFacilityId)) {
-        GenericValue estimatedArrivalWorkEffort = from("WorkEffort")
-                .where(workEffortId: lookedUpValue.estimatedArrivalWorkEffId)
-                .queryOne()
-        if (estimatedArrivalWorkEffort) {
-            estimatedArrivalWorkEffort.estimatedStartDate = parameters.estimatedArrivalDate
-            estimatedArrivalWorkEffort.estimatedCompletionDate = parameters.estimatedArrivalDate
-            estimatedArrivalWorkEffort.facilityId = parameters.destinationFacilityId
-            run service: "updateWorkEffort", with: estimatedArrivalWorkEffort
-        }
-    }
-    // if the partyIdTo or partyIdFrom has changed, add WEPAs
-    //TODO REFACTORING
-    if (parameters.partyIdFrom
-            && parameters.partyIdFrom != lookedUpValue.partyIdFrom
-            && lookedUpValue.estimatedShipWorkEffId) {
-        Map assignPartyToWorkEffortShip = [workEffortId: lookedUpValue.estimatedShipWorkEffId,
-                                           partyId: parameters.partyIdFrom]
-        List existingShipWepas = from("WorkEffortPartyAssignment")
-                .where(assignPartyToWorkEffortShip)
-                .filterByDate()
-                .queryList()
-        if (!existingShipWepas) {
-            assignPartyToWorkEffortShip.roleTypeId = "CAL_ATTENDEE"
-            assignPartyToWorkEffortShip.statusId = "CAL_SENT"
-            run service: "assignPartyToWorkEffort", with: assignPartyToWorkEffortShip
-        }
-    }
-    if (parameters.partyIdTo
-            && parameters.partyIdTo != lookedUpValue.partyIdTo
-            && lookedUpValue.estimatedArrivalWorkEffId) {
-        Map assignPartyToWorkEffortArrival = [workEffortId: lookedUpValue.estimatedArrivalWorkEffId,
-                                              partyId: parameters.partyIdTo]
-        List existingArrivalWepas = from("WorkEffortPartyAssignment")
-                .where(assignPartyToWorkEffortArrival)
-                .filterByDate()
-                .queryList()
-        if (!existingArrivalWepas) {
-            assignPartyToWorkEffortArrival.roleTypeId = "CAL_ATTENDEE"
-            assignPartyToWorkEffortArrival.statusId = "CAL_SENT"
-            run service: "assignPartyToWorkEffort", with: assignPartyToWorkEffortArrival
-        }
+        return error(errorList.toString())
     }
+    Map serviceResult = run service: "checkAndUpdateWorkEffort", with: parameters
+    if (!ServiceUtil.isSuccess(serviceResult)) return error(serviceResult.errorMessage)
+
     // finally before setting nonpk fields, set the oldStatusId, oldPrimaryOrderId, oldOriginFacilityId, oldDestinationFacilityId
     result.oldStatusId = lookedUpValue.statusId
     result.oldPrimaryOrderId = lookedUpValue.primaryOrderId
diff --git a/applications/product/servicedef/secas_shipment.xml b/applications/product/servicedef/secas_shipment.xml
index b71fbb9..94f8e2d 100644
--- a/applications/product/servicedef/secas_shipment.xml
+++ b/applications/product/servicedef/secas_shipment.xml
@@ -123,18 +123,30 @@ under the License.
         <condition field-name="destinationFacilityId" operator="is-not-empty"/>
         <action service="setShipmentSettingsFromFacilities" mode="sync"/>
     </eca>
-
     <!-- if new primaryOrderId, get settings from order -->
     <eca service="createShipment" event="commit">
         <condition field-name="primaryOrderId" operator="is-not-empty"/>
         <action service="setShipmentSettingsFromPrimaryOrder" mode="sync"/>
     </eca>
-
     <eca service="updateShipment" event="commit">
         <condition-field field-name="primaryOrderId" operator="not-equals" to-field-name="oldPrimaryOrderId"/>
         <condition field-name="primaryOrderId" operator="is-not-empty"/>
         <action service="setShipmentSettingsFromPrimaryOrder" mode="sync"/>
     </eca>
+    <!-- if estimatedShipDate, create work-effort -->
+    <eca service="createShipment" event="commit">
+        <condition field-name="estimatedShipDate" operator="is-not-empty"/>
+        <action service="checkAndCreateWorkEffort" mode="async"/>
+    </eca>
+    <eca service="createShipment" event="commit">
+        <condition field-name="estimatedArrivalDate" operator="is-not-empty"/>
+        <action service="checkAndCreateWorkEffort" mode="async"/>
+    </eca>
+    <eca service="createShipment" event="commit">
+        <condition field-name="statusId" operator="is-not-empty"/>
+        <action service="createShipmentStatus" mode="async"/>
+    </eca>
+
 
     <eca service="createShipmentReceipt" event="commit">
         <condition field-name="returnId" operator="is-not-empty"/>
diff --git a/applications/product/servicedef/services_shipment.xml b/applications/product/servicedef/services_shipment.xml
index 9084f4e..89bea13 100644
--- a/applications/product/servicedef/services_shipment.xml
+++ b/applications/product/servicedef/services_shipment.xml
@@ -163,13 +163,10 @@ under the License.
         </attribute>
         <override name="primaryReturnId" optional="false"/>
     </service>
-
-    <service name="createShipment" default-entity-name="Shipment" engine="groovy"
-            location="component://product/groovyScripts/shipment/shipment/ShipmentServices.groovy" invoke="createShipment" auth="true">
+    <service name="createShipment" default-entity-name="Shipment" engine="entity-auto" invoke="create" auth="true">
         <description>Create Shipment</description>
         <permission-service service-name="facilityGenericPermission" main-action="CREATE"/>
-        <auto-attributes include="pk" mode="OUT" optional="false"/>
-        <auto-attributes include="pk" mode="IN" optional="true"/>
+        <auto-attributes include="pk" mode="INOUT" optional="true"/>
         <auto-attributes include="nonpk" mode="IN" optional="true">
             <exclude field-name="createdDate"/>
             <exclude field-name="createdByUserLogin"/>
diff --git a/applications/workeffort/groovyScripts/workeffort/workeffort/WorkEffortServices.groovy b/applications/workeffort/groovyScripts/workeffort/workeffort/WorkEffortServices.groovy
new file mode 100644
index 0000000..fd0cba7
--- /dev/null
+++ b/applications/workeffort/groovyScripts/workeffort/workeffort/WorkEffortServices.groovy
@@ -0,0 +1,158 @@
+/*
+ * 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.entity.GenericValue
+import org.apache.ofbiz.service.ServiceUtil;
+
+def checkAndCreateWorkEffort() {
+    Map result = success()
+    /*
+     * if needed create some WorkEfforts and remember their IDs:
+     * estimatedShipDate: estimatedShipWorkEffId
+     * estimatedArrivalDate: estimatedArrivalWorkEffId
+     */
+    GenericValue lookedUpValue = from("Shipment").where(parameters).queryOne()
+    if (parameters.estimatedShipDate) {
+        Map shipWorkEffortMap = [workEffortName: "Shipment #${parameters.shipmentId} ${parameters.primaryOrderId} Ship",
+                                 currentStatusId: "CAL_TENTATIVE",
+                                 workEffortPurposeTypeId: "WEPT_WAREHOUSING",
+                                 estimatedStartDate: parameters.estimatedShipDate,
+                                 estimatedCompletionDate: parameters.estimatedShipDate,
+                                 facilityId: parameters.originFacilityId,
+                                 quickAssignPartyId: userLogin.partyId]
+        if (["OUTGOING_SHIPMENT", "SALES_SHIPMENT", "PURCHASE_RETURN"].contains(shipmentTypeId)) {
+            shipWorkEffortMap.workEffortTypeId = "SHIPMENT_OUTBOUND"
+        }
+        Map serviceResult = run service: "createWorkEffort", with: shipWorkEffortMap
+        if (!ServiceUtil.isSuccess(serviceResult)) return error(serviceResult.errorMessage)
+        lookedUpValue.estimatedShipWorkEffId = serviceResult.workEffortId
+        if (parameters.partyIdFrom) {
+            serviceResult = run service: "assignPartyToWorkEffort", with: [workEffortId: lookedUpValue.estimatedShipWorkEffId,
+                                                           partyId: parameters.partyIdFrom,
+                                                           roleTypeId: "CAL_ATTENDEE",
+                                                           statusId: "CAL_SENT"]
+            if (!ServiceUtil.isSuccess(serviceResult)) return error(serviceResult.errorMessage)
+        }
+    }
+    if (parameters.estimatedArrivalDate) {
+        Map arrivalWorkEffortMap = [workEffortName: "Shipment #${parameters.shipmentId} ${parameters.primaryOrderId} Arrival",
+                                    currentStatusId: "CAL_TENTATIVE",
+                                    workEffortPurposeTypeId: "WEPT_WAREHOUSING",
+                                    estimatedStartDate: parameters.estimatedArrivalDate,
+                                    estimatedCompletionDate: parameters.estimatedArrivalDate,
+                                    facilityId: parameters.destinationFacilityId,
+                                    quickAssignPartyId: userLogin.partyId]
+        if (["INCOMING_SHIPMENT", "PURCHASE_SHIPMENT", "SALES_RETURN"].contains(shipmentTypeId)) {
+            arrivalWorkEffortMap.workEffortTypeId = "SHIPMENT_INBOUND"
+        }
+        Map serviceResult = run service: "createWorkEffort", with: arrivalWorkEffortMap
+        if (!ServiceUtil.isSuccess(serviceResult)) return error(serviceResult.errorMessage)
+        lookedUpValue.estimatedArrivalWorkEffId = serviceResultAD.workEffortId
+        if (parameters.partyIdTo) {
+            serviceResult = run service: "assignPartyToWorkEffort", with: [workEffortId: lookedUpValue.estimatedArrivalWorkEffId,
+                                                           partyId: parameters.partyIdTo,
+                                                           roleTypeId: "CAL_ATTENDEE",
+                                                           statusId: "CAL_SENT"]
+            if (!ServiceUtil.isSuccess(serviceResult)) return error(serviceResult.errorMessage)
+        }
+    }
+    lookedUpValue.store()
+    return result
+}
+def checkAndUpdateWorkEffort() {
+    Map result = success()
+    GenericValue lookedUpValue = from("Shipment").where(parameters).queryOne()
+    // Check the pickup and delivery dates for changes and update the corresponding WorkEfforts
+    if ((parameters.estimatedShipDate && parameters.estimatedShipDate != lookedUpValue.estimatedShipDate)
+            || (parameters.originFacilityId && parameters.originFacilityId != lookedUpValue.originFacilityId)
+            || (parameters.statusId && parameters.statusId != lookedUpValue.statusId
+            && ["SHIPMENT_CANCELLED", "SHIPMENT_PACKED", "SHIPMENT_SHIPPED"].contains(parameters.statusId))) {
+        GenericValue estShipWe = from("WorkEffort").where(workEffortId: lookedUpValue.estimatedShipWorkEffId).queryOne()
+        if (estShipWe) {
+            estShipWe.estimatedStartDate = parameters.estimatedShipDate
+            estShipWe.estimatedCompletionDate = parameters.estimatedShipDate
+            estShipWe.facilityId = parameters.originFacilityId
+            if ((parameters.statusId) && (parameters.statusId != lookedUpValue.statusId)) {
+                if (parameters.statusId == "SHIPMENT_CANCELLED") {
+                    estShipWe.currentStatusId = "CAL_CANCELLED"
+                }
+                if (parameters.statusId == "SHIPMENT_PACKED") {
+                    estShipWe.currentStatusId = "CAL_CONFIRMED"
+                }
+                if (parameters.statusId == "SHIPMENT_SHIPPED") {
+                    estShipWe.currentStatusId = "CAL_COMPLETED"
+                }
+            }
+            Map estShipWeUpdMap = [:]
+            estShipWeUpdMap << estShipWe
+            Map serviceResult = run service: "updateWorkEffort", with: estShipWeUpdMap
+            if (!ServiceUtil.isSuccess(serviceResult)) return error(serviceResult.errorMessage)
+
+        }
+    }
+    if ((parameters.estimatedArrivalDate
+            && parameters.estimatedArrivalDate != lookedUpValue.estimatedArrivalDate)
+            || (parameters.destinationFacilityId
+            && parameters.destinationFacilityId != lookedUpValue.destinationFacilityId)) {
+        GenericValue estimatedArrivalWorkEffort = from("WorkEffort")
+                .where(workEffortId: lookedUpValue.estimatedArrivalWorkEffId)
+                .queryOne()
+        if (estimatedArrivalWorkEffort) {
+            estimatedArrivalWorkEffort.estimatedStartDate = parameters.estimatedArrivalDate
+            estimatedArrivalWorkEffort.estimatedCompletionDate = parameters.estimatedArrivalDate
+            estimatedArrivalWorkEffort.facilityId = parameters.destinationFacilityId
+            Map serviceResult = run service: "updateWorkEffort", with: estimatedArrivalWorkEffort
+            if (!ServiceUtil.isSuccess(serviceResult)) return error(serviceResult.errorMessage)
+        }
+    }
+    // if the partyIdTo or partyIdFrom has changed, add WEPAs
+    //TODO REFACTORING
+    if (parameters.partyIdFrom
+            && parameters.partyIdFrom != lookedUpValue.partyIdFrom
+            && lookedUpValue.estimatedShipWorkEffId) {
+        Map assignPartyToWorkEffortShip = [workEffortId: lookedUpValue.estimatedShipWorkEffId,
+                                           partyId: parameters.partyIdFrom]
+        List existingShipWepas = from("WorkEffortPartyAssignment")
+                .where(assignPartyToWorkEffortShip)
+                .filterByDate()
+                .queryList()
+        if (!existingShipWepas) {
+            assignPartyToWorkEffortShip.roleTypeId = "CAL_ATTENDEE"
+            assignPartyToWorkEffortShip.statusId = "CAL_SENT"
+            Map serviceResult = run service: "assignPartyToWorkEffort", with: assignPartyToWorkEffortShip
+            if (!ServiceUtil.isSuccess(serviceResult)) return error(serviceResult.errorMessage)
+        }
+    }
+    if (parameters.partyIdTo
+            && parameters.partyIdTo != lookedUpValue.partyIdTo
+            && lookedUpValue.estimatedArrivalWorkEffId) {
+        Map assignPartyToWorkEffortArrival = [workEffortId: lookedUpValue.estimatedArrivalWorkEffId,
+                                              partyId: parameters.partyIdTo]
+        List existingArrivalWepas = from("WorkEffortPartyAssignment")
+                .where(assignPartyToWorkEffortArrival)
+                .filterByDate()
+                .queryList()
+        if (!existingArrivalWepas) {
+            assignPartyToWorkEffortArrival.roleTypeId = "CAL_ATTENDEE"
+            assignPartyToWorkEffortArrival.statusId = "CAL_SENT"
+            serviceResult = run service: "assignPartyToWorkEffort", with: assignPartyToWorkEffortArrival
+            if (!ServiceUtil.isSuccess(serviceResult)) return error(serviceResult.errorMessage)
+        }
+    }
+    return result
+}
diff --git a/applications/workeffort/servicedef/services.xml b/applications/workeffort/servicedef/services.xml
index b53ef01..fb169e5 100644
--- a/applications/workeffort/servicedef/services.xml
+++ b/applications/workeffort/servicedef/services.xml
@@ -463,6 +463,18 @@ under the License.
         <attribute name="workEffortIterator" type="java.util.ListIterator" mode="IN" optional="true"/>
         <attribute name="workEfforts" type="java.util.List" mode="INOUT" optional="true"/>
     </service>
+    <service name="checkAndCreateWorkEffort" auth="true" engine="groovy" default-entity-name="Shipment"
+             location="component://workeffort/groovyScripts/workeffort/workeffort/WorkEffortServices.groovy" invoke="checkAndCreateWorkEffort">
+        <description>Check And Create WorkEffort after Shipment Create</description>
+        <auto-attributes include="pk" mode="IN" optional="false"/>
+        <auto-attributes include="nonpk" mode="IN" optional="true"/>
+    </service>
+    <service name="checkAndUpdateWorkEffort" auth="true" engine="groovy" default-entity-name="Shipment"
+             location="component://workeffort/groovyScripts/workeffort/workeffort/WorkEffortServices.groovy" invoke="checkAndUpdateWorkEffort">
+        <description>Check And Update WorkEffort after Shipment Update</description>
+        <auto-attributes include="pk" mode="IN" optional="false"/>
+        <auto-attributes include="nonpk" mode="IN" optional="true"/>
+    </service>
     <service name="getProductManufacturingSummaryByFacility" engine="java"
             location="org.apache.ofbiz.workeffort.workeffort.WorkEffortServices" invoke="getProductManufacturingSummaryByFacility">
         <description>
diff --git a/applications/workeffort/src/main/java/org/apache/ofbiz/workeffort/workeffort/WorkEffortServices.java b/applications/workeffort/src/main/java/org/apache/ofbiz/workeffort/workeffort/WorkEffortServices.java
index bb10cca..478c1bb 100644
--- a/applications/workeffort/src/main/java/org/apache/ofbiz/workeffort/workeffort/WorkEffortServices.java
+++ b/applications/workeffort/src/main/java/org/apache/ofbiz/workeffort/workeffort/WorkEffortServices.java
@@ -1107,4 +1107,4 @@ public class WorkEffortServices {
         result.put("workEfforts", resultList);
         return result;
     }
-}
+}
\ No newline at end of file

Reply | Threaded
Open this post in threaded view
|

[ofbiz-framework] 15/28: Fixed: paginateOrderList does not find orders on next page specific to FindOrders.ftl (OFBIZ-11356) Adding the missing showAll flag in the paginateOrder form because of which the orders were not shown while submitting the next button. Thanks Michael Brohl for reporting the issue and Ankit Joshi for providing the patch

jleroux@apache.org
In reply to this post by jleroux@apache.org
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 71b4abe7a6dd28f9b0029f9f08c14438b1c5d216
Author: Aditya Sharma <[hidden email]>
AuthorDate: Sat May 23 16:18:28 2020 +0530

    Fixed: paginateOrderList does not find orders on next page specific to FindOrders.ftl
    (OFBIZ-11356)
    Adding the missing showAll flag in the paginateOrder form because of which the orders were not shown while submitting the next button.
    Thanks Michael Brohl for reporting the issue and Ankit Joshi for providing the patch
---
 applications/order/template/order/FindOrders.ftl | 1 +
 1 file changed, 1 insertion(+)

diff --git a/applications/order/template/order/FindOrders.ftl b/applications/order/template/order/FindOrders.ftl
index 6eaff5b..d50e07c 100644
--- a/applications/order/template/order/FindOrders.ftl
+++ b/applications/order/template/order/FindOrders.ftl
@@ -507,6 +507,7 @@ document.lookuporder.orderId.focus();
       <input type="hidden" name="viewSize"/>
       <input type="hidden" name="viewIndex"/>
       <input type="hidden" name="hideFields"/>
+      <input type="hidden" name="showAll" value="Y"/>
       <#if paramIdList?? && paramIdList?has_content>
         <#list paramIdList as paramIds>
           <#assign paramId = paramIds.split("=")/>

Reply | Threaded
Open this post in threaded view
|

[ofbiz-framework] 16/28: Improved: All the service level error messages for missing required field for humanares component. (OFBIZ-8716) Thanks Jagpreet for reporting and Prasheel for providing the initial patch

jleroux@apache.org
In reply to this post by jleroux@apache.org
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 36b48372ea2d8687a387b7bf143f8e5572e96ac1
Author: Suraj Khurana <[hidden email]>
AuthorDate: Sat May 23 17:06:18 2020 +0530

    Improved: All the service level error messages for missing required field for humanares component.
    (OFBIZ-8716)
    Thanks Jagpreet for reporting and Prasheel for providing the initial patch
---
 .../humanres/config/HumanResErrorUiLabels.xml      | 29 +++++++-
 applications/humanres/servicedef/services.xml      | 78 ++++++++++++++++++----
 2 files changed, 93 insertions(+), 14 deletions(-)

diff --git a/applications/humanres/config/HumanResErrorUiLabels.xml b/applications/humanres/config/HumanResErrorUiLabels.xml
index 4eda749..f521936 100644
--- a/applications/humanres/config/HumanResErrorUiLabels.xml
+++ b/applications/humanres/config/HumanResErrorUiLabels.xml
@@ -21,7 +21,34 @@
 
 <resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/ofbiz-properties.xsd">
     <property key="HumanResRequiredFieldMissingTrainingClassTypeId">
-     <value xml:lang="de">benötigter Eintrag fehlt: Weiterbildungsklasse Typ ID.</value>
+        <value xml:lang="de">benötigter Eintrag fehlt: Weiterbildungsklasse Typ ID.</value>
+        <value xml:lang="en">Required Field Missing : Training Class Type Id.</value>
+    </property>
+    <property key="HRRequiredFieldMissingDescription">
+        <value xml:lang="en">Required Field Missing : Description.</value>
+    </property>
+    <property key="HRRequiredFieldMissingEmployeePartyId">
+        <value xml:lang="en">Required Field Missing : Employee Party Id.</value>
+    </property>
+    <property key="HRRequiredFieldMissingEmployeeRoleTypeId">
+        <value xml:lang="en">Required Field Missing : Employee Role Type Id.</value>
+    </property>
+    <property key="HRRequiredFieldMissingPartyId">
+        <value xml:lang="en">Required Field Missing : Party Id.</value>
+    </property>
+    <property key="HRRequiredFieldMissingPartyQualTypeId">
+        <value xml:lang="en">Required Field Missing : Party Qual Type Id.</value>
+    </property>
+    <property key="HRRequiredFieldMissingPeriodTypeId">
+        <value xml:lang="en">Required Field Missing : Period Type Id.</value>
+    </property>
+    <property key="HRRequiredFieldMissingPostalAddContactMechPurpTypeId">
+        <value xml:lang="en">Required Field Missing : Postal Address Contact Mech Purpose.</value>
+    </property>
+    <property key="HRRequiredFieldMissingPrefReviewID">
+        <value xml:lang="en">Required Field Missing : Pref Review Id.</value>
+    </property>
+    <property key="HRRequiredFieldMissingTrainingClassTypeId">
         <value xml:lang="en">Required Field Missing : Training Class Type Id.</value>
     </property>
 </resource>
\ No newline at end of file
diff --git a/applications/humanres/servicedef/services.xml b/applications/humanres/servicedef/services.xml
index d47bc17..e5340ad 100644
--- a/applications/humanres/servicedef/services.xml
+++ b/applications/humanres/servicedef/services.xml
@@ -28,8 +28,16 @@ under the License.
         <description>Create a Party Qualification entry</description>
         <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
         <auto-attributes mode="IN" include="nonpk" optional="true"/>
-        <attribute name="partyId" mode="IN" type="String"/>
-        <attribute name="partyQualTypeId" mode="IN" type="String"/>
+        <attribute name="partyId" mode="IN" type="String">
+            <type-validate>
+                <fail-property property="HRRequiredFieldMissingPartyId" resource="HumanResErrorUiLabels"/>
+            </type-validate>
+        </attribute>
+        <attribute name="partyQualTypeId" mode="IN" type="String">
+            <type-validate>
+                <fail-property property="HRRequiredFieldMissingPartyQualTypeId" resource="HumanResErrorUiLabels"/>
+            </type-validate>
+        </attribute>
         <attribute name="fromDate" mode="INOUT" type="Timestamp" optional="true"/>
     </service>
 
@@ -91,9 +99,21 @@ under the License.
         <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
         <auto-attributes mode="IN" include="nonpk" optional="true"/>
         <attribute mode="IN" type="String" name="perfReviewId" optional="true"/>
-        <attribute mode="OUT" type="String" name="perfReviewId" optional="false"/>
-        <attribute mode="INOUT" type="String" name="employeePartyId" optional="false"/>
-        <attribute mode="INOUT" type="String" name="employeeRoleTypeId" optional="false"/>
+        <attribute mode="OUT" type="String" name="perfReviewId" optional="false">
+            <type-validate>
+                <fail-property property="NoPrefReviewId" resource="HumanResErrorUiLabels"/>
+            </type-validate>
+        </attribute>
+        <attribute mode="INOUT" type="String" name="employeePartyId" optional="false">
+            <type-validate>
+                <fail-property property="HRRequiredFieldMissingEmployeePartyId" resource="HumanResErrorUiLabels"/>
+            </type-validate>
+        </attribute>
+        <attribute mode="INOUT" type="String" name="employeeRoleTypeId" optional="false">
+            <type-validate>
+                <fail-property property="HRRequiredFieldMissingEmployeeRoleTypeId" resource="HumanResErrorUiLabels"/>
+            </type-validate>
+        </attribute>
     </service>
 
     <service name="updatePerfReview" engine="entity-auto" default-entity-name="PerfReview" invoke="update" auth="true">
@@ -113,9 +133,21 @@ under the License.
         <description>Create Performance Review Item</description>
         <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
         <auto-attributes mode="IN" include="nonpk" optional="true"/>
-        <attribute mode="IN" type="String" name="employeePartyId" optional="false"/>
-        <attribute mode="IN" type="String" name="employeeRoleTypeId" optional="false"/>
-        <attribute mode="IN" type="String" name="perfReviewId" optional="false"/>
+        <attribute mode="IN" type="String" name="employeePartyId" optional="false">
+            <type-validate>
+                <fail-property property="HRRequiredFieldMissingEmployeePartyId" resource="HumanResErrorUiLabels"/>
+            </type-validate>
+        </attribute>
+        <attribute mode="IN" type="String" name="employeeRoleTypeId" optional="false">
+            <type-validate>
+                <fail-property property="HRRequiredFieldMissingEmployeeRoleTypeId" resource="HumanResErrorUiLabels"/>
+            </type-validate>
+        </attribute>
+        <attribute mode="IN" type="String" name="perfReviewId" optional="false">
+            <type-validate>
+                <fail-property property="HRRequiredFieldMissingPrefReviewID" resource="HumanResErrorUiLabels"/>
+            </type-validate>
+        </attribute>
         <attribute mode="OUT" type="String" name="perfReviewItemSeqId" optional="false"/>
     </service>
 
@@ -501,7 +533,11 @@ under the License.
         </auto-attributes>
         <attribute name="emailAddress" type="String" mode="IN" optional="true"/>
         <attribute name="fromDate" type="String" mode="IN" optional="true"/>
-        <attribute name="postalAddContactMechPurpTypeId" type="String" mode="IN" optional="false"/>
+        <attribute name="postalAddContactMechPurpTypeId" type="String" mode="IN" optional="false">
+            <type-validate>
+                <fail-property property="HRRequiredFieldMissingPostalAddContactMechPurpTypeId" resource="HumanResErrorUiLabels"/>
+            </type-validate>
+        </attribute>
         <attribute name="partyId" type="String" mode="OUT"/>
     </service>
 
@@ -575,7 +611,11 @@ under the License.
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
         <attribute name="rateAmount" type="BigDecimal" mode="IN" optional="true"/>
         <attribute name="rateCurrencyUomId" type="String" mode="IN" optional="true"/>
-        <attribute name="periodTypeId" type="String" mode="IN"/>
+        <attribute name="periodTypeId" type="String" mode="IN">
+            <type-validate>
+                <fail-property property="HRRequiredFieldMissingPeriodTypeId" resource="HumanResErrorUiLabels"/>
+            </type-validate>
+        </attribute>
         <override name="fromDate" optional="true"/>
     </service>
 
@@ -655,7 +695,11 @@ under the License.
         location="component://humanres/minilang/HumanResServices.xml" invoke="getCurrentPartyEmploymentData" auth="true">
         <description>Delete Valid LeaveType</description>
         <permission-service service-name="humanResManagerPermission" main-action="VIEW"/>
-        <attribute name="partyId" type="String" mode="IN"/>
+        <attribute name="partyId" type="String" mode="IN">
+            <type-validate>
+                <fail-property property="HRRequiredFieldMissingPartyId" resource="HumanResErrorUiLabels"/>
+            </type-validate>
+        </attribute>
         <attribute name="partyBenefitTypes" type="java.util.List" mode="OUT" optional="true"/>
         <attribute name="employment" type="org.apache.ofbiz.entity.GenericValue" mode="OUT" optional="true"/>
         <attribute name="emplPosition" type="org.apache.ofbiz.entity.GenericValue" mode="OUT" optional="true"/>
@@ -812,9 +856,17 @@ under the License.
     <service name="createTrainingTypes" engine="entity-auto" default-entity-name="TrainingClassType" invoke="create" auth="true">
         <description>Create a New Training type</description>
         <permission-service service-name="humanResManagerPermission" main-action="CREATE"/>
-        <attribute name="trainingClassTypeId" mode="IN" type="String" optional="false"/>
+        <attribute name="trainingClassTypeId" mode="IN" type="String" optional="false">
+            <type-validate>
+                <fail-property property="HRRequiredFieldMissingTrainingClassTypeId" resource="HumanResErrorUiLabels"/>
+            </type-validate>
+        </attribute>
         <attribute name="parentTypeId" mode="IN" type="String" optional="true"/>
-        <attribute name="description" mode="IN" type="String" optional="false"/>
+        <attribute name="description" mode="IN" type="String" optional="false">
+            <type-validate>
+                <fail-property property="HRRequiredFieldMissingDescription" resource="HumanResErrorUiLabels"/>
+            </type-validate>
+        </attribute>
     </service>
 
     <service name="updateTrainingTypes" engine="entity-auto" default-entity-name="TrainingClassType" invoke="update" auth="true">

Reply | Threaded
Open this post in threaded view
|

[ofbiz-framework] 17/28: Improved: Converted updatePayment service from mini-lang to groovy. (OFBIZ-11480) Thanks Devanshu Vyas for reporting and Priya Sharma for the patch.

jleroux@apache.org
In reply to this post by jleroux@apache.org
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 835de7089a4a23925f5346bf58eaf9450e1173ef
Author: Suraj Khurana <[hidden email]>
AuthorDate: Sat May 23 17:48:54 2020 +0530

    Improved: Converted updatePayment service from mini-lang to groovy.
    (OFBIZ-11480)
    Thanks Devanshu Vyas for reporting and Priya Sharma for the patch.
---
 .../groovyScripts/payment/PaymentServices.groovy   | 50 ++++++++++++++++
 .../minilang/payment/PaymentServices.xml           | 68 ----------------------
 .../accounting/servicedef/services_payment.xml     |  4 +-
 3 files changed, 52 insertions(+), 70 deletions(-)

diff --git a/applications/accounting/groovyScripts/payment/PaymentServices.groovy b/applications/accounting/groovyScripts/payment/PaymentServices.groovy
index 5e2749b..4032017 100644
--- a/applications/accounting/groovyScripts/payment/PaymentServices.groovy
+++ b/applications/accounting/groovyScripts/payment/PaymentServices.groovy
@@ -63,6 +63,55 @@ def createPayment() {
     result.paymentId = paymentId
     return result
 }
+def updatePayment() {
+    Map lookupPayment = delegator.makeValue("Payment")
+    lookupPayment.setPKFields(parameters)
+    GenericValue payment = from("Payment").where("paymentId", lookupPayment.paymentId).queryOne()
+    if (!security.hasEntityPermission("ACCOUNTING", "_UPDATE", parameters.userLogin) &&
+        (!security.hasEntityPermission("PAY_INFO", "_UPDATE", parameters.userLogin) &&
+        userLogin.partyId != payment.partyIdFrom && userLogin.partyId != payment.partyIdTo)) {
+        return error(UtilProperties.getResourceBundleMap("AccountingUiLabels", locale)?.AccountingUpdatePaymentPermissionError)
+    }
+    if ("PMNT_NOT_PAID" != payment.statusId) {
+        // check if only status change
+        GenericValue newPayment = delegator.makeValue("Payment")
+        GenericValue oldPayment = delegator.makeValue("Payment")
+        newPayment.setNonPKFields(payment)
+        oldPayment.setNonPKFields(payment)
+        newPayment.setNonPKFields(parameters)
+
+        // fields :- comments, paymentRefNum, finAccountTransId, statusIhStatus does not allow an update of the information are editable for Payment
+        oldPayment.statusId = newPayment.statusId
+        oldPayment.comments = newPayment.comments
+        oldPayment.paymentRefNum = newPayment.paymentRefNum ?: null
+        oldPayment.finAccountTransId = newPayment.finAccountTransId ?: null
+        if (!oldPayment.equals(newPayment)) {
+            return error(UtilProperties.getResourceBundleMap("AccountingUiLabels", locale)?.AccountingPSUpdateNotAllowedBecauseOfStatus)
+        }
+    }
+    statusIdSave = payment.statusId  // do not allow status change here
+    payment.setNonPKFields(parameters)
+    payment.statusId = statusIdSave  // do not allow status change here
+    payment.effectiveDate = payment.effectiveDate ?: UtilDateTime.nowTimestamp()
+    if (payment.paymentMethodId) {
+        paymentMethod = from("PaymentMethod").where("paymentMethodId", payment.paymentMethodId).queryOne()
+        if (payment.paymentMethodTypeId != paymentMethod.paymentMethodTypeId) {
+            Debug.logInfo("Replacing passed payment method type [" + parameters.paymentMethodTypeId + "] with payment method type [" +
+                paymentMethod.paymentMethodTypeId + "] for payment method [" + parameters.paymentMethodId +"]", MODULE)
+        }
+        payment.paymentMethodTypeId = paymentMethod.paymentMethodTypeId
+    }
+    payment.store()
+    if (parameters.statusId) {
+        if (parameters.statusId != statusIdSave) {
+            Map param = dispatcher.getDispatchContext().makeValidContext('setPaymentStatus', ModelService.IN_PARAM, parameters)
+            param.paymentId = payment.paymentId
+            serviceResult = run service: 'setPaymentStatus', with: param
+            if (!ServiceUtil.isSuccess(serviceResult)) return error(serviceResult)
+        }
+    }
+    return success()
+}
 def createPaymentAndApplicationForParty() {
     paymentAmount = 0
     List invoiceIds = []
@@ -206,3 +255,4 @@ def massChangePaymentStatus() {
     return serviceResult
 }
 
+
diff --git a/applications/accounting/minilang/payment/PaymentServices.xml b/applications/accounting/minilang/payment/PaymentServices.xml
index 9ce7e3b..3d8b2cc 100644
--- a/applications/accounting/minilang/payment/PaymentServices.xml
+++ b/applications/accounting/minilang/payment/PaymentServices.xml
@@ -20,74 +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="updatePayment" short-description="Update a Payment">
-        <make-value entity-name="Payment" value-field="lookupPayment"/>
-        <set-pk-fields value-field="lookupPayment" map="parameters"/>
-
-        <find-by-primary-key entity-name="Payment" map="lookupPayment" value-field="payment"/>
-        <if>
-            <condition>
-                <and>
-                    <not><if-has-permission permission="ACCOUNTING" action="_UPDATE"/></not>
-                    <not><if-has-permission permission="PAY_INFO" action="_UPDATE"/></not>
-                    <not><if-compare-field field="userLogin.partyId" to-field="payment.partyIdFrom" operator="equals"/></not>
-                    <not><if-compare-field field="userLogin.partyId" to-field="payment.partyIdTo" operator="equals"/></not>
-                </and>
-            </condition>
-            <then>
-                <add-error>
-                    <fail-property resource="AccountingUiLabels" property="AccountingUpdatePaymentPermissionError"/>
-                </add-error>
-            </then>
-        </if>
-        <check-errors/>
-
-        <if-compare field="payment.statusId" value="PMNT_NOT_PAID" operator="not-equals">
-            <!-- check if only status change -->
-            <make-value entity-name="Payment" value-field="newPayment"/>
-            <make-value entity-name="Payment" value-field="oldPayment"/>
-            <set-nonpk-fields map="payment" value-field="newPayment"/>
-            <set-nonpk-fields map="payment" value-field="oldPayment"/>
-            <set-nonpk-fields map="parameters" value-field="newPayment"/>
-            <!-- fields :- comments, paymentRefNum, finAccountTransId, statusId can editable for Payment -->
-            <set field="oldPayment.statusId" from-field="newPayment.statusId"/>
-            <set field="oldPayment.comments" from-field="newPayment.comments"/>
-            <set field="oldPayment.paymentRefNum" from-field="newPayment.paymentRefNum" set-if-null="true"/>
-            <set field="oldPayment.finAccountTransId" from-field="newPayment.finAccountTransId" set-if-null="true"/>
-            <if-compare-field field="oldPayment" to-field="newPayment" operator="not-equals">
-                <add-error>
-                    <fail-property resource="AccountingUiLabels" property="AccountingPSUpdateNotAllowedBecauseOfStatus"/>
-                </add-error>
-            </if-compare-field>
-        </if-compare>
-        <check-errors/>
-
-        <set field="statusIdSave" from-field="payment.statusId"/><!-- do not allow status change here -->
-        <set-nonpk-fields map="parameters" value-field="payment"/>
-        <set field="payment.statusId" from-field="statusIdSave"/><!-- do not allow status change here -->
-
-        <if-empty field="payment.effectiveDate">
-            <now-timestamp field="payment.effectiveDate"/>
-        </if-empty>
-        <if-not-empty field="payment.paymentMethodId">
-            <entity-one entity-name="PaymentMethod" value-field="paymentMethod">
-                <field-map field-name="paymentMethodId" from-field="payment.paymentMethodId"/>
-            </entity-one>
-            <if-compare-field field="payment.paymentMethodTypeId" to-field="paymentMethod.paymentMethodTypeId" operator="not-equals">
-                <log level="info" message="Replacing passed payment method type [${payment.paymentMethodTypeId}] with payment method type [${paymentMethod.paymentMethodTypeId}] for payment method [${payment.paymentMethodId}]"/>
-            </if-compare-field>
-            <set field="payment.paymentMethodTypeId" from-field="paymentMethod.paymentMethodTypeId"/>
-        </if-not-empty>
-        <store-value value-field="payment"/>
-
-        <if-not-empty field="parameters.statusId">
-            <if-compare-field field="parameters.statusId" to-field="statusIdSave" operator="not-equals">
-                <set-service-fields service-name="setPaymentStatus" map="parameters" to-map="param"/>
-                <call-service service-name="setPaymentStatus" in-map-name="param"/>
-                <check-errors/>
-            </if-compare-field>
-        </if-not-empty>
-    </simple-method>
     <simple-method method-name="createPaymentApplication" short-description="Create a Payment Application">
         <if-empty field="parameters.invoiceId">
             <if-empty field="parameters.billingAccountId">
diff --git a/applications/accounting/servicedef/services_payment.xml b/applications/accounting/servicedef/services_payment.xml
index 00099dd..0207643 100644
--- a/applications/accounting/servicedef/services_payment.xml
+++ b/applications/accounting/servicedef/services_payment.xml
@@ -37,8 +37,8 @@ under the License.
         <override name="amount" optional="false"/>
     </service>
 
-    <service name="updatePayment" engine="simple" default-entity-name="Payment"
-        location="component://accounting/minilang/payment/PaymentServices.xml" invoke="updatePayment" auth="true">
+    <service name="updatePayment" engine="groovy" default-entity-name="Payment"
+        location="component://accounting/groovyScripts/payment/PaymentServices.groovy" invoke="updatePayment" auth="true">
         <description>Update a Payment</description>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>

Reply | Threaded
Open this post in threaded view
|

[ofbiz-framework] 18/28: Fixed: Requesthandler exception is showing after clicking cancel/done button on editPerson screen (OFBIZ-10890) Set the value of missing parameter. Thanks Minal Phalak for reporting and providing the patch

jleroux@apache.org
In reply to this post by jleroux@apache.org
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 335b3462c9406cf17584c8010ca808c53196dc4f
Author: Aditya Sharma <[hidden email]>
AuthorDate: Sat May 23 17:32:16 2020 +0530

    Fixed: Requesthandler exception is showing after clicking cancel/done button on editPerson screen
    (OFBIZ-10890)
    Set the value of missing parameter.
    Thanks Minal Phalak for reporting and providing the patch
---
 applications/party/widget/partymgr/PartyScreens.xml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/applications/party/widget/partymgr/PartyScreens.xml b/applications/party/widget/partymgr/PartyScreens.xml
index 0e65511..460522f 100644
--- a/applications/party/widget/partymgr/PartyScreens.xml
+++ b/applications/party/widget/partymgr/PartyScreens.xml
@@ -75,6 +75,7 @@ under the License.
                 <set field="tabButtonItem" value="viewprofile"/>
                 <set field="labelTitleProperty" value="PartyTaxAuthInfos"/>
                 <set field="partyId" from-field="parameters.partyId"/>
+                <set field="DONE_PAGE" from-field="parameters.DONE_PAGE" default-value="viewprofile"/>
                 <set field="layoutSettings.javaScripts[]" value="/partymgr/static/PartyProfileContent.js" global="true"/>
                 <script location="component://party/groovyScripts/party/ViewProfile.groovy"/>
             </actions>

Reply | Threaded
Open this post in threaded view
|

[ofbiz-framework] 19/28: Fixed: RuntimeException in getPartyNameForDate service for partyNameHistory.gender field(OFBIZ-11736)

jleroux@apache.org
In reply to this post by jleroux@apache.org
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 c759ccd50ae1fbacafc2d517b004f503e650f035
Author: Pawan Verma <[hidden email]>
AuthorDate: Sat May 23 23:35:39 2020 +0530

    Fixed: RuntimeException in getPartyNameForDate service for partyNameHistory.gender field(OFBIZ-11736)
   
    The reason for this issue is code is trying to get the gender of person from partyNameHistory record and gender is not a field in partyNameHistory entity. During conversion we minimized duplicate code which caused that issue.
   
    I've added a check to avoid checking gender in partyNameHistory record.
---
 applications/party/groovyScripts/party/PartyServices.groovy | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/applications/party/groovyScripts/party/PartyServices.groovy b/applications/party/groovyScripts/party/PartyServices.groovy
index 872ed75..60c438f 100644
--- a/applications/party/groovyScripts/party/PartyServices.groovy
+++ b/applications/party/groovyScripts/party/PartyServices.groovy
@@ -104,7 +104,7 @@ def getPartyNameForDate() {
         if (person.middleName) resultMap.middleName = person.middleName
         if (person.personalTitle) resultMap.personalTitle = person.personalTitle
         if (person.suffix) resultMap.suffix = person.suffix
-        if (person.gender) resultMap.gender = person.gender
+        if (!partyNameHistoryCurrent && person.gender) resultMap.gender = person.gender
 
         resultMap.fullName = PartyHelper.getPartyName(person, parameters.lastNameFirst == "Y")
     } else if (partyGroup) {

12