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