1 | ENEQPMS8 ;(WIRMFO)/DH-Sort PM Worklist by LOCATION ;4.21.97
|
---|
2 | ;;7.0;ENGINEERING;**26,35**;Aug 17, 1993
|
---|
3 | ;
|
---|
4 | ; Programs calling this routine without having defined loc var
|
---|
5 | ; ENSRT("LOC","ALL") should expect it to exist upon return and
|
---|
6 | ; kill it before terminating job.
|
---|
7 | ;
|
---|
8 | ; In processing ranges, values will be treated as numbers if all
|
---|
9 | ; values are numbers, otherwise all values will be treated as strings
|
---|
10 | ;
|
---|
11 | LOC(DA) ; DA => IEN for Equipment File (6914)
|
---|
12 | ; Expects ENSRT array as prepared via routine ENEQPMS1
|
---|
13 | ; Called by ENEQPMS2
|
---|
14 | ;
|
---|
15 | N SPC
|
---|
16 | S SPC=$P($G(^ENG(6914,DA,3)),U,5) I SPC="" S X=-3 Q X
|
---|
17 | I $E(SPC)="*" S X=-2_U_$P(SPC,",") Q X ;Not a pointer
|
---|
18 | I '$D(^ENG("SP",SPC,0)) S X=-2_U_$P(SPC,",") Q X ;Not a pointer either
|
---|
19 | D MAIN
|
---|
20 | Q X
|
---|
21 | ;
|
---|
22 | SPACE(SPC) ; SPC => IEN for Space File (6928)
|
---|
23 | ; Expects ENSRT array as prepared via routine ENWOST
|
---|
24 | ; Called by ENWOP3
|
---|
25 | ;
|
---|
26 | I SPC="" S X=-3 Q X ;Shouldn't happen
|
---|
27 | I $E(SPC)="*" S X=-2_U_SPC Q X ;Not a pointer
|
---|
28 | I '$D(^ENG("SP",SPC,0)) S X=-2_U_$P(SPC,",") Q X ;Still not a pointer
|
---|
29 | D MAIN
|
---|
30 | Q X
|
---|
31 | ;
|
---|
32 | ; X returned
|
---|
33 | ; returned as less than 0 if entry is to be excluded, otherwise
|
---|
34 | ; piece 1 => DIVISION
|
---|
35 | ; piece 2 => BUILDING or WING, as specified
|
---|
36 | ; piece 3 => WING or BUILDING, as specified
|
---|
37 | ; piece 4 => ROOM
|
---|
38 | ;
|
---|
39 | MAIN N A,I,J,D,B,W,R
|
---|
40 | S (D,B,W,R)=0,X=""
|
---|
41 | S:$G(ENSRT("LOC","ALL"))="" ENSRT("LOC","ALL")=1 I ENSRT("LOC","ALL")=1 D
|
---|
42 | . S:'$D(ENSRT("BY")) ENSRT("BY")="DBWR"
|
---|
43 | . F I="DIV","BLDG","WING","ROOM" S:ENSRT("BY")[$E(I) ENSRT(I,"ALL")=""
|
---|
44 | F A="D","B","W","R" D @A Q:@A=-1 I @A'="N/A" S:@A="" @A=0 S:@A'?.N @A=""""_@A_"""" S X=X_@A_","
|
---|
45 | I @A<0 S X=-1 Q
|
---|
46 | S X=$E(X,1,$L(X)-1) ;Strip trailing coma
|
---|
47 | Q ;Design EXIT
|
---|
48 | ;
|
---|
49 | D ; Check DIVISION
|
---|
50 | I ENSRT("BY")'["D" S D="N/A" Q
|
---|
51 | S D=$P(^ENG("SP",SPC,0),U,10)
|
---|
52 | I $D(ENSRT("DIV","ALL")) S:D?.N D=D_" " Q
|
---|
53 | I D="",$D(ENSRT("DIV","AIND","NULL")) Q
|
---|
54 | I D]"",$D(ENSRT("DIV","AIND",D)) S:D?.N D=D_" " Q
|
---|
55 | S J=0 F S J=$O(ENSRT("DIV","FR",J)) Q:'J!($D(D(0))) D
|
---|
56 | . I ENSRT("DIV","FR",J)?.N,ENSRT("DIV","TO",J)?.N,D?.N D Q
|
---|
57 | .. I ENSRT("DIV","FR",J)>D!(D>ENSRT("DIV","TO",J)) Q
|
---|
58 | .. S D(0)="",D=D_" "
|
---|
59 | . S:ENSRT("DIV","FR",J)?.N ENSRT("DIV","FR",J)=ENSRT("DIV","FR",J)_" "
|
---|
60 | . S:ENSRT("DIV","TO",J)?.N ENSRT("DIV","TO",J)=ENSRT("DIV","TO",J)_" "
|
---|
61 | . S:D?.N D=D_" "
|
---|
62 | . I ENSRT("DIV","FR",J)]D!(D]ENSRT("DIV","TO",J)) Q
|
---|
63 | . S D(0)=""
|
---|
64 | I '$D(D(0)) S D=-1
|
---|
65 | Q
|
---|
66 | ;
|
---|
67 | B ; Check BUILDING
|
---|
68 | I ENSRT("BY")'["B" S B="N/A" Q
|
---|
69 | S B=$P(^ENG("SP",SPC,0),U,2)
|
---|
70 | I $D(ENSRT("BLDG","ALL")) S:B?.N B=B_" " Q
|
---|
71 | I B="",$D(ENSRT("BLDG","AIND","NULL")) Q
|
---|
72 | I B]"",$D(ENSRT("BLDG","AIND",B)) S:B?.N B=B_" " Q
|
---|
73 | S J=0 F S J=$O(ENSRT("BLDG","FR",J)) Q:'J!($D(B(0))) D
|
---|
74 | . I ENSRT("BLDG","FR",J)?.N,ENSRT("BLDG","TO",J)?.N,B?.N D Q
|
---|
75 | .. I ENSRT("BLDG","FR",J)>B!(B>ENSRT("BLDG","TO",J)) Q
|
---|
76 | .. S B(0)="",B=B_" "
|
---|
77 | . S:ENSRT("BLDG","FR",J)?.N ENSRT("BLDG","FR",J)=ENSRT("BLDG","FR",J)_" "
|
---|
78 | . S:ENSRT("BLDG","TO",J)?.N ENSRT("BLDG","TO",J)=ENSRT("BLDG","TO",J)_" "
|
---|
79 | . S:B?.N B=B_" "
|
---|
80 | . I ENSRT("BLDG","FR",J)]B!(B]ENSRT("BLDG","TO",J)) Q
|
---|
81 | . S B(0)=""
|
---|
82 | I '$D(B(0)) S B=-1
|
---|
83 | Q
|
---|
84 | ;
|
---|
85 | W ; Check WING
|
---|
86 | I ENSRT("BY")'["W" S W="N/A" Q
|
---|
87 | S W=$P(^ENG("SP",SPC,0),U,3)
|
---|
88 | I $D(ENSRT("WING","ALL")) S:W?.N W=W_" " Q
|
---|
89 | I W="",$D(ENSRT("WING","AIND","NULL")) Q
|
---|
90 | I W]"",$D(ENSRT("WING","AIND",W)) S:W?.N W=W_" " Q
|
---|
91 | S J=0 F S J=$O(ENSRT("WING","FR",J)) Q:'J!($D(W(0))) D
|
---|
92 | . I ENSRT("WING","FR",J)?.N,ENSRT("WING","TO",J)?.N,W?.N D Q
|
---|
93 | .. I ENSRT("WING","FR",J)>W!(W>ENSRT("WING","TO",J)) Q
|
---|
94 | .. S W(0)="",W=W_" "
|
---|
95 | . S:ENSRT("WING","FR",J)?.N ENSRT("WING","FR",J)=ENSRT("WING","FR",J)_" "
|
---|
96 | . S:ENSRT("WING","TO",J)?.N ENSRT("WING","TO",J)=ENSRT("WING","TO",J)_" "
|
---|
97 | . S:W?.N W=W_" "
|
---|
98 | . I ENSRT("WING","FR",J)]W!(W]ENSRT("WING","TO",J)) Q
|
---|
99 | . S W(0)=""
|
---|
100 | I '$D(W(0)) S W=-1
|
---|
101 | Q
|
---|
102 | ;
|
---|
103 | R ; Check ROOM
|
---|
104 | I ENSRT("BY")'["R" S R="N/A" Q
|
---|
105 | S R=$P($P(^ENG("SP",SPC,0),U),"-")
|
---|
106 | I $D(ENSRT("ROOM","ALL")) S:R?.N R=R_" " Q
|
---|
107 | I $D(ENSRT("ROOM","AIND",R)) S:R?.N R=R_" " Q
|
---|
108 | S J=0 F S J=$O(ENSRT("ROOM","FR",J)) Q:'J!($D(R(0))) D
|
---|
109 | . I ENSRT("ROOM","FR",J)?.N,ENSRT("ROOM","TO",J)?.N,R?.N D Q
|
---|
110 | .. I ENSRT("ROOM","FR",J)>R!(R>ENSRT("ROOM","TO",J)) Q
|
---|
111 | .. S R(0)="",R=R_" "
|
---|
112 | . S:ENSRT("ROOM","FR",J)?.N ENSRT("ROOM","FR",J)=ENSRT("ROOM","FR",J)_" "
|
---|
113 | . S:ENSRT("ROOM","TO",J)?.N ENSRT("ROOM","TO",J)=ENSRT("ROOM","TO",J)_" "
|
---|
114 | . S:R?.N R=R_" "
|
---|
115 | . I ENSRT("ROOM","FR",J)]R!(R]ENSRT("ROOM","TO",J)) Q
|
---|
116 | . S R(0)=""
|
---|
117 | I '$D(R(0)) S R=-1
|
---|
118 | Q
|
---|
119 | ;ENEQPMS8
|
---|