using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Data.Common; using AyAEL.AGP; using AyADAL; namespace AyABL.AGP { public class ProyectoBL : AyABL { #region Constructores public ProyectoBL() { objProyectoEL = new ProyectoEL(); this.NombreTabla = Modulos.t_agp_.ToString() + Tablas.proyecto.ToString(); this.NombreConeccionBD = BASESDEDATOS.FOPI.ToString(); } #endregion #region Atributos public ProyectoEL objProyectoEL { get; set; } #endregion #region Metodos /// /// Inluye los datos del Proyecto /// /// public int insertarProyecto() { int intEjecutado = 0; this.CamposTabla = Concepto.NOMBRE.ToString() + Tablas.proyecto.ToString().ToUpper() + ", " + t_agp_proyecto.NUMEROBPIP.ToString() + Tablas.proyecto.ToString().ToUpper() + ", " + t_agp_proyecto.NUMEROACCIONESTRATEGICA.ToString() + Tablas.proyecto.ToString().ToUpper() + ", " + t_agp_proyecto.METAACCIONESTRATEGICA.ToString() + Tablas.proyecto.ToString().ToUpper() + ", " + t_agp_proyecto.BENEFICIARIODIRECTO.ToString() + Tablas.proyecto.ToString().ToUpper() + ", " + t_agp_proyecto.BENEFICIARIOINDIRECTO.ToString() + Tablas.proyecto.ToString().ToUpper() + ", " + t_agp_proyecto.METAINSTITUCIONAL.ToString() + Tablas.proyecto.ToString().ToUpper() + ", " + Concepto.DESCRIPCION.ToString() + Tablas.proyecto.ToString().ToUpper() + ", " + t_agp_proyecto.OBJETIVOGENERAL.ToString() + Tablas.proyecto.ToString().ToUpper() + ", " + t_agp_proyecto.CODIGOACCESO.ToString() + Tablas.proyecto.ToString().ToUpper() + ", " + t_agp_proyecto.CANTON.ToString().ToUpper() + Tablas.proyecto.ToString().ToUpper() + ", " + t_agp_proyecto.DISTRITO.ToString().ToUpper() + Tablas.proyecto.ToString().ToUpper() + ", " + Constraints.FK.ToString() + Tablas.dependencia.ToString().ToUpper() + ", " + Constraints.FK.ToString() + t_agp_proyecto.SECTOR.ToString().ToUpper() + ", " + Constraints.FK.ToString() + t_agp_proyecto.AREATEMATICA.ToString().ToUpper() + ", " + Constraints.FK.ToString() + t_agp_proyecto.AREAINFLUENCIA.ToString().ToUpper() + ", " + Constraints.FK.ToString() + t_agp_proyecto.CATEGORIA.ToString().ToUpper() + ", " + Constraints.FK.ToString() + t_agp_proyecto.PROVINCIA.ToString().ToUpper() + ", " + Constraints.FK.ToString() + t_agp_proyecto.REGION.ToString().ToUpper() + ", " + Constraints.FK.ToString() + t_agp_proyecto.PRIORIDAD.ToString().ToUpper() + "," + t_agp_proyecto.COSTOESTIMADO.ToString() + Tablas.proyecto.ToString().ToUpper() + "," + t_agp_proyecto.PATROCINADOR.ToString() + Tablas.proyecto.ToString().ToUpper() + "," + t_agp_proyecto.LIDER.ToString() + Tablas.proyecto.ToString().ToUpper(); this.ValoresCampos = new object[]{objProyectoEL.Nombre, objProyectoEL.NumeroBPIP, objProyectoEL.NumeroAccionEstrategica, objProyectoEL.MetaAccionEstrategica, objProyectoEL.BeneficiarioDirecto, objProyectoEL.BeneficiarioIndirecto, objProyectoEL.MetaInstitucional, objProyectoEL.Descripcion, objProyectoEL.ObjetivoGeneral, objProyectoEL.CodigoAcceso, objProyectoEL.Canton, objProyectoEL.Distrito, objProyectoEL.Dependencia, objProyectoEL.Sector, objProyectoEL.AreaTematica, objProyectoEL.AreaInfluencia, objProyectoEL.Categoria, objProyectoEL.Provincia, objProyectoEL.Region, objProyectoEL.Prioridad, objProyectoEL.TotalEstimado, objProyectoEL.Patrocinador, objProyectoEL.Lider }; intEjecutado = baseDAL.Insertar(this.NombreTabla, this.CamposTabla, this.ValoresCampos, this.NombreConeccionBD); return intEjecutado; } /// /// Actualiza el dato del Proyecto /// public bool actualizarProyecto() { ArrayList arlCondiciones = new ArrayList(); bool blnEjecutado = false; if (objProyectoEL.PK != 0) { arlCondiciones.Add(this.buscarPorPK(objProyectoEL.PK, Tablas.proyecto, operadorLogico.AND)); } this.CamposTabla = Concepto.NOMBRE.ToString() + Tablas.proyecto.ToString().ToUpper() + ", " + t_agp_proyecto.NUMEROBPIP.ToString() + Tablas.proyecto.ToString().ToUpper() + ", " + t_agp_proyecto.NUMEROACCIONESTRATEGICA.ToString() + Tablas.proyecto.ToString().ToUpper() + ", " + t_agp_proyecto.METAACCIONESTRATEGICA.ToString() + Tablas.proyecto.ToString().ToUpper() + ", " + t_agp_proyecto.BENEFICIARIODIRECTO.ToString() + Tablas.proyecto.ToString().ToUpper() + ", " + t_agp_proyecto.BENEFICIARIOINDIRECTO.ToString() + Tablas.proyecto.ToString().ToUpper() + ", " + t_agp_proyecto.METAINSTITUCIONAL.ToString() + Tablas.proyecto.ToString().ToUpper() + ", " + Concepto.DESCRIPCION.ToString() + Tablas.proyecto.ToString().ToUpper() + ", " + t_agp_proyecto.OBJETIVOGENERAL.ToString() + Tablas.proyecto.ToString().ToUpper() + ", " + Constraints.FK.ToString() + Tablas.dependencia.ToString().ToUpper() + ", " + Constraints.FK.ToString() + t_agp_proyecto.SECTOR.ToString().ToUpper() + ", " + Constraints.FK.ToString() + t_agp_proyecto.AREATEMATICA.ToString().ToUpper() + ", " + Constraints.FK.ToString() + t_agp_proyecto.AREAINFLUENCIA.ToString().ToUpper() + ", " + Constraints.FK.ToString() + t_agp_proyecto.CATEGORIA.ToString().ToUpper() + ", " + Constraints.FK.ToString() + t_agp_proyecto.REGION.ToString().ToUpper() + ", " + Constraints.FK.ToString() + t_agp_proyecto.PRIORIDAD.ToString().ToUpper() + "," + t_agp_proyecto.COSTOESTIMADO.ToString() + Tablas.proyecto.ToString().ToUpper() + "," + t_agp_proyecto.PATROCINADOR.ToString() + Tablas.proyecto.ToString().ToUpper() + "," + t_agp_proyecto.LIDER.ToString() + Tablas.proyecto.ToString().ToUpper(); this.ValoresCampos = new object[]{objProyectoEL.Nombre, objProyectoEL.NumeroBPIP, objProyectoEL.NumeroAccionEstrategica, objProyectoEL.MetaAccionEstrategica, objProyectoEL.BeneficiarioDirecto, objProyectoEL.BeneficiarioIndirecto, objProyectoEL.MetaInstitucional, objProyectoEL.Descripcion, objProyectoEL.ObjetivoGeneral, objProyectoEL.Dependencia, objProyectoEL.Sector, objProyectoEL.AreaTematica, objProyectoEL.AreaInfluencia, objProyectoEL.Categoria, objProyectoEL.Region, objProyectoEL.Prioridad, objProyectoEL.TotalEstimado, objProyectoEL.Patrocinador, objProyectoEL.Lider }; baseDAL.Actualizar(this.NombreTabla, this.CamposTabla, this.ValoresCampos, this.NombreConeccionBD, arlCondiciones); blnEjecutado = true; return blnEjecutado; } public bool actualizarAprobacionProyecto() { ArrayList arlCondiciones = new ArrayList(); bool blnEjecutado = false; if (objProyectoEL.PK != 0) { arlCondiciones.Add(this.buscarPorPK(objProyectoEL.PK, Tablas.proyecto, operadorLogico.AND)); } if (objProyectoEL.VistoBuenoOficina != false) { CamposTabla = t_agp_proyecto.VISTOBUENOOFICINA.ToString() + Tablas.proyecto.ToString().ToUpper(); ValoresCampos = new object[] { objProyectoEL.VistoBuenoOficina }; } if (objProyectoEL.VistoBuenoSubGerencia != false) { CamposTabla = t_agp_proyecto.VISTOBUENOSUBGERENCIA.ToString() + Tablas.proyecto.ToString().ToUpper(); ValoresCampos = new object[] { objProyectoEL.VistoBuenoSubGerencia }; } if (objProyectoEL.VistoBuenoPlanificacion != false) { CamposTabla = t_agp_proyecto.VISTOBUENOPLANIFICACION.ToString() + Tablas.proyecto.ToString().ToUpper(); ValoresCampos = new object[] { objProyectoEL.VistoBuenoPlanificacion }; } baseDAL.Actualizar(this.NombreTabla, this.CamposTabla, this.ValoresCampos, this.NombreConeccionBD, arlCondiciones); blnEjecutado = true; return blnEjecutado; } public bool mantenimientoProyecto() { ArrayList arlCondiciones = new ArrayList(); bool blnEjecutado = false; if (objProyectoEL.PK != 0) { arlCondiciones.Add(this.buscarPorPK(objProyectoEL.PK, Tablas.proyecto, operadorLogico.AND)); } this.CamposTabla = t_agp_proyecto.CODIGOACCESO.ToString() + Tablas.proyecto.ToString().ToUpper() + ", " + t_agp_proyecto.NUMEROBPIP.ToString() + Tablas.proyecto.ToString().ToUpper() + "," + Constraints.FK.ToString() + Tablas.estado.ToString().ToUpper() + "," + Constraints.FK.ToString() + Tablas.complejidad.ToString().ToUpper() + "," + Constraints.FK.ToString() + Tablas.programa.ToString().ToUpper(); this.ValoresCampos = new object[]{objProyectoEL.CodigoAcceso, objProyectoEL.NumeroBPIP, objProyectoEL.Estado, objProyectoEL.Complejidad, objProyectoEL.Programa }; baseDAL.Actualizar(this.NombreTabla, this.CamposTabla, this.ValoresCampos, this.NombreConeccionBD, arlCondiciones); blnEjecutado = true; return blnEjecutado; } /// /// Actualiza el estado del Proyecto /// public bool actualizaEstadoProyecto() { ArrayList arlCondiciones = new ArrayList(); bool blnEjecutado = false; if (objProyectoEL.PK != 0) { arlCondiciones.Add(this.buscarPorPK(objProyectoEL.PK, Tablas.proyecto, operadorLogico.AND)); } this.CamposTabla = Concepto.ASTATE.ToString() + Tablas.proyecto.ToString(); this.ValoresCampos = new object[] { objProyectoEL.ASTATE = false }; baseDAL.Actualizar(this.NombreTabla, this.CamposTabla, this.ValoresCampos, this.NombreConeccionBD, arlCondiciones); blnEjecutado = true; return blnEjecutado; } public bool actualizaDependenciaProyecto() { ArrayList arlCondiciones = new ArrayList(); bool blnEjecutado = false; if (objProyectoEL.PK != 0) { arlCondiciones.Add(this.buscarPorPK(objProyectoEL.PK, Tablas.proyecto, operadorLogico.AND)); } this.CamposTabla = t_agp_proyecto.CODIGOACCESO.ToString() + Tablas.proyecto.ToString(); this.ValoresCampos = new object[] { objProyectoEL.CodigoAcceso }; baseDAL.Actualizar(this.NombreTabla, this.CamposTabla, this.ValoresCampos, this.NombreConeccionBD, arlCondiciones); blnEjecutado = true; return blnEjecutado; } /// /// Lista los Proyectoes /// /// public DataSet getProyectos() { ArrayList arlCondiciones = new ArrayList(); if (this.objProyectoEL.PK != 0) { arlCondiciones.Add(buscarPorPK(objProyectoEL.PK, Tablas.proyecto, operadorLogico.AND)); } if (this.objProyectoEL.CodigoAcceso != null) { arlCondiciones.Add(buscarPorCodigo(objProyectoEL.CodigoAcceso, Tablas.proyecto, operadorLogico.AND, operadorGeneral.LIKE)); } arlCondiciones.Add(buscarPorAstate(true, Tablas.proyecto, operadorLogico.NONE)); CamposTabla = "*, " + t_agp_proyecto.NUMEROBPIP.ToString() + Tablas.proyecto.ToString().ToUpper() + " + ' - ' + " + Concepto.NOMBRE.ToString() + Tablas.proyecto.ToString().ToUpper() + " AS NOMBREPROYECTO2"; this.NombreTabla += " LEFT JOIN t_adm_estado ON FKESTADO = PKESTADO"; DataSet dsProyecto = baseDAL.EjecutarConsulta(this.NombreTabla, this.CamposTabla, this.NombreConeccionBD, arlCondiciones, null, " ORDER BY NOMBREPROYECTO ASC "); return dsProyecto; } public DataSet getFichaProyecto() { ArrayList arlCondiciones = new ArrayList(); arlCondiciones.Add(buscarPorPK(objProyectoEL.PK, Tablas.proyecto, operadorLogico.AND)); CamposTabla = "*"; NombreTabla = Vistas.v_fichaproyecto.ToString(); DataSet dsProyecto = baseDAL.EjecutarConsulta(this.NombreTabla, this.CamposTabla, this.NombreConeccionBD, arlCondiciones, null, " ORDER BY PKProyecto ASC "); return dsProyecto; } public DataSet getListadoProyectos(ArrayList arlCondicionesFiltroBusqueda) { ArrayList arlCondiciones = new ArrayList(); if (arlCondicionesFiltroBusqueda != null) { cargarCondicionBusqueda(arlCondiciones, arlCondicionesFiltroBusqueda); } //Este cambio se hizo para el nuevo requerimiento de la minuta, verificar en el listado de intranet if (this.objProyectoEL.CodigoAcceso != null) { arlCondiciones.Add(buscarPorCodigo(objProyectoEL.CodigoAcceso, Tablas.proyecto, operadorLogico.AND, operadorGeneral.LIKE)); } CamposTabla = "*"; NombreTabla = Vistas.v_fichaproyecto.ToString(); DataSet dsProyecto = baseDAL.EjecutarConsulta(this.NombreTabla, this.CamposTabla, this.NombreConeccionBD, arlCondiciones, null, "ORDER BY NOMBREPROYECTO"); return dsProyecto; } /// /// metodo para verificar si existe un proyecto con el mismo nombre /// /// public bool verificaProyecto() { bool blnValorRetornado = false; ArrayList arlCondiciones = new ArrayList(); if (objProyectoEL.NumeroBPIP != "Sin Asignar" && objProyectoEL.NumeroBPIP != null) { arlCondiciones.Add(buscarPorNombre(objProyectoEL.Nombre, Tablas.proyecto, operadorLogico.OR)); arlCondiciones.Add(buscarPorBPIP(objProyectoEL.NumeroBPIP, Tablas.proyecto, operadorLogico.AND)); } else arlCondiciones.Add(buscarPorNombre(objProyectoEL.Nombre, Tablas.proyecto, operadorLogico.AND)); arlCondiciones.Add(buscarPorAstate(true, Tablas.proyecto, operadorLogico.NONE)); DataSet dsProyecto = baseDAL.EjecutarConsulta(this.NombreTabla, this.CamposTabla, this.NombreConeccionBD, arlCondiciones, null, null); if (dsProyecto.Tables[0].Rows.Count == 0) blnValorRetornado = true; return blnValorRetornado; } /// /// Lista los Proyecto disponibles para asignar a Líderes de Proyectos /// /// public DataSet getProyectosParaAsignar() { ArrayList arlCondiciones = new ArrayList(); if (this.objProyectoEL.PK != 0) { arlCondiciones.Add(buscarPorPK(objProyectoEL.PK, Tablas.proyecto, operadorLogico.AND)); } arlCondiciones.Add(buscarPorAstate(true, Tablas.proyecto, operadorLogico.AND)); arlCondiciones.Add(buscarPorVistoBuenoPlanificacion(true, Tablas.proyecto, operadorLogico.NONE)); DataSet dsProyecto = baseDAL.EjecutarConsulta(this.NombreTabla, this.CamposTabla, this.NombreConeccionBD, arlCondiciones, null, " ORDER BY PKProyecto ASC "); return dsProyecto; } /// /// Lista los Proyecto disponibles para asignar a Líderes de Proyectos por Región /// /// dataSet public DataSet getProyectosParaAsignar(int pkRegion) { ArrayList arlCondiciones = new ArrayList(); DataSet dsProyecto = baseDAL.ejecutarConsulta("SELECT p.PKPROYECTO, p.NOMBREPROYECTO FROM dbo.t_agp_proyecto p " + "JOIN dbo.t_igp_informaciongeneral i ON i.FKPROYECTO = p.PKPROYECTO WHERE i.FKREGION = " + pkRegion + " AND p.ASTATEPROYECTO = 1 AND p.VISTOBUENOPLANIFICACIONPROYECTO = 1", arlCondiciones, this.NombreConeccionBD); return dsProyecto; } public bool actualizaNivel1() { ArrayList arlCondiciones = new ArrayList(); bool blnEjecutado = false; if (objProyectoEL.PK != 0) { arlCondiciones.Add(this.buscarPorPK(objProyectoEL.PK, Tablas.proyecto, operadorLogico.AND)); } this.NombreTabla = Modulos.t_agp_.ToString() + Tablas.proyecto.ToString(); this.CamposTabla = t_agp_proyecto.VISTOBUENOOFICINA.ToString() + Tablas.proyecto.ToString(); this.ValoresCampos = new object[] { objProyectoEL.VistoBuenoOficina = true }; baseDAL.Actualizar(this.NombreTabla, this.CamposTabla, this.ValoresCampos, this.NombreConeccionBD, arlCondiciones); blnEjecutado = true; return blnEjecutado; } public bool actualizaNivel2() { ArrayList arlCondiciones = new ArrayList(); bool blnEjecutado = false; if (objProyectoEL.PK != 0) { arlCondiciones.Add(this.buscarPorPK(objProyectoEL.PK, Tablas.proyecto, operadorLogico.AND)); } this.NombreTabla = Modulos.t_agp_.ToString() + Tablas.proyecto.ToString(); this.CamposTabla = t_agp_proyecto.VISTOBUENOSUBGERENCIA.ToString() + Tablas.proyecto.ToString(); this.ValoresCampos = new object[] { objProyectoEL.VistoBuenoSubGerencia = true }; baseDAL.Actualizar(this.NombreTabla, this.CamposTabla, this.ValoresCampos, this.NombreConeccionBD, arlCondiciones); blnEjecutado = true; return blnEjecutado; } public bool actualizaPlanificacion() { ArrayList arlCondiciones = new ArrayList(); bool blnEjecutado = false; if (objProyectoEL.PK != 0) { arlCondiciones.Add(this.buscarPorPK(objProyectoEL.PK, Tablas.proyecto, operadorLogico.AND)); } this.NombreTabla = Modulos.t_agp_.ToString() + Tablas.proyecto.ToString(); this.CamposTabla = t_agp_proyecto.VISTOBUENOPLANIFICACION.ToString() + Tablas.proyecto.ToString(); this.ValoresCampos = new object[] { objProyectoEL.VistoBuenoPlanificacion = true }; baseDAL.Actualizar(this.NombreTabla, this.CamposTabla, this.ValoresCampos, this.NombreConeccionBD, arlCondiciones); blnEjecutado = true; return blnEjecutado; } public bool reinicioAprobaciones() { ArrayList arlCondiciones = new ArrayList(); bool blnEjecutado = false; this.NombreTabla = Modulos.t_agp_.ToString() + Tablas.proyecto.ToString(); this.CamposTabla = t_agp_proyecto.VISTOBUENOOFICINA.ToString() + Tablas.proyecto.ToString() + ", " + t_agp_proyecto.VISTOBUENOSUBGERENCIA.ToString() + Tablas.proyecto.ToString() + ", " + t_agp_proyecto.VISTOBUENOPLANIFICACION.ToString() + Tablas.proyecto.ToString(); this.ValoresCampos = new object[] { objProyectoEL.VistoBuenoOficina, objProyectoEL.VistoBuenoSubGerencia, objProyectoEL.VistoBuenoPlanificacion}; baseDAL.Actualizar(this.NombreTabla, this.CamposTabla, this.ValoresCampos, this.NombreConeccionBD, arlCondiciones); blnEjecutado = true; return blnEjecutado; } #endregion #region Condiciones de Busqueda protected CondicionDAL buscarPorNombre(string p_strNombre, Tablas p_nombreTabla, operadorLogico logOp) { CondicionDAL cdlCondicion = new CondicionDAL(); if (objProyectoEL.NumeroBPIP != "Sin Asignar" && objProyectoEL.NumeroBPIP != null) cdlCondicion.valorIzquierdo = "(" + Concepto.NOMBRE.ToString() + p_nombreTabla.ToString().ToUpper(); else cdlCondicion.valorIzquierdo = Concepto.NOMBRE.ToString() + p_nombreTabla.ToString().ToUpper(); cdlCondicion.operadorGeneral = operadorGeneral.EQUAL; cdlCondicion.operadorLogico = logOp; cdlCondicion.valorDerecho = p_strNombre; return cdlCondicion; } protected CondicionDAL buscarPorBPIP(string p_strBPIP, Tablas p_nombreTabla, operadorLogico logOp) { CondicionDAL cdlCondicion = new CondicionDAL(); cdlCondicion.valorIzquierdo = t_agp_proyecto.NUMEROBPIP.ToString() + p_nombreTabla.ToString().ToUpper(); cdlCondicion.operadorGeneral = operadorGeneral.EQUAL; cdlCondicion.operadorLogico = logOp; cdlCondicion.valorDerecho = p_strBPIP; cdlCondicion.parentesisFinal = true; return cdlCondicion; } #endregion } }