// Fix duplication of conditions when editing specifice rules
This commit is contained in:
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user