/** * Run the database seeds. * * @return void */ public function run() { DB::table('indicadores_ubicaciones_geograficas')->delete(); $indicadores_ubicaciones_geograficas = array(['indicador_id' => 1, 'ubicacion_geografica_id' => 1, 'periodo' => 2010, 'valor' => 1490668.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 1, 'periodo' => 2005, 'valor' => 1367692.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 1, 'periodo' => 2000, 'valor' => 1353610.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 1, 'periodo' => 1995, 'valor' => 1336496.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 1, 'periodo' => 1990, 'valor' => 1276323.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 1, 'periodo' => 1980, 'valor' => 1136830.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 1, 'periodo' => 1970, 'valor' => 951462.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 1, 'periodo' => 1960, 'valor' => 817831.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 1, 'periodo' => 1950, 'valor' => 665524.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 1, 'periodo' => 1940, 'valor' => 565437.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 1, 'periodo' => 1930, 'valor' => 459047.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 1, 'periodo' => 1921, 'valor' => 379329.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 1, 'periodo' => 1910, 'valor' => 477556.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 2, 'periodo' => 2010, 'valor' => 637026.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 2, 'periodo' => 2005, 'valor' => 512170.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 2, 'periodo' => 2000, 'valor' => 424041.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 2, 'periodo' => 1995, 'valor' => 375494.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 2, 'periodo' => 1990, 'valor' => 317764.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 2, 'periodo' => 1980, 'valor' => 215139.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 2, 'periodo' => 1970, 'valor' => 128019.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 2, 'periodo' => 1960, 'valor' => 81594.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 2, 'periodo' => 1950, 'valor' => 60864.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 2, 'periodo' => 1940, 'valor' => 51471.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 2, 'periodo' => 1930, 'valor' => 47089.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 2, 'periodo' => 1921, 'valor' => 39294.0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 1, 'ubicacion_geografica_id' => 2, 'periodo' => 1910, 'valor' => 0, 'unidad' => 'Numero de personas', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 2, 'ubicacion_geografica_id' => 1, 'periodo' => 2005, 'valor' => 75539.3, 'unidad' => 'Kilometros cuadrados', 'created_at' => \Carbon\Carbon::now()], ['indicador_id' => 2, 'ubicacion_geografica_id' => 2, 'periodo' => 2005, 'valor' => 73922.47, 'unidad' => 'Kilometros cuadrados', 'created_at' => \Carbon\Carbon::now()]); foreach ($indicadores_ubicaciones_geograficas as $indicador_ubicacion_geografica) { \App\IndicadorUbicacionGeografica::create($indicador_ubicacion_geografica); } }
/** * Generate a JSON response to graph * * @param Request $request * @return Response */ public function graph(Request $request) { $json = array(); try { $statusCode = 200; $url = $request->input('url'); $segments = explode('/', $url); $indicador = isset($segments[2]) ? $segments[2] : null; $ubicacion = isset($segments[4]) ? $segments[4] : null; $periodo = isset($segments[6]) ? $segments[6] : null; $data = IndicadorUbicacionGeografica::whereHas('indicador', function ($query) use($indicador) { $query->where('indicador', '=', $indicador); })->with('indicador')->whereHas('ubicacion_geografica', function ($query) use($ubicacion) { if (!empty($ubicacion)) { $query->where('codigo', '=', $ubicacion); } })->with('ubicacion_geografica'); if (!empty($periodo)) { $data = $data->where('periodo', $periodo); } $data = $data->orderBy('periodo', 'asc')->get(); if ($data->isEmpty()) { return \Illuminate\Support\Facades\Response::json(['mensaje' => 'Sin Resultados.'], $statusCode); } $json = array(); $ubicaciones = array(); $json_keys = array(); foreach ($data as $indicador) { if (!in_array((string) $indicador->ubicacion_geografica->nombre, $ubicaciones)) { array_push($ubicaciones, (string) $indicador->ubicacion_geografica->nombre); } if (!in_array($indicador->periodo, $json_keys)) { array_push($json_keys, $indicador->periodo); } $valores[(string) $indicador->ubicacion_geografica->nombre][] = array($indicador->valor); } $json['json'] = $valores; $json['keys'] = $json_keys; $json['values'] = $ubicaciones; } catch (\Exception $e) { $statusCode = 400; $json = ['error' => true, 'mensaje' => 'Sin Resultados.']; } finally { return \Illuminate\Support\Facades\Response::json($json, $statusCode); } }