Bonjour,
Je cherche désespérement un moyen de modifier la classe GetOrders de AdminStatsController. L'idée serait de pouvoir comptabiliser à la fois les commandes ayant le statut "Paiement Accepté" et les commandes "en cours de préparation". Une idée ?
public static function getOrders($date_from, $date_to, $granularity = false)
{
if ($granularity == 'day') {
$orders = array();
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
SELECT LEFT(`invoice_date`, 10) as date, COUNT(*) as orders
FROM `'._DB_PREFIX_.'orders` o
LEFT JOIN `'._DB_PREFIX_.'order_state` os ON o.current_state = os.id_order_state
WHERE `invoice_date` BETWEEN "'.pSQL($date_from).' 00:00:00" AND "'.pSQL($date_to).' 23:59:59" AND os.logable = 1
'.Shop::addSqlRestriction(false, 'o').'
GROUP BY LEFT(`invoice_date`, 10)');
foreach ($result as $row) {
$orders[strtotime($row['date'])] = $row['orders'];
}
return $orders;
} elseif ($granularity == 'month') {
$orders = array();
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
SELECT LEFT(`invoice_date`, 7) as date, COUNT(*) as orders
FROM `'._DB_PREFIX_.'orders` o
LEFT JOIN `'._DB_PREFIX_.'order_state` os ON o.current_state = os.id_order_state
WHERE `invoice_date` BETWEEN "'.pSQL($date_from).' 00:00:00" AND "'.pSQL($date_to).' 23:59:59" AND o.logable = 1 AND os.current_state=19
'.Shop::addSqlRestriction(false, 'o').'
GROUP BY LEFT(`invoice_date`, 7)');
foreach ($result as $row) {
$orders[strtotime($row['date'].'-01')] = $row['orders'];
}
return $orders;
} else {
$orders = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
SELECT COUNT(*) as orders
FROM `'._DB_PREFIX_.'orders` o
LEFT JOIN `'._DB_PREFIX_.'order_state` os ON o.current_state = os.id_order_state
WHERE `invoice_date` BETWEEN "'.pSQL($date_from).' 00:00:00" AND "'.pSQL($date_to).' 23:59:59" AND o.logable = 1 AND os.current_state=19
'.Shop::addSqlRestriction(false, 'o'));
}
return $orders;
}