* @copyright 2007-2011 PrestaShop SA * @version Release: $Revision: 6626 $ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA */ if (!defined('_CAN_LOAD_FILES_')) exit; class StatsStock extends Module { function __construct() { $this->name = 'statsstock'; $this->tab = 'analytics_stats'; $this->version = 1.0; $this->author = 'PrestaShop'; $this->need_instance = 0; parent::__construct(); $this->displayName = $this->l('Stock stats'); $this->description = ''; } public function install() { return (parent::install() && $this->registerHook('AdminStatsModules')); } function hookAdminStatsModules() { global $cookie, $currentIndex; if (Tools::isSubmit('submitCategory')) $cookie->statsstock_id_category = Tools::getValue('statsstock_id_category'); $ru = $currentIndex.'&module='.$this->name.'&token='.Tools::getValue('token'); $currency = new Currency(Configuration::get('PS_CURRENCY_DEFAULT')); $filter = ((int)$cookie->statsstock_id_category ? 'WHERE p.id_product IN (SELECT cp.id_product FROM '._DB_PREFIX_.'category_product cp WHERE cp.id_category = '.(int)$cookie->statsstock_id_category.')' : ''); $products = Db::getInstance()->ExecuteS(' SELECT p.id_product, p.reference, pl.name, IFNULL(( SELECT AVG(pa.wholesale_price) FROM '._DB_PREFIX_.'product_attribute pa WHERE p.id_product = pa.id_product AND wholesale_price != 0 ), p.wholesale_price) as wholesale_price, IFNULL(( SELECT SUM(pa.quantity) FROM '._DB_PREFIX_.'product_attribute pa WHERE p.id_product = pa.id_product ), p.quantity) as quantity, IFNULL(( SELECT SUM(IF(pa.wholesale_price > 0, pa.wholesale_price, p.wholesale_price) * pa.quantity) FROM '._DB_PREFIX_.'product_attribute pa WHERE p.id_product = pa.id_product ), p.wholesale_price * p.quantity) as stockvalue FROM '._DB_PREFIX_.'product p INNER JOIN '._DB_PREFIX_.'product_lang pl ON (p.id_product = pl.id_product AND pl.id_lang = '.(int)$cookie->id_lang.') '.$filter); echo '

'.$this->l('Stock value').'

'.$this->l('Category').' :
 
'; if (!count($products)) echo $this->l('Your catalog is empty.'); else { $rollup = array('quantity' => 0, 'wholesale_price' => 0, 'stockvalue' => 0); echo ''; foreach ($products as $product) { $rollup['quantity'] += $product['quantity']; $rollup['wholesale_price'] += $product['wholesale_price']; $rollup['stockvalue'] += $product['stockvalue']; echo ''; } echo '
'.$this->l('ID').' '.$this->l('Ref.').' '.$this->l('Item').' '.$this->l('Stock').' '.$this->l('Price*').' '.$this->l('Value').'
'.$product['id_product'].' '.$product['reference'].' '.$product['name'].' '.$product['quantity'].' '.Tools::displayPrice($product['wholesale_price'], $currency).' '.Tools::displayPrice($product['stockvalue'], $currency).'
'.$this->l('Total stock').' '.$this->l('Avg price').' '.$this->l('Total value').'
'.$rollup['quantity'].' '.Tools::displayPrice($rollup['wholesale_price'] / count($products), $currency).' '.Tools::displayPrice($rollup['stockvalue'], $currency).'

* '.$this->l('Average price when the product has attributes.').'

'; } } }