Author: bibryam
Date: Tue Feb 5 02:52:59 2008 New Revision: 618606 URL: http://svn.apache.org/viewvc?rev=618606&view=rev Log: A slightly modified patch for "dynamic price calculation for configurable product" - OFBIZ-995 Modified: ofbiz/trunk/applications/ecommerce/widget/CatalogScreens.xml ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml ofbiz/trunk/applications/order/webapp/ordermgr/entry/catalog/configproductdetail.ftl ofbiz/trunk/applications/order/widget/ordermgr/OrderEntryCatalogScreens.xml Modified: ofbiz/trunk/applications/ecommerce/widget/CatalogScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/widget/CatalogScreens.xml?rev=618606&r1=618605&r2=618606&view=diff ============================================================================== --- ofbiz/trunk/applications/ecommerce/widget/CatalogScreens.xml (original) +++ ofbiz/trunk/applications/ecommerce/widget/CatalogScreens.xml Tue Feb 5 02:52:59 2008 @@ -232,6 +232,7 @@ <set field="MainColumnStyle" value="center"/> <set field="isEcommerceScreen" value="Y"/> <set field="titleProperty" value="PageTitleProductPage"/> + <set field="layoutSettings.javaScripts[]" value="/images/prototypejs/prototype.js" global="true"/> <set field="configproductdetailScreen" value="component://ecommerce/widget/CatalogScreens.xml#configproductdetail"/> <script location="component://order/webapp/ordermgr/WEB-INF/actions/entry/catalog/product.bsh"/> </actions> Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java?rev=618606&r1=618605&r2=618606&view=diff ============================================================================== --- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java (original) +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java Tue Feb 5 02:52:59 2008 @@ -1653,4 +1653,25 @@ } return "success"; } + + public static String getConfigDetailsEvent(HttpServletRequest request, HttpServletResponse response) { + + GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator"); + String productId = request.getParameter("product_id"); + String currencyUomId = ShoppingCartEvents.getCartObject(request).getCurrency(); + ProductConfigWrapper configWrapper = ProductConfigWorker.getProductConfigWrapper(productId, currencyUomId, request); + if (configWrapper == null) { + Debug.logWarning("configWrapper is null", module); + request.setAttribute("_ERROR_MESSAGE_", "configWrapper is null"); + return "error"; + } + ProductConfigWorker.fillProductConfigWrapper(configWrapper, request); + if (configWrapper.isCompleted()) { + ProductConfigWorker.storeProductConfigWrapper(configWrapper, delegator); + request.setAttribute("configId", configWrapper.getConfigId()); + } + + request.setAttribute("totalPrice", org.ofbiz.base.util.UtilFormatOut.formatCurrency(configWrapper.getTotalPrice(), currencyUomId, UtilHttp.getLocale(request))); + return "success"; + } } Modified: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml?rev=618606&r1=618605&r2=618606&view=diff ============================================================================== --- ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml (original) +++ ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml Tue Feb 5 02:52:59 2008 @@ -27,7 +27,7 @@ <!-- event handlers --> <handler name="service-multi" type="request" class="org.ofbiz.webapp.event.ServiceMultiEventHandler"/> <handler name="bsf" type="request" class="org.ofbiz.webapp.event.BsfEventHandler"/> - + <handler name="jsonjava" type="request" class="org.ofbiz.webapp.event.JSONJavaEventHandler"/> <!-- Events to run on every request before security (chains exempt) --> <!-- <preprocessor> @@ -253,6 +253,12 @@ <response name="error" type="view" value="showcart"/> </request-map> + <request-map uri="getConfigDetailsEvent"> + <security https="true" auth="false"/> + <event type="jsonjava" path="org.ofbiz.order.shoppingcart.ShoppingCartEvents" invoke="getConfigDetailsEvent"/> + <response name="success" type="none"/> + <response name="error" type="none"/> + </request-map> <request-map uri="updateTrackingNumber"> <security https="true" auth="true"/> <event type="service" invoke="updateTrackingNumber"/> Modified: ofbiz/trunk/applications/order/webapp/ordermgr/entry/catalog/configproductdetail.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/entry/catalog/configproductdetail.ftl?rev=618606&r1=618605&r2=618606&view=diff ============================================================================== --- ofbiz/trunk/applications/order/webapp/ordermgr/entry/catalog/configproductdetail.ftl (original) +++ ofbiz/trunk/applications/order/webapp/ordermgr/entry/catalog/configproductdetail.ftl Tue Feb 5 02:52:59 2008 @@ -134,10 +134,44 @@ <script language="JavaScript" type="text/javascript"> <!-- - function resetTotalPrice(name) { - } + +Event.observe(window, 'load', function() { + Event.observe($('configFormId'),'click',getConfigDetails); +}); + +function getConfigDetails(event) { + new Ajax.Request('/ordermgr/control/getConfigDetailsEvent',{parameters: $('configFormId').serialize(), requestHeaders: {Accept: 'application/json'}, + + onSuccess: function(transport){ + var data = transport.responseText.evalJSON(true); + + if (data._ERROR_MESSAGE_LIST_ != undefined) { + //console.log(data._ERROR_MESSAGE_LIST_); + //alert(data._ERROR_MESSAGE_LIST_); + }else if (data._ERROR_MESSAGE_ != undefined) { + //console.log(data._ERROR_MESSAGE_); + //alert(data._ERROR_MESSAGE_); + }else { + //console.log(data.totalPrice); + //console.log(data.configId); + var totalPrice = data.totalPrice; + var configId = data.configId; + document.getElementById('totalPrice').innerHTML = totalPrice; + document.addToShoppingList.configId.value = configId; + event.stop(); + } + }, + + onFailure: function(transport) { + var data = transport.responseText.evalJSON(true); + //console.log('Failure'); + } + }); +} + --> </script> + <table border="0" cellpadding="2" cellspacing='0'> <#-- Category next/previous --> @@ -195,7 +229,7 @@ - if isSale show price with salePrice style and print "On Sale!" --> <#if totalPrice?exists> - <div class="tabletext">${uiLabelMap.ProductAggregatedPrice}: <span class='basePrice'><@ofbizCurrency amount=totalPrice isoCode=totalPrice.currencyUsed/></span></div> + <div class="tabletext">${uiLabelMap.ProductAggregatedPrice}: <span id='totalPrice' class='basePrice'><@ofbizCurrency amount=totalPrice isoCode=totalPrice.currencyUsed/></span></div> <#else> <#if price.competitivePrice?exists && price.price?exists && price.price?double < price.competitivePrice?double> <div class="tabletext">${uiLabelMap.ProductCompareAtPrice}: <span class='basePrice'><@ofbizCurrency amount=price.competitivePrice isoCode=price.currencyUsed/></span></div> @@ -407,7 +441,7 @@ <#-- Product Configurator --> <tr> <td colspan="2"> - <form name="configform" method="post" action="<@ofbizUrl>product<#if requestAttributes._CURRENT_VIEW_?exists>/${requestAttributes._CURRENT_VIEW_}</#if></@ofbizUrl>"> + <form name="configform" id="configFormId" method="post" action="<@ofbizUrl>product<#if requestAttributes._CURRENT_VIEW_?exists>/${requestAttributes._CURRENT_VIEW_}</#if></@ofbizUrl>"> <input type='hidden' name='add_product_id' value='${product.productId}'> <input type='hidden' name='add_category_id' value=''> <input type='hidden' name='quantity' value='1'> Modified: ofbiz/trunk/applications/order/widget/ordermgr/OrderEntryCatalogScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/widget/ordermgr/OrderEntryCatalogScreens.xml?rev=618606&r1=618605&r2=618606&view=diff ============================================================================== --- ofbiz/trunk/applications/order/widget/ordermgr/OrderEntryCatalogScreens.xml (original) +++ ofbiz/trunk/applications/order/widget/ordermgr/OrderEntryCatalogScreens.xml Tue Feb 5 02:52:59 2008 @@ -131,7 +131,7 @@ <!-- <set field="leftbarScreenName" value="leftbar"/> <set field="rightbarScreenName" value="rightbar"/> <set field="MainColumnStyle" value="center"/>--> - + <set field="layoutSettings.javaScripts[]" value="/images/prototypejs/prototype.js" global="true"/> <set field="title-property" value="PageTitleProductPage"/> <set field="configproductdetailScreen" value="component://order/widget/ordermgr/OrderEntryCatalogScreens.xml#configproductdetail"/> <script location="component://order/webapp/ordermgr/WEB-INF/actions/entry/catalog/product.bsh"/> |
Free forum by Nabble | Edit this page |