| <?xml version="1.0" encoding="UTF-8" ?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| |
| <simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xmlns="http://ofbiz.apache.org/Simple-Method" xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method http://ofbiz.apache.org/dtds/simple-methods.xsd"> |
| |
| <!-- =========================================== --> |
| <!-- ======== Anonymous Checkout Events ======== --> |
| <!-- =========================================== --> |
| |
| <simple-method method-name="createUpdateCustomer" short-description="Create update customer and settings" login-required="false"> |
| <set field="require_email" value="true"/> |
| <set field="require_phone" value="true"/> |
| <set field="require_login" value="false"/> |
| <set field="shipToPostalAddress" value="true"/> |
| <set field="billToPostalAddress" value="true"/> |
| <!-- this parameter must be set to true or the createUser method below will use a default password instead of the one entered by user --> |
| <set field="create_allow_password" value="true"/> |
| |
| <set field="parameters.roleTypeId" value="CUSTOMER"/> |
| |
| <property-to-field resource="security" property="username.lowercase" default="false" field="username_lowercase"/> |
| <property-to-field resource="security" property="password.lowercase" default="false" field="password_lowercase"/> |
| <set field="default_user_password" value="ungssblepsswd"/> |
| <now-timestamp field="nowStamp"/> |
| |
| <if-compare field="create_allow_password" operator="not-equals" value="true"> |
| <set field="parameters.password" from-field="default_user_password"/> |
| <set field="parameters.confirmPassword" from-field="default_user_password"/> |
| <set field="parameters.passwordHint" value="No hint set, account not yet enabled"/> |
| </if-compare> |
| |
| <!-- if username and/or password should be lowercased, do that now --> |
| <if-compare field="username_lowercase" operator="equals" value="true"> |
| <call-object-method obj-field="parameters.username" method-name="toLowerCase" ret-field="parameters.username"/> |
| </if-compare> |
| <if-compare field="password_lowercase" operator="equals" value="true"> |
| <call-object-method obj-field="parameters.password" method-name="toLowerCase" ret-field="parameters.password"/> |
| <call-object-method obj-field="parameters.confirmPassword" method-name="toLowerCase" ret-field="parameters.confirmPassword"/> |
| </if-compare> |
| |
| <!-- Create the UserLogin Record --> |
| <if-not-empty field="parameters.userLoginId"> |
| <call-map-processor in-map-name="parameters" out-map-name="userLoginContext"> |
| <simple-map-processor name="newUserLogin"> |
| <process field="userLoginId"><copy to-field="userLoginId"/><not-empty><fail-property resource="PartyUiLabels" property="PartyUserNameMissing"/></not-empty></process> |
| <process field="password"><copy to-field="currentPassword"/><not-empty><fail-property resource="PartyUiLabels" property="PartyPasswordMissing"/></not-empty></process> |
| <process field="confirmPassword"> |
| <compare-field operator="equals" field="password"><fail-property resource="PartyUiLabels" property="PartyPasswordMatchError"/></compare-field> |
| <!-- This is checked below in the checkNewPassword method in the block: <not-empty><fail-property resource="PartyUiLabels" property="PartyEnterPasswordTwice"/></not-empty> --> |
| <copy to-field="currentPasswordVerify"/> |
| </process> |
| <process field="passwordHint"><copy to-field="passwordHint"/></process> |
| </simple-map-processor> |
| </call-map-processor> |
| <if-not-empty field="userLoginContext.userLoginId"> |
| <set field=" userLoginExistsMap.userLoginId" from-field="userLoginContext.userLoginId"/> |
| <find-by-primary-key entity-name="UserLogin" map="userLoginExistsMap" value-field="existingUserLogin"/> |
| <if-not-empty field="existingUserLogin"> |
| <set field="tempErrorMessage" value="${uiLabelMap.PartyUserNameInUse}"/> |
| <field-to-list field="tempErrorMessage" list="error_list"/> |
| </if-not-empty> |
| </if-not-empty> |
| |
| <make-value entity-name="UserLogin" value-field="newUserLogin"/> |
| <set field="newUserLogin.userLoginId" from-field="userLoginContext.userLoginId"/> |
| <set field="newUserLogin.currentPassword" from-field="userLoginContext.currentPassword"/> |
| <set field="newUserLogin.passwordHint" from-field="userLoginContext.passwordHint"/> |
| |
| <!-- Check the password, etc for validity --> |
| <script>groovy: |
| String password = (String) userLoginContext.get("currentPassword"); |
| String confirmPassword = (String) userLoginContext.get("currentPasswordVerify"); |
| String passwordHint = (String) userLoginContext.get("passwordHint"); |
| org.apache.ofbiz.common.login.LoginServices.checkNewPassword(newUserLogin, null, password, confirmPassword, passwordHint, error_list, true, locale); |
| </script> |
| <else> |
| <if-compare field="require_login" operator="equals" value="true"> |
| <add-error><fail-property resource="PartyUiLabels" property="PartyUserNameMissing"/></add-error> |
| <check-errors/> |
| </if-compare> |
| </else> |
| </if-not-empty> |
| |
| <!-- Create the Person --> |
| <call-map-processor in-map-name="parameters" out-map-name="personContext"> |
| <simple-map-processor name="newPerson"> |
| <process field="firstName"><copy/><not-empty><fail-property resource="PartyUiLabels" property="PartyFirstNameMissing"/></not-empty></process> |
| <process field="middleName"><copy/></process> |
| <process field="lastName"><copy/><not-empty><fail-property resource="PartyUiLabels" property="PartyLastNameMissingError"/></not-empty></process> |
| <process field="personalTitle"><copy/></process> |
| <process field="suffix"><copy/></process> |
| <process field="birthDate"><convert type="Date"><fail-property resource="PartyUiLabels" property="PartyBirthDateMissingError"/></convert></process> |
| <process field="gender"><copy/></process> |
| </simple-map-processor> |
| </call-map-processor> |
| |
| <!-- Create the Home Phone --> |
| <if-not-empty field="parameters.homeContactNumber"> |
| <call-map-processor in-map-name="parameters" out-map-name="homePhoneContext"> |
| <simple-map-processor name="newTelecomNumber"> |
| <process field="roleTypeId"><copy/></process> |
| <process field="homeCountryCode"><copy to-field="countryCode"/></process> |
| <process field="homeAreaCode"><copy to-field="areaCode"/></process> |
| <process field="homeContactNumber"><copy to-field="contactNumber"/></process> |
| <process field="homeExt"><copy to-field="extension"/></process> |
| <process field="homePhoneAllowSol"><copy to-field="allowSolicitation"/></process> |
| </simple-map-processor> |
| </call-map-processor> |
| </if-not-empty> |
| |
| <!-- Create the Work Phone --> |
| <if-not-empty field="parameters.workContactNumber"> |
| <call-map-processor in-map-name="parameters" out-map-name="workPhoneContext"> |
| <simple-map-processor name="newTelecomNumber"> |
| <process field="roleTypeId"><copy/></process> |
| <process field="workCountryCode"><copy to-field="countryCode"/></process> |
| <process field="workAreaCode"><copy to-field="areaCode"/></process> |
| <process field="workContactNumber"><copy to-field="contactNumber"/></process> |
| <process field="workExt"><copy to-field="extension"/></process> |
| <process field="workPhoneAllowSol"><copy to-field="allowSolicitation"/></process> |
| </simple-map-processor> |
| </call-map-processor> |
| </if-not-empty> |
| |
| <!-- Create the Fax Phone --> |
| <if-not-empty field="parameters.faxContactNumber"> |
| <call-map-processor in-map-name="parameters" out-map-name="faxPhoneContext"> |
| <simple-map-processor name="newTelecomNumber"> |
| <process field="roleTypeId"><copy/></process> |
| <process field="faxCountryCode"><copy to-field="countryCode"/></process> |
| <process field="faxAreaCode"><copy to-field="areaCode"/></process> |
| <process field="faxContactNumber"><copy to-field="contactNumber"/></process> |
| <process field="faxExt"><copy to-field="extension"/></process> |
| <process field="faxAllowSolicitation"><copy to-field="allowSolicitation"/></process> |
| </simple-map-processor> |
| </call-map-processor> |
| </if-not-empty> |
| |
| <!-- Create the Mobile Phone --> |
| <if-not-empty field="parameters.mobileContactNumber"> |
| <call-map-processor in-map-name="parameters" out-map-name="mobilePhoneContext"> |
| <simple-map-processor name="newTelecomNumber"> |
| <process field="roleTypeId"><copy/></process> |
| <process field="mobileAreaCode"><copy to-field="countryCode"/></process> |
| <process field="mobileAreaCode"><copy to-field="areaCode"/></process> |
| <process field="mobileContactNumber"><copy to-field="contactNumber"/></process> |
| <process field="mobileExt"><copy to-field="extension"/></process> |
| <process field="mobileAllowSolicitation"><copy to-field="allowSolicitation"/></process> |
| </simple-map-processor> |
| </call-map-processor> |
| </if-not-empty> |
| |
| <!-- Check for required Phone --> |
| <if-compare field="require_phone" operator="equals" value="true"> |
| <if-empty field="parameters.homeContactNumber"> |
| <if-empty field="parameters.workContactNumber"> |
| <if-empty field="parameters.mobileContactNumber"> |
| <call-map-processor in-map-name="parameters" out-map-name="dummymap"> |
| <simple-map-processor name="checkRequiredPhone"> |
| <process field="requiredPhone"> |
| <not-empty><fail-property resource="PartyUiLabels" property="PartyContactTelephoneMissing"/></not-empty> |
| </process> |
| </simple-map-processor> |
| </call-map-processor> |
| </if-empty> |
| </if-empty> |
| </if-empty> |
| </if-compare> |
| |
| <!-- Create the email address --> |
| <call-map-processor in-map-name="parameters" out-map-name="emailContext"> |
| <simple-map-processor name="newEmail"> |
| <process field="roleTypeId"><copy/></process> |
| <process field="emailAddress"><copy to-field="emailAddress"/></process> |
| <process field="emailAllowSolicitation"><copy to-field="allowSolicitation"/></process> |
| </simple-map-processor> |
| </call-map-processor> |
| |
| <!-- Check for required E-Mail --> |
| <if-compare field="require_email" operator="equals" value="true"> |
| <if-empty field="emailContext.emailAddress"> |
| <call-map-processor in-map-name="emailContext" out-map-name="dummymap"> |
| <simple-map-processor name="checkRequiredEmail"> |
| <process field="emailAddress"> |
| <not-empty><fail-property resource="PartyUiLabels" property="PartyEmailAddressMissing"/></not-empty> |
| </process> |
| </simple-map-processor> |
| </call-map-processor> |
| </if-empty> |
| <if-not-empty field="emailContext.emailAddress"> |
| <call-map-processor in-map-name="emailContext" out-map-name="dummymap"> |
| <simple-map-processor name="checkRequiredEmailFormat"> |
| <process field="emailAddress"> |
| <validate-method method="isEmail"> |
| <fail-property resource="PartyUiLabels" property="PartyEmailAddressNotFormattedCorrectly"/> |
| </validate-method> |
| </process> |
| </simple-map-processor> |
| </call-map-processor> |
| </if-not-empty> |
| </if-compare> |
| |
| <!-- Create the PartyRole --> |
| <set field="partyRoleContext.roleTypeId" from-field="parameters.roleTypeId"/> |
| |
| <!-- Create the Postal Address --> |
| <if-compare field="shipToPostalAddress" operator="equals" value="true"> |
| <if-empty field="parameters.shipToName"> |
| <set field="parameters.shipToName" value="${personContext.firstName} ${personContext.middleName} ${personContext.lastName}"/> |
| </if-empty> |
| <call-map-processor in-map-name="parameters" out-map-name="shippingAddressContext"> |
| <simple-map-processor name="postalAddress"> |
| <process field="roleTypeId"><copy/></process> |
| <process field="shipToName"><copy to-field="toName"/><not-empty><fail-property resource="PartyUiLabels" property="PartyToNameMissing"/></not-empty></process> |
| <process field="shipToAttnName"><copy to-field="attnName"/></process> |
| <process field="shipToAddress1"><copy to-field="address1"/><not-empty><fail-property resource="PartyUiLabels" property="PartyAddressLine1Missing"/></not-empty></process> |
| <process field="shipToAddress2"><copy to-field="address2"/></process> |
| <process field="shipToCity"><copy to-field="city"/><not-empty><fail-property resource="PartyUiLabels" property="PartyCityMissing"/></not-empty></process> |
| <process field="shipToStateProvinceGeoId"><copy to-field="stateProvinceGeoId"/></process> |
| <process field="shipToPostalCode"><copy to-field="postalCode"/><not-empty><fail-property resource="PartyUiLabels" property="PartyPostalCodeMissing"/></not-empty></process> |
| <process field="shipToCountryGeoId"><copy to-field="countryGeoId"/><not-empty><fail-property resource="PartyUiLabels" property="PartyCountryMissing"/></not-empty></process> |
| <process field="shipToPostalAddressAllowSol"><copy to-field="allowSolicitation"/></process> |
| </simple-map-processor> |
| </call-map-processor> |
| <if-compare value="USA" operator="equals" field="parameters.shipToCountryGeoId"> |
| <if-empty field="parameters.shipToStateProvinceGeoId"> |
| <property-to-field field="tempErrorMessage" resource="PartyUiLabels" property="PartyStateInUsMissing"/> |
| <field-to-list field="tempErrorMessage" list="error_list"/> |
| </if-empty> |
| </if-compare> |
| <if-compare value="CAN" operator="equals" field="parameters.shipToCountryGeoId"> |
| <if-empty field="parameters.shipToStateProvinceGeoId"> |
| <property-to-field field="tempErrorMessage" resource="PartyUiLabels" property="PartyStateInCanadaMissing"/> |
| <field-to-list field="tempErrorMessage" list="error_list"/> |
| </if-empty> |
| </if-compare> |
| </if-compare> |
| |
| <if-compare field="parameters.useShippingPostalAddressForBilling" operator="not-equals" value="Y"> |
| <!-- Check the flag if Second Postal address is not same as First So create Another Postal Address --> |
| <if-compare field="billToPostalAddress" operator="equals" value="true"> |
| <if-empty field="parameters.billToName"> |
| <set field="parameters.billToName" value="${personContext.firstName} ${personContext.middleName} ${personContext.lastName}"/> |
| </if-empty> |
| <call-map-processor in-map-name="parameters" out-map-name="billingAddressContext"> |
| <simple-map-processor name="postalAddress"> |
| <process field="roleTypeId"><copy/></process> |
| <process field="billToName"><copy to-field="toName"/><not-empty><fail-property resource="PartyUiLabels" property="PartyToNameMissing"/></not-empty></process> |
| <process field="billToAttnName"><copy to-field="attnName"/></process> |
| <process field="billToAddress1"><copy to-field="address1"/><not-empty><fail-property resource="PartyUiLabels" property="PartyAddressLine1Missing"/></not-empty></process> |
| <process field="billToAddress2"><copy to-field="address2"/></process> |
| <process field="billToCity"><copy to-field="city"/><not-empty><fail-property resource="PartyUiLabels" property="PartyCityMissing"/></not-empty></process> |
| <process field="billToStateProvinceGeoId"><copy to-field="stateProvinceGeoId"/></process> |
| <process field="billToPostalCode"><copy to-field="postalCode"/><not-empty><fail-property resource="PartyUiLabels" property="PartyPostalCodeMissing"/></not-empty></process> |
| <process field="billToCountryGeoId"><copy to-field="countryGeoId"/><not-empty><fail-property resource="PartyUiLabels" property="PartyCountryMissing"/></not-empty></process> |
| <process field="billToPostalAddressAllowSol"><copy to-field="allowSolicitation"/></process> |
| </simple-map-processor> |
| </call-map-processor> |
| <if-compare value="USA" operator="equals" field="parameters.billToCountryGeoId"> |
| <if-empty field="parameters.billToStateProvinceGeoId"> |
| <property-to-field field="tempErrorMessage" resource="PartyUiLabels" property="PartyStateInUsMissing"/> |
| <field-to-list field="tempErrorMessage" list="error_list"/> |
| </if-empty> |
| </if-compare> |
| <if-compare value="CAN" operator="equals" field="parameters.billToCountryGeoId"> |
| <if-empty field="parameters.billToStateProvinceGeoId"> |
| <property-to-field field="tempErrorMessage" resource="PartyUiLabels" property="PartyStateInCanadaMissing"/> |
| <field-to-list field="tempErrorMessage" list="error_list"/> |
| </if-empty> |
| </if-compare> |
| </if-compare> |
| </if-compare> |
| |
| <!-- create the PartyDataSource entry to track where this info came from... --> |
| <make-value entity-name="PartyDataSource" value-field="partyDataSource"/> |
| <set field="partyDataSource.dataSourceId" value="ECOMMERCE_SITE"/> |
| <set field="partyDataSource.fromDate" from-field="nowStamp"/> |
| <set field="partyDataSource.isCreate" value="Y"/> |
| <!-- get the visit from the session to get the visitId --> |
| <session-to-field field="visit"/> |
| <set from-field="visit.visitId" field="partyDataSource.visitId"/> |
| <log level="info" message="Setting up party ${error_list} "/> |
| <!-- now that everything is validated & setup, check to see if there are errors, then call the services --> |
| <!-- see if we should continue now... --> |
| <check-errors/> |
| |
| <if-empty field="parameters.partyId"> |
| <!-- call the create person service --> |
| <call-service service-name="createPerson" in-map-name="personContext"> |
| <result-to-field result-name="partyId" field="partyId"/> |
| <result-to-request result-name="partyId"/> |
| </call-service> |
| <if-empty field="userLogin"> |
| <if-empty field="newUserLogin"> |
| <!-- the rest of the methods require a userLogin object; so if we are anonymous lets fake it --> |
| <set field="ulLookup.userLoginId" value="anonymous"/> |
| <find-by-primary-key entity-name="UserLogin" map="ulLookup" value-field="userLogin"/> |
| <set field="userLogin.partyId" from-field="partyId"/> |
| <set-current-user-login value-field="userLogin"/> |
| <else> |
| <set-current-user-login value-field="userLoginContext"/> |
| </else> |
| </if-empty> |
| <else><!-- if an anonymous visitor is coming back, update the party id in the userLogin object --> |
| <if-compare field="userLogin.userLoginId" value="anonymous" operator="equals"> |
| <set field="userLogin.partyId" from-field="partyId"/> |
| </if-compare> |
| </else> |
| </if-empty> |
| <set field="partyRoleContext.partyId" from-field="partyId"/> |
| <call-service service-name="createPartyRole" in-map-name="partyRoleContext"/> |
| <else> |
| <set from-field="parameters.partyId" field="personContext.partyId"/> |
| <call-service service-name="updatePerson" in-map-name="personContext"/> |
| <set field="partyId" from-field="parameters.partyId"/> |
| </else> |
| </if-empty> |
| |
| <!-- now that we have the partyId, put it where it needs to go... --> |
| <set field="partyDataSource.partyId" from-field="partyId"/> |
| <set field="userLoginContext.partyId" from-field="partyId"/> |
| <set field="personContext.partyId" from-field="partyId"/> |
| <set field="shippingAddressContext.partyId" from-field="partyId"/> |
| <set field="billingAddressContext.partyId" from-field="partyId"/> |
| <set field="homePhoneContext.partyId" from-field="partyId"/> |
| <set field="workPhoneContext.partyId" from-field="partyId"/> |
| <set field="faxPhoneContext.partyId" from-field="partyId"/> |
| <set field="mobilePhoneContext.partyId" from-field="partyId"/> |
| <set field="emailContext.partyId" from-field="partyId"/> |
| |
| <if-not-empty field="newUserLogin"> |
| <!-- If password encryption is enabled, encrpyt it now --> |
| <script>groovy: |
| boolean useEncryption = "true".equals(org.apache.ofbiz.base.util.UtilProperties.getPropertyValue("security", "password.encrypt")); |
| if (useEncryption) { newUserLogin.set("currentPassword", org.apache.ofbiz.base.crypto.HashCrypt.getDigestHash((String) newUserLogin.get("currentPassword"))); } |
| </script> |
| <!-- create the UserLogin manually to get around ordering and security constraints in the service --> |
| <set field="userLoginContext.partyId" from-field="partyId"/> |
| <create-value value-field="newUserLogin"/> |
| </if-not-empty> |
| |
| <create-value value-field="partyDataSource"/> |
| |
| <!-- add contactMechPurposeTypeId for first Postal Address --> |
| <if-compare field="shipToPostalAddress" operator="equals" value="true"> |
| <if-empty field="parameters.shippingContactMechId"> |
| <set field="shippingAddressContext.contactMechPurposeTypeId" from-field="parameters.shippingContactMechPurposeTypeId" default-value="SHIPPING_LOCATION"/> |
| <call-service service-name="createPartyPostalAddress" in-map-name="shippingAddressContext"> |
| <result-to-field result-name="contactMechId" field="parameters.shippingContactMechId"/> |
| </call-service> |
| <if-compare field="parameters.useShippingPostalAddressForBilling" operator="equals" value="Y"> |
| <set field="addressPurposeContext.partyId" from-field="partyId"/> |
| <set field="addressPurposeContext.contactMechPurposeTypeId" from-field="parameters.billingContactMechPurposeTypeId" default-value="BILLING_LOCATION"/> |
| <set field="addressPurposeContext.contactMechId" from-field="parameters.shippingContactMechId"/> |
| <call-service service-name="createPartyContactMechPurpose" in-map-name="addressPurposeContext"/> |
| </if-compare> |
| <else> |
| <set field="shippingAddressContext.contactMechId" from-field="parameters.shippingContactMechId"/> |
| <!-- call the update address service --> |
| <call-service service-name="updatePartyPostalAddress" in-map-name="shippingAddressContext"> |
| <result-to-field result-name="contactMechId" field="parameters.shippingContactMechId"/> |
| </call-service> |
| </else> |
| </if-empty> |
| </if-compare> |
| |
| <if-compare field="parameters.useShippingPostalAddressForBilling" operator="not-equals" value="Y"> |
| <if-empty field="parameters.billingContactMechId"> |
| <!-- create the Billing location --> |
| <set field="billingAddressContext.contactMechPurposeTypeId" from-field="parameters.billingContactMechPurposeTypeId" default-value="BILLING_LOCATION"/> |
| <call-service service-name="createPartyPostalAddress" in-map-name="billingAddressContext"> |
| <result-to-field result-name="contactMechId" field="parameters.billingContactMechId"/> |
| </call-service> |
| <else> |
| <set field="billingAddressContext.contactMechId" from-field="parameters.billingContactMechId"/> |
| <!-- call the update address service --> |
| <call-service service-name="updatePartyPostalAddress" in-map-name="billingAddressContext"> |
| <result-to-field result-name="contactMechId" field="parameters.billingContactMechId"/> |
| </call-service> |
| </else> |
| </if-empty> |
| </if-compare> |
| |
| <!-- home phone --> |
| <if-not-empty field="parameters.homeContactNumber"> |
| <if-empty field="parameters.homePhoneContactMechId"> |
| <!-- create home phone --> |
| <set field="homePhoneContext.contactMechPurposeTypeId" value="PHONE_HOME"/> |
| <!-- call create telecom service --> |
| <call-service service-name="createPartyTelecomNumber" in-map-name="homePhoneContext"> |
| <result-to-field result-name="contactMechId" field="parameters.homePhoneContactMechId"/> |
| </call-service> |
| <else> |
| <set field="homePhoneContext.contactMechId" from-field="parameters.homePhoneContactMechId"/> |
| <!-- call update telecom service --> |
| <call-service service-name="updatePartyTelecomNumber" in-map-name="homePhoneContext"> |
| <result-to-field result-name="contactMechId" field="parameters.homePhoneContactMechId"/> |
| </call-service> |
| </else> |
| </if-empty> |
| </if-not-empty> |
| |
| <!-- work phone --> |
| <if-not-empty field="parameters.workContactNumber"> |
| <if-empty field="parameters.workPhoneContactMechId"> |
| <!-- create work phone --> |
| <set field="workPhoneContext.contactMechPurposeTypeId" value="PHONE_WORK"/> |
| <!-- call create telecom service --> |
| <call-service service-name="createPartyTelecomNumber" in-map-name="workPhoneContext"> |
| <result-to-field result-name="contactMechId" field="parameters.workPhoneContactMechId"/> |
| </call-service> |
| <else> |
| <set field="workPhoneContext.contactMechId" from-field="parameters.workPhoneContactMechId"/> |
| <!-- call update telecom service --> |
| <call-service service-name="updatePartyTelecomNumber" in-map-name="workPhoneContext"> |
| <result-to-field result-name="contactMechId" field="parameters.workPhoneContactMechId"/> |
| </call-service> |
| </else> |
| </if-empty> |
| </if-not-empty> |
| |
| <!-- fax phone --> |
| <if-not-empty field="parameters.faxContactNumber"> |
| <if-empty field="parameters.faxPhoneContactMechId"> |
| <!-- create fax phone --> |
| <set field="faxPhoneContext.contactMechPurposeTypeId" value="FAX_NUMBER"/> |
| <!-- call create telecom service --> |
| <call-service service-name="createPartyTelecomNumber" in-map-name="faxPhoneContext"> |
| <result-to-field result-name="contactMechId" field="parameters.faxPhoneContactMechId"/> |
| </call-service> |
| <else> |
| <set field="faxPhoneContext.contactMechId" from-field="parameters.faxPhoneContactMechId"/> |
| <!-- call update telecom service --> |
| <call-service service-name="updatePartyTelecomNumber" in-map-name="faxPhoneContext"> |
| <result-to-field result-name="contactMechId" field="parameters.faxPhoneContactMechId"/> |
| </call-service> |
| </else> |
| </if-empty> |
| </if-not-empty> |
| |
| <!-- mobile phone --> |
| <if-not-empty field="parameters.mobileContactNumber"> |
| <if-empty field="parameters.mobilePhoneContactMechId"> |
| <set field="mobilePhoneContext.contactMechPurposeTypeId" value="PHONE_MOBILE"/> |
| <!-- call create telecom service --> |
| <call-service service-name="createPartyTelecomNumber" in-map-name="mobilePhoneContext"> |
| <result-to-field result-name="contactMechId" field="parameters.mobilePhoneContactMechId"/> |
| </call-service> |
| <else> |
| <set field="mobilePhoneContext.contactMechId" from-field="parameters.mobilePhoneContactMechId"/> |
| <!-- call update telecom service --> |
| <call-service service-name="updatePartyTelecomNumber" in-map-name="mobilePhoneContext"> |
| <result-to-field result-name="contactMechId" field="parameters.mobilePhoneContactMechId"/> |
| </call-service> |
| </else> |
| </if-empty> |
| </if-not-empty> |
| |
| <!-- email address --> |
| <if-not-empty field="parameters.emailAddress"> |
| <if-empty field="parameters.emailContactMechId"> |
| <set field="emailContext.contactMechPurposeTypeId" value="PRIMARY_EMAIL"/> |
| <call-service service-name="createPartyEmailAddress" in-map-name="emailContext"> |
| <result-to-field result-name="contactMechId" field="parameters.emailContactMechId"/> |
| </call-service> |
| <else> |
| <set field="emailContext.contactMechId" from-field="parameters.emailContactMechId"/> |
| <!-- call update Email address --> |
| <call-service service-name="updatePartyEmailAddress" in-map-name="emailContext"> |
| <result-to-field result-name="contactMechId" field="parameters.emailContactMechId"/> |
| </call-service> |
| </else> |
| </if-empty> |
| </if-not-empty> |
| |
| <!-- see if we should continue now... --> |
| <session-to-field field="cart" session-name="shoppingCart"/> |
| <session-to-field field="userLogin"/> |
| <if-empty field="userLogin"> |
| <call-object-method obj-field="session" method-name="removeAttribute"> |
| <string value="autoUserLogin"/> |
| </call-object-method> |
| <check-errors/> |
| <call-object-method obj-field="session" method-name="removeAttribute"> |
| <string value="autoName"/> |
| </call-object-method> |
| <check-errors/> |
| <if-not-empty field="cart"> |
| <script>groovy: |
| // clear out the login fields from the cart |
| try { |
| if (cart!=null) cart.setAutoUserLogin(null, dispatcher); |
| } catch (CartItemModifyException e) { |
| Debug.logError(e, module); |
| } |
| </script> |
| </if-not-empty> |
| <if-not-empty field="partyId"> |
| <set field="lookupKeyValue.userLoginId" value="anonymous"/> |
| <find-by-primary-key map="lookupKeyValue" entity-name="UserLogin" value-field="userLogin"/> |
| <if-not-empty field="userLogin"> |
| <set field="userLogin.partyId" from-field="partyId"/> |
| <field-to-session field="userLogin" session-name="userLogin"/> |
| <if-not-empty field="cart"> |
| <call-object-method obj-field="cart" method-name="setOrderPartyId"> |
| <field field="partyId"/> |
| </call-object-method> |
| <script>groovy: |
| // clear out the login fields from the cart |
| try { |
| if (cart!=null) cart.setUserLogin(userLogin, dispatcher); |
| } catch (CartItemModifyException e) { |
| Debug.logError(e, module); |
| } |
| </script> |
| </if-not-empty> |
| </if-not-empty> |
| </if-not-empty> |
| </if-empty> |
| <check-errors/> |
| |
| <if-not-empty field="cart"> |
| <call-object-method obj-field="cart" method-name="addContactMech"> |
| <string value="SHIPPING_LOCATION"/> |
| <field field="parameters.shippingContactMechId"/> |
| </call-object-method> |
| <call-object-method obj-field="cart" method-name="setAllShippingContactMechId"> |
| <field field="parameters.shippingContactMechId"/> |
| </call-object-method> |
| </if-not-empty> |
| |
| |
| <if-compare field="parameters.useShippingPostalAddressForBilling" operator="not-equals" value="Y"> |
| <field-to-session field="parameters.billingContactMechId" session-name="billingContactMechId"></field-to-session> |
| <else> |
| <if-not-empty field="cart"> |
| <call-object-method obj-field="cart" method-name="getShippingContactMechId" ret-field="shippingContactMechId"/> |
| </if-not-empty> |
| <field-to-session field="shippingContactMechId" session-name="billingContactMechId"></field-to-session> |
| </else> |
| </if-compare> |
| <!-- set the partyId in the request --> |
| <field-to-request field="partyId" request-name="partyId"/> |
| </simple-method> |
| |
| <simple-method method-name="processShipOptions" short-description="Process Ship Options; to be called as a Request Event" login-required="false"> |
| <script>groovy: |
| shipmentMethod = parameters.get("shipping_method"); |
| if(shipmentMethod != null){ |
| parameters.put("shipmentMethodTypeId", shipmentMethod.substring(0, shipmentMethod.indexOf("@"))); |
| parameters.put("carrierPartyId", shipmentMethod.substring(shipmentMethod.indexOf("@")+1)); |
| } |
| </script> |
| <session-to-field field="cart" session-name="shoppingCart"/> |
| <if-not-empty field="cart"> |
| <set field="shipmentMethodTypeId" from-field="parameters.shipmentMethodTypeId"/> |
| <call-object-method obj-field="cart" method-name="setAllShipmentMethodTypeId"> |
| <field field="shipmentMethodTypeId"/> |
| </call-object-method> |
| |
| <set field="carrierPartyId" from-field="parameters.carrierPartyId"/> |
| <call-object-method obj-field="cart" method-name="setAllCarrierPartyId"> |
| <field field="carrierPartyId"/> |
| </call-object-method> |
| |
| <set field="maySplit" from-field="parameters.may_split" type="Boolean" default-value="false"/> |
| <call-object-method obj-field="cart" method-name="setAllMaySplit"> |
| <field field="maySplit" type="Boolean"/> |
| </call-object-method> |
| |
| <set field="shippingInstruction" from-field="parameters.shipping_instructions" type="String"/> |
| <if-not-empty field="shippingInstruction"> |
| <call-object-method obj-field="cart" method-name="setAllShippingInstructions"> |
| <field field="shippingInstruction" type="String"/> |
| </call-object-method> |
| </if-not-empty> |
| |
| <set field="correspondingPoId" from-field="parameters.correspondingPoId" type="String"/> |
| <if-not-empty field="correspondingPoId"> |
| <call-object-method obj-field="cart" method-name="setPoNumber"> |
| <field field="correspondingPoId" type="String"/> |
| </call-object-method> |
| </if-not-empty> |
| |
| <set field="isGift" from-field="parameters.is_gift" type="Boolean" default-value="false"/> |
| <call-object-method obj-field="cart" method-name="setAllIsGift"> |
| <field field="isGift" type="Boolean"/> |
| </call-object-method> |
| |
| <set field="giftMessage" from-field="parameters.gift_message" type="String"/> |
| <if-not-empty field="giftMessage"> |
| <call-object-method obj-field="cart" method-name="setAllGiftMessage"> |
| <field field="giftMessage" type="String"/> |
| </call-object-method> |
| </if-not-empty> |
| </if-not-empty> |
| </simple-method> |
| |
| </simple-methods> |