Author: mor
Date: Wed Jul 2 06:59:02 2008 New Revision: 673395 URL: http://svn.apache.org/viewvc?rev=673395&view=rev Log: Continuing effort from Sumit Pandit, Brajesh Patel, Rishi Solanki and Santosh Malviya for One Page Checkout page process Now Billing address and Payment information (Credit Card only) is handled. Modified: ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CheckoutMapProcs.xml ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml ofbiz/trunk/applications/ecommerce/webapp/ecommerce/WEB-INF/controller.xml ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/checkoutProcess.js ofbiz/trunk/applications/ecommerce/webapp/ecommerce/order/OnePageCheckoutProcess.ftl Modified: ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CheckoutMapProcs.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CheckoutMapProcs.xml?rev=673395&r1=673394&r2=673395&view=diff ============================================================================== --- ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CheckoutMapProcs.xml (original) +++ ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CheckoutMapProcs.xml Wed Jul 2 06:59:02 2008 @@ -82,6 +82,12 @@ <process field="shippingContactMechId"> <copy to-field="contactMechId" set-if-null="false"/> </process> + <process field="shipToName"> + <copy to-field="toName" set-if-null="false"/> + </process> + <process field="shipToAttnName"> + <copy to-field="attnName" set-if-null="false"/> + </process> <process field="shipToAddress1"> <copy to-field="address1"/> <not-empty> @@ -121,7 +127,7 @@ <process field="billToContactMechId"> <copy to-field="contactMechId" set-if-null="false"/> </process> - <process field="billToToName"> + <process field="billToName"> <copy to-field="toName" set-if-null="false"/> </process> <process field="billToAttnName"> @@ -162,64 +168,4 @@ </process> </simple-map-processor> - <simple-map-processor name="creditCard"> - <make-in-string field="expireDate"> - <in-field field="expMonth"/> - <constant>/</constant> - <in-field field="expYear"/> - </make-in-string> - <process field="productStoreId"><copy/></process> - <process field="paymentMethodId"> - <copy/> - </process> - <process field="contactMechId"> - <copy/> - </process> - <process field="firstNameOnCard"> - <copy/> - <not-empty> - <fail-property resource="EcommerceUiLabels" property="PartyFirstNameOnCardMissingError"/> - </not-empty> - </process> - <process field="middleNameOnCard"> - <copy/> - </process> - <process field="lastNameOnCard"> - <copy/> - <not-empty> - <fail-property resource="EcommerceUiLabels" property="PartyLastNameOnCardMissingError"/> - </not-empty> - </process> - <process field="cardType"> - <copy/> - <not-empty> - <fail-property resource="EcommerceUiLabels" property="PartyCardTypeMissingError"/> - </not-empty> - </process> - <process field="cardNumber"> - <copy/> - <not-empty> - <fail-property resource="EcommerceUiLabels" property="PartyCardNumberMissingError"/> - </not-empty> - </process> - <process field="expMonth"> - <copy/> - <not-empty> - <fail-property resource="EcommerceUiLabels" property="PartyExpMonthMissingError"/> - </not-empty> - </process> - <process field="expYear"> - <copy/> - <not-empty> - <fail-property resource="EcommerceUiLabels" property="PartyExpYearMissingError"/> - </not-empty> - </process> - <process field="expireDate"> - <copy/> - <validate-method method="isDateAfterToday"> - <fail-property resource="EcommerceUiLabels" property="PartyExpDateBeforeTodayError"/> - </validate-method> - </process> - </simple-map-processor> - </simple-map-processors> 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=673395&r1=673394&r2=673395&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 Wed Jul 2 06:59:02 2008 @@ -847,7 +847,6 @@ <simple-method method-name="createUpdateCustomerAndShippingContact" short-description="Create/Update Customer, Shipping Address and other contact details. Set shipping method type" login-required="false"> - <set field="shoppingCart" from-field="parameters.shoppingCart"/> <set field="partyId" from-field="parameters.partyId"/> <set field="userLogin" from-field="parameters.userLogin"/> @@ -871,6 +870,7 @@ <if-empty field="shippingContactMechId"> <set field="shippingContactMechId" from-field="parameters.shippingContactMechId"/> </if-empty> + <set field="parameters.shipToName" value="${parameters.firstName} ${parameters.lastName}"/> <call-map-processor xml-resource="org/ofbiz/ecommerce/customer/CheckoutMapProcs.xml" processor-name="person" in-map-name="parameters" out-map-name="personMap"/> @@ -925,7 +925,6 @@ <!-- Create Or Update ship to address.--> <set field="shipToAddressContext.partyId" from-field="partyId"/> <set field="shipToAddressContext.roleTypeId" from-field="parameters.roleTypeId"/> - <set field="shipToAddressContext.attnName" value="${personContext.firstName} ${personContext.lastName}"/> <set field="shipToAddressContext.userLogin" from-field="userLogin"/> <if-empty field="shippingContactMechId"> @@ -996,7 +995,7 @@ <field field-name="parameters.shippingContactMechId"/> </call-object-method> <call-object-method obj-field-name="shoppingCart" method-name="setShippingContactMechId"> - <field field-name="shippingContactMechId"/> + <field field-name="parameters.shippingContactMechId"/> </call-object-method> <log level="info" message="updated shopping cart shippingContactMechId ${parameters.shippingContactMechId}"/> <call-object-method obj-field-name="shoppingCart" method-name="setOrderPartyId"> @@ -1004,4 +1003,153 @@ </call-object-method> </simple-method> + + <simple-method method-name="setShippingOption" + short-description="Set shipping method" login-required="false"> + </simple-method> + + <simple-method method-name="createUpdateBillingAndPayment" short-description="Create/update billing address and payment information" login-required="false"> + <set field="shoppingCart" from-field="parameters.shoppingCart"/> + <if-empty field="shoppingCart"> + <session-to-field field-name="shoppingCart"/> + </if-empty> + <if-not-empty field="shoppingCart"> + <call-object-method obj-field-name="shoppingCart" method-name="getPartyId" ret-field-name="partyId"/> + <call-object-method obj-field-name="shoppingCart" method-name="getUserLogin" ret-field-name="userLogin"/> + <call-object-method obj-field-name="shoppingCart" method-name="getShippingContactMechId" ret-field-name="shippingContactMechId"/> + </if-not-empty> + <if-empty field="parameters.shippingContactMechId"> + <set field="parameters.shippingContactMechId" from-field="shippingContactMechId"/> + </if-empty> + <set-current-user-login value-name="userLogin"/> + + <!--=================== Validate Bill and Payment settings ================--> + <call-map-processor xml-resource="org/ofbiz/accounting/payment/PaymentMapProcs.xml" + processor-name="createCreditCard" in-map-name="parameters" out-map-name="creditCardContext"/> + + <if-compare field="parameters.useShippingAddressForBilling" operator="not-equals" value="Y"> + <set field="parameters.billToName" value="${parameters.firstNameOnCard} ${parameters.lastNameOnCard}"/> + <call-map-processor xml-resource="org/ofbiz/ecommerce/customer/CheckoutMapProcs.xml" + processor-name="billToAddress" in-map-name="parameters" out-map-name="billToAddressContext"/> + <map-to-map map-name="billToAddressContext" to-map-name="billToAddressAndCreditCardCtx"/> + <map-to-map map-name="creditCardContext" to-map-name="billToAddressAndCreditCardCtx"/> + <if-compare field="parameters.billToCountryGeoId" value="USA" operator="equals"> + <if-empty field="parameters.billToStateProvinceGeoId"> + <set field="tempErrorMessage" value="State is missing, and is required for an address in the United States."/> + <field-to-list field-name="tempErrorMessage" list-name="error_list"/> + </if-empty> + </if-compare> + <check-errors/> + <set field="billToAddressAndCreditCardCtx.partyId" from-field="partyId"/> + <set field="creditCardContext.partyId" from-field="partyId"/> + <set field="creditCardContext.userLogin" from-field="userLogin"/> + <if-empty field="parameters.billToContactMechId"> + <entity-and entity-name="PartyContactMechPurpose" list-name="pcmpList"> + <field-map field-name="partyId" env-name="userLogin.partyId"/> + <field-map field-name="contactMechPurposeTypeId" value="BILLING_LOCATION"/> + </entity-and> + <filter-list-by-date list-name="pcmpList"/> + <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="deletePartyContactMechPurposeCtx"/> + <call-service service-name="deletePartyContactMechPurposeIfExists" in-map-name="deletePartyContactMechPurposeCtx"/> + </if-not-empty> + <entity-and entity-name="PaymentMethod" list-name="paymentMethodList"> + <field-map field-name="partyId" env-name="parameters.partyId"/> + <order-by field-name="-fromDate"/> + </entity-and> + <filter-list-by-date list-name="paymentMethodList"/> + <first-from-list list-name="paymentMethodList" entry-name="paymentMethod"/> + <set field="billToAddressAndCreditCardCtx.paymentMethodId" from-field="paymentMethod.paymentMethodId"/> + <!-- Create Credit Card and Address --> + <call-service service-name="createCreditCardAndAddress" in-map-name="billToAddressAndCreditCardCtx"> + <result-to-field result-name="contactMechId" field-name="parameters.billToContactMechId"/> + <result-to-field result-name="paymentMethodId" field-name="parameters.paymentMethodId"/> + </call-service> + <else> + <!-- Update Credit Card and Address --> + <set field="billToAddressAndCreditCardCtx.contactMechId" from-field="parameters.billToContactMechId"/> + <set field="billToAddressAndCreditCardCtx.paymentMethodId" from-field="parameters.paymentMethodId"/> + <call-service service-name="updateCreditCardAndAddress" in-map-name="billToAddressAndCreditCardCtx"> + <result-to-field result-name="contactMechId" field-name="parameters.billToContactMechId"/> + <result-to-field result-name="paymentMethodId" field-name="parameters.paymentMethodId"/> + </call-service> + <entity-and entity-name="PartyContactMechPurpose" list-name="pcmpList"> + <field-map field-name="partyId" env-name="userLogin.partyId"/> + <field-map field-name="contactMechPurposeTypeId" value="BILLING_LOCATION"/> + </entity-and> + <filter-list-by-date list-name="pcmpList"/> + <first-from-list list-name="pcmpList" entry-name="pcmp"/> + <if-compare-field field="parameters.billToContactMechId" operator="not-equals" to-field="pcmp.contactMechId"> + <if-not-empty field="pcmp"> + <set-service-fields service-name="deletePartyContactMechPurposeIfExists" map-name="pcmp" to-map-name="deletePartyContactMechPurposeCtx"/> + <call-service service-name="deletePartyContactMechPurposeIfExists" in-map-name="deletePartyContactMechPurposeCtx"/> + <set-service-fields service-name="deletePartyContactMech" map-name="pcmp" to-map-name="serviceInMap"/> + <call-service service-name="deletePartyContactMech" in-map-name="serviceInMap"/> + </if-not-empty> + </if-compare-field> + </else> + </if-empty> + <field-to-request field-name="parameters.paymentMethodId" request-name="paymentMethodId"/> + <field-to-request field-name="parameters.billToContactMechId" request-name="billToContactMechId"/> + </if-compare> + + <if-compare field="parameters.useShippingAddressForBilling" operator="equals" value="Y"> + <entity-and entity-name="PartyContactMechPurpose" list-name="pcmpList"> + <field-map field-name="partyId" env-name="userLogin.partyId"/> + <field-map field-name="contactMechPurposeTypeId" value="BILLING_LOCATION"/> + </entity-and> + <filter-list-by-date list-name="pcmpList"/> + <first-from-list list-name="pcmpList" entry-name="pcmp"/> + <if-compare-field field="parameters.shippingContactMechId" operator="not-equals" to-field="pcmp.contactMechId"> + <if-not-empty field="pcmp"> + <set-service-fields service-name="deletePartyContactMechPurposeIfExists" map-name="pcmp" to-map-name="deletePartyContactMechPurposeCtx"/> + <call-service service-name="deletePartyContactMechPurposeIfExists" in-map-name="deletePartyContactMechPurposeCtx"/> + <set-service-fields service-name="deletePartyContactMech" map-name="pcmp" to-map-name="serviceInMap"/> + <call-service service-name="deletePartyContactMech" in-map-name="serviceInMap"/> + </if-not-empty> + <set field="createPartyContactMechPurposeCtx.partyId" from-field="userLogin.partyId"/> + <set field="createPartyContactMechPurposeCtx.contactMechId" from-field="parameters.shippingContactMechId"/> + <set field="createPartyContactMechPurposeCtx.contactMechPurposeTypeId" value="BILLING_LOCATION"/> + <call-service service-name="createPartyContactMechPurpose" in-map-name="createPartyContactMechPurposeCtx"/> + </if-compare-field> + <field-to-request field-name="parameters.shippingContactMechId" request-name="billToContactMechId"/> + + <set field="creditCardContext.contactMechId" from-field="parameters.shippingContactMechId"/> + <if-empty field="parameters.paymentMethodId"> + <!-- Create Credit Card --> + <call-service service-name="createCreditCard" in-map-name="creditCardContext"> + <result-to-field result-name="paymentMethodId" field-name="parameters.paymentMethodId"/> + </call-service> + <else> + <entity-and entity-name="PaymentMethod" list-name="paymentMethodList"> + <field-map field-name="partyId" env-name="parameters.partyId"/> + <order-by field-name="-fromDate"/> + </entity-and> + <filter-list-by-date list-name="paymentMethodList"/> + <first-from-list list-name="paymentMethodList" entry-name="paymentMethod"/> + <set field="creditCardContext.paymentMethodId" from-field="paymentMethod.paymentMethodId"/> + <!-- Update Credit Card --> + <set field="creditCardContext.paymentMethodId" from-field="parameters.paymentMethodId"/> + <call-service service-name="updateCreditCard" in-map-name="creditCardContext"> + <result-to-field result-name="paymentMethodId" field-name="parameters.paymentMethodId"/> + </call-service> + </else> + </if-empty> + <field-to-request field-name="parameters.paymentMethodId" request-name="paymentMethodId"/> + </if-compare> + + <!--============== Set Payment Method ================--> + <set field="paymentMethodId" from-field="parameters.paymentMethodId"/> + <set field="cardSecurityCode" from-field="parameters.cardSecurityCode"/> + <call-bsh> + <![CDATA[ + import org.ofbiz.order.shoppingcart.ShoppingCart; + checkOutHelper = new org.ofbiz.order.shoppingcart.CheckOutHelper(dispatcher, delegator, shoppingCart); + callResult = checkOutHelper.finalizeOrderEntryPayment(paymentMethodId, null, false, false); + ShoppingCart.CartPaymentInfo cpi = shoppingCart.getPaymentInfo(paymentMethodId, null, null, null, true); + cpi.securityCode = cardSecurityCode; + ]]> + </call-bsh> + </simple-method> </simple-methods> Modified: ofbiz/trunk/applications/ecommerce/webapp/ecommerce/WEB-INF/controller.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/WEB-INF/controller.xml?rev=673395&r1=673394&r2=673395&view=diff ============================================================================== --- ofbiz/trunk/applications/ecommerce/webapp/ecommerce/WEB-INF/controller.xml (original) +++ ofbiz/trunk/applications/ecommerce/webapp/ecommerce/WEB-INF/controller.xml Wed Jul 2 06:59:02 2008 @@ -1590,6 +1590,20 @@ <response name="error" type="none"/> </request-map> + <request-map uri="setShippingOption"> + <security https="true" auth="false"/> + <event type="jsonsimple" path="org/ofbiz/ecommerce/customer/CustomerEvents.xml" invoke="setShippingOption"/> + <response name="success" type="request" value="onePageCheckout"/> + <response name="error" type="none"/> + </request-map> + + <request-map uri="createUpdateBillingAndPayment"> + <security https="true" auth="false"/> + <event type="jsonsimple" path="org/ofbiz/ecommerce/customer/CustomerEvents.xml" invoke="createUpdateBillingAndPayment"/> + <response name="success" type="none"/> + <response name="error" type="none"/> + </request-map> + <!-- End of Request Mappings --> <!-- View Mappings --> Modified: ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/checkoutProcess.js URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/checkoutProcess.js?rev=673395&r1=673394&r2=673395&view=diff ============================================================================== --- ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/checkoutProcess.js (original) +++ ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/checkoutProcess.js Wed Jul 2 06:59:02 2008 @@ -30,35 +30,41 @@ // Shipping Event.observe($('editShippingOptions'), 'click', function() { processShippingAddress(); - displayShippingOptionPanel(); + displayShippingOptionPanel(); }); Event.observe($('openShippingPanel'), 'click', function() { - displayShippingPanel(); + displayShippingPanel(); }); // Shipping Options Event.observe($('editBilling'), 'click', function() { - displayBillingPanel(); + // TODO : Will be uncomment soon. + //setShippingOption(); + displayBillingPanel(); }); Event.observe($('openShippingOptionPanel'), 'click', function() { - displayShippingOptionPanel(); + displayShippingOptionPanel(); }); // Billing Event.observe($('openBillingPanel'), 'click', function() { - displayBillingPanel(); + displayBillingPanel(); }); Event.observe($('openOrderSubmitPanel'), 'click', function() { - displayOrderSubmitPanel(); + processBillingAndPayment(); + displayOrderSubmitPanel(); }); + + // For Billing Address Same As Shipping + Event.observe('useShippingAddressForBilling', 'click', useShippingAddressForBillingToggel); }); // Cart function displayShippingPanel() { - if(!$('editShippingPanel').visible()) { + if (!$('editShippingPanel').visible()) { Effect.BlindDown('editShippingPanel', {duration: 0.5}); Effect.BlindUp('editCartPanel', {duration: 0.5}); Effect.BlindUp('editShippingOptionPanel', {duration: 0.5}); @@ -73,7 +79,7 @@ } } function displayCartPanel() { - if(!$('editCartPanel').visible()) { + if (!$('editCartPanel').visible()) { Effect.BlindDown('editCartPanel', {duration: 0.5}); Effect.BlindUp('editShippingPanel', {duration: 0.5}); Effect.BlindUp('editShippingOptionPanel', {duration: 0.5}); @@ -90,7 +96,7 @@ // Shipping function displayShippingOptionPanel() { - if(!$('editShippingOptionPanel').visible()) { + if (!$('editShippingOptionPanel').visible()) { Effect.BlindDown('editShippingOptionPanel', {duration: 0.5}); Effect.BlindDown('shippingCompleted', {duration: 0.5}); Effect.BlindUp('editCartPanel', {duration: 0.5}); @@ -109,8 +115,9 @@ // Billing function displayBillingPanel() { - if(!$('editBillingPanel').visible()) { + if (!$('editBillingPanel').visible()) { Effect.BlindDown('editBillingPanel', {duration: 0.5}); + Effect.BlindDown('shippingOptionCompleted', {duration: 0.5}); Effect.BlindUp('editCartPanel', {duration: 0.5}); Effect.BlindUp('editShippingPanel', {duration: 0.5}); Effect.BlindUp('editShippingOptionPanel', {duration: 0.5}); @@ -122,40 +129,41 @@ Effect.Appear('shippingOptionSummaryPanel', {duration: 0.5}); //Effect.Appear('orderSubmitPanel', {duration: 0.5}); } + setDataInShippingOptionCompleted(); } // Order Submit function displayOrderSubmitPanel() { - if(!$('orderSubmitPanel').visible()) { + if (!$('orderSubmitPanel').visible()) { Effect.BlindDown('orderSubmitPanel', {duration: 0.5}); + Effect.BlindDown('billingCompleted', {duration: 0.5}); Effect.BlindUp('editCartPanel', {duration: 0.5}); Effect.BlindUp('editShippingPanel', {duration: 0.5}); Effect.BlindUp('editShippingOptionPanel', {duration: 0.5}); Effect.BlindUp('editBillingPanel', {duration: 0.5}); - //Effect.Fade('billingSummaryPanel', {duration: 0.5}); Effect.Appear('cartSummaryPanel', {duration: 0.5}); Effect.Appear('shippingSummaryPanel', {duration: 0.5}); Effect.Appear('shippingOptionSummaryPanel', {duration: 0.5}); Effect.Appear('billingSummaryPanel', {duration: 0.5}); - } + } + setDataInBillingCompleted(); } function processShippingAddress() { - console.log('shippingForm' +$('shippingForm').serialize()); new Ajax.Request('/ecommerce/control/createUpdateShippingAddress', { - asynchronous: true, + asynchronous: false, onSuccess: function(transport) { var data = transport.responseText.evalJSON(true); console.log(data); if (data._ERROR_MESSAGE_LIST_ != undefined) { console.log(data._ERROR_MESSAGE_LIST_); - }else if (data._ERROR_MESSAGE_ != undefined) { - if (data._ERROR_MESSAGE_LIST_ == "SessionTimedOut"){ + } else if (data._ERROR_MESSAGE_ != undefined) { + if (data._ERROR_MESSAGE_LIST_ == "SessionTimedOut") { console.log('session time out'); } console.log(data._ERROR_MESSAGE_); - }else { + } else { // Process Shipping data response. $('shippingPartyId').value = data.partyId; $('shippingContactMechId').value = data.shippingContactMechId; @@ -168,7 +176,6 @@ } function setDataInShippingCompleted() { - console.log('calling the set method'); var fullName = $('firstName').value + " " +$('lastName').value; var shippingContactPhoneNumber = $F('shippingCountryCode')+ "-" + $F('shippingAreaCode') + "-" + $F('shippingContactNumber')+ "-" + $F('shippingExtension'); @@ -179,4 +186,89 @@ $('completedShipToAddress2').update($('shipToAddress2').value); var shipToGeo = $('shipToCity').value+","+$('shipToStateProvinceGeoId').value +" "+$('shipToCountryGeoId').value+" "+$('shipToPostalCode').value; $('completedShipToGeo').update(shipToGeo); + // set shippingContactMechId in Billing form. + $('shippingContactMechIdInBillingForm').value = $F('shippingContactMechId'); +} + +// Shipping option +var shipTotal = null; +var shipMethod = null; +function setShippingOption() { + new Ajax.Request('/ecommerce/control/setShippingOption', { + asynchronous: false, + onSuccess: function(transport) { + var data = transport.responseText.evalJSON(true); + console.log(data); + shipMethod = data.shippingDescription; + shipTotal = data.shippingTotal; + if (data._ERROR_MESSAGE_LIST_ != undefined) { + console.log(data._ERROR_MESSAGE_LIST_); + } else if (data._ERROR_MESSAGE_ != undefined) { + if (data._ERROR_MESSAGE_LIST_ == "SessionTimedOut") { + console.log('session time out'); + } + console.log(data._ERROR_MESSAGE_); + } else { + $('shippingDescription').value = data.shippingDescription; + $('shippingTotal').value = data.shippingTotal; + $('cartGrandTotal').value = data.cartGrandTotal; + $('totalSalesTax').value = data.totalSalesTax; + } + }, parameters: $('shippingOptionForm').serialize(), requestHeaders: {Accept: 'application/json'} + }); +} + +function setDataInShippingOptionCompleted() { + var shipOpt = shipMethod +'-'+shipTotal; + $('selectedShipmentOption').update(shipOpt); +} + +// Billing +function useShippingAddressForBillingToggel() { + if($('useShippingAddressForBilling').checked) { + $('billToAddress1').value = $F('shipToAddress1'); + $('billToAddress2').value = $F('shipToAddress2'); + $('billToCity').value = $F('shipToCity'); + $('billToStateProvinceGeoId').value = $F('shipToStateProvinceGeoId'); + $('billToPostalCode').value = $F('shipToPostalCode'); + $('billToCountryGeoId').value = $F('shipToCountryGeoId'); + Effect.BlindUp($('billingAddress'), {duration: 0.5}); + } else { + Effect.BlindDown($('billingAddress'), {duration: 0.5}); + } +} + +function processBillingAndPayment() { + new Ajax.Request('/ecommerce/control/createUpdateBillingAndPayment', { + asynchronous: false, + onSuccess: function(transport) { + var data = transport.responseText.evalJSON(true); + console.log(data); + if (data._ERROR_MESSAGE_LIST_ != undefined) { + console.log(data._ERROR_MESSAGE_LIST_); + } else if (data._ERROR_MESSAGE_ != undefined) { + if (data._ERROR_MESSAGE_LIST_="SessionTimedOut") { + console.log('session time out'); + } + console.log(data._ERROR_MESSAGE_); + } else { + $('billToContactMechId').value = data.billToContactMechId; + $('paymentMethodId').value = data.paymentMethodId; + } + }, parameters: $('billingForm').serialize(), requestHeaders: {Accept: 'application/json'} + }); +} + +function setDataInBillingCompleted() { + var fullName = $F('firstNameOnCard') + " " +$F('lastNameOnCard'); + $('completedBillToAttn').update("Attn: " + fullName); + var cardNumber = "CC#:XXXXXXXXXXXX"+$F('cardNumber').gsub('-','').slice(12,16); + $('completedCCNumber').update(cardNumber); + var expiryDate = "Expires:"+$F('expMonth')+"/"+$F('expYear'); + $('completedExpiryDate').update(expiryDate); + $('completedBillToAddress1').update($F('billToAddress1')); + $('completedBillToAddress2').update($F('billToAddress2')); + var billToGeo = $F('billToCity')+","+$F('billToStateProvinceGeoId') +" "+$F('billToCountryGeoId')+" "+$F('billToPostalCode'); + $('completedBillToGeo').update(billToGeo); + $('paymentMethod').update($F('paymentMethodTypeId')); } \ No newline at end of file Modified: ofbiz/trunk/applications/ecommerce/webapp/ecommerce/order/OnePageCheckoutProcess.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/order/OnePageCheckoutProcess.ftl?rev=673395&r1=673394&r2=673395&view=diff ============================================================================== --- ofbiz/trunk/applications/ecommerce/webapp/ecommerce/order/OnePageCheckoutProcess.ftl (original) +++ ofbiz/trunk/applications/ecommerce/webapp/ecommerce/order/OnePageCheckoutProcess.ftl Wed Jul 2 06:59:02 2008 @@ -182,7 +182,7 @@ <label for="shipToPostalCode"> ${uiLabelMap.FormFieldTitleZipCode}<span class="requiredLabel"> *</span><span id="advice-required-shipToPostalCode" class="custom-advice" style="display:none">(required)</span><span id="advice-validate-zip-shipToPostalCode" class="custom-advice" style="display:none">(required)</span></label> </div> <div class="field-widget"> - <input id="shipToPostalCode" name="shipToPostalCode" class="required validate-zip input_mask mask_zip" type="text" value="${parameters.shipToPostalCode?if_exists}"/> + <input id="shipToPostalCode" name="shipToPostalCode" class="required validate-zip input_mask mask_zip" type="text" value="${parameters.shipToPostalCode?if_exists}" maxlength=8/> </div> </div> <div class="form-row"> @@ -283,8 +283,40 @@ <div class="screenlet-header"><div class="boxhead" align="left">Step 4: Billing</div></div> <div id="billingSummaryPanel"> <div align="left" style="width: auto; padding: 10px 40px 30px 40px;"><a href="javascript:void(0);" id="openBillingPanel"><h3>Click here to edit</h3></a></div> - <div id="billingSummary" style="display: none;"> - Billing and Payment summary. + <div class="completed" id="billingCompleted" style="display: none;"> + <a href="javascript:void(0);" id="openBillingAndPersonlDetail"> + <h3>Billing and Payment Summary</h3> + </a> + <table cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td style=" padding: 6px; width: 60px;" valign="top">Bill To:</td> + <td style=" padding: 6px; width: 60px;" valign="top"> + <div> + <div id="completedBillToAttn"></div> + <div id="completedCCNumber"></div> + <div id="completedExpiryDate"></div> + </div> + </td> + <td style=" padding: 6px; width: 60px;" valign="top">Location:</td> + <td style="padding: 6px; width: 60px;" valign="top"> + <div> + <div id="completedBillToAddress1"></div> + <div id="completedBillToAddress2"></div> + <div id="completedBillToGeo"></div> + </div> + </td> + </tr> + <tr> + <td style=" padding: 6px; width: 60px;" valign="top">Payment Method:</td> + <td style="padding: 6px; width: 80px;" valign="top"> + <div> + <div id="paymentMethod"></div> + </div> + </td> + </tr> + </tbody> + </table> </div> </div> <div id="editBillingPanel" style="display: none;"> @@ -293,13 +325,10 @@ <input type="hidden" id ="billToContactMechId" name="billToContactMechId" value="${parameters.billToContactMechId?if_exists}"/> <input type="hidden" id="shippingContactMechIdInBillingForm" name="shippingContactMechId" value="${parameters.shippingContactMechId?if_exists}"/> <input type="hidden" id="paymentMethodId" name="paymentMethodId" value="${parameters.paymentMethodId?if_exists}"/> - <input type="hidden" name="singleUsePayment" value="Y"/> - <input type="hidden" name="appendPayment" value="Y"/> <input type="hidden" id="paymentMethodTypeId" name="paymentMethodTypeId" value="CREDIT_CARD"/> <input type="hidden" id="billingPartyId" name="partyId" value="${parameters.partyId?if_exists}"/> <input type="hidden" name="userLogin" value="${parameters.userLogin?if_exists}"/> <input type="hidden" name="expireDate" value="${parameters.expireDate?if_exists}"/> - <input type="hidden" id="billToPhoneContactMechId" name="phoneContactMechId" value="${parameters.billToPhoneContactMechId?if_exists}"/> <input type="hidden" id="cardType" name="cardType" value="Visa"/> <div class="panelBody" id="billingId"> <table id="billingTable"> @@ -362,12 +391,12 @@ <fieldset class="right"> <div class="form-row"> <span> - <input class="checkbox" id="sameAsShipping" name="sameAsShipping" type="checkbox" value="Y" <#if parameters.sameAsShipping?has_content && parameters.sameAsShipping?default("")=="Y">checked</#if>> + <input class="checkbox" id="useShippingAddressForBilling" name="useShippingAddressForBilling" type="checkbox" value="Y" <#if parameters.useShippingAddressForBilling?has_content && parameters.useShippingAddressForBilling?default("")=="Y">checked</#if>> <span style="font-size:10px; float:left; padding:0px 0px 0px 6px; margin-top:10px; width:300px">${uiLabelMap.FacilityBillingAddressSameShipping}</span> </span> </div> <div style="clear: both"></div> - <div id="billingAddress" <#if parameters.sameAsShipping?has_content && parameters.sameAsShipping?default("")=="Y">style="display:none"</#if>> + <div id="billingAddress" <#if parameters.useShippingAddressForBilling?has_content && parameters.useShippingAddressForBilling?default("")=="Y">style="display:none"</#if>> <div class="form-row"> <div class="field-label"> <label for="address1">${uiLabelMap.PartyAddressLine1}<span class="requiredLabel"> *</span><span id="advice-required-billToAddress1" class="custom-advice" style="display:none">(required)</span></label> @@ -414,31 +443,13 @@ <div class="form-row"> <div class="field-label"> - <label for="billingContactPhoneNumber">${uiLabelMap.PartyZipCode}<span class="requiredLabel"> *</span><span id="advice-required-billingContactPhoneNumber" class="custom-advice" style="display:none">(required)</span><span id="advice-validate-phone-billingContactPhoneNumber" class="custom-advice" style="display:none">(required)</span></label> + <label for="billToPostalCode">${uiLabelMap.PartyZipCode}<span class="requiredLabel"> *</span><span id="advice-required-billToPostalCode" class="custom-advice" style="display:none">(required)</span><span id="advice-validate-billToPostalCode" class="custom-advice" style="display:none">(required)</span></label> </div> <div class="field-widget"> <input id="billToPostalCode" name="billToPostalCode" class="required validate-zip input_mask mask_zip" type="text" value="${parameters.billToPostalCode?if_exists}" /> </div> </div> <div class="form-row"> - <div class="field-label"> - <label for="countryCode">Country Code<span class="requiredLabel"> *</span><span id="advice-required-shippingContactPhoneNumber" class="custom-advice" style="display:none">(required)</span><span id="advice-validate-phone-shippingContactPhoneNumber" class="custom-advice" style="display:none">(required)</span></label> - <input name="countryCode" class="input_mask mask_phone required validate-phone" id="billingCountryCode" value="${parameters.countryCode?if_exists}" size="3" maxlength=3> - </div> - <div class="field-label"> - <label for="areaCode">Area Code<span class="requiredLabel"> *</span><span id="advice-required-billingContactPhoneNumber" class="custom-advice" style="display:none">(required)</span><span id="advice-validate-phone-billingContactPhoneNumber" class="custom-advice" style="display:none">(required)</span></label> - <input name="areaCode" class="input_mask mask_phone required validate-phone" id="billingAreaCode" value="${parameters.areaCode?if_exists}" size="3" maxlength=4> - </div> - <div class="field-label"> - <label for="contactNumber">Contact Number<span class="requiredLabel"> *</span><span id="advice-required-billingContactPhoneNumber" class="custom-advice" style="display:none">(required)</span><span id="advice-validate-phone-billingContactPhoneNumber" class="custom-advice" style="display:none">(required)</span></label> - <input name="contactNumber" class="input_mask mask_phone required validate-phone" id="billingContactNumber" value="${parameters.contactNumber?if_exists}" size="5" maxlength=6> - </div> - <div class="field-label"> - <label for="extension">Extention<span class="requiredLabel"> *</span><span id="advice-required-billingContactPhoneNumber" class="custom-advice" style="display:none">(required)</span><span id="advice-validate-phone-billingContactPhoneNumber" class="custom-advice" style="display:none">(required)</span></label> - <input name="extension" class="input_mask mask_phone required validate-phone" id="billingExtension" value="${parameters.extension?if_exists}" size="3" maxlength=3> - </div> - </div> - <div class="form-row"> <div class="form-label">${uiLabelMap.PartyCountry}</div> <div class="form-field"> <select name="billToCountryGeoId" id="billToCountryGeoId" class="selectBox"> @@ -460,7 +471,6 @@ <div><h3><span class="editStep"><a href="javascript:void(0);" id="openOrderSubmitPanel"><h3>Continue for step 5</h3></a></span></h3></div> </div> </div> - <div id="" class="screenlet"> <div class="screenlet-header"><div class="boxhead" align="left">Step 5: Submit Order</div></div> <div id="orderSubmitPanel" style="display: none;"> |
Free forum by Nabble | Edit this page |