- PRSALVT ; HISC/REL-Leave Increment ;9/12/2006
- ;;4.0;PAID;**111**;Sep 21, 1995;Build 2
- ;;Per VHA Directive 2004-038, this routine should not be modified.
- S AINC="",SINC=""
- S C0=^PRSPC(DFN,0),LVG=$P(C0,"^",15),NH=+$P(C0,"^",16),DB=$P(C0,"^",10)
- Q:LVG'?1N!("12345"'[LVG) G:NH>80 FF D @LVG G QT
- 1 ; Leave Group 1
- S AINC=$S(DB=1:4,1:NH+AINC/20\1),SINC=$S(DB=1:4,1:NH+SINC/20\1) Q
- 2 ; Leave Group 2
- S AINC=$S(DB=1:6,1:NH+AINC/13\1),SINC=$S(DB=1:4,1:NH+SINC/20\1) Q
- 3 ; Leave Group 3
- S AINC=$S(DB=1:8,1:NH+AINC/10\1),SINC=$S(DB=1:4,1:NH+SINC/20\1) Q
- 4 ; Leave Group 4
- S D1=$E(DT,1,3)_"1231" D PP^PRSAPPU S D1=$P(PPE,"-",2)
- I D1=26 S AINC=1,SINC=.5 Q
- S AINC=.963,SINC=.481 Q
- 5 ; Leave Group 5
- S D1=$E(DT,1,3)_"1231" D PP^PRSAPPU S D1=$P(PPE,"-",2)
- S SINC=$S(D1=26:.5,1:.481) Q
- FF ; Firefighters
- I LVG=1 S AINC=$S(NH=112:5,NH=120:6,1:7)
- I LVG=2 S AINC=$S(NH=112:8,NH=120:9,1:11)
- I LVG=3 S AINC=$S(NH=112:11,NH=120:12,1:14)
- S SINC=$S(NH=112:5,NH=120:6,1:7)
- QT ; Check Non-Accrual Flag
- S:$P($G(^PRSPC(DFN,"ANNUAL")),"^",1)="Y" AINC="" Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPRSALVT 1071 printed Mar 13, 2025@21:28:42 Page 2
- PRSALVT ; HISC/REL-Leave Increment ;9/12/2006
- +1 ;;4.0;PAID;**111**;Sep 21, 1995;Build 2
- +2 ;;Per VHA Directive 2004-038, this routine should not be modified.
- +3 SET AINC=""
- SET SINC=""
- +4 SET C0=^PRSPC(DFN,0)
- SET LVG=$PIECE(C0,"^",15)
- SET NH=+$PIECE(C0,"^",16)
- SET DB=$PIECE(C0,"^",10)
- +5 if LVG'?1N!("12345"'[LVG)
- QUIT
- if NH>80
- GOTO FF
- DO @LVG
- GOTO QT
- 1 ; Leave Group 1
- +1 SET AINC=$SELECT(DB=1:4,1:NH+AINC/20\1)
- SET SINC=$SELECT(DB=1:4,1:NH+SINC/20\1)
- QUIT
- 2 ; Leave Group 2
- +1 SET AINC=$SELECT(DB=1:6,1:NH+AINC/13\1)
- SET SINC=$SELECT(DB=1:4,1:NH+SINC/20\1)
- QUIT
- 3 ; Leave Group 3
- +1 SET AINC=$SELECT(DB=1:8,1:NH+AINC/10\1)
- SET SINC=$SELECT(DB=1:4,1:NH+SINC/20\1)
- QUIT
- 4 ; Leave Group 4
- +1 SET D1=$EXTRACT(DT,1,3)_"1231"
- DO PP^PRSAPPU
- SET D1=$PIECE(PPE,"-",2)
- +2 IF D1=26
- SET AINC=1
- SET SINC=.5
- QUIT
- +3 SET AINC=.963
- SET SINC=.481
- QUIT
- 5 ; Leave Group 5
- +1 SET D1=$EXTRACT(DT,1,3)_"1231"
- DO PP^PRSAPPU
- SET D1=$PIECE(PPE,"-",2)
- +2 SET SINC=$SELECT(D1=26:.5,1:.481)
- QUIT
- FF ; Firefighters
- +1 IF LVG=1
- SET AINC=$SELECT(NH=112:5,NH=120:6,1:7)
- +2 IF LVG=2
- SET AINC=$SELECT(NH=112:8,NH=120:9,1:11)
- +3 IF LVG=3
- SET AINC=$SELECT(NH=112:11,NH=120:12,1:14)
- +4 SET SINC=$SELECT(NH=112:5,NH=120:6,1:7)
- QT ; Check Non-Accrual Flag
- +1 if $PIECE($GET(^PRSPC(DFN,"ANNUAL")),"^",1)="Y"
- SET AINC=""
- QUIT