UDA-EJIE / udaRUP

RUP components repository
Other
13 stars 10 forks source link

En rupTable.getIdPk(), si la pk es compuesta, el atributo de un objeto la variable id es machacada por el ultimo valor obtenido #300

Closed jazcona closed 9 months ago

jazcona commented 9 months ago

En rup.table.js al definir la función del api rupTable.getIdPk() : Si la pk de la rup_table es compuesta y una de las claves que compone esa pk es el atributo de un objeto, la variable id es machacada por el ultimo valor obtenido.

Sugiero sustituir la línea:

id = $self._getDescendantProperty(json, key);

por:

id = id + $self._getDescendantProperty(json, key);

Función completa con solución en el comentario:

apiRegister('rupTable.getIdPk()', function (json, optionsParam) {
  var opts = options;
  if (optionsParam !== undefined) {
      opts = optionsParam;
  }

  var id = '';

  $.each(opts.primaryKey, function (index, key) {
      // Comprueba si la primaryKey es un subcampo
   if (Object.prototype.hasOwnProperty.call(json, key)) {
    id = id + json[key];
   } else if (key.indexOf('.') !== -1) {
       id = $self._getDescendantProperty(json, key); //se debería sustituir por  id = id + $self._getDescendantProperty(json, key);
   }

      if (opts.primaryKey.length > 1 && index < opts.primaryKey.length - 1) {
          id = id + opts.multiplePkToken;
      }
  });

  return id;
});
hmartinez85 commented 9 months ago

Commit realizado con la colaboración @jazcona #300