1 | RMPR5HQ6 ;HCIOFO/ODJ - USAGE CALCULATION, LOCAL REPORT ; 20 SEP 00
|
---|
2 | ;;3.0;PROSTHETICS;**51**;Feb 09, 1996
|
---|
3 | Q
|
---|
4 | ;
|
---|
5 | ;Vars. required...
|
---|
6 | ;RMPRSDT
|
---|
7 | ;RMPREDT
|
---|
8 | CALC N KEYS,EOF,CHNG,OLD,GTOT,LTOT,HTOT,ITOT,INVREC
|
---|
9 | N X1,X2,DAYS,I,DAYAV,X,QOHU,QOHN
|
---|
10 | D INIT(.KEYS,.EOF,.CHNG) I EOF G CALCX
|
---|
11 | S X2=RMPRSDT,X1=RMPREDT D ^%DTC S DAYS=X+1
|
---|
12 | F Q:EOF D
|
---|
13 | . S:CHNG("STATION") OLD("STATION")=KEYS("STATION")
|
---|
14 | . S:CHNG("NPPD_GROUP") OLD("NPPD_GROUP")=KEYS("NPPD_GROUP"),GTOT=""
|
---|
15 | . S:CHNG("NPPD_LINE") OLD("NPPD_LINE")=KEYS("NPPD_LINE"),LTOT=""
|
---|
16 | . S:CHNG("HCPC_CODE") OLD("HCPC")=KEYS("HCPC"),HTOT=""
|
---|
17 | . I CHNG("HCPC_ITEM") D
|
---|
18 | .. S OLD("HCPC_ITEM")=KEYS("HCPC_ITEM")
|
---|
19 | .. D RDITEM(.KEYS,.ITOT) ;get current quantity on hand and value
|
---|
20 | .. S QOHU=+$P(ITOT,"^",8),QOHN=+$P(ITOT,"^",9)
|
---|
21 | .. Q
|
---|
22 | . D RDINV(.KEYS,.INVREC) ;read inventory
|
---|
23 | . I INVREC("SOURCE")="C" D
|
---|
24 | .. S $P(ITOT,"^",2)=$P(ITOT,"^",2)+INVREC("QTY") ;commercial issue
|
---|
25 | .. S $P(ITOT,"^",5)=$P(ITOT,"^",5)+INVREC("ISSUE COST")
|
---|
26 | .. Q
|
---|
27 | . E D
|
---|
28 | .. S $P(ITOT,"^",1)=$P(ITOT,"^",1)+INVREC("QTY") ;VA issue
|
---|
29 | .. S $P(ITOT,"^",4)=$P(ITOT,"^",4)+INVREC("ISSUE COST")
|
---|
30 | .. Q
|
---|
31 | . D NXINV(.KEYS,.EOF,.CHNG) ;next inventory record in ^TMP
|
---|
32 | . I CHNG("HCPC_ITEM")!EOF D
|
---|
33 | .. S DAYAV=$P(ITOT,"^",2)/DAYS
|
---|
34 | .. S $P(ITOT,"^",6)=DAYAV
|
---|
35 | .. S:DAYAV $P(ITOT,"^",7)=QOHN/DAYAV
|
---|
36 | .. S DAYAV=$P(ITOT,"^",1)/DAYS
|
---|
37 | .. S $P(ITOT,"^",12)=DAYAV
|
---|
38 | .. S:DAYAV $P(ITOT,"^",13)=QOHU/DAYAV
|
---|
39 | .. D UPITEM(.OLD,ITOT) ;update Item totals in ^TMP
|
---|
40 | .. F I=1:1:5,8:1:11 S $P(HTOT,"^",I)=$P(ITOT,"^",I)+$P(HTOT,"^",I)
|
---|
41 | .. Q
|
---|
42 | . I CHNG("HCPC_CODE")!EOF D
|
---|
43 | .. S DAYAV=$P(HTOT,"^",2)/DAYS
|
---|
44 | .. S $P(HTOT,"^",6)=DAYAV
|
---|
45 | .. S:DAYAV $P(HTOT,"^",7)=$P(HTOT,"^",9)/DAYAV
|
---|
46 | .. S DAYAV=$P(HTOT,"^",1)/DAYS
|
---|
47 | .. S $P(HTOT,"^",12)=DAYAV
|
---|
48 | .. S:DAYAV $P(HTOT,"^",13)=$P(HTOT,"^",8)/DAYAV
|
---|
49 | .. D UPHCPC(.OLD,HTOT) ;update HCPC totals in ^TMP
|
---|
50 | .. F I=1:1:5,8:1:11 S $P(LTOT,"^",I)=$P(HTOT,"^",I)+$P(LTOT,"^",I)
|
---|
51 | .. Q
|
---|
52 | . I CHNG("NPPD_LINE")!EOF D
|
---|
53 | .. S DAYAV=$P(LTOT,"^",2)/DAYS
|
---|
54 | .. S $P(LTOT,"^",6)=DAYAV
|
---|
55 | .. S:DAYAV $P(LTOT,"^",7)=$P(LTOT,"^",9)/DAYAV
|
---|
56 | .. S DAYAV=$P(LTOT,"^",1)/DAYS
|
---|
57 | .. S $P(LTOT,"^",12)=DAYAV
|
---|
58 | .. S:DAYAV $P(LTOT,"^",13)=$P(LTOT,"^",8)/DAYAV
|
---|
59 | .. D UPLIN(.OLD,LTOT) ;update NPPD line totals
|
---|
60 | .. S $P(GTOT,"^",4)=$P(LTOT,"^",4)+$P(GTOT,"^",4)
|
---|
61 | .. S $P(GTOT,"^",5)=$P(LTOT,"^",5)+$P(GTOT,"^",5)
|
---|
62 | .. S $P(GTOT,"^",10)=$P(LTOT,"^",10)+$P(GTOT,"^",10)
|
---|
63 | .. S $P(GTOT,"^",11)=$P(LTOT,"^",11)+$P(GTOT,"^",11)
|
---|
64 | .. Q
|
---|
65 | . I CHNG("NPPD_GROUP")!EOF D
|
---|
66 | .. D UPGRP(.OLD,GTOT) ;update NPPD group totals
|
---|
67 | .. Q
|
---|
68 | . Q
|
---|
69 | CALCX Q
|
---|
70 | ;
|
---|
71 | ; Read inventory rec
|
---|
72 | RDINV(PRIKEY,INVREC) ;
|
---|
73 | N INVIEN,S,TNAM,NPGRP,NPLIN,HCPC,ITEM,STATION
|
---|
74 | S TNAM="RMPR5"
|
---|
75 | S INVIEN=PRIKEY("INVENTORY_IEN")
|
---|
76 | I INVIEN="" S INVREC("QTY")=0,INVREC("SOURCE")="",INVREC("ISSUE COST")=0 Q
|
---|
77 | S STATION=PRIKEY("STATION")
|
---|
78 | S NPGRP=PRIKEY("NPPD_GROUP")
|
---|
79 | S NPLIN=PRIKEY("NPPD_LINE")
|
---|
80 | S HCPC=PRIKEY("HCPC")
|
---|
81 | S ITEM=PRIKEY("HCPC_ITEM")
|
---|
82 | S S=$G(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC,ITEM,INVIEN))
|
---|
83 | K INVREC
|
---|
84 | S INVREC("QTY")=$P(S,"^",1)
|
---|
85 | S INVREC("SOURCE")=$P(S,"^",3)
|
---|
86 | S INVREC("ISSUE COST")=$P(S,"^",2)
|
---|
87 | Q
|
---|
88 | RDITEM(PRIKEY,MYSTR) ;
|
---|
89 | N TNAM,NPGRP,NPLIN,HCPC,ITEM,STATION
|
---|
90 | S TNAM="RMPR5"
|
---|
91 | S STATION=PRIKEY("STATION")
|
---|
92 | S NPGRP=PRIKEY("NPPD_GROUP")
|
---|
93 | S NPLIN=PRIKEY("NPPD_LINE")
|
---|
94 | S HCPC=PRIKEY("HCPC")
|
---|
95 | S ITEM=PRIKEY("HCPC_ITEM")
|
---|
96 | S MYSTR=$G(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC,ITEM))
|
---|
97 | Q
|
---|
98 | ;
|
---|
99 | ; Get next inventory record
|
---|
100 | NXINV(RMPRKEY,RMPREOF,RMPRCHNG) ;
|
---|
101 | N TNAM,NPGRP,NPLIN,HCPC,ITEM,INVIEN,STATION
|
---|
102 | S TNAM="RMPR5"
|
---|
103 | S STATION=RMPRKEY("STATION")
|
---|
104 | S NPGRP=RMPRKEY("NPPD_GROUP")
|
---|
105 | S NPLIN=RMPRKEY("NPPD_LINE")
|
---|
106 | S HCPC=RMPRKEY("HCPC")
|
---|
107 | S ITEM=RMPRKEY("HCPC_ITEM")
|
---|
108 | S INVIEN=RMPRKEY("INVENTORY_IEN")
|
---|
109 | S RMPREOF=0
|
---|
110 | S RMPRCHNG("STATION")=0
|
---|
111 | S RMPRCHNG("NPPD_GROUP")=0,RMPRCHNG("NPPD_LINE")=0,RMPRCHNG("HCPC_CODE")=0,RMPRCHNG("HCPC_ITEM")=0
|
---|
112 | S INVIEN=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC,ITEM,INVIEN))
|
---|
113 | S:INVIEN="" ITEM=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC,ITEM))
|
---|
114 | S:ITEM="" HCPC=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC))
|
---|
115 | S:HCPC="" NPLIN=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN))
|
---|
116 | S:NPLIN="" NPGRP=$O(^TMP($J,TNAM,STATION,NPGRP))
|
---|
117 | S:NPGRP="" STATION=$O(^TMP($J,TNAM,STATION))
|
---|
118 | I STATION=""!(STATION="Z") S RMPREOF=1,RMPRCHNG("INVENTORY_IEN")=0 G NXINVX
|
---|
119 | S:NPGRP="" NPGRP=$O(^TMP($J,TNAM,STATION,"")),RMPRCHNG("STATION")=1
|
---|
120 | S:NPLIN="" NPLIN=$O(^TMP($J,TNAM,STATION,NPGRP,"")),RMPRCHNG("NPPD_GROUP")=1
|
---|
121 | S:HCPC="" HCPC=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,"")),RMPRCHNG("NPPD_LINE")=1
|
---|
122 | S:ITEM="" ITEM=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC,"")),RMPRCHNG("HCPC_CODE")=1
|
---|
123 | S:INVIEN="" INVIEN=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC,ITEM,"")),RMPRCHNG("HCPC_ITEM")=1
|
---|
124 | S RMPRCHNG("INVENTORY_IEN")=1
|
---|
125 | S RMPRKEY("STATION")=STATION
|
---|
126 | S RMPRKEY("NPPD_GROUP")=NPGRP
|
---|
127 | S RMPRKEY("NPPD_LINE")=NPLIN
|
---|
128 | S RMPRKEY("HCPC")=HCPC
|
---|
129 | S RMPRKEY("HCPC_CODE")=$P(HCPC,"/",1)
|
---|
130 | S RMPRKEY("HCPC_IEN")=$P(HCPC,"/",2)
|
---|
131 | S RMPRKEY("HCPC_ITEM")=ITEM
|
---|
132 | S RMPRKEY("INVENTORY_IEN")=INVIEN
|
---|
133 | NXINVX Q
|
---|
134 | ;
|
---|
135 | ; Init. TMP array keys
|
---|
136 | INIT(RMPRKEY,RMPREOF,RMPRCHNG) ;
|
---|
137 | N TNAM,NPGRP,NPLIN,HCPC,ITEM,INVIEN,STATION
|
---|
138 | S TNAM="RMPR5"
|
---|
139 | K RMPRKEY
|
---|
140 | S RMPREOF=0
|
---|
141 | S RMPRCHNG("STATION")=0,RMPRCHNG("NPPD_GROUP")=0,RMPRCHNG("NPPD_LINE")=0
|
---|
142 | S RMPRCHNG("HCPC_CODE")=0,RMPRCHNG("HCPC_ITEM")=0,RMPRCHNG("INVENTORY_IEN")=0
|
---|
143 | S STATION=$O(^TMP($J,TNAM,""))
|
---|
144 | I STATION=""!(STATION="Z") S RMPREOF=1 G INITX
|
---|
145 | S RMPRCHNG("STATION")=1,RMPRCHNG("NPPD_GROUP")=1,RMPRCHNG("NPPD_LINE")=1
|
---|
146 | S RMPRCHNG("HCPC_CODE")=1,RMPRCHNG("HCPC_ITEM")=1,RMPRCHNG("INVENTORY_IEN")=1
|
---|
147 | S NPGRP=$O(^TMP($J,TNAM,STATION,""))
|
---|
148 | S NPLIN=$O(^TMP($J,TNAM,STATION,NPGRP,""))
|
---|
149 | S HCPC=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,""))
|
---|
150 | S ITEM=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC,""))
|
---|
151 | S INVIEN=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC,ITEM,""))
|
---|
152 | S RMPRKEY("STATION")=STATION
|
---|
153 | S RMPRKEY("NPPD_GROUP")=NPGRP
|
---|
154 | S RMPRKEY("NPPD_LINE")=NPLIN
|
---|
155 | S RMPRKEY("HCPC")=HCPC
|
---|
156 | S RMPRKEY("HCPC_CODE")=$P(HCPC,"/",1)
|
---|
157 | S RMPRKEY("HCPC_IEN")=$P(HCPC,"/",2)
|
---|
158 | S RMPRKEY("HCPC_ITEM")=ITEM
|
---|
159 | S RMPRKEY("INVENTORY_IEN")=INVIEN
|
---|
160 | INITX Q
|
---|
161 | ;
|
---|
162 | ; ^TMP updates
|
---|
163 | UPGRP(PRIKEY,MYSTR) ;
|
---|
164 | N TNAM,NPGRP,STATION
|
---|
165 | S TNAM="RMPR5"
|
---|
166 | S STATION=PRIKEY("STATION")
|
---|
167 | S NPGRP=PRIKEY("NPPD_GROUP")
|
---|
168 | S ^TMP($J,TNAM,STATION,NPGRP)=MYSTR
|
---|
169 | Q
|
---|
170 | UPLIN(PRIKEY,MYSTR) ;
|
---|
171 | N TNAM,NPGRP,NPLIN,STATION
|
---|
172 | S TNAM="RMPR5"
|
---|
173 | S STATION=PRIKEY("STATION")
|
---|
174 | S NPGRP=PRIKEY("NPPD_GROUP")
|
---|
175 | S NPLIN=PRIKEY("NPPD_LINE")
|
---|
176 | S ^TMP($J,TNAM,STATION,NPGRP,NPLIN)=MYSTR
|
---|
177 | Q
|
---|
178 | UPHCPC(PRIKEY,MYSTR) ;
|
---|
179 | N TNAM,NPGRP,NPLIN,HCPC,STATION
|
---|
180 | S TNAM="RMPR5"
|
---|
181 | S STATION=PRIKEY("STATION")
|
---|
182 | S NPGRP=PRIKEY("NPPD_GROUP")
|
---|
183 | S NPLIN=PRIKEY("NPPD_LINE")
|
---|
184 | S HCPC=PRIKEY("HCPC")
|
---|
185 | S ^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC)=MYSTR
|
---|
186 | Q
|
---|
187 | UPITEM(PRIKEY,MYSTR) ;
|
---|
188 | N TNAM,NPGRP,NPLIN,HCPC,ITEM,STATION
|
---|
189 | S TNAM="RMPR5"
|
---|
190 | S STATION=PRIKEY("STATION")
|
---|
191 | S NPGRP=PRIKEY("NPPD_GROUP")
|
---|
192 | S NPLIN=PRIKEY("NPPD_LINE")
|
---|
193 | S HCPC=PRIKEY("HCPC")
|
---|
194 | S ITEM=PRIKEY("HCPC_ITEM")
|
---|
195 | S ^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC,ITEM)=MYSTR
|
---|
196 | Q
|
---|