From b661b8bd12f93dff5d3cd8a6384388ab65485682 Mon Sep 17 00:00:00 2001 From: vChabot Date: Thu, 3 May 2012 14:07:34 +0000 Subject: [PATCH] [-] BO : BugFix : #PSCFV-1297 : Multistore: admin cannot delete special price of another shop anymore --- controllers/admin/AdminProductsController.php | 51 +++++++++++-------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/controllers/admin/AdminProductsController.php b/controllers/admin/AdminProductsController.php index bdb2b6e22..4f1febb28 100644 --- a/controllers/admin/AdminProductsController.php +++ b/controllers/admin/AdminProductsController.php @@ -2807,12 +2807,12 @@ class AdminProductsControllerCore extends AdminController $this->tpl_form_vars['custom_form'] = $data->fetch(); } - protected function _getFinalPrice($specific_price, $productPrice, $taxRate) + protected function _getFinalPrice($specific_price, $product_price, $tax_rate) { - $price = Tools::ps_round((float)($specific_price['price']) ? $specific_price['price'] : $productPrice, 2); + $price = Tools::ps_round((float)$specific_price['price'] ? $specific_price['price'] : $product_price, 2); if (!(float)($specific_price['reduction'])) return (float)($specific_price['price']); - return ($specific_price['reduction_type'] == 'amount') ? ($price - $specific_price['reduction'] / (1 + $taxRate / 100)) : ($price - $price * $specific_price['reduction']); + return ($specific_price['reduction_type'] == 'amount') ? ($price - $specific_price['reduction'] / (1 + $tax_rate / 100)) : ($price - $price * $specific_price['reduction']); } protected function _displaySpecificPriceModificationForm($defaultCurrency, $shops, $currencies, $countries, $groups) @@ -2823,7 +2823,7 @@ class AdminProductsControllerCore extends AdminController $specific_prices = SpecificPrice::getByProductId((int)$obj->id); $specific_price_priorities = SpecificPrice::getPriority((int)$obj->id); - $taxRate = $obj->getTaxesRate(Address::initialize()); + $tax_rate = $obj->getTaxesRate(Address::initialize()); $tmp = array(); foreach ($shops as $shop) @@ -2887,24 +2887,31 @@ class AdminProductsControllerCore extends AdminController unset($customer); } - $content .= ' - - '.$rule_name.' - '.$attributes_name.' - '.(Shop::isFeatureActive() ? ''.($specific_price['id_shop'] ? $shops[$specific_price['id_shop']]['name'] : $this->l('All shops')).'' : '').' - '.($specific_price['id_currency'] ? $currencies[$specific_price['id_currency']]['name'] : $this->l('All currencies')).' - '.($specific_price['id_country'] ? $countries[$specific_price['id_country']]['name'] : $this->l('All countries')).' - '.($specific_price['id_group'] ? $groups[$specific_price['id_group']]['name'] : $this->l('All groups')).' - '.(isset($customer_full_name) ? $customer_full_name : $this->l('All customers')).' - '.Tools::displayPrice((float)$specific_price['price'], $current_specific_currency).' - '.$reduction.' - '.$period.' - '.$specific_price['from_quantity'].' - '.Tools::displayPrice(Tools::ps_round((float)($this->_getFinalPrice($specific_price, (float)($obj->price), $taxRate)), 2), $current_specific_currency).' - '.(!$rule->id ? ''.$this->l('Delete').'': '').' - '; - $i++; - unset($customer_full_name); + if (!$specific_price['id_shop'] || in_array($specific_price['id_shop'], Shop::getContextListShopID())) + { + $content .= ' + + '.$rule_name.' + '.$attributes_name.''; + + if (Shop::isFeatureActive()) + $content .= ' + '.($specific_price['id_shop'] ? $shops[$specific_price['id_shop']]['name'] : $this->l('All shops')).''; + $content .= ' + '.($specific_price['id_currency'] ? $currencies[$specific_price['id_currency']]['name'] : $this->l('All currencies')).' + '.($specific_price['id_country'] ? $countries[$specific_price['id_country']]['name'] : $this->l('All countries')).' + '.($specific_price['id_group'] ? $groups[$specific_price['id_group']]['name'] : $this->l('All groups')).' + '.(isset($customer_full_name) ? $customer_full_name : $this->l('All customers')).' + '.Tools::displayPrice((float)$specific_price['price'], $current_specific_currency).' + '.$reduction.' + '.$period.' + '.$specific_price['from_quantity'].' + '.Tools::displayPrice(Tools::ps_round((float)$this->_getFinalPrice($specific_price, (float)$obj->price, $tax_rate)), 2, $current_specific_currency).' + '.(!$rule->id ? ''.$this->l('Delete').'': '').' + '; + $i++; + unset($customer_full_name); + } } } $content .= '