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"/> |
Free forum by Nabble | Edit this page |