Option Explicit On Option Strict On Imports Extensiones Imports System.Data Partial Class RH_AsistenciaDetalle Inherits ClsPaginas #Region "PROPIEDADES" Private ReadOnly Property CvePersonal As Integer Get Return ViewState("CvePersonal").ToString.ToEntero End Get End Property #End Region Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not IsPostBack Then ViewState("Orden") = "" If Request("CvePersonal") IsNot Nothing AndAlso IsNumeric(Request("CvePersonal")) AndAlso Request("CvePersonal").ToEntero > 0 Then ViewState("CvePersonal") = Request("CvePersonal") CargaProyecto() CargaDatos() Else ViewState("CvePersonal") = -1 End If End If End Sub Private Sub CargaDatos() Dim ObjAsistenciaDetalle As New ClsRH If ObjAsistenciaDetalle.GetAsistenciasDetalle() Then ViewState("DTAsistenciaDetalle") = ObjAsistenciaDetalle.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) GvDatos.DataSource = ObjAsistenciaDetalle.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) Else Me.GvDatos.DataSource = Nothing End If ObjAsistenciaDetalle.Dispose() GvDatos.DataBind() UpDatos.Update() 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(200) e.Row.Cells(1).Width = Unit.Pixel(200) e.Row.Cells(2).Width = Unit.Pixel(100) e.Row.Cells(3).Width = Unit.Pixel(100) e.Row.Cells(4).Width = Unit.Pixel(200) e.Row.Cells(5).Width = Unit.Pixel(105) e.Row.Cells(6).Width = Unit.Pixel(55) End If e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Left e.Row.Cells(4).HorizontalAlign = HorizontalAlign.Left If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then e.Row.FCDropDownList("DdlProyectoAsignadoEdit").DataSource = GlobalDTProyectos(UsuarioActual.CveEmpresa) e.Row.FCDropDownList("DdlProyectoAsignadoEdit").DataBind() e.Row.FCDropDownList("DdlProyectoAsignadoEdit").SelectedValue = e.Row.DBCampo("CveProyecto") e.Row.FCDropDownList("DdlSubProyectoAsignadoEdit").Items.Clear() e.Row.FCDropDownList("DdlSubProyectoAsignadoEdit").DataSource = GlobalDTSubProyectos(e.Row.DBCampo("CveProyecto").ToEntero).FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa, "", {"CveSubProyecto", "SubProyecto"}) e.Row.FCDropDownList("DdlSubProyectoAsignadoEdit").DataBind() e.Row.FCDropDownList("DdlSubProyectoAsignadoEdit").SelectedValue = e.Row.DBCampo("CveSubProyecto") e.Row.FCDropDownList("DdlTipoHora").SelectedValue = e.Row.DBCampo("TipoHora") End If End If End Sub Protected Sub GvDatos_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvDatos.RowDeleting Dim ObjAsistDetall As New ClsRH Dim CveAsistencia As Integer = GvDatos.DataKeys(e.RowIndex).Value.ToString.ToEntero Dim CveSubProyecto As Integer = DirectCast(GvDatos.Rows(e.RowIndex).FindControl("LtlCveSubProyecto"), Literal).Text.ToEntero If ObjAsistDetall.RemoveAsistenciasDetalle(CveAsistencia, CveSubProyecto) Then GvDatos.EditIndex = -1 ViewState("DTAsistenciaDetalle") = ObjAsistDetall.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) GlobalDTAsistenciaDetalle = ObjAsistDetall.DtResultados Alert("El Detalle de la Asistencia se eliminó correctamente.", TipoMensaje.MsgInformacion) End If ObjAsistDetall.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 System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvDatos.RowUpdating Dim ObjAsistenciaDetalle As New ClsRH 'Dim Departamento As String = DirectCast(GvDatos.Rows(e.RowIndex).FindControl("TxtDepartamento"), TextBox).Text.Trim 'Dim Estatus As Boolean = GvDatos.Rows(e.RowIndex).FCCheckBox("ChkEstatus").Checked Dim CveSubProyecto As Integer = DirectCast(GvDatos.Rows(e.RowIndex).FindControl("DdlSubProyectoAsignadoEdit"), DropDownList).SelectedValue.ToEntero Dim HoraInicio As Date = (DateTime.Today & " " & DirectCast(GvDatos.Rows(e.RowIndex).FindControl("TxtHoraInicio"), TextBox).Text.Trim).ToDateTime Dim HoraFin As Date = (DateTime.Today & " " & DirectCast(GvDatos.Rows(e.RowIndex).FindControl("TxtHoraFin"), TextBox).Text.Trim).ToDateTime Dim TipoHora As Integer = DirectCast(GvDatos.Rows(e.RowIndex).FindControl("DdlTipoHora"), DropDownList).SelectedValue.ToEntero Dim CveAsistencia As Integer = GvDatos.DataKeys(e.RowIndex).Value.ToString.ToEntero If ObjAsistenciaDetalle.UpdateAsistenciaDetalle(CveSubProyecto, HoraInicio, HoraFin, TipoHora, CveAsistencia) Then GvDatos.EditIndex = -1 ViewState("DTAsistenciaDetalle") = ObjAsistenciaDetalle.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) GlobalDTAsistenciaDetalle = ObjAsistenciaDetalle.DtResultados Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion) End If ObjAsistenciaDetalle.Dispose() If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End Sub Protected Sub GvDatos_RowEditing(sender As Object, e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GvDatos.RowEditing GvDatos.EditIndex = e.NewEditIndex 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("DTAsistenciaDetalle"), DataTable), "", Orden, DataViewRowState.CurrentRows) GvDatos.DataSource = DV.ToTable() DV.Dispose() Else GvDatos.DataSource = CType(ViewState("DTAsistenciaDetalle"), DataTable) End If GvDatos.DataBind() UpDatos.Update() End Sub #End Region #Region "COMBOS" Public Sub CargaProyecto() DdlProyectoAsignado.DataSource = GlobalDTProyectos(UsuarioActual.CveEmpresa) DdlProyectoAsignado.DataBind() End Sub Public Sub CargaSubProyecto() DdlSubProyectoAsignado.Items.Clear() DdlSubProyectoAsignado.DataSource = GlobalDTSubProyectos(DdlProyectoAsignado.SelectedValue.ToEntero).FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) DdlSubProyectoAsignado.DataBind() DdlSubProyectoAsignado.Items.Insert(0, New ListItem("Seleccione", "-1")) End Sub Protected Sub DdlProyectoAsignado_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyectoAsignado.SelectedIndexChanged CargaSubProyecto() End Sub Protected Sub DdlProyectoAsignadoEdit_SelectedIndexChanged(sender As Object, e As EventArgs) Dim GvDatos As GridViewRow = DirectCast(DirectCast(sender, DropDownList).BindingContainer, GridViewRow) Dim CveProyecto As String = DirectCast(sender, DropDownList).SelectedValue GvDatos.FCDropDownList("DdlSubProyectoAsignadoEdit").Items.Clear() GvDatos.FCDropDownList("DdlSubProyectoAsignadoEdit").DataSource = GlobalDTSubProyectos(CveProyecto.ToEntero).FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa, "", {"CveSubProyecto", "SubProyecto"}) GvDatos.FCDropDownList("DdlSubProyectoAsignadoEdit").DataBind() End Sub #End Region Protected Sub LbAgregar_Click(sender As Object, e As EventArgs) Handles LbAgregar.Click Dim ObjAsistencias As New ClsRH Dim ObjAsistenciasDetalle As New ClsRH If ObjAsistencias.AddAsistencia(CvePersonal, -1, DdlSubProyectoAsignado.SelectedValue.ToEntero, NowADS(), 6, 100, 0, 0, -1, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, "G") Then If ObjAsistencias.CveAsistencia > 0 AndAlso ObjAsistenciasDetalle.AddAsistenciasDetalle(ObjAsistencias.CveAsistencia, DdlSubProyectoAsignado.SelectedValue.ToEntero, TxtHoraInicio.Text.Trim.ToDateTime, TxtHoraFin.Text.Trim.ToDateTime, DdlTipoHora.SelectedValue.ToEntero) Then TxtHoraInicio.Text = "" TxtHoraFin.Text = "" Alert("El nuevo Registro se guardó correctamente.", TipoMensaje.MsgInformacion) UpTitulos.Update() ViewState("DTAsistenciaDetalle") = ObjAsistenciasDetalle.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) GlobalDTAsistenciaDetalle = ObjAsistenciasDetalle.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End If ObjAsistenciasDetalle.Dispose() End If ObjAsistencias.Dispose() End Sub End Class