1 | ABSVSERV ;VAMC ALTOONA/CTB - SERVER TO FILE DATA FROM AUSTIN ;1/11/01 10:21 AM
|
---|
2 | V ;;4.0;VOLUNTARY TIMEKEEPING;**3,9,10,19,21,23**;JULY 6, 1994
|
---|
3 | D NOW^ABSVQ S DATE=%
|
---|
4 | ;CHECK MESSAGE FILE FOR ENTRY, IF NONE ADD, IF SERVED, QUIT
|
---|
5 | S RECCOUNT=0,ERRCOUNT=0
|
---|
6 | S X=XMZ,DIC=503339.1,DIC(0)="ML",DLAYGO=DIC D ^DIC
|
---|
7 | I Y<0 QUIT
|
---|
8 | S MSGNUM=XMZ,MFILEDA=+Y
|
---|
9 | I $P(^ABS(503339.1,MFILEDA,0),"^",3)="S" S MSG="Message previously filed. No action taken." D ERR QUIT
|
---|
10 | S $P(^ABS(503339.1,MFILEDA,0),"^",3,4)="R^"_DATE
|
---|
11 | S DONE=0
|
---|
12 | F X XMREC Q:XMER'=0 D Q:DONE
|
---|
13 | . I $E(XMRG,1,2)="01"!($E(XMRG,1,5)="SERV2") D START Q:DONE
|
---|
14 | . I $E(XMRG,1,5)="SERV3" D ^ABSVSER3 Q:DONE
|
---|
15 | . QUIT
|
---|
16 | QUIT
|
---|
17 | START ;
|
---|
18 | S MSG="PROCESSING MONTHLY MASTER RECORD DOWNLOAD." D MSG
|
---|
19 | S MSG=" " D MSG
|
---|
20 | D TYPE01
|
---|
21 | F X XMREC Q:XMER'=0 D
|
---|
22 | . I $E(XMRG,1,2)="01" D TYPE01 QUIT
|
---|
23 | . I $E(XMRG,1,5)="SERV2" D TYPE02 QUIT
|
---|
24 | . QUIT
|
---|
25 | S $P(^ABS(503339.1,MFILEDA,0),"^",3)="S"
|
---|
26 | I '$D(MSGLINE) S XQSTXT(1)=" ",XQSTXT(2)="No errors found during processing for station "_$G(SITE) S MSGLINE=3
|
---|
27 | S XQSTXT(MSGLINE)=RECCOUNT_" records processed into master file." S MSGLINE=MSGLINE+1
|
---|
28 | S XQSTXT(MSGLINE)=ERRCOUNT_" records bypassed."
|
---|
29 | S DONE=1 QUIT
|
---|
30 | TYPE01 K X,TRANSNUM,SITE,DATE,SSN,TERMMO,TERMYR,SERVYRS,HRSPRYR,HRSCURYR,AWDCODE,AWDHRS,AWDMO,AWDYR,HRSTOT,ZIP
|
---|
31 | S X=XMRG
|
---|
32 | S TRANSNUM=$E(X,1,2),SITE=$$STRIP($E(X,3,6))
|
---|
33 | S DATE=$E(X,7,12),PSSN=$$STRIP($E(X,13))
|
---|
34 | S SSN=$$STRIP($E(X,14,22))
|
---|
35 | S TERMMO=$E(X,23,24),TERMYR=$E(X,25,26)
|
---|
36 | S TERMDATE=""
|
---|
37 | I TERMYR]"",+TERMMO'=0 S TERMDATE=$$YEAR(TERMYR)_TERMMO_"00"
|
---|
38 | S SERVYRS=+$E(X,27,28),HRSPRYR=+$E(X,29,33),HRSCURYR=+$E(X,34,37),HRSTOT=HRSPRYR+HRSCURYR
|
---|
39 | S AWDCODE=$$STRIP($E(X,38,39)) I AWDCODE]"" S AWDCODE=$O(^ABS(503337,"C",AWDCODE,0))
|
---|
40 | S AWDHRS=+$E(X,40,44)
|
---|
41 | S AWDMO=$E(X,45,46),AWDYR=$E(X,47,48)
|
---|
42 | S AWDDATE=""
|
---|
43 | I AWDYR]"",+AWDMO'=0 S AWDDATE=$$YEAR(AWDYR)_AWDMO_"00"
|
---|
44 | S ZIP=$$STRIP($E(X,49,57)) I $L(ZIP)>5 S ZIP=$E(ZIP,1,5)_"-"_$E(ZIP,6,9)
|
---|
45 | D FILE QUIT
|
---|
46 | TYPE02 K X,TRANSNUM,SITE,DATE,SSN,TERMMO,TERMYR,SERVYRS,HRSPRYR,HRSCURYR,AWDCODE,AWDHRS,AWDMO,AWDYR,HRSTOT,ZIP
|
---|
47 | S X=XMRG
|
---|
48 | S TRANSNUM=$P(X,"^",1),SITE=$$STRIP($P(X,"^",2))
|
---|
49 | S DATE=$$FMDATE($P(X,"^",3)),PSSN=$$STRIP($P(X,"^",3))
|
---|
50 | S SSN=$$STRIP($P(X,"^",4))
|
---|
51 | S TERMDATE=$$FMDATE($P(X,"^",5))
|
---|
52 | S SERVYRS=+$P(X,"^",6),HRSPRYR=+$P(X,"^",7),HRSCURYR=+$P(X,"^",8),HRSTOT=HRSPRYR+HRSCURYR
|
---|
53 | S AWDCODE=$$STRIP($P(X,"^",9)) I AWDCODE]"" S AWDCODE=$O(^ABS(503337,"C",AWDCODE,0))
|
---|
54 | S AWDHRS=+$P(X,"^",10)
|
---|
55 | S AWDDATE=$$FMDATE($P(X,"^",11))
|
---|
56 | S ZIP=$$STRIP($P(X,"^",12)) I $L(ZIP)>5 S ZIP=$E(ZIP,1,5)_"-"_$E(ZIP,6,9)
|
---|
57 | D FILE QUIT
|
---|
58 | FILE ;LOOKUP STATION NUMBER FOR INTERNAL NUMBER ON 4 NODE
|
---|
59 | S SITEDA=$O(^ABS(503338,"AD",SITE,0)) I SITEDA="" S MSG="Station number "_SITE_" on record "_$$EXTSSN^ABSVU2(SSN)_" not found in file 503338." D ERR QUIT
|
---|
60 | ;LOOKUP VOLUNTEER
|
---|
61 | S VOLDA=$O(^ABS(503330,"D",SSN,0)) I $S(VOLDA="":1,'$D(^ABS(503330,VOLDA)):1,1:0) S MSG="No volunteer record found with SSN "_$$EXTSSN^ABSVU2(SSN)_"." D ERR QUIT
|
---|
62 | ;CHECK FOR STATION ENTRY
|
---|
63 | I '$D(^ABS(503330,VOLDA,4,SITEDA,0)) S MSG="Volunteer "_$$EXTSSN^ABSVU2(SSN)_" has no record for station "_SITE_".~" D ERR QUIT
|
---|
64 | L +^ABS(503330,VOLDA,4,SITEDA,0):20 ELSE S MSG="Unable to post record for SSN "_$$EXTSSN^ABSVU2(SSN)_" due to record lock.~" D ERR QUIT
|
---|
65 | S $P(^ABS(503330,VOLDA,4,SITEDA,0),"^",3,8)=$$BLANK(SERVYRS)_"^"_$$BLANK(HRSTOT)_"^"_$$BLANK(AWDHRS)_"^"_AWDDATE_"^"_AWDCODE_"^"_TERMDATE,$P(^(0),"^",20,21)=$$BLANK(HRSPRYR)_"^"_$$BLANK(HRSCURYR)
|
---|
66 | S RECCOUNT=RECCOUNT+1
|
---|
67 | L -^ABS(503330,VOLDA,4,SITEDA,0)
|
---|
68 | L +^ABS(503330,VOLDA,0):20 ELSE S MSG="Unable to post record for SSN "_$$EXTSSN^ABSVU2(SSN)_" due to record lock.~" D ERR QUIT
|
---|
69 | I $E(ZIP,1,5)?5N S $P(^ABS(503330,VOLDA,0),"^",6)=ZIP
|
---|
70 | L -^ABS(503330,VOLDA,0)
|
---|
71 | QUIT
|
---|
72 | ;
|
---|
73 | FMDATE(X) ;CONVERT MMDDYYYY OR MMYYYY TO FILEMAN INTERNAL DATE
|
---|
74 | I $L(X)=4 Q (X-1700)_"0000"
|
---|
75 | I $L(X)=6 Q ($E(X,3,6)-1700)_$E(X,1,2)_"00"
|
---|
76 | Q ($E(X,5,8)-1700)_$E(X,1,2)_$E(X,3,4)
|
---|
77 | YEAR(X) ;CONVERT COBOL YEAR TO FM YEAR EG 89 TO 289
|
---|
78 | Q $S($E(X)>3:2_X,1:3_X)
|
---|
79 | STRIP(X) ;STRIP TRAILING BLANKS
|
---|
80 | F Q:$E(X,$L(X))'=" " S X=$E(X,1,($L(X)-1))
|
---|
81 | Q X
|
---|
82 | BLANK(X) ;SET 0 TO BLANKS
|
---|
83 | I +X=0 S X=""
|
---|
84 | Q X
|
---|
85 | ERR ;POST ERROR MESSGE
|
---|
86 | S ERRCOUNT=$G(ERRCOUNT)+1
|
---|
87 | MSG S MSGLINE=$G(MSGLINE)+1
|
---|
88 | S XQSTXT(MSGLINE)=$P(MSG,"~",1)
|
---|
89 | Q:MSG'["~"
|
---|
90 | S XQSTXT(MSGLINE)=" YRS="_+SERVYRS_" TOT HRS="_+(HRSPRYR+HRSCURYR)_" AWD HRS/DATE/CODE="_$$AWD(AWDHRS,AWDDATE,AWDCODE)_" TERM DATE="_$$FULLDAT^ABSVU2(TERMDATE) S MSGLINE=MSGLINE+1
|
---|
91 | QUIT
|
---|
92 | AWD(X,Y,Z) ;
|
---|
93 | S X=$$BLANK(X)
|
---|
94 | I +X=0,Y="",Z="" Q ""
|
---|
95 | I Y="",Z="" Q +X
|
---|
96 | I Y="" S Y=" "
|
---|
97 | Q (+X_"/"_$$FULLDAT^ABSVU2(Y)_"/"_Z)
|
---|