| 1 | PRSRL11 ;HISC/JH,WIRMFO/JAH,SAB-ALL EMPLOYEE LEAVE USED REPORT ;8/27/01
 | 
|---|
| 2 |  ;;4.0;PAID;**2,17,39,34,69**;Sep 21, 1995
 | 
|---|
| 3 |  ; prints leave used report when All employees in T&L Unit selected
 | 
|---|
| 4 |  S (PAGE,POUT)=0,DAT2=$$FMTE^XLFDT(DT)
 | 
|---|
| 5 |  D HDR1
 | 
|---|
| 6 |  N MLINHRS
 | 
|---|
| 7 |  ; loop thru pay periods (external value)
 | 
|---|
| 8 |  S PP=""
 | 
|---|
| 9 |  F  S PP=$O(^TMP($J,"USE",PP)) Q:PP=""  D  Q:POUT
 | 
|---|
| 10 |  . S DATE(1)="" ; previous leave date, used to control printing of date
 | 
|---|
| 11 |  . ; loop thru leave dates (fileman)
 | 
|---|
| 12 |  . S DATE=0 F  S DATE=$O(^TMP($J,"USE",PP,DATE)) Q:DATE'>0  D  Q:POUT
 | 
|---|
| 13 |  .. S DATE(2)=$E(DATE,4,5)_"/"_$E(DATE,6,7)_"/"_$E(DATE,2,3)
 | 
|---|
| 14 |  .. ; loop thru employee names
 | 
|---|
| 15 |  .. S NAM="" F  S NAM=$O(^TMP($J,"USE",PP,DATE,NAM)) Q:NAM=""  D  Q:POUT
 | 
|---|
| 16 |  ... ; loop thru employee ssn's
 | 
|---|
| 17 |  ... S SSN=""
 | 
|---|
| 18 |  ... F  S SSN=$O(^TMP($J,"USE",PP,DATE,NAM,SSN)) Q:SSN=""  D  Q:POUT
 | 
|---|
| 19 |  .... ; loop thru employee ien's (file #450)
 | 
|---|
| 20 |  .... S D0=0
 | 
|---|
| 21 |  .... F  S D0=$O(^TMP($J,"USE",PP,DATE,NAM,SSN,D0)) Q:D0'>0  D  Q:POUT
 | 
|---|
| 22 |  ..... ; loop thru instances of wrk nodes that contained leave
 | 
|---|
| 23 |  ..... S NUM=0
 | 
|---|
| 24 |  ..... F  S NUM=$O(^TMP($J,"USE",PP,DATE,NAM,SSN,D0,NUM)) Q:NUM'>0  D  Q:POUT
 | 
|---|
| 25 |  ...... S TOUR=$G(^TMP($J,"USE",PP,DATE,NAM,SSN,D0,NUM))
 | 
|---|
| 26 |  ...... Q:TOUR=""!($P(TOUR,U,3)="")  ; no start time or type of time
 | 
|---|
| 27 |  ...... Q:$E($P(TOUR,U,3),1)="H"  ; holiday worked or excused
 | 
|---|
| 28 |  ...... S PRSRSSN=$E(SSN,1,3)_$E(SSN,5,6)_$E(SSN,8,11)
 | 
|---|
| 29 |  ...... D TYPSTF^PRSRUT0 ; returns SW(2), = 77 for daily tour, else = 73
 | 
|---|
| 30 |  ...... S MLINHRS=$$MLINHRS^PRSAENT(DFN)
 | 
|---|
| 31 |  ...... D:$Y+5>IOSL HDR Q:POUT
 | 
|---|
| 32 |  ...... W !,"|"
 | 
|---|
| 33 |  ...... I DATE'=DATE(1) W DATE(2) S DATE(1)=DATE ; print date if changed
 | 
|---|
| 34 |  ...... W ?10,"|",$E(NAM,1,20),?32,"|"
 | 
|---|
| 35 |  ...... S SW(3)=0 ; flag, set false to suppress new line when 1st segment
 | 
|---|
| 36 |  ...... ; loop thru leave segments in node - data source and format from 
 | 
|---|
| 37 |  ...... ;   node 2 for day, empl. in #458 but ONLY contains leave
 | 
|---|
| 38 |  ...... ; Break out CU posting to comp or credit based on time remarks.
 | 
|---|
| 39 |  ...... ;
 | 
|---|
| 40 |  ...... F K=1:4 Q:$P(TOUR,"^",K+2)=""  D
 | 
|---|
| 41 |  ....... N COMPCRED S LEV=$P(TOUR,"^",K+2),%=$F(LVT,";"_LEV_":")
 | 
|---|
| 42 |  ....... W:SW(3) !,"|",?10,"|",?32,"|" ; new line for subsequent segments
 | 
|---|
| 43 |  .......; W:%>0 $P($E(LVT,%,999),";")
 | 
|---|
| 44 |  ....... S:LEV="CU" COMPCRED=$S($P(TOUR,"^",K+3)=16:"Credit Hours",1:"Compensatory")
 | 
|---|
| 45 |  ....... W:%>0 $S(LEV="CU":COMPCRED,1:$P($E(LVT,%,999),";"))
 | 
|---|
| 46 |  ....... W ?53,"|",$P(TOUR,"^",K),?61,"|",$P(TOUR,"^",K+1),?69,"|"
 | 
|---|
| 47 |  ....... ; call PRSRLL to set TIM (elasped time) and TYL (D day, H hour)
 | 
|---|
| 48 |  ....... S Z="^^"_DATE_"^"_$P(TOUR,"^",K)_"^"_DATE_"^"_$P(TOUR,"^",K+1)
 | 
|---|
| 49 |  ....... I LEV="ML" D
 | 
|---|
| 50 |  ........ I MLINHRS D H^PRSRLL Q
 | 
|---|
| 51 |  ........ D D^PRSRLL
 | 
|---|
| 52 |  ....... D D^PRSRLL:LEV'="ML"&(SW(2)=77) ; daily tour
 | 
|---|
| 53 |  ....... D H^PRSRLL:LEV'="ML"&(SW(2)=73) ; else hour
 | 
|---|
| 54 |  ....... W $S(SW(2)=77:$J(TIM,7),1:$J(TIM,7,2))
 | 
|---|
| 55 |  ....... W ?($X+1),TYL,?79,"|"
 | 
|---|
| 56 |  ....... S SW(3)=1 ; set flag true so next segment (if any) on new line
 | 
|---|
| 57 |  .. Q:POUT
 | 
|---|
| 58 |  .. D VLIN1
 | 
|---|
| 59 |  ;
 | 
|---|
| 60 |  I 'CNT D
 | 
|---|
| 61 |  . D VLIN1
 | 
|---|
| 62 |  . W !,"|",?10,"No Leave Usage on File within this Date Range.",?79,"|"
 | 
|---|
| 63 |  ;
 | 
|---|
| 64 |  ; report footer
 | 
|---|
| 65 |  I 'POUT D
 | 
|---|
| 66 |  . I $Y+5<IOSL,IOSL<66 F I=$Y:1:IOSL-5 D VLIN1
 | 
|---|
| 67 |  . D VLIDSH1
 | 
|---|
| 68 |  . S CODE="L004",FOOT="VA TIME & ATTENDANCE SYSTEM" D FOOT2^PRSRUT0
 | 
|---|
| 69 |  . I $E(IOST,1,2)="C-" S DIR(0)="E" D ^DIR K DIR
 | 
|---|
| 70 |  Q
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 | HDR ; page break
 | 
|---|
| 73 |  I $D(ZTQUEUED),$$S^%ZTLOAD S ZTSTOP=1,POUT=1 Q
 | 
|---|
| 74 |  D VLIDSH1
 | 
|---|
| 75 |  S CODE="L004",FOOT="VA TIME & ATTENDANCE SYSTEM" D FOOT2^PRSRUT0
 | 
|---|
| 76 |  I $E(IOST,1,2)="C-" S DIR(0)="E" D ^DIR K DIR I 'Y S POUT=1 Q
 | 
|---|
| 77 | HDR1 ; page header
 | 
|---|
| 78 |  W:$E(IOST,1,2)="C-"!(PAGE) @IOF
 | 
|---|
| 79 |  S PAGE=PAGE+1
 | 
|---|
| 80 |  W !?31,^TMP($J,"USE"),?60,"DATE: ",DAT2
 | 
|---|
| 81 |  W !?22,"from: ",XX," to: ",YY
 | 
|---|
| 82 |  W !?36,"T&L: ",$P(TLE(1),"^"),!
 | 
|---|
| 83 |  D VLIDSH1
 | 
|---|
| 84 |  W !,"|","DATE",?10,"|","EMPLOYEE",?32,"|","TYPE",?53,"|","FROM",?61,"|","TO",?69,"|","LENGTH",?79,"|"
 | 
|---|
| 85 |  D VLIDSH1
 | 
|---|
| 86 |  S DATE(1)="" ; forces leave date to print on new page
 | 
|---|
| 87 |  Q
 | 
|---|
| 88 |  ;
 | 
|---|
| 89 | VLIDSH1 ;dashed line (with columns)
 | 
|---|
| 90 |  W !,"|---------|---------------------|--------------------|-------|-------|---------|"
 | 
|---|
| 91 |  Q
 | 
|---|
| 92 |  ;
 | 
|---|
| 93 | VLIN1 ; blank line (with columns)
 | 
|---|
| 94 |  W !,"|",?10,"|",?32,"|",?53,"|",?61,"|",?69,"|",?79,"|"
 | 
|---|
| 95 |  Q
 | 
|---|