- array_unshift: documentation ( source)
<?php
echo 'start';
function recuperation_info_product_et_decrementation($reference, $stock_fichier, $isDeclinaison){ /* Fonction de récupèration et décrementation produit */
global $version_sup_egale_1531;
$product_infos = array();
$tables = array('product_attribute');
if($isDeclinaison === false) {
array_unshift($tables, 'product');
}
foreach($tables as $table) {
$query = 'SELECT * FROM `'._DB_PREFIX_.$table.'` WHERE `reference` = "'.$reference.'";';
$result = Db::getInstance()->executeS($query);
if($result !== false) {
$product_infos = $result[0];
decremente_stock($product_infos['id_product'], $qty, $reference, $table);
break;
}
}
return $product_infos;
}
/* fonction qui retourne l'IdProduct et l'IdProductAttribute du produit commandé */
function recuperation_idProduct_idProductAttribute($reference_fichier){
$product_infos = array();
$query = 'SELECT * FROM `'._DB_PREFIX_.'product` WHERE `reference` = "'.pSQL($reference).'";';
$result = Db::getInstance()->executeS($query);
$product_infos['id_product'] = $result[0]['id_product'];
$query = 'SELECT * FROM `'._DB_PREFIX_.'product_attribute` WHERE `reference` = "'.pSQL($reference).'";';
$result = Db::getInstance()->executeS($query);
$product_infos['id_product_attribute'] = $result[0]['id_product_attribute'];
return $product_infos;
}
function decremente_stock($id_product, $qty, $reference, $table) {
switch ($GLOBALS['versionPourSwitch']){
case '1.5.4.0': // [-] Core: Hook actionUpdateQuantity was not called for product without attributes which depends on the physical stock
$query = ' UPDATE `'._DB_PREFIX_.'stock_available`
SET quantity = (quantity - "'.$qty.'")
WHERE id_product = "'.$id_product.'"
AND `reference` = "'.$reference.'";';
Db::getInstance()->execute($query);
$query2 = ' UPDATE `'._DB_PREFIX_.'stock`
SET physical_quantity = (physical_quantity - "'.$qty.'")
WHERE id_product = "'.$id_product.'"
AND `reference` = "'.$reference.'";';
Db::getInstance()->execute($query2);
break;
default:
if($version_sup_egale_1531) {
$query = ' UPDATE `'._DB_PREFIX_.'stock_available`
SET quantity = (quantity - "'.$qty.'")
WHERE id_product = "'.$id_product.'"
AND `reference` = "'.$reference.'";';
}
else {
$query = ' UPDATE `'._DB_PREFIX_.$table.'`
SET quantity = (quantity - "'.$qty.'")
WHERE id_product = "'.$id_product.'"
AND `reference` = "'.$reference.'";';
}
Db::getInstance()->execute($query);
break;
}
}
echo 'done';