* @copyright 2012-2021 SeoSA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
class AdvancedStockManagementTabMEP extends BaseTabMEP
{
public function applyChangeBoth($products, $combinations)
{
}
public function applyChangeForProducts($products)
{
$advanced_stock_management = Tools::getValue('advanced_stock_management', false);
$depends_on_stock = Tools::getValue('depends_on_stock', false);
$return_products = array();
foreach ($products as $id_product) {
if ($advanced_stock_management === false) {
LoggerMEP::getInstance()->error($this->l('Undefined value'));
}
if ((int)$advanced_stock_management != 1 && (int)$advanced_stock_management != 0) {
LoggerMEP::getInstance()->error($this->l('Incorrect value'));
}
if (!Configuration::get('PS_ADVANCED_STOCK_MANAGEMENT') && (int)$advanced_stock_management == 1) {
LoggerMEP::getInstance()->error($this->l('Not possible if advanced stock management is disabled. '));
}
$product_obj = new Product((int)$id_product);
$product_obj->setAdvancedStockManagement((int)$advanced_stock_management);
if (StockAvailable::dependsOnStock($product_obj->id) == 1 && (int)$advanced_stock_management == 0) {
StockAvailable::setProductDependsOnStock($product_obj->id, 0);
}
if ($depends_on_stock === false) {
{
LoggerMEP::getInstance()->error($this->l('Undefined value'));
}
}
if ((int)$depends_on_stock != 0 && (int)$depends_on_stock != 1) {
LoggerMEP::getInstance()->error($this->l('Incorrect value'));
}
if (!$product_obj->advanced_stock_management && (int)$depends_on_stock == 1) {
LoggerMEP::getInstance()->error($this->l('Not possible if advanced stock management is disabled. '));
}
if (Configuration::get('PS_ADVANCED_STOCK_MANAGEMENT')
&& (int)$depends_on_stock == 1
&& (Pack::isPack($product_obj->id)
&& !Pack::allUsesAdvancedStockManagement($product_obj->id)
&& ($product_obj->pack_stock_type == 2 || $product_obj->pack_stock_type == 1 ||
($product_obj->pack_stock_type == 3
&& (Configuration::get('PS_PACK_STOCK_TYPE') == 1
|| Configuration::get('PS_PACK_STOCK_TYPE') == 2))))) {
LoggerMEP::getInstance()->error(
$this->l(
'You cannot use advanced stock management for this
pack because
- advanced stock management is not enabled for these products
- you have chosen to decrement products quantities.'
)
);
}
StockAvailable::setProductDependsOnStock($product_obj->id, (int)$depends_on_stock);
$return_products[(int)$id_product] = (bool)$advanced_stock_management;
}
return array(
'products' => $return_products,
);
}
public function applyChangeForCombinations($products)
{
}
public function checkAvailable()
{
return (int)Configuration::get('PS_ADVANCED_STOCK_MANAGEMENT');
}
public function getTitle()
{
return $this->l('Stock management');
}
public function assignVariables()
{
$variables = parent::assignVariables();
$variables['product'] = new Product();
return $variables;
}
}