diff --git a/classes/SpecificPriceRule.php b/classes/SpecificPriceRule.php index fcd8d9462..789329528 100755 --- a/classes/SpecificPriceRule.php +++ b/classes/SpecificPriceRule.php @@ -72,6 +72,13 @@ class SpecificPriceRuleCore extends ObjectModel ); public function delete() + { + $this->deleteConditions(); + Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'specific_price WHERE id_specific_price_rule='.(int)$this->id); + return parent::delete(); + } + + public function deleteConditions() { $ids_condition_group = Db::getInstance()->executeS('SELECT id_specific_price_rule_condition_group FROM '._DB_PREFIX_.'specific_price_rule_condition_group @@ -79,13 +86,9 @@ class SpecificPriceRuleCore extends ObjectModel if ($ids_condition_group) foreach ($ids_condition_group as $row) { - Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'specific_price_rule_condition_group - WHERE id_specific_price_rule_condition_group='.(int)$row['id_specific_price_rule_condition_group']); - Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'specific_price_rule_condition - WHERE id_specific_price_rule_condition_group='.(int)$row['id_specific_price_rule_condition_group']); + Db::getInstance()->delete('specific_price_rule_condition_group', 'id_specific_price_rule_condition_group='.(int)$row['id_specific_price_rule_condition_group']); + Db::getInstance()->delete('specific_price_rule_condition', 'id_specific_price_rule_condition_group='.(int)$row['id_specific_price_rule_condition_group']); } - Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'specific_price WHERE id_specific_price_rule='.(int)$this->id); - return parent::delete(); } public function addConditions($conditions) diff --git a/controllers/admin/AdminSpecificPriceRuleController.php b/controllers/admin/AdminSpecificPriceRuleController.php index 5fafe5d95..474a256a5 100755 --- a/controllers/admin/AdminSpecificPriceRuleController.php +++ b/controllers/admin/AdminSpecificPriceRuleController.php @@ -273,6 +273,7 @@ class AdminSpecificPriceRuleControllerCore extends AdminController $conditions = array(); if (Validate::isLoadedObject(($object = parent::processSave($token)))) { + $object->deleteConditions(); foreach ($_POST as $key => $values) { if (preg_match('/^condition_group_([0-9]+)$/Ui', $key, $condition_group))