[-] BO : fix the change of advanced stock management in the products on GroupShop context #PSCFV-5521

This commit is contained in:
rGaillard
2012-11-12 13:28:35 +00:00
parent 5c8eb0b20e
commit c026a07504
2 changed files with 24 additions and 5 deletions
+23 -3
View File
@@ -4978,11 +4978,31 @@ class ProductCore extends ObjectModel
$this->out_of_stock = StockAvailable::outOfStock($this->id);
$this->depends_on_stock = StockAvailable::dependsOnStock($this->id);
if (Context::getContext()->shop->getContext() == Shop::CONTEXT_GROUP && Context::getContext()->shop->getContextShopGroup()->share_stock == 1)
$this->advanced_stock_management = Db::getInstance()->getValue('SELECT `advanced_stock_management`
FROM '._DB_PREFIX_.'product_shop
WHERE id_product='.(int)$this->id.Shop::addSqlRestriction());
$this->advanced_stock_management = $this->useAdvancedStockManagement();
}
}
public function useAdvancedStockManagement()
{
return Db::getInstance()->getValue('
SELECT `advanced_stock_management`
FROM '._DB_PREFIX_.'product_shop
WHERE id_product='.(int)$this->id.Shop::addSqlRestriction()
);
}
public function setAdvancedStockManagement($value)
{
$this->advanced_stock_management = (int)$value;
if (Context::getContext()->shop->getContext() == Shop::CONTEXT_GROUP && Context::getContext()->shop->getContextShopGroup()->share_stock == 1)
Db::getInstance()->execute('
UPDATE `'._DB_PREFIX_.'product_shop`
SET `advanced_stock_management`='.(int)$value.'
WHERE id_product='.(int)$this->id.Shop::addSqlRestriction()
);
else
$this->save();
}
/**
* get the default category according to the shop
@@ -4022,8 +4022,7 @@ class AdminProductsControllerCore extends AdminController
if (Configuration::get('PS_ADVANCED_STOCK_MANAGEMENT') && Pack::isPack($product->id))
die (Tools::jsonEncode(array('error' => $this->l('Not possible if the product is a pack'))));
$product->advanced_stock_management = (int)Tools::getValue('value');
$product->save();
$product->setAdvancedStockManagement((int)Tools::getValue('value'));
if (StockAvailable::dependsOnStock($product->id) == 1 && (int)Tools::getValue('value') == 0)
StockAvailable::setProductDependsOnStock($product->id, 0);
break;