| 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
 | 
|---|