public function index() { $sortby = Input::get('sortby', 'estado'); $order = Input::get('order', 'desc'); $id_recurso = Input::get('id_recurso', '0'); $id_user = Input::get('id_user', '0'); $evento_id = Input::get('evento_id', ''); $verpendientes = Input::get('verpendientes', false); $veraprobadas = Input::get('veraprobadas', false); $verdenegadas = Input::get('verdenegadas', false); $msgforuser = Input::get('msgforuser', ''); $espaciosConValidacion = $this->espaciosConValidacion(); //array de identificadores $solapamientos = Input::get('solapamientos', false); $idEventoValidado = Input::get('idEventoValidado', ''); //resultado de la valida $estados = array('pendiente'); $userFilterestado = array(); if ($verpendientes) { $userFilterestado[] = 'pendiente'; } if ($veraprobadas) { $userFilterestado[] = 'aprobada'; } if ($verdenegadas) { $userFilterestado[] = 'denegada'; } if (!$verdenegadas && !$veraprobadas) { $userFilterestado[] = 'pendiente'; } if (!empty($userFilterestado)) { $estados = $userFilterestado; $verpendientes = true; } //mostramos la lista de eventos para todos los usuarios if ($id_recurso == 0 && $id_user == 0) { //todos los eventos pendientes $events = Evento::whereIn('estado', $estados)->whereIn('recurso_id', $espaciosConValidacion)->groupby('evento_id')->orderby('fechaInicio', 'Asc')->orderby($sortby, $order)->paginate(10); } else { if ($id_recurso == 0 && $id_user != 0) { //solo los eventos de un usuario (todos los recursos) $events = Evento::whereIn('estado', $estados)->whereIn('recurso_id', $espaciosConValidacion)->where('user_id', '=', $id_user)->groupby('evento_id')->orderby('fechaInicio', 'Asc')->orderby($sortby, $order)->paginate(10); } else { if ($id_recurso != 0 && $id_user == 0) { //solo los eventos de un recurso (todos los usuarios) $events = Evento::where('recurso_id', '=', $id_recurso)->whereIn('estado', $estados)->groupby('evento_id')->orderby('fechaInicio', 'Asc')->orderby($sortby, $order)->paginate(10); } else { if ($id_recurso != 0 && $id_user != 0) { //solo eventos de un usuario en un determinado recurso $events = Evento::where('recurso_id', '=', $id_recurso)->where('user_id', '=', $id_user)->whereIn('estado', $estados)->groupby('evento_id')->orderby('fechaInicio', 'Asc')->orderby($sortby, $order)->paginate(10); } } } } //Usuarios con solicitudes en espacios con validadción $eventsByUser = Evento::whereIn('recurso_id', $espaciosConValidacion)->groupby('user_id')->get(); $recursos = Auth::user()->valida; $sgrUser = new sgrUser(Auth::user()); return View::make('validador.validaciones')->with('msg', $msgforuser)->with(compact('events', 'verpendientes', 'veraprobadas', 'verdenegadas'))->with('sortby', $sortby)->with('order', $order)->with('idrecurso', $id_recurso)->with('iduser', $id_user)->with('solapamientos', $solapamientos)->nest('dropdown', 'admin.dropdown', compact('sgrUser'))->nest('menuValidador', 'validador.menuValidador', compact('recursos', 'id_recurso', 'id_user', 'eventsByUser', 'verpendientes', 'veraprobadas', 'verdenegadas')); }
/** * * //Devuelve los eventos pendientes de realización (aprobados o pendientes) a partir de hoy */ public function eventosfuturos() { if ($this->recurso->puestos->count() > 0) { //Tiene puestos foreach ($this->recurso->puestos as $puesto) { $id_puestos[] = $puesto->id; } return Evento::whereIn('recurso_id', $id_puestos)->where('fechaEvento', '>=', date('Y-m-d'))->whereIn('estado', array(Config::get('options.reservaAprobada'), Config::get('options.reservaPendiente')))->get(); } else { //No tiene puestos return $this->recurso->events()->where('fechaEvento', '>=', date('Y-m-d'))->whereIn('estado', array(Config::get('options.reservaAprobada'), Config::get('options.reservaPendiente')))->get(); } }
/** * //Devuelve los eventos para el día $fechaEvento * @param $fechaEvento string formato Y-m-d * @return Collection Object Evento * */ public function getEvents($fechaEvento, $estado = '') { if (empty($estado)) { $estado = Config::get('options.estadoEventos'); } //sino se especifica ningún estado para los eventos a obtener se obtienen todos independiente de su estado if ($this->recurso->equipos->count() > 0) { foreach ($this->recurso->equipos as $equipo) { $id_equipos[] = $equipo->id; } return Evento::whereIn('recurso_id', $id_equipos)->whereIn('estado', $estado)->where('fechaEvento', '=', $fechaEvento)->groupby('evento_id')->orderby('horaFin', 'desc')->orderby('horaInicio')->get(); } else { return $this->recurso->events()->whereIn('estado', $estado)->where('fechaEvento', '=', $fechaEvento)->get(); } }
/** * Implementa requisito: ofrecer sumatorio de puestos o equipos reservados * * @param void * @return $total int número total de puestos o equipos asociados a una misma reserva */ public function total() { $total = 0; if ($this->recurso->tipo != 'espacio') { $total = Evento::where('evento_id', '=', $this->evento_id)->where('horaInicio', '=', $this->horaInicio)->where('fechaEvento', '=', $this->fechaEvento)->count(); } //Bug PODController, quitar el año q viene $userPOD = User::where('username', '=', 'pod')->first(); //$eventoTest = Evento::whereIn('recurso_id',$alist_id)->where('fechaEvento','=',$strDate)->orderBy('horaInicio','asc')->groupby('evento_id')->first(); $idPOD = $userPOD->id; $iduser = 0; $iduser = $this->user_id; if ($iduser == $idPOD) { $recursos = Recurso::where('grupo_id', '=', $this->recurso->grupo_id)->get(); $alist_id = array(); foreach ($recursos as $recurso) { $alist_id[] = $recurso->id; } $total = Evento::whereIn('recurso_id', $alist_id)->where('fechaEvento', '=', $this->fechaEvento)->where('horaInicio', '=', $this->horaInicio)->where('titulo', '=', $this->titulo)->count(); } //fin del bug return $total; }