Ejemplo WSFEv1 en C# para CAE
Aunque los lenguajes NET pueden acceder en forma nativa a los Web Services de la AFIP puede usar la intefaz COM del control para trabajar en una forma más rápida y cómoda sin conocer en profundidad los detalles de la implementación de la AFIP.
Desde el menú Abrir\Nuevo Proyecto Windows Forms en C#.
Desde el menú Archivo Guardar Todo el proyecto sin cerrar.
En el proyecto reciendo creado WindowsFormsApplication1 hacer clic derecho en sus propiedades.
En la solapa general en la opcion "Versión de .NET Framework de destino" Seleccionar .NET Framework 4 (no .NET FrameWork profile client).
Desde el menú proyecto\Agregar referencia. Ir a solapa Examinar y buscar el archivo WSAFIPFE.dll generalmente en la carpeta c:\archivos de programas\SC\WSAFIPFE
En el formulario creado por el proyecto, agregar un control botón y en el evento clik insertar este código:
WSAFIPFE.Factura fe = new WSAFIPFE.Factura();
Boolean bResultado = false;
bResultado = fe.iniciar(0, "cuit", @"ruta archivo *.pfx", @" ");
if (bResultado)
{
fe.ArchivoCertificadoPassword = "";
bResultado = fe.f1ObtenerTicketAcceso();
if (bResultado)
{
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 = "20150315";
fe.F1DetalleImpTotal = 184.05;
fe.F1DetalleImpTotalConc = 0;
fe.F1DetalleImpNeto = 150;
fe.F1DetalleImpOpEx = 0;
fe.F1DetalleImpTrib = 7.8;
fe.F1DetalleImpIva = 26.25;
fe.F1DetalleFchServDesde = "20150315";
fe.F1DetalleFchServHasta ="20150315";
fe.F1DetalleFchVtoPago = "20150315";
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";
bResultado = fe.F1CAESolicitar();
if (bResultado)
{
MessageBox.Show("resultado verdadero ");
}
else
{
MessageBox.Show("resultado falso ");
}
MessageBox.Show ("resultado global AFIP: " + fe.F1RespuestaResultado);
MessageBox.Show ("es reproceso? " + fe.F1RespuestaReProceso);
MessageBox.Show ("registros procesados por AFIP: " + fe.F1RespuestaCantidadReg.ToString());
MessageBox.Show("error genérico global:" + fe.f1ErrorMsg1);
if (fe.F1RespuestaCantidadReg > 0)
{
fe.f1Indice = 0;
MessageBox.Show("resultado detallado comprobante: " + fe.F1RespuestaDetalleResultado);
MessageBox.Show ("cae comprobante: " + fe.F1RespuestaDetalleCae);
MessageBox.Show ("número comprobante:" + fe.F1RespuestaDetalleCbteDesdeS);
MessageBox.Show ("error detallado comprobante: " + fe.F1RespuestaDetalleObservacionMsg1);
}
}
else
{
MessageBox.Show("fallo acceso " + fe.UltimoMensajeError);
}
}
else
{
MessageBox.Show("error inicio " + fe.UltimoMensajeError);
}