Reporte Asistencias Checador 2024.04.17
This commit is contained in:
@@ -2273,6 +2273,23 @@ Public Class ClsNominas
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
Public Function UpdatePeriodoEnvioPrenomina(CvePeriodo As Integer, CveEmpresa As Integer, PreAsistenciaEnviada As Boolean) As Boolean
|
||||
Dim Retorno As Boolean = False
|
||||
DataAdapter("PA_Nom_PeriodoEnvioPrenominaUpdate")
|
||||
With SqlAdapter.SelectCommand.Parameters
|
||||
.Add("@CvePeriodo", SqlDbType.Int).Value = CvePeriodo
|
||||
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
|
||||
.Add("@PreAsistenciaEnviada", SqlDbType.Int).Value = PreAsistenciaEnviada
|
||||
End With
|
||||
Try
|
||||
SqlAdapter.Fill(Data)
|
||||
Retorno = True
|
||||
Catch ex As Exception
|
||||
OnError("Ocurrió un error al actualizar el envio de Pre asistencia del periodo.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
|
||||
End Try
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
Public Function RemovePeriodo(CvePeriodo As Integer) As Boolean
|
||||
Dim Retorno As Boolean = False
|
||||
|
||||
|
||||
@@ -216,18 +216,27 @@
|
||||
<asp:GridView ID="GVRegDatos" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron registros" DataKeyNames="CvePersonal,NombreCompleto"
|
||||
CssClass="ADSCROLLER2 table table-striped table-advance table-hover Widthall" data-rows="1" data-cols="3" data-heightmenos="100" data-heightfijo="600" Style="text-align: center;" GridLines="None">
|
||||
<Columns>
|
||||
<%--<asp:TemplateField HeaderText="Codigo" ItemStyle-HorizontalAlign="Left" >
|
||||
<asp:TemplateField HeaderText="Codigo" ItemStyle-HorizontalAlign="Left" >
|
||||
<ItemTemplate>
|
||||
<asp:Label ID="LtlNumero" runat="server" CssClass="truncate" Width="50" Text='<%# Eval("Codigo") %>'> </asp:Label>
|
||||
<div class="row">
|
||||
<div class="col-md-2" style="margin-top:-5px!important">
|
||||
<asp:CheckBox runat="server" ID="Chk" Visible="false" />
|
||||
</div>
|
||||
<div class="col-md-6" style="margin-top:-5px!important">
|
||||
<asp:Label ID="LtlNumero" runat="server" CssClass="truncate" Width="50" Text='<%# Eval("Codigo") %>'> </asp:Label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>--%>
|
||||
</asp:TemplateField>
|
||||
<%-- <asp:TemplateField HeaderText="Personal" ItemStyle-HorizontalAlign="Left">
|
||||
<ItemTemplate>
|
||||
<asp:Label ID="lblIPersonal" runat="server" CssClass="truncate" Width="250" Text='<%# Eval("NombreCompleto") %>'> </asp:Label>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>--%>
|
||||
|
||||
<asp:HyperLinkField DataTextField="Codigo" HeaderText="Código" DataNavigateUrlFields="CvePersonal" DataNavigateUrlFormatString="Personal.aspx?CvePersonal={0}" ItemStyle-HorizontalAlign="Left" Target="_blank" />
|
||||
<%--<asp:HyperLinkField DataTextField="Codigo" HeaderText="Código" DataNavigateUrlFields="CvePersonal" DataNavigateUrlFormatString="Personal.aspx?CvePersonal={0}" ItemStyle-HorizontalAlign="Left" Target="_blank" />--%>
|
||||
<asp:HyperLinkField DataTextField="NombreCompleto" HeaderText="Personal" DataNavigateUrlFields="CvePersonal" DataNavigateUrlFormatString="Personal.aspx?CvePersonal={0}" ItemStyle-HorizontalAlign="Left" Target="_blank" />
|
||||
<asp:TemplateField HeaderText="Faltas" ItemStyle-HorizontalAlign="Right">
|
||||
<ItemTemplate>
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
Option Strict On
|
||||
|
||||
|
||||
Imports DocumentFormat.OpenXml.Wordprocessing
|
||||
Imports Extensiones
|
||||
Imports System
|
||||
Imports System.Data
|
||||
Imports System.Runtime.Remoting
|
||||
Imports System.ServiceModel.Security
|
||||
|
||||
|
||||
|
||||
@@ -158,6 +161,18 @@ Partial Class RH_RepChecadorPreAsistencia
|
||||
End Property
|
||||
|
||||
|
||||
Public Property VerChkSeleccionPersonal As Boolean
|
||||
Get
|
||||
If ViewState("VerChkSeleccionPersonal") Is Nothing Then
|
||||
ViewState("VerChkSeleccionPersonal") = False
|
||||
End If
|
||||
Return Boolean.Parse(ViewState("VerChkSeleccionPersonal").ToString)
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
ViewState("VerChkSeleccionPersonal") = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
'Private Property dtPeriodos As DataTable
|
||||
' Get
|
||||
' If ViewState("dtPeriodos") Is Nothing Then
|
||||
@@ -375,24 +390,24 @@ Partial Class RH_RepChecadorPreAsistencia
|
||||
' DdlPeriodo.DataSource = Nothing
|
||||
End If
|
||||
|
||||
objNomina.Dispose()
|
||||
objNomina.Dispose()
|
||||
|
||||
Dim DtTempFechaInicial As DataTable = DTPeriodos.FiltraParametros("Estatus = 1")
|
||||
|
||||
|
||||
DdlPeriodo.DataBind()
|
||||
DdlPeriodo.DataBind()
|
||||
|
||||
If DtTempFechaInicial.Rows.Count > 0 Then
|
||||
Dim temCvePeriodoNomi As Integer = DtTempFechaInicial(0)("CvePeriodo").ToString().ToEntero
|
||||
DdlPeriodo.SelectedValueExist(temCvePeriodoNomi)
|
||||
End If
|
||||
If DtTempFechaInicial.Rows.Count > 0 Then
|
||||
Dim temCvePeriodoNomi As Integer = DtTempFechaInicial(0)("CvePeriodo").ToString().ToEntero
|
||||
DdlPeriodo.SelectedValueExist(temCvePeriodoNomi)
|
||||
End If
|
||||
|
||||
DdlPeriodo.Items.Insert(0, New ListItem("Seleccione uno", "-1"))
|
||||
UPFiltros.Update()
|
||||
' BtnConsultar.Enabled = True
|
||||
Else
|
||||
DdlPeriodo.Items.Insert(0, New ListItem("Seleccione uno", "-1"))
|
||||
UPFiltros.Update()
|
||||
' BtnConsultar.Enabled = True
|
||||
Else
|
||||
|
||||
DTPeriodos = Nothing
|
||||
DTPeriodos = Nothing
|
||||
DdlPeriodo.DataSource = Nothing
|
||||
|
||||
'DdlRango.Visible = False
|
||||
@@ -535,12 +550,12 @@ Partial Class RH_RepChecadorPreAsistencia
|
||||
Dim FilCveDepartamento As Integer = DdlDepartamento.SelectedValue.ToEntero
|
||||
|
||||
Dim FilasFiltradas = From fila In GlobalDTRHPersonal(UsuarioActual.Empresa.CveEmpresa).FiltraParametros(FiltroSubProyecto).AsEnumerable()
|
||||
Let Inicio = fila.Field(Of Date)("FechaInicio")
|
||||
Let FechaFinOriginal = fila.Field(Of Date?)("FechaFin")
|
||||
Let FechaFin = If(FechaFinOriginal.HasValue, FechaFinOriginal.Value, Now)
|
||||
Where Inicio <= FechaInicioPeriodoFiltro AndAlso FechaInicioPeriodoFiltro <= FechaFin _
|
||||
Let Inicio = fila.Field(Of Date)("FechaInicio")
|
||||
Let FechaFinOriginal = fila.Field(Of Date?)("FechaFin")
|
||||
Let FechaFin = If(FechaFinOriginal.HasValue, FechaFinOriginal.Value, Now)
|
||||
Where Inicio <= FechaInicioPeriodoFiltro AndAlso FechaInicioPeriodoFiltro <= FechaFin _
|
||||
AndAlso (FilCveDepartamento = -1 OrElse fila.Field(Of Integer)("CveDepartamento") = FilCveDepartamento)
|
||||
Select fila
|
||||
Select fila
|
||||
|
||||
DtPersonal = FilasFiltradas.CopyToDataTable()
|
||||
|
||||
@@ -1937,6 +1952,11 @@ Partial Class RH_RepChecadorPreAsistencia
|
||||
Else
|
||||
lblFaltas.Text = "-"
|
||||
End If
|
||||
|
||||
|
||||
If VerChkSeleccionPersonal Then
|
||||
e.Row.FCCheckBox("Chk").Visible = True
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
@@ -2482,8 +2502,14 @@ Partial Class RH_RepChecadorPreAsistencia
|
||||
DVEnvioMasivo.Visible = True
|
||||
End If
|
||||
|
||||
VerChkSeleccionPersonal = True
|
||||
|
||||
UpDatos.Update()
|
||||
|
||||
|
||||
|
||||
GvBind()
|
||||
|
||||
End Sub
|
||||
|
||||
Private Function PeriodoBloqueado(CvePeriodo As Integer) As Boolean
|
||||
@@ -2552,16 +2578,28 @@ Partial Class RH_RepChecadorPreAsistencia
|
||||
|
||||
For Each GvRow As GridViewRow In GVRegDatos.Rows
|
||||
|
||||
Dim CvePersonal As Integer = GvRow.DataKey("CvePersonal").ToEntero
|
||||
If GvRow.RowType = DataControlRowType.DataRow Then
|
||||
|
||||
Dim Chk As CheckBox = GvRow.FCCheckBox("Chk")
|
||||
|
||||
If Chk.Checked Then
|
||||
Dim CvePersonal As Integer = GvRow.DataKey("CvePersonal").ToEntero
|
||||
If Not ObjRH.AddPreAsistencia(CvePersonal, FechaCarga, DdlAsistenciaInacistenciaCarga.SelectedValue.ToEntero, TxtPorcentajePago.Text.ToDecimal, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa,
|
||||
TxtHorasDobles.Text.ToDecimal, TxtHorasTriples.Text.ToDecimal, DdlMotivoHoraExtra.SelectedValue.ToEntero, TxtObs.Text) Then
|
||||
ProcesoOK = False
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
|
||||
If Not ObjRH.AddPreAsistencia(CvePersonal, FechaCarga, DdlAsistenciaInacistenciaCarga.SelectedValue.ToEntero, TxtPorcentajePago.Text.ToDecimal, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa,
|
||||
TxtHorasDobles.Text.ToDecimal, TxtHorasTriples.Text.ToDecimal, DdlMotivoHoraExtra.SelectedValue.ToEntero, TxtObs.Text) Then
|
||||
ProcesoOK = False
|
||||
Exit For
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
If ProcesoOK Then
|
||||
'ProcesoOK =
|
||||
adasd
|
||||
End If
|
||||
|
||||
If ProcesoOK Then
|
||||
ObjRH.Commit()
|
||||
Alert("Carga realizada correctamente.")
|
||||
@@ -2569,9 +2607,369 @@ Partial Class RH_RepChecadorPreAsistencia
|
||||
Else
|
||||
ObjRH.RollBack()
|
||||
End If
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub EnviarPreAsistencia()
|
||||
|
||||
|
||||
For Each dRow As DataRow In DtPersonal.Rows
|
||||
|
||||
Dim Fecha As Date = FechaInicioPeriodo
|
||||
Dim ContadorFaltas As Integer = 0
|
||||
objRH = New ClsRH
|
||||
If objRH.PreAsistenciaRegistrosGet(FechaInicioPeriodo, FechaFinPeriodo, DdlTurno.SelectedValue.ToEntero, UsuarioActual.Empresa.CveEmpresa, True) Then
|
||||
DTChecadorRegistros = objRH.DtResultados
|
||||
End If
|
||||
objRH.Dispose()
|
||||
|
||||
Dim registrosPersonal As DataTable = DTChecadorRegistros.FiltraParametros(" CvePersonal = " & dRow(0).ToString())
|
||||
|
||||
Dim CveTurno As Integer = dRow("CveTurno").ToString.ToEntero
|
||||
Dim DiaDescanso As Integer = GlobalDTTurno(UsuarioActual.CveEmpresa).FiltroPrimeroValor("DiaDescanso", $" CveTurno = {CveTurno} ").ToEntero - 1 'El -1 es por que en .net el domingo empieza 0 y en la sql en 1
|
||||
Dim Codigo As String = dRow("Codigo").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") = Codigo
|
||||
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"
|
||||
|
||||
ReRow("HorasDobles") = 0
|
||||
ReRow("HorasTriples") = 0
|
||||
ReRow("CveMotivoHoraExtra") = -1
|
||||
ReRow("Observacion") = ""
|
||||
|
||||
Dim diaSemana As Integer = Fecha.DayOfWeek
|
||||
Dim Asistencia As Boolean = True
|
||||
|
||||
Dim Horario As DataTable = HorarioDiario(Fecha, DTHorarioPersonal, DiaDescanso)
|
||||
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 DTPreAsistenciasInasistencias.FiltraParametros(" CvePersonal = " & dRow(0).ToString() & " AND Fecha = '" & Fecha & "'").Rows.Count > 0 Then
|
||||
|
||||
Dim DTPreasistencia As DataTable = DTPreAsistenciasInasistencias.FiltraParametros(" CvePersonal = " & dRow(0).ToString() & " AND Fecha = '" & Fecha & "'")
|
||||
|
||||
If DTPreasistencia IsNot Nothing AndAlso DTPreasistencia.Rows.Count > 0 Then
|
||||
ReRow("CveAsistenciasInasistencias") = DTPreasistencia.Rows(0)("CveAsistenciasInasistencias").ToString()
|
||||
ReRow("HorasDobles") = DTPreasistencia.Rows(0)("HorasDobles").ToString.ToDecimal
|
||||
ReRow("HorasTriples") = DTPreasistencia.Rows(0)("HorasTriples").ToString.ToDecimal
|
||||
ReRow("CveMotivoHoraExtra") = DTPreasistencia.Rows(0)("CveMotivoHoraExtra").ToString.ToEntero
|
||||
ReRow("Observacion") = DTPreasistencia.Rows(0)("Observacion").ToString
|
||||
ReRow("PorcentajePago") = DTPreasistencia.Rows(0)("PorcentajePago").ToString.ToDecimal
|
||||
|
||||
|
||||
End If
|
||||
|
||||
|
||||
If ReRow("CveAsistenciasInasistencias").ToString.ToEntero > 0 Then
|
||||
|
||||
Dim drowAsistenciaInasistencia As DataRow = GlobalDTAsistenciasInasistencias(UsuarioActual.CveEmpresa).FiltroPrimero($"CveAsistenciasInasistencias={ReRow("CveAsistenciasInasistencias").ToString.ToEntero}")
|
||||
|
||||
ReRow("Asistio") = drowAsistenciaInasistencia("AplicaAsistencia").ToString = "Aplica"
|
||||
ReRow("PorcentajePago") = DTPreAsistenciasInasistencias(0)("PorcentajePago").ToString.ToDecimal
|
||||
ReRow("Descanso") = drowAsistenciaInasistencia("AplicaVacacion").ToString = "Aplica"
|
||||
ReRow("DiaInhabil") = "False"
|
||||
ReRow("DiaVacacion") = drowAsistenciaInasistencia("AplicaVacacion").ToString = "Aplica"
|
||||
ReRow("FaltaRetardosAcumulados") = drowAsistenciaInasistencia("AplicaFalta").ToString = "Aplica"
|
||||
ReRow("Retraso") = drowAsistenciaInasistencia("AplicaRetardo").ToString = "Aplica"
|
||||
ReRow("FaltaRetraso") = False 'Not drowAsistenciaInasistencia("AplicaAsistencia").ToString = "Aplica"
|
||||
ReRow("TipoCorto") = drowAsistenciaInasistencia("TipoCorto").ToString
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
If Not ReRow("CveAsistenciasInasistencias").ToString.ToEntero > 0 Then
|
||||
|
||||
'If tabladelDia.Rows.Count > 0 AndAlso tabladelDia.Rows.Count <> 4 And DiaLaboral = False Then
|
||||
If tabladelDia.Rows.Count > 0 AndAlso tabladelDia.Rows.Count <> 4 Then
|
||||
'Dim drowAsistenciaInasistencia As DataRow = GlobalDTAsistenciasInasistencias(UsuarioActual.CveEmpresa).FiltroPrimero($"CveAsistenciasInasistencias={ReRow("CveAsistenciasInasistencias").ToString.ToEntero}")
|
||||
|
||||
ReRow("Asistio") = False
|
||||
ReRow("PorcentajePago") = 0
|
||||
ReRow("Descanso") = False
|
||||
ReRow("DiaInhabil") = False
|
||||
ReRow("DiaVacacion") = False
|
||||
ReRow("FaltaRetardosAcumulados") = False
|
||||
ReRow("Retraso") = False
|
||||
ReRow("FaltaRetraso") = False
|
||||
ReRow("TipoCorto") = "_ND"
|
||||
|
||||
Else
|
||||
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 >= NowADS() 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"
|
||||
End If
|
||||
|
||||
|
||||
|
||||
|
||||
End If
|
||||
|
||||
|
||||
|
||||
'adasdasd
|
||||
|
||||
|
||||
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") = Codigo
|
||||
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"
|
||||
|
||||
ReRow("HorasDobles") = 0
|
||||
ReRow("HorasTriples") = 0
|
||||
ReRow("CveMotivoHoraExtra") = -1
|
||||
ReRow("Observacion") = ""
|
||||
|
||||
If dRow("CveChecadorHorario").ToString().ToEntero > 0 Then
|
||||
|
||||
DTHorarioPersonal = DTHorarios.FiltraParametros(" CveChecadorHorario = " & dRow("CveChecadorHorario").ToString().ToEntero & "")
|
||||
|
||||
If Fecha >= NowADS() Then
|
||||
ReRow("Asistio") = "True"
|
||||
ReRow("CveAsistenciasInasistencias") = CveASistenciaInasistenciaAsistio
|
||||
Else
|
||||
ReRow("Asistio") = "False"
|
||||
ReRow("CveAsistenciasInasistencias") = CveAsistenciaInasistenciaFalta
|
||||
End If
|
||||
|
||||
Dim Horario As DataTable = HorarioDiario(Fecha, DTHorarioPersonal, DiaDescanso)
|
||||
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
|
||||
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user