static function getTopFirmas($periodo = 3, $nItems = 10) { // Construir la parte del filtro que depende del periodo switch ($periodo) { case '': $periodo = 0; case '0': // Ultimo mes $diferenciaDias = -30; $titlePeriodo = "Último mes"; break; case '1': // Ultimo Trimestre $diferenciaDias = -90; $titlePeriodo = "Últime trimestre"; break; case '2': // Ultimo Semestre $diferenciaDias = -180; $titlePeriodo = "Último Semestre"; break; case '3': // Ultimo año $diferenciaDias = -365; $titlePeriodo = "Últimos 12 meses"; break; case '4': // Todo, 20 años hacia atrás $diferenciaDias = -7300; $titlePeriodo = "Todos los datos"; break; } $fecha = new Fecha(); $desdeFecha = $fecha->sumaDias($diferenciaDias); unset($fecha); $firma = new Firmas(); $clienteTabla = $firma->getDataBaseName() . "." . $firma->getTableName(); $pedidos = new PedidosCab(); $pedidosTabla = $pedidos->getDataBaseName() . "." . $pedidos->getTableName(); unset($pedidos); $em = new EntityManager($firma->getConectionName()); if ($em->getDbLink()) { $query = "SELECT t2.RazonSocial as name, SUM(t1.TotalBases) as y\n FROM {$pedidosTabla} as t1, {$clienteTabla} as t2\n WHERE t1.IdFirma=t2.Id AND t1.Fecha>='{$desdeFecha}' \n GROUP BY t1.IdFirma\n ORDER BY SUM(t1.TotalBases) DESC LIMIT {$nItems}"; //echo $query; $em->query($query); $rows = $em->fetchResult(); $em->desConecta(); } unset($firma); return array('title' => "TOP-{$nItems} Firmas. {$titlePeriodo}", 'serieName' => "Ventas", 'serie' => $rows); }