/*=========================================================================================================================== * Instituto Costarricense de Acueductos y Alcantarillados. - 2015 * Administración de la Seguridad * Nombre de la Pantalla: frwBusquedaSolicitud.aspx * * Explicación de los contenidos del archivo *=========================================================================================================================== * HISTORIAL * * PERSONA DIA – MES - AÑO DESCRIPCIÓN * Esteban Gutierrez Rapso 20 – 04 - 2015 Se inicia con el diseño de la pagina * ………………………………………………………… * ………………………………………………………… *=========================================================================================================================== * Derechos Reservados (C) 2015 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.Data; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using AyABL; using AyABL.AUT.Autenticacion; using AyABL.APL; using AyADAL; using System.Configuration; using AyABL.RCS; using AyABL.Tran; using AyABL.Usuario; public partial class Forms_Trans_frwVisitaSolicitud : 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); } catch (Exception ex) { MensajeError("Error en R0M1", ex); } } #endregion #region Variables (R1) visitaSolicitudBL objVisitaSolicitudBL; UsuarioBL objUsuarioBL; GridView grvListaVisitaSolicitudTemp; string strNumSolicitudTMP = "0"; #region variables del estandar string strPagina = string.Empty; string strScript = string.Empty; #endregion #endregion #region Eventos Formulario (R2) protected void Page_Load(object sender, EventArgs e) //M0 { try { ScriptManager.GetCurrent(Page).RegisterPostBackControl(ddlTipoInspeccion); ScriptManager.GetCurrent(Page).RegisterPostBackControl(btnAgregaInsAlc); if (Session["SOLICITUD"] != null && !Session["SOLICITUD"].ToString().Contains("-TMP")) { strNumSolicitudTMP = Session["SOLICITUD"].ToString(); lblNumSolicitud.Text = strNumSolicitudTMP; if ((!IsPostBack) && (Session.Count > 0)) { Session["Pagina"] = ""; //construirGridView(); mostrarFilaTabla(1); //ComandosxMenu(); llenarDDLtipoInspeccion(); llenarDDLInspector(); llenarGridVisitaSolicitud(strNumSolicitudTMP); } } else { ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); } } catch (Exception ex) { MensajeError("Error en R2M0", ex); } } #endregion #region Eventos Controles Web (R3) /// ///Activar el botón de Refrescar /// /// /// protected void btnRefrescar_Click(object sender, System.Web.UI.ImageClickEventArgs e) //M1 { try { } catch (Exception ex) { MensajeError("Error en R3M2" + MensajesAplicacion.RefrescarFallido.ToString(), ex); } } /// /// Metodo que se utiliza para borrar el rol del listado de roles /// /// /// protected void grvListaVisitaSolicitud_RowCommand(object sender, GridViewCommandEventArgs e) //M5 { try { if (e.CommandName == "borrar") { int i = Convert.ToInt32(e.CommandArgument); GridViewRow selectedRow = grvListaVisitaSolicitud.Rows[i]; int nPk = int.Parse(selectedRow.Cells[1].Text); if (removerVisitaSolicitud(nPk)) llenarGridVisitaSolicitud(Session["SOLICITUD"].ToString()); GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.EliminarRegistro + ": Se ha eliminado el proyecto de la solicitud " + selectedRow.Cells[2].Text, "frwVisitaSolicitud.aspx", Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); } } catch (Exception ex) { MensajeError("Error en R3M5", ex); } } protected void btnAgregarProyecto_Click(object sender, EventArgs e) //M6 { try { ViewState["MODO"] = "Nuevo"; int pkRegistro = GuardarDatosVisitaSolicitud(); //construirGridView(); llenarGridVisitaSolicitud(strNumSolicitudTMP); mostrarFilaTabla(1); llenarDDLInspector(); llenarDDLtipoInspeccion(); MensajeInformativo(AyABL.BASESDEDATOS.ADS + "Interfaz: " + MensajesAplicacion.GuardadoExitoso.ToString()); } catch (Exception ex) { MensajeError("Error en R3M6", ex); } } protected void ddlInspector_SelectedIndexChanged(object sender, EventArgs e) { } protected void ddlTipoInspeccion_SelectedIndexChanged(object sender, EventArgs e) { llenarDDLInspector(); } #endregion #region Metodos Personalizados (R4) /// /// Oculta las filas que lo requieran /// /// private void mostrarFilaTabla(int p_intFila) //M0 { try { divDatosSuperiores.Visible = true; } catch (Exception ex) { throw ex; } } /// /// Metodo que se utiliza para el despliegue de los botones /// //private void ComandosxMenu() //M2 //{ // try // { // //DataSet dsComandos = getComandos(); // // if (dsComandos != null) // { // foreach (DataRow drTemp in dsComandos.Tables[0].Rows) // { // switch (drTemp["NOMBRECOMANDO"].ToString().ToUpper()) // { // case "NUEVO": // break; // case "MODIFICA": // //Inicio de variable tipo VIEWSTATE // ViewState["PUEDEMODIFICAR"] = true; // break; // } // } // } // } // catch (Exception ex) // { // throw ex; // } //} /// /// Metodo que se utiliza para remover el role asignado al usuario /// /// private bool removerVisitaSolicitud(int p_nPk) //M3 { bool blnValorRetornado = false; try { objVisitaSolicitudBL = new visitaSolicitudBL(); objVisitaSolicitudBL.objVisitaSolicitudEL.PK = p_nPk; objVisitaSolicitudBL.eliminarVisitaSolicitud(); blnValorRetornado = true; } catch (Exception ex) { throw ex; } return blnValorRetornado; } /// /// Metodo que se utiliza para contruir el Grid al inicio de la pantalla /// private void construirGridView() //M4 { try { grvListaVisitaSolicitudTemp = (GridView)tdLista.FindControl("grvListaVisitaSolicitud"); GridViewBoundField bdfPkUsuarioxDependencia = new GridViewBoundField("PKUSUARIOXDEPENDENCIA", "PK", false, false, false); GridViewBoundField bdfNombreCompleto = new GridViewBoundField("NOMBRECOMPLETO", "Inspector", false, false, true); GridViewBoundField bdfFkTipoInspeccion = new GridViewBoundField("TIPOTIPOINSPECCION", "Tipo Inspeccion", true, false, true); GridViewBoundField bdfFechaEntregado = new GridViewBoundField("FECHAENTREGADOVISITASOLICITUD", "Fecha Entregado", true, true, true); GridViewBoundField bdfFechaResuelto = new GridViewBoundField("FECHARESUELTOVISITASOLICITUD", "Fecha Resuelto", true, false, true); grvListaVisitaSolicitudTemp.Columns.Add(bdfPkUsuarioxDependencia); grvListaVisitaSolicitudTemp.Columns.Add(bdfNombreCompleto); grvListaVisitaSolicitudTemp.Columns.Add(bdfFkTipoInspeccion); grvListaVisitaSolicitudTemp.Columns.Add(bdfFechaEntregado); grvListaVisitaSolicitudTemp.Columns.Add(bdfFechaResuelto); grvListaVisitaSolicitudTemp.Columns[0].ItemStyle.Width = 125; grvListaVisitaSolicitudTemp.Columns[1].ItemStyle.Width = 125; //cuwBusquedaList.LlenarCHKLBusqueda(grvListaVisitaSolicitudTemp); } catch (Exception ex) { throw ex; } } #endregion #region Metodos Controles a Datos (R5) /// /// guarda y modifica registros en la tabla. /// /// private int GuardarDatosVisitaSolicitud() //M0 { int nValorRetornado = 0; try { string strModo = ViewState["MODO"].ToString(); if (ddlInspector.SelectedValue != "-1" || ddlTipoInspeccion.SelectedValue != "-1") { objVisitaSolicitudBL = new visitaSolicitudBL(); objVisitaSolicitudBL.objVisitaSolicitudEL.FKNUMSOLICITUD = strNumSolicitudTMP; if (ddlTipoInspeccion.SelectedValue != "-1") objVisitaSolicitudBL.objVisitaSolicitudEL.FKTIPOINSPECTOR = int.Parse(ddlTipoInspeccion.SelectedValue); if (ddlInspector.SelectedValue != "-1") objVisitaSolicitudBL.objVisitaSolicitudEL.FKINSPECTOR = int.Parse(ddlInspector.SelectedValue); objVisitaSolicitudBL.objVisitaSolicitudEL.FECHAENTREGADO = DateTime.Now; if (strModo == "Nuevo") { nValorRetornado = objVisitaSolicitudBL.insertarVisitaSolicitud(); llenarGridVisitaSolicitud(strNumSolicitudTMP); GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.IngresarRegistro + ": Se ha ingresado una visita de inspeccion para la solicitud " + strNumSolicitudTMP.Trim(), "frwVisitaSolicitud.aspx", Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); } } } catch (Exception ex) { throw ex; } return nValorRetornado; } #endregion #region Metodos Datos a Controles (R6) /// /// Llena el dropdownlist de grado academico según la aplicación /// private void llenarDDLtipoInspeccion() //M1 { try { //Limpia el control ddlTipoInspeccion.Items.Clear(); //Instancia el bjeto objUsuarioBL = new UsuarioBL(); //Asigna datos al atributo //Carga la información en un dataset DataSet dsTipoInspeccion = objUsuarioBL.dsListaTipoInspeccion(null); if (dsTipoInspeccion.Tables[0].Rows.Count != 0) { ddlTipoInspeccion.DataSource = dsTipoInspeccion; ddlTipoInspeccion.DataTextField = dsTipoInspeccion.Tables[0].Columns["TIPOTIPOINSPECCION"].ColumnName; ddlTipoInspeccion.DataValueField = dsTipoInspeccion.Tables[0].Columns["PKTIPOINSPECCION"].ColumnName; ddlTipoInspeccion.DataBind(); ddlTipoInspeccion.Items.Insert(0, new ListItem("Seleccione", "-1")); } else ddlTipoInspeccion.Items.Insert(0, new ListItem("----- No existen opciones -----", "-1")); } catch (Exception ex) { throw ex; } } /// /// Llena el dropdownlist de tipo de consulta /// Se cargan dos dataset uno con los datos de configuracion de la aplicacion y el otro viene del ADS que contiene el nombre /// luego se hace un merge manual, se crea una tabla aparte con los valores requeridos /// Asi mantenemos actualizados los nombre de los usuarios con los datos del ADS /// private void llenarDDLInspector() //M2 { try { ddlInspector.Items.Clear(); ArrayList arlCondicionesFiltroBusqueda = new ArrayList(); DataSet ds; objUsuarioBL = new UsuarioBL(); objUsuarioBL.objUsuarioEL.FKTIPOINSPECCION = int.Parse(ddlTipoInspeccion.SelectedValue); ds = objUsuarioBL.dsUsuarioInspector(objUsuarioBL.objUsuarioEL); DataSet ds2 = objUsuarioBL.dsListaUsuarios(arlCondicionesFiltroBusqueda); DataTable dtInspectores = new DataTable(); dtInspectores.Columns.Add("PKUSUARIOXDEPENDENCIA"); dtInspectores.Columns.Add("NOMBRECOMPLETO"); if (ds.Tables[0].Rows.Count != 0) { foreach (DataRow row in ds.Tables[0].Rows) { foreach (DataRow rowUsuario in ds2.Tables[0].Rows) { if (row[1].ToString() == rowUsuario[1].ToString()) { DataRow rowFinal = dtInspectores.NewRow(); rowFinal["PKUSUARIOXDEPENDENCIA"] = row[0].ToString(); rowFinal["NOMBRECOMPLETO"] = rowUsuario[12].ToString(); dtInspectores.Rows.Add(rowFinal); } } } } if (dtInspectores.Rows.Count != 0) { ddlInspector.DataSource = dtInspectores; ddlInspector.DataTextField = dtInspectores.Columns["NOMBRECOMPLETO"].ColumnName; ddlInspector.DataValueField = dtInspectores.Columns["PKUSUARIOXDEPENDENCIA"].ColumnName; ddlInspector.DataBind(); ddlInspector.Items.Insert(0, new ListItem("Seleccione", "-1")); } else ddlInspector.Items.Insert(0, new ListItem("----- No existen opciones -----", "-1")); } catch (Exception ex) { throw ex; } } /// /// LLena el listado de roles de usuario /// private void llenarGridVisitaSolicitud(string strNumSolicitud) //M3 { try { grvListaVisitaSolicitudTemp = (GridView)tdLista.FindControl("grvListaVisitaSolicitud"); grvListaVisitaSolicitudTemp.Columns[1].ItemStyle.Width = 50; grvListaVisitaSolicitudTemp.Columns[2].ItemStyle.Width = 300; grvListaVisitaSolicitudTemp.Columns[1].ItemStyle.HorizontalAlign = HorizontalAlign.Center; grvListaVisitaSolicitudTemp.Columns[2].ItemStyle.HorizontalAlign = HorizontalAlign.Center; grvListaVisitaSolicitudTemp.Columns[3].ItemStyle.HorizontalAlign = HorizontalAlign.Center; grvListaVisitaSolicitudTemp.Columns[4].ItemStyle.HorizontalAlign = HorizontalAlign.Center; ArrayList arlCondicionesFiltroBusqueda = new ArrayList(); //Instancia el objeto objVisitaSolicitudBL = new visitaSolicitudBL(); //Instancia el bjeto objUsuarioBL = new UsuarioBL(); //Asigna un valor al atributo de referencia del objeto objVisitaSolicitudBL.objVisitaSolicitudEL.FKNUMSOLICITUD = strNumSolicitud; //Carga en un dataset la información DataSet ds = objVisitaSolicitudBL.listarVisitaSolicitud(); DataSet ds2 = objUsuarioBL.dsListaUsuarios(arlCondicionesFiltroBusqueda); DataSet dsResult = null; DataTable dtInspectores = new DataTable(); dtInspectores.Columns.Add("PKUSUARIOXDEPENDENCIA"); dtInspectores.Columns.Add("NOMBRECOMPLETO"); dtInspectores.Columns.Add("TIPOTIPOINSPECCION"); dtInspectores.Columns.Add("FECHAENTREGADOVISITASOLICITUD",typeof(DateTime)); dtInspectores.Columns.Add("FECHARESUELTOVISITASOLICITUD", typeof(DateTime)); if (ds.Tables[0].Rows.Count != 0) { foreach (DataRow row in ds.Tables[0].Rows) { foreach (DataRow rowUsuario in ds2.Tables[0].Rows) { if (row[5].ToString() == rowUsuario[1].ToString()) { DataRow rowFinal = dtInspectores.NewRow(); rowFinal["PKUSUARIOXDEPENDENCIA"] = row[0].ToString(); rowFinal["NOMBRECOMPLETO"] = rowUsuario[12].ToString(); rowFinal["TIPOTIPOINSPECCION"] = row[15].ToString(); rowFinal["FECHAENTREGADOVISITASOLICITUD"] = DateTime.Parse(row[2].ToString()); if (row[3].ToString() != "") rowFinal["FECHARESUELTOVISITASOLICITUD"] = DateTime.Parse(row[3].ToString()); dtInspectores.Rows.Add(rowFinal); } } } } //if (dtInspectores.Rows.Count != 0) { dsResult = new DataSet(); dsResult.Merge(dtInspectores); grvListaVisitaSolicitud.DataSource = dsResult; grvListaVisitaSolicitud.DataBind(); General.detalleGridView(dsResult, grvListaVisitaSolicitud, null); } //grvListaVisitaSolicitudTemp.Columns[3].ItemStyle.Width = 125; } catch (Exception ex) { throw ex; } } #endregion }