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