/// <summary>
        /// Método que permite insertar 
        /// un nuevo registro en la tabla entregableComponente
        /// </summary>
        /// <param name="poEntregableComponente">EntregableComponente a insertar</param>
        /// <returns>Int valor del resultado de la ejecución de la sentencia</returns>
        public static int insertEntregableComponente(cls_entregableComponente po_entregableComponente)
        {
            int vi_resultado;

            try
            {
                String vs_comando = "PA_cont_entregable_componenteInsert";
                cls_parameter[] vu_parametros =
                {
                    new cls_parameter("@paramPK_componente", po_entregableComponente.pPK_Componente),
                    new cls_parameter("@paramPK_entregable", po_entregableComponente.pPK_Entregable),
                    new cls_parameter("@paramPK_proyecto", po_entregableComponente.pPK_Proyecto)
                };

                cls_sqlDatabase.beginTransaction();

                vi_resultado = cls_sqlDatabase.executeNonQuery(vs_comando, true, vu_parametros);

                cls_interface.insertarTransacccionBitacora(cls_constantes.INSERTAR, cls_constantes.ENTREGABLE_COMPONENTE, po_entregableComponente.pPK_Proyecto + "/" + po_entregableComponente.pPK_Entregable + "/" + po_entregableComponente.pPK_Componente, po_entregableComponente.pUsuarioTransaccion);

                cls_sqlDatabase.commitTransaction();

                return vi_resultado;

            }
            catch (Exception po_exception)
            {
                cls_sqlDatabase.rollbackTransaction();
                throw new Exception("Ocurrió un error al insertar el componente del entregable.", po_exception);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Constructor de la clase cls_proyecto_entregable.
        /// </summary>
        public cls_proyectoEntregable()
        {
            this.entregable = new cls_entregable();
            this.proyecto = new cls_proyecto();
            this.entregableComponente = new cls_entregableComponente();

            this.entregableList = new List<cls_entregable>();
            this.entregableComponenteList = new List<cls_entregableComponente>();
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="poProyecto"></param>
        /// <returns></returns>
        public static DataSet selectEntregableComponente(cls_entregableComponente po_entregableComponente)
        {
            try
               {
               String vs_comando = "PA_cont_EntregableComponenteSelect";
               cls_parameter[] vu_parametros = { new cls_parameter("@paramPK_proyecto", po_entregableComponente.pProyecto.pPK_proyecto),
                                                    new cls_parameter("@paramPK_entregable", po_entregableComponente.pEntregable.pPK_entregable)};

               DataSet vu_dataSet = cls_sqlDatabase.executeDataset(vs_comando, true, vu_parametros);

               return vu_dataSet;
               }
               catch (Exception po_exception)
               {
               throw new Exception("Ocurrió un error al obtener el listado de los entregables.", po_exception);
               }
        }
        /// <summary>
        /// Evento que se encarga de remover componentes pertenecientes a un entregable específico
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btn_removerComponente_Click(object sender, EventArgs e)
        {
            int entSeleccionado;
            //Se escoge el entregable sobre el que realizara la desasignación
            entSeleccionado = Convert.ToInt32(lbx_entregablesasociados.SelectedValue.ToString());

            cls_entregable vo_entregable = new cls_entregable();
            vo_entregable.pPK_entregable = entSeleccionado;

            try
            {
                //Se recorren los componentes ya asociados
                for (int i = lbx_compasociados.Items.Count - 1; i >= 0; i--)
                {
                    if (lbx_compasociados.Items[i].Selected == true)
                    {
                        cls_componente vo_componente = new cls_componente();
                        vo_componente.pPK_componente = Convert.ToInt32(lbx_compasociados.Items[i].Value.ToString());
                        vo_componente.pNombre = lbx_compasociados.Items[i].Text;

                        cls_entregableComponente vo_entregableComponente = new cls_entregableComponente();

                        vo_entregableComponente.pEntregable = vo_entregable;
                        vo_entregableComponente.pComponente = vo_componente;

                        //Se realiza un barrido de las asignaciones posteriores que tuviese el elemento a nivel de memoria, de los subniveles siguientes
                        if (cls_variablesSistema.vs_proyecto.pEntregableComponenteListaMemoria.Where(searchLinQ => searchLinQ.pPK_Entregable == vo_entregable.pPK_entregable &&
                                                                                                                   searchLinQ.pPK_Componente == vo_componente.pPK_componente).Count() > 0)
                            {
                                //Se realiza una eliminación de todas las posibles referencias que se presenten a nivel de memoria para el entregable que se está eliminando
                                foreach (cls_componentePaquete compPaq in cls_variablesSistema.vs_proyecto.pComponentePaqueteListaMemoria)
                                {
                                    if (compPaq.pPK_Componente == vo_componente.pPK_componente)
                                    {
                                        foreach (cls_paqueteActividad paqAct in cls_variablesSistema.vs_proyecto.pPaqueteActividadListaMemoria)
                                        {
                                            if (paqAct.pPK_Componente == compPaq.pPK_Componente)
                                            {
                                                cls_variablesSistema.vs_proyecto.pActividadLista.RemoveAll(searchLinQ => searchLinQ.pPK_Actividad == paqAct.pPK_Actividad);
                                            }
                                        }

                                        cls_variablesSistema.vs_proyecto.pPaqueteActividadListaMemoria.RemoveAll(searchLinQ => searchLinQ.pPK_Paquete == compPaq.pPK_Paquete);

                                        cls_variablesSistema.vs_proyecto.pPaqueteLista.RemoveAll(searchLinQ => searchLinQ.pPK_Paquete == compPaq.pPK_Paquete);
                                    }
                                }
                                cls_variablesSistema.vs_proyecto.pComponentePaqueteListaMemoria.RemoveAll(searchLinQ => searchLinQ.pPK_Componente == vo_componente.pPK_componente);

                                cls_variablesSistema.vs_proyecto.pComponenteLista.RemoveAll(searchLinQ => searchLinQ.pPK_componente == vo_componente.pPK_componente);
                                cls_variablesSistema.vs_proyecto.pEntregableComponenteListaMemoria.RemoveAll(searchLinQ => searchLinQ.pPK_Componente == vo_componente.pPK_componente);
                            }

                        lbx_componentes.Items.Add(lbx_compasociados.Items[i]);
                        ListItem li = lbx_compasociados.Items[i];
                        lbx_compasociados.Items.Remove(li);

                    }
                }

                //Luego del barrido, si no quedó ningún elemento asociado, no se habilita el botón de siguiente
                if (lbx_compasociados.Items.Count == 0 && cls_variablesSistema.vs_proyecto.pEntregableComponenteListaMemoria.Count == 0 && cls_variablesSistema.vs_proyecto.pEntregableComponenteListaBaseDatos.Count == 0)
                {
                    btnNxt.Enabled = false;
                }
                else
                {
                    btnNxt.Enabled = true;
                }
            }
            catch (Exception po_exception)
            {
                String vs_error_usuario = "Ocurrió un error al intentar remover el componente seleccionado.";
                this.lanzarExcepcion(po_exception, vs_error_usuario);
            }
        }
        /// <summary>
        /// Método que obtiene los componentes asociados al entregable que se le indica
        /// </summary>
        /// <param name="po_entregable"></param>
        private void inicializarComponentesPorEntregable(cls_entregable po_entregable)
        {
            try
            {
                cls_entregableComponente vo_entregableComponente = new cls_entregableComponente();

                vo_entregableComponente.pProyecto = cls_variablesSistema.vs_proyecto;
                vo_entregableComponente.pEntregable = po_entregable;

                cargarComponentesPorEntregable(vo_entregableComponente);

                cargarListaComponentes();
            }
            catch (Exception po_exception)
            {
                throw new Exception("Ocurrió un error al los componentes asociados a proyecto.", po_exception);
            }
        }
        /// <summary>
        /// Evento para la asigación de un nuevo componente para un entregable específico
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btn_asignarComponente_Click(object sender, EventArgs e)
        {
            int entSeleccionado;
            //Se obtiene el entregable seleccionado
            entSeleccionado = Convert.ToInt32(lbx_entregablesasociados.SelectedValue.ToString());

            cls_entregable vo_entregable = new cls_entregable();
            vo_entregable.pPK_entregable = entSeleccionado;

            try
            {
                //Se recorre la lista de componentes para validar a quien es el que se va a asignar
                for (int i = lbx_componentes.Items.Count - 1; i >= 0; i--)
                {
                    if (lbx_componentes.Items[i].Selected == true)
                    {
                        cls_componente vo_componente = new cls_componente();
                        vo_componente.pPK_componente = Convert.ToInt32(lbx_componentes.Items[i].Value.ToString());
                        vo_componente.pNombre = lbx_componentes.Items[i].Text;

                        cls_entregableComponente vo_entregableComponente = new cls_entregableComponente();

                        vo_entregableComponente.pEntregable = vo_entregable;
                        vo_entregableComponente.pComponente = vo_componente;

                        //Se recorre la lista de los entregables asociados a proyecto en memoria
                        foreach (cls_proyectoEntregable proyEnt in cls_variablesSistema.vs_proyecto.pProyectoEntregableListaMemoria)
                        {
                            //Si los entregables coinciden, este es el que se va a asignar
                            if (proyEnt.pPK_Entregable == vo_entregable.pPK_entregable)
                            {
                                //Si en el siguiente nivel, en entregable-componente no se encuentra la asignación, se realiza para ese proyecto-entregable
                                if (cls_variablesSistema.vs_proyecto.pEntregableComponenteListaMemoria.Where(searchLinQ => searchLinQ.pPK_Entregable == vo_entregable.pPK_entregable &&
                                                                                                                     searchLinQ.pPK_Componente == vo_componente.pPK_componente).Count() == 0)
                                {
                                    cls_variablesSistema.vs_proyecto.pComponenteLista.Add(vo_componente);
                                    cls_variablesSistema.vs_proyecto.pEntregableComponenteListaMemoria.Add(vo_entregableComponente);
                                }
                            }
                        }

                        lbx_compasociados.Items.Add(lbx_componentes.Items[i]);
                        ListItem li = lbx_componentes.Items[i];
                        lbx_componentes.Items.Remove(li);

                    }
                }

                //Si existe al menos un elemento asociado, se puede continuar
                if (lbx_compasociados.Items.Count > 0)
                {
                    btnNxt.Enabled = true;
                }
            }
            catch (Exception po_exception)
            {
                String vs_error_usuario = "Ocurrió un error al intentar asignar el componente seleccionado.";
                this.lanzarExcepcion(po_exception, vs_error_usuario);
            }
        }
        /// <summary>
        /// Método que obtiene los paquetes asociados a un componente en específico
        /// </summary>
        private void cargarPaquetesPorComponente()
        {
            DataSet vo_dataSet = new DataSet();
            int cantidadPaqAsociados;
            int cantidadPaquetes;
            bool validacionMemoria = false;

            try
            {
                //Se limpia el listbox de paquetes asociados
                if (lbx_paqasociados.Items.Count > 0)
                {
                    cantidadPaqAsociados = lbx_paqasociados.Items.Count;

                    for (int i = 0; i < cantidadPaqAsociados; i++ )
                    {
                        lbx_paqasociados.Items.RemoveAt(0);
                    }
                }
                //Se limpia el listbox de la totalidad de paquetes
                if (lbx_paquetes.Items.Count > 0)
                {
                    cantidadPaquetes = lbx_paquetes.Items.Count;

                    for (int i = 0; i < cantidadPaquetes; i++)
                    {
                        lbx_paquetes.Items.RemoveAt(0);
                    }
                }

                //Se aplica la consulta en base de datos para obtener todos los paquetes asociados a los componentes que se encuentran asignados en memoria para el proyecto
                vo_dataSet = cls_gestorComponentePaquete.selectComponentePaquete(cls_variablesSistema.vs_proyecto);

                foreach (DataRow row in vo_dataSet.Tables[0].Rows)
                {

                    cls_entregable vo_entregable = new cls_entregable();
                    cls_componente vo_componente = new cls_componente();
                    cls_paquete vo_paquete = new cls_paquete();
                    cls_componentePaquete vo_componentePaquete = new cls_componentePaquete();

                    vo_entregable.pPK_entregable = Convert.ToInt32(row["PK_entregable"]);
                    vo_componente.pPK_componente = Convert.ToInt32(row["PK_componente"]);
                    vo_paquete.pPK_Paquete = Convert.ToInt32(row["PK_paquete"]);
                    vo_paquete.pNombre = Convert.ToString(row["nombre"]);

                    vo_componentePaquete.pEntregable = vo_entregable;
                    vo_componentePaquete.pComponente = vo_componente;
                    vo_componentePaquete.pPaquete = vo_paquete;

                    //Si le elemento leído no se encuentra en la lista de base de datos, se agrega
                    if (cls_variablesSistema.vs_proyecto.pComponentePaqueteListaBaseDatos.Where(searchLinQ => searchLinQ.pPK_Paquete == vo_componentePaquete.pPK_Paquete).Count() == 0)
                    {
                        cls_variablesSistema.vs_proyecto.pComponentePaqueteListaBaseDatos.Add(vo_componentePaquete);
                    }
                    //Si el elemento leído no se encuentra en la lista de memoria, se agrega
                    if (cls_variablesSistema.vs_proyecto.pEntregableComponenteListaMemoria.Where(searchLinQ => searchLinQ.pPK_Componente == vo_componentePaquete.pPK_Componente).Count() == 1)
                    {
                        validacionMemoria = true;

                        cls_entregableComponente vo_entregableComponente = new cls_entregableComponente();
                        vo_entregableComponente = (cls_entregableComponente)cls_variablesSistema.vs_proyecto.pEntregableComponenteListaMemoria.Find(searchLinQ => searchLinQ.pPK_Componente == vo_componentePaquete.pPK_Componente);

                        if (vo_componentePaquete.pPK_Entregable == vo_entregableComponente.pPK_Entregable && vo_componentePaquete.pPK_Componente == vo_entregableComponente.pPK_Componente)
                        {
                            //Si el paquete no ha sido insertado en memoria, se agrega
                            if (cls_variablesSistema.vs_proyecto.pComponentePaqueteListaMemoria.Where(searchLinQ => searchLinQ.pPK_Paquete == vo_componentePaquete.pPK_Paquete).Count() == 0)
                            {
                                cls_variablesSistema.vs_proyecto.pPaqueteLista.Add(vo_paquete);
                                cls_variablesSistema.vs_proyecto.pComponentePaqueteListaMemoria.Add(vo_componentePaquete);
                            }
                        }

                    }
                }
                //Si la validación es True significa que se ha agregado al menos un elemento, por lo cuál el botón de siguiente puede habilitarse
                if (validacionMemoria)
                {
                    if (lbx_paqasociados.Items.Count == 0 && btnNxt != null && cls_variablesSistema.vs_proyecto.pComponentePaqueteListaBaseDatos.Count == 0)
                    {
                        btnNxt.Enabled = false;
                    }
                    else
                    {
                        btnNxt.Enabled = true;
                    }
                }
                else
                {
                    btnNxt.Enabled = false;
                }

            }
            catch (Exception po_exception)
            {
                throw new Exception("Ocurrió un error al obtener los paquetes asociados al proyecto.", po_exception);
            }
        }
        /// <summary>
        /// Método para obtener los componentes que se encuentran asociados a un entregable específico
        /// </summary>
        private void cargarComponentesPorEntregable()
        {
            DataSet vo_dataSet = new DataSet();
            int cantidadCompAsociados;
            int cantidadComponentes;
            bool validacionMemoria = false;

            try
            {
                //Se limpia el listbox con los componentes asociados
                if (lbx_compasociados.Items.Count > 0)
                {
                    cantidadCompAsociados = lbx_compasociados.Items.Count;

                    for (int i = 0; i < cantidadCompAsociados; i++ )
                    {
                        lbx_compasociados.Items.RemoveAt(0);
                    }
                }
                //Se limpia el listbox que mantiene la totalidad de los componentes
                if (lbx_componentes.Items.Count > 0)
                {
                    cantidadComponentes = lbx_componentes.Items.Count;

                    for (int i = 0; i < cantidadComponentes; i++)
                    {
                        lbx_componentes.Items.RemoveAt(0);
                    }
                }

                //Se realiza la consulta para obtener todos los componentes asociados a un entregable del proyecto seleccionado
                vo_dataSet = cls_gestorEntregableComponente.selectEntregableComponente(cls_variablesSistema.vs_proyecto);

                foreach (DataRow row in vo_dataSet.Tables[0].Rows)
                {

                    cls_entregable vo_entregable = new cls_entregable();
                    cls_componente vo_componente = new cls_componente();
                    cls_entregableComponente vo_entregableComponente = new cls_entregableComponente();

                    vo_entregable.pPK_entregable = Convert.ToInt32(row["PK_entregable"]);
                    vo_componente.pPK_componente = Convert.ToInt32(row["PK_componente"]);
                    vo_componente.pNombre = Convert.ToString(row["nombre"]);

                    vo_entregableComponente.pEntregable = vo_entregable;
                    vo_entregableComponente.pComponente = vo_componente;

                    //Si no se encuentra el elemento en la lista de memoria que mantiene los objetos de base de datos, se agrega
                    if (cls_variablesSistema.vs_proyecto.pEntregableComponenteListaBaseDatos.Where(searchLinQ => searchLinQ.pPK_Componente == vo_entregableComponente.pPK_Componente).Count() == 0)
                    {
                        cls_variablesSistema.vs_proyecto.pEntregableComponenteListaBaseDatos.Add(vo_entregableComponente);
                    }
                    //Si no se encuentra el elemento en la lista de memoria que se está creando, se agrega
                    if (cls_variablesSistema.vs_proyecto.pProyectoEntregableListaMemoria.Where(searchLinQ => searchLinQ.pPK_Entregable == vo_entregableComponente.pPK_Entregable).Count() > 0)
                    {
                        validacionMemoria = true;

                        if (cls_variablesSistema.vs_proyecto.pEntregableComponenteListaMemoria.Where(searchLinQ => searchLinQ.pPK_Componente == vo_entregableComponente.pPK_Componente).Count() == 0)
                        {
                            cls_variablesSistema.vs_proyecto.pComponenteLista.Add(vo_componente);
                            cls_variablesSistema.vs_proyecto.pEntregableComponenteListaMemoria.Add(vo_entregableComponente);
                        }
                    }
                }
                //Si la validación es True, se encontró al menos un elemento nuevo en la lista, por lo que se puede proseguir
                if (validacionMemoria)
                {
                    if (lbx_compasociados.Items.Count == 0 && btnNxt != null && cls_variablesSistema.vs_proyecto.pEntregableComponenteListaBaseDatos.Count == 0)
                    {
                        btnNxt.Enabled = false;
                    }
                    else
                    {
                        btnNxt.Enabled = true;
                    }
                }
                else
                {
                    btnNxt.Enabled = false;
                }

            }
            catch (Exception po_exception)
            {
                throw new Exception("Ocurrió un error al cargar los entregables asociados al proyecto.", po_exception);
            }
        }
        /// <summary>
        /// Método que obtiene los entregables asociados al entregable seleccionado
        /// </summary>
        /// <param name="po_entregableComponente"></param>
        private void cargarComponentesPorEntregable(cls_entregableComponente po_entregableComponente)
        {
            DataSet vo_dataSet = new DataSet();

            try
            {
                //Si la lista de memoria se encuentra vacía, se realiza la consulta a nivel de base de datos
                if (cls_variablesSistema.vs_proyecto.pEntregableComponenteListaMemoria.Count == 0)
                {
                    vo_dataSet = cls_gestorEntregableComponente.selectEntregableComponente(cls_variablesSistema.vs_proyecto);

                    //Se recorren los registros obtenidos en la consulta
                    foreach (DataRow row in vo_dataSet.Tables[0].Rows)
                    {

                        cls_entregable vo_entregable = new cls_entregable();
                        cls_componente vo_componente = new cls_componente();
                        cls_entregableComponente vo_entregableComponente = new cls_entregableComponente();

                        vo_entregable.pPK_entregable = Convert.ToInt32(row["PK_entregable"]);
                        vo_componente.pPK_componente = Convert.ToInt32(row["PK_componente"]);
                        vo_componente.pNombre = Convert.ToString(row["nombre"]);

                        vo_entregableComponente.pEntregable = vo_entregable;
                        vo_entregableComponente.pComponente = vo_componente;

                        //Si el objeto no se encuentra en memoria, se agrega
                        if (cls_variablesSistema.vs_proyecto.pEntregableComponenteListaBaseDatos.Where(searchLinQ => searchLinQ.pPK_Componente == vo_entregableComponente.pPK_Componente).Count() == 0)
                        {
                            cls_variablesSistema.vs_proyecto.pEntregableComponenteListaBaseDatos.Add(vo_entregableComponente);
                        }
                        //Si el objeto no se encuentra en memoria, se agrega
                        if (cls_variablesSistema.vs_proyecto.pProyectoEntregableListaMemoria.Where(searchLinQ => searchLinQ.pPK_Entregable == vo_entregableComponente.pPK_Entregable).Count() > 0)
                        {
                            if (cls_variablesSistema.vs_proyecto.pEntregableComponenteListaMemoria.Where(searchLinQ => searchLinQ.pPK_Componente == vo_entregableComponente.pPK_Componente).Count() == 0)
                            {
                                cls_variablesSistema.vs_proyecto.pComponenteLista.Add(vo_componente);
                                cls_variablesSistema.vs_proyecto.pEntregableComponenteListaMemoria.Add(vo_entregableComponente);
                            }
                        }
                    }

                }

                //Si el objeto está asociado en memoria se utiliza
                if (cls_variablesSistema.vs_proyecto.pEntregableComponenteListaMemoria.Where(searchLinQ => searchLinQ.pPK_Entregable == po_entregableComponente.pPK_Entregable).Count() > 0)
                {
                    lbx_compasociados.DataSource = cls_variablesSistema.vs_proyecto.pEntregableComponenteListaMemoria.Where(searchLinQ => searchLinQ.pPK_Entregable == po_entregableComponente.pPK_Entregable);
                    lbx_compasociados.DataTextField = "pNombreComponente";
                    lbx_compasociados.DataValueField = "pPK_Componente";

                    //Se realiza el Binding luego de saber de donde se tomarán los datos
                    lbx_compasociados.DataBind();

                    if (lbx_compasociados.Items.Count > 0)
                    {
                        //Si se leyeron datos asociados, se activa el botón de siguiente
                        btnNxt.Enabled = true;
                    }
                }
                //De lo contrario se consulta en base de datos para obtener, si existen, los registros asociados
                else
                {
                    vo_dataSet = cls_gestorEntregableComponente.selectEntregableComponente(po_entregableComponente);
                    lbx_compasociados.DataSource = vo_dataSet;
                    lbx_compasociados.DataTextField = "Nombre";
                    lbx_compasociados.DataValueField = "PK_Componente";

                    //Se realiza el Binding luego de saber de donde se tomarán los datos
                    lbx_compasociados.DataBind();

                    if (lbx_compasociados.Items.Count > 0)
                    {
                        ListBox lbx_pivot = new ListBox();

                        lbx_pivot.DataSource = vo_dataSet;
                        lbx_pivot.DataTextField = "Nombre";
                        lbx_pivot.DataValueField = "PK_Componente";
                        lbx_pivot.DataBind();

                        foreach (ListItem item in lbx_pivot.Items)
                        {
                            if (cls_variablesSistema.vs_proyecto.pEntregableComponenteListaMemoria.Where(searchLinQ => searchLinQ.pPK_Entregable == po_entregableComponente.pPK_Entregable &&
                                                                                                                       searchLinQ.pPK_Componente == Convert.ToInt32(item.Value)).Count() == 0)
                            {
                                lbx_compasociados.Items.Remove(item);
                            }
                        }

                        //Si se leyeron datos asociados, se activa el botón de siguiente
                        btnNxt.Enabled = true;
                    }
                }

            }
            catch (Exception po_exception)
            {
                throw new Exception("Ocurrió un error al cargar los entregables asociados al proyecto.", po_exception);
            }
        }
        /// <summary>
        /// Método que obtiene los componentes asociados al entregable que se le indica
        /// </summary>
        /// <param name="po_entregable"></param>
        private void inicializarComponentesPorEntregable(cls_entregable po_entregable)
        {
            try
            {
                cls_entregableComponente vo_entregableComponente = new cls_entregableComponente();

                vo_entregableComponente.pProyecto = ((CSLA.web.App_Variables.cls_variablesSistema)this.Session[CSLA.web.App_Constantes.cls_constantes.VARIABLES]).vs_proyecto;
                vo_entregableComponente.pEntregable = po_entregable;

                cargarComponentesPorEntregable(vo_entregableComponente);

                cargarListaComponentes();
            }
            catch (Exception po_exception)
            {
                throw new Exception("Ocurrió un error al los componentes asociados a proyecto.", po_exception);
            }
        }