Example #1
0
        /// <summary>
        /// Método que permite eliminar 
        /// un registro en la tabla Paquete 
        /// </summary>
        /// <param name="poPaquete">Paquete a eliminar</param>
        /// <returns>Int valor del resultado de la ejecución de la sentencia</returns>
        public static int deletePaquete(cls_paquete poPaquete)
        {
            int vi_resultado;

                try
                {
                    String vs_comando = "PA_cont_paqueteDelete";
                    cls_parameter[] vu_parametros =
                    {
                        new cls_parameter("@paramPK_paquete", poPaquete.pPK_Paquete)
                    };

                    cls_sqlDatabase.beginTransaction();

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

                    cls_interface.insertarTransacccionBitacora(cls_constantes.ELIMINAR, cls_constantes.PAQUETE, poPaquete.pPK_Paquete.ToString(), poPaquete.pUsuarioTransaccion);

                    cls_sqlDatabase.commitTransaction();

                    return vi_resultado;

                }
                catch (Exception po_exception)
                {
                    cls_sqlDatabase.rollbackTransaction();
                    throw new Exception("Ocurrió un error al eliminar el paquete.", po_exception);
                }
        }
Example #2
0
        /// <summary>
        /// Método que permite insertar 
        /// un nuevo registro en la tabla Paquete
        /// </summary>
        /// <param name="poPaquete">Proyecto a insertar</param>
        /// <returns>Int valor del resultado de la ejecución de la sentencia</returns>
        public static int insertPaquete(cls_paquete poPaquete)
        {
            int vi_resultado;

            try
            {
                String vs_comando = "PA_cont_paqueteInsert";
                cls_parameter[] vu_parametros =
                {
                        new cls_parameter("@paramcodigo", poPaquete.pCodigo),
                        new cls_parameter("@paramnombre", poPaquete.pNombre),
                        new cls_parameter("@paramdescripcion", poPaquete.pDescripcion)
                };

                cls_sqlDatabase.beginTransaction();

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

                // Se obtiene el número del registro insertado.
                poPaquete.pPK_Paquete = Convert.ToInt32(cls_gestorUtil.selectMax(cls_constantes.PAQUETE, "PK_paquete"));

                cls_interface.insertarTransacccionBitacora(cls_constantes.INSERTAR, cls_constantes.PAQUETE, poPaquete.pPK_Paquete.ToString(), poPaquete.pUsuarioTransaccion);

                cls_sqlDatabase.commitTransaction();

                return vi_resultado;

            }
            catch (Exception po_exception)
            {
                cls_sqlDatabase.rollbackTransaction();
                throw new Exception("Ocurrió un error al insertar el paquete.", po_exception);
            }
        }
        /// <summary>
        /// Constructor de la clase cls_paqueteActividad.
        /// </summary>
        public cls_paqueteActividad()
        {
            this.proyecto = new cls_proyecto();
            this.entregable = new cls_entregable();
            this.componente = new cls_componente();
            this.paquete = new cls_paquete();
            this.actividad = new cls_actividad();

            this.actividadList = new List<cls_actividad>();
        }
        public void RemoverPaqueteEncontrado(cls_paquete po_paquete)
        {
            //bool encontrado = false;

            componentePaqueteList.RemoveAll(po => po.pPK_Paquete == po_paquete.pPK_Paquete);

            //return encontrado;
        }
        /// <summary>
        /// Método que carga las actividades para un paquete en específico
        /// </summary>
        /// <param name="po_paqueteActividad"></param>
        private void cargarActividadesPorPaquete(cls_paqueteActividad po_paqueteActividad)
        {
            DataSet vo_dataSet = new DataSet();

            try
            {
                //Si se encuentran elementos en la lista de memoria, se verifica en estos
                if (cls_variablesSistema.vs_proyecto.pPaqueteActividadListaMemoria.Count == 0)
                {
                    vo_dataSet = cls_gestorPaqueteActividad.selectPaqueteActividad(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_actividad vo_actividad = new cls_actividad();
                        cls_paqueteActividad vo_paqueteActividad = new cls_paqueteActividad();

                        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_actividad.pPK_Actividad = Convert.ToInt32(row["PK_actividad"]);
                        vo_actividad.pNombre = Convert.ToString(row["nombre"]);

                        vo_paqueteActividad.pEntregable = vo_entregable;
                        vo_paqueteActividad.pComponente = vo_componente;
                        vo_paqueteActividad.pPaquete = vo_paquete;
                        vo_paqueteActividad.pActividad = vo_actividad;

                        //Si en la lista de memoria que mantiene los objetos leídos a nivel de base de datos, no se encuentra el elemente, se agrega
                        if (cls_variablesSistema.vs_proyecto.pPaqueteActividadListaBaseDatos.Where(searchLinQ => searchLinQ.pPK_Actividad == vo_paqueteActividad.pPK_Actividad).Count() == 0)
                        {
                            cls_variablesSistema.vs_proyecto.pPaqueteActividadListaBaseDatos.Add(vo_paqueteActividad);
                        }
                        //Si en la lista de memoria no se encuentra el elemento, se agrega
                        if (cls_variablesSistema.vs_proyecto.pComponentePaqueteListaMemoria.Where(searchLinQ => searchLinQ.pPK_Entregable == vo_paqueteActividad.pPK_Entregable &&
                                                                                                                searchLinQ.pPK_Componente == vo_paqueteActividad.pPK_Componente &&
                                                                                                                searchLinQ.pPK_Paquete == vo_paqueteActividad.pPK_Paquete).Count() > 0)
                        {
                            cls_variablesSistema.vs_proyecto.pActividadLista.Add(vo_actividad);
                            cls_variablesSistema.vs_proyecto.pPaqueteActividadListaMemoria.Add(vo_paqueteActividad);
                        }
                    }

                }

                //Si el elemento se encuentra en la lista de memoria, se respeta para la asignación
                if (cls_variablesSistema.vs_proyecto.pPaqueteActividadListaMemoria.Where(searchLinQ => searchLinQ.pPK_Paquete == po_paqueteActividad.pPK_Paquete).Count() > 0)
                {
                    lbx_actasociadas.DataSource = cls_variablesSistema.vs_proyecto.pPaqueteActividadListaMemoria.Where(searchLinQ => searchLinQ.pPK_Paquete == po_paqueteActividad.pPK_Paquete);
                    lbx_actasociadas.DataTextField = "pNombreActividad";
                    lbx_actasociadas.DataValueField = "pPK_Actividad";

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

                    if (lbx_actasociadas.Items.Count > 0)
                    {
                        //Si se leyeron datos asociados, se activa el botón de siguiente
                        btnNxt.Enabled = true;
                    }
                }
                else
                {
                    vo_dataSet = cls_gestorPaqueteActividad.selectPaqueteActividad(po_paqueteActividad);
                    lbx_actasociadas.DataSource = vo_dataSet;
                    lbx_actasociadas.DataTextField = "Nombre";
                    lbx_actasociadas.DataValueField = "PK_Actividad";

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

                    //Si se encuentran elementos asociados
                    if (lbx_actasociadas.Items.Count > 0)
                    {
                        ListBox lbx_pivot = new ListBox();

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

                        //Si la actividad ya se encuentra asociada, se elimina del listbox de asociación
                        foreach (ListItem item in lbx_pivot.Items)
                        {
                            if (cls_variablesSistema.vs_proyecto.pPaqueteActividadListaMemoria.Where(searchLinQ => searchLinQ.pPK_Entregable == po_paqueteActividad.pPK_Entregable &&
                                                                                                                   searchLinQ.pPK_Componente == po_paqueteActividad.pPK_Componente &&
                                                                                                                   searchLinQ.pPK_Paquete == po_paqueteActividad.pPK_Paquete &&
                                                                                                                   searchLinQ.pPK_Actividad == Convert.ToInt32(item.Value)).Count() == 0)
                            {
                                lbx_actasociadas.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 actividades asociadas al proyecto.", po_exception);
            }
        }
 /// <summary>
 /// Crea un objeto de tipo
 /// cls_paquete con la informacón
 /// que se encuentra en el formulario
 /// web
 /// </summary>
 /// <returns>cls_paquete</returns>
 private cls_paquete crearObjeto()
 {
     cls_paquete vo_paquete = new cls_paquete();
     try
     {
         if (cls_variablesSistema.tipoEstado != cls_constantes.AGREGAR)
         {
             vo_paquete = (cls_paquete)cls_variablesSistema.obj;
         }
         vo_paquete.pCodigo = txt_codigo.Text;
         vo_paquete.pNombre = txt_nombre.Text;
         vo_paquete.pDescripcion = txt_descripcion.Text;
         return vo_paquete;
     }
     catch (Exception po_exception)
     {
         throw new Exception("Ocurrió un error al crear el paquete para registro.", po_exception);
     }
 }
        public bool PaqueteEncontrado(cls_paquete po_paquete)
        {
            bool encontrado = false;

            if (componentePaqueteList.Where(po => po.pPK_Paquete == po_paquete.pPK_Paquete).Count() > 0)
            {
                encontrado = true;
            }

            return encontrado;
        }
        /// <summary>
        /// Método que inicializa las actividades asignadas a un paquete específico
        /// </summary>
        /// <param name="po_paquete"></param>
        private void inicializarActividadesPorPaquete(cls_paquete po_paquete)
        {
            try
            {
                cls_paqueteActividad vo_paqueteActividad = new cls_paqueteActividad();

                vo_paqueteActividad.pProyecto = cls_variablesSistema.vs_proyecto;
                vo_paqueteActividad.pPaquete = po_paquete;

                //Se envía a cargas las actividaes por paquete
                cargarActividadesPorPaquete(vo_paqueteActividad);
                //Se carga la totalidad de las actividades que aún pueden ser escogidas
                cargarListaActividades();
            }
            catch (Exception po_exception)
            {
                throw new Exception("Ocurrió un error al ontener las actividades asociadas a proyecto.", po_exception);
            }
        }
        /// <summary>
        /// Evento para la eliminación de una actividad
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btn_removerActividad_Click(object sender, EventArgs e)
        {
            int paqueteSeleccionado;
            paqueteSeleccionado = Convert.ToInt32(lbx_paquetesasociados.SelectedValue.ToString());

            cls_paquete vo_paquete = new cls_paquete();
            vo_paquete.pPK_Paquete = paqueteSeleccionado;
            try
            {
                //Se recorre la lista de actividades asociadas
                for (int i = lbx_actasociadas.Items.Count - 1; i >= 0; i--)
                {
                    if (lbx_actasociadas.Items[i].Selected == true)
                    {
                        cls_actividad vo_actividad = new cls_actividad();
                        vo_actividad.pPK_Actividad = Convert.ToInt32(lbx_actasociadas.Items[i].Value.ToString());
                        vo_actividad.pNombre = lbx_actasociadas.Items[i].Text;

                        cls_paqueteActividad vo_paqueteActividad = new cls_paqueteActividad();

                        vo_paqueteActividad.pPaquete = vo_paquete;
                        vo_paqueteActividad.pActividad = vo_actividad;

                        //Se recorren los elementos de la lista de memoria
                        foreach (cls_componentePaquete compPaq in cls_variablesSistema.vs_proyecto.pComponentePaqueteListaMemoria)
                        {
                            if (cls_variablesSistema.vs_proyecto.pPaqueteActividadListaMemoria.Where(searchLinQ => searchLinQ.pPK_Entregable == compPaq.pPK_Entregable &&
                                                                                                             searchLinQ.pPK_Componente == compPaq.pPK_Componente &&
                                                                                                             searchLinQ.pPK_Paquete == vo_paquete.pPK_Paquete &&
                                                                                                             searchLinQ.pPK_Actividad == vo_actividad.pPK_Actividad).Count() > 0)
                            {
                                cls_variablesSistema.vs_proyecto.pActividadLista.RemoveAll(searchLinQ => searchLinQ.pPK_Actividad == vo_actividad.pPK_Actividad);
                                cls_variablesSistema.vs_proyecto.pPaqueteActividadListaMemoria.RemoveAll(searchLinQ => searchLinQ.pPK_Paquete == vo_paquete.pPK_Paquete &&
                                                                                                                       searchLinQ.pPK_Actividad == vo_actividad.pPK_Actividad);
                            }
                        }

                        lbx_actividades.Items.Add(lbx_actasociadas.Items[i]);
                        ListItem li = lbx_actasociadas.Items[i];
                        lbx_actasociadas.Items.Remove(li);

                    }
                }

                //Si no se encuentra al menos un elemento, no se habilita el botón de siguiente
                if (lbx_actasociadas.Items.Count == 0 && cls_variablesSistema.vs_proyecto.pPaqueteActividadListaMemoria.Count == 0 && cls_variablesSistema.vs_proyecto.pPaqueteActividadListaBaseDatos.Count == 0)
                {
                    btnNxt.Enabled = false;
                }
                else
                {
                    btnNxt.Enabled = true;
                }
            }
            catch (Exception po_exception)
            {
                String vs_error_usuario = "Ocurrió un error al remover la actividad del proyecto.";
                this.lanzarExcepcion(po_exception, vs_error_usuario);
            }
        }
Example #10
0
        /// <summary>
        /// Método que permite seleccionar  
        /// un único registro en la tabla paquete
        /// </summary>
        /// <returns>poPaquete valor del resultado de la ejecución de la sentencia</returns>
        public static cls_paquete seleccionarPaquetes(cls_paquete poPaquete)
        {
            try
               {
                   String vs_comando = "PA_cont_paqueteSelectOne";
                   cls_parameter[] vu_parametros = {
                                                       new cls_parameter("@paramPK_paquete", poPaquete.pPK_Paquete)
                                                   };

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

                   poPaquete = new cls_paquete();

                   poPaquete.pPK_Paquete = Convert.ToInt32(vu_dataSet.Tables[0].Rows[0]["PK_paquete"]);

                   poPaquete.pCodigo = vu_dataSet.Tables[0].Rows[0]["codigo"].ToString();

                   poPaquete.pNombre = vu_dataSet.Tables[0].Rows[0]["nombre"].ToString();

                   poPaquete.pDescripcion = vu_dataSet.Tables[0].Rows[0]["descripcion"].ToString();

                   return poPaquete;

               }
               catch (Exception po_exception)
               {
                   cls_sqlDatabase.rollbackTransaction();
                   throw new Exception("Ocurrió un error al obtener el paquete específico.", po_exception);
               }
        }
        /// <summary>
        /// Método que filtra los paquetes del componente seleccionado
        /// </summary>
        /// <param name="po_componentePaquete"></param>
        private void cargarPaquetesPorComponente(cls_componentePaquete po_componentePaquete)
        {
            DataSet vo_dataSet = new DataSet();

            try
            {
                //Si la lista de memoria se encuentra vacía, se realiza la consulta en base de datos
                if (cls_variablesSistema.vs_proyecto.pComponentePaqueteListaMemoria.Count == 0)
                {
                    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 el elemento no se encuentra en la lista de memoria que mantiene los elementos que se obtienen 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 no se encuentra asignado a la lista de memoria, se agrega
                        if (cls_variablesSistema.vs_proyecto.pEntregableComponenteListaMemoria.Where(searchLinQ => searchLinQ.pPK_Componente == vo_componentePaquete.pPK_Componente).Count() > 0)
                        {
                            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);
                            }
                        }
                    }

                }

                //Se respetan los paquetes que hayan sido asignados en memoria
                if (cls_variablesSistema.vs_proyecto.pComponentePaqueteListaMemoria.Where(searchLinQ => searchLinQ.pPK_Componente == po_componentePaquete.pPK_Componente).Count() > 0)
                {
                    lbx_paqasociados.DataSource = cls_variablesSistema.vs_proyecto.pComponentePaqueteListaMemoria.Where(searchLinQ => searchLinQ.pPK_Componente == po_componentePaquete.pPK_Componente);
                    lbx_paqasociados.DataTextField = "pNombrePaquete";
                    lbx_paqasociados.DataValueField = "pPK_Paquete";

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

                    if (lbx_paqasociados.Items.Count > 0)
                    {
                        //Si se leyeron datos asociados, se activa el botón de siguiente
                        btnNxt.Enabled = true;
                    }
                }
                //Si el elemento no se encuentra en memoria, se realiza la consulta en base de datos
                else
                {
                    vo_dataSet = cls_gestorComponentePaquete.selectComponentePaquete(po_componentePaquete);
                    lbx_paqasociados.DataSource = vo_dataSet;
                    lbx_paqasociados.DataTextField = "Nombre";
                    lbx_paqasociados.DataValueField = "PK_Paquete";

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

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

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

                        foreach (ListItem item in lbx_pivot.Items)
                        {
                            if (cls_variablesSistema.vs_proyecto.pComponentePaqueteListaMemoria.Where(searchLinQ => searchLinQ.pPK_Entregable == po_componentePaquete.pPK_Entregable &&
                                                                                                              searchLinQ.pPK_Componente == po_componentePaquete.pPK_Componente &&
                                                                                                              searchLinQ.pPK_Paquete == Convert.ToInt32(item.Value)).Count() == 0)
                            {
                                lbx_paqasociados.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 paquetes asociados al proyecto.", po_exception);
            }
        }
Example #12
0
        /// <summary>
        /// Hace un lista de paquetes con un filtrado específico.
        /// </summary>
        /// <param name="psFiltro">String filtro.</param>
        /// <returns></returns>
        public static List<cls_paquete> listarPaqueteFiltro(string psFiltro)
        {
            List<cls_paquete> vo_lista = null;
               cls_paquete voPaquete = null;
               try
               {
               DataSet vu_dataSet = cls_gestorUtil.selectFilter(cls_constantes.PAQUETE, string.Empty, psFiltro);

               vo_lista = new List<cls_paquete>();

               for (int i = 0; i < vu_dataSet.Tables[0].Rows.Count; i++)
               {
                   voPaquete = new cls_paquete();

                   voPaquete.pPK_Paquete = Convert.ToInt32(vu_dataSet.Tables[0].Rows[i]["PK_paquete"]);

                   voPaquete.pCodigo = vu_dataSet.Tables[0].Rows[i]["codigo"].ToString();

                   voPaquete.pNombre = vu_dataSet.Tables[0].Rows[i]["nombre"].ToString();

                   voPaquete.pDescripcion = vu_dataSet.Tables[0].Rows[i]["descripcion"].ToString();

                   vo_lista.Add(voPaquete);
               }

               return vo_lista;
               }
               catch (Exception po_exception)
               {
               throw new Exception("Ocurrió un error al obtener el listado de los paquetes de manera filtrada.", po_exception);
               }
        }
Example #13
0
        /// <summary>
        /// Método que permite listar 
        /// todos los registros en la tabla paquete
        /// </summary>
        /// <returns>List<cls_paquete> valor del resultado de la ejecución de la sentencia</returns>
        public static List<cls_paquete> listarPaquetes()
        {
            List<cls_paquete> vo_lista = null;
               cls_paquete poPaquete = null;
               try
               {
                   String vs_comando = "PA_cont_paqueteSelect";
                   cls_parameter[] vu_parametros = { };

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

                   vo_lista = new List<cls_paquete>();
                   for (int i = 0; i < vu_dataSet.Tables[0].Rows.Count; i++)
                   {
                       poPaquete = new cls_paquete();

                       poPaquete.pPK_Paquete = Convert.ToInt32(vu_dataSet.Tables[0].Rows[i]["PK_paquete"]);

                       poPaquete.pCodigo = vu_dataSet.Tables[0].Rows[i]["codigo"].ToString();

                       poPaquete.pNombre = vu_dataSet.Tables[0].Rows[i]["nombre"].ToString();

                       poPaquete.pDescripcion = vu_dataSet.Tables[0].Rows[i]["descripcion"].ToString();

                       vo_lista.Add(poPaquete);
                   }

                   return vo_lista;
               }
               catch (Exception po_exception)
               {
                   cls_sqlDatabase.rollbackTransaction();
                   throw new Exception("Ocurrió un error al obtener el listado de los paquetes.", po_exception);
               }
        }
        /// <summary>
        /// Evento que asigna usuarios a las actividades que se seleccionan
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btn_asignarUsuario_Click(object sender, EventArgs e)
        {
            try
            {
                cls_paquete vo_paquete = new cls_paquete();
                vo_paquete.pPK_Paquete = Convert.ToInt32(ddl_paquete.SelectedValue.ToString());

                //Se recorren las actividades del listBox hasta que se llegue a la que se encuentra seleccionada
                for (int i = lbx_actividades.Items.Count - 1; i >= 0; i--)
                {
                    if (lbx_actividades.Items[i].Selected == true)
                    {
                        cls_actividad vo_actividad = new cls_actividad();
                        vo_actividad.pPK_Actividad = Convert.ToInt32(lbx_actividades.Items[i].Value.ToString());
                        vo_actividad.pNombre = lbx_actividades.Items[i].Text.ToString();

                        //Se recorren los usuarios del listBox hasta que se llegue al que se encuentra seleccionado
                        for (int j = lbx_usuarios.Items.Count - 1; j >= 0; j--)
                        {
                            if (lbx_usuarios.Items[j].Selected == true)
                            {
                                cls_asignacionActividad vo_actividadAsignada = new cls_asignacionActividad();

                                cls_usuario vo_usuario = new cls_usuario();
                                vo_usuario.pPK_usuario = lbx_usuarios.Items[j].Value.ToString();
                                vo_usuario.pNombre = lbx_usuarios.Items[j].Text.ToString();

                                //Si la asignación no se encuentra en memoria
                                if (cls_variablesSistema.vs_proyecto.pAsignacionActividadListaMemoria.Where(searchLinQ => searchLinQ.pPK_Actividad == vo_actividad.pPK_Actividad &&
                                                                                                                    searchLinQ.pPK_Paquete == vo_paquete.pPK_Paquete).Count() == 0)
                                {

                                    vo_actividadAsignada = (cls_asignacionActividad)cls_variablesSistema.vs_proyecto.pActividadesPaqueteLista.Find(searchLinQ => searchLinQ.pPK_Actividad == vo_actividad.pPK_Actividad &&
                                                                                                                                                                 searchLinQ.pPK_Paquete == vo_paquete.pPK_Paquete);
                                    cls_variablesSistema.obj = vo_actividadAsignada;

                                    vo_actividadAsignada = crearObjeto();

                                    //Si el usuario no se encuentra asignado, se procede a agregarlo a la lista de usuarios de la asignación y a agregar la asignación en si
                                    if (vo_actividadAsignada.pUsuarioLista.Where(searchLinQ => searchLinQ.pPK_usuario == vo_usuario.pPK_usuario).Count() == 0)
                                    {

                                        vo_actividadAsignada.pUsuarioLista.Add(vo_usuario);

                                        lbx_usuariosAsociados.Items.Add(lbx_usuarios.Items[j]);
                                        ListItem li = lbx_usuarios.Items[j];
                                        lbx_usuarios.Items.Remove(li);

                                        cls_variablesSistema.vs_proyecto.pAsignacionActividadListaMemoria.Add(vo_actividadAsignada);
                                    }
                                }
                                //De encontrarse la asignación ya en memoria, sólo se asigna y se corrobora el usuario que se intenta asignar
                                else
                                {
                                    vo_actividadAsignada = (cls_asignacionActividad)cls_variablesSistema.vs_proyecto.pAsignacionActividadListaMemoria.Find(searchLinQ => searchLinQ.pPK_Actividad == vo_actividad.pPK_Actividad &&
                                                                                                                                                                         searchLinQ.pPK_Paquete == vo_paquete.pPK_Paquete);
                                    cls_variablesSistema.obj = vo_actividadAsignada;

                                    vo_actividadAsignada = crearObjeto();

                                    if (vo_actividadAsignada.pUsuarioLista.Where(searchLinQ => searchLinQ.pPK_usuario == vo_usuario.pPK_usuario).Count() == 0)
                                    {
                                        vo_actividadAsignada.pUsuarioLista.Add(vo_usuario);

                                        lbx_usuariosAsociados.Items.Add(lbx_usuarios.Items[j]);
                                        ListItem li = lbx_usuarios.Items[j];
                                        lbx_usuarios.Items.Remove(li);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception po_exception)
            {
                String vs_error_usuario = "Ocurrió un error mientras se asignada la información del usuario a la actividad.";
                this.lanzarExcepcion(po_exception, vs_error_usuario);
            }
        }
        /// <summary>
        /// Evento para remover usuarios de la asignación de actividades
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btn_removerUsuario_Click(object sender, EventArgs e)
        {
            try
            {
                cls_paquete vo_paquete = new cls_paquete();
                vo_paquete.pPK_Paquete = Convert.ToInt32(ddl_paquete.SelectedValue.ToString());

                for (int i = lbx_actividades.Items.Count - 1; i >= 0; i--)
                {
                    if (lbx_actividades.Items[i].Selected == true)
                    {
                        cls_actividad vo_actividad = new cls_actividad();
                        vo_actividad.pPK_Actividad = Convert.ToInt32(lbx_actividades.Items[i].Value.ToString());
                        vo_actividad.pNombre = lbx_actividades.Items[i].Text.ToString();

                        for (int j = lbx_usuariosAsociados.Items.Count - 1; j >= 0; j--)
                        {
                            if (lbx_usuariosAsociados.Items[j].Selected == true)
                            {
                                cls_asignacionActividad vo_actividadAsignada = new cls_asignacionActividad();

                                cls_usuario vo_usuario = new cls_usuario();
                                vo_usuario.pPK_usuario = lbx_usuariosAsociados.Items[j].Value.ToString();
                                vo_usuario.pNombre = lbx_usuariosAsociados.Items[j].Text.ToString();

                                if (cls_variablesSistema.vs_proyecto.pAsignacionActividadListaMemoria.Where(searchLinQ => searchLinQ.pPK_Actividad == vo_actividad.pPK_Actividad &&
                                                                                                                          searchLinQ.pPK_Paquete == vo_paquete.pPK_Paquete).Count() > 0)
                                {
                                    vo_actividadAsignada = (cls_asignacionActividad)cls_variablesSistema.vs_proyecto.pAsignacionActividadListaMemoria.Find(searchLinQ => searchLinQ.pPK_Actividad == vo_actividad.pPK_Actividad &&
                                                                                                                                                                         searchLinQ.pPK_Paquete == vo_paquete.pPK_Paquete);
                                    //Si luego de esta eliminación, la lista aún va a quedar con elementos, solo se remueve el usuario
                                    if (vo_actividadAsignada.pUsuarioLista.Count > 1)
                                    {
                                        vo_actividadAsignada.pUsuarioLista.RemoveAll(searchLinQ => searchLinQ.pPK_usuario == vo_usuario.pPK_usuario);
                                    }
                                    //Si solo se haya un elemento en la lista de usuarios, no se realiza la eliminación del mismo, sino de la actividad asignada
                                    //del objeto en memoria, esto debido a que la llave primaria de la asignación está compuesta en parte por la llave primario
                                    //del usuario, y si el mismo no se asigna, pues no se obtiene y presentaría un error
                                    else
                                    {
                                        cls_variablesSistema.vs_proyecto.pAsignacionActividadListaMemoria.RemoveAll(searchLinQ => searchLinQ.pPK_Actividad == vo_actividad.pPK_Actividad &&
                                                                                                                                  searchLinQ.pPK_Paquete == vo_paquete.pPK_Paquete);
                                    }
                                }

                                lbx_usuarios.Items.Add(lbx_usuariosAsociados.Items[j]);
                                ListItem li = lbx_usuariosAsociados.Items[j];
                                lbx_usuariosAsociados.Items.Remove(li);

                            }
                        }
                    }
                }
            }
            catch (Exception po_exception)
            {
                String vs_error_usuario = "Ocurrió un error mientras se desasociaba la información del usuario a la actividad.";
                this.lanzarExcepcion(po_exception, vs_error_usuario);
            }
        }
        /// <summary>
        /// Método que elimina un paquete
        /// </summary>
        /// <param name="po_paquete">Paquete a eliminar</param>
        private void eliminarDatos(cls_paquete po_paquete)
        {
            try
            {
                cls_gestorPaquete.deletePaquete(po_paquete);

                this.llenarGridView();

                this.upd_Principal.Update();
            }
            catch (Exception po_exception)
            {
                throw new Exception("Ocurrió un error eliminando el paquete.", po_exception);
            }
        }
        /// <summary>
        /// Método que obtiene las actividades asociadas a un paquete específico
        /// </summary>
        private void cargarActividadesPorPaquete()
        {
            DataSet vo_dataSet = new DataSet();
            int cantidadActAsociadas;
            int cantidadActividades;
            bool validacionMemoria = false;

            try
            {
                //Se limpia el listbox que mantiene la asociación de actividades
                if (lbx_actasociadas.Items.Count > 0)
                {
                    cantidadActAsociadas = lbx_actasociadas.Items.Count;

                    for (int i = 0; i < cantidadActAsociadas; i++)
                    {
                        lbx_actasociadas.Items.RemoveAt(0);
                    }
                }
                //Se limpia el listbox que obtiene la totalidad de actividades
                if (lbx_actividades.Items.Count > 0)
                {
                    cantidadActividades = lbx_actividades.Items.Count;

                    for (int i = 0; i < cantidadActividades; i++)
                    {
                        lbx_actividades.Items.RemoveAt(0);
                    }
                }

                //Se realiza la consulta en base de datos para obtener las actividades asociadas a los paquetes del proyecto
                vo_dataSet = cls_gestorPaqueteActividad.selectPaqueteActividad(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_actividad vo_actividad = new cls_actividad();
                    cls_paqueteActividad vo_paqueteActividad = new cls_paqueteActividad();

                    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_actividad.pPK_Actividad = Convert.ToInt32(row["PK_actividad"]);
                    vo_actividad.pNombre = Convert.ToString(row["nombre"]);

                    vo_paqueteActividad.pEntregable = vo_entregable;
                    vo_paqueteActividad.pComponente = vo_componente;
                    vo_paqueteActividad.pPaquete = vo_paquete;
                    vo_paqueteActividad.pActividad = vo_actividad;

                    //El filtro aquí se realiza con el paquete y la actividad, esto debido a que una actividad si puede encontrarse ya asignada a varios paquetes
                    if (cls_variablesSistema.vs_proyecto.pPaqueteActividadListaBaseDatos.Where(searchLinQ => searchLinQ.pPK_Paquete == vo_paqueteActividad.pPK_Paquete &&
                                                                                                             searchLinQ.pPK_Actividad == vo_paqueteActividad.pPK_Actividad).Count() == 0)
                    {
                        cls_variablesSistema.vs_proyecto.pPaqueteActividadListaBaseDatos.Add(vo_paqueteActividad);
                    }
                    //Si el componente-paquete que se va a asignar ya existe en memoria
                    if (cls_variablesSistema.vs_proyecto.pComponentePaqueteListaMemoria.Where(searchLinQ => searchLinQ.pPK_Paquete == vo_paqueteActividad.pPK_Paquete).Count() == 1)
                    {
                        validacionMemoria = true;

                        cls_componentePaquete vo_componentePaquete = new cls_componentePaquete();
                        vo_componentePaquete = (cls_componentePaquete)cls_variablesSistema.vs_proyecto.pComponentePaqueteListaMemoria.Find(searchLinQ => searchLinQ.pPK_Paquete == vo_paqueteActividad.pPK_Paquete);

                        //Si se está asignando sobre uno que ya existe en memoria, se tiene que corroborar con toda la llave primaria
                        if (vo_paqueteActividad.pPK_Entregable == vo_componentePaquete.pPK_Entregable && vo_paqueteActividad.pPK_Componente == vo_componentePaquete.pPK_Componente && vo_paqueteActividad.pPK_Paquete == vo_componentePaquete.pPK_Paquete)
                        {
                            //Si la actividad no ha sido insertado en memoria, se agrega
                            if (cls_variablesSistema.vs_proyecto.pPaqueteActividadListaMemoria.Where(searchLinQ => searchLinQ.pPK_Paquete == vo_paqueteActividad.pPK_Paquete &&
                                                                                                                   searchLinQ.pPK_Actividad == vo_paqueteActividad.pPK_Actividad).Count() == 0)
                            {
                                cls_variablesSistema.vs_proyecto.pActividadLista.Add(vo_actividad);
                                cls_variablesSistema.vs_proyecto.pPaqueteActividadListaMemoria.Add(vo_paqueteActividad);
                            }
                        }

                    }
                }

                //Si la validación devuelve un True, se ha asignado almenos un elemento, por lo cual se puede habilitar el botón de siguiente
                if (validacionMemoria)
                {
                    if (lbx_actasociadas.Items.Count == 0 && btnNxt != null && cls_variablesSistema.vs_proyecto.pPaqueteActividadListaBaseDatos.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 actividades asociadas al proyecto.", po_exception);
            }
        }
Example #18
0
        /// <summary>
        /// Método que permite actualizar 
        /// un registro en la tabla Paquete 
        /// </summary>
        /// <param name="poPaquete">Paquete a actualizar</param>
        /// <returns>Int valor del resultado de la ejecución de la sentencia</returns>
        public static int updatePaquete(cls_paquete poPaquete)
        {
            int vi_resultado;

                try
                {
                    String vs_comando = "PA_cont_paqueteUpdate";
                    cls_parameter[] vu_parametros =
                    {
                 		    new cls_parameter("@paramPK_paquete", poPaquete.pPK_Paquete),
                            new cls_parameter("@paramcodigo", poPaquete.pCodigo),
                            new cls_parameter("@paramnombre", poPaquete.pNombre),
                            new cls_parameter("@paramdescripcion", poPaquete.pDescripcion)
                    };

                    cls_sqlDatabase.beginTransaction();

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

                    cls_interface.insertarTransacccionBitacora(cls_constantes.MODIFICAR, cls_constantes.PAQUETE, poPaquete.pPK_Paquete.ToString(), poPaquete.pUsuarioTransaccion);

                    cls_sqlDatabase.commitTransaction();

                    return vi_resultado;

                }
                catch (Exception po_exception)
                {
                    cls_sqlDatabase.rollbackTransaction();
                    throw new Exception("Ocurrió un error al modificar el paquete.", po_exception);
                }
        }
        /// <summary>
        /// Evento encargado de asignar la actividad a uno o varios paquetes
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btn_asignarActividad_Click(object sender, EventArgs e)
        {
            int paqueteSeleccionado;
            paqueteSeleccionado = Convert.ToInt32(lbx_paquetesasociados.SelectedValue.ToString());

            cls_paquete vo_paquete = new cls_paquete();
            vo_paquete.pPK_Paquete = paqueteSeleccionado;
            try
            {
                //Se recorre la lista de actividades
                for (int i = lbx_actividades.Items.Count - 1; i >= 0; i--)
                {
                    if (lbx_actividades.Items[i].Selected == true)
                    {
                        cls_actividad vo_actividad = new cls_actividad();
                        vo_actividad.pPK_Actividad = Convert.ToInt32(lbx_actividades.Items[i].Value.ToString());
                        vo_actividad.pNombre = lbx_actividades.Items[i].Text;

                        cls_paqueteActividad vo_paqueteActividad = new cls_paqueteActividad();

                        vo_paqueteActividad.pPaquete = vo_paquete;
                        vo_paqueteActividad.pActividad = vo_actividad;

                        //Se recorre los elementos de la lista de memoria
                        foreach (cls_componentePaquete compPaq in cls_variablesSistema.vs_proyecto.pComponentePaqueteListaMemoria)
                        {
                            if (compPaq.pPK_Paquete == vo_paquete.pPK_Paquete)
                            {
                                //Si la actividad no se encuentra asignada para ese paquete, se agrega
                                if (cls_variablesSistema.vs_proyecto.pPaqueteActividadListaMemoria.Where(searchLinQ => searchLinQ.pPK_Entregable == compPaq.pPK_Entregable &&
                                                                                                                 searchLinQ.pPK_Componente == compPaq.pPK_Componente &&
                                                                                                                 searchLinQ.pPK_Paquete == vo_paquete.pPK_Paquete &&
                                                                                                                 searchLinQ.pPK_Actividad == vo_actividad.pPK_Actividad).Count() == 0)
                                {
                                    //Se agregam el entregable y componente al que pertenece el paqueteActividad, puesto que se necesita al guardar el registro
                                    vo_paqueteActividad.pEntregable = compPaq.pEntregable;
                                    vo_paqueteActividad.pComponente = compPaq.pComponente;

                                    cls_variablesSistema.vs_proyecto.pActividadLista.Add(vo_actividad);
                                    cls_variablesSistema.vs_proyecto.pPaqueteActividadListaMemoria.Add(vo_paqueteActividad);
                                }
                            }
                        }

                        lbx_actasociadas.Items.Add(lbx_actividades.Items[i]);
                        ListItem li = lbx_actividades.Items[i];
                        lbx_actividades.Items.Remove(li);

                    }
                }

                //Si al menos se encuetra un elemento asociado, se puede habilitar el botón de siguiente
                if (lbx_actasociadas.Items.Count > 0)
                {
                    btnNxt.Enabled = true;
                }
            }
            catch (Exception po_exception)
            {
                String vs_error_usuario = "Ocurrió un error al asignar la actividad al proyecto.";
                this.lanzarExcepcion(po_exception, vs_error_usuario);
            }
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="ps_proyecto"></param>
        /// <returns></returns>
        public static List<cls_paquete> listarPaquetesProyecto(int ps_proyecto)
        {
            List<cls_paquete> vo_lista = null;
               cls_paquete vo_paqueteProyecto = null;
               try
               {
               String vs_comando = "PA_cont_paquetesProyectoSelectAll";
               cls_parameter[] vu_parametros = {
                                                 new cls_parameter("@paramPK_proyecto", ps_proyecto.ToString())
                                               };

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

               vo_lista = new List<cls_paquete>();
               for (int i = 0; i < vu_dataSet.Tables[0].Rows.Count; i++)
               {
                   vo_paqueteProyecto = new cls_paquete();

                   vo_paqueteProyecto.pPK_Paquete = Convert.ToInt32(vu_dataSet.Tables[0].Rows[i]["PK_paquete"]);

                   vo_paqueteProyecto.pNombre = vu_dataSet.Tables[0].Rows[i]["nombrePaquete"].ToString();

                   vo_lista.Add(vo_paqueteProyecto);
               }

               return vo_lista;
               }
               catch (Exception po_exception)
               {
               throw new Exception("Ocurrió un error al obtener el listado de las actividades.", po_exception);
               }
        }
        /// <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>
        /// Evento que maneja el cambio de índice para el listbox de paquete
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void lbx_paquetes_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                int paqueteSeleccionado;
                paqueteSeleccionado = Convert.ToInt32(lbx_paquetesasociados.SelectedValue.ToString());

                cls_paquete vo_paquete = new cls_paquete();
                vo_paquete.pPK_Paquete = paqueteSeleccionado;

                //Se envía a inicializa las actividades según el paquete seleccionado
                inicializarActividadesPorPaquete(vo_paquete);
            }
            catch (Exception po_exception)
            {
                String vs_error_usuario = "Ocurrió un error al obtener la información del paquete seleccionado.";
                this.lanzarExcepcion(po_exception, vs_error_usuario);
            }
        }
        /// <summary>
        /// Evento que se encarga de asigar un paquete a un componente específico
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btn_asignarPaquete_Click(object sender, EventArgs e)
        {
            int compSeleccionado;
            //Se obtiene el componente al que se le va a agregar el paquete seleccionado
            compSeleccionado = Convert.ToInt32(lbx_componentesasociados.SelectedValue.ToString());

            try
            {
                cls_componente vo_componente = new cls_componente();
                vo_componente.pPK_componente = compSeleccionado;

                //Se recorre la lista de paquetes hasta encontrar el que se va a asignar
                for (int i = lbx_paquetes.Items.Count - 1; i >= 0; i--)
                {
                    if (lbx_paquetes.Items[i].Selected == true)
                    {
                        cls_paquete vo_paquete = new cls_paquete();
                        vo_paquete.pPK_Paquete = Convert.ToInt32(lbx_paquetes.Items[i].Value.ToString());
                        vo_paquete.pNombre = lbx_paquetes.Items[i].Text;

                        cls_componentePaquete vo_componentePaquete = new cls_componentePaquete();

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

                        //Se recorre la lista de entregables-componentes en memoria
                        foreach (cls_entregableComponente entComp in cls_variablesSistema.vs_proyecto.pEntregableComponenteListaMemoria)
                        {
                            //Si el componente es el mismo que se va a asignar
                            if (entComp.pPK_Componente == vo_componente.pPK_componente)
                            {
                                if (cls_variablesSistema.vs_proyecto.pComponentePaqueteListaMemoria.Where(searchLinQ => searchLinQ.pPK_Entregable == entComp.pPK_Entregable &&
                                                                                                                        searchLinQ.pPK_Componente == vo_componente.pPK_componente &&
                                                                                                                        searchLinQ.pPK_Paquete == vo_paquete.pPK_Paquete).Count() == 0)
                                {
                                    //Se agrega el entregable al que pertenece el componentePaquete, puesto que se necesita al guardar el registro
                                    vo_componentePaquete.pEntregable = entComp.pEntregable;

                                    cls_variablesSistema.vs_proyecto.pPaqueteLista.Add(vo_paquete);
                                    cls_variablesSistema.vs_proyecto.pComponentePaqueteListaMemoria.Add(vo_componentePaquete);
                                }
                            }
                        }

                        lbx_paqasociados.Items.Add(lbx_paquetes.Items[i]);
                        ListItem li = lbx_paquetes.Items[i];
                        lbx_paquetes.Items.Remove(li);

                    }
                }

                //Si aún queda al menos un elemento, se habilita el botón de siguiente
                if (lbx_paqasociados.Items.Count > 0)
                {
                    btnNxt.Enabled = true;
                }
            }
            catch (Exception po_exception)
            {
                String vs_error_usuario = "Ocurrió un error al asignar el paquete al proyecto.";
                this.lanzarExcepcion(po_exception, vs_error_usuario);
            }
        }
        private void Validador()
        {
            try
            {
                cls_paquete vo_paquete = new cls_paquete();
                vo_paquete.pPK_Paquete = Convert.ToInt32(ddl_paquete.SelectedValue.ToString());

                //Se recorren las actividades del listBox hasta que se llegue a la que se encuentra seleccionada
                for (int i = lbx_actividades.Items.Count - 1; i >= 0; i--)
                {
                    if (lbx_actividades.Items[i].Selected == true)
                    {
                        cls_actividad vo_actividad = new cls_actividad();
                        vo_actividad.pPK_Actividad = Convert.ToInt32(lbx_actividades.Items[i].Value.ToString());
                        vo_actividad.pNombre = lbx_actividades.Items[i].Text.ToString();

                        cls_asignacionActividad vo_actividadAsignada = new cls_asignacionActividad();

                        if (lbx_usuariosAsociados.Items.Count > 0)
                        {
                            vo_actividadAsignada = (cls_asignacionActividad)((CSLA.web.App_Variables.cls_variablesSistema)this.Session[CSLA.web.App_Constantes.cls_constantes.VARIABLES]).vs_proyecto.pAsignacionActividadListaMemoria.Find(searchLinQ => searchLinQ.pPK_Actividad == vo_actividad.pPK_Actividad &&
                                                                                                                                                                searchLinQ.pPK_Paquete == vo_paquete.pPK_Paquete);
                            ((CSLA.web.App_Variables.cls_variablesSistema)this.Session[CSLA.web.App_Constantes.cls_constantes.VARIABLES]).obj = vo_actividadAsignada;

                            vo_actividadAsignada = crearObjeto();
                        }
                    }
                }
            }
            catch (Exception po_exception)
            {
                String vs_error_usuario = "Ocurrió un error mientras se asignaba la información del usuario a la actividad.";
                this.lanzarExcepcion(po_exception, vs_error_usuario);
            }
        }
        /// <summary>
        /// Evento encargado de eliminar un paquete asociado a un componente específico
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btn_removerPaquete_Click(object sender, EventArgs e)
        {
            int compSeleccionado;
            //Se obtiene el componente al que se le removerá el paquete
            compSeleccionado = Convert.ToInt32(lbx_componentesasociados.SelectedValue.ToString());

            cls_componente vo_componente = new cls_componente();
            vo_componente.pPK_componente = compSeleccionado;

            try
            {
                //Se recorre la lista de paquetes asociados
                for (int i = lbx_paqasociados.Items.Count - 1; i >= 0; i--)
                {
                    if (lbx_paqasociados.Items[i].Selected == true)
                    {
                        cls_paquete vo_paquete = new cls_paquete();
                        vo_paquete.pPK_Paquete = Convert.ToInt32(lbx_paqasociados.Items[i].Value.ToString());
                        vo_paquete.pNombre = lbx_paqasociados.Items[i].Text;

                        cls_componentePaquete vo_componentePaquete = new cls_componentePaquete();

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

                        //Se recorre la lista
                        foreach (cls_entregableComponente entComp in cls_variablesSistema.vs_proyecto.pEntregableComponenteListaMemoria)
                        {

                            if (cls_variablesSistema.vs_proyecto.pComponentePaqueteListaMemoria.Where(searchLinQ => searchLinQ.pPK_Entregable == entComp.pPK_Entregable &&
                                                                                                                    searchLinQ.pPK_Componente == vo_componente.pPK_componente &&
                                                                                                                    searchLinQ.pPK_Paquete == vo_paquete.pPK_Paquete).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_paqueteActividad paqAct in cls_variablesSistema.vs_proyecto.pPaqueteActividadListaMemoria)
                                {
                                    if (paqAct.pPK_Paquete == vo_paquete.pPK_Paquete)
                                    {
                                        cls_variablesSistema.vs_proyecto.pActividadLista.RemoveAll(searchLinQ => searchLinQ.pPK_Actividad == paqAct.pPK_Actividad);
                                    }
                                }

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

                                cls_variablesSistema.vs_proyecto.pPaqueteLista.RemoveAll(searchLinQ => searchLinQ.pPK_Paquete == vo_paquete.pPK_Paquete);
                                cls_variablesSistema.vs_proyecto.pComponentePaqueteListaMemoria.RemoveAll(searchLinQ => searchLinQ.pPK_Paquete == vo_paquete.pPK_Paquete);
                            }
                        }

                        lbx_paquetes.Items.Add(lbx_paqasociados.Items[i]);
                        ListItem li = lbx_paqasociados.Items[i];
                        lbx_paqasociados.Items.Remove(li);

                    }
                }

                //Si luego de la eliminación no se encuentran elementos en las listas, se deshabilita el botón de continuar
                if (lbx_paqasociados.Items.Count == 0 && cls_variablesSistema.vs_proyecto.pComponentePaqueteListaMemoria.Count == 0 && cls_variablesSistema.vs_proyecto.pComponentePaqueteListaBaseDatos.Count == 0)
                {
                    btnNxt.Enabled = false;
                }
                else
                {
                    btnNxt.Enabled = true;
                }
            }
            catch (Exception po_exception)
            {
                String vs_error_usuario = "Ocurrió un error al remover el paquete del proyecto.";
                this.lanzarExcepcion(po_exception, vs_error_usuario);
            }
        }
        /// <summary>
        /// Cuando se seleccionada un botón del grid.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void grd_listaPaquete_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                int vi_indice = Convert.ToInt32(e.CommandArgument);

                GridViewRow vu_fila = this.grd_listaPaquete.Rows[vi_indice];

                cls_paquete vo_paquete = new cls_paquete();

                vo_paquete.pPK_Paquete = Convert.ToInt32(vu_fila.Cells[0].Text.ToString());
                vo_paquete.pCodigo = vu_fila.Cells[1].Text.ToString();
                vo_paquete.pNombre = vu_fila.Cells[2].Text.ToString();
                vo_paquete.pDescripcion = vu_fila.Cells[3].Text.ToString();

                switch (e.CommandName.ToString())
                {
                    case cls_constantes.VER:
                        vo_paquete = cls_gestorPaquete.seleccionarPaquetes(vo_paquete);

                        cls_variablesSistema.obj = vo_paquete;

                        cls_variablesSistema.tipoEstado = e.CommandName;

                        this.cargarObjeto();

                        this.ard_principal.SelectedIndex = 1;
                        break;

                    case cls_constantes.EDITAR:
                        vo_paquete = cls_gestorPaquete.seleccionarPaquetes(vo_paquete);

                        cls_variablesSistema.obj = vo_paquete;

                        cls_variablesSistema.tipoEstado = e.CommandName;

                        this.cargarObjeto();

                        this.ard_principal.SelectedIndex = 1;
                        break;

                    case cls_constantes.ELIMINAR:
                        this.eliminarDatos(vo_paquete);
                        break;

                    default:
                        break;
                }

            }
            catch (Exception po_exception)
            {
                String vs_error_usuario = "Ocurrió un error al intentar acceder a la información del registro.";
                this.lanzarExcepcion(po_exception, vs_error_usuario);
            }
        }
        /// <summary>
        /// Método que permite seleccionar  
        /// la lista de paquetes provenientes de 
        /// la asignación de actividades sobre un proyecto
        /// </summary>
        /// <returns>poEstado valor del resultado de la ejecución de la sentencia</returns>
        public static List<cls_paquete> listarPaquetesAsignacion(int pi_proyecto)
        {
            List<cls_paquete> vo_lista = null;
            cls_paquete vo_paquete = null;

            try
            {
                String vs_comando = "PA_estd_paquetesAsignacionActSelect";
                cls_parameter[] vu_parametros = { new cls_parameter("@paramProyecto", pi_proyecto)
                                                };

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

                vo_lista = new List<cls_paquete>();

                for (int i = 0; i < vu_dataSet.Tables[0].Rows.Count; i++)
                {
                    vo_paquete = new cls_paquete();

                    vo_paquete.pPK_Paquete = Convert.ToInt32(vu_dataSet.Tables[0].Rows[i]["PK_paquete"].ToString());

                    vo_paquete.pNombre = vu_dataSet.Tables[0].Rows[i]["nombrePaquete"].ToString();

                    vo_lista.Add(vo_paquete);
                }

                return vo_lista;
            }
            catch (Exception po_exception)
            {
                throw new Exception("Ocurrió un error al obtener la lista de paquetes.", po_exception);
            }
        }
Example #28
0
        /// <summary>
        /// Método que elimina un paquete
        /// </summary>
        /// <param name="po_paquete">Paquete a eliminar</param>
        private void eliminarDatos(cls_paquete po_paquete)
        {
            try
            {
                po_paquete.pUsuarioTransaccion = ((cls_usuario)Session["cls_usuario"]).pPK_usuario;

                cls_gestorPaquete.deletePaquete(po_paquete);

                this.llenarGridView();

                this.upd_Principal.Update();
            }
            catch (Exception po_exception)
            {
                throw new Exception("Ocurrió un error eliminando el paquete.", po_exception);
            }
        }