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