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