Pues bien, en respuesta a las preguntas acerca de como implementar la libreria CFDI.NET para generar un CFDI de principio a fin, aqui les dejo este post.
Una vez que agregues las referencias de la dll en visual studio, tienes que crear un objeto de tipo Comprobante de la siguiente manera:
Dim micomprobante As New CFDI.ComprobanteAhora crea el motor para generar los archivos que han de ser enviados al PAC
With micomprobante
.TruncarDecimales = True
.TruncarDecimalesLongitud = 2
.AgregaDatosEmisor("AAA010101AAA", "Empresa Demo", "Padre Mier", 1640, "", "Obispado", 53400, "Monterrey", "Nuevo Leon", "", "Mexico", "", True)
.AgregaDatosReceptor("CLI010101AAA", "Cliente Demo", "Padre Mier", 5512, "", "", 64060, "Monterrey", "Nuevo Leon", "", "Mexico", "")
.tipoDeComprobante = CFDI.ComprobanteTipoDeComprobante.ingreso
.formaDePago = "Pago en una sola exhibición"
.fecha = New Date(2011, 1, 8, 0, 16, 40)
.folio = 66
.tipoDeComprobante = CFDI.ComprobanteTipoDeComprobante.ingreso
.AgregaConcepto(2, 2, 2, 2, 2, "123456", "GDL", New Date(2010, 12, 12, 6, 0, 0))
.AgregaImpuesto(CFDI.ComprobanteImpuestosTrasladoImpuesto.IVA, 16)
.serie = ""
End With
'crea el motor usando los certificados del demo del SAT
Dim mCFDI As New CFDI.MotorCFDI(archivocertificado, archivoLlave, _ contrasena,directorioDestino)
'agrega el comprobante al motor
mCFDI.Comprobantes.Add(micomprobante)
Dim resultado As CFDI.ResultadoProceso = mCFDI.GenerarArchivosPAC(True, False)
Envia los archivos usando el metodo que te proporcione el PAC, ese codigo depende de cada PAC. una vez que hayas recibido los archivos timbrados, puedes agregar las addendas
'vacia los comprobantes del motor
mCFDI.Comprobantes.Clear()
'procesa los archivos recibidos
For Each archivoRecibidoPAC As String In listaArchivosRecibidosPAC
'regenera el objeto a partir de un archivo fisico
Dim comprobanteConTimbre As CFDI.Comprobante = CFDI.Comprobante.DeserializeFromFile(archivoRecibidoPAC)
'para el demo, tengo la addenda en un txt
Dim textoXMLAddenda As String
Using sr As New IO.StreamReader(archivoAddenda)
textoXMLAddenda = sr.ReadToEnd
End Using
'agrega el texto del xml que quieres adicionar al comprobante
comprobanteConTimbre.AgregaXMLAddenda(textoXMLAddenda)
'guarda el archivo con la addenda incluida, en este caso estoy sobreescribiendo el del PAC
comprobanteConTimbre.Serialize.Save(archivoRecibidoPAC)
'agrega el comprobante a la lista que se va a procesar para los PDF’s
mCFDI.Comprobantes.Add(comprobanteConTimbre)
Next
Por ultimo, genera el PDF
'reprocesa los comprobantes para generar los archivos del TFD y CBB
resultado = mCFDI.GenerarArchivosXMLPDF(False, False)
'establece cual sera el archivo de formado para los CFDI's
CFD.PDF.Globales.ArchivoREPX = "C:\MiFormatoCFDI.repx"
'envia los resultados al motor de PDF's
CFD.PDF.Generar.ArchivosPDF(resultado.ArchivosXMLPDF())
Cuando generas el PDF, se genera un archivo extension .pdf.xml, en este se incluyen algunos valores que seran de utilidad a la hora de generar el archivo PDF, por ejemplo, las cadenas original y de TFD
Ahi tienen, eso es todo lo que hay que hacer para generar archivos XML validos usando la libreria, sin problemas. Espero sus comentarios