source: WorldVistAEHR/trunk/r/ENGINEERING-EN/ENFACTT.m@ 975

Last change on this file since 975 was 613, checked in by George Lilly, 15 years ago

initial load of WorldVistAEHR

File size: 6.7 KB
Line 
1ENFACTT ;(WCIOFO)/SAB-FAP CAPITALIZATION THRESHOLD TASK ;5/29/2002
2 ;;7.0;ENGINEERING;**63,71**;August 17, 1993
3 Q
4 ;
5TASK ; 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 ;
15RESTART 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 ;
98QRPT ; 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 ;
114RPT ; 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 ;
177RPTHD ; 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
184RPTHDS ; summary header
185 W !," Totals before task Expensed by Task"
186 W !," Station Fund SGL Count $ Amount Count $ Amount"
187 W !," ------- ------ ---- ----- -------------- ----- --------------"
188 Q
189 ;
190REPRINT ;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
Note: See TracBrowser for help on using the repository browser.