1 | ABSVTC ;VAMC ALTOONA/CTB_CLH - ALTOONA CREATE TIME CARD ;3/8/00 4:21 PM
|
---|
2 | V ;;4.0;VOLUNTARY TIMEKEEPING;**6,10,18**;JULY 6, 1994
|
---|
3 | K ^TMP("ABSV",$J),N,REC,TCREC,X
|
---|
4 | S ABSVXA="This program should ONLY be run during the first six (6) workdays of each month."
|
---|
5 | S ABSVXA(1)="ARE YOU SURE YOU WANT TO CONTINUE",%=2 D ^ABSVYN Q:%'=1
|
---|
6 | W !!
|
---|
7 | D ^ABSVSITE G OUT:'%
|
---|
8 | W !!
|
---|
9 | S %DT="AE",%DT("A")="Select Processing Month: " D ^%DT G OUT:Y<0
|
---|
10 | S DATE=$E(Y,1,5)_"00" I $D(^ABS(503331,"AF",DATE))<9 W !,"No daily records have been entered for this month.",*7 Q
|
---|
11 | I $D(^ABS(503335,"AK",DATE)) D I %'=1 S X="< No Action Taken>*" D MSG^ABSVQ G OUT
|
---|
12 | . S N=0,COUNT=0 F I=1:1 S N=$O(^ABS(503335,"AK",DATE,N)) Q:'N I $D(^ABS(503335,N,0)),$P(^(0),"^",12)=ABSV("SITE") S COUNT=COUNT+1
|
---|
13 | . I 'COUNT S %=1 Q
|
---|
14 | . S ABSVXA=COUNT_" Time Card"_$S((I-1)>0:"s",1:"")_" already exist"_$S((I-1)>0:"",1:"s")_" for station "_ABSV("SITE")_" for "_$$FULLDAT^ABSVU2(DATE)_"."
|
---|
15 | . S ABSVXA(1)="Continuing will DELETE all these cards from the system.",ABSVXA(1.5)=" "
|
---|
16 | . S ABSVXA(2)="ARE YOU SURE YOU WANT TO CONTINUE",ABSVXB="",%=2 D ^ABSVYN
|
---|
17 | . QUIT:%'=1
|
---|
18 | . S ABSVXA="ARE YOU ABSOLUTELY POSITIVE",ABSVXB="",%=2 W !,*7 D ^ABSVYN
|
---|
19 | . I %=1 W !!,"OK, Here we go.",!,*7
|
---|
20 | . QUIT
|
---|
21 | S ZTDESC="Roll up Voluntary time card data",ZTRTN="QUE^ABSVTC",ZTSAVE("DATE")="",ZTSAVE("ABSV*")="" D ^ABSVQ
|
---|
22 | OUT K %,%DT,ABSVXW,ABSVXX,ABSVX1,ABSVXY1,COMB,COUNT,DATE,DAY,DCC,DIJ,DIOP,DIPT,DLAYGO,F,FLDS,HRS,I,L,N,NAME,O,ORG,R1,REC,W,X,Y,VOLDA,Z,ZX
|
---|
23 | Q
|
---|
24 | QUE ;
|
---|
25 | ;THE FOLLOWING LINE DELETES ALL TIME CARDS FOR THE MONTH
|
---|
26 | I $D(^ABS(503335,"AK",DATE)) D
|
---|
27 | . I '$D(ZTQUEUED)&(IO=IO(0)) S X="**while I clean up the time card file" D WAIT^ABSVYN
|
---|
28 | . S DA=0 F S DA=$O(^ABS(503335,"AK",DATE,DA)) Q:'DA I $D(^ABS(503335,DA,0)),$P(^(0),"^",12)=ABSV("SITE") S DIK="^ABS(503335," D ^DIK W "."
|
---|
29 | . QUIT
|
---|
30 | ;
|
---|
31 | ;THE FOLLOWING CODE ROLLS UP ALL THE TIME FOR EACH VOLUNTEER AND STORES IN IT ^TMP("ABSV",$J,VOLUNTEER DA NUMBER)
|
---|
32 | I '$D(ZTQUEUED)&(IO=IO(0)) S X="**while I roll up the times for each volunteer" D WAIT^ABSVYN
|
---|
33 | K ^TMP("ABSV",$J)
|
---|
34 | S N=0 F S N=$O(^ABS(503331,"AF",DATE,N)) Q:'N I $D(^ABS(503331,N,0)) S REC=^(0) I $P(REC,"^",2)=DATE,$P(REC,"^",7)=ABSV("SITE") D
|
---|
35 | . S NAME=$P(REC,"^"),HRS=$P(REC,"^",5),COMB=$P(REC,"^",6),DAY=+$E($P(REC,"^",3),6,7)
|
---|
36 | . S:'$D(^TMP("ABSV",$J,NAME,COMB)) $P(^(COMB),"^",32)="" S:'$D(^TMP("ABSV",$J,NAME,COMB,0)) ^(0)=$P(REC,"^",4)_"^"_$P(REC,"^",8)
|
---|
37 | . I +HRS'=0 S:HRS>9 HRS=9 S $P(^(COMB),"^",DAY)=$P(^TMP("ABSV",$J,NAME,COMB),"^",DAY)+HRS,$P(^(COMB),"^",32)=$P(^(COMB),"^",32)+HRS
|
---|
38 | . QUIT
|
---|
39 | ;
|
---|
40 | S VOLDA=0 F S VOLDA=$O(^TMP("ABSV",$J,VOLDA)) Q:'VOLDA W "." D
|
---|
41 | . S COMB=0 F S COMB=$O(^TMP("ABSV",$J,VOLDA,COMB)) Q:COMB="" W "." D
|
---|
42 | . . Q:'$D(^ABS(503330,+$G(VOLDA),0))
|
---|
43 | . . S X=VOLDA,DLAYGO=503335,DIC="^ABS(503335,",DIC(0)="LMNZ"
|
---|
44 | . . K DO D FILE^DICN K DIC,DLAYGO
|
---|
45 | . . I +Y<0 W "*Problem with "_$P(^ABS(503330,VOLDA,0),"^")_", Combination "_COMB_". Time Card was not created. *" QUIT
|
---|
46 | . . S DA=+Y,ORG=$G(^TMP("ABSV",$J,VOLDA,COMB,0)),DR="1////"_COMB_";2////0;4////"_DATE_";1.9////1;1.1////"_$P(ORG,"^")_";1.2////"_$P(ORG,"^",2)_";3////"_ABSV("SITE")_";4.5////1"
|
---|
47 | . . S DIE="^ABS(503335," D ^DIE
|
---|
48 | . . S ^ABS(503335,DA,1)=^TMP("ABSV",$J,VOLDA,COMB)
|
---|
49 | . . QUIT
|
---|
50 | . QUIT
|
---|
51 | ;;PRINT TIME CARD
|
---|
52 | S IOP=ABIOP
|
---|
53 | X S DIC="^ABS(503335,",L=0,(TO,FR)=DATE,DIS(0)="I $P($G(^ABS(503335,D0,0)),U,12)=ABSV(""SITE"")",BY="[ABSV TC SORT]",FLDS="[ABSV TC PRINT]" D EN1^DIP
|
---|
54 | S IOP=ABIOP
|
---|
55 | S DIC="^ABS(503335,",L=0,(TO,FR)=DATE,DIS(0)="I $P($G(^ABS(503335,D0,0)),U,12)=ABSV(""SITE""),$$COUNT^ABSVTC($G(^ABS(503335,D0,1)))>26",BY="[ABSV TC SORT]",FLDS="[ABSV TC PRINT]",DHD="TIMECARDS HAVING MORE THAN 26 ENTRIES" D EN1^DIP
|
---|
56 | S IOP=ABIOP
|
---|
57 | S DIC="^ABS(503335,",L=0,(TO,FR)=DATE,DIS(0)="I $P($G(^ABS(503335,D0,0)),U,12)=ABSV(""SITE""),'$$COMB^ABSVTC(D0)",BY="[ABSV TC SORT]",FLDS="[ABSV ERROR LIST]",DHD="TIMECARDS WITH COMBINATIONS NOT FOUND IN MASTER FILE" D EN1^DIP
|
---|
58 | K ^TMP("ABSV",$J),%W,%X,B,DP,DR
|
---|
59 | QUIT
|
---|
60 | COUNT(X) ;DOES RECORD HAVE MORE THAN 26 ENTRIES
|
---|
61 | N COUNT,I
|
---|
62 | S COUNT=0
|
---|
63 | F I=1:1:31 I $P(X,"^",I)>0 S COUNT=COUNT+1
|
---|
64 | Q COUNT
|
---|
65 | COMB(D0) ;DETERMINES IF COMBINATION STILL EXISTS IN MASTER FILE
|
---|
66 | ;VERIFIES THAT 135AQ is not used in combination
|
---|
67 | N N,DA,OK,X,XCOMB,XSITE,SITE,COMB
|
---|
68 | S OK=0,X=$G(^ABS(503335,D0,0)),DA=+X,COMB=$P(X,"^",2),SITE=$P(X,"^",12)
|
---|
69 | S N=0 F S N=$O(^ABS(503330,DA,1,N)) Q:'N S X=$G(^ABS(503330,DA,1,N,0)) Q:X="" D Q:OK
|
---|
70 | . S XCOMB=$P(X,"^",5),XSITE=$P(X,"-")
|
---|
71 | . I (XCOMB=COMB),XSITE=SITE S OK=1
|
---|
72 | . QUIT
|
---|
73 | Q OK
|
---|
74 | VISIT(D0) ;
|
---|
75 | N Z,I,X S Z=$G(^ABS(503335,D0,1)) S X=0 F I=1:1:31 I $P(Z,"^",I)]"" S X=X+1
|
---|
76 | Q X
|
---|