@@ -5795,16 +5813,18 @@
}
});
+
- $("#TxtFechaFinVac").prop("readonly", true);
- $("#TxtFechaFinVac").on("paste", function (event) {
- event.preventDefault();
- });
- $("#TxtFechaFinVac").on("contextmenu", function (event) {
- if (event.which === 3) {
- event.preventDefault();
- }
- });
+
+ //$("#TxtFechaFinVac").prop("readonly", true);
+ //$("#TxtFechaFinVac").on("paste", function (event) {
+ // event.preventDefault();
+ //});
+ //$("#TxtFechaFinVac").on("contextmenu", function (event) {
+ // if (event.which === 3) {
+ // event.preventDefault();
+ // }
+ //});
});
}
@@ -7322,9 +7342,20 @@
}
- function calculaFechasVacaciones(){
+ function calculaFechasVacaciones(sender, e){
$('#LnkCalculaFechasVacaciones').click();
}
+
+
+
+ function calculaFechasVacacionesFechaFin(sender, e) {
+ $('#LnkCalculaFechasVacacionesFechaFin').click();
+ }
+
+
+
+
+
diff --git a/RH/Personal.aspx.vb b/RH/Personal.aspx.vb
index ab70b76b3..59eeb2731 100644
--- a/RH/Personal.aspx.vb
+++ b/RH/Personal.aspx.vb
@@ -4840,13 +4840,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
@@ -5458,7 +5461,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"
@@ -5467,7 +5470,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
@@ -5478,15 +5481,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
@@ -7323,6 +7326,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
@@ -7820,12 +7850,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
{DiasDisponibles}"
+
+ 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)
@@ -7835,18 +7869,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
@@ -7865,6 +7943,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
@@ -7874,7 +7961,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
{DiasDisponibles}"
+
+ CalculaDiasVacaciones(TxtFechaInicioVac.Text.ToDate, TxtVacDiasPago.Text.ToEntero)
+ UpModalAddVacacionesTitulo.Update()
+ UpSolicitarVacaciones.Update()
+ End If
+
+
+
End Sub
End Class
diff --git a/Sistemas/RolesDetalle.aspx b/Sistemas/RolesDetalle.aspx
index 97f60dcdf..4ea8a87c9 100644
--- a/Sistemas/RolesDetalle.aspx
+++ b/Sistemas/RolesDetalle.aspx
@@ -26,7 +26,7 @@
-
+
@@ -69,35 +69,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ P
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
@@ -118,10 +151,8 @@
-
-
-
-
+
+
@@ -130,65 +161,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- P
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -197,7 +170,7 @@