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