| [613] | 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
 | 
|---|