C
Clayman
I posted this in July under "Calculating Vacation" without a resonse. I
thought I had it working, but was tripped up when we went live. Any
assistance would be greatly appreciated.
I'm trying to calculate vacation accrual with the following specs:
- No vacation accrued for first 180 days
- After 180 days, 1.54 hours per week until calendar year break
- From first calendar year break it's incremental.
I've got the incremental down and my system works great if the employee was
hired before January 1, 2006.
Here is the code I'm using:
Select Case anniv
Case Is < 2
LAccrualRate = 1.54
' Calculate day of last day of hire year
DtEndOfYear = CDate("12/31/" & CStr(Year(hiredate)))
LCountDays = Day(DtEndOfYear) - Day(hiredate)
' Check to see if 180 days elapsed between hiredate and end of hire year
If LCountDays > 180 Then
' if so, was employee hired last year?
If Year(hiredate) < Year(Now) Then
' if so, hours accrued = 80
LHoursRemain = 80
Else
' if not, hours accrued = weeks * 1.54
LWeeksWorked = LCountDays / 7
LHoursRemain = LWeeksWorked * 1.54
End If
Else
' if 180 days not elapsed, hours accrued=0
LHoursRemain = 0
End If
Case 2 To 4
LHoursRemain = 80
LAccrualRate = 1.54
Case 5 To 14
LHoursRemain = 120
LAccrualRate = 2.31
Case Is > 14
LHoursRemain = 160
LAccrualRate = 3.08
End Select
thought I had it working, but was tripped up when we went live. Any
assistance would be greatly appreciated.
I'm trying to calculate vacation accrual with the following specs:
- No vacation accrued for first 180 days
- After 180 days, 1.54 hours per week until calendar year break
- From first calendar year break it's incremental.
I've got the incremental down and my system works great if the employee was
hired before January 1, 2006.
Here is the code I'm using:
Select Case anniv
Case Is < 2
LAccrualRate = 1.54
' Calculate day of last day of hire year
DtEndOfYear = CDate("12/31/" & CStr(Year(hiredate)))
LCountDays = Day(DtEndOfYear) - Day(hiredate)
' Check to see if 180 days elapsed between hiredate and end of hire year
If LCountDays > 180 Then
' if so, was employee hired last year?
If Year(hiredate) < Year(Now) Then
' if so, hours accrued = 80
LHoursRemain = 80
Else
' if not, hours accrued = weeks * 1.54
LWeeksWorked = LCountDays / 7
LHoursRemain = LWeeksWorked * 1.54
End If
Else
' if 180 days not elapsed, hours accrued=0
LHoursRemain = 0
End If
Case 2 To 4
LHoursRemain = 80
LAccrualRate = 1.54
Case 5 To 14
LHoursRemain = 120
LAccrualRate = 2.31
Case Is > 14
LHoursRemain = 160
LAccrualRate = 3.08
End Select