1 | PRSRL41 ;HISC/JH-INDIVIDUAL EMPLOYEE LEAVE USAGE PATTERN (Continued) ;09/24/01
|
---|
2 | ;;4.0;PAID;**2,19,21,35,69**;Sep 21, 1995
|
---|
3 | S ORG=$E(ORG,1,12)
|
---|
4 | D HDR1
|
---|
5 | S (PP(1),DAY(1),DATT(1))=""
|
---|
6 | S DATE(1)=0
|
---|
7 | ;
|
---|
8 | ;initialize leave arrays, subscripted by ("AL","SL","ML","WP"...)
|
---|
9 | F I=1:1 S X=$P($P(LVT,";",I+1),":") Q:X="" S LEV(X)="",TLEV(X)=""
|
---|
10 | D TYPSTF^PRSRUT0
|
---|
11 | S INX=0
|
---|
12 | ;
|
---|
13 | ;Loop through LEAVE pattern temp global.
|
---|
14 | ;
|
---|
15 | ;debug line
|
---|
16 | ;W !!,"LEAVE PATTERN TEMP GLOBAL: "," ^TMP(",$J,",USE," Q
|
---|
17 | F I=0:0 S INX=$O(^TMP($J,"USE",INX)) Q:INX'>0 D Q:POUT
|
---|
18 | .;
|
---|
19 | .; Loop through each pay period.
|
---|
20 | . S PP=""
|
---|
21 | . F I=0:0 S PP=$O(^TMP($J,"USE",INX,PP)) Q:PP="" S SW(1)=0 D Q:POUT
|
---|
22 | ..;
|
---|
23 | ..; Loop through the dates within the pay period.
|
---|
24 | .. S DATE=0
|
---|
25 | .. F I=0:0 S DATE=$O(^TMP($J,"USE",INX,PP,DATE)) Q:DATE'>0 D Q:POUT
|
---|
26 | ...;
|
---|
27 | ...; Loop through days of week (even though only one per loop)
|
---|
28 | ... S DAY=""
|
---|
29 | ... F I=0:0 S DAY=$O(^TMP($J,"USE",INX,PP,DATE,DAY)) Q:DAY="" S TOUR=$G(^(DAY)) Q:TOUR="" S SW(3)=0 D Q:POUT
|
---|
30 | ....;
|
---|
31 | .... D:($Y>(IOSL-5)) HDR Q:POUT
|
---|
32 | .... S DATT=$E(DATE,4,5)_"/"_$E(DATE,6,7)_"/"_$E(DATE,2,3)
|
---|
33 | .... D CHK,VLIN0:X>1
|
---|
34 | .... W !,"|"
|
---|
35 | .... W $S(PP'=PP(1):$E(PP,3,7),1:"")
|
---|
36 | .... W ?7,"|",DAY,?12,"|"
|
---|
37 | .... W $S(DATT'=DATT(1):DATT,1:""),?22,"|" D
|
---|
38 | ..... D:TOUR["DO" DAY
|
---|
39 | ..... I TOUR'["DO" F K=1:4 Q:$P(TOUR,"^",K+2)="" S LEV=$P(TOUR,"^",K+2),%=$F(LVT,";"_LEV_":") W:SW(3) !,"|",?7,"|",?12,"|",?22,"|" D
|
---|
40 | ...... W:%>0 ?23,LEV
|
---|
41 | ...... W ?27,"|",$P(TOUR,"^",K)
|
---|
42 | ...... W ?35,"|",$P(TOUR,"^",K+1)
|
---|
43 | ...... W ?43,"|"
|
---|
44 | ...... S Z="^^"_DATE_"^"_$P(TOUR,"^",K)_"^"_DATE_"^"_$P(TOUR,"^",K+1) D
|
---|
45 | ....... S COM=$G(^TMP($J,"US",INX))
|
---|
46 | ....... D D^PRSRLL:$P($E(LVT,%,999),";")="ML"!(SW(2)=77),H^PRSRLL:$P($E(LVT,%,999),";")'="ML"&(SW(2)=73) W $S(SW(2)=77:$J(TIM,6),1:$J(TIM,6,2)),?($X+1),TYL,?52,"|",$S($D(COM):$E(COM,1,26),1:""),?79,"|" D
|
---|
47 | ........ S LEV(LEV)=LEV(LEV)+TIM,TLEV(LEV)=TLEV(LEV)+TIM S SW(1)=SW(1)+1,SW(3)=1
|
---|
48 | ........ Q
|
---|
49 | ....... Q
|
---|
50 | ...... Q
|
---|
51 | ..... S PP(1)=PP,DATT(1)=DATT,DAY(1)=DAY,DATE(1)=DATE Q
|
---|
52 | .... Q
|
---|
53 | ... Q
|
---|
54 | .. Q
|
---|
55 | . Q
|
---|
56 | ;
|
---|
57 | ; Print Totals
|
---|
58 | ;
|
---|
59 | Q:POUT
|
---|
60 | D:$Y>(IOSL-7) VLIN0,HDR Q:POUT
|
---|
61 | I SW(1) D VLIN0 W !,"|",?7,"|",?12,"|",?15,"TOTALS:" S (SW(3),TLEV)=0,X="" D
|
---|
62 | . F I=0:0 S X=$O(TLEV(X)) Q:X="" D:$Y>(IOSL-5) HDR Q:POUT S %=$F(LVT,";"_X_":") W:SW(3)&(TLEV(X)'="") !,"|",?7,"|",?12,"|",?22,"|" S TLEV=TLEV+TLEV(X) D
|
---|
63 | .. W:TLEV(X)'="" ?24,$P($E(LVT,%,999),";"),?44,$S(SW(2)=77:$J($G(TLEV(X)),6),1:$J($G(TLEV(X)),6,2)),?($X+1),TYL,?52,"|",?79,"|" S:'SW(3)&(TLEV(X)'="") SW(3)=1
|
---|
64 | .. Q
|
---|
65 | . Q
|
---|
66 | I IOSL<66 F I=$Y:1:IOSL-6 D VLIN0
|
---|
67 | Q
|
---|
68 | CHK S X1=DATE,X2=DATE(1) D ^%DTC Q
|
---|
69 | DAY W TOUR,?27,"|",?35,"|",?43,"|",?52,"|",?79,"|" S SW(1)=SW(1)+1 Q
|
---|
70 | HDR S CODE="L005",FOOT="VA TIME & ATTENDANCE SYSTEM" D VLIDSH0,FOOT2^PRSRUT0
|
---|
71 | I $E(IOST)="C"!($G(IOT)="VTRM") R !,"Press Return/Enter to continue. ",II:DTIME S:II="^" POUT=1 Q:POUT
|
---|
72 | Q:POUT
|
---|
73 | HDR1 ; Main header for report contains:
|
---|
74 | ; Title, ALL/ONLY, date, date range, employee, cost center, T&L unit
|
---|
75 | ;
|
---|
76 | ; Subheader according to type of report user selected
|
---|
77 | S SUBHDR=$S(ALOO="A":"All Leave Taken With Days Off",1:"Every Occurance of Leave, ONLY Before And After Days Off")
|
---|
78 | W @IOF
|
---|
79 | W !?29,^TMP($J,"USE"),?66
|
---|
80 | W "DATE: ",DAT,!?22,"from: ",XX," to ",YY
|
---|
81 | W !,?(80-$L(SUBHDR))\2,SUBHDR ;tab depending on length of subheader
|
---|
82 | W !?25,"for: ",NAM," - "
|
---|
83 | W ORG,!,?33
|
---|
84 | W "T&L Unit: ",TLE
|
---|
85 | D VLIDSH0
|
---|
86 | W !,"|","P/P",?7,"|","DAY",?12,"|","DATE",?22,"|","TYPE",?27,"|","FROM",?35,"|","TO",?43,"|","LENGTH",?52,"|","COMMENT",?79,"|" D VLIDSH0 Q
|
---|
87 | VLIDSH0 W !,"|------|----|---------|----|-------|-------|--------|--------------------------|" Q
|
---|
88 | VLIN0 W !,"|",?7,"|",?12,"|",?22,"|",?27,"|",?35,"|",?43,"|",?52,"|",?79,"|" Q
|
---|
89 | ASKDSPLY() ; Ask user if they want to see all leave, including days off and
|
---|
90 | ; Holidays or if they want to see only leave taken immediately
|
---|
91 | ; before or after Holidays and days off.
|
---|
92 | N DIR
|
---|
93 | S RTN=""
|
---|
94 | S DIR(0)="SM^A:All leave;O:Only around days off & holidays"
|
---|
95 | S DIR("A")=" Choose A or O "
|
---|
96 | S DIR("A",1)="You may display ALL leave taken within the date range"
|
---|
97 | S DIR("A",2)="or ONLY leave taken the day before and after holidays"
|
---|
98 | S DIR("A",3)="and scheduled days off."
|
---|
99 | S DIR("A",4)=""
|
---|
100 | S DIR("?",1)="If you select ONLY leave around days off and holidays,"
|
---|
101 | S DIR("?",2)="then for example, when an employee with weekends off has"
|
---|
102 | S DIR("?",3)="taken annual leave for the entire week (Mon-Fri), only"
|
---|
103 | S DIR("?",4)="the leave for Monday and Friday will be displayed."
|
---|
104 | S DIR("?")="Selecting ALL, will display all leave taken."
|
---|
105 | D ^DIR S RTN=Y
|
---|
106 | Q RTN
|
---|