svn commit: r678342 - in /ofbiz/trunk/applications/party: script/org/ofbiz/party/communication/CommunicationEventServices.xml servicedef/services.xml webapp/partymgr/communication/CommForms.xml webapp/partymgr/communication/CommMenus.xml

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r678342 - in /ofbiz/trunk/applications/party: script/org/ofbiz/party/communication/CommunicationEventServices.xml servicedef/services.xml webapp/partymgr/communication/CommForms.xml webapp/partymgr/communication/CommMenus.xml

hansbak-2
Author: hansbak
Date: Sun Jul 20 21:22:19 2008
New Revision: 678342

URL: http://svn.apache.org/viewvc?rev=678342&view=rev
Log:
added a communication set status service, some cleanups and usage of the roles in comunication selections

Modified:
    ofbiz/trunk/applications/party/script/org/ofbiz/party/communication/CommunicationEventServices.xml
    ofbiz/trunk/applications/party/servicedef/services.xml
    ofbiz/trunk/applications/party/webapp/partymgr/communication/CommForms.xml
    ofbiz/trunk/applications/party/webapp/partymgr/communication/CommMenus.xml

Modified: ofbiz/trunk/applications/party/script/org/ofbiz/party/communication/CommunicationEventServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/script/org/ofbiz/party/communication/CommunicationEventServices.xml?rev=678342&r1=678341&r2=678342&view=diff
==============================================================================
--- ofbiz/trunk/applications/party/script/org/ofbiz/party/communication/CommunicationEventServices.xml (original)
+++ ofbiz/trunk/applications/party/script/org/ofbiz/party/communication/CommunicationEventServices.xml Sun Jul 20 21:22:19 2008
@@ -21,6 +21,13 @@
 <simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd">
     <simple-method method-name="createCommunicationEvent" short-description="Create a CommunicationEvent">
+
+        <!-- change status of related comevent before creating new comevent so it shown in proper order on the list -->
+        <if-not-empty field="parameters.parentCommEventId">
+            <set field="newStat.communicationEventId" from-field="parameters.parentCommEventId"/>
+            <set field="newStat.statusId" value="COM_COMPLETE"/>
+            <call-service service-name="setCommunicationEventStatus" in-map-name="newStat"/>
+        </if-not-empty>
         
         <if-empty field="parameters.statusId">
             <set value="COM_ENTERED" field="parameters.statusId"/>    
@@ -37,7 +44,7 @@
         </if-empty>
         <field-to-result field-name="newEntity.communicationEventId" result-name="communicationEventId"/>
         
-        <!-- if only contactmechid and no partyTo is provided for creation email address create it -->
+        <!-- if only contactmechid and no partyTo is provided for creation email address find the related party it -->
         <if-empty field="parameters.partyIdTo">
             <if-not-empty field="parameters.contactMechIdTo">
                 <entity-and entity-name="PartyAndContactMech" list-name="partyContactMechs" filter-by-date="true">
@@ -65,11 +72,22 @@
             <set from-field="newEntity.communicationEventId" field="eventOrder.communicationEventId"/>
             <create-value value-name="eventOrder"/>
         </if-not-empty>
+        <if-not-empty field="parameters.custReqId">
+            <make-value value-name="eventRequest" entity-name="CustRequestCommEvent"/>
+            <set from-field="parameters.custReqId" field="eventRequest.custReqId"/>
+            <set from-field="newEntity.communicationEventId" field="eventRequest.communicationEventId"/>
+            <create-value value-name="eventRequest"/>
+        </if-not-empty>
+        
     </simple-method>
+
     <simple-method method-name="updateCommunicationEvent" short-description="Update a CommunicationEvent">
-        
         <entity-one entity-name="CommunicationEvent" value-name="event"/>
+        <set field="oldStatusId" from-field="event.statusId"/>
         <set-nonpk-fields map-name="parameters" value-name="event"/>
+        <if-compare-field operator="not-equals" field="event.statusId" to-field="oldStatusId">
+            <call-simple-method  method-name="setCommunicationEventStatus"/>        
+        </if-compare-field>
         <store-value value-name="event"/>
     </simple-method>
     <simple-method method-name="deleteCommunicationEvent" short-description="Delete a CommunicationEvent">
@@ -191,7 +209,6 @@
 
     <simple-method method-name="sendEmailDated"
         short-description="Checks for email communication events with the status COM_IN_PROGRESS and a startdate which is expired, then send the email">
-        <transaction-begin/>
         <now-timestamp-to-env env-name="nowDate" />
         <entity-condition entity-name="CommunicationEvent" list-name="communicationEvents">
             <condition-list combine="and">
@@ -206,12 +223,9 @@
                 </condition-list>
             </condition-list>
         </entity-condition>
-        <transaction-commit/>
         <iterate entry-name="communicationEvent" list-name="communicationEvents">
-            <transaction-begin/>
             <set-service-fields service-name="sendCommEventAsEmail" map-name="communicationEvent" to-map-name="inMap"/>
-            <call-service service-name="sendCommEventAsEmail" in-map-name="inMap"/>
-            <transaction-commit/>
+            <call-service service-name="sendCommEventAsEmail" in-map-name="inMap" require-new-transaction="true"/>
         </iterate>
     </simple-method>
 
@@ -272,7 +286,7 @@
         <set field="custRequest.description" from-field="communicationEvent.content"/>
         <set field="custRequest.fromPartyId" from-field="communicationEvent.partyIdFrom"/>
         <set field="custRequest.custRequestTypeId" value="RF_SUPPORT"/>
-        <set field="custRequest.statusId" value="CRQ_SUBMITTED"/>
+        <set field="custRequest.statusId" value="CRQ_ACCEPTED"/>
         
         <set-service-fields service-name="createCustRequest" map-name="parameters" to-map-name="custRequest"/>
         <call-service service-name="createCustRequest" in-map-name="custRequest">
@@ -280,6 +294,11 @@
         </call-service>
         <set-service-fields service-name="createCustRequestCommEvent" map-name="parameters" to-map-name="custRequestCommEvent"/>
         <call-service service-name="createCustRequestCommEvent" in-map-name="custRequestCommEvent"/>
+
+        <!-- update status from communication event -->
+        <set field="communicationEvent.statusId" value="COM_COMPLETE"/>
+        <store-value value-name="communicationEvent"/>
+                
         <field-to-result field-name="parameters.custRequestId" result-name="custRequestId"/>
     </simple-method>
     <simple-method method-name="createCustRequestCommEvent" short-description="Create CustRequestCommEvent" >
@@ -287,4 +306,24 @@
         <set-pk-fields map-name="parameters" value-name="newEntity"/>
         <create-value value-name="newEntity"/>    
     </simple-method>
+
+    <simple-method method-name="setCommunicationEventStatus" short-description="Set The Communication Event Status">
+        <entity-one entity-name="CommunicationEvent" value-name="communicationEvent"/>
+        <field-to-result field-name="communicationEvent.statusId" result-name="oldStatusId"/>
+        <if-compare-field field="communicationEvent.statusId" to-field="parameters.statusId" operator="not-equals">
+            <entity-one entity-name="StatusValidChange" value-name="statusChange">
+                <field-map field-name="statusId" env-name="communicationEvent.statusId"/>
+                <field-map field-name="statusIdTo" env-name="parameters.statusId"/>
+            </entity-one>
+            <if-empty field="statusChange">
+                <add-error><fail-message message="Status is not a valid change"/></add-error>
+                <log level="error" message="Cannot change from ${communicationEvent.statusId} to ${parameters.statusId}"/>
+                <check-errors/>
+                <else>
+                    <set field="communicationEvent.statusId" from-field="parameters.statusId"/>
+                    <store-value value-name="communicationEvent"/>
+                </else>
+            </if-empty>
+        </if-compare-field>
+    </simple-method>
 </simple-methods>

Modified: ofbiz/trunk/applications/party/servicedef/services.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/servicedef/services.xml?rev=678342&r1=678341&r2=678342&view=diff
==============================================================================
--- ofbiz/trunk/applications/party/servicedef/services.xml (original)
+++ ofbiz/trunk/applications/party/servicedef/services.xml Sun Jul 20 21:22:19 2008
@@ -630,6 +630,13 @@
     </service>
 
     <!-- Communication Event Services -->
+    <service name="setCommunicationEventStatus" engine="simple"
+            location="org/ofbiz/party/communication/CommunicationEventServices.xml" invoke="setCommunicationEventStatus" auth="true">
+        <description>Set the Communication event  Status</description>
+        <attribute name="communicationEventId" type="String" mode="IN" optional="false"/>
+        <attribute name="statusId" type="String" mode="IN" optional="false"/>
+        <attribute name="oldStatusId" type="String" mode="OUT" optional="true"/>
+    </service>
     <service name="createCommunicationEvent" engine="simple"
             location="org/ofbiz/party/communication/CommunicationEventServices.xml" invoke="createCommunicationEvent" auth="true">
         <description>Create a Communication Event</description>
@@ -638,6 +645,7 @@
         <auto-attributes entity-name="CommunicationEvent" include="pk" mode="INOUT" optional="true"/>
         <attribute name="productId" type="String" mode="IN" optional="true"/>
         <attribute name="orderId" type="String" mode="IN" optional="true"/>
+        <attribute name="custRequestId" type="String" mode="IN" optional="true"/>
     </service>
     <service name="updateCommunicationEvent" engine="simple"
             location="org/ofbiz/party/communication/CommunicationEventServices.xml" invoke="updateCommunicationEvent" auth="true">
@@ -645,6 +653,7 @@
         <permission-service service-name="partyCommunicationEventPermissionCheck" main-action="UPDATE"/>
         <auto-attributes entity-name="CommunicationEvent" include="pk" mode="IN" optional="false"/>
         <auto-attributes entity-name="CommunicationEvent" include="nonpk" mode="IN" optional="true"/>
+        <attribute name="oldStatusId" type="String" mode="OUT" optional="true"/>
     </service>
     <service name="deleteCommunicationEvent" engine="simple"
         location="org/ofbiz/party/communication/CommunicationEventServices.xml" invoke="deleteCommunicationEvent" auth="true">

Modified: ofbiz/trunk/applications/party/webapp/partymgr/communication/CommForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/webapp/partymgr/communication/CommForms.xml?rev=678342&r1=678341&r2=678342&view=diff
==============================================================================
--- ofbiz/trunk/applications/party/webapp/partymgr/communication/CommForms.xml (original)
+++ ofbiz/trunk/applications/party/webapp/partymgr/communication/CommForms.xml Sun Jul 20 21:22:19 2008
@@ -22,9 +22,7 @@
 
     <form name="EditCommEvent" type="single" target="updateCommunicationEvent" default-map-name="communicationEvent">
         <alt-target target="createCommunicationEvent" use-when="communicationEvent==null"/>
-        <field name="partyId" map-name="parameters"><hidden/></field>
-        
-        <field name="communicationEventId" use-when="communicationEvent==null"><display/></field>
+        <field name="communicationEventId" use-when="communicationEvent!=null"><display/></field>
         <field name="parentCommEventId" position="2">
             <lookup target-form-name="LookupCommEvent">
                 <sub-hyperlink link-style="buttontext" target="EditCommunicationEvent?communicationEventId=${parentCommEventId}" description="${uiLabelMap.PartyGoToParent}" use-when="communicationEvent!=null&amp;&amp;communicationEvent.get(&quot;parentCommEventId&quot;)!=null"/>
@@ -359,7 +357,7 @@
             <service result-map-list-name="listIt" result-map-name="result" service-name="performFind">
                 <field-map env-name="parameters" field-name="inputFields"/>
                 <field-map env-name="entityName" field-name="entityName"/>
-                <field-map value="datetimeStarted DESC" field-name="orderBy"/>
+                <field-map value="-createdStamp" field-name="orderBy"/>
             </service>
         </actions>
         <field name="removeLink" title="${uiLabelMap.CommonDelete}" widget-style="smallSubmit">
@@ -605,10 +603,12 @@
 
  <form name="ListMyUnknownPartyEmails" type="multi" use-row-submit="true"
  title="Email List unknown parties" list-name="commEventsUnknown"
- default-widget-style="tabletext" default-tooltip-style="tabletext"
- target="deleteCommunicationEvents?communicationEventId=${communicationEventId}&amp;delContentDataResource=Y"
- default-entity-name="CommunicationEvent"
+ target="deleteCommunicationEvents" default-entity-name="CommunicationEvent"
         odd-row-style="alternate-row" header-row-style="header-row-2" default-table-style="basic-table hover-bar">
+        <row-actions>
+            <set field="subject" from-field="subject" default-value="${uiLabelMap.PartyNoSubject}"/>
+        </row-actions>
+        <field name="delContentDataResource"><hidden value="Y"/></field>
  <field name="communicationEventId">
  <hidden />
  </field>

Modified: ofbiz/trunk/applications/party/webapp/partymgr/communication/CommMenus.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/webapp/partymgr/communication/CommMenus.xml?rev=678342&r1=678341&r2=678342&view=diff
==============================================================================
--- ofbiz/trunk/applications/party/webapp/partymgr/communication/CommMenus.xml (original)
+++ ofbiz/trunk/applications/party/webapp/partymgr/communication/CommMenus.xml Sun Jul 20 21:22:19 2008
@@ -81,13 +81,19 @@
         </menu-item>
         <menu-item name="reply" title="${uiLabelMap.PartyReply}">
             <condition>
-                <not><if-empty field-name="parameters.communicationEventId"/></not>
+                <and>
+                    <not><if-empty field-name="parameters.communicationEventId"/></not>
+                    <not><if-empty field-name="communicationEvent.partyIdFrom"/></not>
+                </and>
             </condition>
             <link target="EditCommunicationEvent?parentCommEventId=${parameters.communicationEventId}"/>
         </menu-item>
         <menu-item name="createRequestFromCommEvent" title="${uiLabelMap.PartyCreateRequestFromCommEvent}">
             <condition>
-                <not><if-empty field-name="parameters.communicationEventId"/></not>
+                <and>
+                    <not><if-empty field-name="parameters.communicationEventId"/></not>
+                    <not><if-empty field-name="communicationEvent.partyIdFrom"/></not>
+                </and>
             </condition>
             <link target="editRequestFromCommEvent?communicationEventId=${parameters.communicationEventId}"/>
         </menu-item>