| 1 | ENPRUTL ;WISC/SAB-PROJECT TRACKING UTILITIES ;1/20/1998
 | 
|---|
| 2 |  ;;7.0;ENGINEERING;**28,49**;Aug 17, 1993
 | 
|---|
| 3 |  Q
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | PRDOM ; Determine Domain for project tracking transmissions
 | 
|---|
| 6 |  S ENDOMAIN=$$GET1^DIQ(6910,1,101)
 | 
|---|
| 7 |  I ENDOMAIN']"" W !,"Domain not found in PROJECT TRACKING ROLLUP DOMAIN (#101) field",!,"of the ENG INIT PARAMETERS (#6910) file. Transmission aborted!",!! R "Press RETURN to Continue",X:DTIME
 | 
|---|
| 8 |  Q
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 | FMS(ENDA) ; FMS # Extrinsic Function
 | 
|---|
| 11 |  ; called from FMS # (# .05) computed field
 | 
|---|
| 12 |  ; Input: DA - ien of construction project
 | 
|---|
| 13 |  ; Returns: computed FMS #
 | 
|---|
| 14 |  N ENFT,ENPR,ENX,ENY
 | 
|---|
| 15 |  S ENX="",ENY=$G(^ENG("PROJ",ENDA,0)),ENPR=$P(ENY,U,6)
 | 
|---|
| 16 |  I "^MA^MI^"[(U_ENPR_U) D
 | 
|---|
| 17 |  . N ENFT,ENPN,ENPC
 | 
|---|
| 18 |  . S ENPN=$P(ENY,U)
 | 
|---|
| 19 |  . S ENFT("I")=$P($G(^ENG("PROJ",ENDA,52)),U,6)
 | 
|---|
| 20 |  . S ENPC("C")=$S(ENFT("I")="VBA":"VB",ENFT("I")="NCS":"CM",1:"")
 | 
|---|
| 21 |  . I ENPC("C")="" D
 | 
|---|
| 22 |  . . S ENPC("I")=$P($G(^ENG("PROJ",ENDA,52)),U)
 | 
|---|
| 23 |  . . S:ENPC("I") ENPC("C")=$P($G(^OFM(7336.8,ENPC("I"),0)),U,9)
 | 
|---|
| 24 |  . I $G(ENPC("C"))'?2U S ENPC("C")="??"
 | 
|---|
| 25 |  .S ENX=$P(ENPN,"-")_"-"_ENPC("C")_$S(ENPR="MA":2,1:3)_"-"_$P(ENPN,"-",2)
 | 
|---|
| 26 |  Q ENX
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 | MSL(ENDA) ; Milestone List Extrinsic Function
 | 
|---|
| 29 |  ; ENDA - ien of construction project
 | 
|---|
| 30 |  ; Returns value with pieces (true/false) which indicate applicability
 | 
|---|
| 31 |  ; of the corresponding 22 milestones
 | 
|---|
| 32 |  N ENAM,ENCM,ENCAF,ENPR,ENX
 | 
|---|
| 33 |  S ENPR=$$GET1^DIQ(6925,ENDA,155,"I") ; program
 | 
|---|
| 34 |  S ENAM=$$GET1^DIQ(6925,ENDA,7) ; design (a/e) method
 | 
|---|
| 35 |  S ENCM=$$GET1^DIQ(6925,ENDA,8) ; construction method
 | 
|---|
| 36 |  S ENCAF=$$GET1^DIQ(6925,ENDA,4) ; approved construction funding
 | 
|---|
| 37 |  D MSLAP
 | 
|---|
| 38 |  Q ENX
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 | MSLAP ; set pieces of ENX for milestone applicability
 | 
|---|
| 41 |  ; also called from ENPRF1
 | 
|---|
| 42 |  ; needs ENAM,ENCM,ENCAF,ENPR returns ENX
 | 
|---|
| 43 |  N ENI
 | 
|---|
| 44 |  S ENX="",$P(ENX,U,22)=""
 | 
|---|
| 45 |  I "^MA^MI^"[(U_ENPR_U) F ENI=1,2 S $P(ENX,U,ENI)=1
 | 
|---|
| 46 |  I "^MA^MI^MM^NR^"[(U_ENPR_U) S $P(ENX,U,3)=1
 | 
|---|
| 47 |  I ENCM'="DESIGN/BUILD",ENAM'="VAMC" F ENI=4,5,6 S $P(ENX,U,ENI)=1
 | 
|---|
| 48 |  I "^MA^"[(U_ENPR_U),ENCM'="DESIGN/BUILD" F ENI=7,8 S $P(ENX,U,ENI)=1
 | 
|---|
| 49 |  I "^MA^MI^MM^"[(U_ENPR_U),ENCM'="DESIGN/BUILD" F ENI=9,10 S $P(ENX,U,ENI)=1
 | 
|---|
| 50 |  I "^MA^MI^MM^NR^SL^"[(U_ENPR_U) D
 | 
|---|
| 51 |  . I ENCM'="DESIGN/BUILD" F ENI=11,12 S $P(ENX,U,ENI)=1
 | 
|---|
| 52 |  . I ENCAF'<500000 F ENI=13,16 S $P(ENX,U,ENI)=1
 | 
|---|
| 53 |  . I ENCAF'<500000 F ENI=14,17 S $P(ENX,U,ENI)=1
 | 
|---|
| 54 |  . I ENCM'="STATION LABOR",ENCM'="P&H" F ENI=15,18,19 S $P(ENX,U,ENI)=1
 | 
|---|
| 55 |  . F ENI=20,21,22 S $P(ENX,U,ENI)=1
 | 
|---|
| 56 |  Q
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 | MSD(ENDA,ENPRIOR) ; Milestone Dates for Project
 | 
|---|
| 59 |  ; Input Variables
 | 
|---|
| 60 |  ;   ENDA - ien of project
 | 
|---|
| 61 |  ;   ENPRIOR - (optional) flag, true if previous values also desired
 | 
|---|
| 62 |  ; Output Variables
 | 
|---|
| 63 |  ;   ENMS("%",milestone #) = % complete ("%0" for previous values)
 | 
|---|
| 64 |  ;   ENMS("P",milestone #) = planned date ("P0" for previous values)
 | 
|---|
| 65 |  ;   ENMS("R",milestone #) = revised date ("R0" for previous values)
 | 
|---|
| 66 |  ;   ENMS("A",milestone #) = actual date ("A0" for previous values)
 | 
|---|
| 67 |  K ENMS S ENPRIOR=$G(ENPRIOR)
 | 
|---|
| 68 |  N ENI,ENP,ENY
 | 
|---|
| 69 |  S ENP=""
 | 
|---|
| 70 |  S ENY=$G(^ENG("PROJ",ENDA,1))
 | 
|---|
| 71 |  S ENMS("%",2)=$P(ENY,U,11)
 | 
|---|
| 72 |  S ENMS("%",8)=$P(ENY,U,6)
 | 
|---|
| 73 |  S ENMS("%",10)=$P(ENY,U,9)
 | 
|---|
| 74 |  S ENMS("%",12)=$P(ENY,U,7)
 | 
|---|
| 75 |  S ENMS("%",21)=$P(ENY,U,8)
 | 
|---|
| 76 |  S ENY=$G(^ENG("PROJ",ENDA,2)) D N2
 | 
|---|
| 77 |  S ENY=$G(^ENG("PROJ",ENDA,3)) D N3
 | 
|---|
| 78 |  S ENY=$G(^ENG("PROJ",ENDA,4)) D N4
 | 
|---|
| 79 |  S ENY=$G(^ENG("PROJ",ENDA,50)) D N50
 | 
|---|
| 80 |  S ENY=$G(^ENG("PROJ",ENDA,51)) D N51
 | 
|---|
| 81 |  S ENY=$G(^ENG("PROJ",ENDA,56)) D N56
 | 
|---|
| 82 |  ; set n/a milestones blank
 | 
|---|
| 83 |  ;S ENY=$$MSL(ENDA) F ENI=1:1:22 I '$P(ENY,U,ENI) D
 | 
|---|
| 84 |  ;. S ENMS("P",ENI)="",ENMS("R",ENI)="",ENMS("A",ENI)=""
 | 
|---|
| 85 |  ;. I $D(ENMS("%",ENI)) S ENMS("%",ENI)=""
 | 
|---|
| 86 |  Q:'ENPRIOR
 | 
|---|
| 87 |  S ENP="0"
 | 
|---|
| 88 |  S ENY=$G(^ENG("PROJ",ENDA,60))
 | 
|---|
| 89 |  S ENMS("%0",2)=$P(ENY,U,21)
 | 
|---|
| 90 |  S ENMS("%0",8)=$P(ENY,U,16)
 | 
|---|
| 91 |  S ENMS("%0",10)=$P(ENY,U,19)
 | 
|---|
| 92 |  S ENMS("%0",12)=$P(ENY,U,17)
 | 
|---|
| 93 |  S ENMS("%0",21)=$P(ENY,U,18)
 | 
|---|
| 94 |  S ENY=$G(^ENG("PROJ",ENDA,61)) D N2
 | 
|---|
| 95 |  S ENY=$G(^ENG("PROJ",ENDA,62)) D N3
 | 
|---|
| 96 |  S ENY=$G(^ENG("PROJ",ENDA,63)) D N4
 | 
|---|
| 97 |  S ENY=$G(^ENG("PROJ",ENDA,66)) D N50
 | 
|---|
| 98 |  S ENY=$G(^ENG("PROJ",ENDA,67)) D N51
 | 
|---|
| 99 |  S ENY=$G(^ENG("PROJ",ENDA,69)) D N56
 | 
|---|
| 100 |  ; set n/a milestones blank
 | 
|---|
| 101 |  ;S ENY=$$MSL(ENDA) F ENI=1:1:22 I '$P(ENY,U,ENI) D
 | 
|---|
| 102 |  ;. S ENMS("P0",ENI)="",ENMS("R0",ENI)="",ENMS("A0",ENI)=""
 | 
|---|
| 103 |  ;. I $D(ENMS("%0",ENI)) S ENMS("%0",ENI)=""
 | 
|---|
| 104 |  Q
 | 
|---|
| 105 | N2 ;
 | 
|---|
| 106 |  F ENI=0:1:1 S ENMS("P"_ENP,7+ENI)=$P(ENY,U,2+ENI)
 | 
|---|
| 107 |  F ENI=0:1:1 S ENMS("P"_ENP,11+ENI)=$P(ENY,U,4+ENI)
 | 
|---|
| 108 |  F ENI=0:1:0 S ENMS("P"_ENP,15+ENI)=$P(ENY,U,6+ENI)
 | 
|---|
| 109 |  F ENI=0:1:3 S ENMS("P"_ENP,18+ENI)=$P(ENY,U,7+ENI)
 | 
|---|
| 110 |  Q
 | 
|---|
| 111 | N3 ;
 | 
|---|
| 112 |  F ENI=0:1:1 S ENMS("R"_ENP,7+ENI)=$P(ENY,U,1+ENI)
 | 
|---|
| 113 |  F ENI=0:1:1 S ENMS("R"_ENP,11+ENI)=$P(ENY,U,3+ENI)
 | 
|---|
| 114 |  F ENI=0:1:0 S ENMS("R"_ENP,15+ENI)=$P(ENY,U,5+ENI)
 | 
|---|
| 115 |  F ENI=0:1:3 S ENMS("R"_ENP,18+ENI)=$P(ENY,U,6+ENI)
 | 
|---|
| 116 |  Q
 | 
|---|
| 117 | N4 ;
 | 
|---|
| 118 |  F ENI=0:1:5 S ENMS("A"_ENP,3+ENI)=$P(ENY,U,1+ENI)
 | 
|---|
| 119 |  F ENI=0:1:1 S ENMS("A"_ENP,11+ENI)=$P(ENY,U,7+ENI)
 | 
|---|
| 120 |  F ENI=0:1:0 S ENMS("A"_ENP,15+ENI)=$P(ENY,U,9+ENI)
 | 
|---|
| 121 |  F ENI=0:1:3 S ENMS("A"_ENP,18+ENI)=$P(ENY,U,10+ENI)
 | 
|---|
| 122 |  F ENI=0:1:1 S ENMS("A"_ENP,9+ENI)=$P(ENY,U,14+ENI)
 | 
|---|
| 123 |  Q
 | 
|---|
| 124 | N50 ;
 | 
|---|
| 125 |  F ENI=0:1:1 S ENMS("P"_ENP,9+ENI)=$P(ENY,U,2+ENI)
 | 
|---|
| 126 |  F ENI=0:1:0 S ENMS("P"_ENP,22+ENI)=$P(ENY,U,4+ENI)
 | 
|---|
| 127 |  F ENI=0:1:2 S ENMS("R"_ENP,1+ENI)=$P(ENY,U,5+ENI)
 | 
|---|
| 128 |  F ENI=0:1:5 S ENMS("P"_ENP,1+ENI)=$P(ENY,U,8+ENI)
 | 
|---|
| 129 |  F ENI=0:1:2 S ENMS("R"_ENP,4+ENI)=$P(ENY,U,14+ENI)
 | 
|---|
| 130 |  F ENI=0:1:1 S ENMS("R"_ENP,9+ENI)=$P(ENY,U,17+ENI)
 | 
|---|
| 131 |  F ENI=0:1:0 S ENMS("R"_ENP,22+ENI)=$P(ENY,U,19+ENI)
 | 
|---|
| 132 |  Q
 | 
|---|
| 133 | N51 ;
 | 
|---|
| 134 |  F ENI=0:1:1 S ENMS("A"_ENP,1+ENI)=$P(ENY,U,1+ENI)
 | 
|---|
| 135 |  F ENI=0:1:0 S ENMS("A"_ENP,22+ENI)=$P(ENY,U,3+ENI)
 | 
|---|
| 136 |  Q
 | 
|---|
| 137 | N56 ;
 | 
|---|
| 138 |  F ENI=0:1:1 S ENMS("P"_ENP,13+ENI)=$P(ENY,U,ENI*3+1)
 | 
|---|
| 139 |  F ENI=0:1:1 S ENMS("P"_ENP,16+ENI)=$P(ENY,U,ENI*3+7)
 | 
|---|
| 140 |  F ENI=0:1:1 S ENMS("R"_ENP,13+ENI)=$P(ENY,U,ENI*3+2)
 | 
|---|
| 141 |  F ENI=0:1:1 S ENMS("R"_ENP,16+ENI)=$P(ENY,U,ENI*3+8)
 | 
|---|
| 142 |  F ENI=0:1:1 S ENMS("A"_ENP,13+ENI)=$P(ENY,U,ENI*3+3)
 | 
|---|
| 143 |  F ENI=0:1:1 S ENMS("A"_ENP,16+ENI)=$P(ENY,U,ENI*3+9)
 | 
|---|
| 144 |  Q
 | 
|---|
| 145 | MS(ENI) ; Milestone Name Extrinsic Function
 | 
|---|
| 146 |  ; Input ENI - index number for milestone (1-22)
 | 
|---|
| 147 |  ; Returns name of milestone
 | 
|---|
| 148 |  N ENX
 | 
|---|
| 149 |  S ENX=""
 | 
|---|
| 150 |  S:ENI ENX=$P($P($T(MSDATA+ENI),";;",2),U)
 | 
|---|
| 151 |  Q ENX
 | 
|---|
| 152 | MSFP(ENI) ; Milestone Planned Field Number Extrinsic Function
 | 
|---|
| 153 |  ; Input ENI - index number for milestone (1-22)
 | 
|---|
| 154 |  ; Returns field number of milestone (planned)
 | 
|---|
| 155 |  N ENX
 | 
|---|
| 156 |  S ENX=""
 | 
|---|
| 157 |  S:ENI ENX=$P($P($T(MSDATA+ENI),";;",2),U,2)
 | 
|---|
| 158 |  Q ENX
 | 
|---|
| 159 |  ;
 | 
|---|
| 160 | MSFR(ENI) ; Milestone Field Number Extrinsic Function
 | 
|---|
| 161 |  ; Input ENI - index number for milestone (1-22)
 | 
|---|
| 162 |  ; Returns field number of milestone (revised)
 | 
|---|
| 163 |  N ENX
 | 
|---|
| 164 |  S ENX=""
 | 
|---|
| 165 |  S:ENI ENX=$P($P($T(MSDATA+ENI),";;",2),U,3)
 | 
|---|
| 166 |  Q ENX
 | 
|---|
| 167 |  ;
 | 
|---|
| 168 | MSFA(ENI) ; Milestone Field Number Extrinsic Function
 | 
|---|
| 169 |  ; Input ENI - index number for milestone (1-22)
 | 
|---|
| 170 |  ; Returns field number of milestone (actual)
 | 
|---|
| 171 |  N ENX
 | 
|---|
| 172 |  S ENX=""
 | 
|---|
| 173 |  S:ENI ENX=$P($P($T(MSDATA+ENI),";;",2),U,4)
 | 
|---|
| 174 |  Q ENX
 | 
|---|
| 175 |  ;
 | 
|---|
| 176 | MSDATA ;;
 | 
|---|
| 177 | 1 ;;Design Program Start^20^34^49
 | 
|---|
| 178 | 2 ;;Design Program Compl^20.1^34.1^49.1
 | 
|---|
| 179 | 3 ;;Authorized^^^50
 | 
|---|
| 180 | 4 ;;Advertise for A/E^20.3^34.3^51
 | 
|---|
| 181 | 5 ;;Select A/E^20.4^34.4^52
 | 
|---|
| 182 | 6 ;;A/E Award^20.5^34.5^53
 | 
|---|
| 183 | 7 ;;Start Schematics^21^35^54
 | 
|---|
| 184 | 8 ;;Complete Schematics^22^36^55
 | 
|---|
| 185 | 9 ;;Start Design Dev.^22.5^36.1^55.5
 | 
|---|
| 186 | 10 ;;Compl. Design Dev.^22.6^36.2^55.6
 | 
|---|
| 187 | 11 ;;Start/Award CD^23^37^56
 | 
|---|
| 188 | 12 ;;Complete CD^24^38^57
 | 
|---|
| 189 | 13 ;;Start L/T Review^24.4^38.4^57.4
 | 
|---|
| 190 | 14 ;;Start Audit Review^24.6^38.6^57.6
 | 
|---|
| 191 | 15 ;;Issue IFB/SBA^25^39^58
 | 
|---|
| 192 | 16 ;;Compl. L/T Review^25.4^39.4^58.4
 | 
|---|
| 193 | 17 ;;Compl. Audit Review^25.6^39.6^58.6
 | 
|---|
| 194 | 18 ;;Bid Open/Negotiation^26^40^59
 | 
|---|
| 195 | 19 ;;Construction Award^27^41^60
 | 
|---|
| 196 | 20 ;;Construction Start^28^42^61
 | 
|---|
| 197 | 21 ;;Const. Complete^29^43^62
 | 
|---|
| 198 | 22 ;;Activation^30^44^63
 | 
|---|
| 199 |  ;ENPRUTL
 | 
|---|