You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by mo...@apache.org on 2008/07/03 12:27:32 UTC

svn commit: r673646 - in /ofbiz/trunk/applications/ecommerce: script/org/ofbiz/ecommerce/customer/CustomerEvents.xml webapp/ecommerce/images/checkoutProcess.js webapp/ecommerce/order/OnePageCheckoutProcess.ftl

Author: mor
Date: Thu Jul  3 03:27:32 2008
New Revision: 673646

URL: http://svn.apache.org/viewvc?rev=673646&view=rev
Log:
Now Shipping options are coming in Step 3 Panel of One Page Checkout Process
Patch from Sumit Pandit

Modified:
    ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.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/CustomerEvents.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml?rev=673646&r1=673645&r2=673646&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 Thu Jul  3 03:27:32 2008
@@ -1001,11 +1001,114 @@
         <call-object-method obj-field-name="shoppingCart" method-name="setOrderPartyId">
             <field field-name="partyId"/>
         </call-object-method>
+
+        <!--  Preparing Shippping Options -->
+        <call-bsh>
+            <![CDATA[
+                import org.ofbiz.order.shoppingcart.shipping.ShippingEstimateWrapper;
+                shippingEstWpr = ShippingEstimateWrapper.getWrapper(dispatcher, shoppingCart, 0);
+                parameters.put("shippingEstWpr", shippingEstWpr);
+            ]]>
+        </call-bsh>
+        <set field="shippingEstWpr" from-field="parameters.shippingEstWpr"/>
+        <call-object-method obj-field-name="shippingEstWpr" method-name="getShippingMethods" ret-field-name="carrierShipmentMethodList"/>
+        <call-object-method obj-field-name="shoppingCart" method-name="getShipmentMethodTypeId" ret-field-name="shipmentMethodTypeId"/>
+        <call-object-method obj-field-name="shoppingCart" method-name="getCarrierPartyId" ret-field-name="carrierPartyId"/>
+        <call-object-method obj-field-name="shoppingCart" method-name="getCurrency" ret-field-name="currency"/>
+        <if-not-empty field="shipmentMethodTypeId">
+            <if-not-empty field="carrierPartyId">
+                 <set field="chosenShippingMethod" value="${shipmentMethodTypeId}@${carrierPartyId}"/>
+            </if-not-empty>
+        </if-not-empty>
+        <iterate list-name="carrierShipmentMethodList"  entry-name="carrierShipmentMethod">
+            <call-object-method obj-field-name="shippingEstWpr" method-name="getShippingEstimate" ret-field-name="shippingEst">
+                <field field-name="carrierShipmentMethod" type="org.ofbiz.entity.GenericValue"/>
+            </call-object-method>
+            <if-empty field="shippingEst">
+                <set field="shippingEst" value="-1" type="Integer"/>
+            </if-empty>
+            <set field="negValue" value="-1" type="Integer"/>
+            <set field="shippingMethod" value="${carrierShipmentMethod.shipmentMethodTypeId}@${carrierShipmentMethod.partyId}"/>
+
+            <if-compare-field field="shippingEst" operator="greater" to-field="negValue">
+                <set field="shippingDesc" value="${carrierShipmentMethod.description} - ${currency}${shippingEst}"/>
+                <else>
+                    <set field="shippingDesc" value="${carrierShipmentMethod.description} - ${currency}+${uiLabelMap.OrderCalculatedOffline}"/>
+                </else>
+            </if-compare-field>
+            <set field="shippingOptionMap.shippingMethod" from-field="shippingMethod"/>
+            <set field="shippingOptionMap.shippingDesc" from-field="shippingDesc"/>
+            <field-to-list field-name="shippingOptionMap" list-name="shippingOptions"/>
+            <clear-field field-name="shippingOptionMap"/>
+        </iterate>
+         <set field="parameters.shippingOptions" from-field="shippingOptions"/>
+         <field-to-request field-name="parameters.shippingOptions" request-name="shippingOptions"/>
     </simple-method>
-    
 
-    <simple-method method-name="setShippingOption" 
-         short-description="Set shipping method" login-required="false">
+    <simple-method method-name="setShippingOption" short-description="Set shipping method" login-required="false">
+        <call-bsh><![CDATA[
+            shippingMethod = parameters.get("shipMethod");
+            if(shippingMethod != null) {
+                shipmentMethodTypeId = shippingMethod.substring(0, shippingMethod.indexOf("@"));
+                carrierPartyId = shippingMethod.substring(shippingMethod.indexOf("@")+1);
+                parameters.put("shipmentMethodTypeId", shipmentMethodTypeId);
+                parameters.put("carrierPartyId", carrierPartyId);
+            }
+        ]]></call-bsh>
+        <set field="shipmentMethodTypeId" from-field="parameters.shipmentMethodTypeId"/>
+        <set field="carrierPartyId" from-field="parameters.carrierPartyId"/>
+        <log level="info" message=" shipmentMethodTypeId is ${shipmentMethodTypeId} "/>
+        <log level="info" message=" carrierPartyId is ${carrierPartyId}"/>
+        
+        <entity-one entity-name="CarrierAndShipmentMethod" value-name="shipmentMethod">
+            <field-map field-name="shipmentMethodTypeId" env-name="shipmentMethodTypeId"/>
+            <field-map field-name="partyId" env-name="carrierPartyId"/>
+            <field-map field-name="roleTypeId" value="CARRIER"/>
+        </entity-one>
+        <field-to-request field-name="shipmentMethod.shippingDescription" request-name="shippingDescription"/>
+
+        <set field="shoppingCart" from-field="parameters.shoppingCart"/>
+        <if-empty field="shoppingCart">
+            <session-to-field field-name="shoppingCart"/>
+        </if-empty>
+        <call-object-method obj-field-name="shoppingCart" method-name="setShipmentMethodTypeId">
+            <field field-name="shipmentMethodTypeId"/>
+        </call-object-method>
+        <call-object-method obj-field-name="shoppingCart" method-name="setCarrierPartyId">
+            <field field-name="carrierPartyId"/>
+        </call-object-method>
+        <call-object-method  obj-field-name="shoppingCart" method-name="getCurrency" ret-field-name="isoCode"/>
+        <set field="dispatcher" from-field="parameters.dispatcher" type="Object"/>
+        <set field="delegator" from-field="parameters.delegator" type="Object"/>
+        <set field="locale" from-field="parameters.locale" type="Object"/>
+ 
+        <call-bsh><![CDATA[
+            Map shipCost = org.ofbiz.order.shoppingcart.shipping.ShippingEvents.getShipGroupEstimate(dispatcher, delegator, shoppingCart, 0);
+            Double shippingTotal = (Double) shipCost.get("shippingTotal");
+            if (shippingTotal == null) {
+                shippingTotal = new Double(0.00);
+            }
+            shoppingCart.setItemShipGroupEstimate(shippingTotal.doubleValue(), 0);
+            parameters.put("shippingTotal", org.ofbiz.base.util.UtilFormatOut.formatCurrency(shippingTotal.doubleValue(), isoCode, locale));
+
+            checkOutHelper = new org.ofbiz.order.shoppingcart.CheckOutHelper(dispatcher, delegator, shoppingCart);
+            // Calculate and add the tax adjustments
+            checkOutHelper.calcAndAddTax();
+
+            double salesTax = shoppingCart.getTotalSalesTax();
+            totalSalesTax = org.ofbiz.base.util.UtilFormatOut.formatCurrency(salesTax, isoCode, locale);
+            parameters.put("totalSalesTax", totalSalesTax);
+ 
+            cartGrandTotal = org.ofbiz.base.util.UtilFormatOut.formatCurrency(shoppingCart.getGrandTotal(), isoCode, locale);
+            parameters.put("cartGrandTotal", cartGrandTotal);
+ 
+        ]]></call-bsh>
+        <field-to-request field-name="parameters.shippingTotal" request-name="shippingTotal"/>
+        <field-to-request field-name="parameters.cartGrandTotal" request-name="cartGrandTotal"/>
+        <field-to-request field-name="parameters.totalSalesTax" request-name="totalSalesTax"/>
+        <log level="info" message="Shipping total is : ${parameters.shippingTotal}"/>
+        <log level="info" message="Cart Grand total is : ${parameters.cartGrandTotal}"/>
+        <log level="info" message="Total sale tax is : ${parameters.totalSalesTax}"/>
     </simple-method>
 
     <simple-method method-name="createUpdateBillingAndPayment" short-description="Create/update billing address and payment information" login-required="false">

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=673646&r1=673645&r2=673646&view=diff
==============================================================================
--- ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/checkoutProcess.js (original)
+++ ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/checkoutProcess.js Thu Jul  3 03:27:32 2008
@@ -39,8 +39,7 @@
 
     // Shipping Options
     Event.observe($('editBilling'), 'click', function() {
-        // TODO : Will be uncomment soon.
-        //setShippingOption(); 
+        setShippingOption(); 
         displayBillingPanel();
     });
 
@@ -154,11 +153,18 @@
 }
 
 function processShippingAddress() {
+    var shipOptions = null;
+    var optionList = [];
     new Ajax.Request('/ecommerce/control/createUpdateShippingAddress', {
         asynchronous: false, 
         onSuccess: function(transport) {
             var data = transport.responseText.evalJSON(true);
             console.log(data);
+            shipOptions = data.shippingOptions;
+            shipOptions.each( function(shipOption) {
+                optionList.push("<option value = " + shipOption.shippingMethod + " > " + shipOption.shippingDesc + " </option>");
+            });
+            $('shipMethod').innerHTML = optionList;
             if (data._ERROR_MESSAGE_LIST_ != undefined) {
                 console.log(data._ERROR_MESSAGE_LIST_);
             } else if (data._ERROR_MESSAGE_ != undefined) {
@@ -219,6 +225,7 @@
             }
         }, parameters: $('shippingOptionForm').serialize(), requestHeaders: {Accept: 'application/json'}
     });
+    updateCartData();
 }
 
 function setDataInShippingOptionCompleted() {

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=673646&r1=673645&r2=673646&view=diff
==============================================================================
--- ofbiz/trunk/applications/ecommerce/webapp/ecommerce/order/OnePageCheckoutProcess.ftl (original)
+++ ofbiz/trunk/applications/ecommerce/webapp/ecommerce/order/OnePageCheckoutProcess.ftl Thu Jul  3 03:27:32 2008
@@ -423,7 +423,6 @@
             </div>
 
             <div id="editShippingOptionPanel" style="display: none;">
-            <#if shoppingCart.getPartyId()?exists>
               <form name="shippingOptionForm" id="shippingOptionForm" action="<@o...@ofbizUrl>" method="post">
                 <table id="shippingTable">
                   <tr><td>
@@ -432,40 +431,12 @@
                         <div class="field-label">
                           <label for="shipmethod">${uiLabelMap.FormFieldTitleShippingMethod}<span class="requiredLabel"> *</span><span id="advice-required-shipping_method" class="custom-advice" style="display:none">(required)</span></label>
                         </div>
-                        <#if shoppingCart?exists>
-                          <#assign shippingEstWpr = Static["org.ofbiz.order.shoppingcart.shipping.ShippingEstimateWrapper"].getWrapper(dispatcher, shoppingCart, 0)>
-                          <#assign carrierShipmentMethodList = shippingEstWpr.getShippingMethods()>
-                          <#if shoppingCart.getShipmentMethodTypeId()?exists && shoppingCart.getCarrierPartyId()?exists>
-                            <#assign chosenShippingMethod = shoppingCart.getShipmentMethodTypeId() + '@' + shoppingCart.getCarrierPartyId()>
-                          </#if>
-                        </#if>
-                        <div class="field-widget">
-                          <select id="shipMethod" name="shipMethod" class="required">
-                            <#list carrierShipmentMethodList as carrierShipmentMethod>
-                              <#assign shippingEst = shippingEstWpr.getShippingEstimate(carrierShipmentMethod)?default(-1)>
-                              <#if (shippingEst > -1)>
-                                <#assign shippingMethod = carrierShipmentMethod.shipmentMethodTypeId + "@" + carrierShipmentMethod.partyId>                                        
-                                <option value="${shippingMethod}" 
-                                  <#if ((chosenShippingMethod)?exists && chosenShippingMethod == shippingMethod)>SELECTED</#if>>
-                                  ${carrierShipmentMethod.description?if_exists}
-                                  <#if shippingEst?has_content> - 
-                                    <#if (shippingEst > -1)?exists> 
-                                      <@ofbizCurrency amount=shippingEst isoCode=shoppingCart.getCurrency()/> 
-                                    <#else> 
-                                      ${uiLabelMap.OrderCalculatedOffline} 
-                                    </#if> 
-                                  </#if> 
-                                </option>
-                              </#if>                                         
-                            </#list> 
-                          </select>
-                        </div>
+                        <select id="shipMethod" name="shipMethod" class="required"></select>
                       </div>
                     </fieldset>
                   </td></tr>
                 </table>
               </form>
-              </#if>
               <div align="right"><h3><span class="editStep"><a href="javascript:void(0);" id="editBilling"><h3>Continue for step 4</h3></a></span></h3></div>
             </div>
           </div>