Ejemplo WSFEX Visual FoxPro

Este ejemplo usa el identificador "1" como 3°er argumento del método registrar(conNumero). Debe usar un identificador único y diferente para obtener CAE diferentes en cada ejecución. Después de probar el ejemplo lea toda la documentación referente a "identificador" y "reproceso" para una explicación detallada sobre la función de este argumento. El ejemplo usa el método "xRegistrarConNumero" equivalente al método "xRegistrar" pero con un 4°to argumento: el número de comprobante a autorizar que debe ser calculado manualmente. Se deben usar fechas del dia.

Para usar el control ActiveX en Visual FoxPro 6 o posterior:

En Herramientas opciones controles agregar el control WSAFIPFE

Insertar el control WSAFIPFE en un formulario. Cambiar la propiedad name a "fe"

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

local cIdentificador As String

LOCAL nNumero As Integer

local nIndex As Integer

local nPuntoventa As Integer

local ntipoComprobante As Integer

cIdentificador = "60"

nNumero = 11

nPuntoventa = 3

ntipoComprobante = 19

If thisform.fe.iniciar(0, "aqui c.u.i.t. del emisor sin separadores", "ruta y nombre del certificado tipo *.pfx", "") Then

thisform.fe.xversion = 1

If thisform.fe.xObtenerTicketAcceso() Then

thisform.fe.xFecha_cbte = "20191104"

thisform.fe.xFecha_pago = "20191104"

thisform.fe.xtipo_expo = 1

thisform.fe.xPermiso_existente = "S"

thisform.fe.xDst_cmp = 203

thisform.fe.xCliente = "Joao Da Silva"

thisform.fe.xCuit_pais_clienteS = "50000000016"

thisform.fe.xDomicilio_cliente = "Rua 76 km 34.5 Alagoas"

thisform.fe.xId_impositivo = "PJ54482221-l"

thisform.fe.xMoneda_idS = "012"

thisform.fe.xMoneda_ctz = 0.51

thisform.fe.xObs_comerciales = "Sin observaciones"

thisform.fe.xImp_total = 500

thisform.fe.xForma_pago = "Contado"

thisform.fe.xIncoTerms = "CIF"

thisform.fe.xIncoTerms_ds = "Texto dic."

thisform.fe.xIdioma_cbte = 1

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

thisform.fe.xItemCantidad = 2

thisform.fe.xIndiceItem = 0

thisform.fe.xITEMPro_codigo = "PRO1"

thisform.fe.xITEMPro_ds = "Producto Tipo 1 Exportacion MERCOSUR ISO 9001"

thisform.fe.xITEMPro_qty = 1

thisform.fe.xITEMPro_umed = 7

thisform.fe.xITEMPro_precio_uni = 250

thisform.fe.xITEMPro_precio_item = 250

thisform.fe.xIndiceItem = 1

thisform.fe.xITEMPro_codigo = "PRO1"

thisform.fe.xITEMPro_ds = "Producto Tipo 1 Exportacion MERCOSUR ISO 9001"

thisform.fe.xITEMPro_qty = 1

thisform.fe.xITEMPro_umed = 7

thisform.fe.xITEMPro_precio_uni = 250

thisform.fe.xITEMPro_precio_item = 250

thisform.fe.xPermisoCantidad = 2

thisform.fe.xPermisoNoInformar = 0

thisform.fe.xIndiceItem = 0

thisform.fe.xPERMISO_id_permiso = "09052EC01006154G"

thisform.fe.xPERMISO_dst_merc = 203

thisform.fe.xIndiceItem = 1

thisform.fe.xPERMISO_id_permiso = "09052EC01006154G"

thisform.fe.xPERMISO_dst_merc = 202

thisform.fe.xCmps_asocCantidad = 0

If thisform.fe.xRegistrarConNumero(nPuntoventa, ntipoComprobante, cIdentificador, nNumero) Then

MessageBox ("Reproceso " + thisform.fe.xRespuestaReproceso)

MessageBox ("resultado correcto " + thisform.fe.xRespuestaResultado)

MessageBox ("CAE " + thisform.fe.xRespuestaCAE)

MessageBox ("número " + thisform.fe.xRespuestacbte_numeroS)

Else

MessageBox ("Reproceso " + thisform.fe.xRespuestaReproceso)

MessageBox ("resultado falso " + thisform.fe.xRespuestaResultado)

MessageBox ("error " + thisform.fe.xerrmsg)

MessageBox ("motivo " + thisform.fe.xRespuestaMotivos_obs)

MessageBox ("ultimo mensaje error " + thisform.fe.UltimoMensajeError)

EndIf

Else

MessageBox ("fallo en acceso " + thisform.fe.xerrmsg)

EndIf

Else

MessageBox ("fallo iniciar " + thisform.fe.UltimoMensajeError)

EndIf