svn commit: r787920 - in /ofbiz/trunk/applications/marketing: script/org/ofbiz/sfa/lead/LeadServices.xml servicedef/services.xml widget/sfa/forms/LeadForms.xml

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

svn commit: r787920 - in /ofbiz/trunk/applications/marketing: script/org/ofbiz/sfa/lead/LeadServices.xml servicedef/services.xml widget/sfa/forms/LeadForms.xml

apatel-2
Author: apatel
Date: Wed Jun 24 06:14:43 2009
New Revision: 787920

URL: http://svn.apache.org/viewvc?rev=787920&view=rev
Log:
Updated convert lead service to expire relationships. Converting a lead now requires contact person id and partyGroupId.

Modified:
    ofbiz/trunk/applications/marketing/script/org/ofbiz/sfa/lead/LeadServices.xml
    ofbiz/trunk/applications/marketing/servicedef/services.xml
    ofbiz/trunk/applications/marketing/widget/sfa/forms/LeadForms.xml

Modified: ofbiz/trunk/applications/marketing/script/org/ofbiz/sfa/lead/LeadServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/script/org/ofbiz/sfa/lead/LeadServices.xml?rev=787920&r1=787919&r2=787920&view=diff
==============================================================================
--- ofbiz/trunk/applications/marketing/script/org/ofbiz/sfa/lead/LeadServices.xml (original)
+++ ofbiz/trunk/applications/marketing/script/org/ofbiz/sfa/lead/LeadServices.xml Wed Jun 24 06:14:43 2009
@@ -123,56 +123,101 @@
     </simple-method>
 
     <simple-method method-name="convertLeadToContact" short-description="Convert a lead person into a contact and associated lead group to an account">
-        <set field="createPartyRoleCtx.partyId" from-field="parameters.partyId"/>
-        <set field="createPartyRoleCtx.roleTypeId" value="CONTACT"/>
-        <call-service service-name="createPartyRole" in-map-name="createPartyRoleCtx"/>
+        <set field="partyId" from-field="parameters.partyId"/>
+        <set field="partyGroupId" from-field="parameters.partyGroupId"/>
+        <now-timestamp field="nowTimestamp"/>
         <entity-and entity-name="PartyRelationship" list="partyRelationships" filter-by-date="true">
-            <field-map field-name="partyIdTo" from-field="parameters.partyId"/>
+            <field-map field-name="partyIdTo" from-field="partyId"/>
+            <field-map field-name="roleTypeIdFrom" value="OWNER"/>
             <field-map field-name="roleTypeIdTo" value="LEAD"/>
-            <field-map field-name="roleTypeIdFrom" value="ACCOUNT_LEAD"/>
+            <field-map field-name="partyRelationshipTypeId" value="LEAD_OWNER"/>
             <order-by field-name="-fromDate"/>
         </entity-and>
         <first-from-list list="partyRelationships" entry="partyRelationship"/>
+        <if-not-empty field="partyRelationship">
+            <set-service-fields service-name="updatePartyRelationship" map="partyRelationship" to-map="deletePartyRelationship"/>
+            <set from-field="nowTimestamp" field="deletePartyRelationship.thruDate"/>
+            <call-service service-name="updatePartyRelationship" in-map-name="deletePartyRelationship"/>
+            <log level="info" message="Expiring relationship  ${deletePartyRelationship}"> </log>
+            <clear-field field="deletePartyRelationship"/>
+            <clear-field field="partyRelationship"/>
+        </if-not-empty>
+        
+        <!-- Expire relation between lead company and lead person -->
+        <entity-and entity-name="PartyRelationship" list="partyRelationships" filter-by-date="true">
+            <field-map field-name="partyIdFrom" from-field="partyGroupId"/>
+            <field-map field-name="roleTypeIdTo" value="LEAD"/>
+            <field-map field-name="roleTypeIdFrom" value="ACCOUNT_LEAD"/>
+            <field-map field-name="partyRelationshipTypeId" value="EMPLOYMENT"/>
+            <order-by field-name="-fromDate"/>
+        </entity-and>
 
+        <first-from-list list="partyRelationships" entry="partyRelationship"/>
         <if-not-empty field="partyRelationship">
             <set-service-fields service-name="updatePartyRelationship" map="partyRelationship" to-map="deletePartyRelationship"/>
             <set from-field="nowTimestamp" field="deletePartyRelationship.thruDate"/>
             <call-service service-name="updatePartyRelationship" in-map-name="deletePartyRelationship"/>
-            <set field="partyGroupId" from-field="partyRelationship.partyIdFrom"/>
-            <else>
-                <set field="partyGroupId" from-field="parameters.partyGroupId"/>
-            </else>
+
+            <log level="info" message="Expiring relationship  ${deletePartyRelationship}"> </log>
+            <clear-field field="deletePartyRelationship"/>
+            <clear-field field="partyRelationship"/>
         </if-not-empty>
 
-        <if-empty field="partyGroupId">
-            <add-error><fail-message message="Party Group ID not found in realtionship AND not supplied"/></add-error>
-        </if-empty>
-        <check-errors/>
+        <!-- Expire relation between lead company and its owner -->
+        <entity-and entity-name="PartyRelationship" list="partyRelationships" filter-by-date="true">
+            <field-map field-name="partyIdFrom" from-field="userLogin.partyId"/>
+            <field-map field-name="partyIdTo" from-field="partyGroupPartyId"/>
+            <field-map field-name="roleTypeIdTo" value="ACCOUNT_LEAD"/>
+            <field-map field-name="roleTypeIdFrom" value="OWNER"/>
+            <order-by field-name="-fromDate"/>
+        </entity-and>
+        <first-from-list list="partyRelationships" entry="partyRelationship"/>
+        <if-not-empty field="partyRelationship">
+            <set-service-fields service-name="updatePartyRelationship" map="partyRelationship" to-map="deletePartyRelationship"/>
+            <set from-field="nowTimestamp" field="deletePartyRelationship.thruDate"/>
+            <call-service service-name="updatePartyRelationship" in-map-name="deletePartyRelationship"/>
+            <log level="info" message="Expiring relationship  ${deletePartyRelationship}"> </log>
+            <clear-field field="deletePartyRelationship"/>
+            <clear-field field="partyRelationship"/>
+        </if-not-empty>
 
         <set field="partyRoleCtx.partyId" from-field="partyGroupId"/>
         <set field="partyRoleCtx.roleTypeId" value="ACCOUNT"/>
         <call-service service-name="createPartyRole" in-map-name="partyRoleCtx"/>
 
-        <!-- create new relationship -->
-        <set field="partyRelationshipCtx.partyIdFrom" from-field="partyGroupId"/>
-        <set field="partyRelationshipCtx.roleTypeIdFrom" value="ACCOUNT"/>
-        <set field="partyRelationshipCtx.partyIdTo" from-field="parameters.partyId"/>
-        <set field="partyRelationshipCtx.roleTypeIdTo" value="CONTACT"/>
-        <set field="partyRelationshipCtx.partyRelationshipTypeId" value="EMPLOYMENT"/>
-        <call-service service-name="createPartyRelationship" in-map-name="partyRelationshipCtx"/>
-
         <set field="partyRelationshipCtx.partyIdFrom" from-field="userLogin.partyId"/>
         <set field="partyRelationshipCtx.partyIdTo" from-field="partyGroupId"/>
         <set field="partyRelationshipCtx.roleTypeIdFrom" value="OWNER"/>
         <set field="partyRelationshipCtx.roleTypeIdTo" value="ACCOUNT"/>
         <set field="partyRelationshipCtx.partyRelationshipTypeId" value="ACCOUNT"/>
         <call-service service-name="createPartyRelationship" in-map-name="partyRelationshipCtx"/>
+        <log level="info" message="Creating relationship  ${partyRelationshipCtx}"> </log>
+        <clear-field field="partyRelationshipCtx"/>
+
+        <set field="updatePartyCtx.partyId" from-field="partyGroupId"/>
+        <set field="updatePartyCtx.statusId" value="LEAD_CONVERTED"/>
+        <call-service service-name="setPartyStatus" in-map-name="updatePartyCtx"/>
+
+        <set field="createPartyRoleCtx.partyId" from-field="partyId"/>
+        <set field="createPartyRoleCtx.roleTypeId" value="CONTACT"/>
+        <call-service service-name="createPartyRole" in-map-name="createPartyRoleCtx"/>
+        <!-- create new relationship between new account and contact person there -->
+        <set field="partyRelationshipCtx.partyIdFrom" from-field="partyGroupId"/>
+        <set field="partyRelationshipCtx.roleTypeIdFrom" value="ACCOUNT"/>
+        <set field="partyRelationshipCtx.partyIdTo" from-field="partyId"/>
+        <set field="partyRelationshipCtx.roleTypeIdTo" value="CONTACT"/>
+        <set field="partyRelationshipCtx.partyRelationshipTypeId" value="EMPLOYMENT"/>
+        <call-service service-name="createPartyRelationship" in-map-name="partyRelationshipCtx"/>
+
 
-        <set field="updatePartyCtx.partyId" from-field="parameters.partyId"/>
+        <log level="info" message="Creating relationship  ${partyRelationshipCtx}"> </log>
+        <clear-field field="partyRelationshipCtx"/>
+        <set field="updatePartyCtx.partyId" from-field="partyId"/>
         <set field="updatePartyCtx.statusId" value="LEAD_CONVERTED"/>
         <call-service service-name="setPartyStatus" in-map-name="updatePartyCtx"/>
-        <field-to-result field="parameters.partyId" result-name="partyId"/>
+
+        <field-to-result field="partyId"/>
         <field-to-result field="partyGroupId"/>
-        <set field="successMessage" value="Lead ${parameters.partyId} succesfully converted to contact"/>
+        <set field="successMessage" value="Lead ${partyId} ${partyGroupId} succesfully converted to Account/Contact"/>
     </simple-method>
 </simple-methods>

Modified: ofbiz/trunk/applications/marketing/servicedef/services.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/servicedef/services.xml?rev=787920&r1=787919&r2=787920&view=diff
==============================================================================
--- ofbiz/trunk/applications/marketing/servicedef/services.xml (original)
+++ ofbiz/trunk/applications/marketing/servicedef/services.xml Wed Jun 24 06:14:43 2009
@@ -472,8 +472,7 @@
     </service>
     <service name="convertLeadToContact" engine="simple" location="component://marketing/script/org/ofbiz/sfa/lead/LeadServices.xml" invoke="convertLeadToContact">
         <attribute name="partyId" type="String" mode="INOUT" optional="false"/>
-        <attribute name="partyGroupId" type="String" mode="IN" optional="true"/>
-        <attribute name="partyGroupId" type="String" mode="OUT" optional="false"/>
+        <attribute name="partyGroupId" type="String" mode="INOUT" optional="false"/>
     </service>
 
     <!-- VCard services -->

Modified: ofbiz/trunk/applications/marketing/widget/sfa/forms/LeadForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/widget/sfa/forms/LeadForms.xml?rev=787920&r1=787919&r2=787920&view=diff
==============================================================================
--- ofbiz/trunk/applications/marketing/widget/sfa/forms/LeadForms.xml (original)
+++ ofbiz/trunk/applications/marketing/widget/sfa/forms/LeadForms.xml Wed Jun 24 06:14:43 2009
@@ -81,7 +81,7 @@
             <display-entity also-hidden="false" entity-name="PartyNameView" key-field-name="partyId" description="${groupName}${firstName} ${lastName} [${parameters.partyId}]"/>
         </field>
         <field name="partyGroupId" title="${uiLabelMap.SfaCreateAccountForLead}" use-when="parameters.get(&quot;partyGroupId&quot;)!=&quot;&quot;">
-            <display-entity also-hidden="false" entity-name="PartyNameView" key-field-name="partyId" description="${groupName}${firstName} ${lastName} [${parameters.partyGroupId}]"/>
+            <display-entity also-hidden="true" entity-name="PartyNameView" key-field-name="partyId" description="${groupName}${firstName} ${lastName} [${parameters.partyGroupId}]"/>
         </field>
         <field name="partyGroupId" title="${uiLabelMap.SfaAccountName}" tooltip="${uiLabelMap.SfaSelectExistingAccountOrLeaveBlankToCreateNew}" use-when="parameters.get(&quot;partyGroupId&quot;)==&quot;&quot;">
             <drop-down allow-empty="true" current-description="">