Files
SIG/RH/RepChecadorPreAsistencia.aspx.vb
2023-02-15 09:34:52 -07:00

1904 lines
83 KiB
VB.net

Option Strict On
Imports Extensiones
Imports System.Data
Partial Class RH_RepChecadorPreAsistencia
Inherits ClsPaginas
#Region "Propiedades"
Private Property FiltroAplicado As String
Get
If ViewState("CveRegistroDetalle") Is Nothing Then
Return "-1"
Else
Return ViewState("CveRegistroDetalle").ToString()
End If
End Get
Set(value As String)
ViewState("CveRegistroDetalle") = value
End Set
End Property
Private Property DtDatosTabla As DataTable
Get
If ViewState("DtDatosTabla") Is Nothing Then
Return New DataTable
Else
Return DirectCast(ViewState("DtDatosTabla"), DataTable)
End If
End Get
Set(value As DataTable)
ViewState("DtDatosTabla") = value
End Set
End Property
Private Property DtResultados As DataTable
Get
If ViewState("DtResultados") Is Nothing Then
Return New DataTable
Else
Return DirectCast(ViewState("DtResultados"), DataTable)
End If
End Get
Set(value As DataTable)
ViewState("DtResultados") = value
End Set
End Property
Private Property DTTipoPeriodoDatos As DataTable
Get
If ViewState("DTTipoPeriodoDatos") Is Nothing Then
Return New DataTable
Else
Return DirectCast(ViewState("DTTipoPeriodoDatos"), DataTable)
End If
End Get
Set(value As DataTable)
ViewState("DTTipoPeriodoDatos") = value
End Set
End Property
Private Property DTPeridos As DataTable
Get
If ViewState("DTPeridoso") Is Nothing Then
Return New DataTable
Else
Return DirectCast(ViewState("DTPeridoso"), DataTable)
End If
End Get
Set(value As DataTable)
ViewState("DTPeridoso") = value
End Set
End Property
Private Property FechaInicioPeriodo As Date
Get
If ViewState("FechaInicioPeriodo") Is Nothing Then
Return Nothing
Else
Return DirectCast(ViewState("FechaInicioPeriodo"), Date)
End If
End Get
Set(value As Date)
ViewState("FechaInicioPeriodo") = value
End Set
End Property
Private Property FechaFinPeriodo As Date
Get
If ViewState("FechaFinPeriodo") Is Nothing Then
Return Nothing
Else
Return DirectCast(ViewState("FechaFinPeriodo"), Date)
End If
End Get
Set(value As Date)
ViewState("FechaFinPeriodo") = value
End Set
End Property
Private Property DiasPeriodo As Integer
Get
If ViewState("DiasPeriodo") Is Nothing Then
Return -1
Else
Return DirectCast(ViewState("DiasPeriodo"), Integer)
End If
End Get
Set(value As Integer)
ViewState("DiasPeriodo") = value
End Set
End Property
Private Property CveTipoPeriodo As Integer
Get
If ViewState("CveTipoPeriodo") Is Nothing Then
Return -1
Else
Return DirectCast(ViewState("CveTipoPeriodo"), Integer)
End If
End Get
Set(value As Integer)
ViewState("CveTipoPeriodo") = value
End Set
End Property
#End Region
Private Sub RH_RepChecadorIncidencias_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
CargaCombos()
End If
GvBind()
End Sub
Private Sub CargaCombos()
DdlAsistenciaInacistencia.DataSource = GlobalDTAsistenciasInasistencias.FiltraParametros(String.Format(" CveEmpresa = {0} AND CveAsistenciasInasistencias <> 6", UsuarioActual.Empresa.CveEmpresa))
DdlAsistenciaInacistencia.DataBind()
DdlAsistenciaInacistencia.Items.Insert(0, New ListItem("Seleccionar una opción", "-1"))
Dim objNom As New ClsNominas
If objNom.GetTiposPeriodos() Then
DdlTipoPeriodo.DataSource = objNom.DtResultados.FiltraParametros(" CveTipoPeriodo <> 6 ")
DTTipoPeriodoDatos = objNom.DtResultados
End If
objNom.Dispose()
DdlTipoPeriodo.DataBind()
DdlTipoPeriodo.Items.Insert(0, New ListItem("Seleccione uno", "-1"))
DdlTurno.DataSource = GlobalDTTurno(UsuarioActual.CveEmpresa)
DdlTurno.DataBind()
' DdlTurno.Items.Insert(0, New ListItem("Seleccione uno", "-1"))
DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa, 1)
DdlSubProyecto.DataBind()
DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1"))
DdlTurno.Items.Insert(0, New ListItem("Todos", "-1"))
DdlTurno.SelectedValue = "-1"
End Sub
Private Sub GeneraFechasInicioFinPerdiodo()
lblTituloPagina.Text = ""
If DdlRango.SelectedIndex > 0 Then
lblTituloPagina.Text = DdlRango.SelectedItem.Text
Dim DtTemp As DataTable = DTPeridos.FiltraParametros("CvePeriodo = " & DdlRango.SelectedValue.ToEntero)
FechaInicioPeriodo = DtTemp(0)("FechaInicio").ToString().ToDate
FechaFinPeriodo = DtTemp(0)("FechaFin").ToString().ToDate
End If
UpTituloPagina.Update()
End Sub
Protected Sub DdlTipoPeriodo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoPeriodo.SelectedIndexChanged
DdlRango.Items.Clear()
DTPeridos = Nothing
Dim objRh As New ClsRH
If DdlTipoPeriodo.SelectedIndex <> 0 Then
CveTipoPeriodo = DdlTipoPeriodo.SelectedValue.ToEntero
DiasPeriodo = DTTipoPeriodoDatos.FiltraParametros(" CveTipoPeriodo = " & DdlTipoPeriodo.SelectedValue)(0)("DiasPeriodo").ToString().ToEntero
Dim objNomina As New ClsNominas
If objNomina.GetPeriodos(DdlTipoPeriodo.SelectedValue.ToEntero, UsuarioActual.Empresa.CveEmpresa, -1, -1, -1) Then
TxtFechaModal.Text = ""
lblTituloPagina.Text = ""
UpTituloPagina.Update()
UpModalFechaBody.Update()
If objNomina.DtResultados.Rows.Count > 0 Then
BtnConsultar.Enabled = True
DTPeridos = objNomina.DtResultados
Dim DTPeridosView As DataView = DTPeridos.DefaultView
DTPeridosView.Sort = " FechaInicio desc "
DTPeridos = DTPeridosView.ToTable
DdlRango.DataSource = objNomina.DtResultados
' LblPeriodo.Visible = True
'DdlRango.Visible = True
Else
' RegistraScript("$('#ModalModalFecha').modal({ backdrop: 'static', keyboard: false});")
Alert("No se encontraron periodos disponibles.", TipoMensaje.MsgAdvertencia)
DTPeridos = Nothing
DdlRango.DataSource = Nothing
End If
Else
DTPeridos = Nothing
DdlRango.DataSource = Nothing
End If
Dim DtTempFechaInicial As DataTable = DTPeridos.FiltraParametros("Estatus = 1")
objNomina.Dispose()
DdlRango.DataBind()
If DtTempFechaInicial.Rows.Count > 0 Then
Dim temCvePeriodoNomi As Integer = DtTempFechaInicial(0)("CvePeriodo").ToString().ToEntero
DdlRango.SelectedValueExist(temCvePeriodoNomi)
End If
DdlRango.Items.Insert(0, New ListItem("Seleccione uno", "-1"))
UPFiltros.Update()
' BtnConsultar.Enabled = True
Else
DTPeridos = Nothing
DdlRango.DataSource = Nothing
'DdlRango.Visible = False
' LblPeriodo.Visible = Fale
lblTituloPagina.Text = ""
UPFiltros.Update()
UpTituloPagina.Update()
BtnConsultar.Enabled = False
End If
GeneraFechasInicioFinPerdiodo()
End Sub
Private Sub DdlRango_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlRango.SelectedIndexChanged
GeneraFechasInicioFinPerdiodo()
UpTituloPagina.Update()
End Sub
Private Sub CargaDatos()
DtDatosTabla = Nothing
Dim objRH As New ClsRH
Dim objGrales As New ClsGenerales
Dim DTDatos As New DataTable
Dim DtPersonal As New DataTable
Dim DTHorarioPersonal As DataTable
Dim DtVacaciones As New DataTable
Dim RetrasosMaximos As Integer = 3
Dim dt As New DataTable
Dim Retardos As Integer = 0
Dim DTAsistenciasInasistencias As New DataTable
Dim DTChecadorRegistros As New DataTable
Dim DTHorarios As New DataTable
Dim DTDiasInhabiles As New DataTable
Dim DTTipoPeriodo As New DataTable
Dim DTAsistenciasInasistenciasReg As New DataTable
Dim CveChecadorHorario As Integer = -1
Dim TolRetAcumulados As Integer = 0
Dim TolRetEntradaMin As Integer = 0
Dim TolFalEntradaMin As Integer = 0
Dim RetSalidaAntes As Boolean = True
Dim TolSalidaAntesMin As Integer = 0
Dim CveASistenciaInasistenciaAsistio As Integer = -1
Dim CveAsistenciaInasistenciaFalta As Integer = -1
Dim CveAsistenciaInasistenciaRetardo As Integer = -1
Dim CveAsistenciaInasistenciaDescanso As Integer = -1
Try
CveASistenciaInasistenciaAsistio = GlobalDTAsistenciasInasistencias.FiltraParametros(" TipoCorto = 'A' AND CveEmpresa = " & UsuarioActual.Empresa.CveEmpresa)(0)("CveAsistenciasInasistencias").ToString().ToEntero
CveAsistenciaInasistenciaFalta = GlobalDTAsistenciasInasistencias.FiltraParametros(" TipoCorto = 'F' AND CveEmpresa = " & UsuarioActual.Empresa.CveEmpresa)(0)("CveAsistenciasInasistencias").ToString().ToEntero
CveAsistenciaInasistenciaRetardo = GlobalDTAsistenciasInasistencias.FiltraParametros(" TipoCorto = 'R' AND CveEmpresa = " & UsuarioActual.Empresa.CveEmpresa)(0)("CveAsistenciasInasistencias").ToString().ToEntero
CveAsistenciaInasistenciaDescanso = GlobalDTAsistenciasInasistencias.FiltraParametros(" TipoCorto = 'D' AND CveEmpresa = " & UsuarioActual.Empresa.CveEmpresa)(0)("CveAsistenciasInasistencias").ToString().ToEntero
Catch ex As Exception
Alert("Se presento un error al obtener las claves de asistencia.", TipoMensaje.MsgError)
Exit Sub
End Try
GeneraFechasInicioFinPerdiodo()
DiasPeriodo = (FechaFinPeriodo - FechaInicioPeriodo).TotalDays.ToEntero + 1
Dim objNom As New ClsNominas
If objNom.GetTiposPeriodos() Then
DdlTipoPeriodo.DataSource = objNom.DtResultados
DTTipoPeriodo = objNom.DtResultados
End If
objNom.Dispose()
If objGrales.DiasInhabiles_Get(-1, 1, UsuarioActual.CveEmpresa) Then
DTDiasInhabiles = objGrales.DtResultados
End If
objGrales.Dispose()
Dim Resultados As New DataTable
Resultados.Columns.Add("CvePersonal")
Resultados.Columns.Add("NombreCompleto")
'Resultados.Columns.Add("Codigo")
Resultados.Columns.Add("CveSubProyecto")
Resultados.Columns.Add("SalarioDiario")
Resultados.Columns.Add("CveAsistenciasInasistencias")
Resultados.Columns.Add("PorcentajePago")
Resultados.Columns.Add("Fecha")
Resultados.Columns.Add("Asistio")
Resultados.Columns.Add("Retraso")
Resultados.Columns.Add("Inconsistencia")
Resultados.Columns.Add("Descanso")
Resultados.Columns.Add("Entrada")
Resultados.Columns.Add("Salida")
Resultados.Columns.Add("FaltaRetraso")
Resultados.Columns.Add("DiaInhabil")
Resultados.Columns.Add("FaltaPorRetrasos")
Resultados.Columns.Add("Mensaje")
Resultados.Columns.Add("FaltaRetardosAcumulados")
Resultados.Columns.Add("DiaInhabilStr")
Resultados.Columns.Add("DiaVacacion")
Resultados.Columns.Add("TipoCorto")
Resultados.Columns.Add("Sancion")
If DdlTurno.SelectedValue.ToEntero > 0 And DdlTipoPeriodo.SelectedValue.ToEntero > 0 And DdlRango.SelectedValue.ToEntero > 0 Then
Dim FiltroSubProyecto As String = ""
Dim filtroturno = If(DdlTurno.SelectedValue = "-1", "", $"AND CveTurno = { DdlTurno.SelectedValue}")
If DdlSubProyecto.SelectedIndex > 0 Then
FiltroSubProyecto = $" CveTipoPeriodo = {DdlTipoPeriodo.SelectedValue } {filtroturno} AND CveSubProyecto = { DdlSubProyecto.SelectedValue.ToEntero }"
Else
FiltroSubProyecto = $" CveTipoPeriodo = {DdlTipoPeriodo.SelectedValue } {filtroturno} "
End If
DtPersonal = GlobalDTRHPersonal(UsuarioActual.Empresa.CveEmpresa).FiltraParametros(FiltroSubProyecto)
If objRH.ChecadorHorariosGet(-1, 1, UsuarioActual.Empresa.CveEmpresa) Then
DTHorarios = objRH.DtResultados
If DdlTurno.SelectedIndex > 0 Then
Dim DTTemp As DataTable = GlobalDTTurno(UsuarioActual.CveEmpresa).FiltraParametros("CveTurno = " & DdlTurno.SelectedValue)
Dim TMCveChecadorHorario As Integer = -1
If DTTemp.Rows.Count > 0 Then
TMCveChecadorHorario = DTTemp(0)("CveChecadorHorario").ToString().ToEntero
Dim DtHorarioTemp = DTHorarios.FiltraParametros("CveChecadorHorario = " & TMCveChecadorHorario)
If DtHorarioTemp.Rows.Count > 0 Then
TolRetAcumulados = DtHorarioTemp(0)("TolRetAcumulados").ToString().ToEntero
TolRetEntradaMin = DtHorarioTemp(0)("TolRetEntradaMin").ToString().ToEntero
TolFalEntradaMin = DtHorarioTemp(0)("TolFalEntradaMin").ToString().ToEntero
RetSalidaAntes = Boolean.Parse(DtHorarioTemp(0)("RetSalidaAntes").ToString())
TolSalidaAntesMin = DtHorarioTemp(0)("TolSalidaAntesMin").ToString().ToEntero
End If
End If
End If
End If
If objRH.PreAsistenciaRegistrosGet(FechaInicioPeriodo, FechaFinPeriodo, DdlTurno.SelectedValue.ToEntero, UsuarioActual.Empresa.CveEmpresa) Then
DTChecadorRegistros = objRH.DtResultados
End If
If objRH.VacacionesGet(-1, UsuarioActual.Empresa.CveEmpresa, FechaInicioPeriodo, FechaFinPeriodo) Then
DtVacaciones = objRH.DtResultados
End If
If objRH.GetPersonalAsistenciaRegistros(FechaInicioPeriodo, FechaFinPeriodo, UsuarioActual.CveEmpresa) Then
DTAsistenciasInasistencias = objRH.DtResultados
End If
If objRH.ChecadorPreAsistenciaRegistrosAsistenciasGet(CveTipoPeriodo, FechaInicioPeriodo, FechaFinPeriodo, UsuarioActual.Empresa.CveEmpresa) Then
DTAsistenciasInasistenciasReg = objRH.DtResultados
If DTAsistenciasInasistenciasReg.Rows.Count > 0 Then
BtnAgregar.Visible = False
BtnEstusAsistenciaModal.Visible = False
DdlAsistenciaInacistencia.Enabled = False
Else
BtnAgregar.Visible = True
BtnEstusAsistenciaModal.Visible = True
DdlAsistenciaInacistencia.Enabled = True
End If
UpAgregar.Update()
End If
objRH.Dispose()
If RdbChecador.Checked Then
For Each dRow As DataRow In DtPersonal.Rows
Dim Fecha As Date = FechaInicioPeriodo
Dim ContadorFaltas As Integer = 0
Dim registrosPersonal As DataTable = DTChecadorRegistros.FiltraParametros(" CvePersonal = " & dRow(0).ToString())
If registrosPersonal.Rows.Count > 0 Then
DTHorarioPersonal = DTHorarios.FiltraParametros(" CveChecadorHorario = " & registrosPersonal(0)("CveHorario").ToString() & "")
Retardos = 0
For x As Integer = 1 To (DiasPeriodo)
Dim ReRow As DataRow = Resultados.NewRow
ReRow("CvePersonal") = dRow(0).ToString()
ReRow("NombreCompleto") = dRow("NombreCompleto").ToString()
'ReRow("Codigo") = dRow("Codigo").ToString()
ReRow("CveSubProyecto") = dRow("CveSubProyecto").ToString()
ReRow("SalarioDiario") = dRow("SalarioDiario").ToString()
ReRow("CveAsistenciasInasistencias") = "-1"
ReRow("PorcentajePago") = "0"
ReRow("Fecha") = Fecha.ToString()
ReRow("Retraso") = "False"
ReRow("Asistio") = "True"
ReRow("Inconsistencia") = "False"
ReRow("Descanso") = "False"
ReRow("Entrada") = "ND"
ReRow("Salida") = "ND"
ReRow("FaltaRetraso") = "False"
ReRow("FaltaPorRetrasos") = "False"
ReRow("DiaInhabil") = "False"
ReRow("Mensaje") = ""
ReRow("FaltaRetardosAcumulados") = "False"
ReRow("DiaInhabil") = "False"
ReRow("DiaInhabilStr") = ""
ReRow("DiaVacacion") = "False"
ReRow("CveAsistenciasInasistencias") = "-1"
ReRow("TipoCorto") = ""
ReRow("Sancion") = "False"
Dim diaSemana As Integer = Fecha.DayOfWeek
Dim Asistencia As Boolean = True
Dim Horario As DataTable = HorarioDiario(Fecha, DTHorarioPersonal)
Dim DiaLaboral As Boolean = Boolean.Parse(Horario(0)(0).ToString())
Dim HorarioEntrada As TimeSpan = TimeSpan.Parse(Horario(0)(1).ToString())
Dim HorarioSalidaComida As TimeSpan = TimeSpan.Parse(Horario(0)(2).ToString())
Dim HorarioEntradaComida As TimeSpan = TimeSpan.Parse(Horario(0)(3).ToString())
Dim HorarioSalida As TimeSpan = TimeSpan.Parse(Horario(0)(4).ToString())
Dim FechaHoraEntrada As DateTime
Dim FechahoraSalida As DateTime
Dim turnoNocturno As Boolean
Dim FechaHoraRegistroEntrada As DateTime
Dim FechaHoraRegistroSalida As DateTime
FechaHoraEntrada = Fecha + HorarioEntrada
If Not turnoNocturno Then
FechahoraSalida = Fecha + HorarioEntrada + (HorarioSalida - HorarioEntrada)
Else
FechahoraSalida = FechahoraSalida.AddDays(1) - HorarioEntrada + HorarioSalida
End If
Dim tempDatetime1 As DateTime = FechaHoraEntrada.AddHours(-2) 'la entrada se podra checar hasta dos horas antes de la hora de entrada
Dim tempDatetime2 As DateTime = FechahoraSalida.AddHours(4) 'Legalmente no se pueden hacer mas de 3 horas extras al día
Dim tabladelDia As DataTable = registrosPersonal.FiltraParametros(" CvePersonal = " & dRow(0).ToString() & " AND FechaRegistro >= '" & tempDatetime1.ToShortDateString & "' AND FechaRegistro <= '" & tempDatetime2.ToString() & "'")
If DTAsistenciasInasistencias.FiltraParametros(" CvePersonal = " & dRow(0).ToString() & " AND Fecha >= '" & Fecha & "'").Rows.Count > 0 Then
ReRow("CveAsistenciasInasistencias") = DTAsistenciasInasistencias(0)("CveAsistenciasInasistencias").ToString()
End If
Dim CountRegistros As Integer = tabladelDia.Rows.Count
Dim Inconsistencia As Boolean = False
If Not DiaLaboral Then
ReRow("CveAsistenciasInasistencias") = CveAsistenciaInasistenciaDescanso
ReRow("PorcentajePago") = "100"
ReRow("Descanso") = "True"
End If
Dim TempDTValidaciones As DataTable = DTDiasInhabiles.FiltraParametros(" FechaInhabil = '" & Fecha.ToString() & "'")
If TempDTValidaciones.Rows.Count > 0 Then
ReRow("PorcentajePago") = "100"
ReRow("DiaInhabil") = "True"
ReRow("DiaInhabilStr") = TempDTValidaciones(0)("DiaInhabil").ToString()
ReRow("CveAsistenciasInasistencias") = CveAsistenciaInasistenciaDescanso
ReRow("PorcentajePago") = "100"
Else
ReRow("DiaInhabil") = "False"
ReRow("DiaInhabilStr") = ""
End If
TempDTValidaciones = DtVacaciones.FiltraParametros(" Fecha = '" & Fecha.ToString() & "' AND CvePersonal = " & dRow(0).ToString())
If TempDTValidaciones.Rows.Count > 0 Then
ReRow("DiaVacacion") = "True"
ReRow("CveAsistenciasInasistencias") = CveAsistenciaInasistenciaDescanso
ReRow("PorcentajePago") = "100"
Else
ReRow("DiaVacacion") = "False"
End If
If Fecha >= Now Then
ReRow("Asistio") = "True"
ReRow("CveAsistenciasInasistencias") = CveASistenciaInasistenciaAsistio
ReRow("PorcentajePago") = "100"
Else
If ReRow("DiaVacacion").ToString() <> "True" And ReRow("Descanso").ToString() <> "True" Then
If CountRegistros > 0 Then
FechaHoraRegistroEntrada = DateTime.Parse(tabladelDia(0)("FechaRegistro").ToString())
FechaHoraRegistroSalida = DateTime.Parse(tabladelDia(tabladelDia.Rows.Count - 1)("FechaRegistro").ToString())
If Not (FechaHoraRegistroEntrada - FechaHoraEntrada).TotalMinutes > TolFalEntradaMin Then
If (FechaHoraRegistroEntrada - FechaHoraEntrada).TotalMinutes > TolRetEntradaMin Then
Retardos = Retardos + 1
ReRow("Mensaje") = ReRow("Mensaje").ToString() & vbLf & "Retardo"
If Retardos >= TolRetAcumulados Then
ReRow("Asistio") = "False"
ReRow("FaltaRetardosAcumulados") = "True"
ReRow("Mensaje") = ReRow("Mensaje").ToString() & vbLf & " Falta por " & TolRetAcumulados & " acumulados. "
Retardos = 0
ReRow("CveAsistenciasInasistencias") = CveAsistenciaInasistenciaFalta
ReRow("PorcentajePago") = "0"
Else
ReRow("Asistio") = "True"
ReRow("Retraso") = "True"
ReRow("CveAsistenciasInasistencias") = CveAsistenciaInasistenciaRetardo
ReRow("PorcentajePago") = "100"
End If
Else
ReRow("Asistio") = "True"
ReRow("CveAsistenciasInasistencias") = CveASistenciaInasistenciaAsistio
ReRow("PorcentajePago") = "100"
End If
Else
Asistencia = False
ReRow("Mensaje") = ReRow("Mensaje").ToString() & vbLf & "Falta por retardo."
ReRow("FaltaRetraso") = "True"
ReRow("CveAsistenciasInasistencias") = CveAsistenciaInasistenciaFalta
ReRow("PorcentajePago") = "0"
End If
If FechahoraSalida > FechaHoraRegistroSalida Then
Dim diferenciasalidaMinutos As Integer = (FechahoraSalida - FechaHoraRegistroSalida).TotalMinutes.ToString().ToEntero
If RetSalidaAntes Then
If diferenciasalidaMinutos > TolSalidaAntesMin Then
ReRow("Asistio") = "True"
ReRow("Retraso") = "True"
ReRow("Mensaje") = ReRow("Mensaje").ToString() & vbLf & "Retraso por salida antes de tiempo (" & diferenciasalidaMinutos & " minutos)."
ReRow("CveAsistenciasInasistencias") = CveAsistenciaInasistenciaRetardo
ReRow("PorcentajePago") = "100"
Else
ReRow("Asistio") = "True"
ReRow("Retraso") = "False"
ReRow("Mensaje") = ReRow("Mensaje").ToString() & vbLf & "Salida antes de tiempo (" & diferenciasalidaMinutos & " minutos)."
ReRow("CveAsistenciasInasistencias") = CveASistenciaInasistenciaAsistio
ReRow("PorcentajePago") = "100"
End If
End If
End If
Else
ReRow("Asistio") = "False"
ReRow("CveAsistenciasInasistencias") = CveAsistenciaInasistenciaFalta
ReRow("PorcentajePago") = "0"
End If
End If
End If
If ReRow("Asistio").ToString() = "True" Then ReRow("PorcentajePago") = "100" Else ReRow("PorcentajePago") = "0"
Resultados.Rows.Add(ReRow)
Fecha = Fecha.AddDays(1)
Next x
Else
For x As Integer = 1 To (DiasPeriodo)
Dim ReRow As DataRow = Resultados.NewRow
ReRow("CvePersonal") = dRow(0).ToString()
ReRow("NombreCompleto") = dRow("NombreCompleto").ToString()
'ReRow("Codigo") = dRow("Codigo").ToString()
ReRow("CveSubProyecto") = dRow("CveSubProyecto").ToString()
ReRow("SalarioDiario") = dRow("SalarioDiario").ToString()
ReRow("CveAsistenciasInasistencias") = CveAsistenciaInasistenciaFalta
ReRow("PorcentajePago") = "0"
ReRow("Fecha") = Fecha.ToString()
ReRow("Retraso") = "False"
ReRow("Inconsistencia") = "False"
ReRow("Descanso") = "False"
ReRow("FaltaPorRetrasos") = "False"
ReRow("Entrada") = "ND"
ReRow("Salida") = "ND"
ReRow("Mensaje") = ""
ReRow("FaltaRetardosAcumulados") = "False"
ReRow("FaltaRetardosAcumulados") = "False"
ReRow("DiaInhabil") = "False"
ReRow("DiaInhabilStr") = ""
ReRow("DiaVacacion") = "False"
ReRow("CveAsistenciasInasistencias") = "-1"
ReRow("TipoCorto") = ""
ReRow("Sancion") = "False"
If dRow("CveChecadorHorario").ToString().ToEntero > 0 Then
DTHorarioPersonal = DTHorarios.FiltraParametros(" CveChecadorHorario = " & dRow("CveChecadorHorario").ToString().ToEntero & "")
If Fecha >= Now Then
ReRow("Asistio") = "True"
ReRow("CveAsistenciasInasistencias") = CveASistenciaInasistenciaAsistio
Else
ReRow("Asistio") = "False"
ReRow("CveAsistenciasInasistencias") = CveAsistenciaInasistenciaFalta
End If
Dim Horario As DataTable = HorarioDiario(Fecha, DTHorarioPersonal)
Dim DiaLaboral As Boolean = Boolean.Parse(Horario(0)(0).ToString())
If Not DiaLaboral Then
ReRow("CveAsistenciasInasistencias") = CveAsistenciaInasistenciaDescanso
ReRow("PorcentajePago") = "100"
ReRow("Descanso") = "True"
Else
Dim TempDTValidaciones As DataTable = DTDiasInhabiles.FiltraParametros(" FechaInhabil = '" & Fecha.ToString() & "'")
If TempDTValidaciones.Rows.Count > 0 Then
ReRow("DiaInhabil") = "True"
ReRow("DiaInhabilStr") = TempDTValidaciones(0)("DiaInhabil").ToString()
ReRow("CveAsistenciasInasistencias") = CveAsistenciaInasistenciaDescanso
ReRow("PorcentajePago") = "100"
Else
ReRow("DiaInhabil") = "False"
ReRow("DiaInhabilStr") = ""
ReRow("PorcentajePago") = "0"
End If
TempDTValidaciones = DtVacaciones.FiltraParametros(" Fecha = '" & Fecha.ToString() & "' AND CvePersonal = " & dRow(0).ToString())
If TempDTValidaciones.Rows.Count > 0 Then
ReRow("DiaVacacion") = "True"
ReRow("CveAsistenciasInasistencias") = CveAsistenciaInasistenciaDescanso
ReRow("PorcentajePago") = "100"
Else
ReRow("DiaVacacion") = "False"
End If
End If
End If
Resultados.Rows.Add(ReRow)
Fecha = Fecha.AddDays(1)
Next
End If
Next
Else
BtnAgregar.Visible = False
For Each dRow As DataRow In DtPersonal.Rows
Dim Fecha As Date = FechaInicioPeriodo
Dim ContadorFaltas As Integer = 0
Dim registrosPersonal As DataTable = DTAsistenciasInasistenciasReg.FiltraParametros(" CvePersonal = " & dRow(0).ToString())
If registrosPersonal.Rows.Count > 0 Then
For x As Integer = 1 To (DiasPeriodo)
Dim ReRow As DataRow = Resultados.NewRow
ReRow("CvePersonal") = dRow(0).ToString()
ReRow("NombreCompleto") = dRow("NombreCompleto").ToString()
'ReRow("Codigo") = dRow("Codigo").ToString()
ReRow("CveSubProyecto") = dRow("CveSubProyecto").ToString()
ReRow("SalarioDiario") = dRow("SalarioDiario").ToString()
ReRow("CveAsistenciasInasistencias") = "-1"
ReRow("PorcentajePago") = "0"
ReRow("Fecha") = Fecha.ToString()
ReRow("Retraso") = "False"
ReRow("Asistio") = "True"
ReRow("Inconsistencia") = "False"
ReRow("Descanso") = "False"
ReRow("Entrada") = "ND"
ReRow("Salida") = "ND"
ReRow("FaltaRetraso") = "False"
ReRow("FaltaPorRetrasos") = "False"
ReRow("DiaInhabil") = "False"
ReRow("Mensaje") = ""
ReRow("FaltaRetardosAcumulados") = "False"
ReRow("DiaInhabil") = "False"
ReRow("DiaInhabilStr") = ""
ReRow("DiaVacacion") = "False"
ReRow("CveAsistenciasInasistencias") = "-1"
ReRow("TipoCorto") = ""
ReRow("Sancion") = "False"
Dim diaSemana As Integer = Fecha.DayOfWeek
Dim Asistencia As Boolean = True
Dim tabladelDia As DataTable = registrosPersonal.FiltraParametros(" CvePersonal = " & dRow(0).ToString() & " AND Fecha = '" & Fecha.ToShortDateString & "'")
If tabladelDia.Rows.Count > 0 Then
ReRow("TipoCorto") = tabladelDia(0)("TipoCorto").ToString()
ReRow("CveAsistenciasInasistencias") = tabladelDia(0)("CveAsistenciasInasistencias").ToString()
Else
ReRow("Asistio") = "False"
ReRow("TipoCorto") = "F"
ReRow("CveAsistenciasInasistencias") = "-1"
End If
If ReRow("Asistio").ToString() = "True" Then ReRow("PorcentajePago") = "100" Else ReRow("PorcentajePago") = "0"
Resultados.Rows.Add(ReRow)
Fecha = Fecha.AddDays(1)
Next x
Else
For x As Integer = 1 To (DiasPeriodo)
Dim ReRow As DataRow = Resultados.NewRow
ReRow("CvePersonal") = dRow(0).ToString()
ReRow("NombreCompleto") = dRow("NombreCompleto").ToString()
ReRow("CveSubProyecto") = dRow("CveSubProyecto").ToString()
ReRow("SalarioDiario") = dRow("SalarioDiario").ToString()
'ReRow("Codigo") = dRow("Codigo").ToString()
ReRow("CveAsistenciasInasistencias") = CveAsistenciaInasistenciaFalta
ReRow("PorcentajePago") = "0"
ReRow("Asistio") = "False"
ReRow("Fecha") = Fecha.ToString()
ReRow("Retraso") = "False"
ReRow("Inconsistencia") = "False"
ReRow("Descanso") = "False"
ReRow("FaltaPorRetrasos") = "False"
ReRow("Entrada") = "ND"
ReRow("Salida") = "ND"
ReRow("Mensaje") = ""
ReRow("FaltaRetardosAcumulados") = "False"
ReRow("FaltaRetardosAcumulados") = "False"
ReRow("DiaInhabil") = "False"
ReRow("DiaInhabilStr") = ""
ReRow("DiaVacacion") = "False"
ReRow("CveAsistenciasInasistencias") = "-1"
ReRow("TipoCorto") = ""
If ReRow("Asistio").ToString() = "True" Then ReRow("PorcentajePago") = "100" Else ReRow("PorcentajePago") = "0"
Resultados.Rows.Add(ReRow)
Fecha = Fecha.AddDays(1)
Next
End If
Next
End If
'Primera parte del proceso terminada
DtResultados = Resultados
dt.Columns.Add("CvePersonal")
dt.Columns.Add("NombreCompleto")
'dt.Columns.Add("Codigo")
dt.Columns.Add("Fecha1")
dt.Columns.Add("Fecha2")
dt.Columns.Add("Fecha3")
dt.Columns.Add("Fecha4")
dt.Columns.Add("Fecha5")
dt.Columns.Add("Fecha6")
dt.Columns.Add("Fecha7")
dt.Columns.Add("Fecha8")
dt.Columns.Add("Fecha9")
dt.Columns.Add("Fecha10")
dt.Columns.Add("Fecha11")
dt.Columns.Add("Fecha12")
dt.Columns.Add("Fecha13")
dt.Columns.Add("Fecha14")
dt.Columns.Add("Fecha15")
dt.Columns.Add("Fecha16")
dt.Columns.Add("Fecha17")
dt.Columns.Add("Fecha18")
dt.Columns.Add("Fecha19")
dt.Columns.Add("Fecha20")
dt.Columns.Add("Fecha21")
dt.Columns.Add("Fecha22")
dt.Columns.Add("Fecha23")
dt.Columns.Add("Fecha24")
dt.Columns.Add("Fecha25")
dt.Columns.Add("Fecha26")
dt.Columns.Add("Fecha27")
dt.Columns.Add("Fecha28")
dt.Columns.Add("Fecha29")
dt.Columns.Add("Fecha30")
dt.Columns.Add("Fecha31")
Dim DTFechas As DataTable
Dim DTUPersonal As DataTable
Dim DTVFechas As New DataView(DtResultados)
DTFechas = DTVFechas.ToTable(True, "Fecha")
DTUPersonal = DTVFechas.ToTable(True, {"CvePersonal", "NombreCompleto"})
Dim ColumN As Integer = (dt.Columns.Count) - 2
For x As Integer = 3 To dt.Columns.Count
GVRegDatos.Columns(x).HeaderText = ""
GVRegDatos.Columns(x).Visible = False
Next
UpDatos.Update()
ColumN = 3
For Each drow As DataRow In DTFechas.Rows
GVRegDatos.Columns(ColumN).HeaderText = String.Format("<div class='Widthall' style='text-align:center;font-size:11px!important'>{1}</div><div class='Widthall' style='text-align:center'> {0} </div>", drow(0).ToString().ToDate.ToString("dd/MM/yyyy"), ObtenerDiaSemana(drow(0).ToString().ToDate))
GVRegDatos.Columns(ColumN).Visible = True
ColumN = ColumN + 1
Next
Dim medida As DateTime = Now
For Each pRow As DataRow In DtPersonal.Rows
Dim RRow As DataRow = dt.NewRow
RRow("CvePersonal") = pRow("CvePersonal")
RRow("NombreCompleto") = pRow("NombreCompleto")
'RRow("Codigo") = pRow("Codigo")
ColumN = 2
Dim ResumenDia As New DataTable
Dim DTTempAsistencias As New DataTable
Dim filtro As String
Dim TipoCorto As String = ""
For Each drow As DataRow In DTFechas.Rows
filtro = " CvePersonal = " & pRow("CvePersonal").ToString() & " AND Fecha ='" & drow(0).ToString() & "' "
ResumenDia = DtResultados.FiltraParametros(filtro)
TipoCorto = ""
If RdbChecador.Checked Then
RRow(ColumN) = "-"
If ResumenDia(0)("Asistio").ToString() = "True" Or ResumenDia(0)("TipoCorto").ToString() = "A" Then
RRow(ColumN) = "A|" & filtro
End If
If ResumenDia(0)("DiaVacacion").ToString() = "True" Or ResumenDia(0)("TipoCorto").ToString() = "V" Then
RRow(ColumN) = "V|" & filtro
End If
If ResumenDia(0)("Asistio").ToString() = "False" Or ResumenDia(0)("TipoCorto").ToString() = "F" Then
RRow(ColumN) = "F|" & filtro
End If
If ResumenDia(0)("Retraso").ToString() = "True" Or ResumenDia(0)("TipoCorto").ToString() = "R" Then
RRow(ColumN) = "R|" & filtro
End If
If ResumenDia(0)("FaltaRetraso").ToString() = "True" Or TipoCorto = "FR" Then
RRow(ColumN) = "FR|" & filtro
End If
If ResumenDia(0)("Descanso").ToString() = "True" Or ResumenDia(0)("DiaInhabil").ToString() = "True" Then
RRow(ColumN) = "D|" & filtro
End If
If ResumenDia(0)("Inconsistencia").ToString() = "True" Then
RRow(ColumN) = "IN|" & filtro
If ResumenDia(0)("Descanso").ToString() = "True" Then
RRow(ColumN) = "IND|" & filtro
End If
End If
Else
DTTempAsistencias = DTAsistenciasInasistenciasReg.FiltraParametros(filtro)
If DTTempAsistencias.Rows.Count > 0 Then
TipoCorto = DTTempAsistencias(0)("TipoCorto").ToString()
Else
TipoCorto = "F"
End If
RRow(ColumN) = "" & TipoCorto & "|" & filtro
End If
ColumN = ColumN + 1
Next
ResumenDia.Dispose()
DTTempAsistencias.Dispose()
dt.Rows.Add(RRow)
Next
Dim SalidaTiempo As Integer = (Now - medida).TotalSeconds.ToString().ToEntero
SalidaTiempo = SalidaTiempo
DtDatosTabla = dt
Else
DtDatosTabla = Nothing
objRH.Dispose()
End If
GvBind()
End Sub
Private Sub GvBind()
If DtDatosTabla.Rows.Count > 0 Then
'BtnAgregar.Visible = True
GVRegDatos.DataSource = DtDatosTabla
Else
'BtnAgregar.Visible = False
GVRegDatos.DataSource = Nothing
End If
GVRegDatos.DataBind()
UpDatos.Update()
End Sub
Private Sub ReprocesarTabla()
Dim dt As New DataTable
Dim DtPersonal As New DataTable
Dim DTAsistenciasInasistencias As New DataTable
Dim objRH As New ClsRH
If objRH.GetPersonalAsistenciaRegistros(FechaInicioPeriodo, FechaFinPeriodo, UsuarioActual.CveEmpresa) Then
DTAsistenciasInasistencias = objRH.DtResultados
End If
DtPersonal = GlobalDTRHPersonal(UsuarioActual.Empresa.CveEmpresa).FiltraParametros($" CveTipoPeriodo = { DdlTipoPeriodo.SelectedValue} AND CveEstado = 1 " & If(DdlTurno.SelectedValue = "-1", "", $" AND CveTurno = {DdlTurno.SelectedValue}"))
dt.Columns.Add("CvePersonal")
dt.Columns.Add("NombreCompleto")
'dt.Columns.Add("Codigo")
dt.Columns.Add("Fecha1")
dt.Columns.Add("Fecha2")
dt.Columns.Add("Fecha3")
dt.Columns.Add("Fecha4")
dt.Columns.Add("Fecha5")
dt.Columns.Add("Fecha6")
dt.Columns.Add("Fecha7")
dt.Columns.Add("Fecha8")
dt.Columns.Add("Fecha9")
dt.Columns.Add("Fecha10")
dt.Columns.Add("Fecha11")
dt.Columns.Add("Fecha12")
dt.Columns.Add("Fecha13")
dt.Columns.Add("Fecha14")
dt.Columns.Add("Fecha15")
dt.Columns.Add("Fecha16")
dt.Columns.Add("Fecha17")
dt.Columns.Add("Fecha18")
dt.Columns.Add("Fecha19")
dt.Columns.Add("Fecha20")
dt.Columns.Add("Fecha21")
dt.Columns.Add("Fecha22")
dt.Columns.Add("Fecha23")
dt.Columns.Add("Fecha24")
dt.Columns.Add("Fecha25")
dt.Columns.Add("Fecha26")
dt.Columns.Add("Fecha27")
dt.Columns.Add("Fecha28")
dt.Columns.Add("Fecha29")
dt.Columns.Add("Fecha30")
dt.Columns.Add("Fecha31")
Dim DTFechas As DataTable
Dim DTUPersonal As DataTable
Dim DTVFechas As New DataView(DtResultados)
DTFechas = DTVFechas.ToTable(True, "Fecha")
DTUPersonal = DTVFechas.ToTable(True, {"CvePersonal", "NombreCompleto"})
Dim ColumN As Integer = (dt.Columns.Count) - 2
For x As Integer = 3 To ColumN - 1
GVRegDatos.Columns(x).HeaderText = ""
GVRegDatos.Columns(x).Visible = False
Next
ColumN = 3
For Each drow As DataRow In DTFechas.Rows
GVRegDatos.Columns(ColumN).HeaderText = String.Format("<div class='Widthall' style='text-align:center;font-size:11px!important'>{1}</div><div class='Widthall' style='text-align:center'> {0} </div>", drow(0).ToString().ToDate.ToString("dd/MM/yyyy"), ObtenerDiaSemana(drow(0).ToString().ToDate))
GVRegDatos.Columns(ColumN).Visible = True
ColumN = ColumN + 1
Next
For Each pRow As DataRow In DtPersonal.Rows
Dim RRow As DataRow = dt.NewRow
RRow("CvePersonal") = pRow("CvePersonal")
RRow("NombreCompleto") = pRow("NombreCompleto")
'RRow("Codigo") = pRow("Codigo")
ColumN = 2
For Each drow As DataRow In DTFechas.Rows
Dim filtro As String = " CvePersonal = " & pRow("CvePersonal").ToString() & " AND Fecha ='" & drow(0).ToString() & "' "
Dim ResumenDia As DataTable = DtResultados.FiltraParametros(" CvePersonal = " & pRow("CvePersonal").ToString() & " AND Fecha ='" & drow(0).ToString() & "' ")
Dim DTTempAsistencias As DataTable = DTAsistenciasInasistencias.FiltraParametros(" CvePersonal = " & pRow("CvePersonal").ToString() & " AND Fecha ='" & drow(0).ToString() & "' ")
Dim TipoCorto As String = ""
If DTTempAsistencias.Rows.Count > 1 Then
TipoCorto = DTTempAsistencias(0)("TipoCorto").ToString()
End If
If TipoCorto <> "" Then
If TipoCorto = "F" Then
RRow(ColumN) = "F" & "|" & filtro
End If
If TipoCorto = "R" Then
RRow(ColumN) = "R" & "|" & filtro
Else
If TipoCorto = "A" Then
RRow(ColumN) = "A" & "|" & filtro
Else
If TipoCorto = "D" Then
RRow(ColumN) = "D" & "|" & filtro
Else
If TipoCorto = "V" Then
RRow(ColumN) = "V" & "|" & filtro
Else
If TipoCorto = "I" Then
RRow(ColumN) = "I" & "|" & filtro
Else
If TipoCorto = "S" Then
RRow(ColumN) = "S" & "|" & filtro
End If
End If
End If
End If
End If
End If
Else
RRow(ColumN) = "-"
If ResumenDia(0)("TipoCorto").ToString() = "" Then
If ResumenDia(0)("Asistio").ToString() = "True" Then
RRow(ColumN) = "A|" & filtro
End If
If ResumenDia(0)("DiaVacacion").ToString() = "True" Then
RRow(ColumN) = "V" & "|" & filtro
Else
If ResumenDia(0)("Asistio").ToString() = "False" Then
RRow(ColumN) = "F" & "|" & filtro
Else
If ResumenDia(0)("Retraso").ToString() = "True" Then
RRow(ColumN) = "R" & "|" & filtro
Else
If ResumenDia(0)("FaltaRetraso").ToString() = "True" Then
RRow(ColumN) = "FR" & "|" & filtro
lblModalMensaje.Text = "Falta por retardo"
Else
If ResumenDia(0)("Descanso").ToString() = "True" Then
RRow(ColumN) = "D" & "|" & filtro
Else
If ResumenDia(0)("Inconsistencia").ToString() = "True" Then
RRow(ColumN) = "IN" & "|" & filtro
If ResumenDia(0)("Descanso").ToString() = "True" Then
RRow(ColumN) = "IND" & "|" & filtro
Else
If ResumenDia(0)("TipoCorto").ToString() = "S" Then
RRow(ColumN) = "S" & "|" & filtro
Else
If ResumenDia(0)("TipoCorto").ToString() = "M" Then
RRow(ColumN) = "M" & "|" & filtro
End If
End If
End If
End If
End If
End If
End If
End If
End If
Else
If ResumenDia(0)("TipoCorto").ToString() = "A" Then
RRow(ColumN) = "A" & "|" & filtro
End If
If ResumenDia(0)("TipoCorto").ToString() = "V" Then
RRow(ColumN) = "V" & "|" & filtro
Else
If ResumenDia(0)("TipoCorto").ToString() = "F" Then
RRow(ColumN) = "F" & "|" & filtro
Else
If ResumenDia(0)("TipoCorto").ToString() = "R" Then
RRow(ColumN) = "R" & "|" & filtro
Else
If TipoCorto = "FR" Then
RRow(ColumN) = "FR" & "|" & filtro
lblModalMensaje.Text = "Falta por retardo"
Else
If ResumenDia(0)("TipoCorto").ToString() = "D" Then
RRow(ColumN) = "D" & "|" & filtro
End If
If ResumenDia(0)("TipoCorto").ToString() = "I" Then
RRow(ColumN) = "I" & "|" & filtro
Else
If ResumenDia(0)("TipoCorto").ToString() = "C" Then
RRow(ColumN) = "C" & "|" & filtro
Else
If ResumenDia(0)("TipoCorto").ToString() = "S" Then
RRow(ColumN) = "S" & "|" & filtro
Else
If ResumenDia(0)("TipoCorto").ToString() = "M" Then
RRow(ColumN) = "M" & "|" & filtro
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
ColumN = ColumN + 1
Next
dt.Rows.Add(RRow)
Next
Dim stopp As Integer = 0
DtDatosTabla = dt
End Sub
Private Function HorarioDiario(Fecha As Date, DTHorarioPersonal As DataTable) As DataTable
Dim respuesta As New DataTable
respuesta.Columns.Add("TRABAJO", System.Type.GetType("System.Boolean"))
respuesta.Columns.Add("ENTRADA", System.Type.GetType("System.TimeSpan"))
respuesta.Columns.Add("SALIDACOMIDA", System.Type.GetType("System.TimeSpan"))
respuesta.Columns.Add("ENTRADACOMIDA", System.Type.GetType("System.TimeSpan"))
respuesta.Columns.Add("SALIDA", System.Type.GetType("System.TimeSpan"))
Dim Drow As DataRow = respuesta.NewRow
Dim drp As DataRow = Nothing
If DTHorarioPersonal.Rows.Count > 0 Then
drp = DTHorarioPersonal(0)
End If
Dim diaSemana As Integer = Fecha.DayOfWeek
Select Case diaSemana
Case 0
Drow(0) = Boolean.Parse(If(IsNothing(drp), "true", drp("Domingo").ToString()))
Drow(1) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("DomingoEntrada").ToString()))
Drow(2) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("DomingoSalidaComida").ToString()))
Drow(3) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("DomingoEntradaComida").ToString()))
Drow(4) = TimeSpan.Parse(If(IsNothing(drp), "09:00", drp("DomingoSalida").ToString()))
Exit Select
Case 1
Drow(0) = Boolean.Parse(If(IsNothing(drp), "true", drp("Lunes").ToString()))
Drow(1) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("LunesEntrada").ToString()))
Drow(2) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("LunesSalidaComida").ToString()))
Drow(3) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("LunesEntradaComida").ToString()))
Drow(4) = TimeSpan.Parse(If(IsNothing(drp), "09:00", drp("LunesSalida").ToString()))
Exit Select
Case 2
Drow(0) = Boolean.Parse(If(IsNothing(drp), "true", drp("Martes").ToString()))
Drow(1) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("MartesEntrada").ToString()))
Drow(2) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("MartesSalidaComida").ToString()))
Drow(3) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("MartesEntradaComida").ToString()))
Drow(4) = TimeSpan.Parse(If(IsNothing(drp), "09:00", drp("MartesSalida").ToString()))
Exit Select
Case 3
Drow(0) = Boolean.Parse(If(IsNothing(drp), "true", drp("Miercoles").ToString()))
Drow(1) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("MiercolesEntrada").ToString()))
Drow(2) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("MiercolesSalidaComida").ToString()))
Drow(3) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("MiercolesEntradaComida").ToString()))
Drow(4) = TimeSpan.Parse(If(IsNothing(drp), "09:00", drp("MiercolesSalida").ToString()))
Exit Select
Case 4
Drow(0) = Boolean.Parse(If(IsNothing(drp), "true", drp("Jueves").ToString()))
Drow(1) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("JuevesEntrada").ToString()))
Drow(2) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("JuevesSalidaComida").ToString()))
Drow(3) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("JuevesEntradaComida").ToString()))
Drow(4) = TimeSpan.Parse(If(IsNothing(drp), "09:00", drp("JuevesSalida").ToString()))
Exit Select
Case 5
Drow(0) = Boolean.Parse(If(IsNothing(drp), "true", drp("Viernes").ToString()))
Drow(1) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("ViernesEntrada").ToString()))
Drow(2) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("ViernesSalidaComida").ToString()))
Drow(3) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("ViernesEntradaComida").ToString()))
Drow(4) = TimeSpan.Parse(If(IsNothing(drp), "09:00", drp("ViernesSalida").ToString()))
Exit Select
Case 6
Drow(0) = Boolean.Parse(If(IsNothing(drp), "False", drp("Sabado").ToString()))
Drow(1) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("SabadoEntrada").ToString()))
Drow(2) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("SabadoSalidaComida").ToString()))
Drow(3) = TimeSpan.Parse(If(IsNothing(drp), "00:00", drp("SabadoEntradaComida").ToString()))
Drow(4) = TimeSpan.Parse(If(IsNothing(drp), "09:00", drp("SabadoSalida").ToString()))
Exit Select
End Select
respuesta.Rows.Add(Drow)
Return respuesta
End Function
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
CargaDatos()
End Sub
Private Sub BtnModalFecha_Click(sender As Object, e As EventArgs) Handles BtnModalFecha.Click
CalculaPeriodos(New DataTable, DiasPeriodo, CveTipoPeriodo, TxtFechaModal.Text.ToDate)
TxtFechaModal.Text = ""
lblTituloPagina.Text = ""
UpTituloPagina.Update()
UpModalFechaBody.Update()
RegistraScript("$('#ModalModalFecha').modal('hide');")
End Sub
Function CalculaPeriodos(DTNomPeriodos As DataTable, DiasPeriodo As Integer, CveTipoPeriodo As Integer, Optional FechaInicialPeriodos As Date = Nothing) As DataTable
Dim DTRespuesta As New DataTable
Dim FechaLoop As Date
Dim peridos As String = ""
Dim ContadorOrden As Integer = 0
DTRespuesta.Columns.Add("Valor")
DTRespuesta.Columns.Add("Texto")
DTRespuesta.Columns.Add("Numero")
DTRespuesta.Columns.Add("Orden")
If DTNomPeriodos.Rows.Count > 0 Then
FechaInicialPeriodos = DTNomPeriodos(DTNomPeriodos.Rows.Count - 1)("FechaFin").ToString().ToDate
For Each Row As DataRow In DTNomPeriodos.Rows
Dim Drow As DataRow = DTRespuesta.NewRow
Drow("Valor") = Row("FechaInicio").ToString().ToDate().ToString("dd/MM/yyyy") & "-" & Row("FechaFin").ToString().ToDate.ToString("dd/MM/yyyy") & "-" & Row("Numero").ToString()
Drow("Texto") = Row("FechaInicio").ToString().ToDate().ToString("dd/MM/yyyy") & " - " & Row("FechaFin").ToString().ToDate.ToString("dd/MM/yyyy") & " #" & Row("Numero").ToString() & " Cerrado"
Drow("Numero") = Row("Numero").ToString()
Drow("Orden") = ContadorOrden.ToString()
DTRespuesta.Rows.Add(Drow)
ContadorOrden += 1
Next
End If
'Dim DPI As Integer = DiasPeriodo + 1
'Dim DPF As Integer = DiasPeriodo
Dim DiasPerdiodoInicial As Integer = DiasPeriodo
Dim primeraBuelta As Boolean = True
Dim DiaDelMesInicial As Integer = FechaInicialPeriodos.Day
If Not FechaInicialPeriodos = Nothing And DiasPeriodo > 0 Then
FechaLoop = FechaInicialPeriodos
While FechaLoop <= Now
Dim Drow As DataRow = DTRespuesta.NewRow
Drow("Orden") = ContadorOrden.ToString()
ContadorOrden += 1
'Quincenal
If CveTipoPeriodo = 4 Then
If FechaLoop.Day >= 15 Then
DiasPeriodo = DateTime.DaysInMonth(FechaLoop.Year, FechaLoop.Month) - FechaLoop.Day
If DiasPeriodo = 0 Then
DiasPeriodo = 15
End If
Else
DiasPeriodo = 15
End If
If primeraBuelta Then
peridos = FechaLoop.ToString("dd/MM/yyyy") & " - " & FechaLoop.AddDays(DiasPeriodo - 1).ToString("dd/MM/yyyy")
primeraBuelta = False
FechaLoop = FechaLoop.AddDays(DiasPeriodo - 1)
Else
peridos = FechaLoop.AddDays(1).ToString("dd/MM/yyyy") & " - " & FechaLoop.AddDays(DiasPeriodo).ToString("dd/MM/yyyy")
FechaLoop = FechaLoop.AddDays(DiasPeriodo)
End If
End If
'Mensual
If CveTipoPeriodo = 5 Then
DiasPeriodo = FechaLoop.LastDayOfMonth.Day
Dim diasMes = DateTime.DaysInMonth(FechaLoop.Year, FechaLoop.Month)
If DiaDelMesInicial > diasMes Then
FechaLoop = New Date(FechaLoop.Year, FechaLoop.Month, diasMes)
Else
FechaLoop = New Date(FechaLoop.Year, FechaLoop.Month, DiaDelMesInicial)
End If
peridos = FechaLoop.ToString("dd/MM/yyyy") & " - " & FechaLoop.AddMonths(1).AddDays(-1).ToString("dd/MM/yyyy")
FechaLoop = FechaLoop.AddMonths(1)
End If
If CveTipoPeriodo < 4 Then
Dim anioActual As Integer = FechaLoop.Year
Dim AnioDiasPeriodo As Integer = FechaLoop.AddDays(DiasPeriodo).Year
If anioActual <> AnioDiasPeriodo Then
DiasPeriodo = DateTime.DaysInMonth(FechaLoop.Year, FechaLoop.Month) - FechaLoop.Day
If DiasPeriodo = 0 Then
DiasPeriodo = DiasPerdiodoInicial
End If
End If
If primeraBuelta Then
peridos = FechaLoop.ToString("dd/MM/yyyy") & " - " & FechaLoop.AddDays(DiasPeriodo - 1).ToString("dd/MM/yyyy")
primeraBuelta = False
FechaLoop = FechaLoop.AddDays(DiasPeriodo - 1)
Else
peridos = FechaLoop.AddDays(1).ToString("dd/MM/yyyy") & " - " & FechaLoop.AddDays(DiasPeriodo).ToString("dd/MM/yyyy")
FechaLoop = FechaLoop.AddDays(DiasPeriodo)
End If
End If
Drow(0) = peridos
Drow(1) = peridos & " Abierto"
DTRespuesta.Rows.Add(Drow)
End While
End If
Dim DtRespuestaView As DataView = DTRespuesta.DefaultView
DtRespuestaView.Sort = "orden desc"
DTRespuesta = DtRespuestaView.ToTable
DdlRango.DataSource = DTRespuesta
DdlRango.DataBind()
DdlRango.Items.Insert(0, New ListItem("Seleccionar uno", "-1"))
'DdlRango.Visible = True
'LblPeriodo.Visible = True
UPFiltros.Update()
Return DTRespuesta
End Function
Protected Sub GVRegDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GVRegDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim CountFecha As Integer = 1
Dim Instruccion As String = ""
Dim Filtro As String = ""
Dim lblFaltas As Label = e.Row.FCLabel("lblFaltas")
lblFaltas.Font.Bold = True
Dim ContadorFaltas As Integer = 0
Dim lnkLink As LinkButton
Dim NombreLink As String
Dim separador As Char()
Dim arrayComands As String()
For x As Integer = 3 To 33
NombreLink = "LnkFecha" & CountFecha
lnkLink = e.Row.FCLinkButton(NombreLink)
separador = {"|"c}
arrayComands = lnkLink.Text.Split(separador)
Instruccion = arrayComands(0)
If arrayComands.Length > 1 Then Filtro = arrayComands(1) Else Filtro = ""
lnkLink.CommandArgument = lnkLink.Text
If Instruccion = "-" Then
lnkLink.Text = "<i class='fa fa-check-square' aria-hidden='true'></i>"
lnkLink.ForeColor = Drawing.Color.Green
lnkLink.ToolTip = "Asistencia"
lnkLink.Font.Bold = True
End If
If Instruccion = "A" Then
lnkLink.Text = "<i class='fa fa-check-square' aria-hidden='true'></i>"
lnkLink.ForeColor = Drawing.Color.Green
lnkLink.ToolTip = "Asistencia"
lnkLink.Font.Bold = True
End If
If Instruccion = "F" Then
lnkLink.Text = "<i class='fa fa-exclamation' aria-hidden='True'></i>"
lnkLink.ToolTip = "Falta"
lnkLink.ForeColor = Drawing.Color.Red
ContadorFaltas = ContadorFaltas + 1
End If
If Instruccion = "FR" Then
lnkLink.Text = "<i class='fa fa-clock-o' aria-hidden='true'></i>"
lnkLink.ToolTip = "Falta por (Retardo)"
lnkLink.ForeColor = Drawing.Color.Red
ContadorFaltas = ContadorFaltas + 1
End If
If Instruccion = "D" Or Instruccion = "V" Then
lnkLink.Text = "<i Class='fa fa-sun-o' aria-hidden='true'></i>"
lnkLink.ToolTip = "Dia de descanso/no laboral/Vacación"
lnkLink.ForeColor = Drawing.Color.Green
End If
If Instruccion = "DI" Or Instruccion = "V" Then
lnkLink.Text = "<i Class='fa fa-sun-o' aria-hidden='true'></i>"
lnkLink.ToolTip = "Dia de descanso/no laboral/Vacación"
lnkLink.ForeColor = Drawing.Color.DarkOrange
End If
If Instruccion = "IN" Then
lnkLink.Text = "<i class='fa fa-exclamation-triangle' aria-hidden='true'></i>"
lnkLink.ToolTip = "Inconsistencia"
lnkLink.ForeColor = Drawing.Color.DarkOrange
lnkLink.Font.Bold = True
End If
If Instruccion = "IND" Then
lnkLink.Text = "<i class='fa fa-sun-o' aria-hidden='true'></i>"
lnkLink.ToolTip = "Asistencia en dia no laboral/Descanso"
lnkLink.ForeColor = Drawing.Color.DarkOrange
lnkLink.Font.Bold = True
End If
If Instruccion = "R" Then
lnkLink.Text = "<i class='fa fa-clock-o' aria-hidden='true'></i>"
lnkLink.ToolTip = "Retardo"
lnkLink.ForeColor = Drawing.Color.DarkOrange
lnkLink.Font.Bold = True
End If
If Instruccion = "D" Then
lnkLink.Text = "<i Class='fa fa-sun-o' aria-hidden='true'></i>"
lnkLink.ToolTip = "Dia de descanso/no laboral"
lnkLink.ForeColor = Drawing.Color.Green
End If
If Instruccion = "V" Then
lnkLink.Text = "<i Class='fa fa-sun-o' aria-hidden='true'></i>"
lnkLink.ToolTip = "Dia de descanso/no laboral"
lnkLink.ForeColor = Drawing.Color.Green
End If
If Instruccion = "I" Then
lnkLink.Text = "<i Class='fa fa-medkit' aria-hidden='true'></i>"
lnkLink.ToolTip = "Incapacidad"
lnkLink.ForeColor = Drawing.Color.Green
lnkLink.Font.Bold = True
End If
If Instruccion = "M" Then
lnkLink.Text = "<i Class='fa fa-medkit' aria-hidden='true'></i>"
lnkLink.ToolTip = "Medico"
lnkLink.ForeColor = Drawing.Color.Green
lnkLink.Font.Bold = True
End If
If Instruccion = "C" Then
lnkLink.Text = "<i class='fa fa-exclamation-triangle' aria-hidden='true'></i>"
lnkLink.ToolTip = "Castigo."
lnkLink.ForeColor = Drawing.Color.Red
lnkLink.Font.Bold = True
End If
If Instruccion = "S" Then
lnkLink.Text = "<i class='fa fa-exclamation-triangle' aria-hidden='true'></i>"
lnkLink.ToolTip = "Sanción."
lnkLink.ForeColor = Drawing.Color.Red
lnkLink.Font.Bold = True
End If
If Filtro.Length > 0 Then
AddHandler lnkLink.Click, AddressOf Me.DetalleDia_Click
End If
CountFecha = CountFecha + 1
Next
If ContadorFaltas > 0 Then
lblFaltas.Text = "" & ContadorFaltas
Else
lblFaltas.Text = "-"
End If
End If
End Sub
Public Sub DetalleDia_Click(sender As Object, e As EventArgs)
Dim lnkLinkSender As LinkButton = DirectCast(sender, LinkButton)
Dim DTDatos As New DataTable
Dim DTTipoAsistenciaInasistencia As DataTable
Dim Instruccion As String = ""
Dim Filtro As String = ""
Dim CveEstado As Integer = -1
Dim DTChecadorRegistros As New DataTable
Dim separador() As Char = {"|"c}
Dim arrayComands As String() = lnkLinkSender.CommandArgument.Split(separador)
Dim objRH As New ClsRH
If objRH.PreAsistenciaRegistrosGet(FechaInicioPeriodo, FechaFinPeriodo, DdlTurno.SelectedValue.ToEntero, UsuarioActual.Empresa.CveEmpresa) Then
DTChecadorRegistros = objRH.DtResultados
End If
objRH.Dispose()
Instruccion = arrayComands(0)
DTTipoAsistenciaInasistencia = GlobalDTAsistenciasInasistencias.FiltraParametros(" CveEmpresa = " & UsuarioActual.Empresa.CveEmpresa & " AND TipoCorto = '" & Instruccion & "' ")
If DTTipoAsistenciaInasistencia.Rows.Count > 0 Then
CveEstado = DTTipoAsistenciaInasistencia(0)(0).ToString().ToEntero
Else
CveEstado = -1
End If
If arrayComands.Length > 1 Then Filtro = arrayComands(1) Else Filtro = ""
If Filtro.Length > 1 Then
FiltroAplicado = Filtro
DTDatos = DTChecadorRegistros.FiltraParametros(Filtro)
GvDetalleDias.DataSource = DTDatos
End If
GvDetalleDias.DataBind()
RegistraScript("$('#divDetallesDia').modal({ backdrop: 'static', keyboard: false});")
DTDatos = DtResultados.FiltraParametros(Filtro)
lblModalFecha.Text = DTDatos(0)("Fecha").ToString().ToDate.ToString("dd/MM/yyyy")
lnkModalImg.Text = ""
If Instruccion = "-" Or Instruccion = "A" Then
lnkModalImg.Text = "<i class='fa fa-check-square fa-3x' aria-hidden='true'></i>"
lnkModalImg.ForeColor = Drawing.Color.Green
lnkModalImg.ToolTip = "Asistencia"
lnkModalImg.Font.Bold = True
lblModalMensaje.Text = "Asistencia."
' CveEstado = CveAsistio
End If
If Instruccion = "F" Then
lnkModalImg.Text = "<i class='fa fa-exclamation fa-3x' aria-hidden='True'></i>"
lnkModalImg.ToolTip = "Falta"
lnkModalImg.ForeColor = Drawing.Color.Red
lblModalMensaje.Text = "Falta"
' CveEstado = CveFalto
End If
If Instruccion = "FR" Then
lnkModalImg.Text = "<i class='fa fa-clock-o fa-3x' aria-hidden='true'></i>"
lnkModalImg.ToolTip = "Falta por (Retardo)"
lnkModalImg.ForeColor = Drawing.Color.Red
lblModalMensaje.Text = "Falta por retardo."
' CveEstado = CveFalto
End If
If Instruccion = "D" Then
lnkModalImg.Text = "<i Class='fa fa-sun-o fa-3x' aria-hidden='true'></i>"
lnkModalImg.ToolTip = "Dia de descanso/no laboral"
lnkModalImg.ForeColor = Drawing.Color.Green
lblModalMensaje.Text = "Dia de descanso/dia no laboral."
'CveEstado = CveDescanso
End If
If Instruccion = "DI" Or Instruccion = "V" Then
lnkModalImg.Text = "<i Class='fa fa-sun-o' aria-hidden='true'></i>"
lnkModalImg.ToolTip = "Dia de descanso/no laboral/Vacación"
lnkModalImg.ForeColor = Drawing.Color.DarkOrange
lblModalMensaje.Text = "Se asistio en dia de descanso."
End If
If Instruccion = "IN" Then
lnkModalImg.Text = "<i class='fa fa-exclamation-triangle fa-3x' aria-hidden='true'></i>"
lnkModalImg.ToolTip = "Inconsistencia"
lnkModalImg.ForeColor = Drawing.Color.DarkOrange
lnkModalImg.Font.Bold = True
lblModalMensaje.Text = "Inconsistencia."
End If
If Instruccion = "I" Then
lnkModalImg.Text = "<i Class='fa fa-medkit' aria-hidden='true'></i>"
lnkModalImg.ToolTip = "Incapacidad"
lnkModalImg.ForeColor = Drawing.Color.Green
lnkModalImg.Font.Bold = True
lblModalMensaje.Text = "Incapacidad."
End If
If Instruccion = "V" Then
lnkModalImg.Text = "<i Class='fa fa-sun-o' aria-hidden='true'></i>"
lnkModalImg.ToolTip = "Vacación"
lnkModalImg.ForeColor = Drawing.Color.Green
lnkModalImg.Font.Bold = True
lblModalMensaje.Text = "Vacación."
End If
If Instruccion = "IND" Then
lnkModalImg.Text = "<i class='fa fa-sun-o fa-3x' aria-hidden='true'></i>"
lnkModalImg.ToolTip = "Asistencia en dia no laboral/Descanso"
lnkModalImg.ForeColor = Drawing.Color.DarkOrange
lnkModalImg.Font.Bold = True
lblModalMensaje.Text = "Asistencia en día de descanso/día no laboral."
End If
If Instruccion = "R" Then
lnkModalImg.Text = "<i class='fa fa-clock-o fa-3x' aria-hidden='true'></i>"
lnkModalImg.ToolTip = "Retardo"
lnkModalImg.ForeColor = Drawing.Color.DarkOrange
lnkModalImg.Font.Bold = True
lblModalMensaje.Text = "Retardo."
' CveEstado = CveRetardo
End If
If Instruccion = "C" Then
lnkModalImg.Text = "<i class='fa fa-exclamation-triangle' aria-hidden='true'></i>"
lnkModalImg.ToolTip = "Incapacidad"
lnkModalImg.ForeColor = Drawing.Color.Red
lblModalMensaje.Font.Bold = True
End If
DdlAsistenciaInacistencia.SelectedValueExist(CveEstado)
UpDetallesDia.Update()
End Sub
Private Function ObtenerDiaSemana(Fecha As Date) As String
Dim DiaInt As Integer = Fecha.DayOfWeek
Select Case DiaInt
Case 0
Return "Domingo"
Case 1
Return "Lunes"
Case 2
Return "Martes"
Case 3
Return "Miercoles"
Case 4
Return "Jueves"
Case 5
Return "Viernes"
Case 6
Return "Sabado"
End Select
Return ""
End Function
Private Sub BtnEstusAsistenciaModal_Click(sender As Object, e As EventArgs) Handles BtnEstusAsistenciaModal.Click
Dim myRow As DataRow() ' = DtResultados.NewRow
Dim temtDt As New DataTable
temtDt = DtResultados.FiltraParametros(FiltroAplicado)
Dim fecha As String = temtDt(0)("Fecha").ToString()
Dim CvePersonal As Integer = temtDt(0)("CvePersonal").ToString().ToEntero
Dim filtro As String = String.Format(" CvePersonal = '{0}' AND Fecha = '{1}'", CvePersonal, fecha)
Dim AplicaFalta As String = GlobalDTAsistenciasInasistencias.FiltraParametros(String.Format(" CveAsistenciasInasistencias = {0} ", DdlAsistenciaInacistencia.SelectedValue))(0)("AplicaFalta").ToString()
myRow = DtResultados.Select(filtro)
If AplicaFalta = "Aplica" Then
myRow(0)("Asistio") = "False"
myRow(0)("SalarioDiario") = "0"
Else
myRow(0)("Asistio") = "True"
myRow(0)("SalarioDiario") = "100"
End If
myRow(0)("CveAsistenciasInasistencias") = DdlAsistenciaInacistencia.SelectedValue
myRow(0)("TipoCorto") = GlobalDTAsistenciasInasistencias.FiltraParametros(String.Format(" CveAsistenciasInasistencias = {0} ", DdlAsistenciaInacistencia.SelectedValue))(0)("TipoCorto").ToString()
RegistraScript("$('#divDetallesDia').modal('hide');")
Alert("Actualizado correctamente.")
ReprocesarTabla()
GvBind()
End Sub
Protected Sub BtnAgregar_Click(sender As Object, e As EventArgs) Handles BtnAgregar.Click
Dim objRh As New ClsRH()
Dim ErrorProceso = False
objRh.IniciaTransacSQL()
Try
For Each dRow As DataRow In DtResultados.Rows
'Dim DDROW As DataRow = dRow
Dim _CvePersonal As Integer = dRow("CvePersonal").ToString().ToEntero
Dim _CveSubProyecto As Integer = dRow("CveSubProyecto").ToString().ToEntero
Dim _CveTuero As Integer = DdlTurno.SelectedValue.ToEntero
Dim _Fechas As Date = dRow("Fecha").ToString().ToDate
Dim _CveAsistenciasInasistencias As Integer = dRow("CveAsistenciasInasistencias").ToString().ToEntero
Dim _PorcentajePago As Double = Double.Parse(dRow("PorcentajePago").ToString())
Dim _HorasDobles As Double = 0
Dim _HorasTriples As Double = 0
Dim _CveMotivoHoraExtra As Integer = -1
Dim _Observaciones As String = ""
Dim _SalarioDiario As Double = dRow("SalarioDiario").ToString().ToDouble
Dim _Semodifico As Integer = 0
If objRh.PreAsistenciaRegistrosAdd(_CvePersonal, _CveSubProyecto, _CveTuero, _Fechas, _CveAsistenciasInasistencias, _PorcentajePago, _HorasDobles, _HorasTriples, _CveMotivoHoraExtra,
_Observaciones, _SalarioDiario, _Semodifico, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
ErrorProceso = False
Else
ErrorProceso = True
Exit For
End If
Next
Catch ex As Exception
objRh.RollBack()
OnError("Se presento un error al procesar los registros de asistencia.", ex)
End Try
If ErrorProceso = True Then
objRh.RollBack()
Else
objRh.Commit()
BtnAgregar.Visible = False
UpAgregar.Update()
Alert("Proceso realizado correctamente.")
End If
objRh.Dispose()
''verificar
'Dim Pendientes As Boolean = False
'Dim separador() As Char = {"|"c}
'Dim TipoCorto = ""
'Dim TempDatos As New DataTable
'Dim CveAsisteciaInasistencia As Integer
'Dim DTChecadorRegistros As New DataTable
'Dim DTAsistenciasInasistencias As New DataTable
'Dim objRH As New ClsRH
'If objRH.PreAsistenciaRegistrosGet(FechaInicioPeriodo, FechaFinPeriodo, DdlTurno.SelectedValue.ToEntero, UsuarioActual.Empresa.CveEmpresa) Then
' DTChecadorRegistros = objRH.DtResultados
'End If
'If objRH.GetPersonalAsistenciaRegistros(FechaInicioPeriodo, FechaFinPeriodo, UsuarioActual.CveEmpresa) Then
' DTAsistenciasInasistencias = objRH.DtResultados
'End If
'objRH.Dispose()
'For Each Drow As DataRow In DtResultados.Rows
' For x As Integer = 0 To DtResultados.Columns.Count - 1
' If Drow(x).ToString().Trim = "" Then
' Exit For
' End If
' Dim arrayData As String() = Drow.ToString().Split(separador)
' If arrayData.Length < 2 Then
' Exit For
' End If
' TipoCorto = arrayData(0).ToString()
' If TipoCorto = "FR" Then
' TipoCorto = "F"
' End If
' TempDatos = DTAsistenciasInasistencias.FiltraParametros(String.Format(" TipoCorto = '{0}'", TipoCorto))
' If TempDatos.Rows.Count = 1 Then
' CveAsisteciaInasistencia = DTAsistenciasInasistencias.FiltraParametros(String.Format(" TipoCorto = '{0}' ", TipoCorto))(0)("CveAsistenciasInasistencias").ToString().ToEntero
' Else
' CveAsisteciaInasistencia = -1
' Pendientes = True
' End If
' Next
'Next
'If Pendientes = False Then
' For Each Drow As DataRow In DtResultados.Rows
' For x As Integer = 0 To DtResultados.Columns.Count - 1
' If Drow(x).ToString().Trim = "" Then
' Exit For
' End If
' Dim arrayData As String() = Drow.ToString().Split(separador)
' If arrayData.Length < 2 Then
' Exit For
' End If
' TipoCorto = arrayData(0).ToString()
' Next
' Next
'Else
' Alert("Existen Fechas pendientes de tratar, revisar las fechas que aparecen con simbolo de advertencia en color amarillo.", TipoMensaje.MsgAdvertencia)
'End If
''procesar
End Sub
End Class