public function update_certificado_personal($id = null)
 {
     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
             $id_personal = Input::get('id_personal');
             $id_capacitacion = Input::get('id_capacitacion');
             $rules = array();
             // Run the validation rules on the inputs from the form
             $validator = Validator::make(Input::all(), $rules);
             // If the validator fails, redirect back to the form
             if ($validator->fails()) {
                 return Redirect::to('certificacion/show_personal/' . $id_capacitacion)->withErrors($validator)->withInput(Input::all());
             } else {
                 $personal = PersonalCapacitacion::find($id_personal);
                 $capacitacion = Capacitacion::find($personal->id_capacitacion);
                 if (Input::hasFile('archivo')) {
                     $archivo = Input::file('archivo');
                     $rutaDestino = 'uploads/documentos/rrhh/Capacitaciones/' . $capacitacion->codigo . '/Personal Asistente/' . $personal->apellidos . ' ' . $personal->nombre . '/Certificado/';
                     $nombreArchivo = $archivo->getClientOriginalName();
                     $nombreArchivoEncriptado = Str::random(27) . '.' . pathinfo($nombreArchivo, PATHINFO_EXTENSION);
                     $uploadSuccess = $archivo->move($rutaDestino, $nombreArchivoEncriptado);
                     if (!$personal->nombre_archivo == null) {
                         $rutaArchivoEliminar = $personal->url . $personal->nombre_archivo_encriptado;
                         if (File::exists($rutaArchivoEliminar)) {
                             File::delete($rutaArchivoEliminar);
                         }
                     }
                     $personal->nombre_archivo = $nombreArchivo;
                     $personal->nombre_archivo_encriptado = $nombreArchivoEncriptado;
                     $personal->url = $rutaDestino;
                 }
                 $personal->save();
                 Session::flash('message', 'Se edito correctamente la información del personal.');
                 return Redirect::to('certificacion/show_personal/' . $id_capacitacion);
             }
         } else {
             return View::make('error/error', $data);
         }
     } else {
         return View::make('error/error', $data);
     }
 }
 public function update_info_personal($id = null)
 {
     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
             $id_personal = Input::get('id_personal');
             $id_capacitacion = Input::get('id_capacitacion');
             $rules = array('nombre' => 'required|alpha_spaces', 'apellidos' => 'required|alpha_spaces', 'departamento' => 'required', 'servicio_clinico' => 'required', 'tipo_documento' => 'required', 'numero_documento' => 'required|numeric|unique:personal_capacitaciones,numero_documento,' . $id_personal . ',id,id_capacitacion,' . $id_capacitacion);
             // Run the validation rules on the inputs from the form
             $validator = Validator::make(Input::all(), $rules);
             // If the validator fails, redirect back to the form
             if ($validator->fails()) {
                 return Redirect::to('capacitacion/edit_info_personal/' . $id_personal)->withErrors($validator)->withInput(Input::all());
             } else {
                 $personal = PersonalCapacitacion::find($id_personal);
                 $capacitacion = Capacitacion::find($personal->id_capacitacion);
                 $personal->nombre = Input::get('nombre');
                 $personal->apellidos = Input::get('apellidos');
                 $personal->id_servicio = Input::get('servicio_clinico');
                 $personal->id_tipodocumento = Input::get('tipo_documento');
                 $personal->numero_documento = Input::get('numero_documento');
                 $personal->save();
                 Session::flash('message', 'Se edito correctamente la información del personal.');
                 return Redirect::to('capacitacion/show_info_personal/' . $id_personal);
             }
         } else {
             return View::make('error/error', $data);
         }
     } else {
         return View::make('error/error', $data);
     }
 }
 /**
  * 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);
     }
 }
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store()
 {
     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('id_reporte' => 'required', 'nombre' => 'required', 'categoria' => 'required', 'departamento' => 'required', 'responsable' => 'required', 'servicio_clinico' => 'required', 'fecha_ini' => 'required', 'fecha_fin' => 'required', 'proposito' => 'required', 'objetivos' => 'required', 'metodologia' => 'required', 'requerimientos' => 'required', 'asunciones' => 'required', 'restricciones' => 'required', 'riesgo_descs' => 'required', 'riesgo_tipos' => 'required', 'crono_descs' => 'required', 'crono_fechas_ini' => 'required', 'crono_fechas_fin' => 'required', 'crono_duraciones' => 'required', 'pre_descs' => 'required', 'pre_montos' => 'required', 'pers_nombres' => 'required', 'entidades' => 'required', 'apro_nombres' => 'required');
             $messages = array('fecha_ini.required' => 'El campo Fecha Inicio es requerido', 'fecha_fin.required' => 'El campo Fecha Final es requerido', 'riesgo_descs.required' => 'El campo descripcion de riesgos es requerido', 'riesgo_tipos.required' => 'El campo tipos de riesgos es requerido', 'crono_descs.required' => 'El campo descripcion de cronograma es requerido', 'crono_fechas_ini.required' => 'El campo fechas de inicio de cronograma es requerido', 'crono_fechas_fin.required' => 'El campo fechas de finales de cronograma es requerido', 'pre_descs.required' => 'El campo descripcion de presupuesto es requerido', 'pre_montos.required' => 'El campo montos de presupuesto es requerido', 'pers_nombres.required' => 'El campo nombres de personal es requerido', 'apro_nombres.required' => 'El campo nombres de aprobacion es requerido');
             // 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('proyecto/create')->withErrors($validator)->withInput(Input::all());
             } else {
                 $proyecto = new Proyecto();
                 $proyecto->nombre = Input::get('nombre');
                 $proyecto->id_categoria = Input::get('categoria');
                 $proyecto->id_servicio_clinico = Input::get('servicio_clinico');
                 $proyecto->id_departamento = Input::get('departamento');
                 $proyecto->id_responsable = Input::get('responsable');
                 $proyecto->fecha_ini = date("Y-m-d", strtotime(Input::get('fecha_ini')));
                 $proyecto->fecha_fin = date("Y-m-d", strtotime(Input::get('fecha_fin')));
                 $proyecto->proposito = Input::get('proposito');
                 $proyecto->objetivos = Input::get('objetivos');
                 $proyecto->metodologia = Input::get('metodologia');
                 $proyecto->descripcion = Input::get('descripcion');
                 $proyecto->id_requerimiento = Input::get('id_reporte');
                 $proyecto->save();
                 $proyecto->codigo = 'P-' . date('Y') . '-' . $proyecto->id;
                 $proyecto->save();
                 $requerimientos = Input::get('requerimientos');
                 foreach ($requerimientos as $requerimiento) {
                     $proyecto_requerimiento = new ProyectoRequerimiento();
                     $proyecto_requerimiento->descripcion = $requerimiento;
                     $proyecto_requerimiento->id_proyecto = $proyecto->id;
                     $proyecto_requerimiento->save();
                 }
                 $asunciones = Input::get('asunciones');
                 foreach ($asunciones as $asuncion) {
                     $proyecto_asuncion = new ProyectoAsuncion();
                     $proyecto_asuncion->descripcion = $asuncion;
                     $proyecto_asuncion->id_proyecto = $proyecto->id;
                     $proyecto_asuncion->save();
                 }
                 $restricciones = Input::get('restricciones');
                 foreach ($restricciones as $restriccion) {
                     $proyecto_restriccion = new ProyectoRestriccion();
                     $proyecto_restriccion->descripcion = $restriccion;
                     $proyecto_restriccion->id_proyecto = $proyecto->id;
                     $proyecto_restriccion->save();
                 }
                 $pers_nombres = Input::get('pers_nombres');
                 foreach ($pers_nombres as $nombre) {
                     $proyecto_personal = new ProyectoPersonal();
                     $proyecto_personal->usuario = $nombre;
                     $proyecto_personal->id_proyecto = $proyecto->id;
                     $proyecto_personal->save();
                 }
                 $entidades = Input::get('entidades');
                 foreach ($entidades as $entidad) {
                     $proyecto_entidad = new ProyectoEntidad();
                     $proyecto_entidad->nombre = $entidad;
                     $proyecto_entidad->id_proyecto = $proyecto->id;
                     $proyecto_entidad->save();
                 }
                 $apro_nombres = Input::get('apro_nombres');
                 foreach ($apro_nombres as $nombre) {
                     $proyecto_aprobacion = new ProyectoAprobacion();
                     $proyecto_aprobacion->usuario = $nombre;
                     $proyecto_aprobacion->id_proyecto = $proyecto->id;
                     $proyecto_aprobacion->save();
                 }
                 $riesgo_descs = Input::get('riesgo_descs');
                 $riesgo_tipos = Input::get('riesgo_tipos');
                 foreach ($riesgo_descs as $key => $descripcion) {
                     $proyecto_riesgo = new ProyectoRiesgo();
                     $proyecto_riesgo->descripcion = $descripcion;
                     $proyecto_riesgo->tipo = $riesgo_tipos[$key];
                     $proyecto_riesgo->id_proyecto = $proyecto->id;
                     $proyecto_riesgo->save();
                 }
                 $crono_descs = Input::get('crono_descs');
                 $crono_fechas_ini = Input::get('crono_fechas_ini');
                 $crono_fechas_fin = Input::get('crono_fechas_fin');
                 $crono_duraciones = Input::get('crono_duraciones');
                 foreach ($crono_descs as $key => $descripcion) {
                     $proyecto_cronograma = new ProyectoCronograma();
                     $proyecto_cronograma->descripcion = $descripcion;
                     $proyecto_cronograma->fecha_ini = date('Y-m-d', strtotime($crono_fechas_ini[$key]));
                     $proyecto_cronograma->fecha_fin = date('Y-m-d', strtotime($crono_fechas_fin[$key]));
                     $proyecto_cronograma->duracion = $crono_duraciones[$key];
                     $proyecto_cronograma->id_proyecto = $proyecto->id;
                     $proyecto_cronograma->save();
                 }
                 $pre_descs = Input::get('pre_descs');
                 $pre_montos = Input::get('pre_montos');
                 foreach ($pre_descs as $key => $descripcion) {
                     $proyecto_presupuesto = new ProyectoPresupuesto();
                     $proyecto_presupuesto->descripcion = $descripcion;
                     $proyecto_presupuesto->monto = $pre_montos[$key];
                     $proyecto_presupuesto->id_proyecto = $proyecto->id;
                     $proyecto_presupuesto->save();
                 }
                 Session::flash('message', 'Se registró correctamente el proyecto.');
                 return Redirect::to('proyecto/create');
             }
         } else {
             return View::make('error/error', $data);
         }
     } else {
         return View::make('error/error', $data);
     }
 }