示例#1
0
    private string obtenerGruposFuncionales()
    {
        string sResul = "";

        try
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            SqlDataReader             dr = null;

            dr = GrupoFun.VisionGruposFuncionales((int)Session["UsuarioActual"]);

            sb.Append("<table id='tblDatos' class='texto MAM' style='WIDTH: 350px;'>" + (char)10);
            sb.Append("<colgroup><col style='width:350px;' /></colgroup>" + (char)10);

            while (dr.Read())
            {
                sb.Append("<tr id='" + dr["IDENTIFICADOR"].ToString() + "'");
                sb.Append(" onclick='mm(event)' ondblclick='insertarItem(this)' onmousedown='DD(event)' ");
                sb.Append("style='height:16px'>");
                sb.Append("<td style='padding-left:5px;'>" + dr["DENOMINACION"].ToString() + "</td>");
                sb.Append("</tr>" + (char)10);
            }
            dr.Close();
            dr.Dispose();
            sb.Append("</table>");

            sResul = "OK@#@" + sb.ToString();
        }
        catch (System.Exception objError)
        {
            sResul = "Error@#@" + Errores.mostrarError("Error al leer los grupos funcionales ", objError);
        }
        return(sResul);
    }
示例#2
0
    //protected void Regresar()
    //{
    //    string sUrl = HistorialNavegacion.Leer();
    //    Response.Redirect(sUrl, true);
    //}

    private string ObtenerPersonas(string sAP1, string sAP2, string sNom, string sCR)
    {// Devuelve el código HTML para la lista de candidatos
        StringBuilder sb = new StringBuilder();
        string        sCod, sDes, sV1, sV2, sV3, sNumGFs;
        short         iCodUne = 0;

        try
        {
            sV1 = Utilidades.unescape(sAP1);
            sV2 = Utilidades.unescape(sAP2);
            sV3 = Utilidades.unescape(sNom);

            if (sCR != "")
            {
                iCodUne = short.Parse(sCR);
            }
            SqlDataReader dr = GrupoFun.Catalogo(sV1, sV2, sV3, iCodUne);

            sb.Append("<table id='tblOpciones' class='texto MAM' style='WIDTH: 350px;'>");
            sb.Append("<colgroup><col style='width:20px;' /><col style='width:330px;' /></colgroup><tbody id='tbodyOrigen'>");
            while (dr.Read())
            {
                sCod    = dr["CODIGO"].ToString();
                sDes    = dr["DESCRIPCION"].ToString().Replace((char)34, (char)39);
                sNumGFs = dr["NUMGFS"].ToString();

                sb.Append("<tr id='" + sCod + "' nGF='" + sNumGFs);
                sb.Append("' onClick='mm(event)' onDblClick='anadirConvocados();' onmousedown='DD(event)' style='height:20px' ");

                sb.Append("title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../../../../images/info.gif' style='vertical-align:middle'> ");
                sb.Append("Información] body=[Profesional:&nbsp;");
                sb.Append(int.Parse(dr["CODIGO"].ToString()).ToString("#,###") + " - " + sDes + "<br>");
                sb.Append(Estructura.getDefCorta(Estructura.sTipoElem.NODO) + ":&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");

                //sb.Append(dr["t303_denominacion"].ToString().Replace((char)34, (char)39) + "<br>Empresa:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
                //sb.Append(dr["EMPRESA"].ToString().Replace((char)34, (char)39) + "] hideselects=[off]\"");

                sb.Append(dr["t303_denominacion"].ToString().Replace((char)34, (char)39) + "] hideselects=[off]\"");
                sb.Append(" sexo='" + dr["t001_sexo"].ToString() + "' ");
                sb.Append("baja='" + dr["baja"].ToString() + "' ");
                sb.Append("tipo='" + dr["tipo"].ToString() + "' ");

                sb.Append("><td></td><td><span class='NBR W325'>" + sDes + "</span></td></tr>");
            }
            sb.Append("</tbody></table>");
            dr.Close(); dr.Dispose();
            //this.strTablaHTMLPersonas = sb.ToString();
            return("OK@#@" + sb.ToString());
        }
        catch (Exception ex)
        {
            Master.sErrores = Errores.mostrarError("Error al obtener las personas", ex);
            return("error@#@Error al obtener las personas");
        }
    }
    private string EliminarGF(string strGrupo)
    {
        string sResul = "OK@#@";
        int    idGF   = -1;

        #region abrir conexión y transacción
        try
        {
            oConn = Conexion.Abrir();
            tr    = Conexion.AbrirTransaccion(oConn);
        }
        catch (Exception ex)
        {
            if (oConn.State == ConnectionState.Open)
            {
                Conexion.Cerrar(oConn);
            }
            sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex);
            return(sResul);
        }
        #endregion

        try
        {
            string[] aGF = Regex.Split(strGrupo, "##");
            foreach (string oGF in aGF)
            {
                if (oGF != "")
                {
                    idGF = int.Parse(oGF);
                    GrupoFun.BorrarGrupo(tr, int.Parse(oGF));
                }
            }
            Conexion.CommitTransaccion(tr);
            sResul = "OK@#@";
        }
        catch (Exception ex)
        {
            Conexion.CerrarTransaccion(tr);
            Master.sErrores = Errores.mostrarError("Error al eliminar el grupo funcional " + idGF.ToString(), ex);
            sResul          = "Error@#@No se ha podido eliminar el grupo funcional " + idGF.ToString() + ".\n" + ex.Message;
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }
        return(sResul);
    }
    public string ObtenerIntegrantes(int iCodGF, int iNodo)
    {// Devuelve el código HTML del catalogo de personas que son integrantes del grupo funcional que se pasa como parametro
        StringBuilder sb = new StringBuilder();
        string        sCod, sDes;

        try
        {
            SqlDataReader dr = GrupoFun.CatalogoProfesionales(iCodGF);

            sb.Append("<table id='tblOpciones2' style='width: 430px;'>");
            sb.Append("<colgroup><col style='width:20px;' /><col style='width:385px;' /><col style='width:25px;' /></colgroup>");
            //sb.Append("<tbody id='tbodyDestino'>");
            while (dr.Read())
            {
                sCod = dr["codigo"].ToString();
                sDes = dr["nombre"].ToString();

                sb.Append("<tr id='" + sCod + "' style='height:20px' sexo='" + dr["t001_sexo"].ToString() + "' ");
                sb.Append("baja='" + dr["baja"].ToString() + "' ");
                sb.Append("tipo='" + dr["tipo"].ToString() + "' ");
                //if (dr["t303_idnodo"].ToString() == "") sb.Append("tipo='E' ");
                //else if (dr["t303_idnodo"].ToString() == iNodo.ToString()) sb.Append("tipo='P' ");
                //else sb.Append("tipo='N' ");
                sb.Append("><td></td>");//para el icono de la persona
                sb.Append("<td onmouseover='TTip(event)'><span class='NBR W380'>" + sDes + "</span></label></td>");
                if ((bool)dr["responsable"])
                {
                    sb.Append("<td><img style='width:10px; height:10px;' src='../../../../../images/imgOk.gif'></td>");
                }
                else
                {
                    sb.Append("<td></td>");
                }
                sb.Append("</tr>");
            }
            sb.Append("</table>");//</tbody>
            dr.Close();
            dr.Dispose();
            return("OK@#@" + sb.ToString());
        }
        catch (Exception)
        {
            //Master.sErrores = Errores.mostrarError("Error al obtener las personas", ex);
            return("error@#@");
        }
    }
    private void cargarNodos(string sNodo, bool bEsSoloResponsableGF)
    {
        try
        {
            bool bSeleccionado = false;
            //Cargo la denominacion del label Nodo
            this.lblNodo.InnerText = Estructura.getDefLarga(Estructura.sTipoElem.NODO);

            //Cargar el combo de nodos accesibles
            ListItem oLI = null;
            //SqlDataReader dr = NODO.CatalogoAdministrables((int)Session["UsuarioActual"], true);
            SqlDataReader dr = GrupoFun.NodosVisibles((int)Session["UsuarioActual"]);
            while (dr.Read())
            {
                oLI = new ListItem(dr["t303_denominacion"].ToString(), dr["t303_idnodo"].ToString());
                if (!bSeleccionado)
                {
                    if (sNodo == "")
                    {
                        oLI.Selected  = true;
                        bSeleccionado = true;
                        ObtenerGFs("1", "0", dr["t303_idnodo"].ToString(), bEsSoloResponsableGF);
                    }
                    else
                    {
                        if (sNodo == dr["t303_idnodo"].ToString())
                        {
                            oLI.Selected  = true;
                            bSeleccionado = true;
                            ObtenerGFs("1", "0", sNodo, bEsSoloResponsableGF);
                        }
                    }
                }
                cboCR.Items.Add(oLI);
            }
            dr.Close();
            dr.Dispose();
        }
        catch (Exception ex)
        {
            sErrores += Errores.mostrarError("Error al cargar los nodos", ex);
        }
    }
示例#6
0
        public static string listaGF(string sCR)
        {
            StringBuilder strBuilder = new StringBuilder();
            SqlDataReader dr;

            string  titulo  = "";
            Boolean esAdmin = SUPER.Capa_Negocio.Utilidades.EsAdminProduccion();

            strBuilder.Append("<table id='tblDatos' class='texto MA' style='width: 396px;'>");
            strBuilder.Append("<colgroup><col style='width: 396px;' /></colgroup>");
            strBuilder.Append("<tbody>");
            if (sCR == "")
            {
                dr = GrupoFun.CatalogoGrupos(null);
            }
            else
            {
                dr = GrupoFun.CatalogoGrupos(int.Parse(sCR));
            }

            while (dr.Read())
            {
                if (esAdmin)
                {
                    titulo = dr["DenominacionCR"].ToString() + " - " + dr["Nombre"].ToString();
                }
                else
                {
                    titulo = dr["Nombre"].ToString();
                }

                strBuilder.Append("<tr id='" + dr["IdGrupro"].ToString() + "' ondblclick='aceptarClick(this.rowIndex)' title='" + titulo + "'>");
                strBuilder.Append("<td><span style='width:380px;' class='NBR'>" + dr["Nombre"].ToString() + "</span></td></tr>");
            }
            dr.Close();
            dr.Dispose();
            strBuilder.Append("</tbody>");
            strBuilder.Append("</table>");
            strTablaHTML = strBuilder.ToString();

            return("OK@#@" + strTablaHTML);
        }
示例#7
0
        private void listaGF(string sCR)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("<table id='tblDatos' class='texto MA' style='width: 396px;'>");
            sb.Append("<colgroup><col style='width: 396px;' /></colgroup>");
            sb.Append("<tbody>");
            SqlDataReader dr = GrupoFun.CatalogoGrupos(int.Parse(sCR));

            while (dr.Read())
            {
                sb.Append("<tr id='" + dr["IdGrupro"].ToString() + "' onclick='mm(event)' ondblclick='aceptarClick(this.rowIndex)' onmouseover=TTip(event);>");
                sb.Append("<td><nobr style='width:380px;' class='NBR'>" + dr["Nombre"].ToString() + "</nobr></td></tr>");
            }
            dr.Close();
            dr.Dispose();
            sb.Append("</tbody>");
            sb.Append("</table>");
            strTablaHtml = sb.ToString();
        }
        private void obtenerGruposFuncionales()
        {
            StringBuilder strBuilder = new StringBuilder();

            strBuilder.Append("<table id='tblDatos' class='texto MA' style='background-image:url(../../../../../Images/imgFT18.gif);width: 396px;'>");
            strBuilder.Append("<colgroup><col style='width: 396px;' /></colgroup>");

            SqlDataReader dr = GrupoFun.VisionGruposFuncionales((int)Session["UsuarioActual"]);

            while (dr.Read())
            {
                strBuilder.Append("<tr id='" + dr["IDENTIFICADOR"].ToString() + "' ondblclick='aceptarClick(this.rowIndex)' onmouseover=TTip(event);>");
                strBuilder.Append("<td><span style='width:380px;' class='NBR'>" + dr["DENOMINACION"].ToString() + "</span></td></tr>");
            }
            dr.Close();
            dr.Dispose();

            strBuilder.Append("</table>");
            strTablaHtml = strBuilder.ToString();
        }
示例#9
0
    private void cargarGF()
    {
        try
        {
            //Obtener los datos necesarios

            ListItem      oLI = null;
            SqlDataReader dr  = GrupoFun.VisionGruposFuncionales((int)Session["UsuarioActual"]);
            while (dr.Read())
            {
                oLI = new ListItem(dr["DENOMINACION"].ToString(), dr["IDENTIFICADOR"].ToString());
                cboGF.Items.Add(oLI);
            }
            dr.Close();
            dr.Dispose();
        }
        catch (Exception ex)
        {
            Master.sErrores += Errores.mostrarError("Error al cargar los grupos funcionales", ex);
        }
    }
    private string ObtenerGFs(string sOrden, string sAscDesc, string sCodUne, bool bEsSoloResponsableGF)
    {// Devuelve el código HTML del catalogo de grupos funcionales de la UNE que se pasa por parámetro
        StringBuilder strBuilder = new StringBuilder();
        string        sDesc, sCod, sResul;

        try
        {
            //strBuilder.Append("<div style='background-image:url(../../../../../Images/imgFT16.gif); width:0%; height:0%'>");
            strBuilder.Append("<table id='tblDatos' class='texto MA' style='width: 430px;'>");
            strBuilder.Append("<colgroup><col style='width:430px;'/></colgroup>");
            //strBuilder.Append("<tbody>");
            if (sCodUne != "")
            {
                SqlDataReader dr;
                if (SUPER.Capa_Negocio.Utilidades.EsAdminProduccion())
                {
                    dr = GrupoFun.CatalogoGrupos(int.Parse(sOrden), int.Parse(sAscDesc), int.Parse(sCodUne));
                }
                else
                {
                    if (bEsSoloResponsableGF)
                    {
                        dr = GrupoFun.CatalogoGruposResponsable(int.Parse(sOrden), int.Parse(sAscDesc), int.Parse(sCodUne),
                                                                (int)Session["UsuarioActual"]);
                    }
                    else
                    {
                        //Puede que tenga figura de nodo pero en un nodo diferente del que se quiere obtener los GF
                        //Así que no queda más remedio que preguntar si es Responsable, Delegado o Colaborador en ese nodo
                        ArrayList aFig = SUPER.Capa_Negocio.FIGURANODO.Lista(int.Parse(sCodUne), (int)Session["UsuarioActual"]);
                        bEsSoloResponsableGF = true;
                        foreach (string oElem in aFig)
                        {
                            if (oElem == "R" || oElem == "D" || oElem == "C" || oElem == "OT")
                            {
                                bEsSoloResponsableGF = false;
                                break;
                            }
                        }
                        if (bEsSoloResponsableGF)
                        {
                            dr = GrupoFun.CatalogoGruposResponsable(int.Parse(sOrden), int.Parse(sAscDesc), int.Parse(sCodUne),
                                                                    (int)Session["UsuarioActual"]);
                        }
                        else
                        {
                            dr = GrupoFun.CatalogoGrupos(int.Parse(sOrden), int.Parse(sAscDesc), int.Parse(sCodUne));
                        }
                    }
                }
                while (dr.Read())
                {
                    sCod  = dr["idGrupro"].ToString();
                    sDesc = dr["Nombre"].ToString();

                    strBuilder.Append("<tr id='" + sCod + "' cr=" + sCodUne + " style='height:20px'");
                    //strBuilder.Append(" onclick='mm(event);mostrarIntegrantes(this.id);' ondblclick='mostrarDetalle(this.id)'>");
                    strBuilder.Append(" onclick='mm(event);mostrarIntegrantes(this.id);' ondblclick='mostrarDetalleAux(this)'>");
                    strBuilder.Append("<td>" + sDesc + "</td></tr>");
                }
                dr.Close();
                dr.Dispose();
            }
            //strBuilder.Append("</tbody>");
            strBuilder.Append("</table>");//</div>

            sResul = strBuilder.ToString();
            this.strTablaHtmlGF = sResul;
            return("OK@#@" + sResul);
        }
        catch (Exception ex)
        {
            Master.sErrores = Errores.mostrarError("Error al obtener los Grupos Funcionales", ex);
            return("error@#@Error al obtener los Grupos Funcionales " + ex.Message);
        }
    }
示例#11
0
    public string ObtenerIntegrantes(int iCodGF, int iNodo)
    {// Devuelve el código HTML del catalogo de personas que son integrantes del grupo funcional que se pasa como parametro
        StringBuilder sb = new StringBuilder();
        string        sCod, sDes;
        bool          bResp;

        try
        {
            SqlDataReader dr = GrupoFun.CatalogoProfesionales(iCodGF);

            sb.Append("<table id='tblOpciones2' class='texto MM' style='WIDTH: 390px;' mantenimiento='1'>");
            sb.Append("<colgroup><col style='width:10px;' /><col style='width:20px;' /><col style='width:330px;' /><col style='width:30px;' /></colgroup>");
            sb.Append("<tbody id='tbodyDestino'>");
            while (dr.Read())
            {
                sCod  = dr["codigo"].ToString();
                sDes  = dr["nombre"].ToString();
                bResp = bool.Parse(dr["responsable"].ToString());

                sb.Append("<tr id='" + sCod + "' bd='' onClick='mm(event)' style='height:20px' onmousedown='DD(event)' ");
                sb.Append("sexo='" + dr["t001_sexo"].ToString() + "' ");
                sb.Append("baja='" + dr["baja"].ToString() + "' ");
                sb.Append("tipo='" + dr["tipo"].ToString() + "' ");
                if (dr["tipo"].ToString() == "F")
                {
                    sb.Append("tipo='F' ");
                }
                else
                {
                    if (dr["t303_idnodo"].ToString() == "")
                    {
                        sb.Append("tipo='E' ");
                    }
                    else if (dr["t303_idnodo"].ToString() == iNodo.ToString())
                    {
                        sb.Append("tipo='P' ");
                    }
                    else
                    {
                        sb.Append("tipo='N' ");
                    }
                }

                //sb.Append("<td><img src='../../../../../images/imgFN.gif'></td>");
                sb.Append("><td></td><td></td>");

                //sb.Append("<td><label class=texto id='lbl" + sCod + "' style='width:325;text-overflow:ellipsis;overflow:hidden'");
                //if (sDes.Length > 80) sb.Append(" title='" + sDes + "'");
                if (sDes.Length > 80)
                {
                    sb.Append("<td title='" + sDes + "'>");
                }
                else
                {
                    sb.Append("<td>");
                }
                sb.Append("<span class='NBR W330'>" + sDes + "</span></label></td>");

                sb.Append("<td><input type='checkbox' style='width:15' name='chk" + sCod + "' id='chk" + sCod + "' class='checkTabla'");
                if (bResp)
                {
                    sb.Append(" checked='true' ");
                }

                sb.Append(" onclick=\"activarGrabar();mfa(this.parentNode.parentNode,'U')\"></td></tr>");
            }
            sb.Append("</tbody></table>");
            dr.Close();
            dr.Dispose();
            return(sb.ToString());
        }
        catch (Exception)
        {
            //Master.sErrores = Errores.mostrarError("Error al obtener las personas", ex);
            return("error@#@");
        }
    }
示例#12
0
    private string Grabar(string sCR, string sGrupoFuncional, string sNCR, string sIntegrantes)
    {//En el primer parametro de entrada tenemos codGf#descGF
        //y en el segundo una lista de codigos de personas separados por comas (persona#responsable,)
        // Se ha añadido un nuevo parámetro (sNCR) que representa el id del nuevo centro de responsavilidad al que van apertener los integrantes seleccionados
        string         sCad, sResul = "", sDesGF, sOperacion;
        int            iCodGF, iCodCR, iEmpleado, iResponsable, iPos;
        SqlConnection  oConn = null;
        SqlTransaction tr    = null;

        try
        {
            //Recojo el código de GF
            iPos   = sGrupoFuncional.IndexOf("#");
            iCodGF = int.Parse(sGrupoFuncional.Substring(0, iPos));
            sDesGF = Utilidades.unescape(sGrupoFuncional.Substring(iPos + 1));

            //Recojo el código de CR
            iCodCR = int.Parse(sNCR);

            //Abro transaccion
            oConn = Conexion.Abrir();
            tr    = Conexion.AbrirTransaccionSerializable(oConn);
            if (iCodGF != 0)
            {
                GrupoFun.ModificarGrupo(null, iCodGF, sDesGF, iCodCR);
            }
            else
            {
                iCodGF = GrupoFun.InsertarGrupo(null, sDesGF, iCodCR);
                Session["nIdGrupo"] = iCodGF.ToString();
            }
            //Borrar los integrantes existentes
            //GrupoFun.BorrarIntegrantes(tr,iCodGF);
            if (sIntegrantes == "")
            {//Tenemos lista vacía. No hacemos nada
            }
            else
            {//Con la cadena generamos una lista y la recorremos para grabar cada elemento
                string[] aTareas = Regex.Split(sIntegrantes, @",");

                for (int i = 0; i < aTareas.Length - 1; i++)
                {
                    sCad = aTareas[i];
                    if (sCad != "")
                    {
                        string[] aElem = Regex.Split(sCad, @"##");
                        sOperacion   = aElem[0];
                        iEmpleado    = System.Convert.ToInt32(aElem[1]);
                        iResponsable = System.Convert.ToInt32(aElem[2]);
                        //GrupoFun.InsertarIntegrante(tr, iCodGF, iEmpleado, iResponsable);
                        switch (sOperacion)
                        {
                        case "D":
                            GrupoFun.BorrarProfesionalGrupo(tr, iCodGF, iEmpleado);
                            break;

                        case "U":
                            GrupoFun.ModificarProfesional(tr, iCodGF, iEmpleado, iResponsable);
                            break;

                        case "I":
                            GrupoFun.InsertarIntegrante(tr, iCodGF, iEmpleado, iResponsable);
                            break;
                        } //switch
                    }
                }         //for
            }
            //Cierro transaccion
            Conexion.CommitTransaccion(tr);
            sCad = ObtenerIntegrantes(iCodGF, int.Parse(sCR));
            //sResul = "OK@#@" + strTablaHTMLIntegrantes;
            sResul = "OK@#@" + iCodGF + "@#@" + sCad;
        }
        catch (Exception ex)
        {
            Conexion.CerrarTransaccion(tr);
            sResul = "Error@#@" + Errores.mostrarError("Error al grabar", ex);
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }
        return(sResul);
    }
示例#13
0
    protected void Page_Load(object sender, EventArgs e)
    {
        strInicial = "";
        sLectura   = "false";
        if (!Page.IsCallback)
        {
            Master.nBotonera           = 23;// grabar, regresar
            Master.Botonera.ItemClick += new ToolBarEventHandler(this.Botonera_Click);
            Master.TituloPagina        = "Asignación de profesionales a grupo funcional";
            Master.FuncionesJavaScript.Add("Javascript/draganddrop.js");
            Master.FuncionesJavaScript.Add("Javascript/boxover.js");
            Master.bFuncionesLocales = true;
            //if (!(bool)Session["FORANEOS"])
            //{
            //    this.imgForaneo.Visible = false;
            //    this.lblForaneo.Visible = false;
            //}

            if (!Page.IsPostBack)
            {
                try
                {
                    sNodo = Estructura.getDefCorta(Estructura.sTipoElem.NODO);
                    this.lblNodo.InnerText = Estructura.getDefCorta(Estructura.sTipoElem.NODO);


                    this.hdnCR.Text        = "";
                    this.hdnMasDeUnGF.Text = "T";

                    //Indica si el usuario es solo responsable de Grupo Funcional
                    if (Request.QueryString["rg"] != null)
                    {
                        this.hdnEsSoloRGF.Value = Request.QueryString["rg"].ToString();
                    }
                    if (Request.QueryString["nCR"] != null)
                    {
                        this.hdnCR.Text = Request.QueryString["nCR"].ToString();
                        if (NODO.bMasDeUnGF(int.Parse(this.hdnCR.Text)))
                        {
                            this.hdnMasDeUnGF.Text = "T";
                        }
                        else
                        {
                            this.hdnMasDeUnGF.Text = "F";
                        }
                    }

                    string sGrupoAux = Request.QueryString["nIdGrupo"];
                    if (sGrupoAux != null)
                    {
                        this.hdnIdGf.Text   = sGrupoAux;
                        Session["nIdGrupo"] = sGrupoAux;
                    }
                    else if (Session["nIdGrupo"] != null)
                    {
                        sGrupoAux         = Session["nIdGrupo"].ToString();
                        this.hdnIdGf.Text = sGrupoAux;
                    }
                    if (sGrupoAux != "")
                    {
                        int      iCodGF = int.Parse(sGrupoAux);
                        GrupoFun miGF   = new GrupoFun();
                        miGF.Obtener(iCodGF);
                        this.txtDesGF.Text = miGF.sDesGF;
                        this.txtDesGF.Focus();
                        //Cargo la lista de integrantes que ya pertenezcan a este Grupo Funcional
                        strTablaHTMLIntegrantes = ObtenerIntegrantes(iCodGF, miGF.nCodUne);
                    }


                    txtDesNodo.Visible = true;

                    if (Request.QueryString["nCR"] != null)
                    {
                        string sIdNodo = Request.QueryString["nCR"].ToString();
                        NODO   oNodo   = NODO.Select(null, int.Parse(sIdNodo));
                        this.txtDesNodo.Text = oNodo.t303_denominacion;
                        this.hdnIdNodo.Text  = sIdNodo;
                    }

                    if (!SUPER.Capa_Negocio.Utilidades.EsAdminProduccion())
                    {
                        txtDesNodo.ReadOnly = true;
                    }
                }
                catch (Exception ex)
                {
                    Master.sErrores = Errores.mostrarError("Error al obtener los datos", ex);
                }
            }
            //1º Se indican (por este orden) la función a la que se va a devolver el resultado
            //   y la función que va a acceder al servidor
            string cbRespuesta = Page.ClientScript.GetCallbackEventReference(this, "arg", "RespuestaCallBack", "context", false);
            string cbLlamada   = "function RealizarCallBack(arg, context)" + "{" + cbRespuesta + ";" + "}";

            //2º Se "registra" la función que va a acceder al servidor.
            Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "RealizarCallBack", cbLlamada, true);
        }
    }
    protected void ObtenerNodos(string sTipo, string idUsuariResp)
    {
        StringBuilder sb = new StringBuilder();
        SqlDataReader dr;

        try
        {
            sb.Append("<table id='tblDatos' class='texto MA' style='width: 350px;'>");
            sb.Append("<colgroup><col style='width:350px;' /></colgroup>");
            switch (sTipo)
            {
            case "G":
                dr = NODO.ObtenerNodosGestor(int.Parse(idUsuariResp));
                //Nodos en los que el usuario puede crear proyectos por ser gerente.
                while (dr.Read())
                {
                    sb.Append("<tr id='" + dr["IDNODO"].ToString() + "' ");
                    sb.Append("GSB='" + dr["GSB"].ToString() + "' UMC='" + dr["t303_ultcierreeco"].ToString() + "' ");
                    sb.Append("MC='" + dr["t303_modelocostes"].ToString() + "' MT='" + dr["t303_modelotarifas"].ToString() + "' ");
                    sb.Append("CNP='" + dr["t303_denominacion_CNP"].ToString() + "' ");
                    sb.Append("OBLCNP='" + dr["t303_obligatorio_CNP"].ToString() + "' ");
                    sb.Append("CSN1P='" + dr["t391_denominacion_CSN1P"].ToString() + "' ");
                    sb.Append("OBLCSN1P='" + dr["t391_obligatorio_CSN1P"].ToString() + "' ");
                    sb.Append("CSN2P='" + dr["t392_denominacion_CSN2P"].ToString() + "' ");
                    sb.Append("OBLCSN2P='" + dr["t392_obligatorio_CSN2P"].ToString() + "' ");
                    sb.Append("CSN3P='" + dr["t393_denominacion_CSN3P"].ToString() + "' ");
                    sb.Append("OBLCSN3P='" + dr["t393_obligatorio_CSN3P"].ToString() + "' ");
                    sb.Append("CSN4P='" + dr["t394_denominacion_CSN4P"].ToString() + "' ");
                    sb.Append("OBLCSN4P='" + dr["t394_obligatorio_CSN4P"].ToString() + "' ");
                    sb.Append("tipolinterna='" + dr["t303_tipolinterna"].ToString() + "' ");
                    sb.Append("tipolespecial='" + dr["t303_tipolespecial"].ToString() + "' ");
                    sb.Append("tipolproductivaSC='" + dr["t303_tipolproductivaSC"].ToString() + "' ");
                    sb.Append("idmoneda='" + dr["t422_idmoneda"].ToString() + "' ");
                    //Permitir replica con gestion
                    if ((bool)dr["t303_pgrcg"])
                    {
                        sb.Append("prcg='1' ");
                    }
                    else
                    {
                        sb.Append("prcg='0' ");
                    }
                    sb.Append("denominacion_moneda=\"" + Utilidades.escape(dr["t422_denominacion"].ToString()) + "\"");
                    sb.Append(" ondblclick='aceptarClick(this.rowIndex,1)'>");
                    sb.Append("<td>" + dr["DENOMINACION"].ToString() + "</td>");
                    sb.Append("</tr>");
                }
                dr.Close();
                dr.Dispose();
                break;

            case "A":
                dr = NODO.CatalogoAdministrables((int)Session["UsuarioActual"], true);
                //Nodos administrables por el usuario
                while (dr.Read())
                {
                    sb.Append("<tr id='" + dr["t303_idnodo"].ToString() + "' ondblclick='aceptarClick(this.rowIndex,2)'>");
                    sb.Append("<td>" + dr["t303_denominacion"].ToString() + "</td></tr>");
                }
                dr.Close();
                dr.Dispose();
                break;

            case "T":
                dr = NODO.Catalogo(false);
                //Nodos administrables por el usuario
                while (dr.Read())
                {
                    sb.Append("<tr id='" + dr["t303_idnodo"].ToString() + "' ondblclick='aceptarClick(this.rowIndex,3)'>");
                    sb.Append("<td>" + dr["t303_denominacion"].ToString() + "</td></tr>");
                }
                dr.Close();
                dr.Dispose();
                break;

            case "V":
                dr = NODO.UsuarioVisibilidad((int)Session["UsuarioActual"]);
                //Nodos Accesibles por el usuario
                while (dr.Read())
                {
                    sb.Append("<tr id='" + dr["t303_idnodo"].ToString() + "' ondblclick='aceptarClick(this.rowIndex,2)'>");
                    sb.Append("<td>" + dr["t303_denominacion"].ToString() + "</td></tr>");
                }
                dr.Close();
                dr.Dispose();
                break;

            case "R":    //Solo responsable de grupo funcional
                dr = GrupoFun.NodosVisibles((int)Session["UsuarioActual"]);
                //Nodos Accesibles por el usuario
                while (dr.Read())
                {
                    sb.Append("<tr id='" + dr["t303_idnodo"].ToString() + "' ondblclick='aceptarClick(this.rowIndex,2)'>");
                    sb.Append("<td>" + dr["t303_denominacion"].ToString() + "</td></tr>");
                }
                dr.Close();
                dr.Dispose();
                break;
            }
            sb.Append("</table>");
            strTablaHTML = sb.ToString();
        }
        catch (Exception ex)
        {
            sErrores = Errores.mostrarError("Error al obtener la relación de nodos.", ex);
        }
    }