1 | ENFACTU ;(WCIOFO)/SAB-FAP CAPITALIZATION THRESHOLD UTILITIES ;5/22/2002
|
---|
2 | ;;7.0;ENGINEERING;**63,71**;August 17, 1993
|
---|
3 | TOPSYS(ENDA) ; Topmost System
|
---|
4 | ; input ENDA - equipment entry #
|
---|
5 | ; returns
|
---|
6 | ; entry # of topmost equipment in system of which ENDA is a part
|
---|
7 | ; OR 0 if ENDA is not part of a system (parent or component)
|
---|
8 | ; OR ?^message if error detected
|
---|
9 | ;
|
---|
10 | N ENDAC,ENDAP,ENPL,ENRET
|
---|
11 | S ENRET=""
|
---|
12 | ;
|
---|
13 | ; start with ENDA as component and determine top-most item in system
|
---|
14 | S ENPL=U ; init list of parents (used for detection of endless loop)
|
---|
15 | S ENDAC=ENDA ; start with ENDA as a component
|
---|
16 | ; traverse parent chain
|
---|
17 | F S ENDAP=$P($G(^ENG(6914,ENDAC,0)),U,3) Q:ENDAP=""!(ENPL[(U_ENDAP_U)) S ENDAC=ENDAP,ENPL=ENPL_ENDAP_U
|
---|
18 | I ENDAP]"" S ENRET="?^ENDLESS LOOP DETECTED"
|
---|
19 | ;
|
---|
20 | ; use topmost parent if found
|
---|
21 | I ENRET="",ENDAC'=ENDA S ENRET=ENDAC
|
---|
22 | ; if not component then is item a parent?
|
---|
23 | I ENRET="",$O(^ENG(6914,"AE",ENDA,""))]"" S ENRET=ENDA
|
---|
24 | ; must not be part of system
|
---|
25 | I ENRET="" S ENRET=0
|
---|
26 | ;
|
---|
27 | Q ENRET
|
---|
28 | ;
|
---|
29 | SYSVAL(ENDAT,ENSW) ; System Value
|
---|
30 | ; input ENDAT - entry # parent for system
|
---|
31 | ; ENSW - optional switch
|
---|
32 | ; contains "C" if only capitalized values should be
|
---|
33 | ; included in return value
|
---|
34 | ; returns sum of asset values for parent and all it's components
|
---|
35 | ;
|
---|
36 | N ENDA,ENMD,ENNODE,ENSUM,ENDA
|
---|
37 | S ENSW=$G(ENSW)
|
---|
38 | S ENSUM=0
|
---|
39 | ;
|
---|
40 | ; build list of all items in the system
|
---|
41 | K ^TMP("ENSYS",$J)
|
---|
42 | S ENMD=1
|
---|
43 | D GETC^ENEQRP6(ENDAT,"","^TMP(""ENSYS"",$J,")
|
---|
44 | ;
|
---|
45 | ; loop thru all equipment on system list and sum asset values
|
---|
46 | S ENNODE="^TMP(""ENSYS"",$J,"""")"
|
---|
47 | F S ENNODE=$Q(@ENNODE) Q:$QS(ENNODE,1)_$QS(ENNODE,2)'=("ENSYS"_$J) D
|
---|
48 | . S ENDA=$QS(ENNODE,$QL(ENNODE))
|
---|
49 | . I ENSW["C",$$CHKFA^ENFAUTL(ENDA)'>0 Q ; if only capitalized $
|
---|
50 | . S ENSUM=ENSUM+$P($G(^ENG(6914,ENDA,2)),U,3)
|
---|
51 | ;
|
---|
52 | K ^TMP("ENSYS",$J)
|
---|
53 | Q ENSUM
|
---|
54 | ;
|
---|
55 | CHKEXP(ENDA) ; Check if capitalized equipment item should be expensed
|
---|
56 | ; input ENDA - equipment Entry # if check
|
---|
57 | ; returns
|
---|
58 | ; 1 (true) if it should be expensed
|
---|
59 | ; 0^reason if it should not be expensed due to system criteria
|
---|
60 | ; U^username if it should not be expensed due to user edit
|
---|
61 | ;
|
---|
62 | N ENSYS,ENUSER
|
---|
63 | ; must be reported to Fixed Assets/FMS to be an issue
|
---|
64 | I $$CHKFA^ENFAUTL(ENDA)'>0 Q "0^NOT CURRENTLY REPORTED TO FAP"
|
---|
65 | ;
|
---|
66 | ; does item meet any of the system criteria to remain capitalized?
|
---|
67 | I $$GET1^DIQ(6914,ENDA,38)="1524" Q "0^SGL 1524 (EXCESS)"
|
---|
68 | I $$GET1^DIQ(6914,ENDA,62)="4539" Q "0^FUND 4539 (FRANCHISE)"
|
---|
69 | I $$GET1^DIQ(6914,ENDA,12)>99999.99 Q "0^ASSET VALUE > 99999.99"
|
---|
70 | S ENSYS=$$TOPSYS(ENDA) ; if part of system then check system value
|
---|
71 | I ENSYS,$$SYSVAL(ENSYS,"C")>99999.99 Q "0^SYSTEM VALUE > 99999.99"
|
---|
72 | ;
|
---|
73 | ; did user specify that item should remain capitalized
|
---|
74 | S ENUSER=$$GET1^DIQ(6914,ENDA,99,"E")
|
---|
75 | I ENUSER]"" Q "U^"_ENUSER
|
---|
76 | ;
|
---|
77 | ; item did not meet any of criteria to remain capitalized
|
---|
78 | Q 1
|
---|
79 | ;
|
---|
80 | ;ENFACTU
|
---|