[613] | 1 | SCAPU1 ;ALB/REW - TEAM API UTILITIES ; 30 Jun 95
|
---|
| 2 | ;;5.3;Scheduling;**41**;AUG 13, 1993
|
---|
| 3 | ;;1.0
|
---|
| 4 | DTCHK2(SCDATES,ACTDT,INACTDT) ;given scdates array was it active?
|
---|
| 5 | N SCBEGIN,SCEND,SCINCL
|
---|
| 6 | D INIT^SCAPMCU1(1) ;set default array
|
---|
| 7 | Q $$DTCHK(SCBEGIN,SCEND,SCINCL,ACTDT,.INACTDT)
|
---|
| 8 | ;
|
---|
| 9 | DTCHK(BEGINDT,ENDDT,INCL,ACTDT,INACTDT) ; -- given activation/inactivation dates and begin & end dates and include flag was it active?
|
---|
| 10 | ;Parameters:
|
---|
| 11 | ; BEGINDT - begining date
|
---|
| 12 | ; ENDDT - ending date
|
---|
| 13 | ; INCL - 1= must be active for whole period to get a 'yes'/0 o/w
|
---|
| 14 | ; ACTDT - activation date for record
|
---|
| 15 | ; INACTDT - inactivation date for record
|
---|
| 16 | ; returns: 1 = Active
|
---|
| 17 | ; 0 = Inactive
|
---|
| 18 | ; -1 = Error
|
---|
| 19 | ;
|
---|
| 20 | N OK
|
---|
| 21 | S OK=-1
|
---|
| 22 | G DTCHKQ:'$G(BEGINDT)!('$G(ENDDT))!('$G(ACTDT))
|
---|
| 23 | S OK=0
|
---|
| 24 | ; begin is after inactivation
|
---|
| 25 | IF $G(INACTDT),BEGINDT>INACTDT G DTCHKQ
|
---|
| 26 | ; end is before effective date
|
---|
| 27 | IF ENDDT<ACTDT G DTCHKQ
|
---|
| 28 | ; just need 1 day in range
|
---|
| 29 | IF $G(INCL)=0 S OK=1 G DTCHKQ
|
---|
| 30 | ; begin is not before effective date
|
---|
| 31 | IF ACTDT>BEGINDT G DTCHKQ
|
---|
| 32 | ; inactivation exists & isn't after end
|
---|
| 33 | IF $G(INACTDT),INACTDT<ENDDT G DTCHKQ
|
---|
| 34 | S OK=1
|
---|
| 35 | DTCHKQ Q OK
|
---|
| 36 | ;
|
---|
| 37 | ERR(SEQ,ERNUM,PARMS,OUTPUT,SCER) ;-- process errors
|
---|
| 38 | ;if no dialog entry 4040000 will be processed
|
---|
| 39 | S ERNUM=$G(ERNUM,4040000)
|
---|
| 40 | S:'$$GET1^DIQ(.84,$G(ERNUM)_",",.01) ERNUM=4040000
|
---|
| 41 | IF SCER]"" D
|
---|
| 42 | . S SEQ=SEQ+1
|
---|
| 43 | . S SCER(SEQ)=ERNUM
|
---|
| 44 | .D BLD^DIALOG(.ERNUM,.PARMS,.OUTPUT,.SCER)
|
---|
| 45 | Q
|
---|
| 46 | ;
|
---|
| 47 | OKARRAY(ARRAY,CHECK) ; see if input array says 'check' should be used
|
---|
| 48 | ; DOES NOT change any varriables - $$okarray(.xx,.yy) is safe...
|
---|
| 49 | ; if array is null OR undefined it is ok
|
---|
| 50 | ; if @array@(check) is defined it is ok
|
---|
| 51 | ; if @array@('exclude') is defined results switch
|
---|
| 52 | ; RETURNS: 1: Yes use/0: No don't
|
---|
| 53 | Q $S('$L($G(CHECK)):1,'$L($G(ARRAY)):1,(ARRAY'?1A1.7AN):0,1:'(($D(@ARRAY@(CHECK))#2)=($D(@ARRAY@("EXCLUDE"))#2))) ;changed to quit if check is not defined
|
---|
| 54 | ;
|
---|
| 55 | OKUSRCL(USRARRAY,CHECK) ; see if input user class array says 'check' is ok
|
---|
| 56 | N SCOK,SCU
|
---|
| 57 | S SCOK=0
|
---|
| 58 | IF '$L($G(CHECK))!('$L($G(USRARRAY))) S SCOK=1 G QTOKUSR
|
---|
| 59 | IF (USRARRAY'?1A1.7AN)&(USRARRAY'?1"^"1A.E) G QTOKUSR
|
---|
| 60 | S SCU=0
|
---|
| 61 | IF $D(@USRARRAY@("EXCLUDE"))#2 D
|
---|
| 62 | .S SCOK=1
|
---|
| 63 | .F S SCU=$O(@USRARRAY@(SCU)) Q:'SCU S:(CHECK=SCU)!($$SUBCLASS^USRLM(CHECK,SCU)) SCOK=0
|
---|
| 64 | ELSE D
|
---|
| 65 | .S SCOK=0
|
---|
| 66 | .F S SCU=$O(@USRARRAY@(SCU)) Q:'SCU S:(CHECK=SCU)!($$SUBCLASS^USRLM(CHECK,SCU)) SCOK=1
|
---|
| 67 | .
|
---|
| 68 | QTOKUSR Q SCOK
|
---|