TFS_ANTIGUO/SIGPC/AyABL/APL/ItemMenuBL.cs
kledezma 7fdadc4709 KLB
git-tfs-id: [http://192.168.1.10:8080/tfs/AyA]$/SINORT;C519
2021-01-22 15:05:35 +00:00

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
}
}