/*=========================================================================================================================== * Instituto Costarricense de Acueductos y Alcantarillados. - 2019 * Formularios para Proyectos de Inversión * Nombre de la Pantalla: wfrInfoComplementaria.aspx * * Explicación de los contenidos del archivo *=========================================================================================================================== * HISTORIAL * * PERSONA DIA – MES - AÑO DESCRIPCIÓN * Esteban Gutierrez Rapso 18 – 02 - 2019 Se inicia con el diseño de la pagina * ………………………………………………………… * ………………………………………………………… *=========================================================================================================================== * Derechos Reservados (C) 2019 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.ICP; using AyABL.AGP; public partial class webforms_FOR_wfrInfoComplementaria : 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); Javascript.CheckAllGridViewItems(Page); construirGrvObservaciones(); } catch (Exception ex) { MensajeError("Error en R0M1", ex); } } #endregion #region Variables (R1) GridView grvObservacionesTemp; ProyectoBL objProyectoBL; ObservacionBL objObservacionBL; InformacionBL objInformacionBL; #endregion #region Eventos Formulario (R2) protected void Page_Load(object sender, EventArgs e) //M0 { try { if ((!IsPostBack) && (Session.Count > 0)) { objProyectoBL = new ProyectoBL(); objProyectoBL.objProyectoEL.PK = Int32.Parse(Session["PKPROYECTO"].ToString()); DataSet dsProyecto = objProyectoBL.getProyectos(); if (dsProyecto.Tables[0].Rows.Count != 0) { txtProyecto.Text = dsProyecto.Tables[0].Rows[0]["NOMBREPROYECTO"].ToString(); txtNumeroBPIP.Text = dsProyecto.Tables[0].Rows[0]["NUMEROBPIPPROYECTO"].ToString(); txtEstadoProyecto.Text = string.IsNullOrEmpty(dsProyecto.Tables[0].Rows[0]["NOMBREESTADO"].ToString()) ? "Sin Asignar" : dsProyecto.Tables[0].Rows[0]["NOMBREESTADO"].ToString(); if (!string.IsNullOrWhiteSpace(txtNumeroBPIP.Text)) txtProyecto.ReadOnly = true; } mostrarDatos(); } ScriptManager.RegisterStartupScript(Page, typeof(Page), "Check", "validarEstado()", true); } catch (Exception ex) { MensajeError("Error en R2M0", ex); } } #endregion #region Eventos Controles Web (R3) protected void btnAnterior_Click(object sender, EventArgs e) //M0 { try { Response.Redirect("wfrProyectos.aspx"); } catch (Exception ex) { MensajeError("Error en R3M0", ex); } } protected void btnGuardarIC_Click(object sender, EventArgs e) //M1 { try { if (GuardarDatos()) { MensajeInformativo("El registro fue almacenado exitosamente"); } else { MensajeError("El registro no fue almacenado, verifique", null); } } catch (Exception ex) { MensajeError("Error en R3M1", ex); } } protected void grvObservaciones_RowCommand(object sender, GridViewCommandEventArgs e) //M2 { try { if (e.CommandName == "editar") { int i = Convert.ToInt32(e.CommandArgument); GridViewRow selectedRow = grvObservaciones.Rows[i]; int intPkObservacion = Convert.ToInt32(selectedRow.Cells[2].Text); ViewState["PkObservacion"] = intPkObservacion; ViewState["Modo_Observacion"] = "Modifica"; mostrarFilasObservaciones(2); mostrarObservaciones(); } } catch (Exception ex) { MensajeError("Error en R3M2", ex); } } protected void grvObservaciones_PageIndexChanging(object sender, GridViewPageEventArgs e) //M3 { try { grvObservaciones.PageIndex = e.NewPageIndex; llenarGrvObservacion(); } catch (Exception ex) { MensajeError("Error R3M3", ex); } } protected void btnNuevoOB_Click(object sender, EventArgs e) //M4 { try { ViewState["Modo_Observacion"] = "Nuevo"; mostrarFilasObservaciones(2); } catch (Exception ex) { MensajeError("Error en R3M4", ex); } } protected void btnEliminarOB_Click(object sender, EventArgs e) //M5 { try { // recorro el grid foreach (GridViewRow row in grvObservacionesTemp.Rows) { HtmlInputCheckBox chkTemp = (HtmlInputCheckBox)row.Controls[0].Controls[1]; if (chkTemp != null) { // si el registro esta marcado if (chkTemp.Checked) { //Iguala la variable al valor en la celda seleccionada int intPkEliminar = Convert.ToInt32(row.Cells[2].Text); eliminarDatosObservaciones(intPkEliminar); } } } llenarGrvObservacion(); } catch (Exception ex) { MensajeError("Error en R3M5", ex); } } protected void btnGuardarOB_Click(object sender, EventArgs e) //M6 { try { if (guardarDatosObservaciones()) { MensajeInformativo("El agregó la observacion exitosamente"); llenarGrvObservacion(); } else { MensajeError("La observación no fue agregada, verifique", null); } } catch (Exception ex) { MensajeError("Error en R3M6", ex); } } protected void btnAnteriorOB_Click(object sender, EventArgs e) //M7 { try { mostrarFilasObservaciones(1); } catch (Exception ex) { MensajeError("Error en R3M7", ex); } } #endregion #region Metodos Personalizados (R4) private void construirGrvObservaciones() //M0 { try { grvObservacionesTemp = (GridView)divLista.FindControl("grvObservaciones"); GridViewBoundField bdfPkObservacion = new GridViewBoundField("PKOBSERVACION", "PK", false, false, false); GridViewBoundField bdfFechaIngreso = new GridViewBoundField("FECHAINGRESOOBSERVACION", "FECHA", false, true, true); GridViewBoundField bdfDescripcion = new GridViewBoundField("DESCRIPCIONOBSERVACION", "OBSERVACION", false, true, true); grvObservacionesTemp.Columns.Add(bdfPkObservacion); grvObservacionesTemp.Columns.Add(bdfFechaIngreso); grvObservacionesTemp.Columns.Add(bdfDescripcion); grvObservacionesTemp.Columns[0].ItemStyle.Width = 25; grvObservacionesTemp.Columns[1].ItemStyle.Width = 25; grvObservacionesTemp.Columns[3].ItemStyle.Width = 100; } catch (Exception ex) { MensajeError("Error en R4M0", ex); } } private void limpiarCampos() //M1 { txtImportancia.Text = string.Empty; txtProblema.Text = string.Empty; txtMedidas.Text = string.Empty; txtProyectosVinculados.Text = string.Empty; txtEntidades.Text = string.Empty; txtFecha.Value = string.Empty; txtObservacion.Text = string.Empty; } private void mostrarFilasObservaciones(int p_intFila) //M2 { try { divLista.Visible = false; divFormulario.Visible = false; switch (p_intFila) { case 1: llenarGrvObservacion(); divLista.Visible = true; break; case 2: limpiarCamposOB(); divFormulario.Visible = true; break; } } catch (Exception ex) { MensajeError("Error en R4M2", ex); } } private void limpiarCamposOB() //M3 { txtFecha.Value = string.Empty; txtObservacion.Text = string.Empty; } #endregion #region Metodos Controles a Datos (R5) private bool GuardarDatos() //M0 { bool blnEjecutado = false; try { string strModo = ViewState["Modo"].ToString(); objInformacionBL = new InformacionBL(); objInformacionBL.objInformacionEL.Importancia = txtImportancia.Text; objInformacionBL.objInformacionEL.Problema = txtProblema.Text; objInformacionBL.objInformacionEL.Medida = txtMedidas.Text; objInformacionBL.objInformacionEL.ProyectoVinculado = txtProyectosVinculados.Text; objInformacionBL.objInformacionEL.OtrasEntidades = txtEntidades.Text; objInformacionBL.objInformacionEL.Proyecto = Int32.Parse(Session["PKPROYECTO"].ToString()); if (strModo == "Nuevo") { int intInformacionProyecto = objInformacionBL.insertarInformacion(); blnEjecutado = true; ViewState["FkInformacion"] = intInformacionProyecto; GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.IngresarRegistro + ": Se ha ingresado el registro " + txtImportancia.Text + ", " + txtProblema.Text + ", " + txtMedidas.Text + ", " + txtProyectosVinculados.Text + ", " + txtEntidades.Text + ", " + txtProyecto.Text, "wfrInfoComplementaria.aspx"); ViewState["Modo"] = "Modifica"; } else if (strModo == "Modifica") { if (objInformacionBL.actualizarInformacion()) { blnEjecutado = true; GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.UPDATE.ToString(), MensajesBitacora.ModificarRegistro + ": Se ha modificado el registro " + txtImportancia.Text + ", " + txtProblema.Text + ", " + txtMedidas.Text + ", " + txtProyectosVinculados.Text + ", " + txtEntidades.Text + ", " + txtProyecto.Text, "wfrInfoComplementaria.aspx"); } } } catch (Exception ex) { blnEjecutado = false; throw ex; General.ReportarError(ex, Session["LOGIN"].ToString()); } return blnEjecutado; } private bool guardarDatosObservaciones() //M1 { bool blnEjecutado = false; try { string strModo = ViewState["Modo_Observacion"].ToString(); if (!txtObservacion.Text.Equals("")) { objObservacionBL = new ObservacionBL(); objObservacionBL.objObservacionEL.FechaIngreso = txtFecha.Value != "" ? Convert.ToDateTime(txtFecha.Value) : DateTime.Now; objObservacionBL.objObservacionEL.Descripcion = txtObservacion.Text; objObservacionBL.objObservacionEL.Informacion = Int32.Parse(ViewState["FkInformacion"].ToString()); if (strModo == "Nuevo") { if (objObservacionBL.insertarObservacion()) { blnEjecutado = true; GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.IngresarRegistro + ": Se ha ingresado el registro en Observación " + txtFecha.Value + ", " + txtObservacion.Text + ", " + ViewState["FkInformacion"].ToString(), "wfrInfoComplementaria.aspx"); } blnEjecutado = true; } else if (strModo == "Modifica") { objObservacionBL.objObservacionEL.PK = Int32.Parse(ViewState["PkObservacion"].ToString()); if (objObservacionBL.actualizarObservacion()) { blnEjecutado = true; GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.ModificarRegistro + ": Se ha modificado el registro en Observación " + txtFecha.Value + ", " + txtObservacion.Text + ", " + ViewState["FkInformacion"].ToString(), "wfrInfoComplementaria.aspx"); } blnEjecutado = true; } llenarGrvObservacion(); } } catch (Exception ex) { blnEjecutado = false; throw ex; General.ReportarError(ex, Session["LOGIN"].ToString()); } return blnEjecutado; } private void eliminarDatosObservaciones(int p_intPkObservacion) //M2 { try { objObservacionBL = new ObservacionBL(); objObservacionBL.objObservacionEL.PK = p_intPkObservacion; objObservacionBL.objObservacionEL.ASTATE = false; objObservacionBL.actualizaEstadoObservacion(); GuardarEventoBitacora(Session["LOGIN"].ToString(), AccionBitacora.DELETE.ToString(), MensajesBitacora.EliminarRegistro + ": Se ha borrado el registro con la PK: " + ": " + p_intPkObservacion, "wfrInfoComplementaria.aspx"); } 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(); //Carga campos informaci[on objInformacionBL = new InformacionBL(); objInformacionBL.objInformacionEL.Proyecto = Int32.Parse(Session["PKPROYECTO"].ToString()); DataSet ds = objInformacionBL.getInformacion(); if (ds.Tables[0].Rows.Count != 0) { ViewState["Modo"] = "Modifica"; txtImportancia.Text = ds.Tables[0].Rows[0]["IMPORTANCIAINFORMACION"].ToString(); txtProblema.Text = ds.Tables[0].Rows[0]["PROBLEMAINFORMACION"].ToString(); txtMedidas.Text = ds.Tables[0].Rows[0]["MEDIDAINFORMACION"].ToString(); txtProyectosVinculados.Text = ds.Tables[0].Rows[0]["PROYECTOVINCULADOINFORMACION"].ToString(); txtEntidades.Text = ds.Tables[0].Rows[0]["OTRASENTIDADESINFORMACION"].ToString(); ViewState["FkInformacion"] = Int32.Parse(ds.Tables[0].Rows[0]["PKINFORMACION"].ToString()); llenarGrvObservacion(); } else if (ds.Tables[0].Rows.Count == 0) { ViewState["Modo"] = "Nuevo"; } } catch (Exception ex) { MensajeError("Error en R6M0", ex); General.ReportarError(ex, Session["LOGIN"].ToString()); } } private void llenarGrvObservacion() //M1 { try { objObservacionBL = new ObservacionBL(); objObservacionBL.objObservacionEL.Informacion = Int32.Parse(ViewState["FkInformacion"].ToString()); DataSet dsObservaciones = objObservacionBL.getObservacion(); detalleGRVDatos(dsObservaciones, grvObservacionesTemp); } catch (Exception ex) { MensajeError("Error en R6M1", ex); General.ReportarError(ex, Session["LOGIN"].ToString()); } } private void mostrarObservaciones() //M2 { try { limpiarCamposOB(); //Carga campos informaci[on objObservacionBL = new ObservacionBL(); objObservacionBL.objObservacionEL.PK = Int32.Parse(ViewState["PkObservacion"].ToString()); DataSet ds = objObservacionBL.getObservacion2(); if (ds.Tables[0].Rows.Count != 0) { txtFecha.Value = ds.Tables[0].Rows[0]["FECHAINGRESOOBSERVACION"].ToString().Substring(0,10); txtObservacion.Text = ds.Tables[0].Rows[0]["DESCRIPCIONOBSERVACION"].ToString(); } } catch (Exception ex) { MensajeError("Error en R6M0", ex); General.ReportarError(ex, Session["LOGIN"].ToString()); } } #endregion }