public function register_visualization($document_id) { $documento = \Documento::find($document_id); if (!$documento) { return \Response::json(['error' => 'No existe ningun documento con id = ' . $document_id], 200); } $auth_token = \Request::header('authorization'); $user = \User::where('auth_token', '=', $auth_token)->first(); $idevento = \Input::get('session_id'); if ($idevento) { $evento = \Evento::find($idevento); if (!$evento) { return \Response::json(['error' => 'No existe ninguna sesión con id = ' . $idevento], 200); } $v = new \Visualizacion(); $v->idusers = $user->id; $v->ideventos = $evento->ideventos; $v->iddocumentos = $document_id; $v->save(); } else { // obtener todos los eventos asociados al documento $eventos = \DocumentosEvento::where('iddocumentos', '=', $document_id)->get(); foreach ($eventos as $evento) { $v = new \Visualizacion(); $v->idusers = $user->id; $v->ideventos = $evento->ideventos; $v->iddocumentos = $document_id; $v->save(); } } return \Response::json(['success' => 1], 200); }
public function submit_descargar_documento() { 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"]) || in_array('side_nuevo_evento', $data["permisos"])) { $ideventos = Input::get('ideventos'); $iddocumentos = Input::get('iddocumentos'); $visualizacion = Visualizacion::getVisualizacionesPorUserPorEventoPorDocumento($data["user"]->id, $ideventos, $iddocumentos)->get(); if ($visualizacion->isEmpty()) { $nueva_visualización = new Visualizacion(); $nueva_visualización->idusers = $data["user"]->id; $nueva_visualización->ideventos = $ideventos; $nueva_visualización->iddocumentos = $iddocumentos; $nueva_visualización->save(); } $documento = Documento::find($iddocumentos); $rutaDestino = $documento->ruta . $documento->nombre_archivo; $headers = array('Content-Type', mime_content_type($rutaDestino)); // Llamo a la función para registrar el log de auditoria $descripcion_log = "Se descargó el documento con id {{$documento->iddocumentos}}"; Helpers::registrarLog(9, $descripcion_log); return Response::download($rutaDestino, basename($documento->titulo), $headers); } 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'); } }
/** * Display a listing of the resource. * * @return Response */ public function sesiones() { // obtener usuario que esta haciendo la peticion $auth_token = \Request::header('authorization'); $user = User::where('auth_token', '=', $auth_token)->first(); // obtener los permisos del usuario $idpermisos = User::getPermisosPorUsuarioId($user->id)->get()->lists('idpermisos'); // obtener las sesiones de acuerdo a los permisos del usuario $sesiones = []; if (in_array(12, $idpermisos)) { // tiene el permiso "listar (todos los) eventos" $sesiones = \Evento::all(); } elseif (in_array(15, $idpermisos)) { // tiene el permiso "mis eventos" $sesiones = \Asistencia::getEventosPorUser($user->id)->get(); } $response = []; foreach ($sesiones as $sesion) { //obtener los puntos de reunion de la sesion //$idpuntos = PuntoEvento::where('ideventos', '=', $sesion->ideventos)->get()->lists('idpuntos_reunion'); //$puntos_reunion = PuntoReunion::whereIn('idpuntos_reunion', $idpuntos)->get(); //$puntos_evento = PuntoEvento::getPuntosPorEvento($sesion->ideventos)->get(); $puntos_reunion = PuntoReunion::all(); $lista_puntos = []; foreach ($puntos_reunion as $punto) { // verificar si la sesion tiene asignado el punto de reunion $punto_evento = PuntoEvento::getPuntosPorEventoXPunto($sesion->ideventos, $punto->idpuntos_reunion)->first(); $lista_puntos[] = ['id' => $punto->idpuntos_reunion, 'latitude' => (double) $punto->latitud, 'longitude' => (double) $punto->longitud, 'selected' => $punto_evento ? 1 : 0]; } //obtener los documentos de la sesion //$iddocumentos = DocumentosEvento::where('ideventos', '=', $sesion->ideventos)->get()->lists('iddocumentos'); //$documentos = Documento::whereIn('iddocumentos', $iddocumentos)->get(); $documentos = DocumentosEvento::getDocumentosPorEvento($sesion->ideventos)->get(); $lista_docs = []; foreach ($documentos as $doc) { // obtener hace cuantos dias se subio el documento $from = new \DateTime(); $from->setTimestamp(strtotime($doc->created_at)); $to = new \DateTime('today'); $dias = $from->diff($to)->d; // obtener los usuarios asignados al documento (al evento) $users = []; $usuarios = \Asistencia::getUsersPorEvento($sesion->ideventos)->get(); foreach ($usuarios as $u) { $perfiles = \User::getPerfilesPorUsuario2($u->id)->get(); $perfiles_array = []; foreach ($perfiles as $perfil) { $perfiles_array[] = ['id' => $perfil->idperfiles, 'name' => $perfil->nombre]; } // verificar si el usuario ha visto el documento $visto = \Visualizacion::getVisualizacionesPorUserPorEventoPorDocumento($u->id, $sesion->ideventos, $doc->iddocumentos)->first(); $users[] = ['id' => $u->id, 'names' => $u->nombres, 'last_name' => $u->apellido_pat, 'username' => $u->num_documento, 'profiles' => $perfiles_array, 'seen' => $visto ? 1 : 0]; } $lista_docs[] = ['id' => $doc->iddocumentos, 'name' => $doc->titulo, 'url' => $doc->ruta . $doc->nombre_archivo, 'upload_date' => 'Hace ' . $dias . ' día' . ($dias != 1 ? 's' : '') . ', ' . date('h:i A', $from->getTimestamp()), 'size' => $doc->peso . ' KB', 'users' => $users]; } //obtener los niños asignados a la sesion $ninhos = AsistenciaNinho::getNinhosPorEvento($sesion->ideventos)->get(); $lista_ninhos = []; foreach ($ninhos as $n) { // 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 el comentario que el usuario le ha hecho al niño $ha_comentado = 0; $comentario = null; $c = Comentario::getComentarioPorUserPorNinhos($user->id, $n->idasistencia_ninhos)->first(); if ($c) { $ha_comentado = 1; $comentario = ['id' => $c->idcomentarios, 'message' => $c->comentario, 'face' => (int) $c->calificacion]; } $lista_ninhos[] = ['id' => $n->idasistencia_ninhos, 'child' => ['id' => $n->idninhos, 'names' => $n->nombres, 'last_name' => $n->apellido_pat, 'gender' => $genero, 'age' => $edad, 'sessions' => \AsistenciaNinho::where('idninhos', '=', $n->idninhos)->count(), 'joining_date' => strtotime($n->created_at)], 'commented' => $ha_comentado, 'comment' => $comentario]; } //obtener los voluntarios asignados a la sesion $voluntarios = Asistencia::getUsersPorEvento($sesion->ideventos)->get(); $lista_voluntarios = []; foreach ($voluntarios as $v) { $perfiles = User::getPerfilesPorUsuario2($v->id)->get(); $perfiles_array = array(); foreach ($perfiles as $perfil) { $perfiles_array[] = ['id' => $perfil->idperfiles, 'name' => $perfil->nombre]; } $lista_voluntarios[] = ['id' => $v->idasistencias, 'volunteer' => ['id' => $v->id, 'names' => $v->nombres, 'last_name' => $v->apellido_pat, 'username' => $v->num_documento, 'email' => $v->email, 'profiles' => $perfiles_array], 'attended' => (bool) $v->asistio, 'rating' => (int) $v->calificacion, 'comment' => $v->comentario]; } $response[] = ['id' => $sesion->ideventos, 'name' => $sesion->nombre, 'date' => strtotime($sesion->fecha_evento), 'location' => ['latitude' => (double) $sesion->latitud, 'longitude' => (double) $sesion->longitud, 'address' => $sesion->direccion], 'meeting_points' => $lista_puntos, 'documents' => $lista_docs, 'attendance_children' => $lista_ninhos, 'attendance_volunteers' => $lista_voluntarios]; } return Response::json($response, 200); }