public function render_registrar_comentario($id = null)
 {
     if (Auth::check()) {
         $data["inside_url"] = Config::get('app.inside_url');
         $data["user"] = Session::get('user');
         $data["permisos"] = Session::get('permisos');
         if (in_array('side_mis_eventos', $data["permisos"]) && $id) {
             $asistencia = Asistencia::validarAsistencia($data["user"]->id, $id)->get();
             if ($asistencia->isEmpty()) {
                 Session::flash('error', 'Lo sentimos, no tiene acceso a ver el evento solicitado.');
                 return Redirect::to('eventos/mis_eventos');
             }
             $data["evento_info"] = Evento::searchEventosById($id)->get();
             if ($data["evento_info"]->isEmpty()) {
                 Session::flash('error', 'No se encontró el evento.');
                 return Redirect::to('eventos/mis_eventos');
             }
             $data["evento_info"] = $data["evento_info"][0];
             $data["hoy"] = date("Y-m-d H:i:s");
             if ($data["hoy"] < $data["evento_info"]->fecha_evento) {
                 Session::flash('error', 'No puedes registrar comentarios sobre un evento que aún no se lleva a cabo.');
                 return Redirect::to('eventos/mis_eventos');
             }
             $data["asistencia_ninhos"] = AsistenciaNinho::getNinhosPorEvento($data["evento_info"]->ideventos)->get();
             $data["comentario_ninhos"] = array();
             foreach ($data["asistencia_ninhos"] as $ninho) {
                 $comentario = Comentario::getComentarioPorUserPorNinhos($data["user"]->id, $ninho->idasistencia_ninhos)->get();
                 if ($comentario->isEmpty()) {
                     $data["comentario_ninhos"][] = null;
                 } else {
                     $data["comentario_ninhos"][] = $comentario[0];
                 }
             }
             return View::make('eventos/registrarComentario', $data);
         } else {
             // Llamo a la función para registrar el log de auditoria
             $descripcion_log = "Se intentó acceder a la ruta '" . Request::path() . "' por el método '" . Request::method() . "'";
             Helpers::registrarLog(10, $descripcion_log);
             Session::flash('error', 'Usted no tiene permisos para realizar dicha acción.');
             return Redirect::to('/dashboard');
         }
     } else {
         return View::make('error/error');
     }
 }
 public function comment($attendance_children_id)
 {
     // validar si el id es de un registro existente
     $asistencia_ninho = \AsistenciaNinho::find($attendance_children_id);
     if (!$asistencia_ninho) {
         return Response::json(['error' => 'No existe un registro de asistencia con id = ' . $attendance_children_id], 200);
     }
     $rules = array('message' => 'required', 'face' => 'required');
     $validator = \Validator::make(Input::all(), $rules);
     if ($validator->fails()) {
         return Response::json(['error' => 'Los parámetros message y face son obligatorios.'], 200);
     }
     // verificar si el usuario ya le comento al niño
     $auth_token = \Request::header('authorization');
     $user = \User::where('auth_token', '=', $auth_token)->first();
     $comentario = \Comentario::getComentarioPorUserPorNinhos($user->id, $attendance_children_id)->first();
     if ($comentario) {
         $comentario->comentario = Input::get('message');
         $comentario->calificacion = Input::get('face');
         $comentario->save();
     } else {
         $nuevo_comentario = new \Comentario();
         $nuevo_comentario->comentario = Input::get('message');
         $nuevo_comentario->calificacion = Input::get('face');
         $nuevo_comentario->idusers = $user->id;
         $nuevo_comentario->idasistencia_ninhos = $attendance_children_id;
         $nuevo_comentario->save();
     }
     // armar la respuesta
     // verificar si tiene permiso para leer todos los comentarios del niño
     $idpermisos = \User::getPermisosPorUsuarioId($user->id)->get()->lists('idpermisos');
     if (!in_array(33, $idpermisos)) {
         return Response::json(['success' => 1], 200);
     }
     $n = \Ninho::find($asistencia_ninho->idninhos);
     // genero
     $genero = null;
     if ($n->genero == 'm' || $n->genero == 'M') {
         $genero = 0;
     } elseif ($n->genero == 'f' || $n->genero == 'F') {
         $genero = 1;
     }
     // edad
     $from = new \DateTime($n->fecha_nacimiento);
     $to = new \DateTime('today');
     $edad = $from->diff($to)->y;
     // obtener todos los comentarios hechos al niño en todas las sesiones
     $lista_comentarios = [];
     $asistencias = \AsistenciaNinho::where('idninhos', '=', $n->idninhos)->get();
     foreach ($asistencias as $a) {
         $comentarios = \Comentario::where('idasistencia_ninhos', '=', $a->idasistencia_ninhos)->get();
         foreach ($comentarios as $c) {
             $autor = \User::searchUserById($c->idusers)->first();
             $perfiles = \User::getPerfilesPorUsuario2($autor->id)->get();
             $perfiles_array = [];
             foreach ($perfiles as $perfil) {
                 $perfiles_array[] = ['id' => $perfil->idperfiles, 'name' => $perfil->nombre];
             }
             $lista_comentarios[] = ['id' => $c->idcomentarios, 'session_id' => $a->ideventos, 'message' => $c->comentario, 'face' => (int) $c->calificacion, 'author' => ['id' => $autor->id, 'names' => $autor->nombres, 'last_name' => $autor->apellido_pat, 'username' => $autor->num_documento, 'profiles' => $perfiles_array]];
         }
     }
     $response = ['success' => 1, 'id' => $n->idninhos, 'names' => $n->nombres, 'last_name' => $n->apellido_pat, 'gender' => $genero, 'age' => $edad, 'sessions' => $asistencias->count(), 'joining_date' => strtotime($n->created_at), 'comments' => $lista_comentarios];
     return Response::json($response, 200);
 }