// Fix duplication of conditions when editing specifice rules

This commit is contained in:
rGaillard
2012-03-22 15:55:55 +00:00
parent 9278f86f04
commit 556da56caa
2 changed files with 10 additions and 6 deletions
+9 -6
View File
@@ -72,6 +72,13 @@ class SpecificPriceRuleCore extends ObjectModel
); );
public function delete() 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 $ids_condition_group = Db::getInstance()->executeS('SELECT id_specific_price_rule_condition_group
FROM '._DB_PREFIX_.'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) if ($ids_condition_group)
foreach ($ids_condition_group as $row) foreach ($ids_condition_group as $row)
{ {
Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'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']);
WHERE 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_rule_condition
WHERE 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) public function addConditions($conditions)
@@ -273,6 +273,7 @@ class AdminSpecificPriceRuleControllerCore extends AdminController
$conditions = array(); $conditions = array();
if (Validate::isLoadedObject(($object = parent::processSave($token)))) if (Validate::isLoadedObject(($object = parent::processSave($token))))
{ {
$object->deleteConditions();
foreach ($_POST as $key => $values) foreach ($_POST as $key => $values)
{ {
if (preg_match('/^condition_group_([0-9]+)$/Ui', $key, $condition_group)) if (preg_match('/^condition_group_([0-9]+)$/Ui', $key, $condition_group))