* @copyright 2007-2011 PrestaShop SA * @version Release: $Revision: 8943 $ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ class AdminHome extends AdminTab { public function postProcess() { } private function _displayOptimizationTips() {} public function display() { global $cookie; $this->warnDomainName(); $tab = get_class(); $protocol = Tools::usingSecureMode()?'https':'http'; $isoDefault = Language::getIsoById(intval(Configuration::get('PS_LANG_DEFAULT'))); $isoUser = Language::getIsoById(intval($cookie->id_lang)); $isoCountry = Country::getIsoById(Configuration::get('PS_COUNTRY_DEFAULT')); $currency = new Currency((int)(Configuration::get('PS_CURRENCY_DEFAULT'))); $employee = new Employee($cookie->id_employee); echo '
'.$this->l('Create a new category and organize your products.').'
//'.$this->l('Fill up your catalog with new articles and attributes.').'
//'.$this->l('Manage your activity with a thorough analysis of your e-shop.').'
//'.$this->l('Add a new employee account and discharge a part of your duties of shop owner.').'
//Dernière mise à jour : ' . $stats['date_upd'] . '
'; if($stats) { $stats = explode(';', $stats['value']); $result['total_sales'] = (float) $stats[0]; $result['total_orders'] = (int) $stats[1]; } else { $stats_id_orders = array(); foreach(Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT o.`id_order`, o.`total_paid_real` FROM `'._DB_PREFIX_.'orders` o LEFT JOIN `'._DB_PREFIX_.'order_history` h ON o.`id_order` = h.`id_order` WHERE (h.`id_order_state` = 2 OR h.`id_order_state` = 13) AND h.`date_add` >= "'.pSQL(date('Y-m-01 00:00:00')).'" AND h.`date_add` < "'.pSQL(date('Y-m-01 00:00:00', strtotime('next month'))).'" GROUP BY o.`id_order` ') as $row) { $result['total_sales'] += (float) $row['total_paid_real']; $result['total_orders']++; $stats_id_orders[] = (int) $row['id_order']; } for($i=0, $l=count($stats_id_orders); $i < $l; $i+=2000) { foreach(Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT o.`total_paid_real` FROM `'._DB_PREFIX_.'orders` o LEFT JOIN `'._DB_PREFIX_.'order_history` h ON o.`id_order` = h.`id_order` WHERE (h.`id_order_state` = 2 OR h.`id_order_state` = 13) AND h.`date_add` >= "'.pSQL(date('Y-m-01 00:00:00', strtotime('previous month'))).'" AND h.`date_add` < "'.pSQL(date('Y-m-01 00:00:00')).'" AND o.`id_order` IN ('.implode(', ', array_slice($stats_id_orders, $i, 2000)).') GROUP BY o.`id_order` ') as $row) { $result['total_sales'] -= (float) $row['total_paid_real']; $result['total_orders']--; } } $stats_id_orders = null; $result['total_sales'] -= (float) Db::getInstance()->getValue(' SELECT SUM(ROUND((d.product_price * (1 - d.reduction_percent / 100) - d.reduction_amount) * (1 - d.group_reduction / 100) * (1 + d.tax_rate / 100), 2) * sd.`product_quantity`) FROM `'._DB_PREFIX_.'order_detail` d LEFT JOIN `'._DB_PREFIX_.'order_slip_detail` sd ON d.`id_order_detail` = sd.`id_order_detail` LEFT JOIN `'._DB_PREFIX_.'order_slip` s ON sd.`id_order_slip` = s.`id_order_slip` WHERE s.`date_add` >= "'.pSQL(date('Y-m-01 00:00:00')).'" AND s.`date_add` < "'.pSQL(date('Y-m-01 00:00:00', strtotime('next month'))).'" '); $result['total_sales'] -= (float) Db::getInstance()->getValue(' SELECT SUM(o.`total_shipping`) FROM `'._DB_PREFIX_.'orders` o LEFT JOIN `'._DB_PREFIX_.'order_slip` s ON o.`id_order` = s.`id_order` WHERE s.`date_add` >= "'.pSQL(date('Y-m-01 00:00:00')).'" AND s.`date_add` < "'.pSQL(date('Y-m-01 00:00:00', strtotime('next month'))).'" AND s.`shipping_cost` = 1 '); Configuration::updateValue('ADMINHOME_STATS', $result['total_sales'].';'.$result['total_orders']); } // $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' // SELECT SUM(o.`total_paid_real` / o.conversion_rate) as total_sales, COUNT(*) as total_orders // FROM `'._DB_PREFIX_.'orders` o // WHERE o.valid = 1 // AND o.`invoice_date` BETWEEN \''.date('Y-m').'-01 00:00:00\' AND \''.date('Y-m').'-31 23:59:59\' '); $result2 = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT COUNT(`id_customer`) AS total_registrations FROM `'._DB_PREFIX_.'customer` c WHERE c.`date_add` BETWEEN \''.date('Y-m').'-01 00:00:00\' AND \''.date('Y-m').'-31 23:59:59\''); $result3 = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT SUM(pv.`counter`) AS total_viewed FROM `'._DB_PREFIX_.'page_viewed` pv LEFT JOIN `'._DB_PREFIX_.'date_range` dr ON pv.`id_date_range` = dr.`id_date_range` LEFT JOIN `'._DB_PREFIX_.'page` p ON pv.`id_page` = p.`id_page` LEFT JOIN `'._DB_PREFIX_.'page_type` pt ON pt.`id_page_type` = p.`id_page_type` WHERE pt.`name` = \'product.php\' AND dr.`time_start` BETWEEN \''.date('Y-m').'-01 00:00:00\' AND \''.date('Y-m').'-31 23:59:59\' AND dr.`time_end` BETWEEN \''.date('Y-m').'-01 00:00:00\' AND \''.date('Y-m').'-31 23:59:59\''); $results = array_merge($result, array_merge($result2, $result3)); echo ''.$this->l('Sales').' | '.Tools::displayPrice($results['total_sales'], $currency).' |
'.$this->l('Total registrations').' | '.(int)($results['total_registrations']).' |
'.$this->l('Total orders').' | '.(int)($results['total_orders']).' |
'.$this->l('Product pages viewed').' | '.(int)($results['total_viewed']).' |
'.$this->l('Thread unread').' | '.$unread.' |
'.$this->l('Thread pending').' | '.$pending.' |
'.$this->l('Thread closed').' | '.$close.' |
'.$this->l('Total thread').' | '.$all.' |