/// <summary>
        /// Metodo para obtener todos los comentarios aadicionales segun las cabeceras del documento
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public List <clsEntidadDocument_AdditionalComments> cs_fxObtenerTodoPorCabeceraId(string id)
        {
            var resultado = new List <clsEntidadDocument_AdditionalComments>();

            try
            {
                OdbcDataReader datos = null;
                string         sql   = "SELECT * FROM " + cs_cmTabla + " WHERE cs_Document_Id =" + id.ToString().Trim() + ";";
                //clsBaseConexion cn = new clsBaseConexion();
                OdbcConnection cs_pxConexion_basedatos = new OdbcConnection(localDB.cs_prConexioncadenabasedatos());
                cs_pxConexion_basedatos.Open();
                datos = new OdbcCommand(sql, cs_pxConexion_basedatos).ExecuteReader();
                while (datos.Read())
                {
                    var item  = new clsEntidadDocument_AdditionalComments(localDB);
                    int count = 0;
                    foreach (var prop in item.GetType().GetProperties())
                    {
                        prop.SetValue(item, Convert.ChangeType(datos[count].ToString(), prop.PropertyType), null);
                        count++;
                    }
                    resultado.Add(item);
                }
                cs_pxConexion_basedatos.Close();
            }
            catch (Exception ex)
            {
                clsBaseLog.cs_pxRegistarAdd("clsEntityDocument_AdditionalComments cs_fxObtenerTodoPorCabeceraId " + ex.ToString());
            }
            return(resultado);
        }
        /// <summary>
        /// Metodo par obener todos los comentarios adicionales segun el id de referencia
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public List <clsEntidadDocument_AdditionalComments> cs_fxObtenerTodoPorIdReferencia(string id)
        {
            List <clsEntidadDocument_AdditionalComments> resultado = new List <clsEntidadDocument_AdditionalComments>();

            try
            {
                OdbcDataReader datos = null;
                string         sql   = "SELECT * FROM " + cs_cmTabla + " WHERE Cs_pr_Document_AdditionalComments_Reference_Id ='" + id.ToString().Trim() + "';";
                //clsBaseConexion cn = new clsBaseConexion();
                OdbcConnection cs_pxConexion_basedatos = new OdbcConnection(localDB.cs_prConexioncadenabasedatos());
                cs_pxConexion_basedatos.Open();
                datos = new OdbcCommand(sql, cs_pxConexion_basedatos).ExecuteReader();
                clsEntidadDocument_AdditionalComments item;
                while (datos.Read())
                {
                    item = new clsEntidadDocument_AdditionalComments(localDB);
                    item.Cs_pr_Document_AdditionalComments_Id = datos[0].ToString();
                    item.Cs_pr_Document_Id = datos[1].ToString();
                    item.Cs_pr_Document_AdditionalComments_Reference_Id = datos[2].ToString();
                    item.Cs_pr_TagNombre = datos[3].ToString();
                    item.Cs_pr_TagValor  = datos[4].ToString();
                    resultado.Add(item);
                }
                cs_pxConexion_basedatos.Close();
            }
            catch (Exception ex)
            {
                clsBaseLog.cs_pxRegistarAdd("clsEntityDocument_AdditionalComments cs_fxObtenerTodoPorIdReferencia " + ex.ToString());
            }
            return(resultado);
        }
        /// <summary>
        /// Metodo para obtener la cdena de xml segun id del comentario principal
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        public string cs_fxObtenerXML(string Id)
        {
            string resultado = string.Empty;

            try
            {
                List <clsEntidadDocument_AdditionalComments> Nodos = new clsEntidadDocument_AdditionalComments(localDB).cs_fxObtenerRaizXML(Id);
                foreach (var Nodo in Nodos)
                {
                    resultado += "<" + Nodo.Cs_pr_TagNombre + ">" + cs_fxBusquedaEnProfundidad(Nodo.Cs_pr_Document_AdditionalComments_Id) + "</" + Nodo.Cs_pr_TagNombre + ">";
                }
            }
            catch (Exception ex)
            {
                clsBaseLog.cs_pxRegistarAdd("clsEntityDocument_AdditionalComments cs_fxObtenerXML" + ex.ToString());
            }

            return(resultado);
        }
        /// <summary>
        /// Metodo para buscar dentro de los comentarios adicionales si hay dentro otros
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        private string cs_fxBusquedaEnProfundidad(string Id)
        {
            //fe-955
            string resultado = string.Empty;

            try
            {
                List <clsEntidadDocument_AdditionalComments> Nodos = new clsEntidadDocument_AdditionalComments(localDB).cs_fxObtenerTodoPorIdReferencia(Id);
                foreach (var Nodo in Nodos)
                {
                    resultado += "<" + Nodo.Cs_pr_TagNombre + "><![CDATA[";
                    resultado += Nodo.Cs_pr_TagValor + cs_fxBusquedaEnProfundidad(Nodo.Cs_pr_Document_AdditionalComments_Id);
                    resultado += "]]></" + Nodo.Cs_pr_TagNombre + ">";
                }
            }
            catch (Exception ex)
            {
                clsBaseLog.cs_pxRegistarAdd("clsEntityDocument_AdditionalComments cs_fxBusquedaEnProfundidad" + ex.ToString());
            }

            return(resultado);
        }