Option Strict On Imports Extensiones Imports System.Data Partial Class RH_ListaAsistenciaRH Inherits ClsPaginas Property CveSupervisor As Integer Get If ViewState("CveSupervisor") Is Nothing Then Return -1 Else Return DirectCast(ViewState("CveSupervisor"), Integer) End If End Get Set(value As Integer) ViewState("CveSupervisor") = value End Set End Property Private Sub RH_ListaAsistencia_Load(sender As Object, e As EventArgs) Handles Me.Load If Not Page.IsPostBack Then txtFecha.Text = NowADS().ToShortDateString CveSupervisor = UsuarioActual.CvePersonal CargaCombos() CargaDatos() End If End Sub Private Sub CargaCombos() DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa, 1) DdlSubProyecto.DataBind() DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa) DdlClientes.DataBind() DdlClientes.Items.Insert(0, New ListItem("Todos", "-1")) DdlDepartamento.DataSource = GlobalDTDepartamentos(UsuarioActual.CveEmpresa) DdlDepartamento.DataBind() DdlDepartamento.Items.Insert(0, New ListItem("Todos", "-1")) End Sub Private Sub CargaDatos() Dim ObjRH As New ClsRH If ObjRH.GetListaAsistencia(txtFecha.Text.ToDate, DdlSubProyecto.SelectedValue.ToEntero, DdlDepartamento.SelectedValue.ToEntero, CveSupervisor, DdlClientes.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then GvDatos.DataSource = ObjRH.DtResultados Else GvDatos.DataSource = Nothing End If ObjRH.Dispose() GvDatos.DataBind() UPDatos.Update() End Sub Private Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then 'CvePersonal,CveAsistencia,CveAsistenciasInasistencias 'DdlAsistenciaInasistencia Dim DTAsistenciasInasistencias As DataTable = GlobalDTAsistenciasInasistencias(UsuarioActual.CveEmpresa) 'If DTAsistenciasInasistencias.Rows.Count = 0 Then ' DTAsistenciasInasistencias = GlobalDTAsistenciasInasistencias().FiltraParametros($"CveEmpresa = 2 ") 'End If e.Row.FCDropDownList("DdlAsistenciaInasistencia").DataSource = DTAsistenciasInasistencias e.Row.FCDropDownList("DdlAsistenciaInasistencia").DataBind() e.Row.FCDropDownList("DdlAsistenciaInasistencia").Items.Insert(0, New ListItem("Seleccione uno", "-1")) e.Row.FCDropDownList("DdlAsistenciaInasistencia").SelectedValueExist(e.Row.DataKey("CveAsistenciasInasistencias").ToString) End If End Sub Private Sub BtnProcesaLista_Click(sender As Object, e As EventArgs) Handles BtnProcesaLista.Click Dim TieneError As Boolean = False Dim DTAsistenciasInasistencias As DataTable = GlobalDTAsistenciasInasistencias(UsuarioActual.CveEmpresa) If DTAsistenciasInasistencias.Rows.Count > 0 Then Dim ObjRH As New ClsRH ObjRH.IniciaTransacSQL() For Each gvRow As GridViewRow In GvDatos.Rows Dim DdlAsistenciaInasistencia As DropDownList = gvRow.FCDropDownList("DdlAsistenciaInasistencia") If DdlAsistenciaInasistencia.SelectedIndex > 0 Then Try Dim dtTemp As DataTable = DTAsistenciasInasistencias Dim Falta As Boolean = If(DTAsistenciasInasistencias.FiltraParametros($"CveAsistenciasInasistencias = {DdlAsistenciaInasistencia.SelectedValue.ToEntero }")(0)("AplicaAsistencia").ToString = "Aplica", False, True) Dim Porcentaje As Decimal Dim CveAsistencia As Integer = gvRow.DataKey("CveAsistencia").ToEntero Dim CvePersonal As Integer = gvRow.DataKey("CvePersonal").ToEntero Dim CveSubProyecto As Integer = gvRow.DataKey("CveSubProyecto").ToEntero Dim CveTurno As Integer = gvRow.DataKey("CveTurno").ToEntero Dim SalarioDiario As Decimal = gvRow.DataKey("SalarioDiario").ToDecimal If Falta Then Porcentaje = 0 Else Porcentaje = 100 End If If CveAsistencia > 0 Then If Not ObjRH.UpdateListaAsistencia(CveAsistencia, CvePersonal, CveSubProyecto, CveTurno, txtFecha.Text.ToDate, DdlAsistenciaInasistencia.SelectedValue.ToEntero, Porcentaje, 0, 0, -1, "-1", SalarioDiario, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then TieneError = True Exit For End If Else If Not ObjRH.AddListaAsistencia(CvePersonal, CveSubProyecto, CveTurno, txtFecha.Text.ToDate, DdlAsistenciaInasistencia.SelectedValue.ToEntero, Porcentaje, 0, 0, -1, "-1", SalarioDiario, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then TieneError = True Exit For End If End If Catch ex As Exception TieneError = True Exit For End Try End If Next If TieneError = False Then ObjRH.Commit() Alert("Asistencias procesadas correctamente", TipoMensaje.MsgInformacion) Else ObjRH.RollBack() Alert("Se preento un error al procesar la lista de asistencia", TipoMensaje.MsgAdvertencia) End If ObjRH.Dispose() Else Alert("No existen datos de asistencias inasistencias", TipoMensaje.MsgInformacion) End If End Sub Private Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click CargaDatos() End Sub End Class