// 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()
{
$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)
@@ -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))