1420 lines
No EOL
52 KiB
C#
1420 lines
No EOL
52 KiB
C#
/*===========================================================================================================================
|
||
* Instituto Costarricense de Acueductos y Alcantarillados. - 2015
|
||
* Administración de la Seguridad
|
||
* Nombre de la Pantalla: frwRol.aspx
|
||
*
|
||
* Explicación de los contenidos del archivo
|
||
*===========================================================================================================================
|
||
* HISTORIAL
|
||
*
|
||
* PERSONA DIA – MES - AÑO DESCRIPCIÓN
|
||
* Esteban Gutierrez Rapso 11 – 05 - 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 AyABL.Usuario;
|
||
using System.Configuration;
|
||
using AyADAL;
|
||
using AyABL.RCS;
|
||
using AyAEL.USR;
|
||
|
||
|
||
public partial class Forms_Usuarios_frwRol : 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();
|
||
Javascript.CheckAllGridViewItems(Page);
|
||
cuwBusquedaList.Buscar += new _controlesusuario_Estandar_cuwBusquedaList.SearchEvent(Buscar);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
MensajeError("Error en R0M1", ex);
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region Variables (R1)
|
||
|
||
GridView grvListaDatosRolesTemp;
|
||
|
||
RolItemMenuComandoBL objRolItemMenuComandoBL;
|
||
ItemMenuBL objItemMenuBL;
|
||
ComandoBL objComandoBL;
|
||
UsuarioRolBL objUsuarioRolBL;
|
||
AplicacionBL objAplicacionBL;
|
||
ActividadesBL objActividadesBL;
|
||
RolBL objRolBL = new RolBL();
|
||
ArrayList arlCondicionesFiltroBusqueda = new ArrayList();
|
||
|
||
#endregion
|
||
|
||
#region Eventos Formulario (R2)
|
||
|
||
protected void Page_Load(object sender, EventArgs e) //M0
|
||
{
|
||
try
|
||
{
|
||
|
||
if ((!IsPostBack) && (Session.Count > 0))
|
||
{
|
||
//ComandosxMenu();
|
||
llenarGridView(true);
|
||
ComandosxMenu();
|
||
llenarlblApp();
|
||
llenarDDLAcceso();
|
||
llenarDDLActividades();
|
||
mostrarFilaTabla(1);
|
||
}
|
||
}
|
||
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 grvListaDatosRoles_RowCommand(object sender, GridViewCommandEventArgs e) //M0
|
||
{
|
||
try
|
||
{
|
||
if (e.CommandName == "editar")
|
||
{
|
||
int i = Convert.ToInt32(e.CommandArgument);
|
||
GridViewRow selectedRow = grvListaDatosRoles.Rows[i];
|
||
int intPkRol = Convert.ToInt32(selectedRow.Cells[2].Text);
|
||
ViewState["PkRol"] = intPkRol;
|
||
ViewState["MODO"] = "Modifica";
|
||
|
||
mostrarFilaTabla(2);
|
||
limpiarCampos();
|
||
mostrarDatos(intPkRol);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
MensajeError("Error en R3M0 " , ex);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Metodo que se utiliza para la paginación del Grid en caso de que el Rol desee ver mas registros
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
|
||
protected void grvListaDatosRoles_PageIndexChanging(object sender, GridViewPageEventArgs e) //M1
|
||
{
|
||
try
|
||
{
|
||
grvListaDatosRoles.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 " + MensajesAplicacion.RefrescarFallido.ToString(), 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) //M3
|
||
{
|
||
try
|
||
{
|
||
llenarGridView(true);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
MensajeError("Error en R3M3" + MensajesAplicacion.BusquedaFallido.ToString(), ex);
|
||
}
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// Activa el evento del boton Nuevo
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
|
||
protected void btnNuevo_Click(object sender, EventArgs e) //M4
|
||
{
|
||
try
|
||
{
|
||
ViewState["MODO"] = "Nuevo";
|
||
ViewState["PkRol"] = "";
|
||
mostrarFilaTabla(2);
|
||
limpiarCampos();
|
||
cargarArbol();
|
||
txtRol.Focus();
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
MensajeError("Error en R3M4 " + MensajesAplicacion.GuardadoFallido.ToString(), ex);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Metodo que activa el botón de Eliminar
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void btnEliminar_Click(object sender, EventArgs e) //M5
|
||
{
|
||
try
|
||
{
|
||
objUsuarioRolBL = new UsuarioRolBL();
|
||
|
||
// recorro el grid
|
||
foreach (GridViewRow row in grvListaDatosRoles.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);
|
||
objUsuarioRolBL.objUsuarioRolEL.Rol = intPkEliminar;
|
||
// si no hay usuarios en ese role
|
||
if (!objUsuarioRolBL.usuariosAsociados())
|
||
{
|
||
eliminarDatos(intPkEliminar);
|
||
}
|
||
else
|
||
{
|
||
MensajeAlerta("No se puede eliminar el rol debido a que tiene usuarios asociados.");
|
||
}
|
||
}
|
||
}
|
||
}
|
||
llenarGridView(true);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
MensajeError("Error en R3M5 " + MensajesAplicacion.BorradoFallido.ToString(), 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) //M7
|
||
{
|
||
try
|
||
{
|
||
llenarGridView(true);
|
||
divDatosSuperiores.Visible = true;
|
||
divDatosInferiores.Visible = false;
|
||
divDatosInferiores2.Visible = false;
|
||
divDatosInferiores3.Visible = false;
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
MensajeError("Error en R3M7", ex);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Activa el evento del boton guardar.
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
|
||
protected void btnGuardar_Click(object sender, EventArgs e) //M8
|
||
{
|
||
try
|
||
{
|
||
if (Page.IsValid)
|
||
{
|
||
|
||
string strMensaje = string.Empty;
|
||
if (txtRol.Text != string.Empty && txtDescripcion.Text != string.Empty && ddlAcceso.SelectedValue != "-1")
|
||
{
|
||
if (validarTreeview())
|
||
{
|
||
|
||
if (GuardarDatos())
|
||
{
|
||
MensajeInformativo("La información se guardó satisfactoriamente");
|
||
llenarGridView(true);
|
||
ComandosxMenu();
|
||
llenarlblApp();
|
||
llenarDDLAcceso();
|
||
mostrarFilaTabla(1);
|
||
}
|
||
else
|
||
MensajeInformativo("La información no se guardó, revise y vuelva a intentarlo");
|
||
|
||
mostrarFilaTabla(1);
|
||
}
|
||
else
|
||
{
|
||
MensajeAlerta("Debe seleccionar al menos una opcion del arbol organizacional.");
|
||
}
|
||
}
|
||
else
|
||
{
|
||
MensajeAlerta("Debe completar los datos del rol antes de proseguir.");
|
||
txtRol.Focus();
|
||
}
|
||
}
|
||
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
MensajeError("Error en R3M8" + MensajesAplicacion.GuardadoFallido.ToString(), ex);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Asocia los actividades al rol de usuario
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void btnAgregarActividad_Click(object sender, EventArgs e) //M9
|
||
{
|
||
try
|
||
{
|
||
string strMensaje = string.Empty;
|
||
if (txtRol.Text != string.Empty && txtDescripcion.Text != string.Empty && ddlAcceso.SelectedValue != "-1")
|
||
{
|
||
if (AgregarActividades())
|
||
{
|
||
//Guarda los datos del arbol
|
||
|
||
MensajeInformativo("Se agregó la actividad satisfactoriamente");
|
||
llenarGridViewActividades();
|
||
ddlActividad.SelectedValue = "-1";
|
||
}
|
||
else
|
||
MensajeInformativo("La actividad no se agregó, revise y vuelva a intentarlo");
|
||
|
||
//mostrarFilaTabla(1);
|
||
}
|
||
else
|
||
{
|
||
MensajeAlerta("Debe completar los datos del rol antes de proseguir.");
|
||
txtRol.Focus();
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
MensajeError("Error en R3M9" + MensajesAplicacion.GuardadoFallido.ToString(), ex);
|
||
}
|
||
}
|
||
|
||
/// <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 grvListaActividadesRoles_RowCommand(object sender, GridViewCommandEventArgs e) //M0
|
||
{
|
||
try
|
||
{
|
||
if (e.CommandName == "eliminar")
|
||
{
|
||
int i = Convert.ToInt32(e.CommandArgument);
|
||
GridViewRow selectedRow = grvListaActividades.Rows[i];
|
||
int intPkActividad = Convert.ToInt32(selectedRow.Cells[0].Text);
|
||
ViewState["PkActividad"] = intPkActividad;
|
||
ViewState["MODO"] = "Modifica";
|
||
|
||
mostrarFilaTabla(2);
|
||
|
||
eliminarActividad(intPkActividad);
|
||
llenarGridViewActividades();
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
MensajeError("Error en R3M0 ", ex);
|
||
}
|
||
}
|
||
#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
|
||
{
|
||
divDatosSuperiores.Visible = false;
|
||
divDatosInferiores.Visible = false;
|
||
divDatosInferiores2.Visible = false;
|
||
divDatosInferiores3.Visible = false;
|
||
|
||
switch (p_intFila)
|
||
{
|
||
case 1:
|
||
llenarGridView(true);
|
||
divDatosSuperiores.Visible = true;
|
||
break;
|
||
case 2:
|
||
llenarGridView(true);
|
||
divDatosInferiores.Visible = true;
|
||
divDatosInferiores2.Visible = true;
|
||
divDatosInferiores3.Visible = true;
|
||
break;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw ex;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Metodo que se utiliza para contruir el Grid al inicio de la pantalla
|
||
/// </summary>
|
||
private void construirGridView() //M1
|
||
{
|
||
try
|
||
{
|
||
grvListaDatosRolesTemp = (GridView)tdLista.FindControl("grvListaDatosRoles");
|
||
|
||
GridViewBoundField bdfPkRol = new GridViewBoundField("PKROL", "PK", false, false, false);
|
||
GridViewBoundField bdfNombreRol = new GridViewBoundField("NOMBREROL", "Rol", true, false, true);
|
||
GridViewBoundField bdfDescripcion = new GridViewBoundField("DESCRIPCIONROL", "Descripción", true, false, true);
|
||
GridViewBoundField bdfActivoRol = new GridViewBoundField("ACTIVOROL", "Activo", true, "Si", "No", true);
|
||
//GridViewBoundField bdfAplicacion = new GridViewBoundField("ETIQUETAAPLICACION", "Aplicación", true, false, true);
|
||
|
||
grvListaDatosRolesTemp.Columns.Add(bdfPkRol);
|
||
grvListaDatosRolesTemp.Columns.Add(bdfNombreRol);
|
||
grvListaDatosRolesTemp.Columns.Add(bdfDescripcion);
|
||
grvListaDatosRolesTemp.Columns.Add(bdfActivoRol);
|
||
//grvListaDatosRolesTemp.Columns.Add(bdfAplicacion);
|
||
|
||
grvListaDatosRolesTemp.Columns[0].ItemStyle.Width = 25;
|
||
grvListaDatosRolesTemp.Columns[1].ItemStyle.Width = 25;
|
||
|
||
cuwBusquedaList.LlenarCHKLBusqueda(grvListaDatosRolesTemp);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw ex;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Metodo que se encarga de agregar el filtro de busqueda seleccionado por el usuario
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
private void condicionesBusqueda() //M2
|
||
{
|
||
AyABL.AyABL objBL = new AyABL.AyABL();
|
||
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)
|
||
{
|
||
objBL = new AyABL.AyABL();
|
||
arlCondicionesFiltroBusqueda = objBL.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
|
||
{
|
||
objBL = new AyABL.AyABL();
|
||
arlCondicionesFiltroBusqueda = objBL.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;
|
||
}
|
||
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// Metodo que se utiliza para limpiar los campos en la pantalla
|
||
/// </summary>
|
||
private void limpiarCampos() //M3
|
||
{
|
||
try
|
||
{
|
||
txtRol.Text = string.Empty;
|
||
txtDescripcion.Text = string.Empty;
|
||
ddlAcceso.SelectedValue = "-1";
|
||
ddlActividad.SelectedValue = "-1";
|
||
grvListaActividades.DataSource = null;
|
||
grvListaActividades.DataBind();
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw 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() //M4
|
||
{
|
||
try
|
||
{
|
||
llenarGridView(true);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw ex;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Metodo que se utiliza para el despliegue de los botones
|
||
/// </summary>
|
||
private void ComandosxMenu() //M6
|
||
{
|
||
try
|
||
{
|
||
//General general = null;
|
||
|
||
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 "ELIMINAR":
|
||
btnEliminar.Visible = true;
|
||
break;
|
||
case "MODIFICA":
|
||
//Inicio de variable tipo VIEWSTATE
|
||
ViewState["PUEDEMODIFICAR"] = true;
|
||
btnGuardar.Visible = true;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw ex;
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region Metodos Controles a Datos (R5)
|
||
|
||
/// <summary>
|
||
/// guarda y modifica registros en la tabla.
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
|
||
private bool GuardarDatos() //M0
|
||
{
|
||
bool blnValorRetornado = false; //Se utiliza para verificar si se ejecuto el proceso tanto de guardar como el de eliminar
|
||
int intPk = 0;
|
||
TransaccionDAL tdlTransaccion = new TransaccionDAL("ADS");
|
||
|
||
try
|
||
{
|
||
|
||
string strModo = ViewState["MODO"].ToString();
|
||
ViewState["PUEDEMODIFICAR"] = true;
|
||
|
||
objRolBL = new RolBL();
|
||
objRolBL.objRolEL.PK = 0;
|
||
objRolBL.objRolEL.Nombre = this.txtRol.Text.Trim();
|
||
objRolBL.objRolEL.Descripcion = this.txtDescripcion.Text.Trim();
|
||
|
||
|
||
|
||
objRolBL.objRolEL.Activo = true;
|
||
if (ddlAcceso.SelectedValue != "-1")
|
||
{
|
||
objRolBL.objRolEL.ACCESOINFORMACION = int.Parse(ddlAcceso.SelectedValue);
|
||
Session["ACCESOINSORMACION"] = int.Parse(ddlAcceso.SelectedValue);
|
||
}
|
||
|
||
tdlTransaccion.BeginTransaction();
|
||
if (strModo == "Nuevo")
|
||
{
|
||
int intPkRolAcceso = 0;
|
||
intPk = objRolBL.insertarRol(ref intPkRolAcceso);
|
||
|
||
//Guarda los datos del arbol
|
||
InsertaDatosArbol(intPk);
|
||
|
||
blnValorRetornado = true;
|
||
|
||
GuardarEventoBitacora(
|
||
Session["LOGIN"].ToString(),
|
||
AccionBitacora.INSERT.ToString(),
|
||
MensajesBitacora.IngresarRegistro + ": " + intPk + ", " + txtRol.Text + ", " + txtDescripcion.Text,
|
||
"frwRole.aspx",
|
||
Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"])
|
||
);
|
||
tdlTransaccion.CommitTransaction();
|
||
}
|
||
else if (strModo == "Modifica")
|
||
{
|
||
if (Convert.ToBoolean(ViewState["PUEDEMODIFICAR"]) != false)
|
||
{
|
||
objRolBL.objRolEL.PK = Convert.ToInt32(ViewState["PkRol"]);
|
||
objRolBL.actualizarRol();
|
||
|
||
objRolItemMenuComandoBL = new RolItemMenuComandoBL();
|
||
objRolItemMenuComandoBL.objRolItemMenuComandoEL.Rol = Convert.ToInt32(ViewState["PkRol"]);
|
||
objRolItemMenuComandoBL.eliminarRolexComandoxMenuItem();
|
||
|
||
InsertaDatosArbol(Convert.ToInt32(ViewState["PkRol"]));
|
||
|
||
blnValorRetornado = true;
|
||
|
||
GuardarEventoBitacora(
|
||
Session["LOGIN"].ToString(),
|
||
AccionBitacora.UPDATE.ToString(),
|
||
MensajesBitacora.ModificarRegistro + ": " + Convert.ToInt32(ViewState["PkRol"]) + ", " + txtRol.Text + ", " + txtDescripcion.Text,
|
||
"frwRole.aspx",
|
||
Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"])
|
||
);
|
||
tdlTransaccion.CommitTransaction();
|
||
}
|
||
}
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
tdlTransaccion.RollBackTransaction();
|
||
throw (ex);
|
||
}
|
||
return blnValorRetornado;
|
||
}
|
||
|
||
#region Guarda Datos Arbol
|
||
|
||
/// <summary>
|
||
/// Metodo utilitario para insertar cada nodo del árbol y sus respectivos permisos en la base de datos
|
||
/// </summary>
|
||
/// <param name="p_intPkRole"></param>
|
||
/// <param name="tdlTransaccion"></param>
|
||
|
||
private void InsertaDatosArbol(int p_intPkRole) //M1
|
||
{
|
||
|
||
// recorro los hijos de la raíz del árbol (El nombre de la aplicación)
|
||
foreach (TreeNode tndRol in trvRol.Nodes[0].ChildNodes)
|
||
{
|
||
InsertaPantallasArbol(p_intPkRole, Convert.ToInt32(tndRol.Value), tndRol);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Metodo que se utiliza para insertar el datos de las pantallas
|
||
/// </summary>
|
||
/// <param name="p_intPkRole"></param>
|
||
/// <param name="p_intPKmenu"></param>
|
||
/// <param name="p_tndNode"></param>
|
||
/// <param name="tdlTransaccion"></param>
|
||
/// <returns></returns>
|
||
|
||
|
||
private bool InsertaPantallasArbol(int p_intPkRole, int p_intPKmenu, TreeNode p_tndPantallas)//M2
|
||
{
|
||
bool hijoInsertado = false; // determina si algún hijo del menu o pantalla actual fue insertado
|
||
try
|
||
{
|
||
// si tiene hijos
|
||
if (p_tndPantallas.ChildNodes.Count > 0)
|
||
{
|
||
// si el nodo no es un comando, agarro como PKMENU el que viene del nodo, si es un comando, conservo el valor PKMENU que viene como parametro
|
||
if (p_tndPantallas.Target != "C")
|
||
{
|
||
p_intPKmenu = Convert.ToInt32(p_tndPantallas.Value);
|
||
}
|
||
|
||
// recorro los hijos del nodo recibido como parametro del metodo
|
||
foreach (TreeNode tndHijo in p_tndPantallas.ChildNodes)
|
||
{
|
||
// los mando a insertarDatosArbol y acumulo las respuestas de los inserts de hijos
|
||
bool aux = InsertaPantallasArbol(p_intPkRole, p_intPKmenu, tndHijo);
|
||
|
||
// ** nota, solo el comando consultar va a activar en el arbol de permisos, los permisos a consultar la pantalla o modulo que se encuentren
|
||
// por encima de este, si tengo otros comandos al mismo nivel del comando consultar, estos no brindaran el permiso de consulta a la pantalla padre
|
||
// o modulo en el que se encuentren
|
||
if (/*(tndHijo.Text == "Consultar") || */(tndHijo.Target == string.Empty))
|
||
{
|
||
hijoInsertado = (hijoInsertado || aux);
|
||
}
|
||
}
|
||
|
||
// si inserte un hijo o si el nodo esta chequeado, chequeo el nodo
|
||
p_tndPantallas.Checked = (p_tndPantallas.Checked || hijoInsertado);
|
||
|
||
if (p_tndPantallas.Checked)
|
||
{
|
||
bool aux = InsertarComandos(p_intPkRole, p_intPKmenu, p_tndPantallas);
|
||
hijoInsertado = (hijoInsertado || aux);
|
||
}
|
||
|
||
}
|
||
// si no tiene hijos (hoja)
|
||
else
|
||
{
|
||
hijoInsertado = InsertarComandos(p_intPkRole, p_intPKmenu, p_tndPantallas);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw ex;
|
||
}
|
||
return hijoInsertado;
|
||
}
|
||
|
||
/// <summary>
|
||
/// Metodo que se utiliza para insertar la información de los comandos
|
||
/// </summary>
|
||
/// <param name="p_intPkRole"></param>
|
||
/// <param name="p_intPkMenu"></param>
|
||
/// <param name="p_tndNode"></param>
|
||
/// <param name="tdlTransaccion"></param>
|
||
/// <returns></returns>
|
||
|
||
private bool InsertarComandos(int p_intPkRole, int p_intPkMenu, TreeNode p_tndNode ) //M3
|
||
{
|
||
bool insertado = false;
|
||
try
|
||
{
|
||
// si es un comando
|
||
if (p_tndNode.Target == "C")
|
||
{
|
||
// si esta chequeado
|
||
if (p_tndNode.Checked)
|
||
{
|
||
objRolItemMenuComandoBL = new RolItemMenuComandoBL();
|
||
objRolItemMenuComandoBL.objRolItemMenuComandoEL.Rol = p_intPkRole;
|
||
objRolItemMenuComandoBL.objRolItemMenuComandoEL.ItemMenu = p_intPkMenu;
|
||
objRolItemMenuComandoBL.objRolItemMenuComandoEL.Comando = Convert.ToInt32(p_tndNode.Value);
|
||
objRolItemMenuComandoBL.insertarRolexComandoxMenuItem();
|
||
insertado = true;
|
||
}
|
||
}
|
||
//si es un módulo o pantalla
|
||
else
|
||
{
|
||
// si este no tiene como hijo a un comando
|
||
if (!tieneHijoComando(p_tndNode))
|
||
{
|
||
objRolItemMenuComandoBL = new RolItemMenuComandoBL();
|
||
objRolItemMenuComandoBL.objRolItemMenuComandoEL.Rol = p_intPkRole;
|
||
objRolItemMenuComandoBL.objRolItemMenuComandoEL.ItemMenu = p_intPkMenu;
|
||
objRolItemMenuComandoBL.objRolItemMenuComandoEL.Comando = Convert.ToInt32(Comandos.Consultar);
|
||
objRolItemMenuComandoBL.insertarRolexComandoxMenuItem();
|
||
insertado = true;
|
||
}
|
||
// si el nodo actual tiene un hijo que sea comando
|
||
else
|
||
{
|
||
// si este comando esta chequeado
|
||
if (hijoComandoChequeado(p_tndNode))
|
||
{
|
||
// regreso true porque el paso recursivo anterior me tuvo que agregar el consultar del menu
|
||
return true;
|
||
}
|
||
else
|
||
{
|
||
return false;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw ex;
|
||
}
|
||
return insertado;
|
||
}
|
||
|
||
/// <summary>
|
||
/// Devuelve si el nodo enviado como parametro tiene un comando de hijo
|
||
/// </summary>
|
||
/// <param name="p_tndNode"></param>
|
||
/// <returns></returns>
|
||
|
||
private bool tieneHijoComando(TreeNode p_tndNode) //M4
|
||
{
|
||
bool blnConComando = false;
|
||
try
|
||
{
|
||
foreach (TreeNode tndHijo in p_tndNode.ChildNodes)
|
||
{
|
||
// si es un comando
|
||
if (tndHijo.Target == "C")
|
||
{
|
||
blnConComando = true;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw ex;
|
||
}
|
||
return blnConComando;
|
||
}
|
||
|
||
/// <summary>
|
||
/// Devuelve si el nodo enviado como parametro tiene un comando de hijo
|
||
/// </summary>
|
||
/// <param name="p_tndNode"></param>
|
||
/// <returns></returns>
|
||
private bool hijoComandoChequeado(TreeNode p_tndNode) //M5
|
||
{
|
||
bool comandoChequeado = false;
|
||
try
|
||
{
|
||
foreach (TreeNode tndHijo in p_tndNode.ChildNodes)
|
||
{
|
||
// si es un comando
|
||
if (tndHijo.Checked)
|
||
{
|
||
comandoChequeado = true;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw ex;
|
||
}
|
||
return comandoChequeado;
|
||
}
|
||
|
||
private bool validarTreeview()
|
||
{
|
||
bool valorRetornado = false;
|
||
try
|
||
{
|
||
// recorro los hijos de la raíz del árbol (El nombre de la aplicación)
|
||
foreach (TreeNode tndRol in trvRol.Nodes[0].ChildNodes)
|
||
{
|
||
if (tndRol.Checked == true)
|
||
return true;
|
||
}
|
||
}
|
||
catch(Exception ex)
|
||
{ throw ex; }
|
||
return valorRetornado;
|
||
}
|
||
#endregion
|
||
|
||
/// <summary>
|
||
/// Metodo que se utiliza para eliminar registros de la base de datos
|
||
/// </summary>
|
||
/// <param name="p_intPksAEliminar"></param>
|
||
|
||
private void eliminarDatos(int p_intPkRole) //M6
|
||
{
|
||
try
|
||
{
|
||
objRolItemMenuComandoBL = new RolItemMenuComandoBL();
|
||
objRolItemMenuComandoBL.objRolItemMenuComandoEL.Rol = p_intPkRole;
|
||
objRolItemMenuComandoBL.eliminarRolexComandoxMenuItem();
|
||
|
||
objRolBL = new RolBL();
|
||
objRolBL.objRolEL.PK = p_intPkRole;
|
||
objRolBL.eliminarRol();
|
||
|
||
// Se procede a ingresar el registro de bitacora para almacenar la accion del usuario
|
||
GuardarEventoBitacora(Session["LOGIN"].ToString(), AccionBitacora.DELETE, MensajesBitacora.EliminarRegistro + " con la PK " + p_intPkRole, "frwRol.aspx", Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]));
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw ex;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// guarda y modifica registros en la tabla.
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
|
||
private bool AgregarActividades() //M7
|
||
{
|
||
bool blnValorRetornado = false; //Se utiliza para verificar si se ejecuto el proceso tanto de guardar como el de eliminar
|
||
|
||
TransaccionDAL tdlTransaccion = new TransaccionDAL("SIGDD");
|
||
int intPkRolAcceso = 0;
|
||
int intPk = 0;
|
||
try
|
||
{
|
||
tdlTransaccion.BeginTransaction();
|
||
if (ViewState["PkRol"].ToString() == "" || ViewState["PkRol"].ToString() == null)
|
||
{
|
||
string strModo = ViewState["MODO"].ToString();
|
||
ViewState["PUEDEMODIFICAR"] = true;
|
||
|
||
objRolBL = new RolBL();
|
||
|
||
objRolBL.objRolEL.PK = 0;
|
||
objRolBL.objRolEL.Nombre = this.txtRol.Text.Trim();
|
||
objRolBL.objRolEL.Descripcion = this.txtDescripcion.Text.Trim();
|
||
|
||
|
||
|
||
objRolBL.objRolEL.Activo = true;
|
||
if (ddlAcceso.SelectedValue != "-1")
|
||
objRolBL.objRolEL.ACCESOINFORMACION = int.Parse(ddlAcceso.SelectedValue);
|
||
|
||
|
||
intPk = objRolBL.insertarRol(ref intPkRolAcceso);
|
||
ViewState["PkRol"] = intPk.ToString();
|
||
|
||
|
||
//Guarda los datos del arbol
|
||
InsertaDatosArbol(intPk);
|
||
//asocia actividades al rol
|
||
}
|
||
else
|
||
{
|
||
objRolBL = new RolBL();
|
||
|
||
objRolBL.objRolEL.PK = Convert.ToInt32(ViewState["PkRol"]);
|
||
|
||
|
||
|
||
DataSet dsActividades = objRolBL.dsRolAccesoPorRol(null);
|
||
if (dsActividades.Tables.Count > 0)
|
||
{
|
||
if (dsActividades.Tables[0].Rows.Count > 0)
|
||
{
|
||
intPkRolAcceso = int.Parse(dsActividades.Tables[0].Rows[0]["PKROLACCESO"].ToString());
|
||
}
|
||
}
|
||
}
|
||
objRolBL.objRolAccesoActividadEL.FKACTIVIDAD = int.Parse(ddlActividad.SelectedValue);
|
||
objRolBL.objRolAccesoActividadEL.FKROLACCESO = intPkRolAcceso;
|
||
intPk = objRolBL.asociarActividadRol(tdlTransaccion);
|
||
|
||
ViewState["MODO"] = "Modifica";
|
||
blnValorRetornado = true;
|
||
|
||
GuardarEventoBitacora(
|
||
Session["LOGIN"].ToString(),
|
||
AccionBitacora.INSERT.ToString(),
|
||
MensajesBitacora.IngresarRegistro + ": " + intPk + ", " + txtRol.Text + ", " + ddlActividad.SelectedItem.Text,
|
||
"frwRol.aspx",
|
||
Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"])
|
||
);
|
||
tdlTransaccion.CommitTransaction();
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
tdlTransaccion.RollBackTransaction();
|
||
throw (ex);
|
||
}
|
||
return blnValorRetornado;
|
||
}
|
||
|
||
/// <summary>
|
||
/// Metodo que se utiliza para eliminar actividades de la base de datos
|
||
/// </summary>
|
||
/// <param name="p_intPksAEliminar"></param>
|
||
|
||
private void eliminarActividad(int p_intPkActividad) //M6
|
||
{
|
||
try
|
||
{
|
||
objRolBL = new RolBL();
|
||
|
||
|
||
objRolBL.objRolAccesoActividadEL.PK = p_intPkActividad;
|
||
|
||
p_intPkActividad = objRolBL.elminarActividadRol();
|
||
|
||
|
||
|
||
// Se procede a ingresar el registro de bitacora para almacenar la accion del usuario
|
||
GuardarEventoBitacora(Session["LOGIN"].ToString(), AccionBitacora.DELETE, MensajesBitacora.EliminarRegistro + " con la PK " + p_intPkActividad, "frwRol.aspx", Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]));
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw ex;
|
||
}
|
||
}
|
||
#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();
|
||
objRolBL = new RolBL();
|
||
objRolBL.objRolEL.Aplicacion = Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]);
|
||
DataSet dsRoles = objRolBL.dsListaRoles(arlCondicionesFiltroBusqueda);
|
||
General.detalleGridView(dsRoles, grvListaDatosRolesTemp, lblTotalDatos);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw ex;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// Muestra los datos del registro
|
||
|
||
/// </summary>
|
||
/// <param name="p_intPkConsultar"></param>
|
||
private void mostrarDatos(int p_intPkConsultar) //M1
|
||
{
|
||
try
|
||
{
|
||
objRolBL = new RolBL();
|
||
objRolBL.objRolEL.PK = p_intPkConsultar;
|
||
objRolBL.objRolEL.Rol= Int32.Parse(ViewState["PkRol"].ToString());
|
||
DataSet dsRol = objRolBL.dsListaRoles(arlCondicionesFiltroBusqueda);
|
||
if (dsRol.Tables[0].Rows.Count > 0)
|
||
{
|
||
txtRol.Text = dsRol.Tables[0].Rows[0]["NOMBREROL"].ToString();
|
||
txtDescripcion.Text = dsRol.Tables[0].Rows[0]["DESCRIPCIONROL"].ToString();
|
||
|
||
cargarArbol();
|
||
}
|
||
|
||
objRolBL.objRolEL.PK = p_intPkConsultar;
|
||
DataSet dsAcceso = objRolBL.dsAccesoUsuario(objRolBL.objRolEL);
|
||
if (dsAcceso.Tables[0].Rows.Count > 0)
|
||
{
|
||
ddlAcceso.SelectedValue = dsAcceso.Tables[0].Rows[0]["ACCESOINFORMACIONROLACCESO"].ToString();
|
||
|
||
}
|
||
|
||
llenarGridViewActividades();
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw ex;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Muestra en pantalla los roles que se le pueden asignar al usuario
|
||
/// </summary>
|
||
private void llenarlblApp() //M2
|
||
{
|
||
try
|
||
{
|
||
objAplicacionBL = new AplicacionBL();
|
||
objAplicacionBL.objAplicacionEL.PK = Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]);
|
||
DataSet dsAplicacion = objAplicacionBL.dsListaAplicacion(objAplicacionBL.objAplicacionEL);
|
||
}
|
||
catch(Exception ex)
|
||
{
|
||
throw ex;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// Llena el dropdownlist de Cantonales según la aplicación
|
||
/// </summary>
|
||
private void llenarDDLAcceso() //M2
|
||
{
|
||
try
|
||
{
|
||
ddlAcceso.Items.Clear();
|
||
|
||
ddlAcceso.Items.Insert(0, new ListItem("Todo", "0"));
|
||
ddlAcceso.Items.Insert(0, new ListItem("Region", "1"));
|
||
ddlAcceso.Items.Insert(0, new ListItem("Dependencia", "2"));
|
||
ddlAcceso.Items.Insert(0, new ListItem("Seleccione", "-1"));
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw ex;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// Metodo secundario para cargar el arbol que muestra el menu y sus comandos
|
||
/// </summary>
|
||
/// <param name="p_intPadre"></param>
|
||
/// <param name="p_tndNodoRaiz"></param>
|
||
|
||
private void cargarArbol() //M3
|
||
{
|
||
try
|
||
{
|
||
//Construir el Nodo Raíz
|
||
TreeNode tdnNodoRaiz = new TreeNode();
|
||
tdnNodoRaiz.ShowCheckBox = true;
|
||
tdnNodoRaiz.Text = ConfigurationManager.AppSettings["SIGLAS"].ToString();
|
||
tdnNodoRaiz.Value = "-1";
|
||
|
||
// limpio el arbol
|
||
trvRol.Nodes.Clear();
|
||
cargarArbolItems(Convert.ToInt32(tdnNodoRaiz.Value), tdnNodoRaiz, Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]));
|
||
//tdnNodoRaiz.ExpandAll();
|
||
trvRol.Nodes.Add(tdnNodoRaiz);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw ex;
|
||
}
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// Metodo para cargar en el arbol los comandos
|
||
/// </summary>
|
||
/// <param name="p_intPKItemMenu"></param>
|
||
/// <param name="p_tndNodoPantalla"></param>
|
||
|
||
private void cargarArbolItems(int p_intPadre, TreeNode p_tndNodoRaiz, int p_intFkApp) //M5
|
||
{
|
||
int intPadreItem = 0;
|
||
|
||
try
|
||
{
|
||
//Obtener los datos
|
||
objRolBL = new RolBL();
|
||
objRolBL.objRolEL.Padre = p_intPadre;
|
||
objRolBL.objRolEL.ItemMenu = 0;
|
||
objRolBL.objRolEL.Aplicacion = p_intFkApp;
|
||
DataSet dsPantallas = objRolBL.getComandosxItemxApl(Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]));
|
||
|
||
//Verifica si el Dataset esta vacio
|
||
if (dsPantallas.Tables[0].Rows.Count > 0)
|
||
{
|
||
//Agregar cada pantalla
|
||
foreach (DataRow drPantallas in dsPantallas.Tables[0].Rows)
|
||
{
|
||
TreeNode tdnNodoPantallas = new TreeNode();
|
||
tdnNodoPantallas.Text = drPantallas["ETIQUETAITEMMENU"].ToString();
|
||
tdnNodoPantallas.Value = drPantallas["PKITEMMENU"].ToString();
|
||
intPadreItem = Int32.Parse(drPantallas["PKITEMMENU"].ToString());
|
||
p_tndNodoRaiz.ChildNodes.Add(tdnNodoPantallas);
|
||
//if (ViewState["MODO"].ToString() == "Modifica")
|
||
// tdnNodoPantallas.Checked = true;
|
||
|
||
//Verifica que el Modo se esté en Modificar para checkear los Items Menu
|
||
if (ViewState["MODO"].ToString() == "Modifica")
|
||
{
|
||
//Obtiener el comando consulta
|
||
objRolBL = new RolBL();
|
||
objRolBL.objRolEL.ItemMenu = Int32.Parse(drPantallas["PKITEMMENU"].ToString());
|
||
objRolBL.objRolEL.Aplicacion = p_intFkApp;
|
||
objRolBL.objRolEL.Rol= Int32.Parse(ViewState["PkRol"].ToString());
|
||
|
||
DataSet dsPantallasRole = objRolBL.getComandosxItemxRol();
|
||
//Verifica que el Dataset esté vacío
|
||
if (dsPantallasRole.Tables[0].Rows.Count > 0)
|
||
{
|
||
//Buscar el MenuItem para checkearlo
|
||
foreach (DataRow drPantallasRole in dsPantallasRole.Tables[0].Rows)
|
||
{
|
||
if (drPantallas["PKITEMMENU"].ToString() == drPantallasRole["PKITEMMENU"].ToString())
|
||
{
|
||
if (ViewState["MODO"].ToString() == "Modifica")
|
||
{
|
||
objRolItemMenuComandoBL = new RolItemMenuComandoBL();
|
||
objRolItemMenuComandoBL.objRolItemMenuComandoEL.Rol = Int32.Parse(ViewState["PkRol"].ToString());
|
||
objRolItemMenuComandoBL.objRolItemMenuComandoEL.ItemMenu = Convert.ToInt32(drPantallas["PKITEMMENU"]);
|
||
objRolItemMenuComandoBL.objRolItemMenuComandoEL.Comando = Convert.ToInt32(drPantallas["PKCOMANDO"]);
|
||
tdnNodoPantallas.Checked = objRolItemMenuComandoBL.RolexMenuxComandoCheckeado();
|
||
//if (tdnNodoPantallas.Checked == true)
|
||
// tdnNodoPantallas.Parent.Checked = true;
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
// busco los hijos del hijo
|
||
cargarArbolItems(Int32.Parse(drPantallas["PKITEMMENU"].ToString()), tdnNodoPantallas, p_intFkApp);
|
||
}
|
||
else
|
||
cargarArbolItems(Int32.Parse(drPantallas["PKITEMMENU"].ToString()), tdnNodoPantallas, p_intFkApp);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
cargarComandosItems(p_intPadre, p_tndNodoRaiz);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw ex;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Carga los comandos
|
||
/// </summary>
|
||
/// <param name="p_intPKMenu"></param>
|
||
/// <param name="p_tndNodoPantalla"></param>
|
||
|
||
private void cargarComandosItems(int p_intPKMenu, TreeNode p_tndNodoPantalla) //M6
|
||
{
|
||
try
|
||
{
|
||
objRolBL = new RolBL();
|
||
objRolBL.objRolEL.ItemMenu = p_intPKMenu;
|
||
objRolBL.objRolEL.Aplicacion = Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]);
|
||
DataSet dsComandosRole = objRolBL.getComandosxItem();
|
||
|
||
// si el role, menu y comando tiene comandos
|
||
if (dsComandosRole.Tables[0].Rows.Count != 0 && dsComandosRole.Tables[0].Rows[0]["ETIQUETAITEMMENU"].ToString() != "Inicio")
|
||
{
|
||
// agrego cada comando
|
||
foreach (DataRow drComando in dsComandosRole.Tables[0].Rows)
|
||
{
|
||
TreeNode tdnNodoComandos = new TreeNode();
|
||
tdnNodoComandos.Text = drComando["NOMBRECOMANDO"].ToString();
|
||
tdnNodoComandos.Value = drComando["PKCOMANDO"].ToString();
|
||
tdnNodoComandos.Target = "C";
|
||
p_tndNodoPantalla.ChildNodes.Add(tdnNodoComandos);
|
||
|
||
if (ViewState["MODO"].ToString() == "Modifica")
|
||
{
|
||
objRolItemMenuComandoBL = new RolItemMenuComandoBL();
|
||
objRolItemMenuComandoBL.objRolItemMenuComandoEL.Rol = Int32.Parse(ViewState["PkRol"].ToString());
|
||
objRolItemMenuComandoBL.objRolItemMenuComandoEL.ItemMenu = p_intPKMenu;
|
||
objRolItemMenuComandoBL.objRolItemMenuComandoEL.Comando = Convert.ToInt32(drComando["PKCOMANDO"]);
|
||
tdnNodoComandos.Checked = objRolItemMenuComandoBL.RolexMenuxComandoCheckeado();
|
||
if (tdnNodoComandos.Checked == true)
|
||
tdnNodoComandos.Parent.Checked = true;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw ex;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Llena el combo de actividades
|
||
/// </summary>
|
||
/// <param name="p_Llenar"></param>
|
||
private void llenarDDLActividades() //M7
|
||
{
|
||
try
|
||
{
|
||
//Limpia el control
|
||
ddlActividad.Items.Clear();
|
||
//Instancia el bjeto
|
||
objActividadesBL = new ActividadesBL();
|
||
objActividadesBL.objactividadesEL.ASTATE = true;
|
||
|
||
DataSet dsActividades = objActividadesBL.listarActividadesMantenimiento(null, true, null);
|
||
if (dsActividades.Tables[0].Rows.Count != 0)
|
||
{
|
||
ddlActividad.DataSource = dsActividades;
|
||
ddlActividad.DataTextField = dsActividades.Tables[0].Columns["DESCRIPCIONACTIVIDAD"].ColumnName;
|
||
ddlActividad.DataValueField = dsActividades.Tables[0].Columns["PKACTIVIDAD"].ColumnName;
|
||
ddlActividad.DataBind();
|
||
|
||
ddlActividad.Items.Insert(0, new ListItem("Seleccione", "-1"));
|
||
}
|
||
else
|
||
ddlActividad.Items.Insert(0, new ListItem("----- No existen actividades -----", "-1"));
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw ex;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Carga el grid principal
|
||
/// </summary>
|
||
/// <param name="p_Llenar"></param>
|
||
private void llenarGridViewActividades() //M8
|
||
{
|
||
try
|
||
{
|
||
condicionesBusqueda();
|
||
objRolBL = new RolBL();
|
||
|
||
objRolBL.objRolEL.PK = Convert.ToInt32(ViewState["PkRol"]);
|
||
|
||
DataSet dsActividades = objRolBL.dsListaActividadesPorRol(null);
|
||
if (dsActividades.Tables.Count > 0)
|
||
{
|
||
if (dsActividades.Tables[0].Rows.Count > 0)
|
||
{
|
||
grvListaActividades.DataSource = dsActividades;
|
||
grvListaActividades.DataBind();
|
||
}
|
||
else
|
||
{
|
||
grvListaActividades.DataSource = null;
|
||
grvListaActividades.DataBind();
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw ex;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
} |