/*===========================================================================================================================
* Instituto Costarricense de Acueductos y Alcantarillados. - 2016
* Formularios para Proyectos de Inversión
* Nombre de la Pantalla: frwRecurso.aspx
*
* Explicación de los contenidos del archivo
*===========================================================================================================================
* HISTORIAL
*
* PERSONA DIA – MES - AÑO DESCRIPCIÓN
* Esteban Gutierrez Rapso 07 – 12 - 2016 Se inicia con el diseño de la pagina
* Pamela Quesada Calderón 16 – 02 - 2017 Se termina con el diseño de la pagina
* …………………………………………………………
* …………………………………………………………
*===========================================================================================================================
* Derechos Reservados (C) 2016 AyA.
* ESTE CÓDIGO ES PROVEÍDO “TAL CUAL ES” SIN GARANTÍA ALGUNA
* DE NINGÚN TIPO, SEA IMPLICITA O EXPLICITA.
* NO SE PERMITE SU REPRODUCCIÓN PARCIAL O TOTAL, NI SU COMERCIALIZACIÓN
*===========================================================================================================================
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using AyABL;
using AyADAL;
using AyABL.RCS;
using AyABL.RHP;
using AyABL.AGP;
using AyABL.ADM;
public partial class webforms_RHP_wfrRecurso : General
{
#region Inicializar Formulario (R0)
override protected void OnInit(EventArgs e) //M0
{
try
{
base.OnInit(e);
InicializarFormulario();
}
catch (Exception ex)
{
MensajeError("Error en R0M0", ex);
}
}
private void InicializarFormulario() //M1
{
try
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
}
catch (Exception ex)
{
MensajeError("Error en R0M1", ex);
}
}
#endregion
#region Variables (R1)
ProyectoBL objProyectoBL;
RequerimientoRecursoBL objRequerimientoRecursoBL;
TipoRecursoHumanoBL objTipoRecursoHumanoBL;
#endregion
#region Eventos Formulario (R2)
protected void Page_Load(object sender, EventArgs e) //M0
{
try
{
if ((!IsPostBack) && (Session.Count > 0))
{
llenarDDLProyecto();
ComandosxMenu();
if (Session["PKPROYECTO"] != null)
{
ddlProyecto.SelectedValue = Session["PKPROYECTO"].ToString();
ddlProyecto_SelectedIndexChanged(null, null);
}
}
}
catch (Exception ex)
{
MensajeError("Error en R2M0", ex);
}
}
#endregion
#region Eventos Controles Web (R3)
///
/// Activa el evento del boton guardar.1
///
///
///
protected void btnGuardar_Click(object sender, EventArgs e) //M0
{
try
{
if (GuardarDatos())
{
MensajeInformativo("El registro fue almacenado exitosamente");
}
else
{
MensajeError("El registro no fue almacenado, verifique", null);
}
}
catch (Exception ex)
{
MensajeError("Error en R3M0", ex);
}
}
protected void btnModificar_Click(object sender, EventArgs e) //M1
{
try
{
if (ModificarDatos())
{
MensajeInformativo("El registro fue modificado exitosamente");
}
else
{
MensajeError("El registro no fue modificado, verifique", null);
}
}
catch (Exception ex)
{
MensajeError("Error en R3M1", ex);
}
}
protected void btnEliminar_Click(object sender, EventArgs e) //M2
{
EliminarDatos();
llenarDDLProyecto();
Response.Redirect(Request.RawUrl);
}
protected void ddlProyecto_SelectedIndexChanged(object sender, EventArgs e) //M3
{
try
{
ViewState["PkProyecto"] = ddlProyecto.SelectedValue;
Session["PKPROYECTO"] = ddlProyecto.SelectedValue;
//Recarga Datos
mostrarDatos();
}
catch (Exception ex)
{
MensajeError("Error en R3M3", ex);
}
}
#endregion
#region Metodos Personalizados (R4)
private void ComandosxMenu() //M0
{
try
{
DataSet dsComandos = getComandos();
if (dsComandos != null)
{
foreach (DataRow drTemp in dsComandos.Tables[0].Rows)
{
switch (drTemp["NOMBRECOMANDO"].ToString().ToUpper())
{
case "NUEVO":
break;
case "ELIMINAR":
btnEliminar.Visible = true;
break;
case "MODIFICA":
//Inicio de variable tipo VIEWSTATE
ViewState["PUEDEMODIFICAR"] = true;
break;
}
}
}
}
catch (Exception ex)
{
MensajeError("Error en R4M0", ex);
}
}
private void limpiarCampos() //M1
{
txtCantidadPAP.Value = string.Empty;
txtCantidadPE.Value = string.Empty;
txtCantidadPO.Value = string.Empty;
txtCantidadCAP.Value = string.Empty;
txtCantidadCE.Value = string.Empty;
txtCantidadCO.Value = string.Empty;
txtCantidadNAP.Value = string.Empty;
txtCantidadNE.Value = string.Empty;
txtCantidadNO.Value = string.Empty;
}
#endregion
#region Metodos Controles a Datos (R5)
///
/// guarda y modifica registros en la tabla.
///
///
private bool GuardarDatos() //M0
{
bool blnEjecutado = false;
try
{
if (ddlProyecto.SelectedIndex != -1)
{
objRequerimientoRecursoBL = new RequerimientoRecursoBL();
//Se guardar el recurso de tipo Profesional
objRequerimientoRecursoBL.objRequerimientoRecursoEL.CantidadAP = Convert.ToInt32(txtCantidadPAP.Value);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.CantidadECP = Convert.ToInt32(txtCantidadPE.Value);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.CantidadPPP = Convert.ToInt32(txtCantidadPO.Value);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.Proyecto = Convert.ToInt32(ViewState["PkProyecto"]);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.TipoRecurso = 1;
//objRequerimientoRecursoBL.objRequerimientoRecursoEL.PK = Convert.ToInt32(hdfIdReqRec1.Value);
hdfIdReqRec1.Value = objRequerimientoRecursoBL.insertarRequerimientoRecursoBL().ToString();
//Se guardar el recurso de tipo Calificado / Tecnico
objRequerimientoRecursoBL.objRequerimientoRecursoEL.CantidadAP = Convert.ToInt32(txtCantidadCAP.Value);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.CantidadECP = Convert.ToInt32(txtCantidadCE.Value);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.CantidadPPP = Convert.ToInt32(txtCantidadCO.Value);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.Proyecto = Convert.ToInt32(ViewState["PkProyecto"]);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.TipoRecurso = 2;
//objRequerimientoRecursoBL.objRequerimientoRecursoEL.PK = Convert.ToInt32(hdfIdReqRec2.Value);
hdfIdReqRec2.Value = objRequerimientoRecursoBL.insertarRequerimientoRecursoBL().ToString();
//Se guardar el recurso de tipo No Calificado
objRequerimientoRecursoBL.objRequerimientoRecursoEL.CantidadAP = Convert.ToInt32(txtCantidadNAP.Value);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.CantidadECP = Convert.ToInt32(txtCantidadNE.Value);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.CantidadPPP = Convert.ToInt32(txtCantidadNO.Value);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.Proyecto = Convert.ToInt32(ViewState["PkProyecto"]);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.TipoRecurso = 3;
//objRequerimientoRecursoBL.objRequerimientoRecursoEL.PK = Convert.ToInt32(hdfIdReqRec3.Value);
hdfIdReqRec3.Value = objRequerimientoRecursoBL.insertarRequerimientoRecursoBL().ToString();
blnEjecutado = true;
GuardarEventoBitacora(
Session["LOGIN"].ToString(),
AccionBitacora.INSERT.ToString(),
MensajesBitacora.IngresarRegistro + ": Administración Proyecto (Profesional): " + txtCantidadPAP.Value + " Ejecución o Construcción Proyecto (Profesional): " + txtCantidadPE.Value + " Personal Permanente Proyecto (Profesional): " + txtCantidadPO.Value + " Administración Proyecto (Calificado): " + txtCantidadCAP.Value + " Ejecución o Construcción Proyecto (Calificado): " + txtCantidadCE.Value + " Personal Permanente Proyecto (Calificado): " + txtCantidadCO.Value + " Administración Proyecto (No Calificado): " + txtCantidadNAP.Value + " Ejecución o Construcción Proyecto (No Calificado): " + txtCantidadNE.Value + " Personal Permanente Proyecto (No Calificado): " + txtCantidadNO.Value,
"frwRecurso.aspx");
ddlProyecto.SelectedValue = ViewState["PkProyecto"].ToString();
btnGuardar.Visible = false;
btnModificar.Visible = true;
}
}
catch (Exception ex)
{
blnEjecutado = false;
throw ex;
General.ReportarError(ex, Session["LOGIN"].ToString());
}
return blnEjecutado;
}
private bool ModificarDatos() //M1
{
bool blnEjecutado = false;
try
{
objRequerimientoRecursoBL = new RequerimientoRecursoBL();
objRequerimientoRecursoBL.objRequerimientoRecursoEL.CantidadAP = Convert.ToInt32(txtCantidadPAP.Value);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.CantidadECP = Convert.ToInt32(txtCantidadPE.Value);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.CantidadPPP = Convert.ToInt32(txtCantidadPO.Value);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.Proyecto = Convert.ToInt32(ViewState["PkProyecto"]);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.TipoRecurso = 1;
objRequerimientoRecursoBL.objRequerimientoRecursoEL.PK = Convert.ToInt32(hdfIdReqRec1.Value);
if (!objRequerimientoRecursoBL.actualizarRequerimientoRecursoBL())
{
blnEjecutado = false;
}
objRequerimientoRecursoBL.objRequerimientoRecursoEL.CantidadAP = Convert.ToInt32(txtCantidadCAP.Value);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.CantidadECP = Convert.ToInt32(txtCantidadCE.Value);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.CantidadPPP = Convert.ToInt32(txtCantidadCO.Value);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.Proyecto = Convert.ToInt32(ViewState["PkProyecto"]);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.TipoRecurso = 2;
objRequerimientoRecursoBL.objRequerimientoRecursoEL.PK = Convert.ToInt32(hdfIdReqRec2.Value);
if (!objRequerimientoRecursoBL.actualizarRequerimientoRecursoBL())
{
blnEjecutado = false;
}
objRequerimientoRecursoBL.objRequerimientoRecursoEL.CantidadAP = Convert.ToInt32(txtCantidadNAP.Value);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.CantidadECP = Convert.ToInt32(txtCantidadNE.Value);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.CantidadPPP = Convert.ToInt32(txtCantidadNO.Value);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.Proyecto = Convert.ToInt32(ViewState["PkProyecto"]);
objRequerimientoRecursoBL.objRequerimientoRecursoEL.TipoRecurso = 3;
objRequerimientoRecursoBL.objRequerimientoRecursoEL.PK = Convert.ToInt32(hdfIdReqRec3.Value);
if (objRequerimientoRecursoBL.actualizarRequerimientoRecursoBL())
{
blnEjecutado = true;
GuardarEventoBitacora(
Session["LOGIN"].ToString(),
AccionBitacora.UPDATE.ToString(),
MensajesBitacora.ModificarRegistro + " Administración Proyecto (Profesional): " + txtCantidadPAP.Value + " Ejecución o Construcción Proyecto (Profesional): " + txtCantidadPE.Value + " Personal Permanente Proyecto (Profesional): " + txtCantidadPO.Value + " Administración Proyecto (Calificado): " + txtCantidadCAP.Value + " Ejecución o Construcción Proyecto (Calificado): " + txtCantidadCE.Value + " Personal Permanente Proyecto (Calificado): " + txtCantidadCO.Value + " Administración Proyecto (No Calificado): " + txtCantidadNAP.Value + " Ejecución o Construcción Proyecto (No Calificado): " + txtCantidadNE.Value + " Personal Permanente Proyecto (No Calificado): " + txtCantidadNO.Value,
"frwRecurso.aspx");
}
}
catch (Exception ex)
{
blnEjecutado = false;
throw ex;
General.ReportarError(ex, Session["LOGIN"].ToString());
}
return blnEjecutado;
}
private void EliminarDatos() //M2
{
try
{
if (ddlProyecto.SelectedValue != "-1")
{
objRequerimientoRecursoBL = new RequerimientoRecursoBL();
objRequerimientoRecursoBL.objRequerimientoRecursoEL.FK = Int32.Parse(Session["PKPROYECTO"].ToString());
if (objRequerimientoRecursoBL.actualizaEstadoRequerimientoRecursoBL())
{
MensajeInformativo("El Proyecto se eliminó correctamente");
}
else
{
MensajeError("No se ha podido eliminar el proyecto", null);
}
}
else
{
MensajeAdvertencia("Debe seleccionar antes un proyecto.");
}
}
catch (Exception ex)
{
MensajeError("Error en R5M2", ex);
General.ReportarError(ex, Session["LOGIN"].ToString());
}
}
#endregion
#region Metodos Datos a Controles (R6)
private void mostrarDatos() //M0
{
try
{
limpiarCampos();
objRequerimientoRecursoBL = new RequerimientoRecursoBL();
objRequerimientoRecursoBL.objRequerimientoRecursoEL.Proyecto = Convert.ToInt32(Session["PKPROYECTO"].ToString());
DataSet dsRequerimientoRecurso = new DataSet();
if (dsRequerimientoRecurso.Tables.Count > 0)
{
dsRequerimientoRecurso.Tables.Clear();
}
dsRequerimientoRecurso = objRequerimientoRecursoBL.getRequerimientoRecursoBL();
if (dsRequerimientoRecurso.Tables.Count > 0)
{
if (dsRequerimientoRecurso.Tables[0].Rows.Count > 0)
{
hdfIdReqRec1.Value = dsRequerimientoRecurso.Tables[0].Rows[0]["PKREQUERIMIENTORECURSO"].ToString();
txtCantidadPAP.Value = dsRequerimientoRecurso.Tables[0].Rows[0]["CANTIDADAPREQUERIMIENTORECURSO"].ToString();
txtCantidadPE.Value = dsRequerimientoRecurso.Tables[0].Rows[0]["CANTIDADECPREQUERIMIENTORECURSO"].ToString();
txtCantidadPO.Value = dsRequerimientoRecurso.Tables[0].Rows[0]["CANTIDADPPPREQUERIMIENTORECURSO"].ToString();
hdfIdReqRec2.Value = dsRequerimientoRecurso.Tables[0].Rows[1]["PKREQUERIMIENTORECURSO"].ToString();
txtCantidadCAP.Value = dsRequerimientoRecurso.Tables[0].Rows[1]["CANTIDADAPREQUERIMIENTORECURSO"].ToString();
txtCantidadCE.Value = dsRequerimientoRecurso.Tables[0].Rows[1]["CANTIDADECPREQUERIMIENTORECURSO"].ToString();
txtCantidadCO.Value = dsRequerimientoRecurso.Tables[0].Rows[1]["CANTIDADPPPREQUERIMIENTORECURSO"].ToString();
hdfIdReqRec3.Value = dsRequerimientoRecurso.Tables[0].Rows[2]["PKREQUERIMIENTORECURSO"].ToString();
txtCantidadNAP.Value = dsRequerimientoRecurso.Tables[0].Rows[2]["CANTIDADAPREQUERIMIENTORECURSO"].ToString();
txtCantidadNE.Value = dsRequerimientoRecurso.Tables[0].Rows[2]["CANTIDADECPREQUERIMIENTORECURSO"].ToString();
txtCantidadNO.Value = dsRequerimientoRecurso.Tables[0].Rows[2]["CANTIDADPPPREQUERIMIENTORECURSO"].ToString();
//Carga el boton de modificar
if (bool.Parse(ViewState["PUEDEMODIFICAR"].ToString()) == true)
{
btnGuardar.Visible = false;
btnModificar.Visible = true;
}
}
else
{
btnGuardar.Visible = true;
btnModificar.Visible = false;
}
}
}
catch (Exception ex)
{
MensajeError("Error en R6M0", ex);
General.ReportarError(ex, Session["LOGIN"].ToString());
}
}
private void llenarDDLProyecto() //M1
{
try
{
//Instancia el objeto
objProyectoBL = new ProyectoBL();
objProyectoBL.objProyectoEL.PK = 0;
objProyectoBL.objProyectoEL.ASTATE = true;
objProyectoBL.objProyectoEL.CodigoAcceso = Session["CODIGOACCESO"].ToString();
//Carga la información en un dataset
DataSet dsProyecto = objProyectoBL.getProyectos();
ddlListaProyectos(dsProyecto, ddlProyecto);
ddlProyecto.Attributes["style"] = "width: 90%; max-width: 90%";
}
catch (Exception ex)
{
MensajeError("Error en R6M1", ex);
}
}
#endregion
}