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