sábado, 14 de diciembre de 2013

CFDI - Crear PDF apartir del XML

CFDI - Crear PDF a partir del XML

El siguiente código nos ayuda a generar la  impresión gráfica del CFDI. El ejemplo esta programado en Visual Basic, lo utilizo en la mayoría de las publicaciones por lo sencillo que se me hace realizar los ejemplos.

Para generar el PDF utilice en esta ocasión un reporte hecho con la herramienta de CrystalReports, ademas reutilizo la utileria "ThoughtWorks.QRCode.dll" que anteriormente publique  en como "Generar un Código de Barras Bidimensional"

Link para realizar Descarga: https://www.mediafire.com/?axirzf0n3w0ywhu

Espero les pueda servir el  código  como referencia...

Dejen sus comentarios..

lunes, 8 de abril de 2013

Código para para validar las diferentes estructuras de las facturas electronicas

Código para para validar las diferentes estructuras de las facturas electronicas

Espero les sirvan estas pequeñas funciones para validad las diferentes estructuras de las electronicas.

Dejen sus  comentarios...


Validación de Estructura para CFD v2.0

Private Function ValidarEsquemaCFDv20(ByVal vfile As String) As Boolean
        Dim vlValida As Boolean = True

        Dim tr As System.Xml.XmlTextReader
        Dim vr As System.Xml.XmlValidatingReader

        tr = New System.Xml.XmlTextReader(vfile)
        vr = New System.Xml.XmlValidatingReader(tr)
        Dim valida As Boolean = True

        Try
            vr.Schemas.Add("http://www.sat.gob.mx/cfd/2", DIR_SAT & "cfdv2.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/detallista", DIR_SAT & "detallista.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/divisas", DIR_SAT & "Divisas.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/donat", DIR_SAT & "donat.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/ecb", DIR_SAT & "ecb.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/ecc", DIR_SAT & "ecc.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/implocal", DIR_SAT & "implocal.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/psgecfd", DIR_SAT & "psgecfd.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/terceros", DIR_SAT & "terceros.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/iedu", DIR_SAT & "iedu.xsd")

            With vr.Read()

            End With
            m_colErrores.Add("Esquema Valido")
        Catch ex As Exception
            valida = False
            vlValida = False
            m_colErrores.Add(ex.Message)
        Finally
            tr.Close()
            vr.Close()
        End Try
        Return vlValida
End Function



Validación de Estructura para CFD v2.2

 Private Function ValidarEsquemaCFDv22(ByVal vfile As String) As Boolean
        Dim vlValida As Boolean = True

        Dim tr As System.Xml.XmlTextReader
        Dim vr As System.Xml.XmlValidatingReader

        tr = New System.Xml.XmlTextReader(vfile)
        vr = New System.Xml.XmlValidatingReader(tr)
        Dim valida As Boolean = True

        Try
            vr.Schemas.Add("http://www.sat.gob.mx/cfd/2", DIR_SAT & "cfdv22.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/detallista", DIR_SAT & "detallista.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/divisas", DIR_SAT & "Divisas.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/donat", DIR_SAT & "donat11.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/ecb", DIR_SAT & "ecb.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/ecc", DIR_SAT & "ecc.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/implocal", DIR_SAT & "implocal.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/psgecfd", DIR_SAT & "psgecfd.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/leyendasFiscales", DIR_SAT & "leyendasFisc.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/TuristaPasajeroExtranjero", DIR_SAT & "TuristaPasajeroExtranjero.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/pfic", DIR_SAT & "pfic.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/iedu", DIR_SAT & "iedu.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/ventavehiculos", DIR_SAT & "ventavehiculos.xsd")

            With vr.Read()

            End With
            m_colErrores.Add("Esquema Valido")
        Catch ex As Exception
            valida = False
            vlValida = False
            m_colErrores.Add(ex.Message)
        Finally
            tr.Close()
            vr.Close()
        End Try
        Return vlValida
End Function



Validación de Estructura para CFDI v3.0

 Private Function ValidarEsquemaCFDIv30(ByVal vfile As String) As Boolean
        Dim vlValida As Boolean = True

        Dim tr As System.Xml.XmlTextReader
        Dim vr As System.Xml.XmlValidatingReader

        tr = New System.Xml.XmlTextReader(vfile)
        vr = New System.Xml.XmlValidatingReader(tr)
        Dim valida As Boolean = True

        Try

            vr.Schemas.Add("http://www.sat.gob.mx/cfd/3", DIR_SAT & "cfdv3.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/detallista", DIR_SAT & "detallista.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/divisas", DIR_SAT & "Divisas.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/donat", DIR_SAT & "donat.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/ecb", DIR_SAT & "ecb.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/ecc", DIR_SAT & "ecc.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/implocal", DIR_SAT & "implocal.xsd")          
            vr.Schemas.Add("http://www.sat.gob.mx/TimbreFiscalDigital", DIR_SAT & "TimbreFiscalDigital.xsd")          
            vr.Schemas.Add("http://www.sat.gob.mx/iedu", DIR_SAT & "iedu.xsd")          


            With vr.Read()

            End With
            m_colErrores.Add("Esquema Valido")
        Catch ex As Exception
            valida = False
            vlValida = False
            m_colErrores.Add(ex.Message)
        Finally
            tr.Close()
            vr.Close()
        End Try
        Return vlValida
    End Function


Validación de Estructura para CFDI v3.2

 Private Function ValidarEsquemacfdiV32(ByVal vfile As String) As Boolean
        Dim vlValida As Boolean = True

        Dim tr As System.Xml.XmlTextReader
        Dim vr As System.Xml.XmlValidatingReader

        tr = New System.Xml.XmlTextReader(vfile)
        vr = New System.Xml.XmlValidatingReader(tr)
        Dim valida As Boolean = True

        Try

            vr.Schemas.Add("http://www.sat.gob.mx/cfd/3", DIR_SAT & "cfdv32.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/detallista", DIR_SAT & "detallista.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/divisas", DIR_SAT & "Divisas.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/donat", DIR_SAT & "donat11.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/ecb", DIR_SAT & "ecb.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/ecc", DIR_SAT & "ecc.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/implocal", DIR_SAT & "implocal.xsd")          
            vr.Schemas.Add("http://www.sat.gob.mx/TimbreFiscalDigital", DIR_SAT & "TimbreFiscalDigital.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/leyendasFiscales", DIR_SAT & "leyendasFisc.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/TuristaPasajeroExtranjero", DIR_SAT & "TuristaPasajeroExtranjero.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/pfic", DIR_SAT & "pfic.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/iedu", DIR_SAT & "iedu.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/ventavehiculos", DIR_SAT & "ventavehiculos.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/terceros", DIR_SAT & "terceros11.xsd")
            vr.Schemas.Add("http://www.sat.gob.mx/spei", DIR_SAT & "spei.xsd")

            With vr.Read()

            End With
            m_colErrores.Add("Esquema Valido")
        Catch ex As Exception
            valida = False
            vlValida = False
            m_colErrores.Add(ex.Message)
        Finally
            tr.Close()
            vr.Close()
        End Try
        Return vlValida
    End Function

sábado, 23 de marzo de 2013

Código para validad es estructura de un CFD en formato String

Código para validad  es estructura de un CFD en formato String

El siguiente código  nos ayuda a validar  la estructura de una factura electrónica antes de generar nuestro archivo XML. La validación  la realiza  en una variable String  que tiene cargada todo lo que llevaría nuestro CDF o CDFI, dependiendo de la versión que se desee validar,  tendra que descargar del SAR  los archivos que utilizara para la validacion. ejemplo:
            settings.Schemas.Add("http://www.sat.gob.mx/cfd/2", DIR_SAT & "cfdv2.xsd")


Codigo en Visual Studio 2008, espero les puedan apoyar. Dejen  sus comentarios.


Imports System.IO


Public Class Form2



    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim context1 As New System.Xml.XmlParserContext(Nothing, Nothing, "", System.Xml.XmlSpace.None)
        Dim settings As System.Xml.XmlReaderSettings = New System.Xml.XmlReaderSettings()
        Dim reader As System.Xml.XmlReader
        Dim DIR_SAT As String = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly.Location) & "\ArchivosSAT\"
        Dim xmlDoc As New System.Xml.XmlDocument
        Dim Comprobante As System.Xml.XmlNode

        Dim NamespaceAddenda As String = ""
        Dim NamespaceAddendaURL As String = ""
        'reader = System.Xml.XmlReader.Create(Me.TextBox1.Text, settings)
        Try
            xmlDoc.LoadXml(TextBox1.Text)

            Comprobante = xmlDoc.Item("Comprobante")
            If Not Comprobante("Addenda") Is Nothing Then
                If Comprobante("Addenda").ChildNodes.Count > 0 Then
                    NamespaceAddenda = Comprobante("Addenda").ChildNodes(0).NamespaceURI
                    NamespaceAddendaURL = (Comprobante.Attributes("xsi:schemaLocation").Value)
                    NamespaceAddendaURL = NamespaceAddendaURL.Replace("http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd", "")
                    NamespaceAddendaURL = NamespaceAddendaURL.Replace("http://www.sat.gob.mx/cfd/2", "")
                    NamespaceAddendaURL = NamespaceAddendaURL.Replace(NamespaceAddenda, "").Trim
                End If
            End If

            settings.Schemas.Add("http://www.sat.gob.mx/cfd/2", DIR_SAT & "cfdv2.xsd")
            settings.Schemas.Add("http://www.sat.gob.mx/detallista", DIR_SAT & "detallista.xsd")
            settings.Schemas.Add("http://www.sat.gob.mx/divisas", DIR_SAT & "Divisas.xsd")
            settings.Schemas.Add("http://www.sat.gob.mx/donat", DIR_SAT & "donat.xsd")
            settings.Schemas.Add("http://www.sat.gob.mx/ecb", DIR_SAT & "ecb.xsd")
            settings.Schemas.Add("http://www.sat.gob.mx/ecc", DIR_SAT & "ecc.xsd")
            settings.Schemas.Add("http://www.sat.gob.mx/implocal", DIR_SAT & "implocal.xsd")
            settings.Schemas.Add("http://www.sat.gob.mx/psgecfd", DIR_SAT & "psgecfd.xsd")
            settings.Schemas.Add("http://www.sat.gob.mx/terceros", DIR_SAT & "terceros.xsd")
            If NamespaceAddenda <> "" And NamespaceAddendaURL <> "" Then
                settings.Schemas.Add(NamespaceAddenda, NamespaceAddenda + NamespaceAddendaURL)
            End If
            settings.ValidationType = System.Xml.ValidationType.Schema
            settings.ValidationFlags = System.Xml.Schema.XmlSchemaValidationFlags.ProcessInlineSchema
            settings.XmlResolver = Nothing
            Dim nodeReader As Xml.XmlNodeReader = New Xml.XmlNodeReader(xmlDoc)
            reader = System.Xml.XmlReader.Create(nodeReader, settings)
            

            While (reader.Read())
                'If reader.Name = "Addenda" Then Exit While
            End While
            Me.TextBox2.Text = "Estructura Valida...."
        Catch ex As System.Xml.Schema.XmlSchemaValidationException
            Me.TextBox2.Text = ex.Message
        Finally
            reader = Nothing
            settings = Nothing
        End Try

    End Sub
End Class

sábado, 9 de febrero de 2013

CFD Validación de Certificados para las Factura electronica

CFD Validación de Certificados para las Factura electrónica

El siguiente código muestra como validar  los archivos ".cer" Que se tienes publicados en  la pagina del SAT,  esto para validar la codificación Base64  de estos archivos, y Compararlos con lo que se encuentran incrustados  en las facturas electrónicas en el  Elemento de Certificado. Genere este codigo  ya que últimamente se han presentado muchos errores de codificación para los CFD y CFDI... y  el portal del SAT de validación no arroja ningún error..

El   codigo utiliza la libreria "ChilkatDotNet2"

Espero les sirva de algo..

Link: http://www.mediafire.com/download.php?4mbq8y9sbj3nuih

Dejen sus comentarios,  son  muy importantes para seguir mejorando este sitio web.

domingo, 2 de diciembre de 2012

Facturación Electronica Generar el XML CDFI v3.2

Facturación Electrónica Generar el XML CDFI v3.2

El siguiente código muestra un ejemplo de como generar un CFDI v3.2.   el  codifo es completo...

El programa  mesta realizado en Visual Basic con visual estudio 2008. y no cuenta con el codigo para insertar el sello  ni el certificado..

Link para descargar código:


Dejen sus comentarios.


Programa para Validar CFD y CFDI Actualización


Validar CFD y CFDI  todas las versiones.


El siguiente programa lo puede descargar  para apoyarse a validar  su factura electronica generada. El archivo trae  la  base de datos de SAT para la validación de los CFD v2.2.  también puede validar los CFDI, versión 3.0 y versión 3.2.  espero les sirva.
Ademas tiene la funcionalidad  de bajar los archivos del SAT.

Link de Descarga:


Dejen sus comentarios...