Ejemplo WSFEv1 para FoxPro

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

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

Crear un proyecto en FoxPro.

Crear un formulario y agregar un control tipo "button".

En el evento click de un control tipo botón insertar el siguiente código:

local fe as Object

fe = CREATEOBJECT("WSAFIPFE.factura")

If fe.iniciar(0, "CUIT sin separadores", "ruta y nombre del archivo de certificado *.pfx", "") Then

If fe.f1ObtenerTicketAcceso() Then

fe.F1CabeceraCantReg = 1

fe.F1CabeceraPtoVta = 4

fe.F1CabeceraCbteTipo = 1

fe.f1Indice = 0

fe.F1DetalleConcepto = 1

fe.F1DetalleDocTipo = 80

fe.F1DetalleDocNro = "20111111112"

fe.F1DetalleCbteDesde = 1

fe.F1DetalleCbteHasta = 1

fe.F1DetalleCbteFch = "20101023"

fe.F1DetalleImpTotal = 184.05

fe.F1DetalleImpTotalConc = 0

fe.F1DetalleImpNeto = 150

fe.F1DetalleImpOpEx = 0

fe.F1DetalleImpTrib = 7.8

fe.F1DetalleImpIva = 26.25

fe.F1DetalleFchServDesde = "20101023"

fe.F1DetalleFchServHasta = "20101023"

fe.F1DetalleFchVtoPago = "20101023"

fe.F1DetalleMonId = "PES"

fe.F1DetalleMonCotiz = 1

fe.F1DetalleTributoItemCantidad = 1

fe.f1IndiceItem = 0

fe.F1DetalleTributoId = 3

fe.F1DetalleTributoDesc = "Impuesto Municipal Matanza"

fe.F1DetalleTributoBaseImp = 150

fe.F1DetalleTributoAlic = 5.2

fe.F1DetalleTributoImporte = 7.8

fe.F1DetalleIvaItemCantidad = 2

fe.f1IndiceItem = 0

fe.F1DetalleIvaId = 5

fe.F1DetalleIvaBaseImp = 100

fe.F1DetalleIvaImporte = 21

fe.f1IndiceItem = 1

fe.F1DetalleIvaId = 4

fe.F1DetalleIvaBaseImp = 50

fe.F1DetalleIvaImporte = 5.25

fe.F1DetalleCbtesAsocItemCantidad = 0

fe.F1DetalleOpcionalItemCantidad = 0

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

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

lResultado = fe.F1CAESolicitar()

If lResultado Then

MessageBox ("resultado método: verdadero", 64, "")

Else

MessageBox ("resultado método: falso", 64, "")

EndIf

MessageBox ("resultado global AFIP: " + fe.F1RespuestaResultado, 64, "")

MessageBox ("es reproceso? " + fe.F1RespuestaReProceso, 64, "")

MessageBox ("registros procesados por AFIP: " + Str(fe.F1RespuestaCantidadReg), 64, "")

MessageBox ("error genérico global:" + fe.f1ErrorMsg1, 64, "")

If fe.F1RespuestaCantidadReg > 0 Then

fe.f1Indice = 0

MessageBox ("resultado detallado comprobante: " + fe.F1RespuestaDetalleResultado, 64, "")

MessageBox ("cae comprobante: " + fe.F1RespuestaDetalleCAE, 64, "")

MessageBox ("número comprobante:" + fe.F1RespuestaDetalleCbteDesdeS, 64, "")

MessageBox ("error detallado comprobante: " + fe.F1RespuestaDetalleObservacionMsg1, 64, "")

EndIf

Else

MessageBox ("fallo acceso " + fe.UltimoMensajeError, 64, "")

EndIf

Else

MessageBox ("fallo iniciar " + fe.UltimoMensajeError, 64, "")

EndIf