[-] BO : fix the change of advanced stock management in the products on GroupShop context #PSCFV-5521
This commit is contained in:
+23
-3
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user