| 1 | ENFACTT ;(WCIOFO)/SAB-FAP CAPITALIZATION THRESHOLD TASK ;5/29/2002
 | 
|---|
| 2 |  ;;7.0;ENGINEERING;**63,71**;August 17, 1993
 | 
|---|
| 3 |  Q
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | TASK ; One-time task to expense capitalized equipment that does not meet the
 | 
|---|
| 6 |  ; new capitalization threshold
 | 
|---|
| 7 |  ; input ENIO - output device for summary report
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 |  K ^TMP($J,"BAD")
 | 
|---|
| 10 |  K ^XTMP("ENFACTT")
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  S ^XTMP("ENFACTT",0)=$$FMADD^XLFDT(DT,21)_U_DT
 | 
|---|
| 13 |  S ^XTMP("ENFACTT",1)=0
 | 
|---|
| 14 |  ;
 | 
|---|
| 15 | RESTART N ENDA,ENFUND,ENEQ,ENSGL,ENSN,ENVAL,ENT,ENX
 | 
|---|
| 16 |  ;  
 | 
|---|
| 17 |  ; 1. Restore values in ENT array if compile needs to be restarted.
 | 
|---|
| 18 |  ; 2. ^XTMP("ENFACTT","RESTART") is setup manaully.
 | 
|---|
| 19 |  ; 3. ^XTMP("ENFACTT",1) has the next record to be processed.
 | 
|---|
| 20 |  ;
 | 
|---|
| 21 |  I $G(^XTMP("ENFACTT","RESTART"))=1 D
 | 
|---|
| 22 |  . M ENT=^XTMP("ENFACTT",2)
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 |  S ENDA=^XTMP("ENFACTT",1) ;Initial value of zero
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 |  ; loop thru equipment in FA DOCUMENT LOG file
 | 
|---|
| 27 |  F  S ENDA=$O(^ENG(6915.2,"B",ENDA)) Q:'ENDA  D
 | 
|---|
| 28 |  . S ENEQ("DA")=ENDA
 | 
|---|
| 29 |  . ;
 | 
|---|
| 30 |  . S ^XTMP("ENFACTT",1)=ENDA ;Keep track of IEN
 | 
|---|
| 31 |  . ;
 | 
|---|
| 32 |  . Q:+$$CHKFA^ENFAUTL(ENDA)'>0  ; not currently reported to FA
 | 
|---|
| 33 |  . ;
 | 
|---|
| 34 |  . ;Data vaildation - No entry in the Equipment File
 | 
|---|
| 35 |  . I '$D(^ENG(6914,ENDA)) D BAD^ENFACTX("NO ENTRY IN 6914") Q
 | 
|---|
| 36 |  . ;
 | 
|---|
| 37 |  . F I=2,8,9 K ENEQ(I) ;clear array
 | 
|---|
| 38 |  . F I=2,8,9 S ENEQ(I)=$G(^ENG(6914,ENDA,I)) ;Get data from 6914
 | 
|---|
| 39 |  . ;
 | 
|---|
| 40 |  . ;Data vaildation - Check for missing nodes
 | 
|---|
| 41 |  . ;   1. Node 2 has the Total Asset Value
 | 
|---|
| 42 |  . ;   2. Node 8 has the Standard General Ledger
 | 
|---|
| 43 |  . ;   3. Node 9 has Station no. and Fund no. 
 | 
|---|
| 44 |  . ;
 | 
|---|
| 45 |  . ;If missing do not place on report
 | 
|---|
| 46 |  . I ENEQ(2)="" D BAD^ENFACTX("NODE 2 MISSING IN 6914")
 | 
|---|
| 47 |  . I ENEQ(8)="" D BAD^ENFACTX("NODE 8 MISSING IN 6914")
 | 
|---|
| 48 |  . I ENEQ(9)="" D BAD^ENFACTX("NODE 9 MISSING IN 6914")
 | 
|---|
| 49 |  . ;
 | 
|---|
| 50 |  . ;Missing pertinent information do not place on the report
 | 
|---|
| 51 |  . I $D(^TMP($J,"BAD",ENDA)) Q
 | 
|---|
| 52 |  . ;
 | 
|---|
| 53 |  . ;Station Number - If missing do not process
 | 
|---|
| 54 |  . S ENSN=$$GET1^DIQ(6914,ENDA_",",60)_" " S:ENSN=" " ENSN="UNK"
 | 
|---|
| 55 |  . I ENSN="UNK" D BAD^ENFACTX("MISSING STATION NUMBER")
 | 
|---|
| 56 |  . ;
 | 
|---|
| 57 |  . ;Fund - If missing do not process
 | 
|---|
| 58 |  . S ENFUND=$$GET1^DIQ(6914,ENDA_",",62)_" " S:ENFUND=" " ENFUND="UNK"
 | 
|---|
| 59 |  . I ENFUND="UNK" D BAD^ENFACTX("MISSING FUND NUMBER")
 | 
|---|
| 60 |  . ;
 | 
|---|
| 61 |  . ;Standard General Ledger - If missing do not process
 | 
|---|
| 62 |  . S ENSGL=$$GET1^DIQ(6914,ENDA_",",38) S:ENSGL="" ENSGL="UNK"
 | 
|---|
| 63 |  . I ENSGL="UNK" D BAD^ENFACTX("MISSING GENERAL LEDGER NUMBER")
 | 
|---|
| 64 |  . ;
 | 
|---|
| 65 |  . ;Total asset value 
 | 
|---|
| 66 |  . S ENVAL=$$GET1^DIQ(6914,ENDA_",",12) S:ENVAL="" ENVAL="UNK"
 | 
|---|
| 67 |  . I ENVAL="UNK" D BAD^ENFACTX("MISSING TOTAL ASSET VALUE")
 | 
|---|
| 68 |  . ;
 | 
|---|
| 69 |  . ;Missing pertinent information do not place on the report
 | 
|---|
| 70 |  . I $D(^TMP($J,"BAD",ENDA)) Q
 | 
|---|
| 71 |  . ;
 | 
|---|
| 72 |  . ; update capitalized count and amount
 | 
|---|
| 73 |  . S $P(ENT(ENSN,ENFUND,ENSGL),U,1)=$P($G(ENT(ENSN,ENFUND,ENSGL)),U)+1
 | 
|---|
| 74 |  . S $P(ENT(ENSN,ENFUND,ENSGL),U,2)=$P(ENT(ENSN,ENFUND,ENSGL),U,2)+ENVAL
 | 
|---|
| 75 |  . ;
 | 
|---|
| 76 |  . ; quit if item should not be expensed
 | 
|---|
| 77 |  . Q:$$CHKEXP^ENFACTU(ENDA)'>0
 | 
|---|
| 78 |  . ;
 | 
|---|
| 79 |  . ; expense it
 | 
|---|
| 80 |  . S ENX=$$EXP^ENFACTX(ENDA)
 | 
|---|
| 81 |  . ;
 | 
|---|
| 82 |  . ; if not successful then ensure it is on problem list and quit
 | 
|---|
| 83 |  . I 'ENX S:'$D(^TMP($J,"BAD",ENDA)) ^TMP($J,"BAD",ENDA)="" Q
 | 
|---|
| 84 |  . ;
 | 
|---|
| 85 |  . ; was successful so update expensed count and amount
 | 
|---|
| 86 |  . S $P(ENT(ENSN,ENFUND,ENSGL),U,3)=$P(ENT(ENSN,ENFUND,ENSGL),U,3)+1
 | 
|---|
| 87 |  . S $P(ENT(ENSN,ENFUND,ENSGL),U,4)=$P(ENT(ENSN,ENFUND,ENSGL),U,4)+ENVAL
 | 
|---|
| 88 |  . ;
 | 
|---|
| 89 |  . ; Save data from array
 | 
|---|
| 90 |  . S ^XTMP("ENFACTT",2,ENSN,ENFUND,ENSGL)=ENT(ENSN,ENFUND,ENSGL)
 | 
|---|
| 91 |  ;
 | 
|---|
| 92 |  ; save data for report in XTMP in case of problems during print
 | 
|---|
| 93 |  K ^XTMP("ENFACT")
 | 
|---|
| 94 |  S ^XTMP("ENFACT",0)=$$FMADD^XLFDT(DT,21)_U_DT ; purge date is T+21
 | 
|---|
| 95 |  I $D(^TMP($J,"BAD")) M ^XTMP("ENFACT","BAD")=^TMP($J,"BAD")
 | 
|---|
| 96 |  I $D(ENT) M ^XTMP("ENFACT","ENT")=ENT
 | 
|---|
| 97 |  ;
 | 
|---|
| 98 | QRPT ; queue a task to report results on device ENIO
 | 
|---|
| 99 |  ; note: if a site needs to reprint the summary report for some reason
 | 
|---|
| 100 |  ;       then enter the following commands at the programmer prompt
 | 
|---|
| 101 |  ;        >S ENIO=name of an output device (.01 field of DEVICE file)
 | 
|---|
| 102 |  ;        >D QRPT^ENFACTT
 | 
|---|
| 103 |  S ZTRTN="RPT^ENFACTT"
 | 
|---|
| 104 |  S ZTDESC="ENG Results of Capitalization Threshold Task"
 | 
|---|
| 105 |  S ZTDTH=$H,ZTIO=ENIO
 | 
|---|
| 106 |  D ^%ZTLOAD K ZTSK
 | 
|---|
| 107 |  ;
 | 
|---|
| 108 |  ; cleanup
 | 
|---|
| 109 |  K ENIO
 | 
|---|
| 110 |  K ^TMP($J,"BAD")
 | 
|---|
| 111 |  S ZTREQ="@"
 | 
|---|
| 112 |  Q
 | 
|---|
| 113 |  ;
 | 
|---|
| 114 | RPT ; report results
 | 
|---|
| 115 |  ; Input
 | 
|---|
| 116 |  ;   ^XTMP("ENFACT","ENT",station,fund,sgl)
 | 
|---|
| 117 |  ;      = starting capitalized count ^ $ ^ expensed by task count ^ $
 | 
|---|
| 118 |  ;   ^XTMP("ENFACT","BAD",ENDA) = # of problems for an equipment item
 | 
|---|
| 119 |  ;   ^XTMP("ENFACT","BAD",ENDA,seqn #) = description of a problem
 | 
|---|
| 120 |  ;
 | 
|---|
| 121 |  N END,ENCAP,ENDA,ENDT,ENEXP,ENFUND,ENI,ENL,ENPG,ENSGL,ENSN,Y
 | 
|---|
| 122 |  ;
 | 
|---|
| 123 |  U IO
 | 
|---|
| 124 |  S (END,ENPG)=0 D NOW^%DTC S Y=% D DD^%DT S ENDT=Y
 | 
|---|
| 125 |  S ENL="",$P(ENL,"-",IOM)=""
 | 
|---|
| 126 |  D RPTHD
 | 
|---|
| 127 |  ;
 | 
|---|
| 128 |  ; first report problems
 | 
|---|
| 129 |  W !,$S($D(^XTMP("ENFACT","BAD")):"Some",1:"No")
 | 
|---|
| 130 |  W " problems were detected while expensing items.",!
 | 
|---|
| 131 |  S ENDA=0 F  S ENDA=$O(^XTMP("ENFACT","BAD",ENDA)) Q:'ENDA  D
 | 
|---|
| 132 |  . I $Y+6>IOSL D RPTHD
 | 
|---|
| 133 |  . W !,"ERROR : Couldn't create FD Doc. for ENTRY # "_ENDA
 | 
|---|
| 134 |  . W !,"REASON:"
 | 
|---|
| 135 |  . ; List Problems with Equipment/Document if known
 | 
|---|
| 136 |  . S ENI=0 F  S ENI=$O(^XTMP("ENFACT","BAD",ENDA,ENI)) Q:'ENI  D
 | 
|---|
| 137 |  . . I $Y+4>IOSL D RPTHD
 | 
|---|
| 138 |  . . I ENI=1 W " "_$G(^XTMP("ENFACT","BAD",ENDA,ENI)),! Q
 | 
|---|
| 139 |  . . W "        "_$G(^XTMP("ENFACT","BAD",ENDA,ENI)),!
 | 
|---|
| 140 |  ;
 | 
|---|
| 141 |  ; display summary
 | 
|---|
| 142 |  K ENT M ENT=^XTMP("ENFACT","ENT") ; load into local array
 | 
|---|
| 143 |  I $Y+8>IOSL D RPTHD
 | 
|---|
| 144 |  I '$D(ENT) W !,"No capitalized equipment was found."
 | 
|---|
| 145 |  E  W ! D RPTHDS
 | 
|---|
| 146 |  ; loop thru ENT( by station, fund, SGL
 | 
|---|
| 147 |  S ENSN="" F  S ENSN=$O(ENT(ENSN)) Q:ENSN=""  D
 | 
|---|
| 148 |  . S ENFUND="" F  S ENFUND=$O(ENT(ENSN,ENFUND)) Q:ENFUND=""  D
 | 
|---|
| 149 |  . . S ENSGL="" F  S ENSGL=$O(ENT(ENSN,ENFUND,ENSGL)) Q:ENSGL=""  D
 | 
|---|
| 150 |  . . . I $Y+6>IOSL D RPTHD,RPTHDS
 | 
|---|
| 151 |  . . . W !,?3,ENSN,?12,ENFUND,?20,ENSGL
 | 
|---|
| 152 |  . . . S ENX=$G(ENT(ENSN,ENFUND,ENSGL))
 | 
|---|
| 153 |  . . . W ?27,$J($FN($P(ENX,U,1),",",0),5)
 | 
|---|
| 154 |  . . . W ?33,$J($FN($P(ENX,U,2),",",2),14)
 | 
|---|
| 155 |  . . . W ?50,$J($FN($P(ENX,U,3),",",0),5)
 | 
|---|
| 156 |  . . . W ?56,$J($FN($P(ENX,U,4),",",2),14)
 | 
|---|
| 157 |  . . . ; add to subtotals for station
 | 
|---|
| 158 |  . . . S $P(ENT(ENSN),U,1)=$P($G(ENT(ENSN)),U,1)+$P(ENX,U,1)
 | 
|---|
| 159 |  . . . S $P(ENT(ENSN),U,2)=$P(ENT(ENSN),U,2)+$P(ENX,U,2)
 | 
|---|
| 160 |  . . . S $P(ENT(ENSN),U,3)=$P(ENT(ENSN),U,3)+$P(ENX,U,3)
 | 
|---|
| 161 |  . . . S $P(ENT(ENSN),U,4)=$P(ENT(ENSN),U,4)+$P(ENX,U,4)
 | 
|---|
| 162 |  . ; print subtotals for station
 | 
|---|
| 163 |  . W !,?27,"-----",?33,"--------------"
 | 
|---|
| 164 |  . W ?50,"-----",?56,"--------------"
 | 
|---|
| 165 |  . W !,?3,ENSN,"totals"
 | 
|---|
| 166 |  . W ?27,$J($FN($P(ENT(ENSN),U,1),",",0),5)
 | 
|---|
| 167 |  . W ?33,$J($FN($P(ENT(ENSN),U,2),",",2),14)
 | 
|---|
| 168 |  . W ?50,$J($FN($P(ENT(ENSN),U,3),",",0),5)
 | 
|---|
| 169 |  . W ?56,$J($FN($P(ENT(ENSN),U,4),",",2),14),!
 | 
|---|
| 170 |  ;
 | 
|---|
| 171 |  ; wrapup
 | 
|---|
| 172 |  K ENT
 | 
|---|
| 173 |  S ZTREQ="@"
 | 
|---|
| 174 |  D ^%ZISC
 | 
|---|
| 175 |  Q
 | 
|---|
| 176 |  ;
 | 
|---|
| 177 | RPTHD ; page header
 | 
|---|
| 178 |  W @IOF
 | 
|---|
| 179 |  S ENPG=ENPG+1
 | 
|---|
| 180 |  W !,"RESULTS OF ONE-TIME TASK TO EXPENSE EQUIP."
 | 
|---|
| 181 |  W ?48,ENDT,?72,"page ",ENPG
 | 
|---|
| 182 |  W !,ENL
 | 
|---|
| 183 |  Q
 | 
|---|
| 184 | RPTHDS ; summary header
 | 
|---|
| 185 |  W !,"                           Totals before task     Expensed by Task"
 | 
|---|
| 186 |  W !,"   Station  Fund    SGL    Count  $ Amount        Count  $ Amount"
 | 
|---|
| 187 |  W !,"   -------  ------  ----   ----- --------------   ----- --------------"
 | 
|---|
| 188 |  Q
 | 
|---|
| 189 |  ;
 | 
|---|
| 190 | REPRINT ;Call at this tag to reprint (ENG*7*71)
 | 
|---|
| 191 |  ;
 | 
|---|
| 192 |  W !,"PLEASE ENTER A VALID DEVICE TO REPRINT THE REPORT"
 | 
|---|
| 193 |  W !,"           ** Do Not Use P-Message **",!!
 | 
|---|
| 194 |  ;
 | 
|---|
| 195 |  D ^%ZIS
 | 
|---|
| 196 |  I IO=IO(0) D RPT^ENFACTT Q
 | 
|---|
| 197 |  S ENIO=ION D QRPT^ENFACTT
 | 
|---|
| 198 |  ;
 | 
|---|
| 199 |  Q
 | 
|---|
| 200 |  ;
 | 
|---|
| 201 |  ;ENFACTT
 | 
|---|