From 955fb96d0e4e2ad5c6fc38b565f9a21bc562e1d1 Mon Sep 17 00:00:00 2001 From: mDeflotte Date: Thu, 7 Jun 2012 09:12:28 +0000 Subject: [PATCH] // Fix bug with cart product price reload on changing delivery address git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@15904 b9a71923-0436-4b27-9f14-aed3839534dd --- themes/default/js/cart-summary.js | 4 +-- themes/default/js/order-opc.js | 32 +++++++++++++++++++ themes/default/shopping-cart-product-line.tpl | 2 +- themes/default/shopping-cart.tpl | 1 + 4 files changed, 35 insertions(+), 4 deletions(-) diff --git a/themes/default/js/cart-summary.js b/themes/default/js/cart-summary.js index 5ae39f421..520fe242d 100644 --- a/themes/default/js/cart-summary.js +++ b/themes/default/js/cart-summary.js @@ -543,9 +543,7 @@ function updateCartSummary(json) initial_price_text = ''+initial_price+'
'; } - key_for_blockcart = json.products[i].id_product+'_'+json.products[i].id_product_attribute; - if (json.products[i].id_product_attribute == 0) - key_for_blockcart = json.products[i].id_product; + key_for_blockcart = json.products[i].id_product+'_'+json.products[i].id_product_attribute+'_'+json.products[i].id_address_delivery; $('#cart_block_product_'+key_for_blockcart+' span.quantity').html(json.products[i].cart_quantity); diff --git a/themes/default/js/order-opc.js b/themes/default/js/order-opc.js index da6f28030..c96e94207 100644 --- a/themes/default/js/order-opc.js +++ b/themes/default/js/order-opc.js @@ -73,6 +73,38 @@ function updateAddressSelection() } else { + // Update all product keys with the new address id + $('#cart_summary .address_'+deliveryAddress).each(function() { + $(this) + .removeClass('address_'+deliveryAddress) + .addClass('address_'+idAddress_delivery); + + if ($(this).find('.cart_unit span').length > 0 && $(this).find('.cart_unit span').attr('id').length > 0) + $(this).find('.cart_unit span').attr('id', $(this).find('.cart_unit span').attr('id').replace(/_\d+$/, '_'+idAddress_delivery)); + + if ($(this).find('.cart_total span').length > 0 && $(this).find('.cart_total span').attr('id').length > 0) + $(this).find('.cart_total span').attr('id', $(this).find('.cart_total span').attr('id').replace(/_\d+$/, '_'+idAddress_delivery)); + + if ($(this).find('.cart_quantity_input').length > 0 && $(this).find('.cart_quantity_input').attr('name').length > 0) + { + name = $(this).find('.cart_quantity_input').attr('name')+'_hidden'; + + $(this).find('.cart_quantity_input').attr('name', $(this).find('.cart_quantity_input').attr('name').replace(/_\d+$/, '_'+idAddress_delivery)); + + if ($(this).find('[name='+name+']')> 0) + $(this).find('[name='+name+']').attr('name', name.replace(/_\d+_hidden$/, '_'+idAddress_delivery+'_hidden')); + } + + if ($(this).find('.cart_quantity_delete').length > 0 && $(this).find('.cart_quantity_delete').attr('id').length > 0) { + $(this).find('.cart_quantity_delete') + .attr('id', $(this).find('.cart_quantity_delete').attr('id').replace(/_\d+$/, '_'+idAddress_delivery)) + .attr('href', $(this).find('.cart_quantity_delete').attr('href').replace(/id_address_delivery=\d+&/, 'id_address_delivery='+idAddress_delivery+'&')) + } + }); + + // Update global var deliveryAddress + deliveryAddress = idAddress_delivery; + updateCarrierList(jsonData.carrier_data); updatePaymentMethods(jsonData); updateCartSummary(jsonData.summary); diff --git a/themes/default/shopping-cart-product-line.tpl b/themes/default/shopping-cart-product-line.tpl index 22a107e02..cedc291a1 100644 --- a/themes/default/shopping-cart-product-line.tpl +++ b/themes/default/shopping-cart-product-line.tpl @@ -24,7 +24,7 @@ * International Registered Trademark & Property of PrestaShop SA *} - + {$product.name|escape:'htmlall':'UTF-8'} diff --git a/themes/default/shopping-cart.tpl b/themes/default/shopping-cart.tpl index d5ca1fd72..09155e22b 100644 --- a/themes/default/shopping-cart.tpl +++ b/themes/default/shopping-cart.tpl @@ -51,6 +51,7 @@ var currencyBlank = '{$currencyBlank|intval}'; var txtProduct = "{l s='product'}"; var txtProducts = "{l s='products'}"; + var deliveryAddress = {$cart->id_address_delivery|intval}; // ]]>