Ejemplo WSFEX para VB.NET

Aunque los lenguajes NET pueden acceder facilmente a los Web Services de la AFIP puede usar la inteface COM del control para trabajar en una forma más rapida y cómoda sin conocer en profundidad los detalles de la implementación de la AFIP.

Este ejemplo usa el identificador "1" como 3°er argumento del método registrar. 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 "xRegistrar" que calcula automáticamente el número de factura a emitir. Se deben usar fechas del dia.

En un proyecto aplicación de NET cree un formulario y agregue una referencia a la interface COM WSAFIPFE siguiendo estos pasos:

Seleccionar "Proyects\Add Reference"

Seleccionar la solapa "Browse".

Localizar el archivo "WSAFIPFE.DLL" (por defecto en la carpeta c:\archivos de programs\SC"

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

Dim fe As New WSAFIPFE.Factura

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

fe.xversion = 1

If fe.xObtenerTicketAcceso() Then

fe.xFecha_cbte = "20191104"

fe.xFecha_pago = "20191104"

fe.xtipo_expo = 1

fe.xPermiso_existente = "S"

fe.xDst_cmp = 203

fe.xCliente = "Joao Da Silva"

fe.xCuit_pais_clienteS = "50000000016"

fe.xDomicilio_cliente = "Rua 76 km 34.5 Alagoas"

fe.xId_impositivo = "PJ54482221-l"

fe.xMoneda_idS = "012"

fe.xMoneda_ctzS = 0.51

fe.xObs_comerciales = "Sin observaciones"

fe.xImp_total = 500

fe.xForma_pago = "Contado"

fe.xIncoTerms = "CIF"

fe.xIncoTerms_ds = "Texto dic."

fe.xIdioma_cbte = 1

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

fe.xItemCantidad = 2

fe.xIndiceItem = 0

fe.xITEMPro_codigo = "PRO1"

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

fe.xITEMPro_qty = 1

fe.xITEMPro_umed = 7

fe.xITEMPro_precio_uni = 250

fe.xITEMPro_precio_item = 250

fe.xIndiceItem = 1

fe.xITEMPro_codigo = "PRO1"

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

fe.xITEMPro_qty = 1

fe.xITEMPro_umed = 7

fe.xITEMPro_precio_uni = 250

fe.xITEMPro_precio_item = 250

fe.xPermisoCantidad = 2

fe.xPermisoNoInformar = 0

fe.xIndiceItem = 0

fe.xPERMISO_id_permiso = "09052EC01006154G"

fe.xPERMISO_dst_merc = 203

fe.xIndiceItem = 1

fe.xPERMISO_id_permiso = "09052EC01006154G"

fe.xPERMISO_dst_merc = 202

fe.xCmps_asocCantidad = 0

If fe.xRegistrar(3, 19, "1") Then

MsgBox("Reproceso " + fe.xRespuestaReproceso)

MsgBox("resultado correcto " + fe.xRespuestaResultado)

MsgBox("CAE " + fe.xRespuestaCAE)

MsgBox("número " + fe.xRespuestacbte_numeroS)

Else

MsgBox("Reproceso " + fe.xRespuestaReproceso)

MsgBox("resultado falso " + fe.xRespuestaResultado)

MsgBox("error " + fe.xerrmsg)

MsgBox("motivo " + fe.xRespuestaMotivos_obs)

MsgBox("ultimo mensaje error " + fe.UltimoMensajeError)

End If

Else

MsgBox("fallo acceso " + fe.UltimoMensajeError)

End If

Else

MsgBox("fallo iniciar" + fe.UltimoMensajeError)

End