| 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 | 
|---|