using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Data.Common; using AyAEL.APL; using AyADAL; namespace AyABL.APL { public class ItemMenuBL : AyABL { #region Constructores public ItemMenuBL() { objItemMenuEL = new ItemMenuEL(); } #endregion #region Atributos public ItemMenuEL objItemMenuEL { get; set; } DbParameter[] dbpParametros; DbProviderFactory dpfConector = DbProviderFactories.GetFactory("System.Data.SqlClient"); #endregion #region Metodos /// /// Inserción, actualización y borrado de los datos /// /// /// /// public bool blnItemMenu(ItemMenuEL p_objItemMenuEL, string p_strAccion) { bool blnValorPermitido = false; dbpParametros = new DbParameter[11]; for (int i = 0; i < dbpParametros.Length; i++) { dbpParametros[i] = dpfConector.CreateParameter(); } dbpParametros[0].ParameterName = "@P_ACCION"; dbpParametros[0].Value = p_strAccion; dbpParametros[0].DbType = DbType.String; dbpParametros[1].ParameterName = "@P_PKITEMMENU"; dbpParametros[1].Value = p_objItemMenuEL.PK; dbpParametros[1].DbType = DbType.Int32; dbpParametros[2].ParameterName = "@P_PADRE"; dbpParametros[2].Value = p_objItemMenuEL.Orden; dbpParametros[2].DbType = DbType.Int32; dbpParametros[3].ParameterName = "@P_ORDEN"; dbpParametros[3].Value = p_objItemMenuEL.Orden; dbpParametros[3].DbType = DbType.Int32; dbpParametros[4].ParameterName = "@P_ETIQUETA"; dbpParametros[4].Value = p_objItemMenuEL.Etiqueta; dbpParametros[4].DbType = DbType.String; dbpParametros[5].ParameterName = "@P_PAGINA"; dbpParametros[5].Value = p_objItemMenuEL.Pagina; dbpParametros[5].DbType = DbType.String; dbpParametros[6].ParameterName = "@P_IMAGEN"; dbpParametros[6].Value = p_objItemMenuEL.Imagen; dbpParametros[6].DbType = DbType.String; dbpParametros[7].ParameterName = "@P_ASTATE"; dbpParametros[7].Value = p_objItemMenuEL.Activo; dbpParametros[7].DbType = DbType.String; dbpParametros[8].ParameterName = "@P_FKAPLICACION"; dbpParametros[8].Value = p_objItemMenuEL.Aplicacion; dbpParametros[8].DbType = DbType.Int32; dbpParametros[9].ParameterName = "@P_STATUS"; dbpParametros[9].DbType = DbType.String; dbpParametros[9].Size = 2; dbpParametros[9].Direction = ParameterDirection.InputOutput; dbpParametros[10].ParameterName = "@P_MENSAJE"; dbpParametros[10].DbType = DbType.String; dbpParametros[10].Size = 500; dbpParametros[10].Direction = ParameterDirection.InputOutput; baseDAL.dsProcedimientoAlmacenado("PA_T_ITEMMENU", dbpParametros, NombreConeccionBD); return blnValorPermitido; } /// /// Se utiliza para listar los registros de la vista v_cargarmenu /// /// /// public DataSet dsCargarMenu(ItemMenuEL p_objItemMenuEL) { try { this.NombreTabla = Vistas.v_comandosxitemmenu.ToString(); ArrayList arlCondiciones = new ArrayList(); arlCondiciones.Add(buscarPorPK(objItemMenuEL.Rol, Tablas.ROL, operadorLogico.AND)); arlCondiciones.Add(buscarPorComando("Consulta", operadorLogico.AND)); return baseDAL.EjecutarConsulta(this.NombreTabla, this.CamposTabla, this.NombreConeccionBD, arlCondiciones, null, FuncionesBLAggDAL.OrderByASC("PKITEMMENU")); } catch (Exception ex) { throw ex; } } /// /// Se utiliza para cargar el arbol que despliega el menu en la pantalla de roles /// /// public DataSet dsCargarArbolMenu() { try { this.NombreTabla = Vistas.v_menuconsulta.ToString(); ArrayList arlCondiciones = new ArrayList(); arlCondiciones.Add(buscarPorPadre(Convert.ToInt32(objItemMenuEL.Padre), Tablas.ITEMMENU, operadorLogico.AND, operadorGeneral.EQUAL)); arlCondiciones.Add(buscarPorApp(objItemMenuEL.Aplicacion, operadorLogico.NONE)); return baseDAL.EjecutarConsulta(this.NombreTabla, this.CamposTabla, this.NombreConeccionBD, arlCondiciones, null, FuncionesBLAggDAL.OrderByASC("ORDENITEMMENU")); } catch (Exception ex) { throw ex; } } /// /// Se utiliza para cargar el treeview en la pagina de Roles /// /// /// public DataSet dsMenuxRole() { try { this.NombreTabla = Vistas.v_menuxrole.ToString(); ArrayList arlCondiciones = new ArrayList(); //CamposTabla = Constraints.PK.ToString() + Tablas.ITEMMENU.ToString() + ", " + // Concepto.PADRE.ToString() + Tablas.ITEMMENU.ToString() + ", " + // t_ads_menuitem.ORDEN.ToString() + Tablas.ITEMMENU.ToString() + ", " + // Concepto.NOMBRE.ToString() + Tablas.ROL.ToString() + ", " + // t_ads_menuitem.ETIQUETA.ToString() + Tablas.ITEMMENU.ToString() + ", " + // t_ads_menuitem.URL.ToString() + Tablas.ITEMMENU.ToString(); //arlCondiciones.Add(buscarPorComando(objItemMenuEL.Comando, operadorLogico.AND)); arlCondiciones.Add(buscarPorPadre(Convert.ToInt32(objItemMenuEL.Padre), Tablas.ITEMMENU, operadorLogico.AND, operadorGeneral.EQUAL)); arlCondiciones.Add(buscarPorRol(objItemMenuEL.Rol, operadorLogico.AND)); arlCondiciones.Add(buscarPorFK( objItemMenuEL.Aplicacion, Tablas.APLICACION, operadorLogico.NONE)); return baseDAL.EjecutarConsulta(this.NombreTabla, this.CamposTabla, this.NombreConeccionBD, arlCondiciones, null, FuncionesBLAggDAL.OrderByASC(Concepto.PADRE.ToString() + Tablas.ITEMMENU.ToString() + ", " + t_ads_menuitem.ORDEN.ToString() + Tablas.ITEMMENU.ToString())); } catch (Exception ex) { throw ex; } } /// /// Devuelve la condicion de busqueda por descripcion del comando /// /// private CondicionDAL buscarPorURL(operadorLogico operador) { CondicionDAL cdlCondicion = new CondicionDAL(); cdlCondicion.valorIzquierdo = t_ads_menuitem.URL.ToString() + Tablas.ITEMMENU.ToString(); cdlCondicion.operadorGeneral = operadorGeneral.EQUAL; cdlCondicion.operadorLogico = operador; cdlCondicion.valorDerecho = objItemMenuEL.URL; return cdlCondicion; } /// /// Carga todas los comando opciones del menuitem para un role especifico (para que la cargue necesita tener el comando Consultar) /// /// /// public DataSet obtenerItemMenuRol(int p_intPKRole) { try { this.NombreTabla = Vistas.v_comandosxitemxrol.ToString(); ArrayList arlCondiciones = new ArrayList(); arlCondiciones.Add(buscarPorPK(p_intPKRole, Tablas.ROL, operadorLogico.AND)); arlCondiciones.Add(buscarPorURL(operadorLogico.NONE)); return baseDAL.EjecutarConsulta(this.NombreTabla, this.CamposTabla, this.NombreConeccionBD, arlCondiciones, null, null); } catch (Exception ex) { throw ex; } } /// /// Devuelve la condicion de busqueda por la Pk de Comandos /// /// /// private CondicionDAL buscarPorComando(Nullable p_intPkComando, operadorLogico operador) { CondicionDAL cdlCondicion = new CondicionDAL(); cdlCondicion.valorIzquierdo = Constraints.PK.ToString() + Tablas.COMANDO.ToString(); cdlCondicion.operadorGeneral = operadorGeneral.EQUAL; cdlCondicion.operadorLogico = operador; cdlCondicion.valorDerecho = p_intPkComando; return cdlCondicion; } /// /// Devuelve la condicion de busqueda por el nombre del comando /// /// /// private CondicionDAL buscarPorComando(string p_strDescripcionComando, operadorLogico operador) { CondicionDAL cdlCondicion = new CondicionDAL(); cdlCondicion.valorIzquierdo = Concepto.NOMBRE.ToString() + Tablas.COMANDO.ToString(); cdlCondicion.operadorGeneral = operadorGeneral.EQUAL; cdlCondicion.operadorLogico = operador; cdlCondicion.valorDerecho = p_strDescripcionComando; return cdlCondicion; } /// /// Devuelve la condicion de busqueda por descripcion del comando /// /// private CondicionDAL buscarPorApp(int p_intApp, operadorLogico operador) { CondicionDAL cdlCondicion = new CondicionDAL(); cdlCondicion.valorIzquierdo = Constraints.FK.ToString() + Tablas.APLICACION.ToString(); cdlCondicion.operadorGeneral = operadorGeneral.EQUAL; cdlCondicion.operadorLogico = operador; cdlCondicion.valorDerecho = p_intApp; return cdlCondicion; } private CondicionDAL buscarPorRol(Nullable p_intPkRol, operadorLogico operador) { CondicionDAL cdlCondicion = new CondicionDAL(); cdlCondicion.valorIzquierdo = Constraints.PK.ToString() + Tablas.ROL.ToString(); cdlCondicion.operadorGeneral = operadorGeneral.EQUAL; cdlCondicion.operadorLogico = operador; cdlCondicion.valorDerecho = p_intPkRol; return cdlCondicion; } /// /// Devuelve la condicion de busqueda por descripcion del comando /// /// private CondicionDAL buscarPorApp1(int p_intApp, operadorLogico operador) { CondicionDAL cdlCondicion = new CondicionDAL(); cdlCondicion.parentesisInicio = true; cdlCondicion.valorIzquierdo = Constraints.FK.ToString() + Tablas.APLICACION.ToString(); cdlCondicion.operadorGeneral = operadorGeneral.EQUAL; cdlCondicion.operadorLogico = operador; cdlCondicion.valorDerecho = p_intApp; return cdlCondicion; } /// /// Devuelve la condicion de busqueda por descripcion del comando /// /// private CondicionDAL buscarPorApp2(int p_intApp, operadorLogico operador) { CondicionDAL cdlCondicion = new CondicionDAL(); cdlCondicion.parentesisFinal = true; cdlCondicion.valorIzquierdo = Constraints.FK.ToString() + Tablas.APLICACION.ToString(); cdlCondicion.operadorGeneral = operadorGeneral.EQUAL; cdlCondicion.operadorLogico = operador; cdlCondicion.valorDerecho = p_intApp; return cdlCondicion; } #endregion } }