Personal vacaciones calculo dias feriados y fecha fin

This commit is contained in:
Oscar Irigoyen
2023-07-15 15:05:21 -07:00
parent d236ce0b34
commit 6fc8ea8ac0
9 changed files with 2761 additions and 257 deletions

View File

@@ -127,13 +127,7 @@ Partial Class RH_CatTurno
Private Sub CargaGlobalDTTurno()
Dim ObjRH As New ClsRH
If ObjRH.GetTurnos() Then
Application("GlobalDTTurno") = ObjRH.DtResultados
Else
Application("GlobalDTTurno") = Nothing
End If
ObjRH.Dispose()
GlobalDTTurno(UsuarioActual.CveEmpresa) = Nothing
End Sub
Public Sub Delete_Click(sender As Object, e As EventArgs)

View File

@@ -2876,10 +2876,11 @@
</div>
<div class="tools"><a href="javascript;" class="collapse" data-original-title="" title=""></a></div>
<div class="actions">
<div class="btn-group">
<asp:HyperLink data-toggle="modal" data-target="#ModalAddVacaciones" runat="server" class="btn green btn-outline btn-sm">
<div class="btn-group">
<asp:LinkButton runat="server" id="LnkSolicitarVacaciones" CssClass="btn green btn-outline btn-sm" OnClick="LnkSolicitarVacaciones_Click" > <i class="fa fa-plus"></i> Solicitar Vacaciones</asp:LinkButton>
<%--<asp:HyperLink data-toggle="modal" data-target="#ModalAddVacaciones" runat="server" class="btn green btn-outline btn-sm">
<i class="fa fa-plus"></i> Solicitar Vacaciones
</asp:HyperLink>
</asp:HyperLink>--%>
</div>
</div>
@@ -3038,7 +3039,7 @@
</div>
<div class="modal-body">
<asp:UpdatePanel runat="server" ID="UpdatePanel2" UpdateMode="Conditional">
<asp:UpdatePanel runat="server" ID="UpSolicitarVacaciones" UpdateMode="Conditional">
<ContentTemplate>
<div class="row">
@@ -3065,11 +3066,12 @@
</div>
</div>
<asp:Panel runat="server" ID="PnlVacfechas" CssClass="row">
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright calendarlinealinput" style="width: 100px !important">
<div class="col-md-3">
<div class="form-group form-md-line-input input-iconright calendarlinealinput" style="width: 100px !important">
<div class="input-group input-sm date date-picker" data-date-format="dd/mm/yyyy" style="width: 160px;">
<asp:TextBox ID="TxtFechaInicioVac" runat="server" CausesValidation="true" CssClass="form-control input-sm"></asp:TextBox>
<asp:TextBox ID="TxtFechaInicioVac" runat="server" CausesValidation="true" CssClass="form-control input-sm" onblur="calculaFechasVacaciones();" ></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgTxtFechaInicioVac" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
@@ -3078,13 +3080,25 @@
<label>Fecha Inicial</label>
</div>
</div>
</div>
<asp:Panel runat="server" ID="PnlVacDiasPago" CssClass="col-md-3">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtVacDiasPago" CssClass="form-control input-sm form-small" type="number" runat="server" style="margin-top:20px!important" onblur="calculaFechasVacaciones();" ></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtVacDiasPago" style="margin-top:10px!important">Días pago</asp:Label>
</div>
</asp:Panel>
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright " style="width: 100px !important">
<div class="input-group input-sm date date-picker" data-date-format="dd/mm/yyyy" style="width: 160px;">
<asp:TextBox ID="TxtFechaFinVac" runat="server" CausesValidation="true" CssClass="form-control input-sm"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgTxtFechaFinVac" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
<asp:TextBox ID="TxtFechaFinVac" runat="server" CausesValidation="true" CssClass="form-control input-sm" ClientIDMode="Static"></asp:TextBox>
<span class="input-group-btn " >
<asp:LinkButton ID="ImgTxtFechaFinVac" class="btn default " Text="<i class='fa fa-calendar'></i>" style="display:none!important" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEETxtFechaFinVac" runat="server" TargetControlID="TxtFechaFinVac" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CETxtFechaFinVac" TargetControlID="TxtFechaFinVac" PopupButtonID="ImgTxtFechaFinVac" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
@@ -3097,7 +3111,7 @@
<asp:Panel runat="server" ID="PnlVacDias" CssClass="row">
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright calendarlinealinput form-small">
<asp:TextBox ID="Txtdiasinabiles" runat="server" TextMode="Number" CausesValidation="true" CssClass="form-control input-sm form-small"></asp:TextBox>
<asp:TextBox ID="Txtdiasinabiles" runat="server" TextMode="Number" CausesValidation="true" CssClass="form-control input-sm form-small" ClientIDMode="Static"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="Txtdiasinabiles">Días feriados</asp:Label>
</div>
</div>
@@ -3123,12 +3137,7 @@
</div>
</div>
</div>
<asp:Panel runat="server" ID="PnlVacDiasPago" CssClass="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtVacDiasPago" CssClass="form-control input-sm form-small" type="number" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtVacDiasPago">Días pago</asp:Label>
</div>
</asp:Panel>
</asp:Panel>
<asp:Panel runat="server" ID="PnlVacChecks" CssClass="row">
@@ -3145,6 +3154,9 @@
<asp:CheckBox ID="ChkVacCobrarIMSS" CssClass="chksino " Checked="true" Text=" " runat="server" />
</div>
</asp:Panel>
<asp:Button runat="server" ClientIDMode="Static" ID="LnkCalculaFechasVacaciones" OnClick="LnkCalculaFechasVacaciones_Click" style="display:none!important" ></asp:Button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
@@ -5748,6 +5760,7 @@
</div>
<iframe id="my_iframe" style="display: none;"></iframe>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
<script src="/Metronic/assets/global/plugins/dropzone/dropzone.js"></script>
@@ -5762,6 +5775,30 @@
height: 50
});
$('[data-toggle="tooltip"]').tooltip();
$("#Txtdiasinabiles").prop("readonly", true);
$("#Txtdiasinabiles").on("paste", function (event) {
event.preventDefault();
});
$("#Txtdiasinabiles").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();
}
});
});
}
@@ -7276,5 +7313,11 @@
return pstCURP
}
function calculaFechasVacaciones(){
$('#LnkCalculaFechasVacaciones').click();
}
</script>
</asp:Content>

View File

@@ -1896,6 +1896,8 @@ Partial Class RH_Personal
TxtFechaFinVac.Text = Now.AddDays(VacDiasDisponibles).ToString("dd/MM/yyyy")
'PERSONAL ALTAS
If ObjPersonal.GetPersonalAltas(CvePersonal) Then
GvPersonalAltas.DataSource = ObjPersonal.DtResultados
@@ -7814,5 +7816,60 @@ Partial Class RH_Personal
#End Region
Protected Sub LnkSolicitarVacaciones_Click(sender As Object, e As EventArgs)
TxtVacDiasPago.Text = VacDiasDisponibles.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)
If Not diaDescanso > 0 Then
Alert("El turno no tiene día de descanso, provisionalmente se tomara el domingo.", TipoMensaje.MsgAdvertencia)
End If
RegistraScript("$('#ModalAddVacaciones').modal('show');")
End Sub
Private Sub ContarDiasDeLaSemana(fechaInicio As Date, diasVacaciones As Integer)
Dim diaDescanso As Integer = GlobalDTTurno(UsuarioActual.CveEmpresa).FiltroPrimeroValor("DiaDescanso", $" CveTurno = {DdlTurno.SelectedValue.ToEntero}").ToEntero
diaDescanso = If(diaDescanso <= 0, 1, diaDescanso)
Dim DiasAgregados As Integer = 0
Dim FechaFin As Date = fechaInicio
For x = 2 To diasVacaciones
Dim day_of_week = CType(FechaFin.DayOfWeek, Integer) + 1
If day_of_week = diaDescanso Then
FechaFin = FechaFin.AddDays(2)
DiasAgregados = DiasAgregados + 1
Else
FechaFin = FechaFin.AddDays(1)
day_of_week = CType(FechaFin.DayOfWeek, Integer) + 1
If day_of_week = diaDescanso Then
DiasAgregados = DiasAgregados + 1
End If
End If
Next
TxtFechaFinVac.Text = FechaFin.ToString
Txtdiasinabiles.Text = DiasAgregados.ToString
UpSolicitarVacaciones.Update()
End Sub
Protected Sub LnkCalculaFechasVacaciones_Click(sender As Object, e As EventArgs)
ContarDiasDeLaSemana(TxtFechaInicioVac.Text.ToDate, TxtVacDiasPago.Text.ToEntero)
End Sub
End Class