Exemplo n.º 1
0
 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);
 }