WSMTXCA mecanismo "indiceitem"

El mecanismo "indiceitem" es una propiedad especial que permite manejar desde el control ActiveX una lista de valores variables (como los items correspondientes a los productos de una factura electrónica del WSMTXCA y otros datos que no son fijos).

Por ejemplo antes de llamar al método "AutorizarComprobante" deben cargarse una serie de datos (fecha, total, etc) en las propiedades correspondientes y también deben cargarse los productos incluidos en el comprobante:

Pero en una factura pueden presentarse más de un producto . El control podría agregar propiedades extras como:

fxItemCantidad2, fxItemCodigo2, fxitemDescripcion2

fxItemCantidad3, fxItemCodigo3, fxItemDescripcion3.

Un esquema asi sería muy engorroso y limitante. Además hay muchos otros datos variables (tributos, comprobantes asociados, etc) en una factura y todos deberian tener sus propiedades duplicadas, triplicadas o más.

Una forma más sencilla y genérica para cargar (o leer) estos datos es usar una propiedad "fxIndiceItem" para indicar a que linea o fila de la lista nos estamos refiriendo. Si en una factura debemos cargar 2 productos procederiamos asi:

    • En la propiedad "fxItemItemCantidad" cargamos el valor 2 (2 productos o items).

    • Cargamos la propiedad "fxindiceitem" a 0 (para indicar que nos estamos refiriendo a la primera fila).

    • Cargamos en la propiedades "fxitemCantidad", "fxItemCodigo" y "fxItemDescripcion" los datos de la primera fila.

    • Cargamos la propiedad "fxindiceitem" a 1 (para indicar que nos estamos refiriendo a la segunda fila).

    • Cargamos en la propiedades "fxitemCantidad", "fxItemCodigo" y "fxItemDescripcion" los datos de la segunda fila.

Este procedimiento se aplica a cualquier lista que debamos carga (o leer). Primero se indica en una propiedad "fxXXXXItemCantidad" la cantidad de filas de la lista y luego usando la propiedad "fxIndiceItem" para referenciar a cada fila (empezando siempre desde 0 hasta fxXXXXItemCantidad-1).

Si necesitamos leer una lista variable devuelta por AFIP (por ejemplo la lista de errores devueltos al intentar autorizar un CAE) se procede de igual forma:

    • En la propiedad "fxRespuestaObservacionItemCantidad" contendrá la cantidad de filas (errores) en la lista que puede ser 0 o más.

    • Cargamos la propiedad "fxIndiceitem" a 0 y leemos en las propiedades correspondientes los datos de la primera fila (FxRespuestaObservacionDescripcion, FxRespuestaObservacionCodigo).

    • Continuamos cargando la propiedad "fxIndiceItem" a 1, 2, etc hasta "fxRespuestaObservacionItemCantidad-1".

En la documentación de métodos y propiedades se detalle específicamente que métodos devuelven listas variables y en que propiedades se leen. Solo la propiedad "fxIndiceItem" es común a todas las listas.

Bajo ningún concepto debe confundirse la propiedad "fxIndiceItem", que referencia la fila de una lista variable, con la propiedad "Indice" que referencia a un comprobante en caso que se esté autorizando un lote de comprobantes para obtener varios CAE en una sola llamada (no admitido en el WSMTXCA)