Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PRSD1150

PRSD1150.m

Go to the documentation of this file.
  1. PRSD1150 ;HISC/GWB-RECORD OF LEAVE DATA ;2/5/1998
  1. ;;4.0;PAID;**35,100**;Sep 21, 1995;Build 3
  1. ;;Per VHA Directive 2004-038, this routine should not be modified.
  1. EMP K DIC S DIC="^PRSPC(",DIC(0)="AEMQZ"
  1. S DIC("A")="Select SEPARATED EMPLOYEE: " D ^DIC K DIC
  1. I Y'>0 G EX
  1. S DA=+Y
  1. I $P($G(^PRSPC(DA,1)),U,33)'="Y" D G EMP
  1. .W !!,*7,"This is not a separated employee. "
  1. .W "The SEPARATION IND does not equal Y.",!
  1. START ;
  1. K DASHES S $P(DASHES,"-",80)="-"
  1. S ZERO=^PRSPC(DA,0)
  1. S NAME=$P(ZERO,U,1),STATION=$P(ZERO,U,7),TLU=$P(ZERO,U,8)
  1. S SSN=$P(ZERO,U,9),SSN=$E(SSN,1,3)_"-"_$E(SSN,4,5)_"-"_$E(SSN,6,9)
  1. S SAL=$P(ZERO,U,29),HR=$S(SAL>99:SAL/2087,1:SAL),HR=$J(HR,0,2)
  1. S Y=$P(ZERO,U,49) X ^DD(450,458,2.1) S CCORG=Y
  1. S DS=$P($G(^PRSPC(DA,1)),U,42),LPP=$P($G(^PRSPC(DA,"MISC4")),U,16)
  1. S SCD=$P(ZERO,U,31)
  1. S SCDYR=$E(SCD,1,3),SCDMO=+$E(SCD,4,5),SCDDY=+$E(SCD,6,7)
  1. S DOS=$P($G(^PRSPC(DA,1)),U,2)
  1. S DOS1=$$FMADD^XLFDT(DOS,1) ; add 1 day so empl. credited for DOS
  1. S DOS1YR=$E(DOS1,1,3),DOS1MO=+$E(DOS1,4,5),DOS1DY=+$E(DOS1,6,7)
  1. ;
  1. ; calculate difference between DOS1 and SCD
  1. S TOTDY=DOS1DY-SCDDY
  1. S TOTMO=DOS1MO-SCDMO
  1. S TOTYR=DOS1YR-SCDYR
  1. ; if negative days then recalc. Subtract 1 from month and get days by
  1. ; adding the days from first and last month together.
  1. I TOTDY<0 D
  1. . S SCDDIM=$P("31^28^31^30^31^30^31^31^30^31^30^31",U,SCDMO)
  1. . I SCDDIM=28 S SCDDIM=SCDDIM+$$LEAPYR^PRSLIB00(SCDYR+1700)
  1. . S TOTDY=SCDDIM-SCDDY+DOS1DY
  1. . S TOTMO=TOTMO-1
  1. I TOTMO<0 S TOTMO=TOTMO+12,TOTYR=TOTYR-1
  1. ;
  1. ROLD S CATEGORY="RECORD OF LEAVE DATA",PAGE=0
  1. K ^UTILITY("DIQ1",$J) S DIC="^PRSPC("
  1. S DR="30;49;50",DIQ(0)="IE" D EN^DIQ1 W @IOF D HDR S PRTC=1
  1. F F=30,49,50 D WR G:'PRTC EX
  1. W !,"TOTAL SERVICE FOR LEAVE.........",TOTYR," YEARS"
  1. W !," ",TOTMO," MONTHS"
  1. W !," ",TOTDY," DAYS"
  1. K ^UTILITY("DIQ1",$J) S DIC="^PRSPC("
  1. S DR="462;510",DIQ(0)="IE" D EN^DIQ1
  1. F F=462,510 D WR G:'PRTC EX
  1. W !,"HOURLY RATE.....................",HR
  1. S END="" D PRTC
  1. EX K ^UTILITY("DIQ1",$J)
  1. N PRSTLV D KILL^XUSCLEAN W @IOF
  1. Q
  1. WR S NODEDD=^DD(450,F,0),NODEUTIL=$G(^UTILITY("DIQ1",$J,450,DA,F,"E"))
  1. I (NODEUTIL="")!(NODEUTIL="NA") K NODEDD,NODEUTIL Q
  1. S FLDNAM=$P(NODEDD,U,1)
  1. S INT=^UTILITY("DIQ1",$J,450,DA,F,"I")
  1. EXT S EXT=^UTILITY("DIQ1",$J,450,DA,F,"E")
  1. S IL=$L(INT)
  1. I $P(NODEDD,U,2)["NJ",+INT=0 K NODEDD,NODEUTIL Q
  1. I $P(NODEDD,U,5)["""$""" S VAL=$FN(INT,",",2) G IOSL
  1. I $P(NODEDD,U,2)["D" S VAL=EXT G IOSL
  1. I $P(NODEDD,U,2)["NJ" S VAL=$J(INT,IL,2) G IOSL
  1. S VAL=EXT
  1. IOSL K DOTS S NOD=32-$L(FLDNAM),$P(DOTS,".",NOD)="."
  1. I $Y>(IOSL-4) D PRTC Q:'PRTC
  1. W !,FLDNAM,DOTS
  1. D VAL Q
  1. VAL I $L(VAL)<48 W ?32,VAL Q
  1. S COLUMN=32,LGTH=0
  1. F LOOP=1:1 Q:LGTH=$L(VAL)!(LGTH>($L(VAL))) W:$L($P(VAL," ",LOOP))>(80-COLUMN) ! S:$L($P(VAL," ",LOOP))>(80-COLUMN) COLUMN=32 W ?COLUMN,$P(VAL," ",LOOP) S COLUMN=COLUMN+$L($P(VAL," ",LOOP))+1,LGTH=LGTH+$L($P(VAL," ",LOOP))+1
  1. Q
  1. HDR W:$Y>0 @IOF S PAGE=PAGE+1
  1. S CLNGTH=$L(CCORG),TAB=(80-CLNGTH)\2,TAB=TAB-1
  1. W !,NAME,?TAB,CCORG,?61,"DUTY STATION: ",STATION_DS
  1. W !,SSN,?71,"T&L: ",TLU,!,DASHES
  1. S CLNGTH=$L(CATEGORY),TAB=(80-CLNGTH)\2,TAB=TAB-1
  1. W !,"LAST PP: ",LPP,?TAB,CATEGORY,?73,"PAGE ",PAGE
  1. W !,DASHES
  1. K CLNGTH,TAB Q
  1. PRTC W:$Y<22 ! K DIR,DIRUT,DIROUT,DTOUT,DUOUT
  1. S DIR(0)="E",DIR("A")="Press RETURN to continue" D ^DIR
  1. I $D(DIRUT) S PRTC=0 Q
  1. D:'$D(END) HDR Q
  1. Q