/** * @Route("listar/") * @Template() */ public function listarAction(Request $request) { $filtro_buscar = $this->ObtenerVariable($request, 'filtro_buscar'); $filtro_estado = $this->ObtenerVariable($request, 'filtro_estado'); if ($filtro_estado) { if ($filtro_estado == -1) { // El -1 tiene el valor especial de Estado=0 $this->Where .= " AND r.Estado=0"; } else { $this->Where .= " AND r.Estado={$filtro_estado}"; } } if ($filtro_buscar) { $this->Joins[] = " LEFT JOIN r.Titular t"; $this->Joins[] = " LEFT JOIN r.Local l"; $this->BuscarPor = 'Nombre, ExpedienteNumero, l.Nombre, t.NombreVisible, t.RazonSocial, t.DocumentoNumero, t.Cuilt'; } $RestuladoListar = parent::listarAction($request); $res = $RestuladoListar['res']; $res->Estados = \Yacare\ComercioBundle\Entity\Comercio::NombresEstados(); return $RestuladoListar; }
/** * @Route("resumen/") * @Template */ public function resumenAction(Request $request) { $res = $this->ConstruirResultado(new \Yacare\ComercioBundle\Helper\Resultados\ResultadoInicioAction($this), $request); $this->ObtenerContadoresYRecientes($res); $em = $this->getEm(); // Comercios por actividad principal $res->Rankings['ComercioActividad'] = $em->createQuery('SELECT a.Nombre, a.Clamae2014, COUNT(c.id) AS cant FROM Yacare\\ComercioBundle\\Entity\\Comercio c LEFT JOIN c.Actividad1 a WHERE c.Actividad1 IS NOT NULL GROUP BY c.Actividad1 ORDER BY cant DESC')->setMaxResults(15)->getResult(); $Graf_ComercioActividad = new Chartjs(); $Graf_ComercioActividad->RenderTo = 'chart_comercioactividad'; $Graf_ComercioActividad->ChartType = 'Doughnut'; $Graf_ComercioActividad->AddOption('scaleShowLabelBackdrop', true)->AddOption('animateRotate', true); foreach ($res->Rankings['ComercioActividad'] as $Porcion) { $Graf_ComercioActividad->AddPieValue($Porcion['Nombre'], $Porcion['cant']); } $res->Charts['ComercioActividad'] = $Graf_ComercioActividad; /// Comercios por estado $res->Rankings['ComercioEstado'] = $em->createQuery('SELECT c.Estado, COUNT(c.id) AS cant FROM Yacare\\ComercioBundle\\Entity\\Comercio c GROUP BY c.Estado ORDER BY cant DESC')->setMaxResults(15)->getResult(); $Graf_ComercioEstado = new Chartjs(); $Graf_ComercioEstado->RenderTo = 'chart_comercioestado'; $Graf_ComercioEstado->ChartType = 'Doughnut'; $Graf_ComercioEstado->AddOption('scaleShowLabelBackdrop', true)->AddOption('animateRotate', true); foreach ($res->Rankings['ComercioEstado'] as $Porcion) { $Graf_ComercioEstado->AddPieValue(\Yacare\ComercioBundle\Entity\Comercio::NombreEstado($Porcion['Estado']), $Porcion['cant']); } $res->Charts['ComercioEstado'] = $Graf_ComercioEstado; $res->NombresEstados = \Yacare\ComercioBundle\Entity\Comercio::NombresEstados(); return array('res' => $res); }
/** * Reordena las actividades en un comercio para que estén consolidadas (sin espacios * intermedios en blanco). * * @param \Yacare\ComercioBundle\Entity\Comercio $comercio El comercio. */ public function ReordenarActividades($comercio) { $Reordenado = false; if ($comercio->getActividad6() && !$comercio->getActividad5()) { $comercio->setActividad5($comercio->getActividad6()); $comercio->setActividad6(null); $Reordenado = true; } if ($comercio->getActividad5() && !$comercio->getActividad4()) { $comercio->setActividad4($comercio->getActividad5()); $comercio->setActividad5(null); $Reordenado = true; } if ($comercio->getActividad4() && !$comercio->getActividad3()) { $comercio->setActividad3($comercio->getActividad4()); $comercio->setActividad4(null); $Reordenado = true; } if ($comercio->getActividad3() && !$comercio->getActividad2()) { $comercio->setActividad2($comercio->getActividad3()); $comercio->setActividad3(null); $Reordenado = true; } if ($Reordenado) { // Si hice cambios, uso recursión para hacer una pasada más, que puede ser necesaria. return $this->ReordenarActividades($comercio); } else { // No hice cambios. La lista está ordenada. return; } }
/** * Devuelve nombres de estado normalizados. * * @param integer $estado * @return string */ public static function NombreEstado($estado) { return Comercio::NombresEstados()[$estado]; }