/** * //Devuelve los grupos contenedores del mismo tipo que $this->recurso * @param void * @return array */ public function getContenedores() { $contenedores = array(); $contenedores = GrupoRecurso::where('tipo', '=', $this->recurso->tipo)->get()->toArray(); return $contenedores; }
/** * @param Input::get('nombre') string * @param Input::get('descripcion') string * @param Input::get('tipo') string * @param Input::get('id_lugar') string * @param Input::get('padre_id') int * @param Input::get('modo') int (0|1) * @param Input::get('roles') array * * @return $result array */ public function ajaxEditRecurso() { // :) //Input $id = Input::get('id', ''); $nombre = Input::get('nombre'); $tipo = Input::get('tipo'); //espacio|puesto|tipoequipo|equipo $padre_id = Input::get('padre_id', ''); $modo = Input::get('modo', '1'); //0=gestión con validación, 1=gestión sin validación $descripcion = Input::get('descripcion', ''); $id_lugar = Input::get('id_lugar', ''); $roles = Input::get('roles'); //roles con acceso para poder reservar (array()) //out $result = array('error' => false, 'msg' => '', 'errors' => array()); //Validación de formulario $rules = array('id' => 'required|exists:recursos', 'nombre' => 'required|unique:recursos,nombre,' . Input::get('id') . ',id,deleted_at,NULL', 'tipo' => 'required|in:' . implode(',', Config::get('options.recursos')), 'padre_id' => 'required', 'modo' => 'required|in:' . implode(',', Config::get('options.modoGestion'))); $messages = array('id.exists' => 'Identificador de recurso no encontrado....', 'required' => 'El campo <strong>:attribute</strong> es obligatorio....', 'unique' => 'Existe un recurso con el mismo nombre...', 'tipo.in' => 'El tipo de recurso no está definido...', 'modo.in' => 'Modo de Gestión de solicitudes de reserva no definido....', 'grupo_id.required_if' => 'identificador de grupo requerido....', 'espacio_id.required_if' => 'identificador de espacio requerido....', 'grupo_id.exists' => 'No existe identificador de grupo...', 'grupo_id.sametypes' => 'No coinciden los tipos de grupo y recurso...', 'existsContenedor' => 'No existe identificador de elemento padre..'); $validator = Validator::make(Input::all(), $rules, $messages); $datos = array('padre_id' => $padre_id, 'tipo' => $tipo); $validator->sometimes('existsContenedor', '', function ($datos) { if (in_array($datos['tipo'], Config::get('options.recursosContenedores'))) { return GrupoRecurso::where('id', '=', $datos['padre_id'])->get() != null; } if (in_array($datos['tipo'], Config::get('options.recursosItems'))) { return Recurso::where('id', '=', $datos['padre_id'])->get() != null; } }); if ($validator->fails()) { //Si errores en el formulario $result['error'] = true; $result['errors'] = $validator->errors()->toArray(); } else { $recurso = Recurso::findOrFail($id); $sgrRecurso = Factoria::getRecursoInstance($recurso); $sgrRecurso->edit(Input::all()); $sgrRecurso->save(); $result['msg'] = (string) View::make('msg.success')->with(array('msg' => Config::get('msg.editrecursosuccess'))); } return $result; }
/** * Devuelve recursos contenedores del mismo tipo y del mismo grupo que el recurso contenedor de $this->recurso * @param void * @return array */ public function getContenedores() { $contenedores = array(); if ($this->recurso->contenedor != null) { $contenedores = Recurso::where('tipo', '=', $this->recurso->contenedor->tipo)->where('grupo_id', '=', $this->recurso->contenedor->grupo_id)->get()->toArray(); } else { $contenedores = GrupoRecurso::where('tipo', '=', $this->recurso->tipo)->get()->toArray(); } return $contenedores; }
/** * @param Input::get('grupo_id') int * * @return $result array */ public function del() { // :) //Input $id = Input::get('grupo_id', ''); //Output $respuesta = array('errors' => array(), 'msg' => '', 'error' => false); //Validate $rules = array('grupo_id' => 'required|exists:grupoRecursos,id'); $messages = array('required' => 'El campo <strong>:attribute</strong> es obligatorio....', 'exists' => 'No existe identificador de grupo...'); $validator = Validator::make(Input::all(), $rules, $messages); //Save Input or return error if ($validator->fails()) { $result['errors'] = $validator->errors()->toArray(); $result['error'] = true; return $result; } $grupo = GrupoRecurso::findOrFail($id); if ($grupo->recursos->count() > 0) { $result['errors'] = array('grupo_id' => 'No se puede eliminar un grupo con elementos'); $result['error'] = true; return $result; } $administradores = $grupo->administradores(); foreach ($administradores as $administrador) { $supervisor->detach($administrador->id); } $validadores = $grupo->validadores(); foreach ($validadores as $validador) { $validador->detach($validador->id); } $gestores = $grupo->gestores(); foreach ($gestores as $gestor) { $tecnico->detach($gestor->id); } $grupo->delete(); $result['msg'] = (string) View::make('msg.success')->with(array('msg' => Config::get('msg.delgruposuccess'))); return $result; }