protected function updateCategoryReduction() { $category_reduction = Tools::getValue('category_reduction'); Db::getInstance()->execute(' DELETE FROM `' . _DB_PREFIX_ . 'group_reduction` WHERE `id_group` = ' . (int) Tools::getValue('id_group')); Db::getInstance()->execute(' DELETE FROM `' . _DB_PREFIX_ . 'product_group_reduction_cache` WHERE `id_group` = ' . (int) Tools::getValue('id_group')); if (is_array($category_reduction) && count($category_reduction)) { if (!Configuration::getGlobalValue('PS_GROUP_FEATURE_ACTIVE')) { Configuration::updateGlobalValue('PS_GROUP_FEATURE_ACTIVE', 1); } foreach ($category_reduction as $cat => $reduction) { if (!Validate::isUnsignedId($cat) || !$this->validateDiscount($reduction)) { $this->errors[] = Tools::displayError('The discount value is incorrect.'); } else { $category = new Category((int) $cat); $category->addGroupsIfNoExist((int) Tools::getValue('id_group')); $group_reduction = new GroupReduction(); $group_reduction->id_group = (int) Tools::getValue('id_group'); $group_reduction->reduction = (double) ($reduction / 100); $group_reduction->id_category = (int) $cat; if (!$group_reduction->save()) { $this->errors[] = Tools::displayError('You cannot save group reductions.'); } } } } }