Option Explicit On Option Strict On Imports System.Data Imports System.Linq Imports Extensiones Partial Class RH_CatAsistenciasInasistencias Inherits ClsPaginas #Region " PROPIEDADES " Public Property PuedeEditar As Boolean Get Return CBool(ViewState("PuedeEditar")) End Get Set(value As Boolean) ViewState("PuedeEditar") = value End Set End Property Public Property PuedeEliminar As Boolean Get Return CBool(ViewState("PuedeEditar")) End Get Set(value As Boolean) ViewState("PuedeEditar") = value End Set End Property Private Property CveTipoAsisAEditar() As Integer 'Guardamos el ID de registro para saber cual registro Editar Get Return If(IsNothing(ViewState("CveTipoAsisAEditar")), -1, CInt(ViewState("CveTipoAsisAEditar"))) End Get Set ViewState("CveTipoAsisAEditar") = Value End Set End Property #End Region Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then ViewState("Orden") = "" CargaDatos() End If End Sub Public Sub CargaDatos() Dim ObjAsistenciasInasistencias As New ClsRH If ObjAsistenciasInasistencias.GetAsistenciasInasistencias() Then ViewState("DTAsistenciasInasistencias") = ObjAsistenciasInasistencias.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) GlobalDTAsistenciasInasistencias = ObjAsistenciasInasistencias.DtResultados Else Me.GvDatos.DataSource = Nothing End If ObjAsistenciasInasistencias.Dispose() If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End Sub Protected Sub BtnAgregarMotivo_Click(sender As Object, e As EventArgs) Handles BtnAgregarMotivoD.Click 'Hacemos aparecer la ventana modal con los campos limpios BtnEditarTiposDModal.Visible = False BtnAgregarTiposDModal.Visible = True CheckActiveSection.Visible = False AplicaNoAplica.Checked = False AplicaFalta.Checked = True AplicaVacacion.Checked = False AplicaIncapacidad.Checked = False AplicaRetardo.Checked = False AplicaAguinaldo.Checked = False AplicaUtilidades.Checked = False TipoTxt.Text = "" UpModalTiposD.Update() RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarTiposD")) End Sub Protected Sub LbAgregar_Click(sender As Object, e As System.EventArgs) Handles BtnAgregarTiposDModal.Click 'esta funcion es la que agrega un nuevo motivo de baja se activa con el boton "Agregar" de la ventana modal" Dim ObjAsistenciasInasistencias As New ClsRH Dim chkAplicaFalta As Boolean = AplicaFalta.Checked Dim chkAplicaNoAplica As Boolean = Not AplicaNoAplica.Checked Dim chkAplicaVacacion As Boolean = AplicaVacacion.Checked Dim chkAplicaIncapacidad As Boolean = AplicaIncapacidad.Checked Dim chkAplicaRetardo As Boolean = AplicaRetardo.Checked Dim chkAplicaAguinaldo As Boolean = AplicaAguinaldo.Checked Dim chkAplicaUtilidades As Boolean = AplicaUtilidades.Checked If ObjAsistenciasInasistencias.AddAsistenciasInasistencias(TipoTxt.Text.Trim, chkAplicaFalta, chkAplicaNoAplica, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, chkAplicaVacacion, chkAplicaIncapacidad, chkAplicaRetardo, chkAplicaAguinaldo, chkAplicaUtilidades) Then TipoTxt.Text = "" Alert("El nuevo Tipo Asistencias/Inasistencias se guardó correctamente.", TipoMensaje.MsgInformacion) UpTitulos.Update() ViewState("DTAsistenciasInasistencias") = ObjAsistenciasInasistencias.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) GlobalDTAsistenciasInasistencias = ObjAsistenciasInasistencias.DtResultados If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End If ObjAsistenciasInasistencias.Dispose() End Sub #Region "G V D A T O S" Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then End If End Sub Public Sub GvDatos_RowEditing(sender As Object, e As EventArgs) 'Este metodo muestra la pantalla modal con la información del renglon ya puesta en los campos del formulario BtnAgregarTiposDModal.Visible = False BtnEditarTiposDModal.Visible = True CheckActiveSection.Visible = True Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) 'obtenemos el renglon que acabamos de seleccionar TipoTxt.Text = GvRow.DataKey("Tipo") AplicaNoAplica.Checked = If(GvRow.DataKey("AplicaAsistencia") = "Aplica", True, False) AplicaFalta.Checked = If(GvRow.DataKey("AplicaFalta") = "Aplica", True, False) AplicaVacacion.Checked = If(GvRow.DataKey("AplicaVacacion") = "Aplica", True, False) AplicaIncapacidad.Checked = If(GvRow.DataKey("AplicaIncapacidad") = "Aplica", True, False) AplicaRetardo.Checked = If(GvRow.DataKey("AplicaRetardo") = "Aplica", True, False) AplicaAguinaldo.Checked = If(GvRow.DataKey("AplicaAguinaldo") = "Aplica", True, False) AplicaUtilidades.Checked = If(GvRow.DataKey("AplicaUtilidades") = "Aplica", True, False) ChkEstatus.Checked = If(GvRow.DataKey("Estatus") = "Activo", True, False) CveTipoAsisAEditar = Convert.ToInt32(GvRow.DataKey("CveAsistenciasInasistencias")) 'Guardamos en una propiedad el id del registro del cual haremos cambios, se guarda y se utiliza en el metodo "GvDatos_RowUpdating" UpDatos.Update() If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarTiposD")) End Sub Protected Sub GvDatos_RowUpdating(sender As Object, e As EventArgs) Handles BtnEditarTiposDModal.Click '(Leer primero "GvDatos_RowEditing")Se manda la informacion a un procedmiento que hace la actualizacion Dim ObjAsistenciasInasistencias As New ClsRH Dim Tipo As String = TipoTxt.Text.Trim Dim Estatus As Boolean = ChkEstatus.Checked Dim ckAplicaFalta As Boolean = Not AplicaFalta.Checked Dim AplicaAsistencia As Boolean = AplicaNoAplica.Checked Dim CveAsistenciasInasistencias As Integer = CveTipoAsisAEditar 'aquí obtenemos el valor de la propiedad que utilizamos en el metodo "GvDatos_RowEditing" Dim chkAplicaVacacion As Boolean = AplicaVacacion.Checked Dim chkAplicaIncapacidad As Boolean = AplicaIncapacidad.Checked Dim chkAplicaRetardo As Boolean = AplicaRetardo.Checked Dim chkAplicaAguinaldo As Boolean = AplicaAguinaldo.Checked Dim chkAplicaUtilidades As Boolean = AplicaUtilidades.Checked If ObjAsistenciasInasistencias.UpdateAsistenciasInasistencias(Tipo, ckAplicaFalta, AplicaAsistencia, Estatus, CveAsistenciasInasistencias, chkAplicaVacacion, chkAplicaIncapacidad, chkAplicaRetardo, chkAplicaAguinaldo, chkAplicaUtilidades) Then GvDatos.EditIndex = -1 ViewState("DTAsistenciasInasistencias") = ObjAsistenciasInasistencias.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) GlobalDTAsistenciasInasistencias = ObjAsistenciasInasistencias.DtResultados Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion) End If ObjAsistenciasInasistencias.Dispose() If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End Sub Protected Sub GvDatos_RowCancelingEdit(sender As Object, e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvDatos.RowCancelingEdit GvDatos.EditIndex = -1 If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End Sub Protected Sub GvDatos_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvDatos.RowDeleting Dim ObjAsistenciasInasistencias As New ClsRH If ObjAsistenciasInasistencias.RemoveAsistenciasInasistencias(GvDatos.DataKeys(e.RowIndex).Value.ToString.ToEntero) Then GvDatos.EditIndex = -1 ViewState("DTAsistenciasInasistencias") = ObjAsistenciasInasistencias.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) GlobalDTAsistenciasInasistencias = ObjAsistenciasInasistencias.DtResultados Alert("El AsistenciasInasistencias se eliminó correctamente.", TipoMensaje.MsgInformacion) End If ObjAsistenciasInasistencias.Dispose() If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End Sub #End Region #Region "O R D E N A M I E N T O" Protected Sub LbOrden_Click(ByVal sender As Object, ByVal e As EventArgs) Dim Orden As String = "" Dim Campo As String = "" Dim Literal As Literal = Nothing Const OrdenInicial As String = "" Dim Arg(2) As String Arg = CType(sender, LinkButton).CommandArgument().ToString.Split(";"c) Campo = Arg(0) Literal = CType(CType(sender, LinkButton).NamingContainer.FindControl("Img" & Campo.Replace(",", "_")), Literal) If ViewState(String.Format("O{0}", Campo)) IsNot Nothing AndAlso ViewState(String.Format("O{0}", Campo)).ToString = String.Format("{0} DESC", Campo) Then ViewState(String.Format("O{0}", Campo)) = String.Format("{0} ASC", Campo) Literal.Text = String.Format("") Else ViewState(String.Format("O{0}", Campo)) = String.Format("{0} DESC", Campo) Literal.Text = String.Format("") End If Orden = OrdenInicial & ViewState(String.Format("O{0}", Campo)).ToString ViewState("Orden") = Orden CargaGrid(Orden) End Sub Private Sub CargaGrid(Orden As String) If Orden <> String.Empty Then Dim DV As New DataView(CType(ViewState("DTAsistenciasInasistencias"), DataTable), "", Orden, DataViewRowState.CurrentRows) GvDatos.DataSource = DV.ToTable() DV.Dispose() Else GvDatos.DataSource = CType(ViewState("DTAsistenciasInasistencias"), DataTable) End If GvDatos.DataBind() UpDatos.Update() End Sub #End Region End Class