Ejemplo WSFEv1 en NET anteriores para CAE

Desde NET es posible referenciar la interfaz WSAFIPFE sin incluir la referencia en el proyecto usando la sentencia CREATEOBJECT (VB.NET) o Activator (C#) Aunque la sentencia NEW es recomendable

VB.NET

dim fe as object

dim lResultado as boolean = false

fe = CREATEOBJECT("WSAFIPFE.factura")

If fe.iniciar(0, "cuit sin separador", "ruta del certificado", "") 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 = "20101018"

fe.F1DetalleImpTotal = 184.05

fe.F1DetalleImpTotalConc = 0

fe.F1DetalleImpNeto = 150

fe.F1DetalleImpOpEx = 0

fe.F1DetalleImpTrib = 7.8

fe.F1DetalleImpIva = 26.25

fe.F1DetalleFchServDesde = "20101018"

fe.F1DetalleFchServHasta = "20101018"

fe.F1DetalleFchVtoPago = "20101018"

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

MsgBox ("resultado método: verdadero")

Else

MsgBox ("resultado método: falso")

End If

MsgBox ("resultado global AFIP: " + fe.F1RespuestaResultado)

MsgBox ("es reproceso? " + fe.F1RespuestaReProceso)

MsgBox ("registros procesados por AFIP: " + Str(fe.F1RespuestaCantidadReg))

MsgBox ("error genérico global:" + fe.f1ErrorMsg1)

If fe.F1RespuestaCantidadReg > 0 Then

fe.f1Indice = 0

MsgBox ("resultado detallado comprobante: " + fe.F1RespuestaDetalleResultado)

MsgBox ("cae comprobante: " + fe.F1RespuestaDetalleCae)

MsgBox ("número comprobante:" + fe.F1RespuestaDetalleCbteDesdeS)

MsgBox ("error detallado comprobante: " + fe.F1RespuestaDetalleObservacionMsg1)

End If

Else

MsgBox(fe.UltimoMensajeError)

End If

Else

MsgBox(fe.UltimoMensajeError)

End If

Ejemplo C# sin agregar ninguna referencia.

(el instalador 58.20 incluye el método iniciar2 que aceptar todos los argumentods como entero (1ero) y string (restantes) para evitar errores de tipos

Type feTipo = Type.GetTypeFromProgID("WSAFIPFE.factura");

dynamic fe = Activator.CreateInstance(feTipo);

Boolean bResultado = false;

bResultado = fe.iniciar2(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);

}