/**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($id)
 {
     if (Auth::check()) {
         $data["inside_url"] = Config::get('app.inside_url');
         $data["user"] = Session::get('user');
         $dimensiones = Dimension::all()->count();
         // Verifico si el usuario es un Webmaster
         if ($data["user"]->idrol == 1 || $data["user"]->idrol == 2 || $data["user"]->idrol == 3 || $data["user"]->idrol == 4) {
             // Validate the info, create rules for the inputs
             $rules = array('nombre' => 'required', 'categoria' => 'required', 'departamento' => 'required', 'responsable' => 'required', 'servicio_clinico' => 'required', 'descripcion' => 'required', 'indicadores' => 'required', 'objetivos' => 'required');
             $messages = array('ind_nombres.size' => 'Debe llenar todas las dimensiones', 'ind_bases.size' => 'Debe llenar todas las dimensiones', 'ind_unidades.size' => 'Debe llenar todas las dimensiones', 'ind_definiciones.size' => 'Debe llenar todas las dimensiones', 'ind_verificaciones.size' => 'Debe llenar todas las dimensiones');
             // Run the validation rules on the inputs from the form
             $validator = Validator::make(Input::all(), $rules, $messages);
             // If the validator fails, redirect back to the form
             if ($validator->fails()) {
                 return Redirect::to('reporte_desarrollo/edit/' . $id)->withErrors($validator)->withInput(Input::all());
             } else {
                 //dd(Input::all());
                 $reporte_desarrollo = ReporteDesarrollo::find($id);
                 $reporte_desarrollo->nombre = Input::get('nombre');
                 $reporte_desarrollo->id_categoria = Input::get('categoria');
                 $reporte_desarrollo->id_servicio_clinico = Input::get('servicio_clinico');
                 $reporte_desarrollo->id_departamento = Input::get('departamento');
                 $reporte_desarrollo->id_responsable = Input::get('responsable');
                 $reporte_desarrollo->fecha_ini = date("Y-m-d", strtotime(Input::get('fecha_ini')));
                 $reporte_desarrollo->fecha_fin = date("Y-m-d", strtotime(Input::get('fecha_fin')));
                 $reporte_desarrollo->descripcion = Input::get('descripcion');
                 $reporte_desarrollo->indicadores = Input::get('indicadores');
                 $reporte_desarrollo->objetivos = Input::get('objetivos');
                 $reporte_desarrollo->save();
                 $nombres = Input::get('ind_nombres');
                 $bases = Input::get('ind_bases');
                 $unidades = Input::get('ind_unidades');
                 $definiciones = Input::get('ind_definiciones');
                 $verificaciones = Input::get('ind_verificaciones');
                 if ($nombres) {
                     foreach ($nombres as $keyD => $dimension) {
                         //var_dump('DIMENSION '.$keyD);
                         foreach ($dimension as $keyA => $nombre) {
                             //var_dump(' Nombre: '.$nombre.' Base: '.$bases[$keyD][$keyA].' Unidad: '.$unidades[$keyD][$keyA].' Definicion: '.$definiciones[$keyD][$keyA].' Verificacion: '.$verificaciones[$keyD][$keyA]);
                             $reporte_desarrollo_indicador = new ReporteDesarrolloIndicador();
                             $reporte_desarrollo_indicador->nombre = $nombre;
                             $reporte_desarrollo_indicador->base = $bases[$keyD][$keyA];
                             $reporte_desarrollo_indicador->unidad = $unidades[$keyD][$keyA];
                             $reporte_desarrollo_indicador->definicion = $definiciones[$keyD][$keyA];
                             $reporte_desarrollo_indicador->medio = $verificaciones[$keyD][$keyA];
                             $reporte_desarrollo_indicador->reporte_id = $reporte_desarrollo->id;
                             $reporte_desarrollo_indicador->dimension_id = $keyD;
                             $reporte_desarrollo_indicador->save();
                         }
                     }
                 }
                 Session::flash('message', 'Se modifico correctamente el reporte.');
                 return Redirect::to('reporte_desarrollo/edit/' . $id);
             }
         } else {
             return View::make('error/error', $data);
         }
     } else {
         return View::make('error/error', $data);
     }
 }
 public function validarProyectoAjax()
 {
     if (!Request::ajax() || !Auth::check()) {
         return Response::json(array('success' => false), 200);
     }
     $id = Auth::id();
     $data["inside_url"] = Config::get('app.inside_url');
     $data["user"] = Session::get('user');
     if ($data["user"]->idrol == 1 || $data["user"]->idrol == 2 || $data["user"]->idrol == 3 || $data["user"]->idrol == 4 || $data["user"]->idrol == 5 || $data["user"]->idrol == 6 || $data["user"]->idrol == 7 || $data["user"]->idrol == 8 || $data["user"]->idrol == 9 || $data["user"]->idrol == 10 || $data["user"]->idrol == 11 || $data["user"]->idrol == 12) {
         $id_reporte = Input::get('id_reporte');
         $req = RequerimientoClinico::find($id_reporte);
         if ($id_reporte != '' && $req) {
             $linea = ReporteDesarrollo::where('id_requerimiento', $req->id)->first();
             $proy = Proyecto::where('id_requerimiento', $req->id)->first();
             $financia = ReporteFinanciamiento::find($req->id_reporte);
             // Requerimiento Estado aprobado, que exista linea de investigacion y que no se haya hecho un proyecto antes
             if ($linea && $req->estado->nombre == 'Aprobado' && !$proy) {
                 $reporte = $req;
                 $inversion = $financia->inversiones->sum('costo');
             } elseif (!$linea) {
                 return Response::json(array('success' => false, 'mensaje' => 'No se encuentra una linea de investigación'), 200);
             } elseif ($req->estado->nombre == 'Rechazado') {
                 return Response::json(array('success' => false, 'mensaje' => 'El requerimiento se encuentra rechazado'), 200);
             } elseif ($req->estado->nombre == 'Pendiente') {
                 return Response::json(array('success' => false, 'mensaje' => 'El requerimiento se encuentra pendiente'), 200);
             } elseif ($proy) {
                 return Response::json(array('success' => false, 'mensaje' => 'Ya existe un proyecto para este requerimiento clínico'), 200);
             }
         } else {
             $reporte = [];
         }
         return Response::json(array('success' => true, 'reporte' => $reporte, 'inversion' => $inversion), 200);
     } else {
         return Response::json(array('success' => false), 200);
     }
 }