TFS_ANTIGUO/AYA.FROPI/AyABL/AGP/ProyectoBL.cs
Administrador 50700fd78b Solución FROPI
git-tfs-id: [http://192.168.1.10:8080/tfs/AyA]$/SINORT;C491
2019-05-27 14:46:35 +00:00

532 lines
24 KiB
C#

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
/// <summary>
/// Inluye los datos del Proyecto
/// </summary>
/// <returns></returns>
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;
}
/// <summary>
/// Actualiza el dato del Proyecto
/// </summary>
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;
}
/// <summary>
/// Actualiza el estado del Proyecto
/// </summary>
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;
}
/// <summary>
/// Lista los Proyectoes
/// </summary>
/// <returns></returns>
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;
}
/// <summary>
/// metodo para verificar si existe un proyecto con el mismo nombre
/// </summary>
/// <returns></returns>
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;
}
/// <summary>
/// Lista los Proyecto disponibles para asignar a Líderes de Proyectos
/// </summary>
/// <returns></returns>
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;
}
/// <summary>
/// Lista los Proyecto disponibles para asignar a Líderes de Proyectos por Región
/// </summary>
/// <returns>dataSet</returns>
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
}
}