PRSXP84 ;WCIOFO/MGD-CORRECT ERRONEOUS DATA IN 459 ;07/25/2003
 ;;4.0;PAID;**84**;Sep 21, 1995
 ;
 Q
 ;
 ; This routine will correct erroneous data in the PAID PAYRUN DATA
 ; (#459) file for Pay Periods 03-06, 03-07 and 03-08.
 ; The following fields in the EMPLOYEE (#459.01) multiple will be
 ; updated:
 ;          GRADE  (#3)
 ;          STEP   (#4)
 ;          SALARY (#13)
 ;
 ; For more details see the patch description on FORUM.
 ;
START ; Main Driver
 ;
 K ^TMP($J),TMP
 N D0305,D0306,D0307,D0308,D450,DA,DB,DIK,DR,EMP,EMPX,FLSA
 N GRD05,GRD06,GRD07,GRD08,GRADE,IEN05,IEN06,IEN07,IEN08
 N LCNT,MCNT,MESS,MESS1,NAME,PDATE,PP,STP05,STP06,STP07,STP08
 N SAL05,SAL06,SAL07,SAL08,SALARY,SD,SSN,STANUM,STEP
 N TCNT,TIME,TMP,U,UCIX,XMSUB
 S U="^",(DA,LCNT,TCNT)=0,MCNT=1
 D NOW^%DTC
 S Y=%
 D DD^%DT
 S TIME=Y
 W !!,"Post install routine PRSXP84 beginning at ",TIME_"."
 ;
 ; Get Station Number
 ;
 S STANUM=$$KSP^XUPARAM("INST")_","
 S STANUM=$$GET1^DIQ(4,STANUM,99)
 S MESS1="Station: "_STANUM_" - "
 ;
 ; Check for UCI,VOL
 ;
 X ^%ZOSF("UCI")
 S UCIX=$G(Y)
 I UCIX=""!(UCIX'?3U1","3U) S UCIX="???,???"
 S MESS1=MESS1_UCIX_" - "
 ;
 ; Find IENs for Pay Periods in the PAID PAYRUN DATA (#459) file
 ;
 S (IEN05,IEN06,IEN07,IEN08)=""
 S IEN05=$O(^PRST(459,"B","03-05",IEN05))
 S IEN06=$O(^PRST(459,"B","03-06",IEN06))
 S IEN07=$O(^PRST(459,"B","03-07",IEN07))
 S IEN08=$O(^PRST(459,"B","03-08",IEN08))
 I IEN05'>0!(IEN06'>0)!(IEN07'>0)!(IEN08'>0) D  Q
 . I IEN05'>0 D
 . .S ^TMP($J,"MGD",MCNT)=MESS1_"PP 03-05 Not Found"
 . .S MCNT=MCNT+1
 . I IEN06'>0 D
 . .S ^TMP($J,"MGD",MCNT)=MESS1_"PP 03-06 Not Found"
 . .S MCNT=MCNT+1
 . I IEN07'>0 D
 . .S ^TMP($J,"MGD",MCNT)=MESS1_"PP 03-07 Not Found"
 . .S MCNT=MCNT+1
 . I IEN08'>0 D
 . .S ^TMP($J,"MGD",MCNT)=MESS1_"PP 03-08 Not Found"
 . D XMT
 ;
 ; Loop through employees
 ;
 S EMP=0
 F  S EMP=$O(^PRSPC(EMP)) Q:'EMP  D
 . ;
 . ; Quit if the employee is separated
 . ;
 . Q:$P($G(^PRSPC(EMP,1)),U,1)="Y"
 . ;
 . S D450=$G(^PRSPC(EMP,0))
 . Q:D450=""
 . S PDATE=$P(D450,U,28)
 . ;
06 . ; Check for employees who received a promotion in PP 03-06
 . ;
 . I PDATE>3030322&(PDATE<3030406) D  Q
 . . S TCNT=TCNT+1
 . . D RPT
 . . S MESS="PP 03-05"_$J(SAL05,10)_$J(GRD05,6)_$J(STP05,7)
 . . S ^TMP($J,"MGD",MCNT)=MESS
 . . S MCNT=MCNT+1
 . . ;
 . . S MESS="PP 03-06"_$J(SAL06,10)_$J(GRD06,6)_$J(STP06,7)
 . . I SAL06'=SALARY!(GRD06'=GRADE)!(STP06'=STEP) D
 . . . S MESS=MESS_$J(SALARY,19)_$J(GRADE,6)_$J(STEP,7)
 . . S ^TMP($J,"MGD",MCNT)=MESS
 . . S MCNT=MCNT+1
 . . S DR="3////^S X=GRADE",DIE="^PRST(459,IEN06,""P"",",DA=EMP
 . . L +^PRST(459,IEN06,"P",EMP):0 I $T D ^DIE
 . . S DR="4////^S X=STEP",DIE="^PRST(459,IEN06,""P"",",DA=EMP D ^DIE
 . . S DR="13////^S X=SALARY",DIE="^PRST(459,IEN06,""P"",",DA=EMP D ^DIE
 . . L -^PRST(459,IEN06,"P",EMP)
 . . ;
 . . S MESS="PP 03-07"_$J(SAL07,10)_$J(GRD07,6)_$J(STP07,7)
 . . I SAL07'=SALARY!(GRD07'=GRADE)!(STP07'=STEP) D
 . . . S MESS=MESS_$J(SALARY,19)_$J(GRADE,6)_$J(STEP,7)
 . . S ^TMP($J,"MGD",MCNT)=MESS
 . . S MCNT=MCNT+1
 . . S DR="3////^S X=GRADE",DIE="^PRST(459,IEN07,""P"",",DA=EMP
 . . L +^PRST(459,IEN07,"P",EMP):0 I $T D ^DIE
 . . S DR="4////^S X=STEP",DIE="^PRST(459,IEN07,""P"",",DA=EMP D ^DIE
 . . S DR="13////^S X=SALARY",DIE="^PRST(459,IEN07,""P"",",DA=EMP D ^DIE
 . . L -^PRST(459,IEN07,"P",EMP)
 . . ;
 . . S MESS="PP 03-08"_$J(SAL08,10)_$J(GRD08,6)_$J(STP08,7)
 . . I SAL08'=SALARY!(GRD08'=GRADE)!(STP08'=STEP) D
 . . . S MESS=MESS_$J(SALARY,19)_$J(GRADE,6)_$J(STEP,7)
 . . S ^TMP($J,"MGD",MCNT)=MESS
 . . S MCNT=MCNT+1
 . . S DR="3////^S X=GRADE",DIE="^PRST(459,IEN08,""P"",",DA=EMP
 . . L +^PRST(459,IEN08,"P",EMP):0 I $T D ^DIE
 . . S DR="4////^S X=STEP",DIE="^PRST(459,IEN08,""P"",",DA=EMP D ^DIE
 . . S DR="13////^S X=SALARY",DIE="^PRST(459,IEN08,""P"",",DA=EMP D ^DIE
 . . L -^PRST(459,IEN08,"P",EMP)
 . . ;
 . . S ^TMP($J,"MGD",MCNT)="  IN 450"_$J(SALARY,10)_$J(GRADE,6)_$J(STEP,7)
 . . S MCNT=MCNT+1
 . . S ^TMP($J,"MGD",MCNT)=""
 . . S MCNT=MCNT+1
 . . ;
07 . . ; Check for employees who received a promotion in PP 03-07
 . . ;
 . I PDATE>3030405&(PDATE<3030420) D  Q
 . . ;
 . . ; Load data from PP 03-05
 . . ;
 . . S TCNT=TCNT+1
 . . D RPT
 . . S MESS="PP 03-05"_$J(SAL05,10)_$J(GRD05,6)_$J(STP05,7)
 . . S ^TMP($J,"MGD",MCNT)=MESS
 . . S MCNT=MCNT+1
 . . ;
 . . S MESS="PP 03-06"_$J(SAL06,10)_$J(GRD06,6)_$J(STP06,7)
 . . I SAL06'=SAL05!(GRD06'=GRD05)!(STP06'=STP05) D
 . . . S MESS=MESS_$J(SAL05,19)_$J(GRD05,6)_$J(STP05,7)
 . . S ^TMP($J,"MGD",MCNT)=MESS
 . . S MCNT=MCNT+1
 . . S DR="3////^S X=GRD05",DIE="^PRST(459,IEN06,""P"",",DA=EMP
 . . L +^PRST(459,IEN06,"P",EMP):0 I $T D ^DIE
 . . S DR="4////^S X=STP05",DIE="^PRST(459,IEN06,""P"",",DA=EMP D ^DIE
 . . S DR="13////^S X=SAL05",DIE="^PRST(459,IEN06,""P"",",DA=EMP D ^DIE
 . . L -^PRST(459,IEN06,"P",EMP)
 . . ;
 . . S MESS="PP 03-07"_$J(SAL07,10)_$J(GRD07,6)_$J(STP07,7)
 . . I SAL07'=SALARY!(GRD07'=GRADE)!(STP07'=STEP) D
 . . . S MESS=MESS_$J(SALARY,19)_$J(GRADE,6)_$J(STEP,7)
 . . S ^TMP($J,"MGD",MCNT)=MESS
 . . S MCNT=MCNT+1
 . . S DR="3////^S X=GRADE",DIE="^PRST(459,IEN07,""P"",",DA=EMP
 . . L +^PRST(459,IEN07,"P",EMP):0 I $T D ^DIE
 . . S DR="4////^S X=STEP",DIE="^PRST(459,IEN07,""P"",",DA=EMP D ^DIE
 . . S DR="13////^S X=SALARY",DIE="^PRST(459,IEN07,""P"",",DA=EMP D ^DIE
 . . L -^PRST(459,IEN07,"P",EMP)
 . . ;
 . . S MESS="PP 03-08"_$J(SAL08,10)_$J(GRD08,6)_$J(STP08,7)
 . . I SAL08'=SALARY!(GRD08'=GRADE)!(STP08'=STEP) D
 . . . S MESS=MESS_$J(SALARY,19)_$J(GRADE,6)_$J(STEP,7)
 . . S ^TMP($J,"MGD",MCNT)=MESS
 . . S MCNT=MCNT+1
 . . S DR="3////^S X=GRADE",DIE="^PRST(459,IEN08,""P"",",DA=EMP
 . . L +^PRST(459,IEN08,"P",EMP):0 I $T D ^DIE
 . . S DR="4////^S X=STEP",DIE="^PRST(459,IEN08,""P"",",DA=EMP D ^DIE
 . . S DR="13////^S X=SALARY",DIE="^PRST(459,IEN08,""P"",",DA=EMP D ^DIE
 . . L -^PRST(459,IEN08,"P",EMP)
 . . S ^TMP($J,"MGD",MCNT)="  IN 450"_$J(SALARY,10)_$J(GRADE,6)_$J(STEP,7)
 . . S MCNT=MCNT+1
 . . S ^TMP($J,"MGD",MCNT)=""
 . . S MCNT=MCNT+1
 ;
 D XMT
 K DIE
 Q
 ;
XMT ; Send status via mail message
 ;
 I $D(^TMP($J,"MGD")) D
 . N DIFROM,XMDUZ,XMTEXT,XMY
 . S XMDUZ=.5
 . S XMTEXT="^TMP($J,""MGD"","
 . S XMSUB=MESS1_"SALARY, GRADE & STEP CLEANUP"
 . S XMY("DILL.MATT@DOMAIN.EXT")="",XMY(DUZ)=""
 . S XMY("MCCLARAN.PAM@DOMAIN.EXT")=""
 . D ^XMD
 ;
 K ^TMP($J),Y,%
 D NOW^%DTC
 S Y=%
 D DD^%DT
 S TIME=Y
 W !!,"Post install routine PRSXP84 completed at ",TIME_"."
 W !,TCNT," Employees were updated."
 Q
 ;
RPT ; 
 ;
 S GRADE=$P(D450,U,14),STEP=$P(D450,U,39),SALARY=$P(D450,U,29)
 S DB=$P(D450,U,10),FLSA=$P(D450,U,12),PP=$P(D450,U,21)
 S SSN=$E($P(D450,U,9),6,9),EMPX="         "
 S NAME=$P($P(D450,U,1),",",1)_","_$E($P($P(D450,U,1),",",2))
 ;
 S D0305=$G(^PRST(459,IEN05,"P",EMP,0))
 S D0306=$G(^PRST(459,IEN06,"P",EMP,0))
 S D0307=$G(^PRST(459,IEN07,"P",EMP,0))
 S D0308=$G(^PRST(459,IEN08,"P",EMP,0))
 ;
 S SAL05=$P(D0305,U,14),GRD05=$P(D0305,U,4),STP05=$P(D0305,U,5)
 S SAL06=$P(D0306,U,14),GRD06=$P(D0306,U,4),STP06=$P(D0306,U,5)
 S SAL07=$P(D0307,U,14),GRD07=$P(D0307,U,4),STP07=$P(D0307,U,5)
 S SAL08=$P(D0308,U,14),GRD08=$P(D0308,U,4),STP08=$P(D0308,U,5)
 S SD=""
 I PDATE>3030322&(PDATE<3030406) S SD="PP 03-06"
 I PDATE>3030405&(PDATE<3030420) S SD="PP 03-07"
 S Y=PDATE
 D DD^%DT
 S PDATE=Y
 S $E(EMPX,1,$L(EMP))=EMP
 S MESS=NAME_" ID: "_SSN_"  IEN: "_EMPX_"  Salary date: "_PDATE_" - "_SD
 S ^TMP($J,"MGD",MCNT)=MESS
 S MCNT=MCNT+1
 S MESS="Pay Plan: "_PP_"    Duty Basis: "_DB_"  FLSA: "_FLSA
 S ^TMP($J,"MGD",MCNT)=MESS
 S MCNT=MCNT+1
 S MESS="Pay Period  Salary   Grade  Step  Corrected Salary   Grade  Step"
 S ^TMP($J,"MGD",MCNT)=MESS
 S MCNT=MCNT+1
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPRSXP84   7817     printed  Sep 23, 2025@20:05:28                                                                                                                                                                                                     Page 2
PRSXP84   ;WCIOFO/MGD-CORRECT ERRONEOUS DATA IN 459 ;07/25/2003
 +1       ;;4.0;PAID;**84**;Sep 21, 1995
 +2       ;
 +3        QUIT 
 +4       ;
 +5       ; This routine will correct erroneous data in the PAID PAYRUN DATA
 +6       ; (#459) file for Pay Periods 03-06, 03-07 and 03-08.
 +7       ; The following fields in the EMPLOYEE (#459.01) multiple will be
 +8       ; updated:
 +9       ;          GRADE  (#3)
 +10      ;          STEP   (#4)
 +11      ;          SALARY (#13)
 +12      ;
 +13      ; For more details see the patch description on FORUM.
 +14      ;
START     ; Main Driver
 +1       ;
 +2        KILL ^TMP($JOB),TMP
 +3        NEW D0305,D0306,D0307,D0308,D450,DA,DB,DIK,DR,EMP,EMPX,FLSA
 +4        NEW GRD05,GRD06,GRD07,GRD08,GRADE,IEN05,IEN06,IEN07,IEN08
 +5        NEW LCNT,MCNT,MESS,MESS1,NAME,PDATE,PP,STP05,STP06,STP07,STP08
 +6        NEW SAL05,SAL06,SAL07,SAL08,SALARY,SD,SSN,STANUM,STEP
 +7        NEW TCNT,TIME,TMP,U,UCIX,XMSUB
 +8        SET U="^"
           SET (DA,LCNT,TCNT)=0
           SET MCNT=1
 +9        DO NOW^%DTC
 +10       SET Y=%
 +11       DO DD^%DT
 +12       SET TIME=Y
 +13       WRITE !!,"Post install routine PRSXP84 beginning at ",TIME_"."
 +14      ;
 +15      ; Get Station Number
 +16      ;
 +17       SET STANUM=$$KSP^XUPARAM("INST")_","
 +18       SET STANUM=$$GET1^DIQ(4,STANUM,99)
 +19       SET MESS1="Station: "_STANUM_" - "
 +20      ;
 +21      ; Check for UCI,VOL
 +22      ;
 +23       XECUTE ^%ZOSF("UCI")
 +24       SET UCIX=$GET(Y)
 +25       IF UCIX=""!(UCIX'?3U1","3U)
               SET UCIX="???,???"
 +26       SET MESS1=MESS1_UCIX_" - "
 +27      ;
 +28      ; Find IENs for Pay Periods in the PAID PAYRUN DATA (#459) file
 +29      ;
 +30       SET (IEN05,IEN06,IEN07,IEN08)=""
 +31       SET IEN05=$ORDER(^PRST(459,"B","03-05",IEN05))
 +32       SET IEN06=$ORDER(^PRST(459,"B","03-06",IEN06))
 +33       SET IEN07=$ORDER(^PRST(459,"B","03-07",IEN07))
 +34       SET IEN08=$ORDER(^PRST(459,"B","03-08",IEN08))
 +35       IF IEN05'>0!(IEN06'>0)!(IEN07'>0)!(IEN08'>0)
               Begin DoDot:1
 +36               IF IEN05'>0
                       Begin DoDot:2
 +37                       SET ^TMP($JOB,"MGD",MCNT)=MESS1_"PP 03-05 Not Found"
 +38                       SET MCNT=MCNT+1
                       End DoDot:2
 +39               IF IEN06'>0
                       Begin DoDot:2
 +40                       SET ^TMP($JOB,"MGD",MCNT)=MESS1_"PP 03-06 Not Found"
 +41                       SET MCNT=MCNT+1
                       End DoDot:2
 +42               IF IEN07'>0
                       Begin DoDot:2
 +43                       SET ^TMP($JOB,"MGD",MCNT)=MESS1_"PP 03-07 Not Found"
 +44                       SET MCNT=MCNT+1
                       End DoDot:2
 +45               IF IEN08'>0
                       Begin DoDot:2
 +46                       SET ^TMP($JOB,"MGD",MCNT)=MESS1_"PP 03-08 Not Found"
                       End DoDot:2
 +47               DO XMT
               End DoDot:1
               QUIT 
 +48      ;
 +49      ; Loop through employees
 +50      ;
 +51       SET EMP=0
 +52       FOR 
               SET EMP=$ORDER(^PRSPC(EMP))
               if 'EMP
                   QUIT 
               Begin DoDot:1
 +53      ;
 +54      ; Quit if the employee is separated
 +55      ;
 +56               if $PIECE($GET(^PRSPC(EMP,1)),U,1)="Y"
                       QUIT 
 +57      ;
 +58               SET D450=$GET(^PRSPC(EMP,0))
 +59               if D450=""
                       QUIT 
 +60               SET PDATE=$PIECE(D450,U,28)
 +61      ;
06        ; Check for employees who received a promotion in PP 03-06
 +1       ;
 +2                IF PDATE>3030322&(PDATE<3030406)
                       Begin DoDot:2
 +3                        SET TCNT=TCNT+1
 +4                        DO RPT
 +5                        SET MESS="PP 03-05"_$JUSTIFY(SAL05,10)_$JUSTIFY(GRD05,6)_$JUSTIFY(STP05,7)
 +6                        SET ^TMP($JOB,"MGD",MCNT)=MESS
 +7                        SET MCNT=MCNT+1
 +8       ;
 +9                        SET MESS="PP 03-06"_$JUSTIFY(SAL06,10)_$JUSTIFY(GRD06,6)_$JUSTIFY(STP06,7)
 +10                       IF SAL06'=SALARY!(GRD06'=GRADE)!(STP06'=STEP)
                               Begin DoDot:3
 +11                               SET MESS=MESS_$JUSTIFY(SALARY,19)_$JUSTIFY(GRADE,6)_$JUSTIFY(STEP,7)
                               End DoDot:3
 +12                       SET ^TMP($JOB,"MGD",MCNT)=MESS
 +13                       SET MCNT=MCNT+1
 +14                       SET DR="3////^S X=GRADE"
                           SET DIE="^PRST(459,IEN06,""P"","
                           SET DA=EMP
 +15                       LOCK +^PRST(459,IEN06,"P",EMP):0
                           IF $TEST
                               DO ^DIE
 +16                       SET DR="4////^S X=STEP"
                           SET DIE="^PRST(459,IEN06,""P"","
                           SET DA=EMP
                           DO ^DIE
 +17                       SET DR="13////^S X=SALARY"
                           SET DIE="^PRST(459,IEN06,""P"","
                           SET DA=EMP
                           DO ^DIE
 +18                       LOCK -^PRST(459,IEN06,"P",EMP)
 +19      ;
 +20                       SET MESS="PP 03-07"_$JUSTIFY(SAL07,10)_$JUSTIFY(GRD07,6)_$JUSTIFY(STP07,7)
 +21                       IF SAL07'=SALARY!(GRD07'=GRADE)!(STP07'=STEP)
                               Begin DoDot:3
 +22                               SET MESS=MESS_$JUSTIFY(SALARY,19)_$JUSTIFY(GRADE,6)_$JUSTIFY(STEP,7)
                               End DoDot:3
 +23                       SET ^TMP($JOB,"MGD",MCNT)=MESS
 +24                       SET MCNT=MCNT+1
 +25                       SET DR="3////^S X=GRADE"
                           SET DIE="^PRST(459,IEN07,""P"","
                           SET DA=EMP
 +26                       LOCK +^PRST(459,IEN07,"P",EMP):0
                           IF $TEST
                               DO ^DIE
 +27                       SET DR="4////^S X=STEP"
                           SET DIE="^PRST(459,IEN07,""P"","
                           SET DA=EMP
                           DO ^DIE
 +28                       SET DR="13////^S X=SALARY"
                           SET DIE="^PRST(459,IEN07,""P"","
                           SET DA=EMP
                           DO ^DIE
 +29                       LOCK -^PRST(459,IEN07,"P",EMP)
 +30      ;
 +31                       SET MESS="PP 03-08"_$JUSTIFY(SAL08,10)_$JUSTIFY(GRD08,6)_$JUSTIFY(STP08,7)
 +32                       IF SAL08'=SALARY!(GRD08'=GRADE)!(STP08'=STEP)
                               Begin DoDot:3
 +33                               SET MESS=MESS_$JUSTIFY(SALARY,19)_$JUSTIFY(GRADE,6)_$JUSTIFY(STEP,7)
                               End DoDot:3
 +34                       SET ^TMP($JOB,"MGD",MCNT)=MESS
 +35                       SET MCNT=MCNT+1
 +36                       SET DR="3////^S X=GRADE"
                           SET DIE="^PRST(459,IEN08,""P"","
                           SET DA=EMP
 +37                       LOCK +^PRST(459,IEN08,"P",EMP):0
                           IF $TEST
                               DO ^DIE
 +38                       SET DR="4////^S X=STEP"
                           SET DIE="^PRST(459,IEN08,""P"","
                           SET DA=EMP
                           DO ^DIE
 +39                       SET DR="13////^S X=SALARY"
                           SET DIE="^PRST(459,IEN08,""P"","
                           SET DA=EMP
                           DO ^DIE
 +40                       LOCK -^PRST(459,IEN08,"P",EMP)
 +41      ;
 +42                       SET ^TMP($JOB,"MGD",MCNT)="  IN 450"_$JUSTIFY(SALARY,10)_$JUSTIFY(GRADE,6)_$JUSTIFY(STEP,7)
 +43                       SET MCNT=MCNT+1
 +44                       SET ^TMP($JOB,"MGD",MCNT)=""
 +45                       SET MCNT=MCNT+1
 +46      ;
07        ; Check for employees who received a promotion in PP 03-07
 +1       ;
                       End DoDot:2
                       QUIT 
 +2                IF PDATE>3030405&(PDATE<3030420)
                       Begin DoDot:2
 +3       ;
 +4       ; Load data from PP 03-05
 +5       ;
 +6                        SET TCNT=TCNT+1
 +7                        DO RPT
 +8                        SET MESS="PP 03-05"_$JUSTIFY(SAL05,10)_$JUSTIFY(GRD05,6)_$JUSTIFY(STP05,7)
 +9                        SET ^TMP($JOB,"MGD",MCNT)=MESS
 +10                       SET MCNT=MCNT+1
 +11      ;
 +12                       SET MESS="PP 03-06"_$JUSTIFY(SAL06,10)_$JUSTIFY(GRD06,6)_$JUSTIFY(STP06,7)
 +13                       IF SAL06'=SAL05!(GRD06'=GRD05)!(STP06'=STP05)
                               Begin DoDot:3
 +14                               SET MESS=MESS_$JUSTIFY(SAL05,19)_$JUSTIFY(GRD05,6)_$JUSTIFY(STP05,7)
                               End DoDot:3
 +15                       SET ^TMP($JOB,"MGD",MCNT)=MESS
 +16                       SET MCNT=MCNT+1
 +17                       SET DR="3////^S X=GRD05"
                           SET DIE="^PRST(459,IEN06,""P"","
                           SET DA=EMP
 +18                       LOCK +^PRST(459,IEN06,"P",EMP):0
                           IF $TEST
                               DO ^DIE
 +19                       SET DR="4////^S X=STP05"
                           SET DIE="^PRST(459,IEN06,""P"","
                           SET DA=EMP
                           DO ^DIE
 +20                       SET DR="13////^S X=SAL05"
                           SET DIE="^PRST(459,IEN06,""P"","
                           SET DA=EMP
                           DO ^DIE
 +21                       LOCK -^PRST(459,IEN06,"P",EMP)
 +22      ;
 +23                       SET MESS="PP 03-07"_$JUSTIFY(SAL07,10)_$JUSTIFY(GRD07,6)_$JUSTIFY(STP07,7)
 +24                       IF SAL07'=SALARY!(GRD07'=GRADE)!(STP07'=STEP)
                               Begin DoDot:3
 +25                               SET MESS=MESS_$JUSTIFY(SALARY,19)_$JUSTIFY(GRADE,6)_$JUSTIFY(STEP,7)
                               End DoDot:3
 +26                       SET ^TMP($JOB,"MGD",MCNT)=MESS
 +27                       SET MCNT=MCNT+1
 +28                       SET DR="3////^S X=GRADE"
                           SET DIE="^PRST(459,IEN07,""P"","
                           SET DA=EMP
 +29                       LOCK +^PRST(459,IEN07,"P",EMP):0
                           IF $TEST
                               DO ^DIE
 +30                       SET DR="4////^S X=STEP"
                           SET DIE="^PRST(459,IEN07,""P"","
                           SET DA=EMP
                           DO ^DIE
 +31                       SET DR="13////^S X=SALARY"
                           SET DIE="^PRST(459,IEN07,""P"","
                           SET DA=EMP
                           DO ^DIE
 +32                       LOCK -^PRST(459,IEN07,"P",EMP)
 +33      ;
 +34                       SET MESS="PP 03-08"_$JUSTIFY(SAL08,10)_$JUSTIFY(GRD08,6)_$JUSTIFY(STP08,7)
 +35                       IF SAL08'=SALARY!(GRD08'=GRADE)!(STP08'=STEP)
                               Begin DoDot:3
 +36                               SET MESS=MESS_$JUSTIFY(SALARY,19)_$JUSTIFY(GRADE,6)_$JUSTIFY(STEP,7)
                               End DoDot:3
 +37                       SET ^TMP($JOB,"MGD",MCNT)=MESS
 +38                       SET MCNT=MCNT+1
 +39                       SET DR="3////^S X=GRADE"
                           SET DIE="^PRST(459,IEN08,""P"","
                           SET DA=EMP
 +40                       LOCK +^PRST(459,IEN08,"P",EMP):0
                           IF $TEST
                               DO ^DIE
 +41                       SET DR="4////^S X=STEP"
                           SET DIE="^PRST(459,IEN08,""P"","
                           SET DA=EMP
                           DO ^DIE
 +42                       SET DR="13////^S X=SALARY"
                           SET DIE="^PRST(459,IEN08,""P"","
                           SET DA=EMP
                           DO ^DIE
 +43                       LOCK -^PRST(459,IEN08,"P",EMP)
 +44                       SET ^TMP($JOB,"MGD",MCNT)="  IN 450"_$JUSTIFY(SALARY,10)_$JUSTIFY(GRADE,6)_$JUSTIFY(STEP,7)
 +45                       SET MCNT=MCNT+1
 +46                       SET ^TMP($JOB,"MGD",MCNT)=""
 +47                       SET MCNT=MCNT+1
                       End DoDot:2
                       QUIT 
               End DoDot:1
 +48      ;
 +49       DO XMT
 +50       KILL DIE
 +51       QUIT 
 +52      ;
XMT       ; Send status via mail message
 +1       ;
 +2        IF $DATA(^TMP($JOB,"MGD"))
               Begin DoDot:1
 +3                NEW DIFROM,XMDUZ,XMTEXT,XMY
 +4                SET XMDUZ=.5
 +5                SET XMTEXT="^TMP($J,""MGD"","
 +6                SET XMSUB=MESS1_"SALARY, GRADE & STEP CLEANUP"
 +7                SET XMY("DILL.MATT@DOMAIN.EXT")=""
                   SET XMY(DUZ)=""
 +8                SET XMY("MCCLARAN.PAM@DOMAIN.EXT")=""
 +9                DO ^XMD
               End DoDot:1
 +10      ;
 +11       KILL ^TMP($JOB),Y,%
 +12       DO NOW^%DTC
 +13       SET Y=%
 +14       DO DD^%DT
 +15       SET TIME=Y
 +16       WRITE !!,"Post install routine PRSXP84 completed at ",TIME_"."
 +17       WRITE !,TCNT," Employees were updated."
 +18       QUIT 
 +19      ;
RPT       ; 
 +1       ;
 +2        SET GRADE=$PIECE(D450,U,14)
           SET STEP=$PIECE(D450,U,39)
           SET SALARY=$PIECE(D450,U,29)
 +3        SET DB=$PIECE(D450,U,10)
           SET FLSA=$PIECE(D450,U,12)
           SET PP=$PIECE(D450,U,21)
 +4        SET SSN=$EXTRACT($PIECE(D450,U,9),6,9)
           SET EMPX="         "
 +5        SET NAME=$PIECE($PIECE(D450,U,1),",",1)_","_$EXTRACT($PIECE($PIECE(D450,U,1),",",2))
 +6       ;
 +7        SET D0305=$GET(^PRST(459,IEN05,"P",EMP,0))
 +8        SET D0306=$GET(^PRST(459,IEN06,"P",EMP,0))
 +9        SET D0307=$GET(^PRST(459,IEN07,"P",EMP,0))
 +10       SET D0308=$GET(^PRST(459,IEN08,"P",EMP,0))
 +11      ;
 +12       SET SAL05=$PIECE(D0305,U,14)
           SET GRD05=$PIECE(D0305,U,4)
           SET STP05=$PIECE(D0305,U,5)
 +13       SET SAL06=$PIECE(D0306,U,14)
           SET GRD06=$PIECE(D0306,U,4)
           SET STP06=$PIECE(D0306,U,5)
 +14       SET SAL07=$PIECE(D0307,U,14)
           SET GRD07=$PIECE(D0307,U,4)
           SET STP07=$PIECE(D0307,U,5)
 +15       SET SAL08=$PIECE(D0308,U,14)
           SET GRD08=$PIECE(D0308,U,4)
           SET STP08=$PIECE(D0308,U,5)
 +16       SET SD=""
 +17       IF PDATE>3030322&(PDATE<3030406)
               SET SD="PP 03-06"
 +18       IF PDATE>3030405&(PDATE<3030420)
               SET SD="PP 03-07"
 +19       SET Y=PDATE
 +20       DO DD^%DT
 +21       SET PDATE=Y
 +22       SET $EXTRACT(EMPX,1,$LENGTH(EMP))=EMP
 +23       SET MESS=NAME_" ID: "_SSN_"  IEN: "_EMPX_"  Salary date: "_PDATE_" - "_SD
 +24       SET ^TMP($JOB,"MGD",MCNT)=MESS
 +25       SET MCNT=MCNT+1
 +26       SET MESS="Pay Plan: "_PP_"    Duty Basis: "_DB_"  FLSA: "_FLSA
 +27       SET ^TMP($JOB,"MGD",MCNT)=MESS
 +28       SET MCNT=MCNT+1
 +29       SET MESS="Pay Period  Salary   Grade  Step  Corrected Salary   Grade  Step"
 +30       SET ^TMP($JOB,"MGD",MCNT)=MESS
 +31       SET MCNT=MCNT+1
 +32       QUIT