lunes, 9 de diciembre de 2013

Obtener el nodo de un Xml (Cfdi) con todo y que tenga la nomenclatura ns:elemento, en 2 pataditas con LINQ. [LINQ TO XML]

 

Que tal pues nada que como parte de mi trabajo me vi en la necesidad de obtener el nodo del complemento TimbreFiscalDigital desde una factura CFDi que como bien sabran es un XML. Pues bien tras intentarlo con XPATH, y demas… siempre obtenia un error de Espacio de Nombres, y es que estos archivos poseen una nomenclatura basada en NameSpace y aun administrandolos no conseguia mi cometido.

Sin embargo he aqui como lo solucione extremadamente facil, claro esta con LINQ.

Espero que les sea de utilidad.

 



   1:  Dim xdoc = XDocument.Load(pArchivoXmlCfdiGenerado)
   2:              Dim timbreFiscal = (From item In xdoc.Descendants
   3:                                  Where item.Name.LocalName = "TimbreFiscalDigital"
   4:                                  Select item).First()
   5:   
   6:              pHistoricoTimbreCFDi.FechaTimbrado = Convert.ToDateTime(timbreFiscal.Attribute("FechaTimbrado").Value)
   7:              pHistoricoTimbreCFDi.UUID = timbreFiscal.Attribute("UUID").Value
   8:              pHistoricoTimbreCFDi.NoCertificadoSAT = timbreFiscal.Attribute("noCertificadoSAT").Value
   9:              pHistoricoTimbreCFDi.SelloCFD = timbreFiscal.Attribute("selloCFD").Value
  10:              pHistoricoTimbreCFDi.SelloSAT = timbreFiscal.Attribute("selloSAT").Value
  11:              pHistoricoTimbreCFDi.Version = timbreFiscal.Attribute("version").Value
  12:              pHistoricoTimbreCFDi.Esquemas = timbreFiscal.Parent.ToString

jueves, 31 de octubre de 2013

Posteando desde android con soffice

image

Pues nada, aqui probando la edicion de blogs desde android con Soffice. Que para ser desde un celular me parece sencillo en cuanto al manejo; pero con muy buenas opciones sobre todo en lo que respecta a la inserción de elementos.
La pega que le veo es que solo es posible editar las entradas agregadas desde el dispositivo por lo que olvidate de querer modificar tus demas posts.
En conclusión recomendado en definitiva, pues me parece que de las alternativas es la mejor para mobiles.

miércoles, 30 de octubre de 2013

Como llamar un Constructor Base desde una clase Heredada, en Vb y C#

 

Escribo esta entrada porque algunos colegas tal vez no estan al tanto de las diferencias que implica el lenguaje al momento de llamar un constructor Base desde la clase que la hereda.

C#

En la Firma del constructor de la clase heredada, especificamos a que constructor base debe llamar y que parametros se enviaran al mismo.

   1:          public AtmException(object pOrigen,string pMensaje)
   2:              : base(pMensaje)
   3:          {
   4:              Data.Add("ObjectSource", pOrigen);
   5:              Data.Add("Mensaje", pMensaje);
   6:          }
   7:      }




Vb.Net


En este caso utilizaremos el objeto MyBase para llamar al constructor deseado, en la linea inmediata a la firma del Constructor de la clase derivada.


 


   1:    Public Class ExceptionNumeroRegistrosExcedido
   2:          Inherits Exception
   3:   
   4:          Sub New(pMensajeExcepcion As String)
   5:              MyBase.New(pMensajeExcepcion)
   6:          End Sub
   7:      End Class



 


Bien pues como siempre espero que les sea de utilidad.


Happy Coding… KarlozArba