Quobit

Cultura Digital, Tutoriales, tecnología y gadgets

Factura electronica – ¿Cómo generar la Cadena Original y Sello Digital con Visual Basic?

Últimamente me han pedido mucho asesoría para generar la facturación electrónica en Visual Basic, así que me di a la tarea de buscar como hacerlo. No tengo demasiada experiencia en éste lenguaje, pero les comparto algo básico que encontre para que ustedes generen sus propias facturas electrónicas usando Visual Basic.

El siguiente proyecto que encontre en el blog de MiFacturaciónElectrónica habla de generación de la cadena original a partir de un XML dado, pero podemos extraer el método que lo calcula:

Lo único que hace al igual que como yo lo hago en PHP, es leer el XSLT que proporciona el SAT y a partir de ahí generar la cadena original:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim xmlDoc As New System.Xml.XmlDocument
Dim CadenaOriginal As String
Dim transformer As System.Xml.Xsl.XslCompiledTransform

Dim Archivo_XSLT As String

Dim document As New System.Xml.XmlDocument
Dim navigator As System.Xml.XPath.XPathNavigator
Dim output As New System.IO.StringWriter()
document = New System.Xml.XmlDocument()
transformer = New System.Xml.Xsl.XslCompiledTransform
TextBox2.Text = «»
If TextBox1.Text <> «» Then
Try
Archivo_XSLT = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly.Location) & «\ArchivosSAT\cadenaoriginal_2_0.xslt»
document.Load(TextBox1.Text)

navigator = document.CreateNavigator

                transformer.Load(Archivo_XSLT)

transformer.Transform(navigator, Nothing, output)
Console.WriteLine(output.ToString)

CadenaOriginal = output.ToString

output.Close()
TextBox2.Text = CadenaOriginal
Catch ex As Exception
TextBox2.Text = «Error :» + ex.Message
Finally
document = Nothing
transformer = Nothing
navigator = Nothing
output.Dispose()

End Try
Else
TextBox2.Text = «No se ha cargado el archivo XML.»
End If

End Sub