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);
}