viernes, 22 de agosto de 2014

Calculo de dias de licencia

Algoritmo en VbScript para el calculo de los dias de licencia de un empleado en Argentina para un determinado periodo

MsgBox DiasLicencia(#10/16/2014#, Empty, 2014)

Function DiasLicencia(pFechaAlta, pFechaBaja, pAnio)
 If pFechaAlta & "" = "" Then dSession.ErrRaise "Se requiere fecha de alta"

 If pFechaAlta >= DateSerial(pAnio + 1, 1, 1) or pFechaBaja < DateSerial(pAnio, 1, 1) Then
  DiasLicencia = 0
  Exit Function
 End If
 
 vFechaHasta = DateSerial(pAnio, 12, 31)
 If pFechaBaja & "" <> "" Then
  If pFechaBaja < vFechaHasta Then vFechaHasta = pFechaBaja
 End If

 vAniosAntig = Int(DateDiff("d", pFechaAlta, vFechaHasta) / 365)

 If vAniosAntig > 0 Then

  If vAniosAntig < 5 Then
   DiasLicencia = 14
  ElseIf vAniosAntig < 10 Then
   DiasLicencia = 21
  ElseIf vAniosAntig < 20 Then
   DiasLicencia = 28
  Else
   DiasLicencia = 35
  End If

 Else
 
  vMesesAntig = Int(DateDiff("d", pFechaAlta, vFechaHasta) / 30.65)
  If vMesesAntig < 6 Then
   DiasLicencia = vMesesAntig
  Else
   DiasLicencia = 14
  End If

 End If
End Function

No hay comentarios:

Publicar un comentario