svn commit: r798832 - /ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderServices.xml

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

svn commit: r798832 - /ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderServices.xml

lektran
Author: lektran
Date: Wed Jul 29 10:00:18 2009
New Revision: 798832

URL: http://svn.apache.org/viewvc?rev=798832&view=rev
Log:
Check for an existing PartyContactMechPurpose before creating a new one

Modified:
    ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderServices.xml

Modified: ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderServices.xml?rev=798832&r1=798831&r2=798832&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderServices.xml (original)
+++ ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderServices.xml Wed Jul 29 10:00:18 2009
@@ -1040,15 +1040,22 @@
                     <clear-field field="serviceInMap"/>
                     </if-not-empty>
                     <if-compare field="keepAddressBook" operator="equals" value="N">
-                        <set-service-fields service-name="deletePartyContactMech" map="pcmp" to-map="serviceInMap"/>
+                        <set field="serviceInMap.contactMechId" from-field="parameters.billToContactMechId"/>
                         <call-service service-name="deletePartyContactMech" in-map-name="serviceInMap"/>
                         <clear-field field="serviceInMap"/>
                     </if-compare>
-                    <set field="billToAddressCtx.contactMechPurposeTypeId" value="BILLING_LOCATION"/>
-                    <set-service-fields service-name="createPartyContactMechPurpose" map="billToAddressCtx" to-map="serviceInMap"/>
-                    <set field="serviceInMap.contactMechId" from-field="parameters.shipToContactMechId"/>
-                    <call-service service-name="createPartyContactMechPurpose" in-map-name="serviceInMap">
-                    </call-service>
+                    <!-- Check that the ship-to address doesn't already have a bill-to purpose -->
+                    <entity-and entity-name="PartyContactMechPurpose" list="pcmpList" filter-by-date="true">
+                        <field-map field-name="contactMechId" from-field="parameters.shipToContactMechId"/>
+                        <field-map field-name="partyId" from-field="partyId"/>
+                        <field-map field-name="contactMechPurposeTypeId" value="BILLING_LOCATION"/>
+                    </entity-and>
+                    <if-empty field="pcmpList">
+                    <set field="billToAddressCtx.contactMechPurposeTypeId" value="BILLING_LOCATION"/>
+                    <set-service-fields service-name="createPartyContactMechPurpose" map="billToAddressCtx" to-map="serviceInMap"/>
+                    <set field="serviceInMap.contactMechId" from-field="parameters.shipToContactMechId"/>
+                    <call-service service-name="createPartyContactMechPurpose" in-map-name="serviceInMap"/>
+                    </if-empty>
                     <log level="info" message="Billing address updated with contactMechId ${parameters.billToContactMechId}"/>
                 </if-compare-field>
             </else>