1 | PRSATD1 ; HISC/REL-Edit/Display Tour of Duty ;8/12/94 10:10
|
---|
2 | ;;4.0;PAID;;Sep 21, 1995
|
---|
3 | EDIT ; Enter/Edit Tour of Duty
|
---|
4 | D HDR K DIC
|
---|
5 | S DIC="^PRST(457.1,",DIC(0)="AEQLMN",DLAYGO=457.1,DIC("A")="Select TOUR OF DUTY: ",DIC("S")="I +Y>9" D ^DIC K DIC G:Y'>0 EX S TDI=+Y
|
---|
6 | S ZN=$G(^PRST(457.1,+Y,1)),DA=+Y,DDSFILE=457.1,DR="[PRSA TD EDIT]" K ZS D ^DDS K DS
|
---|
7 | I $D(ZS) S ^PRST(457.1,DA,1)=ZS,TIM=TIM-$P(^(0),"^",3)/60,$P(^(0),"^",6)=$S(TIM>0:TIM,1:0)
|
---|
8 | I '$D(^PRST(457.1,DA,1)) S DIK="^PRST(457.1," D ^DIK G EX
|
---|
9 | I '$P(^PRST(457.1,DA,0),"^",4) S DDSFILE=457.1,DR="[PRSA TD TL]" D ^DDS K DS
|
---|
10 | G EDIT
|
---|
11 | NAM ; Verify Tour Name format
|
---|
12 | S %=X,X=$P(%,"-",1) D ^PRSATIM Q:'$D(X) S $P(%,"-",1)=X
|
---|
13 | S X=$P(%,"-",2),X=$P(X," ",1) D ^PRSATIM Q:'$D(X)
|
---|
14 | S X=$P(%,"-",1)_"-"_X I $P(%," ",2,99)'="" S X=X_" "_$P(%," ",2,99)
|
---|
15 | K % Q
|
---|
16 | VAL ; Shuffle segments
|
---|
17 | K T,ZS S TIM=0,TWO=$$GET^DDSVAL(DIE,DA,5),DY2=TWO="Y",MEAL=$$GET^DDSVAL(DIE,DA,2)/60
|
---|
18 | F K=1:3:19 S X=$P(ZN,"^",K) I X'="" S X=X_"^"_$P(ZN,"^",K+1) G:$P(ZN,"^",K+1)="" E7 D CNV^PRSATIM S Z1=$P(Y,"^",1),Z2=$P(Y,"^",2) D V0 G E3:$D(T(Z1)),E4:TWO'="Y"&(Z2>1440),E5:Z2>2880 S T(Z1)=Z2_"^"_$P(ZN,"^",K,K+2) D V1
|
---|
19 | S Z1="" F S Z1=$O(T(Z1)) Q:Z1="" G:Z1'<T(Z1) E1 S Y=$O(T(Z1)) I Y,T(Z1)>Y G E2
|
---|
20 | S Z1="",K=1 F S Z1=$O(T(Z1)) Q:Z1="" S $P(ZS,"^",K)=$P(T(Z1),"^",2),$P(ZS,"^",K+1)=$P(T(Z1),"^",3) S:$P(T(Z1),"^",4)'="" $P(ZS,"^",K+2)=$P(T(Z1),"^",4) S K=K+3
|
---|
21 | G:'$D(ZS) E6 G:MEAL>TIM E8 Q
|
---|
22 | V0 I Z2>Z1 S:DY2=1&($O(T(0))>Z1) DY2=2 I DY2=2 S Z1=Z1+1440,Z2=Z2+1440
|
---|
23 | S:Z2'>Z1 Z2=Z2+1440,DY2=2 Q
|
---|
24 | V1 I $P(ZN,"^",K+2),"RG"'[$P($G(^PRST(457.2,+$P(ZN,"^",K+2),0)),"^",2) Q
|
---|
25 | S TIM=TIM+Z2-Z1 Q
|
---|
26 | E1 S STR="A start time is not less than a stop time." G E10
|
---|
27 | E2 S STR="End of one segment must not be greater than start of next." G E10
|
---|
28 | E3 S STR="Duplicate start times encountered." G E10
|
---|
29 | E4 S STR="Segment of second day encountered; no two-day tour specified." G E10
|
---|
30 | E5 S STR="Segment of third day encountered." G E10
|
---|
31 | E6 S STR="At least one time segment must be defined." G E10
|
---|
32 | E7 S STR="Stop Time not entered for a segment." G E10
|
---|
33 | E8 S STR="Meal period cannot exceed duty hours." G E10
|
---|
34 | E10 K ZS S DDSERROR=1,TIM=0 D HLP^DDSUTL(.STR) Q
|
---|
35 | DISP ; Display Tour of Duty
|
---|
36 | D HDR K DIC
|
---|
37 | S DIC="^PRST(457.1,",DIC(0)="AEQMN",DIC("A")="Select TOUR OF DUTY: " D ^DIC K DIC G:Y'>0 EX
|
---|
38 | S DA=+Y,DDSFILE=457.1,DR="[PRSA TD DISP]" D ^DDS K DS G DISP
|
---|
39 | HDR ; Header
|
---|
40 | W:$E(IOST,1,2)="C-" @IOF W !?26,"VA TIME & ATTENDANCE SYSTEM",!!?33,"TOUR OF DUTY",!!! Q
|
---|
41 | EX G KILL^XUSCLEAN
|
---|