Foros del Web » Programación para mayores de 30 ;) » .NET »

Addenda: Agregarla a un XML Timbrado, leido desde VB.NET 2010

Estas en el tema de Addenda: Agregarla a un XML Timbrado, leido desde VB.NET 2010 en el foro de .NET en Foros del Web. Hola amigos, antes que nada dejeme explacar como pienso, el cual me gustaria saber su opinion sobre mi post. Pasa que un xml generado con ...
  #1 (permalink)  
Antiguo 03/09/2012, 16:46
Avatar de NetFcruz  
Fecha de Ingreso: agosto-2012
Ubicación: Reynosa
Mensajes: 32
Antigüedad: 12 años, 3 meses
Puntos: 0
Pregunta Addenda: Agregarla a un XML Timbrado, leido desde VB.NET 2010

Hola amigos, antes que nada dejeme explacar como pienso, el cual me gustaria saber su opinion sobre mi post. Pasa que un xml generado con timbre y todo por el sat, y lo leo o cargo a un texbox multilinea donde separo todo y me lo muestra una vez cargado(ese "xml cfdi" no lo eh generado yo), despues tengo una subrutina que me crea un xml con el nodo , y me lo muestra tmbn en otro texbox una vez generado, de ahi aprte mi consulta, lo que genere de addenda xml como deberia ser una subrutina o funcion que me agrege lo de a el xml que lei en un texbox multillinea el cual tiene el timbre validado ya, es decir pegarle la addenda, se puede eso?

Le pondre el code que lee mi XML Cargado timbrado, leyendolo en un texbox.
Código:
Sub SubLeerArchivoXml()

'Declaro variable para leer archivo Xml
Dim reader As XmlTextReader = New XmlTextReader("c:\Addenda\Archivos\addenda.xml")

'Ciclo de lectura
Do While (reader.Read())
Select Case reader.NodeType
Case XmlNodeType.Element 'Mostrar comienzo del elemento.
txtContenido.Text += "<" + reader.Name
If reader.HasAttributes Then 'If attributes exist
While reader.MoveToNextAttribute()
'Mostrar nombre y valor del atributo.
txtContenido.Text += Space(1) + reader.Name + "=" + reader.Value
End While
End If
txtContenido.Text += ">" + vbCrLf
Case XmlNodeType.Text 'Mostrar el texto de cada elemento.
txtContenido.Text += reader.Value
Case XmlNodeType.EndElement 'Mostrar final del elemento.
txtContenido.Text += " txtContenido.Text += ">" + vbCrLf
End Select
Loop



'Cierra el Archivo
reader.Close()


End Sub
Esto es para crear la addenda mediante un formulario:
Código:
'Declaro Subrutinas globales
Sub SubCrearArchivoXml()

'Declaro variable array para los libros
Dim objLibros As New ArrayList
Dim objLibro As New stcLibro
Dim objAddenda As New stcAddenda
Dim objAddendas As New ArrayList


'Variable para el Archivo Xlml
Dim myXmlTextWriter As XmlTextWriter = New XmlTextWriter("c:\Addenda\Archivos\addenda2.xml", System.Text.Encoding.UTF8)

'Anado objAddenda
'Anado unas caracteristicas de Addenda
objAddenda.TipoAddenda = CBOTADENDA.Text
objAddenda.Concepto = CBOCONCEPTO.Text
objAddenda.NumTienda = TXTUNEG.Text
objAddenda.NumProveedor = TXTNPROV.Text
objAddenda.FolioRef = TXTFOREF.Text

'AGREGO ADDENDA A COLECCION
objAddendas.Add(objAddenda)

'Añado algunos libros
objLibro.strTitulo = "Don Quijote de la Mancha"
objLibro.strAutor.strNombre = "Miguel"
objLibro.strAutor.strApellido = "de Cervantes Saavedra"
objLibro.sinPrecio = 34.5

'Agrego a la Colección
'objLibros.Add(objLibro)

objLibro.strTitulo = "Los de Abajo"
objLibro.strAutor.strNombre = "Mariano"
objLibro.strAutor.strApellido = "Azuela"
objLibro.sinPrecio = 28.5

'Agrego a la Colección
'objLibros.Add(objLibro)

objLibro.strTitulo = "Como agua para chocolate"
objLibro.strAutor.strNombre = "Laura"
objLibro.strAutor.strApellido = "Esquivel"
objLibro.sinPrecio = 34.5

'Agrego a la Colección
'objLibros.Add(objLibro)


'Formatea indentado el archivo
myXmlTextWriter.Formatting = System.Xml.Formatting.Indented

'Si escribe la inicializacion del Archivo
myXmlTextWriter.WriteStartDocument(True)

'Escribe un Comentario
' myXmlTextWriter.WriteComment("Esto es Fragmento de Addenda")

'Crear el elemento principal del documento
myXmlTextWriter.WriteStartElement("Complemento")
myXmlTextWriter.WriteAttributeString("id", "identificador")


'---------------------------ADDENDA-------------------------------

'Ciclo para incluir los elementos de la colección
For Each oAddenda As stcAddenda In objAddendas

'Escribe el inicio del elemento cfdi: Addenda
myXmlTextWriter.WriteStartElement("Addenda")


'Crear un elemento llamado 'TipoAddenda' con un nodo de texto
myXmlTextWriter.WriteStartElement("TipoAddenda")

'Escribe el Titulo
' myXmlTextWriter.WriteString(oAddenda.TipoAddenda)

'Crear un elemento llamado 'cfdi:Concepto' con un nodo de texto
' y cerrarlo en una línea.
myXmlTextWriter.WriteElementString("TipoAddenda", oAddenda.TipoAddenda)


'Cierra el elemento.
myXmlTextWriter.WriteEndElement()

'Crear un elemento llamado 'Concepto'.
myXmlTextWriter.WriteStartElement("Concepto")

'Crear un elemento llamado 'cfdi:Concepto' con un nodo de texto
' y cerrarlo en una línea.
myXmlTextWriter.WriteElementString("Concepto", oAddenda.Concepto)

'Crear un elemento llamado 'last-name' con un nodo de texto.
'myXmlTextWriter.WriteElementString("cfdi:Concepto", oAddenda.Concepto)

'Crear un elemento llamado 'UProveedor'.
myXmlTextWriter.WriteStartElement("NumProveedor")

'Crear un elemento llamado 'cfdi:Concepto' con un nodo de texto
' y cerrarlo en una línea.
myXmlTextWriter.WriteElementString("NumProveedor", oAddenda.NumProveedor)

'Crear un elemento llamado 'UProveedor'.
myXmlTextWriter.WriteStartElement("NumTienda")

'Crear un elemento llamado 'cfdi:NumTienda' con un nodo de texto
' y cerrarlo en una línea.
myXmlTextWriter.WriteElementString("NumTienda", oAddenda.NumTienda)

'Crear un elemento llamado 'UProveedor'.
myXmlTextWriter.WriteStartElement("FolioRef")

'Crear un elemento llamado 'cfdi:Concepto' con un nodo de texto
' y cerrarlo en una línea.
myXmlTextWriter.WriteElementString("FolioRef", oAddenda.FolioRef)

'Cerrar el elemento primario.
myXmlTextWriter.WriteEndElement()


'Cerrar el elemento primario.
myXmlTextWriter.WriteEndElement()

'Cerra el 3

myXmlTextWriter.WriteEndElement()

'Cerrar el 4
myXmlTextWriter.WriteEndElement()

'Cerrar el 5

' myXmlTextWriter.WriteEndElement()

Next

'Forza grabación a Disco
myXmlTextWriter.Flush()

'Cierra el Archivo
myXmlTextWriter.Close()

End Sub
Y para Leer el xml addenda es igual al de el primero de el xml cargado

Entonces si ya tengo creado el nodo en un xml como hago una vez creado antes de crearse a xml se agrege al xml leido.
Podrian auxiliarme?

Eh leido ke mediante dataset pero es cuando eh creado el XML yo, pero en este caso es uno generado de otro lado y yo lo leo y en este quiero agregarle el nodo que creo <Addenda>.

Saludos...
__________________
!El conocimiento se LIMITA cuando dices NO PUEDO!

By NetFcruz

Última edición por NetFcruz; 03/09/2012 a las 16:48 Razón: Anadir texto.
  #2 (permalink)  
Antiguo 10/09/2012, 09:30
Avatar de NetFcruz  
Fecha de Ingreso: agosto-2012
Ubicación: Reynosa
Mensajes: 32
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Addenda: Agregarla a un XML Timbrado, leido desde VB.NET 2010

Oh alguien pueda darme una opinion.
Les agradezco.
Saludos...
__________________
!El conocimiento se LIMITA cuando dices NO PUEDO!

By NetFcruz
  #3 (permalink)  
Antiguo 11/09/2012, 12:27
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 22 años
Puntos: 37
Respuesta: Addenda: Agregarla a un XML Timbrado, leido desde VB.NET 2010

SI es perfectamente factible que le agregues el nodo Addenda a un CFD ya firmado o CFDI ya timbrado, ya que la addenda no forma parte del sello digital. En tanto no modifiques nada de lo que se toma en cuenta para el sello digital (elementos de la cadena original y/o timbre fiscal)

Para incorporar el nodo, debieras leer tu XML, recuperar y referenciar al Nodo Raiz... agregar el nuevo nodo "addenda" y volver a grabar tu .xml

ndCOm .----> referencia al nodo raiz "comprobante" (te debo el codigo) del XML recien leido

Algo como:
Dim NdAddenda As XmlNode
.... cargas elementos del nodo addenda



NdCom.AppendChild(NdAddenda)

Saludos
  #4 (permalink)  
Antiguo 17/09/2012, 17:24
Avatar de NetFcruz  
Fecha de Ingreso: agosto-2012
Ubicación: Reynosa
Mensajes: 32
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Addenda: Agregarla a un XML Timbrado, leido desde VB.NET 2010

Cita:
Iniciado por wwwmaster Ver Mensaje
SI es perfectamente factible que le agregues el nodo Addenda a un CFD ya firmado o CFDI ya timbrado, ya que la addenda no forma parte del sello digital. En tanto no modifiques nada de lo que se toma en cuenta para el sello digital (elementos de la cadena original y/o timbre fiscal)

Para incorporar el nodo, debieras leer tu XML, recuperar y referenciar al Nodo Raiz... agregar el nuevo nodo "addenda" y volver a grabar tu .xml

ndCOm .----> referencia al nodo raiz "comprobante" (te debo el codigo) del XML recien leido

Algo como:
Dim NdAddenda As XmlNode
.... cargas elementos del nodo addenda



NdCom.AppendChild(NdAddenda)

Saludos
OK lo intentare, me habia desatendido por eso eske no habia entrado al foro,
gracias por la opinion amigo.
__________________
!El conocimiento se LIMITA cuando dices NO PUEDO!

By NetFcruz

Etiquetas: leido, vb, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:37.