/** * Display a listing of the resource. * * @return Response */ public function index() { return Clase::all(); }
public function getAdditionalData() { return ['predefined_filters' => $this->getPredefinedFilters(), 'regiones' => Region::all(), 'clases' => Clase::all()]; }
public function getGraph() { $input = Request::createFromGlobals(); // Get graph data $graphArray = []; $graphArray['chart']['type'] = 'column'; $graphArray['title']['text'] = 'Reclamos por clase / región'; if ($input->tipo_analisis == 'cantidad') { $graphArray['title']['text'] .= ' (cantidad)'; } else { $graphArray['title']['text'] .= ' (valor)'; } $graphArray['subtitle']['text'] = 'Haga click en una barra para ver información detallada'; $graphArray['xAxis']['type'] = 'category'; $graphArray['xAxis']['min'] = 0; if ($input->tipo_analisis == 'cantidad') { $graphArray['yAxis']['title']['text'] = 'Número de reclamos'; } else { $graphArray['yAxis']['title']['text'] = 'Valor'; } // Drill up button styling $graphArray['drilldown']['drillUpButton'] = ['relativeTo' => 'spacingBox', 'position' => ['x' => -30, 'y' => 0], 'theme' => ['fill' => 'white', 'stroke-width' => 1, 'stroke' => 'silver', 'style' => ['font-size' => '10px'], 'states' => ['hover' => ['fill' => '#bada55'], 'select' => ['fill' => '#bada55', 'stroke' => '#039']]]]; // Estructurar datos $estados = [['id' => 'open', 'name' => 'Abiertos'], ['id' => 'closed', 'name' => 'Cerrados']]; $clases = Clase::all(); $regiones = Region::all(); // Nivel 1: Clases (Abiertas / Cerradas) foreach ($estados as $estado) { $clasesData = []; foreach ($clases as $clase) { $query = Reclamo::whereReclamoClase($clase->id)->whereHas('ef_request', function ($query) use($estado) { if ($estado['id'] == 'open') { $estado['id'] = ''; } return $query->whereRequestStatus($estado['id']); }); $query = $this->applyFilters($query); if ($input->tipo_analisis == 'cantidad') { $num_reclamos = $query->count(); } else { $reclamos = $query->get(); $num_reclamos = 0; foreach ($reclamos as $reclamo) { $num_reclamos += $reclamo->nc_monto; } } $clasesData[] = ['name' => $clase->nombre, 'y' => $num_reclamos, 'drilldown' => $estado['id'] . '-' . $clase->id]; } $graphArray["series"][] = ['name' => $estado['name'], 'data' => $clasesData]; } // Nivel 2: Región foreach ($estados as $estado) { foreach ($clases as $clase) { $regionesData = []; foreach ($regiones as $region) { $query = Reclamo::whereReclamoClase($clase->id)->whereReclamoRegion($region->id)->whereHas('ef_request', function ($query) use($estado) { if ($estado['id'] == 'open') { $estado['id'] = ''; } return $query->whereRequestStatus($estado['id']); }); $query = $this->applyFilters($query); if ($input->tipo_analisis == 'cantidad') { $num_reclamos = $query->count(); } else { $reclamos = $query->get(); $num_reclamos = 0; foreach ($reclamos as $reclamo) { $num_reclamos += $reclamo->nc_monto; } } $regionesData[] = ['name' => $region->nombre, 'y' => $num_reclamos, 'drilldown' => $estado['id'] . '-' . $clase->id . '-' . $region->id]; } $graphArray['drilldown']['series'][] = ['name' => $estado['name'], 'id' => $estado['id'] . '-' . $clase->id, 'data' => $regionesData]; } } // Nivel 3: Reclamos foreach ($estados as $estado) { foreach ($clases as $clase) { foreach ($regiones as $region) { $reclamosData = []; $query = Reclamo::whereReclamoClase($clase->id)->whereReclamoRegion($region->id)->whereHas('ef_request', function ($query) use($estado) { if ($estado['id'] == 'open') { $estado['id'] = ''; } return $query->whereRequestStatus($estado['id']); }); $query = $this->applyFilters($query); $reclamos = $query->get(); foreach ($reclamos as $reclamo) { if ($input->tipo_analisis == 'cantidad') { $reclamosData[] = [(string) $reclamo->id, 1]; } else { $reclamosData[] = [(string) $reclamo->id, $reclamo->nc_monto]; } } $graphArray['drilldown']['series'][] = ['name' => $estado['name'], 'id' => $estado['id'] . '-' . $clase->id . '-' . $region->id, 'data' => $reclamosData]; } } } return $graphArray; }
public function getFormData() { $input = Request::createFromGlobals(); $reclamo = Reclamo::find($input->id); $clases = Clase::all(); $regiones = Region::all(); $problemas = Problema::all(); if (count($problemas) > 0) { $causas = $this->getCausas($problemas->first()->id); } else { $causas = []; } $acciones = Accion::all(); $decisiones = Solucion::all(); $usuarios = User::noAdmin()->get(); return ['clases' => $clases, 'regiones' => $regiones, 'problemas' => $problemas, 'causas' => $causas, 'acciones' => $acciones, 'decisiones' => $decisiones, 'usuarios' => $usuarios]; }