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