Darkest Posted February 3, 2015 Share Posted February 3, 2015 Estimados, en el panel de administración en inicio, aparece la tabla Dashboard, que muestra el total de compra dentro de un rango de días, de pedidos, etc... El tema que tengo con esto es que si yo pongo solo las de un día en sí, me salen 5 pedidos que es lo correcto, pero la suma de aquellos me dice que es "130.060" y cuando yo realizo las sumas en sí me da "124.000" y no sé de donde saca aquellos 6.060 que están demás. He modificado el código para que sume incluyendo el iva y ni aún asi me concuerda, alguien sabrá que sucede? mi versión de prestashop es 1.6.0.8 Link to comment Share on other sites More sharing options...
Darkest Posted February 3, 2015 Author Share Posted February 3, 2015 alguien? Link to comment Share on other sites More sharing options...
Darkest Posted February 4, 2015 Author Share Posted February 4, 2015 Actualmente este es el código del controller AdminStatics.php 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_incl) as sales 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) $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_incl) as sales 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`, 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_incl) 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')); } y si le estoy pidiendo que sume el total incluyendo el IVA no entiendo de donde saca aquellos "6.000" que suma demás Link to comment Share on other sites More sharing options...
Darkest Posted February 4, 2015 Author Share Posted February 4, 2015 Además me pasa que algunas compras las contabiliza y otras no, ayer hubieron 8 pedidos pero en el sistema se registran 6 pedidos, no se´ que es D: Link to comment Share on other sites More sharing options...
Darkest Posted February 4, 2015 Author Share Posted February 4, 2015 está resuelto, en caso de que a alguno le sirva esto, se debe cambiar en el archivo AdminstaticsController.php la funcion GetTotalSales, invoice_date por date_add Link to comment Share on other sites More sharing options...
Recommended Posts