lunes, 18 de agosto de 2014

Software para Validar las Facturas Electronicas CFDI v3.2

Validar CFDI  v3.2


El siguiente programa lo puede descargar  para apoyarse a validar  su factura electronica generada. Valida los CFDI versión 3.2, con los siguientes complementos:

http://www.sat.gob.mx/detallista http://www.sat.gob.mx/divisas http://www.sat.gob.mx/donat http://www.sat.gob.mx/ecb http://www.sat.gob.mx/ecc http://www.sat.gob.mx/implocal http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/leyendasFiscales http://www.sat.gob.mx/TuristaPasajeroExtranjero
http://www.sat.gob.mx/pfic http://www.sat.gob.mx/iedu http://www.sat.gob.mx/ventavehiculos http://www.sat.gob.mx/terceros http://www.sat.gob.mx/spei http://www.sat.gob.mx/registrofiscal http://www.sat.gob.mx/nomina http://www.sat.gob.mx/pagoenespecie http://www.sat.gob.mx/valesdedespensa http://www.sat.gob.mx/consumodecombustibles http://www.sat.gob.mx/aerolineas http://www.sat.gob.mx/notariospublicos

Los complementos se instalan en raiz en una carpeta llamada SAT. ahí los pueden encontrar.
Espero les sirva el programa.
Link de Descarga:


Dejen sus comentarios..

lunes, 14 de julio de 2014

Facturación Electronica Generar el XML CDFI v3.2 completo

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

El siguiente código muestra un ejemplo de como generar un CFDI v3.2.   el  codigo es completo... en  artículos anteriores publique algo similar, el cual no traía ni el sello y el certificado incrustado en el Xml.   Anexo este nuevo código que trae los procedimientos de como insertar el certificado, asi como el sello digital. 

El programa esta realizado en Visual Basic con Visual Estudio 2008.

Link para descargar código:

Dejen sus comentarios.

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.