| 1 | PRSAOTTW ;WCIOFO/JAH-OVERTIME WARNINGS (OTW) LISTER--8/18/98
 | 
|---|
| 2 |  ;;4.0;PAID;**43**;Sep 21, 1995
 | 
|---|
| 3 |  ; = = = = = = = = = = = = = = = = = 
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | LISTEN ; -- main entry point for OTW LIST--called by list manager 
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  S PRSOUT=0
 | 
|---|
| 8 |  D LISPARAM(.PRSWPP,.PRSWPPI,.PRSWSTAT,.PRSOUT)
 | 
|---|
| 9 |  Q:PRSOUT
 | 
|---|
| 10 |  ;convert status to internal value in ot warnings file
 | 
|---|
| 11 |  ; A = active i = inactive (b for both is not an internal status)
 | 
|---|
| 12 |  S PRSWSTAT=$S(PRSWSTAT=1:"A",PRSWSTAT=2:"C",1:"B")
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 |  ; Call to List Manager to run PRSA OVERTIME WARNINGS template
 | 
|---|
| 15 |  D EN^VALM("PRSA OVERTIME WARNINGS")
 | 
|---|
| 16 |  Q
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  ; = = = = = = = = = = = = = = = = = 
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 | LISPARAM(PP,PPI,STAT,USEROUT) ;
 | 
|---|
| 21 |  ;Ask the user if they want the list to contain 1 or all pay peroids
 | 
|---|
| 22 |  ;and whether they want to see cleared, active or all warnings.
 | 
|---|
| 23 |  N DIR,DIRUT,X,Y
 | 
|---|
| 24 |  S USEROUT=0
 | 
|---|
| 25 |  S DIR(0)="S^1:select a pay period;2:all pay periods"
 | 
|---|
| 26 |  D ^DIR S PP=Y
 | 
|---|
| 27 |  I $D(DIRUT) S USEROUT=1 Q
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 |  ; get pp if user chose a single pp
 | 
|---|
| 30 |  I PP=1 D
 | 
|---|
| 31 |  .  S DIC="^PRST(458,",DIC(0)="AEMNQ" D ^DIC
 | 
|---|
| 32 |  .  S PPI=+Y
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 |  ;Prompt user for type of warnings to display
 | 
|---|
| 35 |  I Y'>0 S USEROUT=1 Q
 | 
|---|
| 36 |  N DIR,X,Y,DIRUT
 | 
|---|
| 37 |  S DIR(0)="S^1:Active Warnings;2:Cleared Warnings;3:Active & Cleared"
 | 
|---|
| 38 |  D BLDHLP,^DIR
 | 
|---|
| 39 |  I $D(DIRUT) S USEROUT=1 Q
 | 
|---|
| 40 |  S STAT=Y
 | 
|---|
| 41 |  Q
 | 
|---|
| 42 |  ;
 | 
|---|
| 43 |  ; = = = = = = = = = = = = = = = = = 
 | 
|---|
| 44 |  ;
 | 
|---|
| 45 | BLDHLP ;
 | 
|---|
| 46 |  N I,TXT
 | 
|---|
| 47 |  S DIR("?")="       Enter 1, 2, 3 or '^' to exit."
 | 
|---|
| 48 |  F I=1:1 S TXT=$P($T(HLPTXT+I),";;",2) Q:TXT=""  S DIR("?",I)=TXT
 | 
|---|
| 49 |  Q
 | 
|---|
| 50 | HLPTXT ;
 | 
|---|
| 51 |  ;;       Overtime Warnings occur when an employee has more
 | 
|---|
| 52 |  ;;  overtime in their TT8B string than approved overtime in the
 | 
|---|
| 53 |  ;;  overtime requests file.  Normally, a warning becomes ACTIVE when a
 | 
|---|
| 54 |  ;;  timecard is certified that will result in unapproved overtime
 | 
|---|
| 55 |  ;;  being paid.  If corrective action is taken payroll may then
 | 
|---|
| 56 |  ;;  CLEAR the overtime warning.  Although CLEARED warnings may be
 | 
|---|
| 57 |  ;;  viewed through this option they WILL NO LONGER appear on the Pay
 | 
|---|
| 58 |  ;;  Period Exceptions report.  ACTIVE warnings will appear on the
 | 
|---|
| 59 |  ;;  exceptions report.
 | 
|---|
| 60 |  ;;
 | 
|---|
| 61 |  Q 
 | 
|---|
| 62 |  ;
 | 
|---|
| 63 |  ; = = = = = = = = = = = = = = = = = 
 | 
|---|
| 64 |  ;
 | 
|---|
| 65 | HDR ; -- header code
 | 
|---|
| 66 |  ; All pperiods.
 | 
|---|
| 67 |  I PRSWPP=2 D
 | 
|---|
| 68 |  . I PRSWSTAT="C" S VALMHDR(1)="Cleared for all pay periods"
 | 
|---|
| 69 |  . I PRSWSTAT="A" S VALMHDR(1)="Active for all pay periods"
 | 
|---|
| 70 |  . I PRSWSTAT="B" S VALMHDR(1)="Active & cleared for all pay periods."
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 |  I PRSWPP=1 D
 | 
|---|
| 73 |  . I PRSWSTAT="C" S VALMHDR(1)="Cleared for single pay period"
 | 
|---|
| 74 |  . I PRSWSTAT="A" S VALMHDR(1)="Active for single pay period"
 | 
|---|
| 75 |  . I PRSWSTAT="B" S VALMHDR(1)="Active & cleared for a single pay period"
 | 
|---|
| 76 |  Q
 | 
|---|
| 77 |  ;
 | 
|---|
| 78 |  ; = = = = = = = = = = = = = = = = = 
 | 
|---|
| 79 |  ;
 | 
|---|
| 80 | INIT ; -- init variables and list array
 | 
|---|
| 81 |  ;  This entry point is called from list manager
 | 
|---|
| 82 |  ;
 | 
|---|
| 83 |  N IEN,PPE,WK,OT8B,OTAP,COUNT
 | 
|---|
| 84 |  S U="^"
 | 
|---|
| 85 |  K ^TMP("PRSAOTW",$J)
 | 
|---|
| 86 |  S LIST=0,NUMBER=0
 | 
|---|
| 87 |  D CLEAN^VALM10
 | 
|---|
| 88 |  S COUNT=0,NUMBER=""
 | 
|---|
| 89 |  ;
 | 
|---|
| 90 |  ;loop adds list items if user chose active OR inactive & all pperiods.
 | 
|---|
| 91 |  I PRSWPP=2,PRSWSTAT'="B" D
 | 
|---|
| 92 |  .F  S NUMBER=$O(^PRST(458.6,"E",PRSWSTAT,NUMBER)) Q:NUMBER=""  D
 | 
|---|
| 93 |  ..  D LISITEM(NUMBER,.COUNT)
 | 
|---|
| 94 |  ;
 | 
|---|
| 95 |  ;loop adds list items if user chose active OR inactive & 1 pperiod
 | 
|---|
| 96 |  ;
 | 
|---|
| 97 |  I PRSWPP=1,PRSWSTAT'="B" D
 | 
|---|
| 98 |  .S NUMBER=0
 | 
|---|
| 99 |  .F  S NUMBER=$O(^PRST(458.6,"C",PRSWPPI,NUMBER)) Q:NUMBER=""  D
 | 
|---|
| 100 |  ..  I $D(^PRST(458.6,"E",PRSWSTAT,NUMBER)) D LISITEM(NUMBER,.COUNT)
 | 
|---|
| 101 |  ;
 | 
|---|
| 102 |  ;loop adds list items if user chose active & inactive & 1 pperiod
 | 
|---|
| 103 |  ;
 | 
|---|
| 104 |  I PRSWPP=1,PRSWSTAT="B" D
 | 
|---|
| 105 |  .S NUMBER=0
 | 
|---|
| 106 |  .F  S NUMBER=$O(^PRST(458.6,"C",PRSWPPI,NUMBER)) Q:NUMBER=""  D
 | 
|---|
| 107 |  ..  D LISITEM(NUMBER,.COUNT)
 | 
|---|
| 108 |  ;
 | 
|---|
| 109 |  ;loop adds list items if user chose active & inactive & all pperiods.
 | 
|---|
| 110 |  ;
 | 
|---|
| 111 |  I PRSWPP=2,PRSWSTAT="B" D
 | 
|---|
| 112 |  .;1st loop through 4 digit year pp x-ref
 | 
|---|
| 113 |  .S PRSWPPI=""
 | 
|---|
| 114 |  .F  S PRSWPPI=$O(^PRST(458.6,"D",PRSWPPI)) Q:PRSWPPI']""  D
 | 
|---|
| 115 |  ..  S NUMBER=0
 | 
|---|
| 116 |  ..  F  S NUMBER=$O(^PRST(458.6,"D",PRSWPPI,NUMBER)) Q:NUMBER'>0  D
 | 
|---|
| 117 |  ...  D LISITEM(NUMBER,.COUNT)
 | 
|---|
| 118 |  ;
 | 
|---|
| 119 |  S VALMCNT=COUNT
 | 
|---|
| 120 |  Q
 | 
|---|
| 121 |  ;
 | 
|---|
| 122 |  ; = = = = = = = = = = = = = = = = = 
 | 
|---|
| 123 |  ;
 | 
|---|
| 124 | LISITEM(IEN,COUNT) ;ADD A SINGLE ITEM TO OT WARNINGS LIST
 | 
|---|
| 125 |  N PPI,PPE,EMP,WK,OT8B,OTAP,STAT,TL,CLEARER
 | 
|---|
| 126 |  S COUNT=COUNT+1
 | 
|---|
| 127 |  ;
 | 
|---|
| 128 |  ;get fields from a record in the ot warnings file
 | 
|---|
| 129 |  ;
 | 
|---|
| 130 |  S PPI=$P($G(^PRST(458.6,IEN,0)),U,3) ;                 Pay per ien
 | 
|---|
| 131 |  S PPE=$P($G(^PRST(458,PPI,0)),U) ;              pay per ext format
 | 
|---|
| 132 |  S EMP=$P($G(^PRST(458.6,IEN,0)),U,2) ;          employee ien in 450
 | 
|---|
| 133 |  S EMP=$P($G(^PRSPC(EMP,0)),U),TL=$P(^(0),U,8) ;   name and t&l unit
 | 
|---|
| 134 |  S WK=$P($G(^PRST(458.6,IEN,0)),U,4) ;        week 1 or 2 of pay per
 | 
|---|
| 135 |  S OT8B=" "_$P($G(^PRST(458.6,IEN,0)),U,8) ;     all ot in 8b string
 | 
|---|
| 136 |  S OTAP=" "_$P($G(^PRST(458.6,IEN,0)),U,9) ;  all ot in request file
 | 
|---|
| 137 |  S STAT=$P($G(^PRST(458.6,IEN,0)),U,5) ;           status of warning
 | 
|---|
| 138 |  S STAT=$S(STAT="A":"Active",1:"Cleared")
 | 
|---|
| 139 |  S CLEARER=$P($G(^PRST(458.6,IEN,0)),U,6) ;          clearer 450 IEN
 | 
|---|
| 140 |  I CLEARER S CLEARER=$P($G(^VA(200,CLEARER,0)),U) ; clearer 450 name
 | 
|---|
| 141 |  ;
 | 
|---|
| 142 |  ;Build one line (X) for list manager containing a warning.
 | 
|---|
| 143 |  ; 3rd parameter is name of field on List Template
 | 
|---|
| 144 |  ;
 | 
|---|
| 145 |  S X=$$SETFLD^VALM1(COUNT,"","NUMBER")
 | 
|---|
| 146 |  S X=$$SETFLD^VALM1(PPE,X,"PAY PERIOD")
 | 
|---|
| 147 |  S X=$$SETFLD^VALM1(WK,X,"WEEK")
 | 
|---|
| 148 |  S X=$$SETFLD^VALM1(EMP,X,"EMPLOYEE")
 | 
|---|
| 149 |  S X=$$SETFLD^VALM1(TL,X,"TL")
 | 
|---|
| 150 |  S X=$$SETFLD^VALM1(STAT,X,"STATUS")
 | 
|---|
| 151 |  S X=$$SETFLD^VALM1(OT8B,X,"OT8B")
 | 
|---|
| 152 |  S X=$$SETFLD^VALM1(OTAP,X,"OTAP")
 | 
|---|
| 153 |  S X=$$SETFLD^VALM1(CLEARER,X,"UPDATER")
 | 
|---|
| 154 |  D SET^VALM10(COUNT,X,COUNT)
 | 
|---|
| 155 |  ;
 | 
|---|
| 156 |  ; save the ien of the record in the list global for easier
 | 
|---|
| 157 |  ; reference to the acutal data.
 | 
|---|
| 158 |  ;
 | 
|---|
| 159 |  S ^TMP("PRSAOTW",$J,COUNT)=IEN
 | 
|---|
| 160 |  Q
 | 
|---|
| 161 |  ;
 | 
|---|
| 162 |  ; = = = = = = = = = = = = = = = = = 
 | 
|---|
| 163 |  ;
 | 
|---|
| 164 | PRSIEN() ;RETURN PAID IEN FROM 450 BASED ON DUZ.
 | 
|---|
| 165 |  N SSN
 | 
|---|
| 166 |  ;
 | 
|---|
| 167 |  S PRSIEN=""
 | 
|---|
| 168 |  Q:'DUZ PRSIEN
 | 
|---|
| 169 |  ;
 | 
|---|
| 170 |  S SSN=$P($G(^VA(200,DUZ,1)),"^",9)
 | 
|---|
| 171 |  I SSN'="" S PRSIEN=$O(^PRSPC("SSN",SSN,0)) S:PRSIEN'>0 PRSIEN=""
 | 
|---|
| 172 |  Q PRSIEN
 | 
|---|
| 173 |  ;
 | 
|---|
| 174 |  ; = = = = = = = = = = = = = = = = = 
 | 
|---|
| 175 |  ;
 | 
|---|
| 176 | CLEAR ; Clear an OT warning.  This code called when a user running the
 | 
|---|
| 177 |  ; OT warnings option selects clear OT warnings protocol.
 | 
|---|
| 178 |  ;
 | 
|---|
| 179 |  N PRSCREC,PRSCLCNT,PRSELECT,PRSNOCL,DIE,DIR,DIRUT,PLURAL
 | 
|---|
| 180 |  ;
 | 
|---|
| 181 |  ;allow selection of list items in the display region.
 | 
|---|
| 182 |  ;
 | 
|---|
| 183 |  D EN^VALM2("","")
 | 
|---|
| 184 |  Q:$O(VALMY(0))'>0
 | 
|---|
| 185 |  ;
 | 
|---|
| 186 |  S PRSCLCNT=0,DIE="^PRST(458.6,"
 | 
|---|
| 187 |  S (PRSCREC,PRSELECT,PRSNOCL)=""
 | 
|---|
| 188 |  F  S PRSCREC=$O(VALMY(PRSCREC)) Q:PRSCREC=""  D
 | 
|---|
| 189 |  .  ;
 | 
|---|
| 190 |  .  ;Get ien for 458.6 that matches the list item.
 | 
|---|
| 191 |  .  S PRSCIEN=$G(^TMP("PRSAOTW",$J,PRSCREC))
 | 
|---|
| 192 |  .  ;
 | 
|---|
| 193 |  .  ;Get status of ot warning
 | 
|---|
| 194 |  .  S PRSCSTAT=$P($G(^PRST(458.6,PRSCIEN,0)),U,5)
 | 
|---|
| 195 |  .  ;
 | 
|---|
| 196 |  .  ;increment clearable warning count
 | 
|---|
| 197 |  .  ;& build variable of items that will be cleared
 | 
|---|
| 198 |  .  ;& highlight selected items
 | 
|---|
| 199 |  .  I PRSCSTAT="A" D
 | 
|---|
| 200 |  ..    S PRSCLCNT=PRSCLCNT+1,PRSELECT=PRSELECT_","_PRSCREC
 | 
|---|
| 201 |  ..    ;
 | 
|---|
| 202 |  ..    D CNTRL^VALM10(PRSCREC,2,$L(PRSCREC),IORVON,IORVOFF)
 | 
|---|
| 203 |  ..    D CNTRL^VALM10(PRSCREC,5,74,IOINHI,IOINORM),WRITE^VALM10(PRSCREC)
 | 
|---|
| 204 |  ;
 | 
|---|
| 205 |  ;strip off leading comma from clear list
 | 
|---|
| 206 |  S PRSELECT=$P(PRSELECT,",",2,999)
 | 
|---|
| 207 |  ;
 | 
|---|
| 208 |  ;return to list if no active warnings selected.
 | 
|---|
| 209 |  ;
 | 
|---|
| 210 |  I PRSELECT="" S VALMSG="No ACTIVE warnings selected." S VALMBCK="R" Q
 | 
|---|
| 211 |  ;
 | 
|---|
| 212 |  ; If user wants to clear items then clear all selected.  Skip any 
 | 
|---|
| 213 |  ; that r already clear & keep track of any that are locked (PRSNOCL).
 | 
|---|
| 214 |  ; Build ListMan message w/ all unclearable records due to locks.
 | 
|---|
| 215 |  ;
 | 
|---|
| 216 |  S DIR(0)="YA"
 | 
|---|
| 217 |  S PLURAL=$S($L(PRSELECT,",")<2:"entry",1:"entries")
 | 
|---|
| 218 |  S DIR("A")="Clear "_PLURAL_" "_PRSELECT_" ?"
 | 
|---|
| 219 |  D ^DIR
 | 
|---|
| 220 |  I Y D
 | 
|---|
| 221 |  .  S PRSCREC=0
 | 
|---|
| 222 |  .  F  S PRSCREC=$O(VALMY(PRSCREC)) Q:PRSCREC=""  D
 | 
|---|
| 223 |  ..    S PRSCIEN=$G(^TMP("PRSAOTW",$J,PRSCREC))
 | 
|---|
| 224 |  ..    S PRSCSTAT=$P($G(^PRST(458.6,PRSCIEN,0)),U,5)
 | 
|---|
| 225 |  ..    I PRSCSTAT="A" D
 | 
|---|
| 226 |  ...     S PRSCSTAT="C"
 | 
|---|
| 227 |  ...     S DR="4///^S X=PRSCSTAT",DA=PRSCIEN
 | 
|---|
| 228 |  ...     L +^PRST(458.6,PRSCIEN):0
 | 
|---|
| 229 |  ...     I $T D 
 | 
|---|
| 230 |  ....      D ^DIE L -^PRST(458.6,PRSCIEN)
 | 
|---|
| 231 |  ...     E  S PRSNOCL=PRSNOCL_" "_PRSCREC
 | 
|---|
| 232 |  S:PRSNOCL'="" VALMSG=PRSNOCL_" NOT CLEARED.  EDIT BY ANOTHER USER"
 | 
|---|
| 233 |  ;
 | 
|---|
| 234 |  ;whether list items cleared or not rebuild list and return
 | 
|---|
| 235 |  ;
 | 
|---|
| 236 |  D INIT
 | 
|---|
| 237 |  S VALMBCK="R"
 | 
|---|
| 238 |  Q
 | 
|---|
| 239 | HELP ;Help for the PRSA OVERTIME WARNINGS list template
 | 
|---|
| 240 |  D FULL^VALM1
 | 
|---|
| 241 |  W !!,?2,"At the Action prompt you may enter CL or VI.",!
 | 
|---|
| 242 |  W !,?4,"Enter CL to select any of the active overtime warnings on the"
 | 
|---|
| 243 |  W !,?4,"screen that you wish to clear.",!
 | 
|---|
| 244 |  W !,?4,"Enter VI to select one of the displayed warnings to view requests"
 | 
|---|
| 245 |  W !,?4,"on file that correlate to the week and pay period of the warning."
 | 
|---|
| 246 |  D PAUSE^VALM1
 | 
|---|
| 247 |  D RE^VALM4
 | 
|---|
| 248 |  Q
 | 
|---|