| [613] | 1 | ENLIB3 ;WCIOFO/DH,SAB-Package Utilities (FAP) ;9/2/1998
 | 
|---|
 | 2 |  ;;7.0;ENGINEERING;**25,33,35,37,39,46,57**;Aug 17,1993
 | 
|---|
 | 3 | PO ; Populate appropriate equipment data from IFCAP purchase order.
 | 
|---|
 | 4 |  ; Normally called when PO entered into Equipment File
 | 
|---|
 | 5 |  ; Input Variables
 | 
|---|
 | 6 |  ;   X  => PO# 
 | 
|---|
 | 7 |  ;   DA => Equipment IEN
 | 
|---|
 | 8 |  N BBFY,FCP,FSC,PO,PODATE
 | 
|---|
 | 9 |  S PO("E")=X
 | 
|---|
 | 10 |  ; make sure item has not been reported to FAP
 | 
|---|
 | 11 |  I $D(^ENG(6915.2,"B",DA)),+$$CHKFA^ENFAUTL(DA) Q  ; active FA Document
 | 
|---|
 | 12 |  ; find P.O.
 | 
|---|
 | 13 |  S PO("I")=$$FIND1^DIC(442,"","X",PO("E"),"C^B")
 | 
|---|
 | 14 |  Q:'PO("I")  ; couldn't find IFCAP P.O.
 | 
|---|
 | 15 |  ; update Vendor Pointer when null
 | 
|---|
 | 16 |  I $P($G(^ENG(6914,DA,2)),U)="" D
 | 
|---|
 | 17 |  . S X=$$GET1^DIQ(442,PO("I"),5,"I")
 | 
|---|
 | 18 |  . I X]"" S $P(^ENG(6914,DA,2),U)=X
 | 
|---|
 | 19 |  ; update Acquisition Source when null
 | 
|---|
 | 20 |  I $P($G(^ENG(6914,DA,2)),U,14)="" D
 | 
|---|
 | 21 |  . S X=$$GET1^DIQ(442,PO("I"),8,"I")
 | 
|---|
 | 22 |  . I X]"" S $P(^ENG(6914,DA,2),U,14)=X
 | 
|---|
 | 23 |  ; update Service Pointer when null
 | 
|---|
 | 24 |  I $P($G(^ENG(6914,DA,3)),U,2)="" D
 | 
|---|
 | 25 |  . S X=$$GET1^DIQ(442,PO("I"),5.2,"I")
 | 
|---|
 | 26 |  . I X]"" S $P(^ENG(6914,DA,3),U,2)=X,^ENG(6914,"AC",X,DA)=""
 | 
|---|
 | 27 |  ; update Fund Control Point when null
 | 
|---|
 | 28 |  S FCP=$$GET1^DIQ(442,PO("I"),1)
 | 
|---|
 | 29 |  I $P($G(^ENG(6914,DA,8)),U,3)="" D
 | 
|---|
 | 30 |  . I FCP]"" S $P(^ENG(6914,DA,8),U,3)=FCP
 | 
|---|
 | 31 |  ; update Cost Center when null ***obsolete: now computed from CMR***
 | 
|---|
 | 32 |  ;I $P($G(^ENG(6914,DA,8)),U,4)="" D
 | 
|---|
 | 33 |  ;. S X=$$GET1^DIQ(442,PO("I"),2,"I")
 | 
|---|
 | 34 |  ;. I X]"" S $P(^ENG(6914,DA,8),U,4)=X
 | 
|---|
 | 35 |  ; check availability of data
 | 
|---|
 | 36 |  S FSC=$P($$GET1^DIQ(6914,DA,18),"-")
 | 
|---|
 | 37 |  S PODATE=$$GET1^DIQ(442,PO("I"),.1,"I")
 | 
|---|
 | 38 |  S BBFY=$$GET1^DIQ(442,PO("I"),26,"I")
 | 
|---|
 | 39 |  Q:FCP=""!(PODATE="")!(BBFY="")!(FSC'?4N)  ; can't proceed
 | 
|---|
 | 40 |  ;
 | 
|---|
 | 41 | FAP N AO,BOC,BOCX,BUDFY,DEPT,DOCFY,ENI,ENX,ENY,EQUITY,FUND,FUNDX
 | 
|---|
 | 42 |  N IENS,SGL,STATION
 | 
|---|
 | 43 |  S STATION=$P($$GET1^DIQ(442,PO("I"),.01),"-")
 | 
|---|
 | 44 |  S DOCFY=$E($E(PODATE,1,3)+$E(PODATE,4),2,3) ; 2 digit document FY
 | 
|---|
 | 45 |  S BUDFY=$E(BBFY,1,3)+1700 ; 4 digit beginning budget FY
 | 
|---|
 | 46 |  S DEPT=$E($$GET1^DIQ(6914,DA,19),1,2)
 | 
|---|
 | 47 |  ; determine BOC
 | 
|---|
 | 48 |  ;   loop thru item multiple for item matching FSC
 | 
|---|
 | 49 |  S ENI=0,BOC="",BOCX=""
 | 
|---|
 | 50 |  F  S ENI=$O(^PRC(442,PO("I"),2,ENI)) Q:'ENI  D  Q:BOC]""
 | 
|---|
 | 51 |  . S IENS=ENI_","_PO("I")_","
 | 
|---|
 | 52 |  . Q:$$GET1^DIQ(442.01,IENS,8)'=FSC
 | 
|---|
 | 53 |  . S BOCX=$E($$GET1^DIQ(442.01,IENS,3.5),1,4)
 | 
|---|
 | 54 |  . I BOCX]"" S BOC=$$BOCI(BOCX)
 | 
|---|
 | 55 |  ;   if not found then loop thru BOC multiple for a NX BOC
 | 
|---|
 | 56 |  I BOC="" S ENI=0 F  S ENI=$O(^PRC(442,PO("I"),22,ENI)) Q:'ENI  D  Q:BOC]""
 | 
|---|
 | 57 |  . S IENS=ENI_","_PO("I")_","
 | 
|---|
 | 58 |  . S BOCX=$E($$GET1^DIQ(442.041,IENS,.01),1,4)
 | 
|---|
 | 59 |  . I BOCX]"" S BOC=$$BOCI(BOCX)
 | 
|---|
 | 60 |  ; determine SGL
 | 
|---|
 | 61 |  I $G(BOC)>0 S SGL=$P(^ENG(6914.4,BOC,0),U,3)
 | 
|---|
 | 62 |  E  S SGL=10 ;Expensed NX
 | 
|---|
 | 63 |  ; determine AO and FUND
 | 
|---|
 | 64 |  S X=$$ACC^PRC0C(STATION,FCP_U_DOCFY_U_BUDFY)
 | 
|---|
 | 65 |  I $P(X,U)]"" S AO=$O(^ENG(6914.7,"B",$P(X,U),0))
 | 
|---|
 | 66 |  I $P(X,U,5)]"" S FUND="",FUNDX=$P(X,U,5) D
 | 
|---|
 | 67 |  . ; check for matching Fund table entry
 | 
|---|
 | 68 |  . S FUND=$$FUNDI(FUNDX) Q:FUND]""
 | 
|---|
 | 69 |  . ; then how about a Fund table entry that matches the 1st 5 char
 | 
|---|
 | 70 |  . I $L(FUNDX)>5 S FUND=$$FUNDI($E(FUNDX,1,5)) Q:FUND]""
 | 
|---|
 | 71 |  . ; then how about a Fund table entry that matches the 1st 4 char
 | 
|---|
 | 72 |  . I $L(FUNDX)>4 S FUND=$$FUNDI($E(FUNDX,1,4)) Q:FUND]""
 | 
|---|
 | 73 |  . ; then how about a Fund table entry whose associated fund field
 | 
|---|
 | 74 |  . ;   matches the 1st four char
 | 
|---|
 | 75 |  . I $L(FUNDX)>3 S FUND=$$AFUNDI($E(FUNDX,1,4)) Q:FUND]""
 | 
|---|
 | 76 |  . ; then how about a Fund table entry that starts with the 1st 4 char
 | 
|---|
 | 77 |  . I $L(FUNDX)>3 S ENX=$E(FUNDX,1,4)_" " F  D  Q:ENX=""!(FUND]"")
 | 
|---|
 | 78 |  . . S ENX=$O(^ENG(6914.6,"B",ENX)) ; next fund in table
 | 
|---|
 | 79 |  . . I $E(ENX,1,4)'=$E(FUNDX,1,4) S ENX="" Q  ; can stop looking
 | 
|---|
 | 80 |  . . S FUND=$$FUNDI(ENX)
 | 
|---|
 | 81 |  ;
 | 
|---|
 | 82 |  I $G(FUND)="" D
 | 
|---|
 | 83 |  . I DEPT="06" S FUND=2 Q  ; CANTEEN
 | 
|---|
 | 84 |  . I DEPT=56 S FUND=3 Q  ; CWT
 | 
|---|
 | 85 |  . ;S FUND=1 ; AMAF ; Stopped using AMAF with Patch EN*7*57 (9/98)
 | 
|---|
 | 86 |  ;
 | 
|---|
 | 87 |  ;I $G(AO)="" D  ;Disabled at request of FMS (9/96)
 | 
|---|
 | 88 |  ;. I DEPT>59,DEPT<69 S AO=4 Q
 | 
|---|
 | 89 |  ;. I DEPT=57!(DEPT=58) S AO=5 Q
 | 
|---|
 | 90 |  ;. I DEPT=72 S AO=2 Q
 | 
|---|
 | 91 |  ;. S X=$E(STATION) I X=3 S AO=4 Q
 | 
|---|
 | 92 |  ;. I "8^9"[X S AO=5 Q
 | 
|---|
 | 93 |  ;. I "4^5^6"[X S AO=3
 | 
|---|
 | 94 |  ;
 | 
|---|
 | 95 |  S EQUITY=$S("^5^12^"[(U_$G(FUND)_U):3402,$G(AO)=3:3299,$G(AO)=4:3210,$G(AO)=5:3210,$G(AO)=7:3210,1:"")
 | 
|---|
 | 96 |  ;
 | 
|---|
 | 97 |  S ENY=$G(^ENG(6914,DA,8))
 | 
|---|
 | 98 |  S:$P(ENY,U,6)="" $P(ENY,U,6)=$G(SGL)
 | 
|---|
 | 99 |  S ^ENG(6914,DA,8)=ENY
 | 
|---|
 | 100 |  ;
 | 
|---|
 | 101 |  S ENY=$G(^ENG(6914,DA,9))
 | 
|---|
 | 102 |  S:$P(ENY,U,6)="" $P(ENY,U,6)=$G(BOC)
 | 
|---|
 | 103 |  S:$P(ENY,U,7)="" $P(ENY,U,7)=$G(FUND)
 | 
|---|
 | 104 |  S:$P(ENY,U,8)="" $P(ENY,U,8)=$G(AO)
 | 
|---|
 | 105 |  S:$P(ENY,U,9)="" $P(ENY,U,9)=$G(EQUITY)
 | 
|---|
 | 106 |  S ^ENG(6914,DA,9)=ENY
 | 
|---|
 | 107 |  Q
 | 
|---|
 | 108 |  ;
 | 
|---|
 | 109 | BOCI(ENBOC) ; Returns ien of active BOC or null value
 | 
|---|
 | 110 |  N ENI,ENDT
 | 
|---|
 | 111 |  S ENI=$S(ENBOC]"":$O(^ENG(6914.4,"B",ENBOC,0)),1:"")
 | 
|---|
 | 112 |  ; check if deactivated
 | 
|---|
 | 113 |  I ENI S ENDT=$P($G(^ENG(6914.4,ENI,0)),U,5) I ENDT]"",ENDT'>DT S ENI=""
 | 
|---|
 | 114 |  Q ENI
 | 
|---|
 | 115 |  ;
 | 
|---|
 | 116 | FUNDI(ENFUND) ; Returns ien of active FUND or null value
 | 
|---|
 | 117 |  N ENI,ENDT
 | 
|---|
 | 118 |  S ENI=$S(ENFUND]"":$O(^ENG(6914.6,"B",ENFUND,0)),1:"")
 | 
|---|
 | 119 |  ; check if deactivated
 | 
|---|
 | 120 |  I ENI S ENDT=$P($G(^ENG(6914.6,ENI,0)),U,5) I ENDT]"",ENDT'>DT S ENI=""
 | 
|---|
 | 121 |  Q ENI
 | 
|---|
 | 122 |  ;
 | 
|---|
 | 123 | TYPE N A,ENX I '$D(^ENG(6915.2,"B",DA)) Q
 | 
|---|
 | 124 |  I $D(^ENG(6915.5,"B",DA)) S ENX=$$CHKFA^ENFAUTL(DA) Q:'$P(ENX,U)
 | 
|---|
 | 125 |  S A(1)="This item has been reported to the Fixed Assets Package. TYPE"
 | 
|---|
 | 126 |  S A(2)="cannot be changed until an FD document is processed."
 | 
|---|
 | 127 |  D EN^DDIOL(.A)
 | 
|---|
 | 128 |  K X
 | 
|---|
 | 129 |  Q
 | 
|---|
 | 130 |  ;
 | 
|---|
 | 131 | CAP N A,ENX I '$D(^ENG(6915.2,"B",DA)) Q
 | 
|---|
 | 132 |  I $D(^ENG(6915.5,"B",DA)) S ENX=$$CHKFA^ENFAUTL(DA) Q:'$P(ENX,U)
 | 
|---|
 | 133 |  S A(1)="This item has been reported to the Fixed Assets Package. It cannot"
 | 
|---|
 | 134 |  S A(2)="be expensed until an FD document is processed."
 | 
|---|
 | 135 |  D EN^DDIOL(.A)
 | 
|---|
 | 136 |  K X
 | 
|---|
 | 137 |  Q
 | 
|---|
 | 138 |  ;
 | 
|---|
 | 139 | NX N A,ENX I '$D(^ENG(6915.2,"B",DA)) Q
 | 
|---|
 | 140 |  I $D(^ENG(6915.5,"B",DA)) S ENX=$$CHKFA^ENFAUTL(DA) I '$P(ENX,U) Q
 | 
|---|
 | 141 |  S A(1)="Since this item has been reported to FAP, this field may be edited"
 | 
|---|
 | 142 |  S A(2)="only by means of an FAP document."
 | 
|---|
 | 143 |  D EN^DDIOL(.A)
 | 
|---|
 | 144 |  K X
 | 
|---|
 | 145 |  Q
 | 
|---|
 | 146 |  ;
 | 
|---|
 | 147 | DTCHK(ENFLD) ;Input Transform Check that TURN-IN DATE, REPLACEMENT DATE, and
 | 
|---|
 | 148 |  ; DISPOSITION DATE follow ACQUISITION DATE.
 | 
|---|
 | 149 |  ;     DA => Equipment Entry Number
 | 
|---|
 | 150 |  ;     ENFLD => Field being checked (16, 20.5, or 22)
 | 
|---|
 | 151 |  ;     X => value entered (internal format) - killed if check fails
 | 
|---|
 | 152 |  I X'>$P($G(^ENG(6914,DA,2)),U,4) D  K X ; failed check
 | 
|---|
 | 153 |  . N ENLBL
 | 
|---|
 | 154 |  . S ENLBL=$$GET1^DID(6914,ENFLD,"","LABEL")
 | 
|---|
 | 155 |  . D EN^DDIOL(ENLBL_" must follow ACQUISITION DATE")
 | 
|---|
 | 156 |  Q
 | 
|---|
 | 157 |  ;
 | 
|---|
 | 158 | DISPM ;  Expand DISPOSITION METHOD on DJ screens ENEQ2*
 | 
|---|
 | 159 |  ;    Expects value (1U) in loc var V(V)
 | 
|---|
 | 160 |  ;    Returns expanded value in V(V)
 | 
|---|
 | 161 |  ;    Called by PRE-ACTION field of DJ Screen File
 | 
|---|
 | 162 |  ;
 | 
|---|
 | 163 |  Q:$G(V(V))'?1U  N X
 | 
|---|
 | 164 |  S X=$O(^ENG(6914.8,"B",V(V),0)) I X>0,$D(^ENG(6914.8,X,0)) S V(V)=V(V)_"  "_$E($P(^(0),U,2),1,25)
 | 
|---|
 | 165 |  Q
 | 
|---|
 | 166 |  ;
 | 
|---|
 | 167 | DISPW ;  Prohibit direct edit of DISPOSITION METHOD for capitalized assets
 | 
|---|
 | 168 |  ;
 | 
|---|
 | 169 |  W !,"Capitalized asset. DISP METHOD may be edited only by means of FAP documents."
 | 
|---|
 | 170 |  W !,"Press <RETURN> to continue..." R X:DTIME
 | 
|---|
 | 171 |  Q
 | 
|---|
 | 172 |  ;
 | 
|---|
 | 173 | AFUNDI(ENFUND) ; Returns ien of active FUND or null value
 | 
|---|
 | 174 |  ; input - associated fund
 | 
|---|
 | 175 |  N ENI,ENJ,ENDT
 | 
|---|
 | 176 |  S ENI=""
 | 
|---|
 | 177 |  ; loop thru associated fund x-ref looking for active entry that matches
 | 
|---|
 | 178 |  S ENJ=0
 | 
|---|
 | 179 |  I ENFUND]"" F  S ENJ=$O(^ENG(6914.6,"E",ENFUND,ENJ)) Q:'ENJ!(ENI]"")  D
 | 
|---|
 | 180 |  . ; check if deactivated
 | 
|---|
 | 181 |  . S ENDT=$P($G(^ENG(6914.6,ENJ,0)),U,5) I ENDT]"",ENDT'>DT Q
 | 
|---|
 | 182 |  . S ENI=ENJ ; found active fund entry for associated fund value
 | 
|---|
 | 183 |  Q ENI
 | 
|---|
 | 184 |  ;
 | 
|---|
 | 185 |  ;ENLIB3
 | 
|---|