/** * //Añade un nuevo recurso a la base de datos de cualquier tipo (puesto,equipo,espacio y tipoequipos) * // llamadas desde: admin\modalrecursos\add.blade.php * @param Input::get('nombre') string * @param Input::get('descripcion') string * @param Input::get('tipo') string * @param Input::get('id_lugar') string * @param Input::get('contenedor_id') int * @param Input::get('modo') int (0|1) * @param Input::get('roles') array * * @return $result array(boolean,string,array) */ public function AjaxAddNuevoRecurso() { // :) //out $result = array('error' => false, 'msg' => '', 'errors' => array()); //Input $nombre = Input::get('nombre'); $tipo = Input::get('tipo'); //espacio|tipoequipos $contenedor_id = Input::get('contenedor_id', '0'); $modo = Input::get('modo'); //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()) $tipopadre = Input::get('tipopadre', ''); //El elemento padre o contenedor de un recurso puede ser un grupo u otro recurso //Validación de formulario $rules = array('nombre' => 'required|unique:recursos,nombre,NULL,id,deleted_at,NULL', 'tipo' => 'required|in:' . implode(',', Config::get('options.recursos')), 'contenedor_id' => 'required', 'modo' => 'required|in:' . implode(',', Config::get('options.modoGestion'))); $messages = array('required' => 'El campo <strong>:attribute</strong> es obligatorio....', 'nombre.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....', 'contenedor_idexists' => 'Elemento contenedor no encontrado en BD.'); $validator = Validator::make(Input::all(), $rules, $messages); $validator->sometimes('contenedor_idexists', '', function ($input) { if ($input['tipoPadre'] == 'recurso') { return Recurso::findOrFail($input['contenedor_id'])->count() > 0; } if ($input['tipoPadre'] == 'grupo') { return GrupoRecurso::findOrFail($input['contenedor_id'])->count() > 0; } }); if ($validator->fails()) { //Si errores en el formulario $result['error'] = true; $result['errors'] = $validator->errors()->toArray(); } else { if ($tipopadre == 'recurso') { $grupo_id = 0; $contenedor_id = $contenedor_id; } else { if ($tipopadre == 'grupo') { $grupo_id = $contenedor_id; $contenedor_id = 0; } } //Si no hay errores en el formulario $data = array('nombre' => $nombre, 'tipo' => $tipo, 'grupo_id' => $grupo_id, 'contenedor_id' => $contenedor_id, 'descripcion' => $descripcion, 'id_lugar' => $id_lugar, 'acl' => sgrACL::buildJsonAcl($modo, $roles)); $sgrRecurso = Factoria::getRecursoInstance(new Recurso()); $sgrRecurso->setdatos($data); $sgrRecurso->save(); $result['msg'] = (string) View::make('msg.success')->with(array('msg' => Config::get('msg.success'))); } return $result; }
/** * @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; }