Merci pour ta reponse, j'ai cherche dans mon prestashop version 1.6.
J'ai trouve un controlleur different, AdminHomeController.php n'existant plus dans la 1.6, a la place j'ai trouve AdminStatsController.php contenant la methode suivante :
public static function getTotalSales($date_from, $date_to, $granularity = false)
{
if ($granularity == 'day')
{
$sales = array();
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
SELECT LEFT(`invoice_date`, 10) as date, SUM(total_paid_tax_excl / o.conversion_rate) as sales
FROM `'._DB_PREFIX_.'orders` o
WHERE `invoice_date` BETWEEN "'.pSQL($date_from).' 00:00:00" AND "'.pSQL($date_to).' 23:59:59"
'.Shop::addSqlRestriction(false, 'o').'
GROUP BY LEFT(`invoice_date`, 10)');
foreach ($result as $row)
$sales[strtotime($row['date'])] = $row['sales'];
return $sales;
}
elseif ($granularity == 'month')
{
$sales = array();
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
SELECT LEFT(`invoice_date`, 7) as date, SUM(total_paid_tax_excl / o.conversion_rate) as sales
FROM `'._DB_PREFIX_.'orders` o
WHERE `invoice_date` BETWEEN "'.pSQL($date_from).' 00:00:00" AND "'.pSQL($date_to).' 23:59:59"
'.Shop::addSqlRestriction(false, 'o').'
GROUP BY LEFT(`invoice_date`, 7)');
foreach ($result as $row)
$sales[strtotime($row['date'].'-01')] = $row['sales'];
return $sales;
}
else
return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
SELECT SUM(total_paid_tax_excl / o.conversion_rate)
FROM `'._DB_PREFIX_.'orders` o
WHERE `invoice_date` BETWEEN "'.pSQL($date_from).' 00:00:00" AND "'.pSQL($date_to).' 23:59:59"
'.Shop::addSqlRestriction(false, 'o'));
}
Par contre, une boucle for est utilise, je ne vois comment deduire les retour marchandise du calcul. Vous vous baser sur la table credit-slips? ca veut dire peut importe le moyen de payment utiliser (remboursement direct, remboursement par coupon, ...) ca suffira? Vous avez une idee comment mettre a jour cette version afin de corriger ce bug?
Merci d'avance