This commit is contained in:
JORGE LUIS CAUDILLO ESPARZA
2023-07-28 08:41:13 -07:00
44 changed files with 5494 additions and 1046 deletions

View File

@@ -4837,13 +4837,16 @@ Partial Class RH_Personal
Dim dtosvac As DataTable
Private Sub CargaVacacionesResumenPeriodoActual()
Using objnom As New ClsNominas
If objnom.GETPersonalVacResumen(UsuarioActual.Empresa.CveEmpresa, CvePersonal) Then
RPTVacacionesResumen.DataSource = objnom.DtResultados
DdlVacPeriodo.DataSource = objnom.DtResultados
DdlVacPeriodo.DataSource = objnom.DtResultados.FiltraParametros("DiasDisponibles > 0", "Ejercicio")
DdlVacPeriodo.DataBind()
DTVacResumen = objnom.DtResultados
Dim drow As DataRow = objnom.DtResultados.FiltroPrimero("Selected =1")
If Not IsNothing(drow) Then
DdlVacPeriodo.SelectedValueExist(drow("Ejercicio"))
DdlVacPeriodo_SelectedIndexChanged(Nothing, Nothing)
End If
End If
If objnom.GETPersonalVacaciones(UsuarioActual.Empresa.CveEmpresa, CvePersonal) Then
@@ -5455,7 +5458,7 @@ Partial Class RH_Personal
Protected Sub DdlFormapagovacaciones_SelectedIndexChanged(sender As Object, e As EventArgs)
PnlVacfechas.Visible = False
PnlVacDias.Visible = False
PnlVacFechapago.Visible = False
'PnlVacFechapago.Visible = False
PnlVacDiasPago.Visible = False
PnlVacChecks.Visible = False
TxtVacDiasPago.Text = "0"
@@ -5464,7 +5467,7 @@ Partial Class RH_Personal
Case 1
PnlVacfechas.Visible = True
PnlVacDias.Visible = True
PnlVacFechapago.Visible = True
'PnlVacFechapago.Visible = True
PnlVacDiasPago.Visible = True
PnlVacChecks.Visible = True
Case 2
@@ -5475,15 +5478,15 @@ Partial Class RH_Personal
PnlVacfechas.Visible = True
PnlVacDias.Visible = True
PnlVacDiasPago.Visible = False
PnlVacFechapago.Visible = True
'PnlVacFechapago.Visible = True
Case 4
PnlVacFechapago.Visible = True
' PnlVacFechapago.Visible = True
PnlVacDiasPago.Visible = True
PnlVacChecks.Visible = True
Case 5
PnlVacfechas.Visible = True
Case 6
PnlVacFechapago.Visible = True
'PnlVacFechapago.Visible = True
PnlVacDiasPago.Visible = True
End Select
End Sub
@@ -7320,6 +7323,33 @@ Partial Class RH_Personal
End Set
End Property
Public Property DTVacResumen As DataTable
Get
If ViewState("DTVacResumen") Is Nothing Then
ViewState("DTVacResumen") = New DataTable
End If
Return DirectCast(ViewState("DTVacResumen"), DataTable)
End Get
Set(value As DataTable)
ViewState("DTVacResumen") = value
End Set
End Property
Public Property DiasDisponibles As Integer
Get
If ViewState("DiasDisponibles") Is Nothing Then
ViewState("DiasDisponibles") = 0
End If
Return ViewState("DiasDisponibles").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("DiasDisponibles") = value
End Set
End Property
Protected Sub CargaPersonalIncapacidad()
LimpiaPersonalIncapacidad()
LnkAgregarIncapacidad.Visible = False
@@ -7817,12 +7847,16 @@ Partial Class RH_Personal
Protected Sub LnkSolicitarVacaciones_Click(sender As Object, e As EventArgs)
TxtVacDiasPago.Text = VacDiasDisponibles.ToString
TxtVacDiasPago.Text = DiasDisponibles.ToString
Dim diaDescanso As Integer = GlobalDTTurno(UsuarioActual.CveEmpresa).FiltroPrimeroValor("DiaDescanso", $" CveTurno = {DdlTurno.SelectedValue.ToEntero}").ToEntero
diaDescanso = If(diaDescanso <= 0, 1, diaDescanso)
ContarDiasDeLaSemana(TxtFechaInicioVac.Text.ToDate, TxtVacDiasPago.Text.ToEntero)
LblModalAddVacacionesTitulo.Text = $"Agregar Vacaciones - días disponibles <b>{DiasDisponibles}</b>"
UpModalAddVacacionesTitulo.Update()
CalculaDiasVacaciones(TxtFechaInicioVac.Text.ToDate, TxtVacDiasPago.Text.ToEntero)
If Not diaDescanso > 0 Then
Alert("El turno no tiene día de descanso, provisionalmente se tomara el domingo.", TipoMensaje.MsgAdvertencia)
@@ -7832,18 +7866,62 @@ Partial Class RH_Personal
End Sub
Private Sub ContarDiasDeLaSemana(fechaInicio As Date, diasVacaciones As Integer)
If TxtVacDiasPago.Text.ToEntero > VacDiasDisponibles Then
TxtVacDiasPago.Text = VacDiasDisponibles.ToString
End If
Private Sub CalculaDiasVacaciones(fechaInicioParametro As Date, diasVacaciones As Integer, Optional fechaFinParametro As Date = Nothing)
Dim diaDescanso As Integer = GlobalDTTurno(UsuarioActual.CveEmpresa).FiltroPrimeroValor("DiaDescanso", $" CveTurno = {DdlTurno.SelectedValue.ToEntero}").ToEntero
diaDescanso = If(diaDescanso <= 0, 1, diaDescanso)
If fechaFinParametro <> Nothing Then
If fechaInicioParametro > fechaFinParametro Then
Alert("La fecha fin no puede ser mayor a la fecha inicial", TipoMensaje.MsgAdvertencia)
fechaFinParametro = Nothing
TxtVacDiasPago.Text = DiasDisponibles.ToString
End If
End If
If fechaFinParametro <> Nothing Then
Dim DiferenciaEntreFechas As Integer = (fechaFinParametro - fechaInicioParametro).Days + 1
Dim DiasNolavorales As Integer = 0
Dim FechaTemp As Date = fechaInicioParametro
For x = 1 To DiferenciaEntreFechas
Dim day_of_week = CType(FechaTemp.DayOfWeek, Integer) + 1
If day_of_week = diaDescanso Then
DiasNolavorales = DiasNolavorales + 1
End If
FechaTemp = FechaTemp.AddDays(1)
If 1 = DiferenciaEntreFechas Then
If day_of_week = diaDescanso Then
DiasNolavorales = DiasNolavorales + 1
End If
End If
Next x
If (DiferenciaEntreFechas - DiasNolavorales) >= DiasDisponibles Then
diasVacaciones = DiasDisponibles
Else
diasVacaciones = DiferenciaEntreFechas - DiasNolavorales
End If
TxtVacDiasPago.Text = diasVacaciones.ToString
End If
If TxtVacDiasPago.Text.ToEntero > DiasDisponibles Then
TxtVacDiasPago.Text = DiasDisponibles.ToString
diasVacaciones = DiasDisponibles
End If
Dim DiasAgregados As Integer = 0
Dim FechaFin As Date = fechaInicio
Dim FechaFin As Date = fechaInicioParametro
Dim Contador As Integer = 0
For x = 2 To diasVacaciones
Dim day_of_week = CType(FechaFin.DayOfWeek, Integer) + 1
@@ -7862,6 +7940,15 @@ Partial Class RH_Personal
Contador = Contador + 1
Next
Dim UltimoDiamasUno As Integer = CType(FechaFin.AddDays(1).DayOfWeek, Integer) + 1
If UltimoDiamasUno = diaDescanso Then
FechaFin = FechaFin.AddDays(1)
DiasAgregados = DiasAgregados + 1
End If
TxtFechaFinVac.Text = FechaFin.ToString
Txtdiasinabiles.Text = DiasAgregados.ToString
@@ -7871,7 +7958,53 @@ Partial Class RH_Personal
Protected Sub LnkCalculaFechasVacaciones_Click(sender As Object, e As EventArgs)
ContarDiasDeLaSemana(TxtFechaInicioVac.Text.ToDate, TxtVacDiasPago.Text.ToEntero)
CalculaDiasVacaciones(TxtFechaInicioVac.Text.ToDate, TxtVacDiasPago.Text.ToEntero)
End Sub
Protected Sub LnkCalculaFechasVacacionesFechaFin_Click(sender As Object, e As EventArgs)
If Not validaFechasVaciones() Then
Exit Sub
End If
CalculaDiasVacaciones(TxtFechaInicioVac.Text.ToDate, TxtVacDiasPago.Text.ToEntero, TxtFechaFinVac.Text.ToDate)
End Sub
Private Function validaFechasVaciones() As Boolean
If Not IsDate(TxtFechaFinVac.Text) Then
Alert("Fecha fin invalida", TipoMensaje.MsgAdvertencia)
Return False
End If
If Not IsDate(TxtFechaInicioVac.Text) Then
Alert("Fecha de inicio invalida", TipoMensaje.MsgAdvertencia)
Return False
End If
Return True
End Function
Protected Sub DdlVacPeriodo_SelectedIndexChanged(sender As Object, e As EventArgs)
Dim Ejercicio As Integer = DdlVacPeriodo.SelectedValue.ToEntero
If Ejercicio > 0 Then
DiasDisponibles = DTVacResumen.FiltroPrimeroValor("DiasDisponibles", $"Ejercicio = {Ejercicio}").ToEntero
TxtVacDiasPago.Text = DiasDisponibles.ToString
LblModalAddVacacionesTitulo.Text = $"Agregar Vacaciones - días disponibles <b>{DiasDisponibles}</b>"
CalculaDiasVacaciones(TxtFechaInicioVac.Text.ToDate, TxtVacDiasPago.Text.ToEntero)
UpModalAddVacacionesTitulo.Update()
UpSolicitarVacaciones.Update()
End If
End Sub
End Class