Changeset 623 for WorldVistAEHR/trunk/r/PAID-PRS/PRSATPE.m
- Timestamp:
- Dec 4, 2009, 12:11:15 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WorldVistAEHR/trunk/r/PAID-PRS/PRSATPE.m
r613 r623 1 PRSATPE ;WOIFO/PLT - Find Exceptions ;12/3/07 2 ;;4.0;PAID;**26,34,69,102,112,116**;Sep 21, 1995;Build 23 3 ;;Per VHA Directive 2004-038, this routine should not be modified. 4 K ER S (ECNT,FATAL)=0,X0=$G(^PRST(458,PPI,"E",DFN,"D",DAY,0)),STAT=$P($G(^(10)),"^",1) 5 N MLTIME S MLTIME=0 6 S TC=$P(X0,"^",2) I 'TC S ER(1)=$P($T(ERTX+1),";;",2),FATAL=1 G EX 7 ; 8 ;ensure Normal Hrs = tour hrs for hourly employees 9 I DAY=14 I '$$HRSMATCH(PPI,DFN) S FATAL=1,ERR=21 D ERR3640 G EX 10 ; 11 I "1 3 4"'[TC,STAT="" S ER(1)=$P($T(ERTX+2),";;",2),FATAL=1 G EX 12 ; 13 ; Validate NAWS 36/40 nurse tours--can't certify if errors 14 N NAWSERR S NAWSERR=0 15 I DAY=7!(DAY=14),$$NAWS3640(DFN,PPI) D 16 . I $$SAT2DAY(DAY/7,DFN,PPI) D 17 .. S FATAL=1 S ERR=16 D ERR3640 S ERR=17 D ERR3640 18 .. S NAWSERR=1 19 . I $$THREE12(DAY/7,DFN,PPI) D 20 .. S FATAL=1 I 'NAWSERR S ERR=16 D ERR3640 21 .. S ERR=$S(DAY=7:19,1:20) D ERR3640 22 I DAY=1,$$NAWS3640(DFN,PPI),$$CARRYOVR(DFN,PPI) D 23 . S FATAL=1 S ERR=16 D ERR3640 S ERR=18 D ERR3640 24 ; 25 S X2=$G(^PRST(458,PPI,"E",DFN,"D",DAY,2)) G:X2="" EX S X1=$G(^(1)),X4=$G(^(4)),K=$P($G(^(10)),U,4) 26 ;check recess entire day having un-unavailable posted for all scheduled on-on call 27 I $E($G(PRSENT),5),K=2,X2["^RS" D 28 . F K=1:3 QUIT:$P(X1,U,K,999)="" S Z=$P(X1,U,K+2) I Z,$P($G(^PRST(457.2,Z,0)),"^",2)="ON",X2'[($P(X1,U,K,K+1)_"^UN") S PRSWOC=$G(PRSWOC)_DAY_"," QUIT 29 . I $G(PRSWOC)'[(DAY_",") F K=1:3 QUIT:$P(X4,U,K,999)="" S Z=$P(X4,U,K+2) I Z,$P($G(^PRST(457.2,Z,0)),"^",2)="ON",X2'[($P(X4,U,K,K+1)_"^UN") S PRSWOC=$G(PRSWOC)_DAY_"," QUIT 30 . QUIT 31 ; 32 K TM I X2["OT"!(X2["CT") D TM 33 K T,TRS F K=1:3 Q:$P(X1,"^",K)="" S Z=$P(X1,"^",K+2) I $S('Z:1,1:$P($G(^PRST(457.2,Z,0)),"^",2)="RG") D 34 .S X=$P(X1,"^",K,K+1) D CNV^PRSATIM S Z1=$P(Y,"^",1),Z2=$P(Y,"^",2) D V0 35 .I Z1'="",$G(T(Z1))="*" K T(Z1) S T(Z2)="*" Q 36 .S T(Z1)="",T(Z2)="*" Q 37 I X4'="" F K=1:3 Q:$P(X4,"^",K)="" S Z=$P(X4,"^",K+2) I $S('Z:1,1:$P($G(^PRST(457.2,Z,0)),"^",2)="RG") D 38 .S X=$P(X4,"^",K,K+1) D CNV^PRSATIM S Z1=$P(Y,"^",1),Z2=$P(Y,"^",2) D V0 39 .I Z1'="",$G(T(Z1))="*" K T(Z1) S T(Z2)="*" Q 40 .S T(Z1)="",T(Z2)="*" Q 41 ; 42 ;find rs-type of time segments of trs array in x2 posted string 43 I X2["^RS" F K=1:4:25 QUIT:$P(X2,U,K,999)="" S X=$P(X2,"^",K,K+1) I "^"'[X,$P(X2,"^",K+2)="RS" D 44 . S TT=$P(X2,"^",K+2) D CNV^PRSATIM S Z1=$P(Y,"^",1),Z2=$P(Y,"^",2) D V1 45 . I Z1'="",$G(TRS(Z1))="*" K TRS(Z1) S TRS(Z2)="*" QUIT 46 . S TRS(Z1)="",TRS(Z2)="*" 47 . QUIT 48 ; Checks for Daily employees 49 I "^"[$P(X2,"^",1,2) S TT=$P(X2,"^",3),K=1,DN=0,Y0="" G L0 50 F K=1:4:25 S X=$P(X2,"^",K,K+1) I "^"'[X D 51 . N Z3,Z4 52 . S TT=$P(X2,"^",K+2) 53 . D CNV^PRSATIM S Y0=Y,Z1=$P(Y,"^",1),Z2=$P(Y,"^",2) D V1 S TIM=Z2-Z1/60 54 . S Z3=Z1,Z4=Z2 55 . I TT="ML" S MLTIME=MLTIME+TIM 56 . S Z1=$O(T(Z1)) S:Z1'="" Z1=T(Z1) 57 . S Z2=$O(T(Z2-1)) S:Z2'="" Z2=T(Z2) 58 . ;trs=1 if absolute outside rs, 2 if absolute inside rs, 3 if overlap (in/outside) rs and inside tour of duty 59 . ;if exception segment start/ending time outside tour of duty, reset z3 and z4 60 . I Z1]""!(Z2]""),X2["^RS" S:Z1=""&(Z2="*") Z3=$O(T(Z3)) S:Z1="*"&(Z2="") Z4=$O(T(Z3)) S Z3=$O(TRS(Z3)) S:Z3]"" Z3=TRS(Z3) S Z4=$O(TRS(Z4-1)) S:Z4]"" Z4=TRS(Z4) S TRS=$S(Z3=""&(Z4=""):1,Z3="*"&(Z4="*"):2,1:3) 61 . I TT="UN" D UN^PRSATPH QUIT 62 . I "CT OT ON SB RG"[TT D OT QUIT 63 . D LV QUIT 64 ; 65 ; Check for a minimum of 1 hour ML 66 ; 67 I TT="ML",MLTIME<1 S ER(1)=$P($T(ERTX+14),";;",2),FATAL=1 G EX 68 ; 69 EX Q 70 V0 I Z2>Z1 S:$O(T(""))'<Z2 Z1=Z1+1440,Z2=Z2+1440 Q 71 S Z2=Z2+1440 Q 72 V1 S DN=0 I Z2>Z1 Q:"CT OT ON SB UN RG"[TT S:$O(T(""))'<Z2 Z1=Z1+1440,Z2=Z2+1440,DN=2 Q 73 S Z2=Z2+1440,DN=1 Q 74 OT ; Check OT/CT Request 75 I Z1'=""!(Z2'="") D O2 I $G(ERR)=6 S FATAL=1 D ERR 76 I DN=1,$O(T(1440))="" D NX^PRSATPH 77 I 'DN,$O(T(""))=""!($P(Y0,"^",1)'>$O(T(""))) D PR^PRSATPH 78 I "ON SB RG"[TT Q 79 ; check status of request(s) 80 S DTI=$P($G(^PRST(458,PPI,1)),U,DAY) Q:'DTI 81 S STAT="" ; init highest status var 82 S DA=0 F S DA=$O(^PRST(458.2,"AD",DFN,DTI,DA)) Q:'DA D Q:STAT="A" 83 . S Z=$G(^PRST(458.2,DA,0)) 84 . Q:$P(Z,"^",5)'=TT ; ignore different type 85 . I $F("RSA",$P(Z,U,8))>$F("RSA",STAT) S STAT=$P(Z,U,8) ; higher status 86 I STAT="" S ERR=3 D ERR Q ; none with requested or higher status 87 I STAT'="A" D Q ; none approved 88 . S ERR=$S(STAT="R":8,1:9) D ERR 89 . ; check posted hours vs requested since no approved request 90 . S TM(TT,"R")=$G(TM(TT,"R"))-TIM I TM(TT,"R")<0 S ERR=7 D ERR 91 ; check posted hours vs approved since we have an approved request 92 S TM(TT,"A")=$G(TM(TT,"A"))-TIM I TM(TT,"A")<0 S ERR=13 D ERR 93 Q 94 O2 ; Check for valid with-in tour or cross-tour situations 95 I TT="ON"&(X2["HX") Q 96 ;I "OT CT"[TT,TIM'>1 Q 97 ;none-leave hours are inside tour hours, but quit if inside rs hours 98 QUIT:$G(TRS)=2!(TT="HW"&(X2["^RS")) S ERR=6 QUIT 99 TM ; Get OT,CT request,approve times 100 S DTI=$P($G(^PRST(458,PPI,1)),"^",DAY),DA=0 Q:'DTI 101 T1 S DA=$O(^PRST(458.2,"AD",DFN,DTI,DA)) I 'DA Q 102 S Z=$G(^PRST(458.2,DA,0)),STAT=$P(Z,"^",8) I STAT'="","XD"[STAT G T1 103 S TT=$P(Z,"^",5) I TT'="OT",TT'="CT" G T1 104 S TM(TT,"R")=$G(TM(TT,"R"))+$P(Z,"^",6) ; requested sum 105 I STAT="A" S TM(TT,"A")=$G(TM(TT,"A"))+$P(Z,"^",6) ; approved sum 106 G T1 107 LV ; Check Leave Request 108 I TC=3!(TC=4) Q 109 I TC=1,TT="HW" Q 110 ;leave hours are (overlap) outside tour hours or (overlap) inside recess hours 111 I ($G(TRS)'=1&(TT="HW")&$G(TRS)) QUIT 112 I Z1'="*"!(Z2'="*")!($G(TRS)'=1&(TT'="RS")&$G(TRS)) S ERR=5,FATAL=1 D ERR 113 ; 114 L0 N REMARK S REMARK=$P(X2,"^",K+3) 115 Q:REMARK&(REMARK'=15&(REMARK'=16)) 116 I "HX"[TT D HENCAP 117 ;no leave request for non-leave hour and rs types 118 QUIT:"RG CP NP HX HW TR TV RS"[TT 119 S DTI=$P($G(^PRST(458,PPI,1)),"^",DAY) Q:'DTI S (DT1,DT2)=DTI 120 I DN D D2 S:DN=2 DT1=DT2 121 S DTIN=9999999-DT2,DA=0 122 F KK=0:0 S KK=$O(^PRST(458.1,"AD",DFN,KK)) G:KK=""!(KK>DTIN) L3 F DA=0:0 S DA=$O(^PRST(458.1,"AD",DFN,KK,DA)) Q:DA="" I ^(DA)'>DT1 D L1 G:LF L4 123 Q 124 L1 S Z=$G(^PRST(458.1,DA,0)),LF=0 Q:$P(Z,"^",7)'=TT S STAT=$P(Z,"^",9) I "XD"[STAT Q 125 G:Y0="" L2 S Z1=$P(Y0,"^",1),Z2=$P(Y0,"^",2) 126 S X=$P(Z,"^",4)_"^"_$P(Z,"^",6) D CNV^PRSATIM 127 I $P(Z,"^",3)=DT1,$P(Y,"^",1)>Z1 Q 128 I $P(Z,"^",5)=DT2,$P(Y,"^",2)<Z2 Q 129 L2 I STAT'="A" S ERR=4 D ERR 130 S LF=1 Q 131 L3 S ERR=3 D ERR Q 132 L4 Q 133 D2 I DAY<14 S DT2=$P($G(^PRST(458,PPI,1)),"^",DAY+1) Q 134 N X1,X2 S X1=DT1,X2=1 D C^%DTC S DT2=X Q 135 ; 136 HENCAP ; Check for Holiday encapsulated by non-pay 137 N DAH,DBH,HOL,QUIT 138 S (DAH,DBH,HOL,QUIT)="" 139 D HENCAP^PRSATP4(PPI,DFN,DAY,.DBH,.HOL,.DAH,.QUIT) 140 Q:QUIT 141 Q:HOL="" 142 S ERR=15 D ERR Q ; Holiday in current PP 143 Q 144 NAWS3640(PRSEMP,PPI) ; return true if NAWS 36/40 Nurse for this PPI 145 N EMPNODE,PAYPLAN,DTYBASIS,NORMHRS,S8 146 S S8=$G(^PRST(458,PPI,"E",PRSEMP,5)) 147 I S8'="",($E(S8,26,27)'=72!("KM"'[$E(S8,28))!($E(S8,29)'=1)) Q 0 148 S EMPNODE=$G(^PRSPC(PRSEMP,0)) 149 S PAYPLAN=$P(EMPNODE,U,21) 150 S DTYBASIS=$P(EMPNODE,U,10) 151 S NORMHRS=$P(EMPNODE,U,16) 152 Q "KM"[PAYPLAN&(DTYBASIS=1)&(NORMHRS=72) 153 SAT2DAY(WK,PRSIEN,PPI) ; 154 N HRS,SUNTRHRS,SAT2DAY,PRSD 155 S SAT2DAY=0 156 S PRSD=$S(WK=1:7,1:14) 157 S SAT2DAY=$P($G(^PRST(458,PPI,"E",PRSIEN,"D",PRSD,0)),"^",2) 158 I SAT2DAY>0 S SAT2DAY=$P($G(^PRST(457.1,SAT2DAY,0)),U,5)="Y" 159 Q SAT2DAY 160 CARRYOVR(PRSIEN,PPI) ; true if hours are coming in from last pp 161 N PRIORSAT,SAT2DAY 162 S SAT2DAY=0 163 S PRIORSAT=$P($G(^PRST(458,PPI-1,"E",PRSIEN,"D",14,0)),U,2) 164 I PRIORSAT>0 S SAT2DAY=$P($G(^PRST(457.1,PRIORSAT,0)),U,5)="Y" 165 Q SAT2DAY 166 THREE12(WK,PRSIEN,PPI) ; 167 N PRSD,TOURDTY,COUNT,ST,EN 168 S COUNT=0 169 S ST=$S(WK=1:1,1:8),EN=$S(WK=1:7,1:14) 170 F PRSD=ST:1:EN D 171 . S TOURDTY=$P($G(^PRST(458,PPI,"E",PRSIEN,"D",PRSD,0)),"^",2) 172 . I $P($G(^PRST(457.1,TOURDTY,0)),U,6)=12 S COUNT=COUNT+1 173 I COUNT'=3 Q 1 174 N HRS 175 D TOURHRS^PRSARC07(.HRS,PPI,PRSIEN) 176 Q:(HRS($S(WK=1:"W1",1:"W2"))'=36) 1 177 Q 0 178 HRSMATCH(PPI,DFN) ; Return true if hourly employee tour hrs '= 8B normal hrs 179 N MATCH,HRS,NH,ENT,ENTPTR 180 I $G(PPI)'>0!($G(DFN)'>0) Q 1 181 S MATCH=1 182 S NH=-1 183 S ENTPTR=$P($G(^PRST(458,PPI,"E",DFN,0)),U,5) 184 I ENTPTR'="" D 185 . S ENT=$P($G(^PRST(457.5,ENTPTR,1)),U) 186 . S NH=$E($G(^PRST(458,PPI,"E",DFN,5)),26,27) 187 . Q:NH="00" 188 . I +NH'>0 S NH=$P($G(^PRSPC(DFN,0)),U,50) 189 I $G(ENT)="" D ^PRSAENT 190 I $G(ENT)'="",$E(ENT)'="D",($E(ENT,1,2)'="0D"),$G(NH)'=112 D 191 . D TOURHRS^PRSARC07(.HRS,PPI,DFN) 192 . I ($G(HRS("W1"))+$G(HRS("W2")))'=+$G(NH) S MATCH=0 193 Q MATCH 194 ; 195 ERR ; Set Error 196 S ECNT=ECNT+1,ER(ECNT)=TT_$P($T(ERTX+ERR),";;",2)_"^"_$P(X2,"^",K) Q 197 ERR3640 ; Set NAWS (36/40) Errors and errors not related to a single segment 198 S ECNT=ECNT+1,ER(ECNT)=$P($T(ERTX+ERR),";;",2) Q 199 ERTX ;; 200 1 ;;No Tour Entered^ 201 2 ;;No Time Posted^ 202 3 ;; not Requested 203 4 ;; Requested but not Approved 204 5 ;; Posted outside of Tour Hours or within Recess Hours 205 6 ;; Posted within Tour Hours or outside of Recess Hours 206 7 ;; Posted exceeds Requested Hours 207 8 ;; Requested but pending Supervisor Approval 208 9 ;; Supervisor Approved but pending Director Approval 209 10 ;; Overlaps with the start of the next day's Tour 210 11 ;; Overlaps with the prior day's Tour 211 12 ;; can only be posted against OT, CT, ON, & SB in Tour 212 13 ;; Posted exceeds Approved Hours 213 14 ;; The minimum charge for Military Leave is one hour 214 15 ;; was encapsulated by non-pay 215 16 ;;36/40 AWS tours require 216 17 ;; -no 2 day tours on Sat 217 18 ;; -no prior pp carryover 218 19 ;; -3 12 hr tours/wk 1 219 20 ;; -3 12 hr tours/wk 2 220 21 ;;Normal/Tour hrs unequal 1 PRSATPE ;HISC/REL-Find Exceptions ;12/08/05 2 ;;4.0;PAID;**26,34,69,102**;Sep 21, 1995 3 K ER S (ECNT,FATAL)=0,X0=$G(^PRST(458,PPI,"E",DFN,"D",DAY,0)),STAT=$P($G(^(10)),"^",1) 4 N MLTIME S MLTIME=0 5 S TC=$P(X0,"^",2) I 'TC S ER(1)=$P($T(ERTX+1),";;",2),FATAL=1 G EX 6 I "1 3 4"'[TC,STAT="" S ER(1)=$P($T(ERTX+2),";;",2),FATAL=1 G EX 7 S X2=$G(^PRST(458,PPI,"E",DFN,"D",DAY,2)) G:X2="" EX S X1=$G(^(1)),X4=$G(^(4)) 8 K TM I X2["OT"!(X2["CT") D TM 9 K T F K=1:3 Q:$P(X1,"^",K)="" S Z=$P(X1,"^",K+2) I $S('Z:1,1:$P($G(^PRST(457.2,Z,0)),"^",2)="RG") D 10 .S X=$P(X1,"^",K,K+1) D CNV^PRSATIM S Z1=$P(Y,"^",1),Z2=$P(Y,"^",2) D V0 11 .I Z1'="",$G(T(Z1))="*" K T(Z1) S T(Z2)="*" Q 12 .S T(Z1)="",T(Z2)="*" Q 13 I X4'="" F K=1:3 Q:$P(X4,"^",K)="" S Z=$P(X4,"^",K+2) I $S('Z:1,1:$P($G(^PRST(457.2,Z,0)),"^",2)="RG") D 14 .S X=$P(X4,"^",K,K+1) D CNV^PRSATIM S Z1=$P(Y,"^",1),Z2=$P(Y,"^",2) D V0 15 .I Z1'="",$G(T(Z1))="*" K T(Z1) S T(Z2)="*" Q 16 .S T(Z1)="",T(Z2)="*" Q 17 ; 18 ; Checks for Daily employees 19 I "^"[$P(X2,"^",1,2) S TT=$P(X2,"^",3),K=1,DN=0,Y0="" G L0 20 F K=1:4:25 S X=$P(X2,"^",K,K+1) I "^"'[X D 21 .S TT=$P(X2,"^",K+2) 22 .D CNV^PRSATIM S Y0=Y,Z1=$P(Y,"^",1),Z2=$P(Y,"^",2) D V1 S TIM=Z2-Z1/60 23 .I TT="ML" S MLTIME=MLTIME+TIM 24 .S Z1=$O(T(Z1)) S:Z1'="" Z1=T(Z1) 25 .S Z2=$O(T(Z2-1)) S:Z2'="" Z2=T(Z2) 26 .I TT="UN" D UN^PRSATPH Q 27 .I "CT OT ON SB RG"[TT D OT Q 28 .D LV Q 29 ; 30 ; Check for a minimum of 1 hour ML 31 ; 32 I TT="ML",MLTIME<1 S ER(1)=$P($T(ERTX+14),";;",2),FATAL=1 G EX 33 ; 34 EX Q 35 V0 I Z2>Z1 S:$O(T(""))'<Z2 Z1=Z1+1440,Z2=Z2+1440 Q 36 S Z2=Z2+1440 Q 37 V1 S DN=0 I Z2>Z1 Q:"CT OT ON SB UN RG"[TT S:$O(T(""))'<Z2 Z1=Z1+1440,Z2=Z2+1440,DN=2 Q 38 S Z2=Z2+1440,DN=1 Q 39 OT ; Check OT/CT Request 40 I Z1'=""!(Z2'="") D O2 I $G(ERR)=6 S FATAL=1 D ERR 41 I DN=1,$O(T(1440))="" D NX^PRSATPH 42 I 'DN,$O(T(""))=""!($P(Y0,"^",1)'>$O(T(""))) D PR^PRSATPH 43 I "ON SB RG"[TT Q 44 ; check status of request(s) 45 S DTI=$P($G(^PRST(458,PPI,1)),U,DAY) Q:'DTI 46 S STAT="" ; init highest status var 47 S DA=0 F S DA=$O(^PRST(458.2,"AD",DFN,DTI,DA)) Q:'DA D Q:STAT="A" 48 . S Z=$G(^PRST(458.2,DA,0)) 49 . Q:$P(Z,"^",5)'=TT ; ignore different type 50 . I $F("RSA",$P(Z,U,8))>$F("RSA",STAT) S STAT=$P(Z,U,8) ; higher status 51 I STAT="" S ERR=3 D ERR Q ; none with requested or higher status 52 I STAT'="A" D Q ; none approved 53 . S ERR=$S(STAT="R":8,1:9) D ERR 54 . ; check posted hours vs requested since no approved request 55 . S TM(TT,"R")=$G(TM(TT,"R"))-TIM I TM(TT,"R")<0 S ERR=7 D ERR 56 ; check posted hours vs approved since we have an approved request 57 S TM(TT,"A")=$G(TM(TT,"A"))-TIM I TM(TT,"A")<0 S ERR=13 D ERR 58 Q 59 O2 ; Check for valid with-in tour or cross-tour situations 60 I TT="ON"&(X2["HX") Q 61 ;I "OT CT"[TT,TIM'>1 Q 62 S ERR=6 Q 63 TM ; Get OT,CT request,approve times 64 S DTI=$P($G(^PRST(458,PPI,1)),"^",DAY),DA=0 Q:'DTI 65 T1 S DA=$O(^PRST(458.2,"AD",DFN,DTI,DA)) I 'DA Q 66 S Z=$G(^PRST(458.2,DA,0)),STAT=$P(Z,"^",8) I STAT'="","XD"[STAT G T1 67 S TT=$P(Z,"^",5) I TT'="OT",TT'="CT" G T1 68 S TM(TT,"R")=$G(TM(TT,"R"))+$P(Z,"^",6) ; requested sum 69 I STAT="A" S TM(TT,"A")=$G(TM(TT,"A"))+$P(Z,"^",6) ; approved sum 70 G T1 71 LV ; Check Leave Request 72 I TC=3!(TC=4) Q 73 I TC=1,TT="HW" Q 74 I Z1'="*"!(Z2'="*") S ERR=5,FATAL=1 D ERR 75 ; 76 L0 N REMARK S REMARK=$P(X2,"^",K+3) 77 Q:REMARK&(REMARK'=15&(REMARK'=16)) 78 I "HX"[TT D HENCAP 79 Q:"RG CP NP HX HW TR TV"[TT 80 S DTI=$P($G(^PRST(458,PPI,1)),"^",DAY) Q:'DTI S (DT1,DT2)=DTI 81 I DN D D2 S:DN=2 DT1=DT2 82 S DTIN=9999999-DT2,DA=0 83 F KK=0:0 S KK=$O(^PRST(458.1,"AD",DFN,KK)) G:KK=""!(KK>DTIN) L3 F DA=0:0 S DA=$O(^PRST(458.1,"AD",DFN,KK,DA)) Q:DA="" I ^(DA)'>DT1 D L1 G:LF L4 84 Q 85 L1 S Z=$G(^PRST(458.1,DA,0)),LF=0 Q:$P(Z,"^",7)'=TT S STAT=$P(Z,"^",9) I "XD"[STAT Q 86 G:Y0="" L2 S Z1=$P(Y0,"^",1),Z2=$P(Y0,"^",2) 87 S X=$P(Z,"^",4)_"^"_$P(Z,"^",6) D CNV^PRSATIM 88 I $P(Z,"^",3)=DT1,$P(Y,"^",1)>Z1 Q 89 I $P(Z,"^",5)=DT2,$P(Y,"^",2)<Z2 Q 90 L2 I STAT'="A" S ERR=4 D ERR 91 S LF=1 Q 92 L3 S ERR=3 D ERR Q 93 L4 Q 94 D2 I DAY<14 S DT2=$P($G(^PRST(458,PPI,1)),"^",DAY+1) Q 95 N X1,X2 S X1=DT1,X2=1 D C^%DTC S DT2=X Q 96 ; 97 HENCAP ; Check for Holiday encapsulated by non-pay 98 N DAH,DBH,HOL,QUIT 99 S (DAH,DBH,HOL,QUIT)="" 100 D HENCAP^PRSATP4(PPI,DFN,DAY,.DBH,.HOL,.DAH,.QUIT) 101 Q:QUIT 102 Q:HOL="" 103 S ERR=15 D ERR Q ; Holiday in current PP 104 Q 105 ; 106 ERR ; Set Error 107 S ECNT=ECNT+1,ER(ECNT)=TT_$P($T(ERTX+ERR),";;",2)_"^"_$P(X2,"^",K) Q 108 ERTX ;; 109 1 ;;No Tour Entered^ 110 2 ;;No Time Posted^ 111 3 ;; not Requested 112 4 ;; Requested but not Approved 113 5 ;; Posted outside of Tour Hours 114 6 ;; Posted within Tour Hours 115 7 ;; Posted exceeds Requested Hours 116 8 ;; Requested but pending Supervisor Approval 117 9 ;; Supervisor Approved but pending Director Approval 118 10 ;; Overlaps with the start of the next day's Tour 119 11 ;; Overlaps with the prior day's Tour 120 12 ;; can only be posted against OT, CT, ON, & SB in Tour 121 13 ;; Posted exceeds Approved Hours 122 14 ;; The minimum charge for Military Leave is one hour 123 15 ;; was encapsulated by non-pay
Note:
See TracChangeset
for help on using the changeset viewer.