1 | PRSRL12 ;HISC/JH,WCIOFO/SAB-INDIVIDUAL EMPLOYEE LEAVE USED REPORT ;08/27/01
|
---|
2 | ;;4.0;PAID;**2,5,19,39,34,69**;Sep 21, 1995
|
---|
3 | ; prints leave used report when specific employee selected
|
---|
4 | N MLINHRS
|
---|
5 | S (PAGE,POUT)=0,DAT2=$$FMTE^XLFDT(DT)
|
---|
6 | D HDR3
|
---|
7 | D TYPSTF^PRSRUT0 ; returns SW(2): = 77 for daily tour, else = 73
|
---|
8 | S MLINHRS=$$MLINHRS^PRSAENT(DFN)
|
---|
9 | ; init totals for all leave types
|
---|
10 | F I=1:1 S X=$P($P(LVT,";",I+1),":") Q:X="" S TLEV(X)=""
|
---|
11 | ;
|
---|
12 | ; Add 2 types of leave to hold break out totals of
|
---|
13 | ; comp/credit--credit hours & compensatory.
|
---|
14 | ;
|
---|
15 | S (TLEV("CUCOMP"),TLEV("CUCRED"))=""
|
---|
16 | ; loop thru instances of wrk nodes containing leave
|
---|
17 | S INX=0 F S INX=$O(^TMP($J,"USE",INX)) Q:INX'>0 D Q:POUT
|
---|
18 | . ; loop thru pay periods (nn)
|
---|
19 | . S PP="" F S PP=$O(^TMP($J,"USE",INX,PP)) Q:PP="" D Q:POUT
|
---|
20 | .. ; loop thru leave date (fileman)
|
---|
21 | .. S DATE=0
|
---|
22 | .. F S DATE=$O(^TMP($J,"USE",INX,PP,DATE)) Q:DATE'>0 D Q:POUT
|
---|
23 | ... ; loop thru leave date (external)
|
---|
24 | ... S DAY=""
|
---|
25 | ... F S DAY=$O(^TMP($J,"USE",INX,PP,DATE,DAY)) Q:DAY="" D Q:POUT
|
---|
26 | .... S TOUR=$G(^TMP($J,"USE",INX,PP,DATE,DAY)) Q:TOUR=""
|
---|
27 | .... D:$Y+5>IOSL HDR Q:POUT
|
---|
28 | .... ; start detail line - only print pp and date when changed
|
---|
29 | .... W !,"|"
|
---|
30 | .... I PP'=PP(1) W PP S PP(1)=PP
|
---|
31 | .... W ?4,"|"
|
---|
32 | .... I DAY'=DAY(1) W DAY S DAY(1)=DAY
|
---|
33 | .... W ?19,"|"
|
---|
34 | .... S SW(3)=0 ; flag, set false to suppress new line when 1st segment
|
---|
35 | .... ; loop thru segments in node - data source and format from
|
---|
36 | .... ; node 2 for day, empl. in #458 but ONLY contains leave
|
---|
37 | .... F K=1:4 Q:$P(TOUR,"^",K+2)="" D
|
---|
38 | ..... N COMPCRED S LEV=$P(TOUR,"^",K+2) ; leave type (internal code)
|
---|
39 | ..... W:SW(3) !,"|",?4,"|",?19,"|" ; new line for subsequent segments
|
---|
40 | ..... S %=$F(LVT,";"_LEV_":")
|
---|
41 | ..... ;comp/credit (CU) is distinguishable by time remarks code (K+3)
|
---|
42 | ..... S:LEV="CU" COMPCRED=$S($P(TOUR,"^",K+3)=16:"Credit Hours",1:"Compensatory")
|
---|
43 | ..... ;display leave type
|
---|
44 | ..... W:%>0 $S(LEV="CU":COMPCRED,1:$P($E(LVT,%,999),";"))
|
---|
45 | ..... W:LEV="LWOP" " - AWOL"
|
---|
46 | ..... W ?41,"|",$P(TOUR,"^",K),?49,"|",$P(TOUR,"^",K+1),?57,"|"
|
---|
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 ; For Military Leave - PRS*4.0*69
|
---|
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 ?57,$S(SW(2)=77:$J(TIM,4),1:$J(TIM,7,2))
|
---|
55 | ..... W " ",$S(TYL="H":"Hour",1:"Day")_$S(TIM="":"",TIM'=1:"s",1:"")
|
---|
56 | ..... W ?79,"|"
|
---|
57 | ..... S TLEV(LEV)=TLEV(LEV)+TIM ; add to total for type of leave
|
---|
58 | ..... I LEV="CU" S TLEV($S($P(TOUR,"^",K+3)=16:"CUCRED",1:"CUCOMP"))=TLEV($S($P(TOUR,"^",K+3)=16:"CUCRED",1:"CUCOMP"))+TIM
|
---|
59 | ..... S SW(3)=1 ; set flag true so next segment (if any) on new line
|
---|
60 | ;
|
---|
61 | I 'CNT D
|
---|
62 | . D VLIN0
|
---|
63 | . W !,"|",?10,"No Leave Usage on File within this Date Range.",?79,"|"
|
---|
64 | ;
|
---|
65 | ; report totals
|
---|
66 | I CNT,'POUT D
|
---|
67 | . D HDR:$Y+7>IOSL
|
---|
68 | . D VLIN0
|
---|
69 | . W !,"|",?4,"|",?19,"|",?27,"TOTALS:"
|
---|
70 | . S SW(3)=0 ; set false so 1st type of leave printed on same line
|
---|
71 | . ; loop thru leave type totals
|
---|
72 | . S LEV="" F S LEV=$O(TLEV(LEV)) Q:LEV="" D Q:POUT
|
---|
73 | .. Q:TLEV(LEV)="" ; none of this type of leave found
|
---|
74 | .. D:$Y+5>IOSL HDR Q:POUT
|
---|
75 | .. W:SW(3) !,"|",?4,"|",?19,"|",?39 ; new line when not first leave type
|
---|
76 | .. S %=$F(LVT,";"_LEV_":") W:%>0 ?39,$P($E(LVT,%,999),";") ; leave type
|
---|
77 | .. ;write out subtotals for comp/credit
|
---|
78 | .. I LEV="CUCOMP" W ?42,"Compensatory"
|
---|
79 | .. I LEV="CUCRED" W ?42,"Credit Hours"
|
---|
80 | .. W ?58,$S(SW(2)=77:$J($G(TLEV(LEV)),4),1:$J($G(TLEV(LEV)),7,2))
|
---|
81 | .. W " "
|
---|
82 | .. I LEV="ML" W $S(MLINHRS:"Hour",1:"Day")
|
---|
83 | .. I LEV'="ML" W $S(SW(2)=77:"Day",1:"Hour")
|
---|
84 | .. W $S(TLEV(LEV)'=1:"s",1:""),?79,"|"
|
---|
85 | .. S:'SW(3) SW(3)=1 ; set true so next leave type on new line
|
---|
86 | ;
|
---|
87 | ; report footer
|
---|
88 | I 'POUT D
|
---|
89 | . I IOSL<66 F I=$Y:1:IOSL-6 D VLIN0
|
---|
90 | . D VLIDSH0
|
---|
91 | . S CODE="L003",FOOT="VA TIME & ATTENDANCE SYSTEM" D FOOT2^PRSRUT0
|
---|
92 | . I $E(IOST,1,2)="C-" S DIR(0)="E" D ^DIR K DIR
|
---|
93 | ;
|
---|
94 | Q
|
---|
95 | ;
|
---|
96 | HDR ; page break
|
---|
97 | I $D(ZTQUEUED),$$S^%ZTLOAD S ZTSTOP=1,POUT=1 Q
|
---|
98 | D VLIDSH0
|
---|
99 | S CODE="L003",FOOT="VA TIME & ATTENDANCE SYSTEM" D FOOT2^PRSRUT0
|
---|
100 | I $E(IOST,1,2)="C-" S DIR(0)="E" D ^DIR K DIR I 'Y S POUT=1 Q
|
---|
101 | HDR3 ; page header
|
---|
102 | I $E(IOST,1,2)="C-"!PAGE W @IOF
|
---|
103 | S PAGE=PAGE+1
|
---|
104 | W !?31,^TMP($J,"USE"),?60,"DATE: ",DAT2
|
---|
105 | W !?22,"from: ",XX," to: ",YY
|
---|
106 | W !?24,"for: ",NAM," - T&L: ",TLE,!
|
---|
107 | D VLIDSH0
|
---|
108 | W !,"|","PP",?4,"|","DATE",?19,"|","TYPE",?41,"|","FROM",?49,"|","TO",?57,"|","LENGTH",?79,"|"
|
---|
109 | D VLIDSH0
|
---|
110 | S (PP(1),DAY(1))="" ; forces pp and leave date to print on new page
|
---|
111 | Q
|
---|
112 | ;
|
---|
113 | VLIDSH0 ; dashed line (with columns)
|
---|
114 | W !,"|---|--------------|---------------------|-------|-------|---------------------|"
|
---|
115 | Q
|
---|
116 | ;
|
---|
117 | VLIN0 ; blank line (with columns)
|
---|
118 | W !,"|",?4,"|",?19,"|",?41,"|",?49,"|",?57,"|",?79,"|"
|
---|
119 | Q
|
---|