source: FOIAVistA/tag/r/PAID-PRS/PRSA8BNI.m@ 1540

Last change on this file since 1540 was 628, checked in by George Lilly, 15 years ago

initial load of FOIAVistA 6/30/08 version

File size: 4.4 KB
Line 
1PRSA8BNI ;WOIFO/JAH - Tour Hours vs 8B Norm Hrs Report ;3/5/08
2 ;;4.0;PAID;**116**;Sep 21, 1995;Build 23
3 ;;Per VHA Directive 2004-038, this routine should not be modified.
4 Q
5 ;
6GETPP() ;prompt for pay period
7 N DIC,X,Y,PPI,DTOUT
8 S DIC="^PRST(458,",DIC(0)="AEQM",DIC("A")="Select PAY PERIOD: "
9 W !
10 D ^DIC
11 S PPI=+Y
12 I $D(DTOUT)!(+Y'>0) S PPI=0
13 Q PPI
14NOTOURS() ;return true if user wants to see data from employees with
15 ; no tour of duty set up yet
16 ; otherwise return 0 or -1 for abort
17 ;
18 N DIR,DIRUT,Y
19 S DIR(0)="Y"
20 S DIR("B")="N"
21 S DIR("A")="Include employees with no tour of duty entered"
22 D ^DIR
23 Q:$D(DIRUT) -1
24 Q +Y
25 ;
26NOTCARD() ;return true if user wants to see data from employees with
27 ; no timecard on file, ie no entry for pp in 458
28 ; otherwise return 0 or -1 for abort
29 ;
30 N DIR,DIRUT,Y
31 S DIR(0)="Y"
32 S DIR("B")="N"
33 S DIR("A")="Include employees with no timecard on file"
34 D ^DIR
35 Q:$D(DIRUT) -1
36 Q +Y
37DAILYHRS() ;return true if user wants to see tour hours for each day
38 ; otherwise return 0 or -1 for abort
39 ;
40 N DIR,DIRUT,Y
41 S DIR(0)="Y"
42 S DIR("B")="N"
43 S DIR("A")="Include employees daily tour hours"
44 D ^DIR
45 Q:$D(DIRUT) -1
46 Q +Y
47 ;
48TRHDR ;
49 W !!,?7,"Day",?12,"ToD #*",?19,"Tour Week 1",?34,"Hours*",?47,"ToD #*",?54,"Tour Week 2",?69,"Hours*"
50 W !,?7,"---",?12,"-----",?19,"-----------",?34,"-----",?47,"-----",?54,"-----------",?69,"-----"
51 Q
52EMPINFO(PRSENAME,PRSSN,HRS) ;
53 W !!?2,PRSENAME,?26,PRSSN,?44,$P(HRS,U),?55,$P(HRS,U,2)
54 I $G(DUZ(0))="@" W ?63,PRSIEN
55 Q
56HDR(PG,TSTAMP,END,FORWHO,PPE,PPRANGE) ;
57 S PG=PG+1
58 W @IOF
59 N H1,H2,B
60 S H1="VA TIME & ATTENDANCE REPORT "_FORWHO_"--"_TSTAMP
61 S B=$E(" ",1,(IOM-$L(H1))\2-3-$L(PG))
62 S H2="Tour Hrs Don't Match 8B Normal Hrs: PP "_PPE_" ("_PPRANGE_")"
63 W !,?(IOM-$L(H1)\2),H1,B,"p",PG,!,?(IOM-$L(H2)\2),H2
64 Q:END
65 W !!,?2,"EMPLOYEE NAME",?26," SSN",?40,"8B NRM HRS ToD HRS*"
66 I $G(DUZ(0))="@" W ?63,"IEN 450"
67 W !?2,"======================",?26,"===========",?40,"========== ======="
68 I $G(DUZ(0))="@" W " ======="
69 Q
70 ;
71RET(TSTAMP) ;
72 I ($E(IOST,1,2)'="C-")!($D(ZTQUEUED)) D HDR(.PG,TSTAMP,0,FORWHO,PPE,PPRANGE) Q 0
73 ;
74 N OUT
75 S OUT=$$ASK^PRSLIB00(1)
76 I 'OUT D HDR(.PG,TSTAMP,0,FORWHO,PPE,PPRANGE)
77 Q OUT
78GETHOURS(PPI,PRSIEN) ; Return TOUR HOURS AND NORMAL HOURS
79 N MATCH,HRS,NH,ENT,ENTPTR,DFN,TH
80 I $G(PPI)'>0!($G(PRSIEN)'>0) Q 1
81 S MATCH=1
82 S NH=-1
83 S ENTPTR=$P($G(^PRST(458,PPI,"E",PRSIEN,0)),U,5)
84 I ENTPTR'="" D
85 . S ENT=$P($G(^PRST(457.5,ENTPTR,1)),U)
86 . S NH=$E($G(^PRST(458,PPI,"E",PRSIEN,5)),26,27)
87 . Q:NH="00"
88 . I +NH'>0 S NH=$P($G(^PRSPC(PRSIEN,0)),U,50)
89 I $G(ENT)="" S DFN=PRSIEN D ^PRSAENT
90 I $G(ENT)'="",$E(ENT)'="D",($E(ENT,1,2)'="0D") D
91 . D TOURHRS^PRSARC07(.HRS,PPI,PRSIEN)
92 . S TH=($G(HRS("W1"))+$G(HRS("W2")))
93 Q NH_U_TH
94 ;
95REPDONE(OUT,TLECNT,TSTAMP,DAILYHRS,GRANDTOT) ; report done display page
96 ;
97 I TLECNT=0 D HDR(.PG,TSTAMP,1,FORWHO,PPE,PPRANGE) W !,"NO T&L UNITS WERE FOUND ASSIGNED TO YOU THAT COULD BE CHECKED." Q
98 I 'OUT,$Y>(IOSL-24) S OUT=$$ASK^PRSLIB00(1) D HDR(.PG,TSTAMP,1,FORWHO,PPE,PPRANGE)
99 I OUT W !!,"********REPORT ABORTED*********"
100 E W !!,"REPORT COMPLETED. TOTAL MISMATCHES FOUND: ",GRANDTOT
101 W !,"================================================================="
102 N TXT,I
103 W !
104 F I=1:1 S TXT=$P($T(ALLFT+I),";",3) Q:TXT="" W !,TXT
105 I DAILYHRS D
106 . F I=1:1 S TXT=$P($T(DAILYFT+I),";",3) Q:TXT="" W !,TXT
107 S OUT=$$ASK^PRSLIB00(1)
108 Q
109ALLFT ;;
110 ;; FOOTNOTES TO REPORT HEADINGS
111 ;; ============================
112 ;;*ToD HRS (Tour of Duty Hours) The total Tour of Duty hours that fall within the
113 ;;-------- two week pay period, beginning midnight Saturday. Hours that cross
114 ;; midnight from a tour that starts on the last day of a pay period will
115 ;; appear on the following pay period.
116 ;;.....................................................................
117DAILYFT ;;
118 ;;*Hours (DAILY TOUR HOURS) This column contains actual tour hours that fall
119 ;;------ on that day from the 24 hour period beginning at midnight. A two day
120 ;; tour will contribute hours to each day the tour falls on. Hours
121 ;; that cross midnight from a tour that starts on the last day of a pay
122 ;; period will appear on the following pay period.
123 ;;.....................................................................
124 ;;*ToD # (Tour of Duty Number)
125 ;;------
126 ;;.....................................................................
Note: See TracBrowser for help on using the repository browser.