Merge branch 'master' of http://192.168.10.111:8383/SIG
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user