[613] | 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
|
---|