Ejemplo WSMTXCA en Visual Basic 6 o superar para informar CAE anticipado.

Este ejemplo usa la versión 99.91 (o superior) del instalador.

Es totalmente operativo pero es necesario leer toda la documentación del WSFEv1 para una implementación real.

Al pie figura en el XML que el ejemplo genera.

Dim fe As New WSAFIPFE.Factura

Dim lREsultado As Boolean

If fe.iniciar(0, "CUIT emisor", "ruta y nombre del certificado *.pfx", "") Then

If fe.fxObtenerTicketAcceso() Then

fe.fxversion = 0

fe.fxCodigoTipoComprobante = 1

fe.fxNumeroPuntoVenta = 6

fe.fxNumeroComprobante = 3

fe.fxCodigoConcepto = 1

fe.fxFechaEmision = "20101201"

fe.fxCodigoTipoAutorizacion = "A"

fe.fxCodigoAutorizacion = "CAE anticipado obtenido por fxSolicitarCAEA"

fe.fxFechaServicioDesde = ""

fe.fxFechaServicioHasta = ""

fe.fxFechaVencimiento = ""

fe.fxFechaVencimientoPago = ""

fe.fxCodigoTipoDocumento = 80

fe.fxNumeroDocumento = "30000000007"

fe.fxImporteGravado = 10916.04

fe.fxImporteNoGravado = 0

fe.fxImporteExento = 4132

fe.fxImporteSubTotal = 15048.04

fe.fxImporteOtrosTributos = 16

fe.fxImporteTotal = 17633

fe.fxCodigoMoneda = "PES"

fe.fxCotizacionMoneda = 1

fe.fxObservaciones = "libre"

fe.fxFechaHoraGen = "20212101"

fe.fxfechaHoraGenNO = True

fe.fxQrArchivo = "d:\xqr.jpg"

fe.fxQrFormato = 6

fe.fxQrResolucion = 4

fe.fxQrTolerancia = 0

fe.fxOtrosTributosItemCantidad = 1

fe.fxIndiceItem = 0

fe.fxOtrosTributosCodigo = 1

fe.fxOtrosTributosDescripcion = "otro tributos"

fe.fxOtrosTributosBaseImponible = 1000

fe.fxOtrosTributosImporte = 16

fe.fxComprobantesAsociadosItemCantidad = 1

fe.fxIndiceItem = 0

fe.fxComprobanteAsosiadoCodigoTipoComprobante = 1

fe.fxComprobanteAsosiadoNumeroComprobanteS = "1"

fe.fxComprobanteAsosiadoNumeroPuntoVenta = 1

fe.fxComprobanteAsosiadoCUIT = "3235323532"

fe.fxComprobanteAsosiadoCUITNO = false

fe.fxComprobanteAsociadoPeriodoFechaDesde = "20200301"

fe.fxComprobanteAsociadoPeriodoFechaHasta = "20200301"

REM se puede informar el comprobante asociado o el periodo asociado o ninguno. No ambos.

REM en el modo real el servidor no acepta periodo asociado hasta el 01/04/2021. por lo que cualquier instalador anterior a esa fecha no lo incluye en el XML enviado. Hasta el 01/04/2021 solo es posible informar comprobantes asociados. y con un instalador posterior (97.10 o superior) cualquier de los datos (si corresponde).

fe.fxItemsItemCantidad = 3

fe.fxIndiceItem = 0

fe.fxItemUnidadesMtx = 123456

fe.fxItemCodigoMtx = "123456789"

fe.fxItemDescripcion = "producto 1"

fe.fxItemCodigo = "P0001"

fe.fxItemCantidad = 1

fe.fxItemCodigoUnidadMedida = 7

fe.fxItemPrecioUnitario = 12383

fe.fxItemImporteBonificacion = 0

fe.fxItemCodigoCondicionIva = 5

fe.fxItemImporteIva = 2600.43

fe.fxItemImporteItem = 14983.43

fe.fxIndiceItem = 1

fe.fxItemUnidadesMtx = 1

fe.fxItemCodigoMtx = ""

fe.fxItemDescripcion = "Descuento general"

fe.fxItemCodigo = ""

fe.fxItemCantidadNO = True

fe.fxItemCantidadNO = True

fe.fxItemCodigoUnidadMedida = 99

fe.fxItemPrecioUnitarioNO = True

fe.fxItemImporteBonificacionNo = True

fe.fxItemCodigoCondicionIva = 5

fe.fxItemImporteIva = -31.47

fe.fxItemImporteItem = -1498.43

fe.fxIndiceItem = 2

fe.fxItemUnidadesMtx = 3

fe.fxItemCodigoMtx = "123456789"

fe.fxItemDescripcion = "producto 3"

fe.fxItemCodigo = "P0003"

fe.fxItemCantidad = 1

fe.fxItemCodigoUnidadMedida = 7

fe.fxItemPrecioUnitario = 4132

fe.fxItemImporteBonificacion = 0

fe.fxItemCodigoCondicionIva = 2

fe.fxItemImporteIva = 0

fe.fxItemImporteItem = 4132

fe.fxSubTotalesItemCantidad = 1

fe.fxIndiceItem = 0

fe.fxSubTotalesIvaCodigo = 5

fe.fxSubTotalesIvaImporte = 2568.96

REM en el caso de informar actividades por simplicidad se usan las mismas propiedades que para el WSFEv1

fe.F1CabeceraCantReg = 1

fe.f1Indice = 0

fe.F1DetalleActividadItemCantidad = 1

fe.f1IndiceItem = 0

fe.F1DetalleActividadId = 1

fe.ArchivoXMLEnviado = "c:\enviado.xml"

fe.ArchivoXMLRecibido = "c:\recibido.xml"

lREsultado = fe.fxInformarComprobanteCAEA()

If lREsultado Then

MsgBox("resultado verdadero ")

Else

MsgBox("resultado falso ")

End If

MsgBox("resultado: " + fe.fxRespuestaResultado)

MsgBox("error general: " + fe.fxErrorMsg1)

MsgBox("ultimo error: " + fe.UltimoMensajeError)

MsgBox("error detallado: " + fe.FxRespuestaObservacionDescripcion1)

MsgBox("CAEA: " + fe.fxRespuestaCAEA)

MsgBox("Número: " + fe.fxRespuestaNumeroComprobanteS)

Else

MsgBox("fallo acceso " + fe.UltimoMensajeError)

End If

Else

MsgBox("fallo iniciar " + fe.UltimoMensajeError, MsgBoxStyle.OkOnly, "")

End If