Option Explicit On Option Strict On Imports System.Data Imports System.Linq Imports Extensiones Partial Class RH_CatMotivosHorasExtras Inherits ClsPaginas 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 CveMotivoHoraExtraAEditar() As Integer 'Guardamos el ID de registro para saber cual registro Editar Get Return If(IsNothing(ViewState("CveMotivoHoraExtraAEditar")), -1, CInt(ViewState("CveMotivoHoraExtraAEditar"))) End Get Set ViewState("CveMotivoHoraExtraAEditar") = Value End Set End Property 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 ObjMotivosHorasExtras As New ClsRH If ObjMotivosHorasExtras.GetMotivoHorasExtras() Then ViewState("DTMotivosHorasExtras") = ObjMotivosHorasExtras.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) GlobalDTMotivosHorasExtras = ObjMotivosHorasExtras.DtResultados Else Me.GvDatos.DataSource = Nothing End If ObjMotivosHorasExtras.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 saltoDeLinea.Visible = False MotivoTxt.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 ObjMotivosHorasExtras As New ClsRH If ObjMotivosHorasExtras.AddMotivoHoraExtra(MotivoTxt.Text.Trim, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then MotivoTxt.Text = "" Alert("El nuevo Motivo de Horas Extras se guardó correctamente.", TipoMensaje.MsgInformacion) UpTitulos.Update() ViewState("DTMotivosHorasExtras") = ObjMotivosHorasExtras.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) GlobalDTMotivosHorasExtras = ObjMotivosHorasExtras.DtResultados If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End If ObjMotivosHorasExtras.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 If e.Row.RowIndex = 0 Then e.Row.Cells(0).Width = Unit.Pixel(250) e.Row.Cells(1).Width = Unit.Pixel(100) e.Row.Cells(2).Width = Unit.Pixel(100) e.Row.Cells(3).Width = Unit.Pixel(100) e.Row.Cells(4).Width = Unit.Pixel(100) e.Row.Cells(5).Width = Unit.Pixel(61) End If e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left End If End Sub Protected Sub GvDatos_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvDatos.RowDeleting Dim ObjMotivosHorasExtras As New ClsRH If ObjMotivosHorasExtras.RemoveMotivoHoraExtra(GvDatos.DataKeys(e.RowIndex).Value.ToString.ToEntero) Then GvDatos.EditIndex = -1 ViewState("DTMotivosHorasExtras") = ObjMotivosHorasExtras.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) GlobalDTMotivosHorasExtras = ObjMotivosHorasExtras.DtResultados Alert("El MotivoHoraExtra se eliminó correctamente.", TipoMensaje.MsgInformacion) End If ObjMotivosHorasExtras.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_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 ObjMotivosHorasExtras As New ClsRH Dim MotivoHoraExtra As String = MotivoTxt.Text.Trim Dim Estatus As Boolean = ChkEstatus.Checked Dim CveMotivoHoraExtra As Integer = CveMotivoHoraExtraAEditar 'aquí obtenemos el valor de la propiedad que utilizamos en el metodo "GvDatos_RowEditing" If ObjMotivosHorasExtras.UpdateMotivoHoraExtra(MotivoHoraExtra, Estatus, CveMotivoHoraExtra) Then GvDatos.EditIndex = -1 ViewState("DTMotivosHorasExtras") = ObjMotivosHorasExtras.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) GlobalDTMotivosHorasExtras = ObjMotivosHorasExtras.DtResultados Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion) End If ObjMotivosHorasExtras.Dispose() If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") 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 saltoDeLinea.Visible = True Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) 'obtenemos el renglon que acabamos de seleccionar MotivoTxt.Text = GvRow.DataKey("MotivoHoraExtra") ChkEstatus.Checked = If(GvRow.DataKey("Estatus") = "Activo", True, False) CveMotivoHoraExtraAEditar = Convert.ToInt32(GvRow.DataKey("CveMotivoHoraExtra")) '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 #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("DTMotivosHorasExtras"), DataTable), "", Orden, DataViewRowState.CurrentRows) GvDatos.DataSource = DV.ToTable() DV.Dispose() Else GvDatos.DataSource = CType(ViewState("DTMotivosHorasExtras"), DataTable) End If GvDatos.DataBind() UpDatos.Update() End Sub #End Region End Class