using System; using System.Collections; using System.Collections.Specialized; using System.Data; using AyADAL; namespace AyABL { public class AyABL { #region Atributos // Para comunicar la capa BL con la capa AyADL protected BaseDAL baseDAL = new BaseDAL(); /// /// Nombre de la tabla en la base de datos /// protected string NombreTabla { get; set; } // Setea o devuelve los campos que deseo recuperar de la base de datos protected string CamposTabla = "*"; /// /// Nombre de la coneccion a la base de datos /// protected string NombreConeccionBD = "FOPI"; /// /// Nombre de la tabla en la base de datos /// protected string NombreProcedimiento { get; set; } /// /// Guarda los valores ingresados por el usuario los cuales se van a enviar a la base de datos /// protected object[] ValoresCampos { get; set; } private string strSentenciaSQL = ""; private DataSet dsResultado = new DataSet(); #endregion #region Parametros public enum Parametros { } #endregion #region Metodos Personalizados /// /// Carga las condiciones de busqueda ingresadas por el usuario y las convierte a tipo CondicionDAL /// /// /// protected void cargarCondicionBusqueda(ArrayList arlCondicionesDestino, ArrayList condicionesBusquedaOrigen) { if (condicionesBusquedaOrigen != null && condicionesBusquedaOrigen.Count > 0) { foreach (CondicionDAL cdlCondicion in condicionesBusquedaOrigen) { arlCondicionesDestino.Add(cdlCondicion); } } } ///// ///// Método que retorna la llave próxima a insertar en la tabla para ///// llaves que estan definidas como identity ///// ///// Nombre de la tabla ///// string de conexión ///// Proxima PK a insertar public int SiguientePKAutoIncremental(string p_strNombreTabla, string p_strConnectionString) { dsResultado = new DataSet(); int intValorRetornado = 0; strSentenciaSQL = String.Format("{0} {1}('{2}')", clausulasDML.SELECT, funcionesTLAgg.IDENT_CURRENT, p_strNombreTabla); dsResultado = baseDAL.ejecutarConsulta(strSentenciaSQL, null, p_strConnectionString); if (dsResultado != null && dsResultado.Tables[0].Rows.Count > 0 && dsResultado.Tables[0].Rows[0][0] != null && !String.IsNullOrEmpty(dsResultado.Tables[0].Rows[0][0].ToString())) intValorRetornado = (int.Parse(dsResultado.Tables[0].Rows[0][0].ToString()) + 1); else return intValorRetornado; return intValorRetornado; } #endregion #region Condiciones de Busqueda /// /// Devuelve la condicion de busqueda por pk /// /// /// /// protected CondicionDAL buscarPorPK(Nullable p_intPK, Tablas p_nombreTabla, operadorLogico logOp) { CondicionDAL cdlCondicion = new CondicionDAL(); cdlCondicion.valorIzquierdo = Constraints.PK.ToString() + p_nombreTabla.ToString().ToUpper(); cdlCondicion.operadorGeneral = operadorGeneral.EQUAL; cdlCondicion.operadorLogico = logOp; cdlCondicion.valorDerecho = p_intPK; return cdlCondicion; } /// /// Devuelve la condicion de busqueda por fk /// /// /// /// protected CondicionDAL buscarPorFK(Nullable p_intFK, Tablas p_nombreTabla, operadorLogico logOp) { CondicionDAL cdlCondicion = new CondicionDAL(); cdlCondicion.valorIzquierdo = Constraints.FK.ToString() + p_nombreTabla.ToString().ToUpper(); cdlCondicion.operadorGeneral = operadorGeneral.EQUAL; cdlCondicion.operadorLogico = logOp; cdlCondicion.valorDerecho = p_intFK; return cdlCondicion; } protected CondicionDAL buscarPorAstate(Nullable p_blnAstate, Tablas p_nombreTabla, operadorLogico operador) { int intValor = 0; //Se utiliza para hacer la conversión cuando el valor es booleano if (p_blnAstate == true) intValor = 1; else intValor = 0; CondicionDAL cdlCondicion = new CondicionDAL(); cdlCondicion.valorIzquierdo = Concepto.ASTATE.ToString() + p_nombreTabla.ToString().ToUpper(); cdlCondicion.operadorGeneral = operadorGeneral.EQUAL; cdlCondicion.operadorLogico = operador; cdlCondicion.valorDerecho = intValor; return cdlCondicion; } protected CondicionDAL buscarPorVistoBuenoPlanificacion(Nullable p_blnVistoBueno, Tablas p_nombreTabla, operadorLogico operador) { int intValor = 0; //Se utiliza para hacer la conversión cuando el valor es booleano if (p_blnVistoBueno == true) intValor = 1; else intValor = 0; CondicionDAL cdlCondicion = new CondicionDAL(); cdlCondicion.valorIzquierdo = t_agp_proyecto.VISTOBUENOPLANIFICACION.ToString() + p_nombreTabla.ToString().ToUpper(); cdlCondicion.operadorGeneral = operadorGeneral.EQUAL; cdlCondicion.operadorLogico = operador; cdlCondicion.valorDerecho = intValor; return cdlCondicion; } /// /// Devuelve la condicion de busqueda por pk /// /// /// /// protected CondicionDAL buscarPorPadre(Nullable p_intPKPadre, Tablas p_nombreTabla, operadorLogico logOp, operadorGeneral genOp) { CondicionDAL cdlCondicion = new CondicionDAL(); cdlCondicion.valorIzquierdo = Concepto.PADRE.ToString() + p_nombreTabla.ToString().ToUpper(); cdlCondicion.operadorGeneral = genOp; cdlCondicion.operadorLogico = logOp; cdlCondicion.valorDerecho = p_intPKPadre; return cdlCondicion; } /// /// Devuelve la condición de busqueda por prefijo /// /// /// /// /// protected CondicionDAL buscarPorCodigo(string p_strCodigo, Tablas p_nombreTabla, operadorLogico logOp, operadorGeneral genOp) { CondicionDAL cdlCondicion = new CondicionDAL(); cdlCondicion.valorIzquierdo = t_adm_dependencia.CODIGOACCESO.ToString() + p_nombreTabla.ToString().ToUpper(); cdlCondicion.operadorGeneral = genOp; cdlCondicion.operadorLogico = logOp; cdlCondicion.valorDerecho = p_strCodigo; return cdlCondicion; } /// /// Metodo que se utiliza para construir una condicion de los registro que están o no Activos /// /// /// /// protected CondicionDAL buscarPorActivo(Nullable p_blnActivo, Tablas p_nombreTabla, operadorLogico operador) { int intValor = 0; //Se utiliza para hacer la conversión cuando el valor es booleano if (p_blnActivo == true) intValor = 1; else intValor = 0; CondicionDAL cdlCondicion = new CondicionDAL(); cdlCondicion.valorIzquierdo = Concepto.ACTIVO.ToString() + p_nombreTabla.ToString().ToUpper(); cdlCondicion.operadorGeneral = operadorGeneral.EQUAL; cdlCondicion.operadorLogico = operador; cdlCondicion.valorDerecho = intValor; return cdlCondicion; } /// /// /// /// /// /// /// /// public ArrayList buscarPorFechas(Tablas p_nombreTabla, DateTime p_dteFechaInicio, DateTime p_dteFechaFinal, operadorLogico operador) { ArrayList arlCondiciones = new ArrayList(); CondicionDAL cdlCondicion = new CondicionDAL(); cdlCondicion.valorIzquierdo = Concepto.FECHA.ToString() + p_nombreTabla.ToString(); cdlCondicion.operadorGeneral = operadorGeneral.BIGGEREQUALTHAN; cdlCondicion.operadorLogico = operador; cdlCondicion.valorDerecho = p_dteFechaInicio; arlCondiciones.Add(cdlCondicion); cdlCondicion = new CondicionDAL(); cdlCondicion.valorIzquierdo = Concepto.FECHA.ToString() + p_nombreTabla.ToString(); cdlCondicion.operadorGeneral = operadorGeneral.SMALLEREQUALTHAN; cdlCondicion.operadorLogico = operador; cdlCondicion.valorDerecho = p_dteFechaFinal; arlCondiciones.Add(cdlCondicion); return arlCondiciones; } protected CondicionDAL buscarPorColumna(string p_strValor, string p_strColumna, operadorLogico operador) { CondicionDAL cdlCondicion = new CondicionDAL(); cdlCondicion.valorIzquierdo = p_strColumna.ToUpper(); cdlCondicion.operadorGeneral = operadorGeneral.EQUAL; cdlCondicion.operadorLogico = operador; cdlCondicion.valorDerecho = p_strValor; return cdlCondicion; } #endregion } }