Author: mor
Date: Mon Aug 4 23:00:01 2008
New Revision: 682590
URL: http://svn.apache.org/viewvc?rev=682590&view=rev
Log:
Added a flag keepAddressBook (default is Y) on Customer events for One Page
Checkout. If keepAddressBook is set to Y and a user edit the address during
checkout, it will create a new address. This is way to support address book
functionality. A user can always delete a address from Profile page.
Modified:
ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml
Modified:
ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml?rev=682590&r1=682589&r2=682590&view=diff
==============================================================================
---
ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml
(original)
+++
ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml
Mon Aug 4 23:00:01 2008
@@ -1054,6 +1054,7 @@
</simple-method>
<simple-method method-name="createUpdateShippingAddress"
short-description="create and update shipping address" login-required="false">
+ <set field="keepAddressBook" from-field="parameters.keepAddressBook"
default-value="Y"/>
<call-map-processor
xml-resource="org/ofbiz/ecommerce/customer/CheckoutMapProcs.xml"
processor-name="shipToAddress" in-map-name="parameters"
out-map-name="shipToAddressCtx"/>
<if-empty field="error_list">
@@ -1065,34 +1066,47 @@
</call-service>
<log level="info" message="Shipping address created with
contactMechId ${parameters.shipToContactMechId}"/>
<else>
- <if-compare-field field="parameters.shipToContactMechId"
operator="equals" to-field="parameters.billToContactMechId">
+ <if-compare field="keepAddressBook" operator="equals"
value="Y">
<make-value entity-name="PostalAddress"
value-name="newValue"/>
<set-pk-fields value-name="newValue"
map-name="shipToAddressCtx"/>
- <find-by-primary-key entity-name="PostalAddress"
map-name="newValue" value-name="oldValue" />
+ <find-by-primary-key entity-name="PostalAddress"
map-name="newValue" value-name="oldValue"/>
<set-nonpk-fields map-name="shipToAddressCtx"
value-name="newValue"/>
- <if-compare-field field="oldValue" to-field="newValue"
operator="not-equals" type="Object">
- <entity-and entity-name="PartyContactMechPurpose"
list-name="pcmpList" filter-by-date="true">
- <field-map field-name="contactMechId"
env-name="parameters.shipToContactMechId"/>
- <field-map field-name="partyId"
env-name="partyId"/>
- <field-map field-name="contactMechPurposeTypeId"
value="SHIPPING_LOCATION"/>
- </entity-and>
- <first-from-list list-name="pcmpList"
entry-name="pcmp"/>
- <if-not-empty field="pcmp">
- <set-service-fields
service-name="deletePartyContactMechPurposeIfExists" map-name="pcmp"
to-map-name="serviceInMap"/>
- <call-service
service-name="deletePartyContactMechPurposeIfExists"
in-map-name="serviceInMap"/>
- </if-not-empty>
+ <if-compare-field field="oldValue" to-field="newValue"
operator="not-equals" type="Object">
<call-service service-name="createPartyPostalAddress"
in-map-name="shipToAddressCtx">
<result-to-field result-name="contactMechId"
field-name="parameters.shipToContactMechId"/>
+ </call-service>
+ </if-compare-field>
+ </if-compare>
+ <if-compare field="keepAddressBook" operator="equals"
value="N">
+ <if-compare-field field="parameters.shipToContactMechId"
operator="equals" to-field="parameters.billToContactMechId">
+ <make-value entity-name="PostalAddress"
value-name="newValue"/>
+ <set-pk-fields value-name="newValue"
map-name="shipToAddressCtx"/>
+ <find-by-primary-key entity-name="PostalAddress"
map-name="newValue" value-name="oldValue"/>
+ <set-nonpk-fields map-name="shipToAddressCtx"
value-name="newValue"/>
+ <if-compare-field field="oldValue" to-field="newValue"
operator="not-equals" type="Object">
+ <entity-and entity-name="PartyContactMechPurpose"
list-name="pcmpList" filter-by-date="true">
+ <field-map field-name="contactMechId"
env-name="parameters.shipToContactMechId"/>
+ <field-map field-name="partyId"
env-name="partyId"/>
+ <field-map
field-name="contactMechPurposeTypeId" value="SHIPPING_LOCATION"/>
+ </entity-and>
+ <first-from-list list-name="pcmpList"
entry-name="pcmp"/>
+ <if-not-empty field="pcmp">
+ <set-service-fields
service-name="deletePartyContactMechPurposeIfExists" map-name="pcmp"
to-map-name="serviceInMap"/>
+ <call-service
service-name="deletePartyContactMechPurposeIfExists"
in-map-name="serviceInMap"/>
+ </if-not-empty>
+ <call-service
service-name="createPartyPostalAddress" in-map-name="shipToAddressCtx">
+ <result-to-field result-name="contactMechId"
field-name="parameters.shipToContactMechId"/>
+ </call-service>
+ <log level="info" message="Shipping address
updated with contactMechId ${parameters.shipToContactMechId}"/>
+ </if-compare-field>
+ <else>
+ <call-service service-name="updatePartyPostalAddress"
in-map-name="shipToAddressCtx">
+ <result-to-field result-name="contactMechId"
field-name="parameters.shipToContactMechId"/>
</call-service>
<log level="info" message="Shipping address updated
with contactMechId ${parameters.shipToContactMechId}"/>
+ </else>
</if-compare-field>
- <else>
- <call-service service-name="updatePartyPostalAddress"
in-map-name="shipToAddressCtx">
- <result-to-field result-name="contactMechId"
field-name="parameters.shipToContactMechId"/>
- </call-service>
- <log level="info" message="Shipping address updated with
contactMechId ${parameters.shipToContactMechId}"/>
- </else>
- </if-compare-field>
+ </if-compare>
</else>
</if-empty>
<field-to-request field-name="parameters.shipToContactMechId"
request-name="shipToContactMechId"/>