Author: nmalin
Date: Sat Jul 22 10:26:15 2017
New Revision: 1802668

URL: http://svn.apache.org/viewvc?rev=1802668&view=rev
Log:
Fixed: For service getRateAmount don't use parameters map to propage variable 
to ensure the isolation,
Thans Scott for this remark

Modified:
    
ofbiz/ofbiz-framework/trunk/applications/accounting/groovyScripts/rate/RateServices.groovy

Modified: 
ofbiz/ofbiz-framework/trunk/applications/accounting/groovyScripts/rate/RateServices.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/accounting/groovyScripts/rate/RateServices.groovy?rev=1802668&r1=1802667&r2=1802668&view=diff
==============================================================================
--- 
ofbiz/ofbiz-framework/trunk/applications/accounting/groovyScripts/rate/RateServices.groovy
 (original)
+++ 
ofbiz/ofbiz-framework/trunk/applications/accounting/groovyScripts/rate/RateServices.groovy
 Sat Jul 22 10:26:15 2017
@@ -147,9 +147,6 @@ def getRateAmount() {
     For a easier debugging time, there is a log triggered when no records are 
found for the input. This log
     shows up when there are rateAmounts corresponding to the input parameters 
without the rateCurrencyUomId and
     the periodTypeId.*/
-    if (!parameters.rateCurrencyUomId) {
-        parameters.rateCurrencyUomId = 
UtilProperties.getPropertyValue('general.properties', 
'currency.uom.id.default', 'USD')
-    }
     String serviceName = null;
     if (parameters.workEffortId && parameters.workEffortId != '_NA_') {
         // workeffort level
@@ -165,29 +162,33 @@ def getRateAmount() {
         serviceName = 'getRatesAmountsFromEmplPositionTypeId'
     }
     if (serviceName) {
-        logError(parameters.toString() + " " + serviceName.toString())
-        Map result = run service: serviceName, with: parameters
-        parameters.ratesList = result.ratesList
-        logError(parameters.ratesList.toString())
-        result = run service: 'filterRateAmountList', with: parameters
-        parameters.ratesList = result.filteredRatesList
+        Map serviceContextMap = 
dispatcher.getDispatchContext().makeValidContext(serviceName, "IN", parameters)
+        if (!parameters.rateCurrencyUomId) {
+            serviceContextMap.rateCurrencyUomId = 
UtilProperties.getPropertyValue('general.properties', 
'currency.uom.id.default', 'USD')
+        }
+        Map result = run service: serviceName, with: serviceContextMap
+        serviceContextMap.ratesList = result.ratesList
+        result = run service: 'filterRateAmountList', with: serviceContextMap
+        ratesList = result.filteredRatesList
     }
 
-    if (!parameters.ratesList) {
-        parameters.ratesList = from('RateAmount').where([rateTypeId: 
parameters.rateTypeId]).queryList();
-        Map result = run service: 'filterRateAmountList', with: parameters
-        parameters.ratesList = 
EntityUtil.filterByDate(result.filteredRatesList)
+    if (!ratesList) {
+        ratesList = from('RateAmount').where([rateTypeId: 
parameters.rateTypeId]).queryList();
+        Map serviceContextMap = 
dispatcher.getDispatchContext().makeValidContext("filteredRatesList", "IN", 
parameters)
+        serviceContextMap.ratesList = ratesList
+        Map result = run service: 'filterRateAmountList', with: 
serviceContextMap
+        ratesList = EntityUtil.filterByDate(result.filteredRatesList)
     }
 
-    if (!parameters.ratesList) {
-        rateType = from('RateAmount').where([rateTypeId: 
parameters.rateTypeId]).queryOne()
+    if (!ratesList) {
+        rateType = from('RateAmount').where(parameters).queryOne()
         logError('A valid rate amount could not be found for rateType: ' + 
rateType.description)
     }
 
     // We narrowed as much as we could the result, now returning the first 
record of the list
     Map result = success()
-    if (parameters.ratesList) {
-        rateAmount = parameters.ratesList[0]
+    if (ratesList) {
+        rateAmount = ratesList[0]
         if (! rateAmount.rateAmount) rateAmount.rateAmount = BigDecimal.ZERO
         result.rateAmount = rateAmount.rateAmount
         result.periodTypeId = rateAmount.periodTypeId
@@ -256,10 +257,11 @@ def filterRateAmountList() {
         filterMap.rateTypeId = parameters.rateTypeId
     }
     List tempRatesFilteredList = EntityUtil.filterByAnd(parameters.ratesList, 
filterMap)
+    List ratesList = []
     if (tempRatesFilteredList) {
-        parameters.ratesList = tempRatesFilteredList
+        ratesList = tempRatesFilteredList
     }
     Map result = success()
-    result.filteredRatesList = parameters.ratesList
+    result.filteredRatesList = ratesList
     return result
 }
\ No newline at end of file


Reply via email to