325 lines
13 KiB
C#
325 lines
13 KiB
C#
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
|
|
|
|
/// <summary>
|
|
/// Inserción, actualización y borrado de los datos
|
|
/// </summary>
|
|
/// <param name="p_objItemMenuEL"></param>
|
|
/// <param name="p_strAccion"></param>
|
|
/// <returns></returns>
|
|
|
|
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;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Se utiliza para listar los registros de la vista v_cargarmenu
|
|
/// </summary>
|
|
/// <param name="p_objItemMenuEL"></param>
|
|
/// <returns></returns>
|
|
|
|
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;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// Se utiliza para cargar el arbol que despliega el menu en la pantalla de roles
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
|
|
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;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// Se utiliza para cargar el treeview en la pagina de Roles
|
|
/// </summary>
|
|
/// <param name="p_objItemMenuEL"></param>
|
|
/// <returns></returns>
|
|
|
|
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;
|
|
}
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// Devuelve la condicion de busqueda por descripcion del comando
|
|
/// </summary>
|
|
/// <param name="operador"></param>
|
|
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;
|
|
}
|
|
/// <summary>
|
|
/// Carga todas los comando opciones del menuitem para un role especifico (para que la cargue necesita tener el comando Consultar)
|
|
/// </summary>
|
|
/// <param name="p_intPKRole"></param>
|
|
/// <returns></returns>
|
|
|
|
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;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Devuelve la condicion de busqueda por la Pk de Comandos
|
|
/// </summary>
|
|
/// <param name="p_intPkComando"></param>
|
|
/// <param name="operador"></param>
|
|
|
|
private CondicionDAL buscarPorComando(Nullable<int> 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;
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// Devuelve la condicion de busqueda por el nombre del comando
|
|
/// </summary>
|
|
/// <param name="p_strDescripcionComando"></param>
|
|
/// <param name="operador"></param>
|
|
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;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Devuelve la condicion de busqueda por descripcion del comando
|
|
/// </summary>
|
|
/// <param name="operador"></param>
|
|
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<int> 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;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Devuelve la condicion de busqueda por descripcion del comando
|
|
/// </summary>
|
|
/// <param name="operador"></param>
|
|
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;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Devuelve la condicion de busqueda por descripcion del comando
|
|
/// </summary>
|
|
/// <param name="operador"></param>
|
|
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
|
|
}
|
|
}
|