/*=========================================================================================================================== * Instituto Costarricense de Acueductos y Alcantarillados. - 2015 * Administración de la Seguridad * Nombre de la Pantalla: frwUsuario.aspx * * Explicación de los contenidos del archivo *=========================================================================================================================== * HISTORIAL * * PERSONA DIA – MES - AÑO DESCRIPCIÓN * Esteban Gutierrez Rapso 20 – 04 - 2015 Se inicia con el diseño de la pagina * ………………………………………………………… * ………………………………………………………… *=========================================================================================================================== * Derechos Reservados (C) 2015 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 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; using System.Web.UI.HtmlControls; using AyABL; using AyABL.AUT.Autenticacion; using AyABL.APL; using AyADAL; using System.Configuration; using AyABL.RCS; using AyABL.Usuario; using System.IO; using System.Text; public partial class Forms_Usuarios_frwUsuario : 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(); construirGridUsuariosAD(); Javascript.CheckAllGridViewItems(Page); cuwBusquedaList.Buscar += new _controlesusuario_Estandar_cuwBusquedaList.SearchEvent(Buscar); } catch (Exception ex) { MensajeError("Error en R0M1", ex); } } #endregion #region Variables (R1) GridView grvListaDatosUsuariosTemp, grvUsuariosADTemp; UsuarioBL objUsuarioBL; AutenticacionBL objAutenticacionBL; UsuarioRolBL objUsuarioRolBL; RolBL objRolBL; ArrayList arlCondicionesFiltroBusqueda = new ArrayList(); oficinaayaBL objDependenciaBL; DataSet dsUsuarios; #endregion #region Eventos Formulario (R2) protected void Page_Load(object sender, EventArgs e) //M0 { try { //Este codigo es para obligar al boton a hacer un postback completo y no uno parcial que se da cuando el boton esta dentro del updatepanel ScriptManager.GetCurrent(Page).RegisterPostBackControl(btnImprimir); if ((!IsPostBack) && (Session.Count > 0)) { llenarGridView(true); mostrarFilaTabla(1); llenarDDLRol(); llenarDDLtipoInspeccion(); llenarDDLdependencia(); ComandosxMenu(); } } catch (Exception ex) { MensajeError("Error en R2M0", ex); } } #endregion #region Eventos Controles Web (R3) /// /// Metodo que se utiliza para extraer información del registro de la base de datos y ser mostrado en el acordeon de Controles /// /// /// protected void grvListaDatosUsuarios_RowCommand(object sender, GridViewCommandEventArgs e) //M0 { try { if (e.CommandName == "editar") { int i = Convert.ToInt32(e.CommandArgument); GridViewRow selectedRow = grvListaDatosUsuarios.Rows[i]; int intPkUsuario = Convert.ToInt32(selectedRow.Cells[2].Text); ViewState["PkUsuario"] = intPkUsuario; ViewState["MODO"] = "Modifica"; mostrarFilaTabla(3); mostrarDatos(intPkUsuario); llenarGridViewDependencias(selectedRow.Cells[4].Text); } } catch (Exception ex) { MensajeError("Error en R3M0", ex); } } /// /// Metodo que se utiliza para la paginación del Grid en caso de que el usuario desee ver mas registros /// /// /// protected void grvListaRoles_PageIndexChanging(object sender, GridViewPageEventArgs e) //M1 { try { // grvListaRoles.PageIndex = e.NewPageIndex; llenarGridView(true); } catch (Exception ex) { MensajeError("Error en R3M1", ex); } } /// /// Metodo que se utiliza para borrar el rol del listado de roles /// /// /// protected void grvListaRoles_RowCommand(object sender, GridViewCommandEventArgs e) //M2 { //try //{ // if (e.CommandName == "borrar") // { // int i = Convert.ToInt32(e.CommandArgument); // //GridViewRow selectedRow = grvListaRoles.Rows[i]; // int intPkRole = Convert.ToInt32(selectedRow.Cells[1].Text); // if (removerRole(intPkRole)) // llenarGridRol(Int32.Parse(ViewState["PkUsuario"].ToString())); // GuardarEventoBitacora( // Session["LOGIN"].ToString(), // AccionBitacora.INSERT.ToString(), // MensajesBitacora.EliminarRegistro + ": Se ha eliminado el rol " + selectedRow.Cells[1].Text, // "frwUsuario.aspx", // Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) // ); // } //} //catch (Exception ex) //{ // MensajeError("Error en R3M2", ex); //} } /// /// Metodo que se utiliza para la paginación del Grid en caso de que el usuario desee ver mas registros /// /// /// protected void grvListaDatosUsuarios_PageIndexChanging(object sender, GridViewPageEventArgs e) //M3 { try { grvListaDatosUsuarios.PageIndex = e.NewPageIndex; llenarGridView(true); } catch (Exception ex) { MensajeError("Error en R3M3", ex); } } /// ///Activar el botón de Refrescar /// /// /// protected void btnRefrescar_Click(object sender, System.Web.UI.ImageClickEventArgs e) //M4 { try { llenarGridView(true); } catch (Exception ex) { MensajeError("Error en R3M4" + MensajesAplicacion.RefrescarFallido.ToString(), ex); } } /// /// Extrae información del registro de la base de datos y ser mostrado en el acordeon de Controles /// /// /// protected void grvUsuariosAD_RowCommand(object sender, GridViewCommandEventArgs e) //M5 { try { if (e.CommandName == "editar") { //Extrae la fila seleccionada del GridView int intIndice = Convert.ToInt32(e.CommandArgument); GridViewRow selectedRow = grvUsuariosAD.Rows[intIndice]; txtLoginAD.Text = selectedRow.Cells[1].Text; txtFuncionario.Text = HttpUtility.HtmlDecode(selectedRow.Cells[2].Text); txtCedulaAD.Text = selectedRow.Cells[3].Text; txtCorreo.Text = this.txtLoginAD.Text + "@aya.go.cr"; txtLoginAP.Text = selectedRow.Cells[1].Text; if (selectedRow.Cells[3].Text.Trim().Length > 0) { //cargar los datos aqui condicionesBusqueda(); objUsuarioBL = new UsuarioBL(); if (selectedRow.Cells[3].Text.Length == 10) objUsuarioBL.objUsuarioEL.Empleado = selectedRow.Cells[3].Text; else objUsuarioBL.objUsuarioEL.Empleado = "0" + selectedRow.Cells[3].Text; DataSet dsUsuarios = objUsuarioBL.dsPersonal(); if (dsUsuarios.Tables[0].Rows.Count != 0) { txtAplicacion.Text = "SISTEMA DE DISPONIBILIDAD DE SERVICIO DE AGUA Y ALCANTARILLADO SANITARIO"; //txtDependencia.Text = dsUsuarios.Tables[0].Rows[0]["DEPENDENCIA"].ToString(); txtEmpleado.Text = dsUsuarios.Tables[0].Rows[0]["NBR_EMPLEADO"].ToString() + " " + dsUsuarios.Tables[0].Rows[0]["APE_1"].ToString() + " " + dsUsuarios.Tables[0].Rows[0]["APE_2"].ToString(); txtCedula.Text = dsUsuarios.Tables[0].Rows[0]["CEDULA"].ToString(); if (dsUsuarios.Tables[0].Rows[0]["EDO_EMPLEADO"].ToString() == "A") chkActivo.Checked = true; else chkActivo.Checked = false; } else MensajeAlerta("Este empleado no se encuentra incluido en la base de datos de STARH"); objUsuarioBL = new UsuarioBL(); objUsuarioBL.objUsuarioEL.USUARIO = this.txtLoginAD.Text.Trim(); //DataSet dsAcceso = objUsuarioBL.dsAccesoUsuario(objUsuarioBL.objUsuarioEL); //if (dsAcceso.Tables[0].Rows.Count > 0) //{ // MensajeAlerta("Este empleado ya se encuentra incluido en esta aplicación."); //} //else DataSet dsAcceso = objUsuarioBL.dsAccesoUsuario(objUsuarioBL.objUsuarioEL); if (dsAcceso.Tables[0].Rows.Count > 0) { //MensajeInformativo("El usuario solicitado no existe en el directorio activo o se encuentra deshabilitado."); //ddlRegion.SelectedValue = dsAcceso.Tables[0].Rows[0]["FKDEPENDENCIAUSUARIOXDEPENDENCIA"].ToString(); ddlDependencia.SelectedValue = dsAcceso.Tables[0].Rows[0]["FKDEPENDENCIA"].ToString(); txtTelefonoCubiculo.Text = dsAcceso.Tables[0].Rows[0]["TELEFONOCUBICULOUSUARIOXDEPENDENCIA"].ToString(); chkDirector.Checked = bool.Parse(dsAcceso.Tables[0].Rows[0]["DIRECTORUSUARIOXDEPENDENCIA"].ToString()); chkJefatura.Checked = bool.Parse(dsAcceso.Tables[0].Rows[0]["JEFATURAUSUARIOXDEPENDENCIA"].ToString()); txtObservaciones.Text = dsAcceso.Tables[0].Rows[0]["OBSERVACIONESUSUARIOXDEPENDENCIA"].ToString(); ddlTipoInspeccion.Text = dsAcceso.Tables[0].Rows[0]["FKTIPOINSPECCION"].ToString(); lblRegion.Text = lblRegion.Text = "(Región: " + dsAcceso.Tables[0].Rows[0]["DESCRIPCIONREGION"].ToString() + ")"; } { mostrarFilaTabla(3); ddlRol.Focus(); llenarGridRol(-1); } } else { MensajeAlerta("Este empleado no presenta el número de cedula registrado en el Active Directory del AyA."); } } } catch (Exception ex) { MensajeError("Error en R3M5", ex); } } /// /// Metodo que se utiliza para la paginación del Grid en caso de que el usuario desee ver mas registros /// /// /// protected void grvUsuariosAD_PageIndexChanging(object sender, GridViewPageEventArgs e) //M6 { try { grvUsuariosAD.PageIndex = e.NewPageIndex; grvUsuariosAD.SelectedIndex = -1; llenarGrvUsuariosAD(txtDatos.Text); } catch (Exception ex) { MensajeError("Error en R3M6", ex); } } /// /// Activa el evento del botón Buscar (binoculares) /// /// /// protected void btnBuscar_Click(object sender, System.Web.UI.ImageClickEventArgs e) //M7 { try { llenarGridView(true); } catch(Exception ex) { MensajeError("Error en R3M7" + MensajesAplicacion.UsuarioInexistente.ToString(), ex); } } /// /// Activa el evento del boton Nuevo /// /// /// protected void btnNuevo_Click(object sender, EventArgs e) //M8 { try { limpiarCampos(); ViewState["MODO"] = "Nuevo"; mostrarFilaTabla(2); //Limpia el grid de Active Directory grvUsuariosAD.DataBind(); txtDatos.Focus(); } catch (Exception ex) { MensajeError("Error en R3M8" + MensajesAplicacion.GuardadoFallido.ToString(), ex); } } /// /// Metodo que activa el botón de Eliminar /// /// /// protected void btnActivar_Click(object sender, EventArgs e) //M9 { try { foreach (GridViewRow row in grvListaDatosUsuarios.Rows) { HtmlInputCheckBox chkTemp = (HtmlInputCheckBox)row.Controls[0].Controls[1]; if (chkTemp != null) { // si el registro esta marcado if (chkTemp.Checked) { int intPkEliminar = Convert.ToInt32(row.Cells[2].Text); ActivarDesactivar(intPkEliminar); MensajeInformativo(AyABL.BASESDEDATOS.ADS + "Interfaz: " + MensajesAplicacion.GuardadoExitoso.ToString()); } } } llenarGridView(true); } catch (Exception ex) { MensajeError("Error en R3M9", ex); } } /// /// Activa el evento del ddlApp para cargar el listado de roles de la aplicación seleccionada /// /// /// protected void ddlAplicacion_SelectedIndexChanged(object sender, EventArgs e) //M10 { try { llenarDDLRol(); } catch (Exception ex) { MensajeError("Error en R3M10", ex); } } /// ///Activa el metodo del boton Anterior, regresa a la primera fila de la tabla /// /// /// protected void btnAnterior_Click(object sender, EventArgs e) //M12 { try { llenarGridView(true); divDatosSuperiores.Visible = true; divDatosMedios.Visible = false; divDatosInferiores.Visible = false; limpiarCampos(); } catch (Exception ex) { MensajeError("Error en R3M12", ex); } } /// /// Buscar usuarios en el Active Directory. /// /// /// protected void btnBuscarAD_Click(object sender, EventArgs e) //M13 { try { llenarGrvUsuariosAD(txtDatos.Text); EjecutarScript("$('#MainContent_grvUsuariosAD > tbody:nth-child(1) > tr:nth-child(2) > td:nth-child(1) > input:nth-child(1)').attr('title', 'Nuevo');"); } catch (Exception ex) { MensajeError("Error en R3M13" + MensajesAplicacion.BusquedaFallido.ToString(), ex); } } /// /// Activa el evento del boton guardar.1 /// /// /// protected void btnGuardar_Click(object sender, EventArgs e) //M14 { try { { string strModo = ViewState["MODO"].ToString(); if (ddlDependencia.SelectedValue == "-1") { MensajeAlerta("Debe seleccionar la dependencia del usuario."); ddlDependencia.Focus(); } else { if (ddlRol.SelectedValue == "-1" ) { MensajeAlerta("Debe seleccionar el Rol del usuario."); ddlRol.Focus(); } else { int pkRegistro = GuardarDatos(); llenarGridView(true); mostrarFilaTabla(1); llenarDDLRol(); llenarDDLtipoInspeccion(); llenarDDLdependencia(); limpiarCampos(); MensajeInformativo(AyABL.BASESDEDATOS.ADS + "Interfaz: " + MensajesAplicacion.GuardadoExitoso.ToString()); } } } } catch (Exception ex) { MensajeError("Error en R3M14", ex); } } #endregion #region Metodos Personalizados (R4) /// /// Oculta las filas que lo requieran /// /// private void mostrarFilaTabla(int p_intFila) //M0 { try { divDatosSuperiores.Visible = false; divDatosMedios.Visible = false; divDatosInferiores.Visible = false; switch (p_intFila) { case 1: llenarGridView(true); divDatosSuperiores.Visible = true; break; case 2: llenarGridView(true); divDatosMedios.Visible = true; break; case 3: llenarGridView(true); divDatosInferiores.Visible = true; break; } } catch (Exception ex) { throw ex; } } /// /// Metodo que se utiliza para contruir el Grid al inicio de la pantalla /// private void construirGridView() //M1 { try { grvListaDatosUsuariosTemp = (GridView)tdLista.FindControl("grvListaDatosUsuarios"); GridViewBoundField bdfPkUsuario = new GridViewBoundField("PKUSUARIO", "PK", false, false, false); GridViewBoundField bdfFkEmpleado = new GridViewBoundField("FKEMPLEADO", "Cédula", true, false, true); GridViewBoundField bdfLoginUsuario = new GridViewBoundField("LOGINUSUARIO", "Login", true, false, true); GridViewBoundField bdfNombreCompleto = new GridViewBoundField("NOMBRECOMPLETO", "Nombre", true, false, true); //GridViewBoundField bdfNombreDependencia = new GridViewBoundField("DEPENDENCIA", "Dependencia", true, false, true); //GridViewBoundField bdfUbicacion = new GridViewBoundField("UBICACION", "Ubicación", true, false, true); GridViewBoundField bdfActivoUsuario = new GridViewBoundField("ACTIVOUSUARIO", "Activo", true, "Si", "No", true); grvListaDatosUsuariosTemp.Columns.Add(bdfPkUsuario); grvListaDatosUsuariosTemp.Columns.Add(bdfFkEmpleado); grvListaDatosUsuariosTemp.Columns.Add(bdfLoginUsuario); grvListaDatosUsuariosTemp.Columns.Add(bdfNombreCompleto); //grvListaDatosUsuariosTemp.Columns.Add(bdfNombreDependencia); //grvListaDatosUsuariosTemp.Columns.Add(bdfUbicacion); grvListaDatosUsuariosTemp.Columns.Add(bdfActivoUsuario); grvListaDatosUsuariosTemp.Columns[0].ItemStyle.Width = 25; grvListaDatosUsuariosTemp.Columns[0].HeaderStyle.HorizontalAlign = HorizontalAlign.Center; grvListaDatosUsuariosTemp.Columns[0].ItemStyle.HorizontalAlign = HorizontalAlign.Center; grvListaDatosUsuariosTemp.Columns[1].ItemStyle.Width = 25; //grvListaDatosUsuarios.PageSize = 5; cuwBusquedaList.LlenarCHKLBusqueda(grvListaDatosUsuariosTemp); } catch (Exception ex) { throw ex; } } /// /// Metodo que se encarga de agregar el filtro de busqueda seleccionado por el usuario /// /// //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(); // arlCondicionesFiltroBusqueda = objUsuarioBL.buscarPorFechas(Tablas.USUARIO, dteFechaInicio, dteFechaFin, operadorLogico.AND); // } // else // MensajeInformativo(AyABL.BASESDEDATOS.ADS + "Interfaz: " + "Verifique que la Fecha de Inicio sea menor que la Fecha Final" + "M2"); // else // MensajeInformativo(AyABL.BASESDEDATOS.ADS + "Interfaz: " + "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; // arlCondicionesFiltroBusqueda.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 + "%"; // arlCondicionesFiltroBusqueda.Add(condicion); // } // } // } // } // } // } // } // catch (Exception ex) // { // throw ex; // } //} 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()); dteFechaFin = DateTime.Now; } if (li.Value.Contains("FIN")) { dteFechaFin = Convert.ToDateTime(li.Text.ToString()); if (dteFechaFin != null || dteFechaInicio != null) if (dteFechaInicio < dteFechaFin || dteFechaFin == dteFechaInicio) { objUsuarioBL = new UsuarioBL(); arlCondicionesFiltroBusqueda = objUsuarioBL.buscarPorFechas(Tablas.BITACORA, dteFechaInicio, dteFechaFin, operadorLogico.AND, arlCondicionesFiltroBusqueda); } else MensajeInformativo(AyABL.BASESDEDATOS.ADS + "Interfaz: " + "Verifique que la Fecha de Inicio sea menor que la Fecha Final" + "M2"); else MensajeInformativo(AyABL.BASESDEDATOS.ADS + "Interfaz: " + "Verifique que los campos de las fechas no estén vacíos" + "M2"); } else { objUsuarioBL = new UsuarioBL(); arlCondicionesFiltroBusqueda = objUsuarioBL.buscarPorFechas(Tablas.BITACORA, dteFechaInicio, dteFechaFin, operadorLogico.AND, arlCondicionesFiltroBusqueda); } } 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.Trim(); arlCondicionesFiltroBusqueda.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.Trim() + "%"; arlCondicionesFiltroBusqueda.Add(condicion); } } } } } } } catch (Exception ex) { throw ex; } } /// /// 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 /// | private void Buscar() //M4 { try { llenarGridView(true); } catch (Exception ex) { throw ex; } } /// /// Constrye el Grid de los usuarios en el active /// private void construirGridUsuariosAD() //M5 { try { grvUsuariosADTemp = (GridView)tdDatosMedios.FindControl("grvUsuariosAD"); GridViewBoundField bdfLogin = new GridViewBoundField("Login", "LOGIN", false, false, true); GridViewBoundField bdfNombre = new GridViewBoundField("Nombre", "NOMBRE", false, false, true); GridViewBoundField bdfCedula = new GridViewBoundField("Cedula", "CEDULA", false, false, true); grvUsuariosADTemp.Columns.Add(bdfLogin); grvUsuariosADTemp.Columns.Add(bdfNombre); grvUsuariosADTemp.Columns.Add(bdfCedula); grvUsuariosADTemp.Columns[0].ItemStyle.Width = 45; grvUsuariosADTemp.Columns[1].ItemStyle.Width = 125; grvUsuariosADTemp.Columns[2].ItemStyle.Width = 325; } catch (Exception ex) { throw ex; } } /// /// Metodo que se utiliza para el despliegue de los botones /// private void ComandosxMenu() //M6 { 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; btnBuscarAD.Visible = true; btnActivar.Visible = true; btnGuardar.Visible = true; break; case "MODIFICA": //Inicio de variable tipo VIEWSTATE ViewState["PUEDEMODIFICAR"] = true; btnGuardar.Visible = true; break; } } } } catch (Exception ex) { throw ex; } } /// /// Metodo que se utiliza para remover el role asignado al usuario /// /// private bool removerRole(int p_intPkRole) //M7 { bool blnValorRetornado = false; try { objUsuarioRolBL = new UsuarioRolBL(); objUsuarioRolBL.objUsuarioRolEL.Rol = p_intPkRole; objUsuarioRolBL.objUsuarioRolEL.Usuario = Int32.Parse(ViewState["PkUsuario"].ToString()); objUsuarioRolBL.eliminarUsuarioRol(); blnValorRetornado = true; } catch (Exception ex) { throw ex; } return blnValorRetornado; } /// /// Imprime el contendo del gridview /// /// /// protected void Imprimir(object sender, EventArgs e) { try { condicionesBusqueda(); dsUsuarios = objUsuarioBL.dsListaUsuarios(arlCondicionesFiltroBusqueda); DataTable dt = dsUsuarios.Tables[0]; String FileName = "Reporte_Usuarios"; if (dt.Rows.Count > 0) { string filename = FileName + ".xls"; System.IO.StringWriter tw = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw); DataGrid dgGrid = new DataGrid(); dgGrid.DataSource = dt; dgGrid.DataBind(); //Get the HTML for the control. dgGrid.RenderControl(hw); //Write the HTML back to the browser. //Response.ContentType = application/vnd.ms-excel; Response.ContentType = "application/vnd.ms-excel"; Response.AppendHeader("Content-Disposition", "inline; filename=" + filename + ""); this.EnableViewState = false; Response.Write(tw.ToString()); Response.End(); } } catch (Exception ex) { throw ex; } } #endregion #region Metodos Controles a Datos (R5) /// /// guarda y modifica registros en la tabla. /// /// private int GuardarDatos() //M0 { int nValorRetornado = 0; int nValorRetornadoRol = 0; try { string strModo = ViewState["MODO"].ToString(); objUsuarioBL = new UsuarioBL(); objUsuarioBL.objUsuarioEL.USUARIO = txtLoginAP.Text.Trim(); objUsuarioBL.objUsuarioEL.Login = txtLoginAP.Text.Trim(); objUsuarioBL.objUsuarioEL.Activo = chkActivo.Checked; objUsuarioBL.objUsuarioEL.Empleado = txtCedula.Text; if ( ddlDependencia.SelectedValue != "-1") objUsuarioBL.objUsuarioEL.FKDEPENDENCIA = int.Parse(ddlDependencia.SelectedValue); objUsuarioBL.objUsuarioEL.TELEFONOCUBICULO = txtTelefonoCubiculo.Text; objUsuarioBL.objUsuarioEL.DIRECTOR = chkDirector.Checked; objUsuarioBL.objUsuarioEL.JEFATURA = chkJefatura.Checked; objUsuarioBL.objUsuarioEL.OBSERVACIONES = txtObservaciones.Text; //if (ddlTipoInspeccion.SelectedValue != "-1") objUsuarioBL.objUsuarioEL.FKTIPOINSPECCION = int.Parse(ddlTipoInspeccion.SelectedValue); objUsuarioRolBL = new UsuarioRolBL(); if (ddlRol.SelectedValue != "-1") { //ViewState["PkRol"] = Int32.Parse(ddlRol.SelectedValue); objUsuarioRolBL.objUsuarioRolEL.Rol = Int32.Parse(ddlRol.SelectedValue); } //verificamos el numero rol if (ViewState["PkUsuario"] == null) { UsuarioBL objUsuarioConsultaRolBL = new UsuarioBL(); objUsuarioConsultaRolBL.objUsuarioEL.PK = Int32.Parse(ViewState["PkUsuario"].ToString()); DataSet dsUsuario = objUsuarioBL.dsListaUsuarios(null); if (dsUsuario.Tables[0].Rows.Count > 0) { ViewState["PkRol"] = dsUsuario.Tables[0].Rows[0]["PKUSUARIOROL"].ToString(); } } if (strModo == "Nuevo") { nValorRetornado = objUsuarioBL.insertarUsuario(); if (int.Parse(ViewState["PkRol"].ToString()) > 0 ) nValorRetornadoRol = GuardarRol(nValorRetornado); else GuardarRol(Int32.Parse(ViewState["PkUsuario"].ToString())); if (nValorRetornado != 0 && nValorRetornadoRol != 0) GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.IngresarRegistro + ": Se ha ingresado el usuario " + txtLoginAP.Text.Trim(), "frwUsuario.aspx", Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); else MensajeAlerta("Se presento un problema al guardar el registro por favor intente de nuevo."); } else if (strModo == "Modifica" && bool.Parse(ViewState["PUEDEMODIFICAR"].ToString()) == true) { DataSet dsAcceso = objUsuarioBL.dsAccesoUsuario(objUsuarioBL.objUsuarioEL); if (dsAcceso.Tables[0].Rows.Count > 0) nValorRetornado = objUsuarioBL.moidificarUsuario(); else nValorRetornado = objUsuarioBL.insertarUsuario(); GuardarRol(Int32.Parse(ViewState["PkUsuario"].ToString())); GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.IngresarRegistro + ": Se ha modificado el usuario " + txtLoginAP.Text.Trim(), "frwUsuario.aspx", Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); } } catch (Exception ex) { throw ex; } return nValorRetornado; } /// /// Guarda el rol nuevo del usuario. /// /// private int GuardarRol(int p_pkUsuario) //M1 { int nValorRetornado = 0; try { string strModo = ViewState["MODO"].ToString(); objUsuarioRolBL = new UsuarioRolBL(); objUsuarioRolBL.objUsuarioRolEL.Rol = Int32.Parse(ddlRol.SelectedValue); objUsuarioRolBL.objUsuarioRolEL.Usuario = p_pkUsuario; if (strModo == "Nuevo" && ViewState["PkRol"] == null) { nValorRetornado = objUsuarioRolBL.insertarUsuarioRol(); } else if (strModo == "Modifica") { if (ViewState["PkRol"] != null) { objUsuarioRolBL.objUsuarioRolEL.PK = int.Parse(ViewState["PkRol"].ToString()); nValorRetornado = objUsuarioRolBL.actualizarUsuarioRol(objUsuarioRolBL.objUsuarioRolEL); } else nValorRetornado = objUsuarioRolBL.insertarUsuarioRol(); } return nValorRetornado; } catch (Exception ex) { throw ex; } } /// /// Activa o desactiva el usuario /// /// private bool ActivarDesactivar(int p_intPkEliminar) //M2 { bool blnValorRetornado = false; bool blnActivo = false; try { objUsuarioBL = new UsuarioBL(); objUsuarioBL.objUsuarioEL.PK = p_intPkEliminar; DataSet dsUsuarioDS = objUsuarioBL.listarUsuarios(null, false,null); //Verifica que el usuario se encuentre en la BD if (dsUsuarioDS.Tables[0].Rows.Count != 0) { //Si esta activado que lo desactive if (Convert.ToBoolean(dsUsuarioDS.Tables[0].Rows[0][Concepto.ACTIVO.ToString() + Tablas.USUARIO.ToString()])) blnActivo = false; //Si esta desactivado que lo active else blnActivo = true; objUsuarioBL.objUsuarioEL.Login = dsUsuarioDS.Tables[0].Rows[0][t_ads_usuario.LOGIN.ToString() + Tablas.USUARIO.ToString()].ToString(); objUsuarioBL.objUsuarioEL.Activo = blnActivo; objUsuarioBL.objUsuarioEL.Empleado = dsUsuarioDS.Tables[0].Rows[0][Constraints.FK.ToString() + Tablas.EMPLEADO.ToString()].ToString(); objUsuarioBL.activarInactivarUsuario(); } GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.ModificarRegistro + ": Se ha puesto el registro de la PK=" + p_intPkEliminar + " en " + blnActivo, "frwUsuario.aspx", Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); } catch (Exception ex) { throw ex; } return blnValorRetornado; } #endregion #region Metodos Datos a Controles (R6) /// /// Carga el grid principal /// /// private void llenarGridView(bool p_Llenar) //M0 { try { if (!IsPostBack || p_Llenar) { condicionesBusqueda(); dsUsuarios = objUsuarioBL.dsListaUsuarios(arlCondicionesFiltroBusqueda); General.detalleGridView(dsUsuarios, grvListaDatosUsuariosTemp, lblTotalDatos); } } catch (Exception ex) { throw ex; } } /// /// Carga el grid de las dependencias asociadas al usuario /// /// private void llenarGridViewDependencias(string strUsuario) //M0 { try { detalledependenciaxusuarioBL objDetalleDependenciaxUsuarioBL = new detalledependenciaxusuarioBL(); objDetalleDependenciaxUsuarioBL.objDetalledependenciaxusuarioEL.USUARIO = strUsuario; DataSet ds = objDetalleDependenciaxUsuarioBL.dsListaDetalledependenciaxusuario(); General.detalleGridView(ds, grvListaDependencias, lblTotalDatos); } catch (Exception ex) { throw ex; } } /// /// Muestra los datos del registro /// /// private void mostrarDatos(int p_intPkConsultar) //M1 { try { limpiarCampos(); objUsuarioBL = new UsuarioBL(); objUsuarioBL.objUsuarioEL.PK = p_intPkConsultar; DataSet dsUsuario = objUsuarioBL.dsListaUsuarios(null); objAutenticacionBL = new AutenticacionBL(); DataSet dsUsuariosAD = objAutenticacionBL.BuscarLoginUsuario(dsUsuario.Tables[0].Rows[0]["LOGINUSUARIO"].ToString(), "", ""); if (dsUsuario.Tables[0].Rows.Count > 0) { //Información de Active Directory txtLoginAD.Text = dsUsuariosAD.Tables["LoginBLs"].Rows[0]["Login"].ToString(); txtFuncionario.Text = HttpUtility.HtmlDecode(dsUsuariosAD.Tables["LoginBLs"].Rows[0]["Nombre"].ToString()); txtCedulaAD.Text = dsUsuariosAD.Tables["LoginBLs"].Rows[0]["Cedula"].ToString(); txtCorreo.Text = dsUsuariosAD.Tables["LoginBLs"].Rows[0]["Login"].ToString() + "@aya.go.cr"; //Información de Aplicación txtLoginAP.Text = dsUsuario.Tables[0].Rows[0]["LOGINUSUARIO"].ToString(); chkActivo.Checked = bool.Parse(dsUsuario.Tables[0].Rows[0]["ACTIVOUSUARIO"].ToString()); txtAplicacion.Text = dsUsuario.Tables[0].Rows[0]["NOMBREAPLICACION"].ToString(); //txtDependencia.Text = dsUsuario.Tables[0].Rows[0]["DEPENDENCIA"].ToString(); txtEmpleado.Text = dsUsuario.Tables[0].Rows[0]["NOMBRECOMPLETO"].ToString(); txtCedula.Text = dsUsuario.Tables[0].Rows[0]["FKEMPLEADO"].ToString(); llenarGridRol(Int32.Parse(ViewState["PkUsuario"].ToString())); ViewState["PkRol"] = dsUsuario.Tables[0].Rows[0]["PKUSUARIOROL"].ToString(); ddlRol.SelectedValue = dsUsuario.Tables[0].Rows[0]["PKROL"].ToString(); objUsuarioBL.objUsuarioEL.USUARIO = dsUsuariosAD.Tables["LoginBLs"].Rows[0]["Login"].ToString(); DataSet dsAcceso = objUsuarioBL.dsAccesoUsuario(objUsuarioBL.objUsuarioEL); if (dsAcceso.Tables[0].Rows.Count > 0) { //MensajeInformativo("El usuario solicitado no existe en el directorio activo o se encuentra deshabilitado."); //ddlRegion.SelectedValue = dsAcceso.Tables[0].Rows[0]["FKDEPENDENCIAUSUARIOXDEPENDENCIA"].ToString(); ddlDependencia.SelectedValue = dsAcceso.Tables[0].Rows[0]["FKDEPENDENCIA"].ToString(); txtTelefonoCubiculo.Text = dsAcceso.Tables[0].Rows[0]["TELEFONOCUBICULOUSUARIOXDEPENDENCIA"].ToString(); chkDirector.Checked = bool.Parse(dsAcceso.Tables[0].Rows[0]["DIRECTORUSUARIOXDEPENDENCIA"].ToString()); chkJefatura.Checked = bool.Parse(dsAcceso.Tables[0].Rows[0]["JEFATURAUSUARIOXDEPENDENCIA"].ToString()); txtObservaciones.Text = dsAcceso.Tables[0].Rows[0]["OBSERVACIONESUSUARIOXDEPENDENCIA"].ToString(); ddlTipoInspeccion.Text = dsAcceso.Tables[0].Rows[0]["FKTIPOINSPECCION"].ToString(); lblRegion.Text = lblRegion.Text = "(Región: " + dsAcceso.Tables[0].Rows[0]["DESCRIPCIONREGION"].ToString() + ")"; } } else { } } catch (Exception ex) { throw ex; } } /// /// Carga el grvUsuariosAD con los datos extraidos del Active Directory /// private void llenarGrvUsuariosAD(string p_strUsuario) //M2 { try { if (txtDatos.Text.Length > 1) { objAutenticacionBL = new AutenticacionBL(); DataSet dsUsuariosAD = objAutenticacionBL.BuscarLoginUsuario(p_strUsuario, "", ""); //objUsuarioBL = new UsuarioBL(); //objUsuarioBL.objUsuarioEL.USUARIO = txtDatos.Text; //DataSet dsUsuariosAD = objUsuarioBL.dsListaUsuariosStarH(null); if (dsUsuariosAD.Tables[0].Rows.Count > 0) General.detalleGridView(dsUsuariosAD, grvUsuariosADTemp, lblTotalDatos); else { MensajeInformativo("El usuario solicitado no existe en el directorio activo o se encuentra deshabilitado."); } } } catch (Exception ex) { throw ex; } } /// /// Llena el dropdownlist de Roles según la aplicación /// private void llenarDDLRol() //M4 { try { arlCondicionesFiltroBusqueda = new ArrayList(); //Limpia el control ddlRol.Items.Clear(); //Instancia el bjeto objRolBL = new RolBL(); //Asigna datos al atributo objRolBL.objRolEL.Aplicacion = Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]); objRolBL.objRolEL.Rol = 0; objRolBL.objRolEL.Usuario = 0; //Carga la información en un dataset DataSet dsRol = objRolBL.dsListaRoles(arlCondicionesFiltroBusqueda); if (dsRol.Tables[0].Rows.Count != 0) { ddlRol.DataSource = dsRol; ddlRol.DataTextField = dsRol.Tables[0].Columns["NOMBREROL"].ColumnName; ddlRol.DataValueField = dsRol.Tables[0].Columns["PKROL"].ColumnName; ddlRol.DataBind(); ddlRol.Items.Insert(0, new ListItem("Seleccione", "-1")); } else ddlRol.Items.Insert(0, new ListItem("----- App sin Roles -----", "-1")); } catch (Exception ex) { throw ex; } } /// /// LLena el listado de roles de usuario /// private void llenarGridRol(int nUsuario) { try { //Instancia el objeto objUsuarioRolBL = new UsuarioRolBL(); //Asigna un valor al atributo de referencia del objeto objUsuarioRolBL.objUsuarioRolEL.Usuario = nUsuario; //Carga en un dataset la información DataSet dsRoles = objUsuarioRolBL.listarRolesxAplicacion(); // grvListaRoles.DataSource = dsRoles; //grvListaRoles.DataBind(); //General.detalleGridView(dsRoles, grvListaRoles, null); } catch (Exception ex) { throw ex; } } ///// ///// Llena el dropdownlist de Cantonales según la aplicación ///// //private void llenarDDLregion() //M2 //{ // try // { // //Limpia el control // ddlRegion.Items.Clear(); // //Instancia el bjeto // objRegionBL = new regionBL(); // //Asigna datos al atributo // objRegionBL.objregionEL.PK = 0; // objRegionBL.objregionEL.Descripcion = ""; // //Carga la información en un dataset // DataSet dsRegion = objRegionBL.dsListaRegiones(null); // if (dsRegion.Tables[0].Rows.Count != 0) // { // ddlRegion.DataSource = dsRegion; // ddlRegion.DataTextField = dsRegion.Tables[0].Columns["DESCRIPCIONREGION"].ColumnName; // ddlRegion.DataValueField = dsRegion.Tables[0].Columns["PKREGION"].ColumnName; // ddlRegion.DataBind(); // ddlRegion.Items.Insert(0, new ListItem("----- Seleccione una región -----", "-1")); // } // else // ddlRegion.Items.Insert(0, new ListItem("----- No existen regiones -----", "-1")); // } // catch (Exception ex) // { // throw ex; // } //} /// /// Llena el dropdownlist de dependencias /// private void llenarDDLdependencia() //M3 { try { //Limpia el control ddlDependencia.Items.Clear(); //Instancia el bjeto objDependenciaBL = new oficinaayaBL(); //Carga la información en un dataset objDependenciaBL.objoficinaayaEL.PK = 0; DataSet dsDependencia = objDependenciaBL.dsListaCantonal(null); if (dsDependencia.Tables[0].Rows.Count != 0) { ddlDependencia.DataSource = dsDependencia; ddlDependencia.DataTextField = dsDependencia.Tables[0].Columns["DESCRIPCIONDEPENDENCIASIGDD"].ColumnName; ddlDependencia.DataValueField = dsDependencia.Tables[0].Columns["PKDEPENDENCIASIGDD"].ColumnName; ddlDependencia.DataBind(); ddlDependencia.Items.Insert(0, new ListItem("Seleccione", "-1")); ddlDependencia.Items.Insert(0, new ListItem("Todos", "-2")); } else ddlDependencia.Items.Insert(0, new ListItem("----- No existen dependencias -----", "-1")); } catch (Exception ex) { throw ex; } } /// /// Llena el dropdownlist de grado academico según la aplicación /// private void llenarDDLtipoInspeccion() //M6 { try { //Limpia el control ddlTipoInspeccion.Items.Clear(); //Instancia el bjeto objUsuarioBL = new UsuarioBL(); //Asigna datos al atributo //Carga la información en un dataset DataSet dsTipoInspeccion = objUsuarioBL.dsListaTipoInspeccion(null); if (dsTipoInspeccion.Tables[0].Rows.Count != 0) { ddlTipoInspeccion.DataSource = dsTipoInspeccion; ddlTipoInspeccion.DataTextField = dsTipoInspeccion.Tables[0].Columns["DESCRIPCIONTIPOINSPECCION"].ColumnName; ddlTipoInspeccion.DataValueField = dsTipoInspeccion.Tables[0].Columns["PKTIPOINSPECCION"].ColumnName; ddlTipoInspeccion.DataBind(); ddlTipoInspeccion.Items.Insert(0, new ListItem("Seleccione", "-1")); } else ddlTipoInspeccion.Items.Insert(0, new ListItem("----- No existen opciones -----", "-1")); } catch (Exception ex) { throw ex; } } /// ///Limpia los campos /// private void limpiarCampos() { txtLoginAD.Text = string.Empty; txtFuncionario.Text = string.Empty; txtCedula.Text = string.Empty; txtCorreo.Text = string.Empty; txtDatos.Text = string.Empty; //Información de Aplicación txtLoginAP.Text = string.Empty; chkActivo.Checked = false; txtAplicacion.Text = string.Empty; txtEmpleado.Text = string.Empty; ddlRol.SelectedValue= "-1"; ddlDependencia.SelectedValue = "-1"; //Configuración de Aplicacion txtObservaciones.Text = string.Empty; txtTelefonoCubiculo.Text = string.Empty; ddlTipoInspeccion.SelectedValue = "-1"; chkDirector.Checked = false; chkJefatura.Checked = false; } #endregion protected void grvListaDatosUsuarios_SelectedIndexChanged(object sender, EventArgs e) { } protected void btnAgregarDependencias_Click(object sender, EventArgs e) { try { if (ddlDependencia.SelectedValue == "-1") { MensajeAlerta("Debe seleccionar la dependencia del usuario."); ddlDependencia.Focus(); } else { if (ViewState["PkUsuario"] == null) { objUsuarioBL = new UsuarioBL(); objUsuarioBL.objUsuarioEL.Login = txtLoginAP.Text.Trim(); objUsuarioBL.objUsuarioEL.Activo = chkActivo.Checked; objUsuarioBL.objUsuarioEL.Empleado = txtCedula.Text; if (ddlDependencia.SelectedValue != "-1") objUsuarioBL.objUsuarioEL.FKDEPENDENCIA = int.Parse(ddlDependencia.SelectedValue); objUsuarioBL.objUsuarioEL.TELEFONOCUBICULO = txtTelefonoCubiculo.Text; objUsuarioBL.objUsuarioEL.DIRECTOR = chkDirector.Checked; objUsuarioBL.objUsuarioEL.JEFATURA = chkJefatura.Checked; objUsuarioBL.objUsuarioEL.OBSERVACIONES = txtObservaciones.Text; //if (ddlTipoInspeccion.SelectedValue != "-1") objUsuarioBL.objUsuarioEL.FKTIPOINSPECCION = int.Parse(ddlTipoInspeccion.SelectedValue); ViewState["PkUsuario"] = objUsuarioBL.insertarUsuario(); ViewState["MODO"] = "Modifica"; } detalledependenciaxusuarioBL objDetalleDependenciaxUsuario = new detalledependenciaxusuarioBL(); objDetalleDependenciaxUsuario.objDetalledependenciaxusuarioEL.USUARIO = txtLoginAP.Text.Trim(); int nPkDetalle = 0; if (ddlDependencia.SelectedValue == "-2") // todos { //desasociar todas las dependencias actuales al usuario objDetalleDependenciaxUsuario.elminardetalledependenciaxusuario(); objDependenciaBL = new oficinaayaBL(); //Carga la información en un dataset objDependenciaBL.objoficinaayaEL.PK = 0; DataSet dsDependencia = objDependenciaBL.dsListaCantonal(null); if (dsDependencia.Tables[0].Rows.Count != 0) { foreach (DataRow row in dsDependencia.Tables[0].Rows) { objDetalleDependenciaxUsuario.objDetalledependenciaxusuarioEL.FKDEPENDENCIA = int.Parse(row["PKDEPENDENCIASIGDD"].ToString()); nPkDetalle = objDetalleDependenciaxUsuario.insertarDetalleDependenciaxUsuario(); if (nPkDetalle != 0) { MensajeInformativo("Se asoció correctamente todas las dependencias al usuario " + txtFuncionario.Text.Trim()); GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.IngresarRegistro + ": Se ha asociado la dependencia " + row["DESCRIPCIONDEPENDENCIASIGDD"].ToString() + " al usuario " + txtFuncionario.Text.Trim(), "frwUsuario.aspx", Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); } else MensajeAlerta("Se presentó un error al agregar la dependencia."); } } } else { objDetalleDependenciaxUsuario.objDetalledependenciaxusuarioEL.FKDEPENDENCIA = int.Parse(ddlDependencia.SelectedValue); nPkDetalle = objDetalleDependenciaxUsuario.insertarDetalleDependenciaxUsuario(); if (nPkDetalle != 0) { MensajeInformativo("Se asoció correctamente la dependencia al usuario"); GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.IngresarRegistro + ": Se ha asociado la dependencia " + ddlDependencia.SelectedItem.Text + " al usuario " + txtFuncionario.Text.Trim(), "frwUsuario.aspx", Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); } else MensajeAlerta("Se presentó un error al agregar la dependencia."); } } } catch (Exception ex) { MensajeError("Se presentó un error al agregar la dependencia.", ex); } finally { llenarGridViewDependencias(txtLoginAP.Text.Trim()); } } protected void grvListaDependencias_RowCommand(object sender, GridViewCommandEventArgs e) { try { if (e.CommandName == "eliminar") { int i = Convert.ToInt32(e.CommandArgument); GridViewRow selectedRow = grvListaDependencias.Rows[i]; int intPkDetalle = Convert.ToInt32(selectedRow.Cells[0].Text); ViewState["PKDETALLEDEPENDENCIA"] = intPkDetalle; mostrarFilaTabla(3); eliminarDependencia(intPkDetalle); llenarGridViewDependencias(txtLoginAD.Text.Trim()); GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.IngresarRegistro + ": Se ha desasociado la dependencia " + ddlDependencia.SelectedItem.Text + " al usuario " + txtFuncionario.Text.Trim(), "frwUsuario.aspx", Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); } } catch (Exception ex) { MensajeError("Error en R3M0 ", ex); } } public void eliminarDependencia(int nPkDependencia) { try { detalledependenciaxusuarioBL objDetalleDependenciaxUsuario = new detalledependenciaxusuarioBL(); objDetalleDependenciaxUsuario.objDetalledependenciaxusuarioEL.PKDETALLEDEPENDENCIAXUSUARIO = nPkDependencia; objDetalleDependenciaxUsuario.elminardetalledependenciaxusuario(); MensajeInformativo("Se desasoció la dependencia del usuario"); } catch (Exception ex) { MensajeError("Se presentó un error al intentar eliminar la dependencia", ex); } } protected void grvListaDependencias_PageIndexChanging(object sender, GridViewPageEventArgs e) { try { grvListaDependencias.PageIndex = e.NewPageIndex; llenarGridViewDependencias(txtLoginAD.Text.Trim()); } catch (Exception ex) { MensajeError("Error en R3M3", ex); } } protected void ddlDependencia_SelectedIndexChanged(object sender, EventArgs e) { try { dependenciasdaaBL objDependenciaBL = new dependenciasdaaBL(); objDependenciaBL.objdependenciasdaaEL.PK = int.Parse(ddlDependencia.SelectedValue); DataSet ds = objDependenciaBL.listarDependenciaSdaa(null,false); if (ds.Tables[0].Rows.Count > 0) lblRegion.Text = "(Región: " + ds.Tables[0].Rows[0]["DESCRIPCIONREGION"].ToString() + ")"; } catch (Exception ex) { MensajeError("Error en R3M3", ex); } } }