| 1 | PRS8UT ;HISC/MRL,JAH/WIRMFO-DECOMPOSITION, UTILITIES ;3/5/93  15:24
 | 
|---|
| 2 |  ;;4.0;PAID;**21,45**;Sep 21, 1995
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ;This routine contains utility functions associated with the
 | 
|---|
| 5 |  ;decomposition process such as device selection.
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  ;Called by Routines:  PRS8, PRS8TL
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 | DEV ; --- device selection
 | 
|---|
| 10 |  K IOP,%ZIS S %ZIS="NQM",%ZIS("A")="Output DEVICE:  ",%ZIS("B")="HOME"
 | 
|---|
| 11 |  D ^%ZIS K %ZIS
 | 
|---|
| 12 |  I POP W !,"Process Terminated.  No Device Specified!",*7 G END
 | 
|---|
| 13 |  S IOP=ION_";"_IOST_$S($D(IO("DOC")):";"_IO("DOC"),1:";"_IOM_";"_IOSL)
 | 
|---|
| 14 |  I IO=IO(0),"C"[$E(IOST),$D(IO("Q"))#2 W !,"I can't permit you to QUEUE this output to a CRT!",*7 G DEV
 | 
|---|
| 15 |  I IO'=IO(0),'$D(IO("Q")) W !,"Output QUEUED to run on DEVICE ",IO S IO("Q")=1,ZTDTH=$H
 | 
|---|
| 16 |  I '$D(IO("Q")) D ^%ZIS U IO G @PRS8("PGM")
 | 
|---|
| 17 |  S ZTRTN=PRS8("PGM"),ZTIO=IOP,ZTDESC=PRS8("DES")
 | 
|---|
| 18 |  F I=1:1 S J=$P(PRS8("VAR"),"^",I) Q:J=""  S ZTSAVE(J)=""
 | 
|---|
| 19 |  K IO("Q") D ^%ZTLOAD,HOME^%ZIS
 | 
|---|
| 20 |  ;
 | 
|---|
| 21 | END ; --- all done here
 | 
|---|
| 22 |  K ZTSK,IOP,%IS Q
 | 
|---|
| 23 | HOLIDAY(PY,DFN,DY) ; PAY_PERIOD , EMPLOYEE , DAY_NUMBER
 | 
|---|
| 24 |  ; Returns 1 if holiday excused/worked (HX/HW) is found for this employee
 | 
|---|
| 25 |  N X S X=$G(^PRST(458,+PY,"E",+DFN,"D",+DY,2))
 | 
|---|
| 26 |  Q (X["HX")!(X["HW")
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 |  ;= = = = = = = = = = = = = = = = = = = = = = = = = = = = =
 | 
|---|
| 29 |  ;
 | 
|---|
| 30 | OLDENT(PP2Y,EMP450) ;
 | 
|---|
| 31 |  ; Return employee entitlement from a pay period.  Entitlement is 
 | 
|---|
| 32 |  ; normally built from employee's master record (FILE 450), but 
 | 
|---|
| 33 |  ; it is also stored in file 458 (which is historical) and may
 | 
|---|
| 34 |  ; be different than the employee's current entitlement.
 | 
|---|
| 35 |  ;
 | 
|---|
| 36 |  N DIC,X,Y,PPI,DA
 | 
|---|
| 37 |  S ENT=0
 | 
|---|
| 38 |  S DIC="^PRST(458,",DIC(0)="MZ",X=PP2Y
 | 
|---|
| 39 |  D ^DIC
 | 
|---|
| 40 |  Q:'+Y ENT
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 |  S DA(1)=+Y
 | 
|---|
| 43 |  S DIC=DIC_DA(1)_","_"""E"""_","
 | 
|---|
| 44 |  S X=EMP450 D ^DIC
 | 
|---|
| 45 |  Q:'+Y ENT
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 |  S ENT=$P($G(^PRST(458,DA(1),"E",+Y,0)),"^",5)
 | 
|---|
| 48 |  Q ENT
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 |  ;= = = = = = = = = = = = = = = = = = = = = = = = = = = = =
 | 
|---|
| 51 |  ;
 | 
|---|
| 52 | OLDPP(PYPERIOD,EMP450NO) ;OLD PAY PERIOD LOOKUP
 | 
|---|
| 53 |  ;  Look up information about an employee from an old pay period.
 | 
|---|
| 54 |  ;  return PAYPLAN if the lookup is successful and a pay plan is found.
 | 
|---|
| 55 |  ;  return 0 if the lookup fails for any reason.
 | 
|---|
| 56 |  ;  fill OLDPP array with pay run info.
 | 
|---|
| 57 |  ;VARS:
 | 
|---|
| 58 |  ; PYPERIOD = Pay period that we are looking up.  yy-pp format (96-01).
 | 
|---|
| 59 |  ; EMP450NO = Employees internal entry number from file 450.
 | 
|---|
| 60 |  ; PAYPDIEN = Internal entry number of PYPERIOD
 | 
|---|
| 61 |  ; RTN      = Return 1 for success 0 otherwise
 | 
|---|
| 62 |  ; OLDPYDAT = Payrun data in file 459.  Data is pertinant to employee 
 | 
|---|
| 63 |  ;            being looked up during that pay period.
 | 
|---|
| 64 |  ; PAYPLAN  = Employees old pay plan.  returned if found.
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 |  S RTN=0,U="^"
 | 
|---|
| 67 |  ;ensure params are reasonable
 | 
|---|
| 68 |  I $G(PYPERIOD)?2N1"-"2N,($G(EMP450NO)>0) D
 | 
|---|
| 69 |  .  S PAYPDIEN=$O(^PRST(459,"B",$G(PYPERIOD),""))
 | 
|---|
| 70 |  .  I $G(PAYPDIEN) D
 | 
|---|
| 71 |  ..    S OLDPYDAT=$G(^PRST(459,PAYPDIEN,"P",EMP450NO,0))
 | 
|---|
| 72 |  ..    S PAYPLAN=$P(OLDPYDAT,U,3)
 | 
|---|
| 73 |  ..    I PAYPLAN'="" D
 | 
|---|
| 74 |  ...      D SETOLDPP(OLDPYDAT)
 | 
|---|
| 75 |  ...      S RTN=PAYPLAN
 | 
|---|
| 76 |  Q RTN
 | 
|---|
| 77 | SETOLDPP(EMPDATA) ;set up array with info from an employees record 
 | 
|---|
| 78 |  ;in the payrun download file (#459)
 | 
|---|
| 79 |  ;
 | 
|---|
| 80 |  S U="^"
 | 
|---|
| 81 |  S OLDPP("PAYPLN")=$P(EMPDATA,U,3)
 | 
|---|
| 82 |  S OLDPP("GRADE")=$P(EMPDATA,U,4)
 | 
|---|
| 83 |  S OLDPP("STEP")=$P(EMPDATA,U,5)
 | 
|---|
| 84 |  S OLDPP("DUTYBS")=$P(EMPDATA,U,6)
 | 
|---|
| 85 |  S OLDPP("8BNHRS")=$P(EMPDATA,U,7)
 | 
|---|
| 86 |  S OLDPP("TLUNIT")=$P(EMPDATA,U,13)
 | 
|---|
| 87 |  S OLDPP("NRMHRS")=$P(EMPDATA,U,12)
 | 
|---|
| 88 |  Q
 | 
|---|