You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ha...@apache.org on 2009/04/25 05:47:10 UTC

svn commit: r768465 - in /ofbiz/branches/release09.04: applications/order/script/org/ofbiz/order/request/ applications/order/servicedef/ framework/common/script/org/ofbiz/common/email/ framework/service/src/org/ofbiz/service/eca/

Author: hansbak
Date: Sat Apr 25 03:47:10 2009
New Revision: 768465

URL: http://svn.apache.org/viewvc?rev=768465&view=rev
Log:
Applied fix from trunk for revision: 768245

Modified:
    ofbiz/branches/release09.04/applications/order/script/org/ofbiz/order/request/CustRequestServices.xml
    ofbiz/branches/release09.04/applications/order/servicedef/secas.xml
    ofbiz/branches/release09.04/applications/order/servicedef/services_request.xml
    ofbiz/branches/release09.04/framework/common/script/org/ofbiz/common/email/EmailServices.xml
    ofbiz/branches/release09.04/framework/service/src/org/ofbiz/service/eca/ServiceEcaSetField.java

Modified: ofbiz/branches/release09.04/applications/order/script/org/ofbiz/order/request/CustRequestServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/release09.04/applications/order/script/org/ofbiz/order/request/CustRequestServices.xml?rev=768465&r1=768464&r2=768465&view=diff
==============================================================================
--- ofbiz/branches/release09.04/applications/order/script/org/ofbiz/order/request/CustRequestServices.xml (original)
+++ ofbiz/branches/release09.04/applications/order/script/org/ofbiz/order/request/CustRequestServices.xml Sat Apr 25 03:47:10 2009
@@ -62,9 +62,8 @@
             <set field="newEntity.custRequestDate" from-field="nowTimestamp"/>
         </if-empty>
 
-        <if-empty field="parameters.statusId">
-            <set value="CRQ_SUBMITTED" field="newEntity.statusId"/>
-        </if-empty>
+        <!-- always start with submitted -->
+        <set value="CRQ_SUBMITTED" field="newEntity.statusId"/>
 
         <if-not-empty field="parameters.custRequestId">
             <set field="newEntity.custRequestId" from-field="parameters.custRequestId"/>
@@ -77,12 +76,10 @@
         <field-to-result field="newEntity.custRequestId" result-name="custRequestId"/>
 
         <!-- set status fields and history -->
-        <if-empty field="parameters.statusId">
-            <set field="parameters.statusId" value="CRQ_SUBMITTED"/>
-        </if-empty>
         <set field="parameters.custRequestId" from-field="newEntity.custRequestId"/>
         <set-service-fields service-name="setCustRequestStatus" map="parameters" to-map="setStat"/>
         <call-service service-name="setCustRequestStatus" in-map-name="setStat"/>
+        
 
         <!-- create also the item if key fields are provided -->
         <if>
@@ -363,8 +360,9 @@
 
     <simple-method method-name="setCustRequestStatus" short-description="change the customer request Status">
         <entity-one entity-name="CustRequest" value-field="custRequest"/>
-        <if-not-empty field="custRequest.statusId">
+        <if-not-empty field="custRequest">
             <field-to-result field="custRequest.statusId" result-name="oldStatusId"/>
+            <field-to-result field="custRequest.custRequestId"  result-name="custRequestId"/>
             <if-compare-field field="custRequest.statusId" to-field="parameters.statusId" operator="not-equals">
                 <entity-one entity-name="StatusValidChange" value-field="statusChange">
                     <field-map field-name="statusId" from-field="custRequest.statusId"/>
@@ -381,7 +379,6 @@
         <set field="custRequest.statusId" from-field="parameters.statusId"/>
         <store-value value-field="custRequest"/>
         <call-simple-method method-name="createCustRequestStatus"/>
-        <field-to-result field="custRequest.fromPartyId" result-name="fromPartyId"/><!-- for notification -->
     </simple-method>
 
     <simple-method method-name="createCustRequestFromCommEvent" short-description="Create a Customer request from a commEvent(email)">

Modified: ofbiz/branches/release09.04/applications/order/servicedef/secas.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/release09.04/applications/order/servicedef/secas.xml?rev=768465&r1=768464&r2=768465&view=diff
==============================================================================
--- ofbiz/branches/release09.04/applications/order/servicedef/secas.xml (original)
+++ ofbiz/branches/release09.04/applications/order/servicedef/secas.xml Sat Apr 25 03:47:10 2009
@@ -326,14 +326,14 @@
     <eca service="setCustRequestStatus" event="commit">
         <condition field-name="oldStatusId" operator="not-equals" value="CRQ_ACCEPTED"/>
         <condition field-name="statusId" operator="equals" value="CRQ_ACCEPTED"/>
-        <set field-name="partyIdTo" value="${fromPartyId}"/>
+        <set field-name="bodyParameters.custRequestId" env-name="custRequestId"/>
         <set field-name="emailTemplateSettingId" value="CUST_REQ_ACCEPTED"/>
         <action service="sendMailFromTemplateSetting" mode="sync"/>
     </eca>
     <eca service="setCustRequestStatus" event="commit">
         <condition field-name="oldStatusId" operator="not-equals" value="CRQ_COMPLETED"/>
         <condition field-name="statusId" operator="equals" value="CRQ_COMPLETED"/>
-        <set field-name="partyIdTo" value="${fromPartyId}"/>
+        <set field-name="bodyParameters.custRequestId" env-name="custRequestId"/>
         <set field-name="emailTemplateSettingId" value="CUST_REQ_COMPLETED"/>
         <action service="sendMailFromTemplateSetting" mode="sync"/>
     </eca>

Modified: ofbiz/branches/release09.04/applications/order/servicedef/services_request.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/release09.04/applications/order/servicedef/services_request.xml?rev=768465&r1=768464&r2=768465&view=diff
==============================================================================
--- ofbiz/branches/release09.04/applications/order/servicedef/services_request.xml (original)
+++ ofbiz/branches/release09.04/applications/order/servicedef/services_request.xml Sat Apr 25 03:47:10 2009
@@ -154,10 +154,9 @@
     <service name="setCustRequestStatus" engine="simple"
             location="component://order/script/org/ofbiz/order/request/CustRequestServices.xml" invoke="setCustRequestStatus" auth="true">
         <description>Set the Customer Request  Status</description>
-        <attribute name="custRequestId" type="String" mode="IN" optional="false"/>
+        <attribute name="custRequestId" type="String" mode="INOUT" optional="false"/>
         <attribute name="statusId" type="String" mode="IN" optional="false"/>
         <attribute name="oldStatusId" type="String" mode="OUT" optional="true"/>
-        <attribute name="fromPartyId" type="String" mode="OUT"/><!-- for notification -->
     </service>
     <service name="createCustRequestFromCommEvent" engine="simple" default-entity-name="CommunicationEvent"
             location="component://order/script/org/ofbiz/order/request/CustRequestServices.xml" invoke="createCustRequestFromCommEvent" auth="true">

Modified: ofbiz/branches/release09.04/framework/common/script/org/ofbiz/common/email/EmailServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/release09.04/framework/common/script/org/ofbiz/common/email/EmailServices.xml?rev=768465&r1=768464&r2=768465&view=diff
==============================================================================
--- ofbiz/branches/release09.04/framework/common/script/org/ofbiz/common/email/EmailServices.xml (original)
+++ ofbiz/branches/release09.04/framework/common/script/org/ofbiz/common/email/EmailServices.xml Sat Apr 25 03:47:10 2009
@@ -22,9 +22,11 @@
         xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd">
     <simple-method method-name="sendMailFromTemplateSetting" short-description="Send Mail from Email Template Setting">
 
-        <if-not-empty field="parameters.partyId">
+        <!-- if partyIdTo provided but no emailAddress, get it from the partyContactMech -->
+        <if-not-empty field="parameters.partyIdTo">
             <if-empty field="parameters.sendTo">
                 <set-service-fields service-name="getPartyEmail" map="parameters" to-map="getEmail"/>
+                <set field="getMail.partyId" from-field="parameters.partyIdTo"/>
                 <call-service service-name="getPartyEmail" in-map-name="getEmail">
                     <result-to-field result-name="emailAddress" field="parameters.sendTo"/>
                 </call-service>

Modified: ofbiz/branches/release09.04/framework/service/src/org/ofbiz/service/eca/ServiceEcaSetField.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release09.04/framework/service/src/org/ofbiz/service/eca/ServiceEcaSetField.java?rev=768465&r1=768464&r2=768465&view=diff
==============================================================================
--- ofbiz/branches/release09.04/framework/service/src/org/ofbiz/service/eca/ServiceEcaSetField.java (original)
+++ ofbiz/branches/release09.04/framework/service/src/org/ofbiz/service/eca/ServiceEcaSetField.java Sat Apr 25 03:47:10 2009
@@ -26,6 +26,7 @@
 import org.ofbiz.entity.model.ModelUtil;
 
 import java.util.Map;
+import javolution.util.FastMap;
 
 /**
  * ServiceEcaSetField
@@ -59,12 +60,35 @@
                     Debug.log("Expanded String: " + s, module);
                 }
             }
+            // TODO: rewrite using the ContextAccessor.java see hack below to be able to use maps for email notifications
+            // check if target is a map
+            String mapName = null;
+    		Map<String, Object> map = null;
+            if (UtilValidate.isNotEmpty(fieldName) && fieldName.indexOf('.') != -1) {
+        		mapName = fieldName.substring(0, fieldName.indexOf('.'));
+        		fieldName = fieldName.substring(fieldName.indexOf('.') +1);
+        		if (context.containsKey(mapName)) {
+        			map = (Map<String, Object>) context.get(mapName);
+        		} else {
+        			map = FastMap.newInstance();
+        		}
+        	}
 
             // process the context changes
+            String newValue = null;
             if (UtilValidate.isNotEmpty(value)) {
-                context.put(fieldName, this.format(value, context));
+                newValue = (String) this.format(value, context);
             } else if (UtilValidate.isNotEmpty(envName) && context.get(envName) != null) {
-                context.put(fieldName, this.format((String) context.get(envName), context));
+                newValue = (String) this.format((String) context.get(envName), context);
+            }
+            
+            if (newValue != null) {
+            	if (map != null) {
+            		map.put(fieldName, newValue);
+            		context.put(mapName, map);
+            	} else {
+            		context.put(fieldName, newValue);
+            	}
             }
         }
     }