[*] BO : Connected the first KPIs to real data

This commit is contained in:
Damien Metzger
2013-09-16 18:40:34 +02:00
parent 80b6d5a570
commit 8934f9c7ed
10 changed files with 251 additions and 13 deletions
@@ -26,4 +26,38 @@
class AdminStatsControllerCore extends AdminStatsTabController
{
public function displayAjaxGetKpi()
{
$currency = new Currency(Configuration::get('PS_CURRENCY_DEFAULT'));
switch (Tools::getValue('kpi'))
{
case 'abandoned_cart':
$value = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
SELECT COUNT(*)
FROM `'._DB_PREFIX_.'cart`
WHERE `date_add` BETWEEN "'.pSQL(date('Y-m-d')).' 00:00:00" AND "'.pSQL(date('Y-m-d')).' 23:59:59"
AND id_cart NOT IN (SELECT id_cart FROM `'._DB_PREFIX_.'orders`)
'.Shop::addSqlRestriction(Shop::SHARE_ORDER));
Configuration::updateValue('PS_KPI_ABANDONED_CARTS', $value);
Configuration::updateValue('PS_KPI_ABANDONED_CARTS_EXPIRE', strtotime('+10 min'));
break;
case 'average_order_value':
$row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
SELECT
COUNT(`id_order`) as orders,
SUM(`total_paid_tax_excl` / `conversion_rate`) as total_paid_tax_excl
FROM `'._DB_PREFIX_.'orders`
WHERE `invoice_date` BETWEEN "'.pSQL(date('Y-m-d', strtotime('-31 day'))).' 00:00:00" AND "'.pSQL(date('Y-m-d', strtotime('-1 day'))).' 23:59:59"
'.Shop::addSqlRestriction(Shop::SHARE_ORDER));
$value = Tools::displayPrice($row['orders'] ? $row['total_paid_tax_excl'] / $row['orders'] : 0, $currency);
Configuration::updateValue('PS_KPI_AVG_ORDER_VALUE', $value);
Configuration::updateValue('PS_KPI_AVG_ORDER_VALUE_EXPIRE', strtotime(date('Y-m-d 00:00:00', strtotime('+1 day'))));
break;
default:
$value = false;
}
if ($value !== false)
die(Tools::jsonEncode(array('value' => $value)));
die(Tools::jsonEncode(array('has_errors' => true)));
}
}