diff --git a/classes/SpecificPrice.php b/classes/SpecificPrice.php index ad5444f71..2ef1a3b11 100644 --- a/classes/SpecificPrice.php +++ b/classes/SpecificPrice.php @@ -111,14 +111,14 @@ class SpecificPriceCore extends ObjectModel return false; } - public static function getByProductId($id_product, $id_product_attribute = false, $id_cart = 0) + public static function getByProductId($id_product, $id_product_attribute = false, $id_cart = false) { return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' SELECT * FROM `'._DB_PREFIX_.'specific_price` - WHERE `id_product` = '.(int)$id_product.' - AND id_product_attribute='.(int)$id_product_attribute.' - AND id_cart='.(int)$id_cart); + WHERE `id_product` = '.(int)$id_product. + ($id_product_attribute ? 'AND id_product_attribute = '.(int)$id_product_attribute : '').' + AND id_cart = '.(int)$id_cart); } public static function deleteByIdCart($id_cart, $id_product = false, $id_product_attribute = false) diff --git a/controllers/admin/AdminProductsController.php b/controllers/admin/AdminProductsController.php index 5e7e067c2..525a001bd 100644 --- a/controllers/admin/AdminProductsController.php +++ b/controllers/admin/AdminProductsController.php @@ -733,6 +733,7 @@ class AdminProductsControllerCore extends AdminController public function processPriceAddition($token) { $id_product = Tools::getValue('id_product'); + $id_product_attribute = Tools::getValue('sp_id_product_attribute'); $id_shop = Tools::getValue('sp_id_shop'); $id_currency = Tools::getValue('sp_id_currency'); $id_country = Tools::getValue('sp_id_country'); @@ -748,7 +749,7 @@ class AdminProductsControllerCore extends AdminController { $specificPrice = new SpecificPrice(); $specificPrice->id_product = (int)$id_product; - $specificPrice->id_product_attribute = (int)Tools::getValue('id_product_attribute'); + $specificPrice->id_product_attribute = (int)$id_product_attribute; $specificPrice->id_shop = (int)$id_shop; $specificPrice->id_currency = (int)($id_currency); $specificPrice->id_country = (int)($id_country); diff --git a/themes/default/js/product.js b/themes/default/js/product.js index 486b57a93..e9b9b801f 100644 --- a/themes/default/js/product.js +++ b/themes/default/js/product.js @@ -118,9 +118,13 @@ function findCombination(firstTime) else selectedCombination['ecotax'] = default_eco_tax; - //show the large image in relation to the selected combination - if (combinations[combination]['image'] && combinations[combination]['image'] != -1) - displayImage( $('#thumb_'+combinations[combination]['image']).parent() ); + //show the large image in relation to the selected combination + if (combinations[combination]['image'] && combinations[combination]['image'] != -1) + displayImage( $('#thumb_'+combinations[combination]['image']).parent() ); + + //show discounts values according to the selected combination + if (combinations[combination]['idCombination'] && combinations[combination]['idCombination'] > 0) + displayDiscounts(combinations[combination]['idCombination']); //get available_date for combination product selectedCombination['available_date'] = combinations[combination]['available_date']; @@ -425,7 +429,7 @@ function displayImage(domAAroundImgThumb) $('#bigpic').fadeOut('fast', function(){ $(this).attr('src', newSrc).show(); if (typeof(jqZoomEnabled) != 'undefined' && jqZoomEnabled) - $(this).attr('alt', domAAroundImgThumb.attr('href')); + $(this).attr('alt', domAAroundImgThumb.attr('href')); }); } $('#views_block li a').removeClass('shown'); @@ -433,6 +437,18 @@ function displayImage(domAAroundImgThumb) } } +//update display of the discounts table +function displayDiscounts(combination) +{ + $('#quantityDiscount table tbody tr').each(function() { + if (($(this).attr('id') != 'quantityDiscount_0') && + ($(this).attr('id') != 'quantityDiscount_'+combination)) + $(this).fadeOut('slow'); + }); + + $('#quantityDiscount_'+combination).show(); +} + // Serialscroll exclude option bug ? function serialScrollFixLock(event, targeted, scrolled, items, position) { diff --git a/themes/default/product.tpl b/themes/default/product.tpl index 4d753f123..a3aa9b500 100644 --- a/themes/default/product.tpl +++ b/themes/default/product.tpl @@ -455,33 +455,38 @@ var fieldRequired = '{l s='Please fill in all required fields, then save the cus {if isset($quantity_discounts) && $quantity_discounts}
| {$quantity_discount.quantity|intval} - {if $quantity_discount.quantity|intval > 1} - {l s='quantities'} - {else} - {l s='quantity'} - {/if} - {if $quantity_discount.attributes}{$quantity_discount.attributes}{/if} - | - {/foreach} -||
|---|---|---|
| - {if $quantity_discount.price != 0 OR $quantity_discount.reduction_type == 'amount'} - -{convertPrice price=$quantity_discount.real_value|floatval} - {else} - -{$quantity_discount.real_value|floatval}% - {/if} - | - {/foreach} -||
| {l s='product'} | +{l s='from (qty)'} | +{l s='discount'} | +
| + {if (isset($quantity_discount.attributes) && ($quantity_discount.attributes))} + {$product->getProductName($quantity_discount.id_product, $quantity_discount.id_product_attribute)} + {else} + {$product->getProductName($quantity_discount.id_product)} + {/if} + | +{$quantity_discount.quantity|intval} | ++ {if $quantity_discount.price != 0 OR $quantity_discount.reduction_type == 'amount'} + -{convertPrice price=$quantity_discount.real_value|floatval} + {else} + -{$quantity_discount.real_value|floatval}% + {/if} + | +