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; using AyABL.Usuario; using AyABL.APL; using AyABL.Tran; using AyABL.TRA; using System.Collections; using System.Data; public partial class Forms_TRA_frwAgendaSolicitud : 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); construirGridView(); grvListarObservaciones.Visible = true; Javascript.CheckAllGridViewItems(Page); cuwBusquedaList.Buscar += new _controlesusuario_Estandar_cuwBusquedaList.SearchEvent(Buscar); } catch (Exception ex) { MensajeError("Error en R0M1", ex); } } #endregion #region Variables (R1) GridView grvListaDatosCantonalesTemp, grvCantonalesADTemp; AutenticacionBL objAutenticacionBL; UsuarioRolBL objUsuarioRolBL; RolItemMenuComandoBL objRolItemMenuComandoBL; string strNumSolicitudTMP = "0"; ObservacionesBL objObservacionesBL; int nPKSolicitud = 0; AplicacionBL objAplicacionBL; RolBL objRolBL; ArrayList arlCondicionesFiltroBusqueda = new ArrayList(); #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(btnGuardar); //Session["SOLICITUD"] = "2017-2227"; //Session["PKSOLICITUD"] = "8"; if (Session["SOLICITUD"] != null) { strNumSolicitudTMP = Session["SOLICITUD"].ToString(); nPKSolicitud = int.Parse(Session["PKSOLICITUD"].ToString()); lblNumSolicitud.Text = strNumSolicitudTMP; if ((!IsPostBack) && (Session.Count > 0)) { Session["Pagina"] = ""; llenarGridView(true); mostrarFilaTabla(1); ComandosxMenu(); } } else { ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); } } catch (Exception ex) { MensajeError("Error en R2M0", ex); } } #endregion #region Eventos Controles Web (R3) /// /// Metodo que se utiliza para extraer información del registro de la base de datos y ser mostrado en el acordeon de Controles /// /// /// /// protected void grvListarObservaciones_RowCommand(object sender, GridViewCommandEventArgs e) //M0 { try { if (e.CommandName == "editar") { int i = Convert.ToInt32(e.CommandArgument); GridViewRow selectedRow = grvListarObservaciones.Rows[i]; int intPKAGENDA = Convert.ToInt32(selectedRow.Cells[2].Text); ViewState["PKAGENDA"] = intPKAGENDA; ViewState["MODO"] = "Modifica"; mostrarFilaTabla(2); mostrarDatos(intPKAGENDA); } } catch (Exception ex) { MensajeError("Error en R3M0", ex); } } /// /// Metodo que se utiliza para la paginación del Grid en caso de que el usuario desee ver mas registros /// /// /// /// protected void grvListarObservaciones_PageIndexChanging(object sender, GridViewPageEventArgs e) //M3 { try { grvListarObservaciones.PageIndex = e.NewPageIndex; llenarGridView(true); } catch (Exception ex) { MensajeError("Error en R3M3", ex); } } /// ///Activar el botón de Refrescar /// /// /// /// protected void btnRefrescar_Click(object sender, System.Web.UI.ImageClickEventArgs e) //M4 { try { llenarGridView(true); } catch (Exception ex) { MensajeError("Error en R3M4" + MensajesAplicacion.RefrescarFallido.ToString(), ex); } } /// /// Activa el evento del boton guardar.1 /// /// /// /// protected void btnGuardar_Click(object sender, EventArgs e) { try { if (txtobservaciones.Text == string.Empty) { ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); } else { int PKAGENDA = GuardarDatos(); llenarGridView(true); mostrarFilaTabla(1); limpiarCampos(); MensajeInformativo(AyABL.BASESDEDATOS.ADS + "Interfaz: " + MensajesAplicacion.GuardadoExitoso.ToString()); } } catch (Exception ex) { MensajeError("Error en R3M14", ex); } } /// /// Activa el evento del boton Nuevo /// /// /// protected void btnNuevo_Click(object sender, EventArgs e) //M8 { try { ViewState["MODO"] = "Nuevo"; mostrarFilaTabla(2); } catch (Exception ex) { MensajeError("Error en R3M8" + MensajesAplicacion.GuardadoFallido.ToString(), ex); } } /// ///Activa el metodo del boton Anterior, regresa a la primera fila de la tabla /// /// /// protected void btnAnterior_Click(object sender, EventArgs e) //M12 { try { llenarGridView(true); divDatosSuperiores.Visible = true; divDatosMedios.Visible = false; } catch (Exception ex) { MensajeError("Error en R3M12", ex); } } #endregion #region Metodos Personalizados (R4) /// /// Oculta las filas que lo requieran /// /// /// private void mostrarFilaTabla(int p_intFila) //M0 { try { divDatosSuperiores.Visible = false; divDatosMedios.Visible = false; switch (p_intFila) { case 1: llenarGridView(true); divDatosSuperiores.Visible = true; break; case 2: llenarGridView(true); divDatosMedios.Visible = true; break; case 3: llenarGridView(true); break; } } catch (Exception ex) { throw ex; } } /// /// Metodo que se utiliza para contruir el Grid al inicio de la pantalla /// /// private void construirGridView() //M1 { try { grvListaDatosCantonalesTemp = (GridView)tdPlano.FindControl("grvListarObservaciones"); GridViewBoundField bdfPKOBSERVACIONES = new GridViewBoundField("PKAGENDA", "PK", false, false, false); GridViewBoundField bdfFKNUMSOLICITUD = new GridViewBoundField("NUMEROSOLICITUDSOLICITUD", "Solicitud", true, false, true); GridViewBoundField bdfOBSERVACIONES = new GridViewBoundField("OBSERVACIONESAGENDA", "Observación", true, false, true); GridViewBoundField bdfFecha = new GridViewBoundField("FECHACREAAGENDA", "Fecha", true, true, true); GridViewBoundField bdfUSUARIO = new GridViewBoundField("USUARIOCREAAGENDA", "Usuario", true, true, true); grvListaDatosCantonalesTemp.Columns.Add(bdfPKOBSERVACIONES); grvListaDatosCantonalesTemp.Columns.Add(bdfFKNUMSOLICITUD); grvListaDatosCantonalesTemp.Columns.Add(bdfOBSERVACIONES); grvListaDatosCantonalesTemp.Columns.Add(bdfFecha); grvListaDatosCantonalesTemp.Columns.Add(bdfUSUARIO); grvListaDatosCantonalesTemp.Columns[0].ItemStyle.Width = 10; grvListaDatosCantonalesTemp.Columns[1].ItemStyle.Width = 40; grvListaDatosCantonalesTemp.Columns[2].ItemStyle.Width = 25; grvListaDatosCantonalesTemp.Columns[3].ItemStyle.Width = 110; grvListaDatosCantonalesTemp.Columns[4].ItemStyle.Width = 1000; cuwBusquedaList.LlenarCHKLBusqueda(grvListaDatosCantonalesTemp); } catch (Exception ex) { throw ex; } } /// /// Metodo que se encarga de agregar el filtro de busqueda seleccionado por el usuario /// /// /// private void condicionesBusqueda() //M2 { objObservacionesBL = new ObservacionesBL(); CondicionDAL condicion; DateTime dteFechaInicio = new DateTime(); DateTime dteFechaFin = new DateTime(); ListItem li = new ListItem(); string p_parametros; p_parametros = this.cuwBusquedaList.getValorBusqueda(); try { if (p_parametros != "") { //aqui se construye el listItem con los datos que vienen del control en formato {valor : texto , valor : texto} char[] separadorTuplas = { ',' }; char[] separadorValores = { ':' }; string[] arrayTupla = p_parametros.Split(separadorTuplas); for (int i = 0; i <= (arrayTupla.Length - 1); i++) { if (arrayTupla[i].ToString() != "") { string[] arrayValores = arrayTupla[i].ToString().Split(separadorValores); li = new ListItem(arrayValores[1], arrayValores[0]); if (li.Value.Contains("FECHA") && li.Text != string.Empty) { if (li.Value.Contains("INICIO")) { dteFechaInicio = Convert.ToDateTime(li.Text.ToString()); } if (li.Value.Contains("FIN")) { dteFechaFin = Convert.ToDateTime(li.Text.ToString()); if (dteFechaFin != null || dteFechaInicio != null) if (dteFechaInicio < dteFechaFin || dteFechaFin == dteFechaInicio) { objObservacionesBL = new ObservacionesBL(); arlCondicionesFiltroBusqueda = objObservacionesBL.buscarPorFechas(Tablas.agenda, dteFechaInicio, dteFechaFin, operadorLogico.AND, arlCondicionesFiltroBusqueda); } else MensajeInformativo(AyABL.BASESDEDATOS.ADS + "Interfaz: " + "Verifique que la Fecha de Inicio sea menor que la Fecha Final" + "M2"); else MensajeInformativo(AyABL.BASESDEDATOS.ADS + "Interfaz: " + "Verifique que los campos de las fechas no estén vacíos" + "M2"); } } else { if (li.Value.Contains("booleano") && li.Text != "2") { condicion = new CondicionDAL(); char[] separadorColumna = { '|' }; string[] strColumna = li.Value.Split(separadorColumna); condicion.valorIzquierdo = strColumna[1].ToString(); condicion.operadorGeneral = operadorGeneral.EQUAL; condicion.operadorLogico = operadorLogico.AND; condicion.valorDerecho = li.Text.Trim(); arlCondicionesFiltroBusqueda.Add(condicion); } else { if (li.Text != string.Empty && !li.Value.Contains("booleano")) { condicion = new CondicionDAL(); condicion.valorIzquierdo = li.Value; condicion.operadorGeneral = operadorGeneral.LIKEALL; condicion.operadorLogico = operadorLogico.AND; condicion.valorDerecho = "%" + li.Text.Trim() + "%"; arlCondicionesFiltroBusqueda.Add(condicion); } } } } } } } catch (Exception ex) { throw ex; } } /// /// Metodo que se utiliza con el buscador de la parte superior de la pantalla, y hace que se despliegue la información de acuerdo /// a lo solicitado /// | /// private void Buscar() //M4 { try { llenarGridView(true); } catch (Exception ex) { throw ex; } } /// /// Metodo que se utiliza para el despliegue de los botones /// private void ComandosxMenu() //M4 { try { DataSet dsComandos = getComandos(); if (dsComandos != null) { foreach (DataRow drTemp in dsComandos.Tables[0].Rows) { switch (drTemp["NOMBRECOMANDO"].ToString().ToUpper()) { case "NUEVO": btnNuevo.Visible = true; break; case "MODIFICA": //Inicio de variable tipo VIEWSTATE ViewState["PUEDEMODIFICAR"] = true; btnGuardar.Visible = true; break; } } } } catch (Exception ex) { throw ex; } } #endregion #region Metodos Controles a Datos (R5) /// /// guarda y modifica registros en la tabla. /// /// /// private int GuardarDatos() { int nValorRetornado = 0; try { string strModo = ViewState["MODO"].ToString(); objObservacionesBL = new ObservacionesBL(); objObservacionesBL.objobservacionesEL.OBSERVACIONES = txtobservaciones.Text; objObservacionesBL.objobservacionesEL.Fecha = DateTime.Now; objObservacionesBL.objobservacionesEL.FKSOLICITUD = nPKSolicitud; objObservacionesBL.objobservacionesEL.USUARIO = Session["LOGIN"].ToString(); nValorRetornado = objObservacionesBL.insertarObservaciones(); GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.IngresarRegistro + ": Se agrega la observación " + txtobservaciones.Text.Trim(), "frwAgendaSolicitud.aspx", Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); } catch (Exception ex) { throw ex; } return nValorRetornado; } #endregion #region Metodos Datos a Controles (R6) /// /// Carga el grid principal /// /// private void llenarGridView(bool p_Llenar) //M0 { try { if (!IsPostBack || p_Llenar) { condicionesBusqueda(); objObservacionesBL = new ObservacionesBL(); objObservacionesBL.objobservacionesEL.FKSOLICITUD = nPKSolicitud; DataSet dsObservaciones = objObservacionesBL.dsListarObservaciones(arlCondicionesFiltroBusqueda); General.detalleGridView(dsObservaciones, grvListaDatosCantonalesTemp, lblTotalDatos); //if (Session["SOLICITUD"].ToString() != null) //{ // buscarGridView(); //} } } catch (Exception ex) { throw ex; } } /// /// Muestra los datos del registro /// /// /// private void mostrarDatos(int p_intPkConsultar) //M1 { try { //limpiarCampos(); objObservacionesBL = new ObservacionesBL(); objObservacionesBL.objobservacionesEL.PK = p_intPkConsultar; DataSet dsObservaciones = objObservacionesBL.dsListarObservaciones(null); if (dsObservaciones.Tables[0].Rows.Count > 0) { //Información de la cantonal txtobservaciones.Text = dsObservaciones.Tables[0].Rows[0]["OBSERVACIONESAGENDA"].ToString(); } else { } } catch (Exception ex) { throw ex; } } private void limpiarCampos() { txtobservaciones.Text = ""; } /// /// Carga el grid principal /// /// /// //private void buscarGridView() //M2 //{ // try // { // { // objObservacionesBL = new ObservacionesBL(); // objObservacionesBL.objobservacionesEL.FKNUMSOLICITUD = strNumSolicitudTMP; // DataSet dsObservaciones = objObservacionesBL.dsListarObservaciones(); // } // } // catch (Exception ex) // { // throw ex; // } //} #endregion }