TFS_ANTIGUO/AYA.FROPI/FOPI/webforms/SEP/wfrLiderProyecto.aspx.cs
Administrador 50700fd78b Solución FROPI
git-tfs-id: [http://192.168.1.10:8080/tfs/AyA]$/SINORT;C491
2019-05-27 14:46:35 +00:00

792 lines
No EOL
29 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*===========================================================================================================================
* Instituto Costarricense de Acueductos y Alcantarillados. - 2015
* Formularios para Proyectos de Inversión
* Nombre de la Pantalla: wfrIndicadorProyecto.aspx
*
* Explicación de los contenidos del archivo
*===========================================================================================================================
* HISTORIAL
*
* PERSONA DIA MES - AÑO DESCRIPCIÓN
* Pamela Quesada Calderón 30 01 - 2017 Se inicia con el diseño de la pagina
* Pamela Quesada Calderón 31 01 - 2017 Se termina con el diseño y funcionamiento preliminar de la pagina
* CGC …………………………………………………………
* …………………………………………………………
*===========================================================================================================================
* Derechos Reservados (C) 2016 AyA.
* ESTE CÓDIGO ES PROVEÍDO “TAL CUAL ES” SIN GARANTÍA ALGUNA
* DE NINGÚN TIPO, SEA IMPLICITA O EXPLICITA.
* NO SE PERMITE SU REPRODUCCIÓN PARCIAL O TOTAL, NI SU COMERCIALIZACIÓN
*===========================================================================================================================
*/
using AyABL;
using AyABL.ADM;
using AyABL.AGP;
using AyABL.AUT.Autenticacion;
using AyABL.RCS;
using AyABL.SEG;
using AyABL.SEP;
using AyADAL;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class webforms_SEP_wfrLiderProyecto : General
{
#region Inicializar Formulario (R0)
override protected void OnInit(EventArgs e) //M0
{
try
{
base.OnInit(e);
InicializarFormulario();
}
catch (Exception ex)
{
MensajeError("Error en R0M0", ex);
}
}
private void InicializarFormulario() //M1
{
try
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
construirGridView();
construirGridProyectosUsuario();
Javascript.CheckAllGridViewItems(Page);
cuwBusquedaList.Buscar += new _controlesusuario_Estandar_cuwBusquedaList.SearchEvent(Buscar);
}
catch (Exception ex)
{
MensajeError("Error en R0M1", ex);
}
}
#endregion
#region Variables (R1)
GridView grvListaUsuariosTemp, grvProyectosUsuarioTemp;
UsuarioBL objUsuarioBL;
LiderProyectoBL objLiderProyectoBL;
ProyectoBL objProyectoBL;
RegionBL objRegionBL;
ArrayList arlCondicionesBuscador = new ArrayList();
DataSet dsProyectosUsuarios;
#endregion
#region Eventos Formulario (R2)
protected void Page_Load(object sender, EventArgs e) //M0
{
try
{
if ((!IsPostBack) && (Session.Count > 0))
{
llenarGridView(true);
mostrarFilaTabla(1);
llenarDdlRegion();
llenarddlProyectos();
ComandosxMenu();
}
}
catch (Exception ex)
{
MensajeError("Error en R2M0", ex);
}
}
#endregion
#region Eventos Controles Web (R3)
/// <summary>
/// Metodo que se utiliza para extraer información del registro de la base de datos y ser mostrado en el acordeon de Controles
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grvListaUsuarios_RowCommand(object sender, GridViewCommandEventArgs e) //M0
{
try
{
if (e.CommandName == "verProyectos")
{
int i = Convert.ToInt32(e.CommandArgument);
GridViewRow selectedRow = grvListaUsuarios.Rows[i];
int intPkUsuario = Convert.ToInt32(selectedRow.Cells[2].Text);
pkUser.Value = intPkUsuario.ToString();
ViewState["PkUsuario"] = intPkUsuario;
ViewState["MODO"] = "Modifica";
lblNombreUsuario.Text = selectedRow.Cells[4].Text;
mostrarFilaTabla(2);
//llenarGridViewProyectosUsuario(intPkUsuario);
llenarGridViewProyectosUsuario();
}
}
catch (Exception ex)
{
MensajeError("Error en R3M0", ex);
}
}
/// <summary>
/// Pagina el listado de usuarios del sistema
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grvListaUsuarios_PageIndexChanging(object sender, GridViewPageEventArgs e) //M1
{
try
{
grvListaUsuarios.PageIndex = e.NewPageIndex;
llenarGridView(true);
}
catch (Exception ex)
{
MensajeError("Error en R3M1", ex);
}
}
///<summary>
///Activar el botón de Refrescar
///</summary>
///<param name="sender"></param>
///<param name="e"></param>
protected void btnRefrescar_Click(object sender, System.Web.UI.ImageClickEventArgs e) //M2
{
try
{
llenarGridView(true);
}
catch (Exception ex)
{
MensajeError("Error en R3M2", ex);
}
}
protected void grvProyectosUsuario_RowCommand(object sender, GridViewCommandEventArgs e) //M3
{
try
{
if (e.CommandName == "eliminar")
{
//Extrae la fila seleccionada del GridView
int intIndice = Convert.ToInt32(e.CommandArgument);
GridViewRow selectedRow = grvProyectosUsuario.Rows[intIndice];
objLiderProyectoBL = new LiderProyectoBL();
objLiderProyectoBL.objLiderProyectoEL.Usuario = Convert.ToInt32(pkUser.Value);
objLiderProyectoBL.objLiderProyectoEL.PK = Convert.ToInt32(selectedRow.Cells[1].Text);
objLiderProyectoBL.objLiderProyectoEL.Proyecto = Convert.ToInt32(selectedRow.Cells[2].Text);
//Actualiza estado a eliminado en la tabla
objLiderProyectoBL.actualizaEstadoLiderProyecto();
llenarGridViewProyectosUsuario();
llenarddlProyectos();
mostrarFilaTabla(2);
}
}
catch (Exception ex)
{
MensajeError("Error en R3M3", ex);
}
}
protected void grvProyectosUsuario_PageIndexChanging(object sender, GridViewPageEventArgs e) //M4
{
try
{
grvProyectosUsuario.PageIndex = e.NewPageIndex;
llenarGridViewProyectosUsuario();
}
catch (Exception ex)
{
MensajeError("Error en R3M4", ex);
}
}
protected void btnRefrescarProyectos_Click(object sender, System.Web.UI.ImageClickEventArgs e) //M5
{
try
{
llenarGridViewProyectosUsuario();
}
catch (Exception ex)
{
MensajeError("Error en R3M5", ex);
}
}
/// <summary>
/// Activa el evento del botón Buscar (binoculares)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnBuscar_Click(object sender, System.Web.UI.ImageClickEventArgs e) //M6
{
try
{
llenarGridView(true);
}
catch (Exception ex)
{
MensajeError("Error en R3M6", ex);
}
}
protected void btnNuevo_Click(object sender, EventArgs e) //M7
{
try
{
llenarddlProyectos();
mostrarFilaTabla(3);
}
catch (Exception ex)
{
MensajeError("Error en R3M7", ex);
}
}
///<summary>
///Activa el metodo del boton Anterior, regresa a la primera fila de la tabla
///</summary>
///<param name="sender"></param>
///<param name="e"></param>
protected void btnAnterior_Click(object sender, EventArgs e) //M8
{
try
{
llenarGridView(true);
divDatosSuperiores.Visible = true;
divDatosMedios.Visible = false;
divDatosInferiores.Visible = false;
btnAnterior.Visible = false;
btnNuevo.Visible = false;
}
catch (Exception ex)
{
MensajeError("Error en R3M8", ex);
}
}
/// <summary>
/// Activa el evento del boton guardar.1
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAsignar_Click(object sender, EventArgs e) //M9
{
try
{
if (ddlProyectos.SelectedIndex > 0)
{
if (GuardarDatos())
{
llenarGridViewProyectosUsuario();
llenarddlProyectos();
mostrarFilaTabla(2);
MensajeInformativo("El registro fue almacenado exitosamente");
}
else
{
MensajeError("El registro no fue almacenado, verifique", null);
}
}
else
{
MensajeError("Debe seleccionar una opción.", null);
}
}
catch (Exception ex)
{
MensajeError("Error en R3M9", ex);
}
}
protected void ddlRegion_SelectedIndexChanged(object sender, EventArgs e)
{
llenarddlProyectos();
}
protected void ddlRegionGrid_SelectedIndexChanged(object sender, EventArgs e)
{
llenarGridViewProyectosUsuario();
}
#endregion
#region Metodos Personalizados (R4)
/// <summary>
/// Oculta las filas que lo requieran
/// </summary>
/// <param name="p_intFila"></param>
private void mostrarFilaTabla(int p_intFila) //M0
{
try
{
switch (p_intFila)
{
case 1:
llenarGridView(true);
divDatosSuperiores.Visible = true;
divDatosMedios.Visible = false;
divDatosInferiores.Visible = false;
btnNuevo.Visible = false;
break;
case 2:
btnAnterior.Visible = true;
btnNuevo.Visible = true;
btnAsignar.Visible = false;
divDatosSuperiores.Visible = false;
divDatosMedios.Visible = true;
divDatosInferiores.Visible = false;
break;
case 3:
btnAnterior.Visible = true;
btnAsignar.Visible = true;
divDatosSuperiores.Visible = false;
divDatosMedios.Visible = true;
divDatosInferiores.Visible = true;
break;
}
}
catch (Exception ex)
{
MensajeError("Error en R4M0", ex);
}
}
/// <summary>
/// Metodo que se utiliza para contruir el Grid al inicio de la pantalla
/// </summary>
private void construirGridView() //M1
{
try
{
grvListaUsuariosTemp = (GridView)divDatosSuperiores.FindControl("grvListaUsuarios");
GridViewBoundField bdfPkUsuario = new GridViewBoundField("PKUSUARIO", "PK", false, false, false);
GridViewBoundField bdfLoginUsuario = new GridViewBoundField("LOGINUSUARIO", "LOGIN", true, false, true);
GridViewBoundField bdfNombreCompleto = new GridViewBoundField("NOMBREUSUARIO", "NOMBRE", true, false, true);
GridViewBoundField bdfCedula = new GridViewBoundField("CEDULAUSUARIO", "CEDULA", true, false, true);
GridViewBoundField bdfCorreo = new GridViewBoundField("CORREOUSUARIO", "CORREO", true, false, true);
GridViewBoundField bdfDependencia = new GridViewBoundField("NOMBREDEPENDENCIA", "DEPENDENCIA", true, false, true);
GridViewBoundField bdfRol = new GridViewBoundField("NOMBREROL", "ROL", true, false, true);
GridViewBoundField bdfActivoUsuario = new GridViewBoundField("ACTIVOUSUARIO", "ACTIVO", true, "Si", "No", true);
grvListaUsuariosTemp.Columns.Add(bdfPkUsuario);
grvListaUsuariosTemp.Columns.Add(bdfLoginUsuario);
grvListaUsuariosTemp.Columns.Add(bdfNombreCompleto);
grvListaUsuariosTemp.Columns.Add(bdfCedula);
grvListaUsuariosTemp.Columns.Add(bdfCorreo);
grvListaUsuariosTemp.Columns.Add(bdfDependencia);
grvListaUsuariosTemp.Columns.Add(bdfRol);
grvListaUsuariosTemp.Columns.Add(bdfActivoUsuario);
grvListaUsuariosTemp.Columns[0].ItemStyle.Width = 25;
grvListaUsuariosTemp.Columns[1].ItemStyle.Width = 25;
cuwBusquedaList.LlenarCHKLBusqueda(grvListaUsuariosTemp);
}
catch (Exception ex)
{
MensajeError("Error en R4M1", ex);
}
}
/// <summary>
/// Metodo que se encarga de agregar el filtro de busqueda seleccionado por el usuario
/// </summary>
/// <returns></returns>
private void condicionesBusqueda() //M2
{
objUsuarioBL = new UsuarioBL();
CondicionDAL condicion;
DateTime dteFechaInicio = new DateTime();
DateTime dteFechaFin = new DateTime();
ListItem li = new ListItem();
string p_parametros;
p_parametros = this.cuwBusquedaList.getValorBusqueda();
try
{
if (p_parametros != "")
{
//aqui se construye el listItem con los datos que vienen del control en formato {valor : texto , valor : texto}
char[] separadorTuplas = { ',' };
char[] separadorValores = { ':' };
string[] arrayTupla = p_parametros.Split(separadorTuplas);
for (int i = 0; i <= (arrayTupla.Length - 1); i++)
{
if (arrayTupla[i].ToString() != "")
{
string[] arrayValores = arrayTupla[i].ToString().Split(separadorValores);
li = new ListItem(arrayValores[1], arrayValores[0]);
if (li.Value.Contains("FECHA") && li.Text != string.Empty)
{
if (li.Value.Contains("INICIO"))
{
dteFechaInicio = Convert.ToDateTime(li.Text.ToString());
}
if (li.Value.Contains("FIN"))
{
dteFechaFin = Convert.ToDateTime(li.Text.ToString());
if (dteFechaFin != null || dteFechaInicio != null)
if (dteFechaInicio < dteFechaFin || dteFechaFin == dteFechaInicio)
{
objUsuarioBL = new UsuarioBL();
arlCondicionesBuscador = objUsuarioBL.buscarPorFechas(Tablas.usuario, dteFechaInicio, dteFechaFin, operadorLogico.AND);
}
else
MensajeInformativo("Verifique que la Fecha de Inicio sea menor que la Fecha Final" + "M2");
else
MensajeInformativo("Verifique que los campos de las fechas no estén vacíos" + "M2");
}
}
else
{
if (li.Value.Contains("booleano") && li.Text != "2")
{
condicion = new CondicionDAL();
char[] separadorColumna = { '|' };
string[] strColumna = li.Value.Split(separadorColumna);
condicion.valorIzquierdo = strColumna[1].ToString();
condicion.operadorGeneral = operadorGeneral.EQUAL;
condicion.operadorLogico = operadorLogico.AND;
condicion.valorDerecho = li.Text;
arlCondicionesBuscador.Add(condicion);
}
else
{
if (li.Text != string.Empty && !li.Value.Contains("booleano"))
{
condicion = new CondicionDAL();
condicion.valorIzquierdo = li.Value;
condicion.operadorGeneral = operadorGeneral.LIKEALL;
condicion.operadorLogico = operadorLogico.AND;
condicion.valorDerecho = "%" + li.Text + "%";
arlCondicionesBuscador.Add(condicion);
}
}
}
}
}
}
}
catch (Exception ex)
{
MensajeError("Error en R4M2", ex);
}
}
/// <summary>
/// Metodo que se utiliza con el buscador de la parte superior de la pantalla, y hace que se despliegue la información de acuerdo
/// a lo solicitado
/// </summary>|
private void Buscar() //M3
{
try
{
llenarGridView(true);
}
catch (Exception ex)
{
MensajeError("Error en R4M3", ex);
}
}
/// <summary>
/// Constrye el Grid de los usuarios en el active
/// </summary>
private void construirGridProyectosUsuario() //M4
{
try
{
grvProyectosUsuarioTemp = (GridView)divDatosMedios.FindControl("grvProyectosUsuario");
GridViewBoundField bdfPkt = new GridViewBoundField("PKLIDERPROYECTO", "PKT", false, false, false);
GridViewBoundField bdfPk = new GridViewBoundField("PKPROYECTO", "PK", false, false, false);
GridViewBoundField bdfNombre = new GridViewBoundField("NOMBREPROYECTO", "NOMBRE PROYECTO", false, false, true);
GridViewBoundField bdfEncargado = new GridViewBoundField("ENCARGADOINFORMACIONGENERAL", "ENCARGADO DEL PROYECTO", false, false, true);
grvProyectosUsuarioTemp.Columns.Add(bdfPkt);
grvProyectosUsuarioTemp.Columns.Add(bdfPk);
grvProyectosUsuarioTemp.Columns.Add(bdfNombre);
grvProyectosUsuarioTemp.Columns.Add(bdfEncargado);
grvProyectosUsuarioTemp.Columns[0].ItemStyle.Width = 25;
}
catch (Exception ex)
{
MensajeError("Error en R4M4", ex);
}
}
/// <summary>
/// Metodo que se utiliza para el despliegue de los botones
/// </summary>
private void ComandosxMenu() //M5
{
try
{
DataSet dsComandos = getComandos();
if (dsComandos != null)
{
foreach (DataRow drTemp in dsComandos.Tables[0].Rows)
{
switch (drTemp["NOMBRECOMANDO"].ToString().ToUpper())
{
case "NUEVO":
//btnNuevo.Visible = true;
break;
case "MODIFICA":
//Inicio de variable tipo VIEWSTATE
ViewState["PUEDEMODIFICAR"] = true;
btnAsignar.Visible = true;
break;
}
}
}
}
catch (Exception ex)
{
MensajeError("Error en R4M5", ex);
}
}
#endregion
#region Metodos Controles a Datos (R5)
/// <summary>
/// guarda y modifica registros en la tabla.
/// </summary>
/// <returns></returns>
private bool GuardarDatos() //M0
{
bool blnEjecutado = false;
try
{
string strModo = ViewState["MODO"].ToString();
objLiderProyectoBL = new LiderProyectoBL();
objLiderProyectoBL.objLiderProyectoEL.Usuario = Convert.ToInt32(pkUser.Value);
objLiderProyectoBL.objLiderProyectoEL.Proyecto = Int32.Parse(ddlProyectos.SelectedValue);
//if (strModo == "Nuevo")
//{
if (objLiderProyectoBL.insertarLiderProyecto() > 0)
{
blnEjecutado = true;
GuardarEventoBitacora(
Session["LOGIN"].ToString(),
AccionBitacora.INSERT.ToString(),
MensajesBitacora.IngresarRegistro + ": Se ha ingresado el registro " + pkUser.Value + ", " + ddlProyectos.SelectedValue,
"wfrLiderProyecto.aspx");
}
}
catch (Exception ex)
{
blnEjecutado = false;
throw ex;
}
return blnEjecutado;
}
#endregion
#region Metodos Datos a Controles (R6)
/// <summary>
/// Carga el grid principal
/// </summary>
/// <param name="p_Llenar"></param>
private void llenarGridView(bool p_Llenar) //M0
{
try
{
if (!IsPostBack || p_Llenar)
{
condicionesBusqueda();
objUsuarioBL = new UsuarioBL();
objUsuarioBL.objUsuarioEL.PK = 0;
//Agregar el arlCondicionesFiltroBusqueda
DataSet dsUsuarios = objUsuarioBL.getListaUsuarios(arlCondicionesBuscador);//getListaUsuariosRol(arlCondicionesBuscador, 2); //2 indica Lider de Proyecto
if (dsUsuarios.Tables.Count != 0)
{
for (int i = 0; i < dsUsuarios.Tables[0].Rows.Count; i++)
{
if (!dsUsuarios.Tables[0].Rows[i]["NOMBREROL"].ToString().Equals("Líder de Proyecto") || !bool.Parse(dsUsuarios.Tables[0].Rows[i]["ACTIVOUSUARIO"].ToString()))
dsUsuarios.Tables[0].Rows[i].Delete();
}
}
General.detalleGridView(dsUsuarios, grvListaUsuariosTemp, lblTotalDatos);
}
}
catch (Exception ex)
{
MensajeError("Error en R6M0", ex);
}
}
/// <summary>
/// Carga el grid de Proyectos del Usuario
/// </summary>
/// <param name="p_Llenar"></param>
private void llenarGridViewProyectosUsuario() //M1
{
try
{
objLiderProyectoBL = new LiderProyectoBL();
objLiderProyectoBL.objLiderProyectoEL.PK = 0;
objLiderProyectoBL.objLiderProyectoEL.Usuario = Int32.Parse(ViewState["PkUsuario"].ToString());
objLiderProyectoBL.objLiderProyectoEL.Region = 0;
if (ddlRegionGrid.SelectedIndex > 0)
objLiderProyectoBL.objLiderProyectoEL.Region = Int32.Parse(ddlRegionGrid.SelectedValue);
dsProyectosUsuarios = objLiderProyectoBL.getLiderProyectos();
General.detalleGridView(dsProyectosUsuarios, grvProyectosUsuarioTemp, lblTotalDatosProyectosUsuario);
}
catch (Exception ex)
{
MensajeError("Error en R6M1", ex);
}
}
/// <summary>
/// Llena el dropdownlist de Roles según la aplicación
/// </summary>
private void llenarddlProyectos() //M2
{
try
{
//Limpia el control
ddlProyectos.Items.Clear();
//Instancia el objeto
objProyectoBL = new ProyectoBL();
//Carga la información en un dataset
objProyectoBL.objProyectoEL.PK = 0;
objProyectoBL.objProyectoEL.ASTATE = true;
DataSet dsProyectos = objProyectoBL.getProyectosParaAsignar(Convert.ToInt32(ddlRegion.SelectedValue));
objLiderProyectoBL = new LiderProyectoBL();
objLiderProyectoBL.objLiderProyectoEL.PK = 0;
dsProyectosUsuarios = objLiderProyectoBL.getLiderProyectos();
if (dsProyectosUsuarios.Tables.Count != 0)
{
if (dsProyectos.Tables.Count != 0)
{
for (int i = 0; i < dsProyectosUsuarios.Tables[0].Rows.Count; i++)
{
for (int j = 0; j < dsProyectos.Tables[0].Rows.Count; j++)
{
if (dsProyectosUsuarios.Tables[0].Rows[i]["PKPROYECTO"].ToString().Equals(dsProyectos.Tables[0].Rows[j]["PKPROYECTO"].ToString()))
dsProyectos.Tables[0].Rows[j].Delete();
}
}
}
}
if (dsProyectos.Tables.Count != 0)
{
if (dsProyectos.Tables[0].Rows.Count != 0)
{
ddlProyectos.DataSource = dsProyectos;
ddlProyectos.DataTextField = dsProyectos.Tables[0].Columns["NOMBREPROYECTO"].ColumnName;
ddlProyectos.DataValueField = dsProyectos.Tables[0].Columns["PKPROYECTO"].ColumnName;
ddlProyectos.DataBind();
ddlProyectos.Items.Insert(0, new ListItem("----- Seleccione un Proyecto -----", "-1"));
}
}
}
catch (Exception ex)
{
MensajeError("Error en R6M2", ex);
}
}
/// <summary>
/// Carga el ddl de Regiones
/// </summary>
private void llenarDdlRegion() //M3
{
try
{
//Limpia el control
ddlRegion.Items.Clear();
//---------
ddlRegionGrid.Items.Clear();
//Instancia el objeto
objRegionBL = new RegionBL();
objRegionBL.objRegionEL.PK = 0;
objRegionBL.objRegionEL.Padre = 1;
objRegionBL.objRegionEL.ASTATE = true;
DataSet dsRegion = objRegionBL.getRegion();
if (dsRegion.Tables[0].Rows.Count != 0)
{
ddlRegion.DataSource = dsRegion;
ddlRegion.DataTextField = dsRegion.Tables[0].Columns["NOMBREREGION"].ColumnName;
ddlRegion.DataValueField = dsRegion.Tables[0].Columns["PKREGION"].ColumnName;
ddlRegion.DataBind();
ddlRegion.Items.Insert(0, new ListItem("Seleccione una Región", "-1"));
//--------
ddlRegionGrid.DataSource = dsRegion;
ddlRegionGrid.DataTextField = dsRegion.Tables[0].Columns["NOMBREREGION"].ColumnName;
ddlRegionGrid.DataValueField = dsRegion.Tables[0].Columns["PKREGION"].ColumnName;
ddlRegionGrid.DataBind();
ddlRegionGrid.Items.Insert(0, new ListItem("Seleccione una Región", "-1"));
}
}
catch (Exception ex)
{
MensajeError("Error en R6M3", ex);
}
}
#endregion
}