Skip to content

Commit

Permalink
[-] WS : Fix #PSCFV-11636 & #PSCSX-3274
Browse files Browse the repository at this point in the history
  • Loading branch information
anat committed Sep 16, 2014
1 parent edd35b0 commit c563aad
Showing 1 changed file with 3 additions and 38 deletions.
41 changes: 3 additions & 38 deletions classes/Product.php
Original file line number Diff line number Diff line change
Expand Up @@ -410,7 +410,6 @@ class ProductCore extends ObjectModel
'resource' => 'product_feature',
'fields' => array(
'id' => array('required' => true),
'custom' => array('required' => false),
'id_feature_value' => array(
'required' => true,
'xlink_resource' => 'product_feature_values'
Expand Down Expand Up @@ -4600,6 +4599,7 @@ public function getWsProductFeatures()
unset($rows[$keyrow]['id_feature']);
}
unset($rows[$keyrow]['id_product']);
unset($rows[$keyrow]['custom']);
}
asort($rows[$keyrow]);
}
Expand All @@ -4614,47 +4614,12 @@ public function getWsProductFeatures()
*/
public function setWsProductFeatures($product_features)
{

$db_features = Db::getInstance()->executeS('
SELECT p.*, f.`custom`
FROM `'._DB_PREFIX_.'feature_product` p
LEFT JOIN `'._DB_PREFIX_.'feature_value` f ON (f.`id_feature_value` = p.`id_feature_value`)
WHERE `id_product` = '.(int)$this->id
);

$pfa = array();
foreach ($product_features as $product_feature)
$pfa[$product_feature['id']] = 1;

foreach ($db_features as $db_feature)
{
// test if feature should stay in db (if it is part of updated product)
if (!isset($pfa[$db_feature['id_feature']]))
{
// delete only custom features
if ($db_feature['custom'])
{
Db::getInstance()->execute('
DELETE FROM `'._DB_PREFIX_.'feature_value_lang`
WHERE `id_feature_value` = '.(int)$db_feature['id_feature_value']
);
Db::getInstance()->execute('
DELETE FROM `'._DB_PREFIX_.'feature_value`
WHERE `id_feature_value` = '.(int)$db_feature['id_feature_value']
);

}
}
}

Db::getInstance()->execute('
DELETE FROM `'._DB_PREFIX_.'feature_product`
WHERE `id_product` = '.(int)$this->id
);

foreach ($product_features as $product_feature)
$this->addFeaturesToDB($product_feature['id'], $product_feature['id_feature_value'], $product_feature['custom']);

foreach ($product_features as $product_feature)
$this->addFeaturesToDB($product_feature['id'], $product_feature['id_feature_value']);
return true;
}

Expand Down

0 comments on commit c563aad

Please sign in to comment.