[613] | 1 | PRCPWPL4 ;WISC/RFJ-whse post issue book (post cont) ;13 Jan 94
|
---|
| 2 | ;;5.1;IFCAP;;Oct 20, 2000
|
---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | Q
|
---|
| 5 | ;
|
---|
| 6 | ;
|
---|
| 7 | POST ; post issue book
|
---|
| 8 | S TOTLINES=0
|
---|
| 9 | S (TOTLINES,TOTALINV,TOTALSAL)=0
|
---|
| 10 | S LINEDA=0 F S LINEDA=$O(^TMP($J,"PRCPWPLMPOST",LINEDA)) Q:'LINEDA S QTYPOST=^(LINEDA) I QTYPOST D
|
---|
| 11 | . S IBDATA=$G(^PRCS(410,PRCPDA,"IT",LINEDA,0)) I IBDATA="" Q
|
---|
| 12 | . S ITEMDA=+$P(IBDATA,"^",5)
|
---|
| 13 | . S ITEMDATA=$G(^PRCP(445,PRCPINPT,1,ITEMDA,0)) I ITEMDATA="" Q
|
---|
| 14 | . ; do not post qty < 0
|
---|
| 15 | . I QTYPOST>$P(ITEMDATA,"^",7) S QTYPOST=+$P(ITEMDATA,"^",7)
|
---|
| 16 | . I 'QTYPOST Q
|
---|
| 17 | . S UNITCOST=$P(ITEMDATA,"^",22) S:$P(ITEMDATA,"^",15)>UNITCOST UNITCOST=$P(ITEMDATA,"^",15) S:$P(IBDATA,"^",7)>UNITCOST UNITCOST=$P(IBDATA,"^",7)
|
---|
| 18 | . S TOTCOST=$J(QTYPOST*UNITCOST,0,2),INVCOST=$J(QTYPOST*$P(ITEMDATA,"^",22),0,2)
|
---|
| 19 | . S TOTALSAL=TOTALSAL+TOTCOST,TOTALINV=TOTALINV+INVCOST
|
---|
| 20 | . S TOTLINES=TOTLINES+1
|
---|
| 21 | . ;
|
---|
| 22 | . ; *** whse ***
|
---|
| 23 | . S $P(^PRCS(410,PRCPDA,"IT",LINEDA,0),"^",12)=$P(^PRCS(410,PRCPDA,"IT",LINEDA,0),"^",12)+QTYPOST
|
---|
| 24 | . S $P(^PRCS(410,PRCPDA,"IT",LINEDA,0),"^",7)=UNITCOST
|
---|
| 25 | . ; update totals posted
|
---|
| 26 | . S %=$G(^PRCS(410,PRCPDA,"IT",LINEDA,445))
|
---|
| 27 | . S $P(%,"^",3)=$P(%,"^",3)+QTYPOST,$P(%,"^",4)=$P(%,"^",4)+INVCOST,$P(%,"^",5)=$P(%,"^",5)+TOTCOST
|
---|
| 28 | . S $P(^PRCS(410,PRCPDA,"IT",LINEDA,445),"^",3,5)=$P(%,"^",3,5)
|
---|
| 29 | . ; update beginning balance
|
---|
| 30 | . I '$D(^PRCP(445.1,PRCPINPT,1,ITEMDA,1,$E(DT,1,5),0)) D BALANCE^PRCPUBAL(PRCPINPT,ITEMDA,$E(DT,1,5))
|
---|
| 31 | . ; update whse invpt
|
---|
| 32 | . S $P(ITEMDATA,"^",7)=$P(ITEMDATA,"^",7)-QTYPOST
|
---|
| 33 | . S $P(ITEMDATA,"^",27)=$P(ITEMDATA,"^",27)-INVCOST
|
---|
| 34 | . ; update average cost
|
---|
| 35 | . S $P(ITEMDATA,"^",22)=0,QUANTITY=$P(ITEMDATA,"^",7)+$P(ITEMDATA,"^",19)
|
---|
| 36 | . I QUANTITY>0 S $P(ITEMDATA,"^",22)=$J($P(ITEMDATA,"^",27)/QUANTITY,0,3) I $P(ITEMDATA,"^",22)'>0 S $P(ITEMDATA,"^",22)=0
|
---|
| 37 | . S ^PRCP(445,PRCPINPT,1,ITEMDA,0)=ITEMDATA
|
---|
| 38 | . D SETOUT^PRCPUDUE(PRCPINPT,ITEMDA,-QTYPOST)
|
---|
| 39 | . ; usage
|
---|
| 40 | . D ADDUSAG^PRCPUSAG(PRCPINPT,ITEMDA,QTYPOST,INVCOST)
|
---|
| 41 | . ; transaction register
|
---|
| 42 | . K PRCPWPL3,Y
|
---|
| 43 | . S PRCPWPL3("QTY")=-QTYPOST,PRCPWPL3("INVVAL")=-INVCOST,PRCPWPL3("SELVAL")=-TOTCOST,PRCPWPL3("2237PO")=PRCPIBNM,PRCPWPL3("REF")=PRCPORD,PRCPWPL3("OTHERPT")=PRCPPRIM
|
---|
| 44 | . I $G(CANTEEN) S PRCPWPL3("REASON")="0:2:ISSUE to CANTEEN"
|
---|
| 45 | . D ADDTRAN^PRCPUTRX(PRCPINPT,ITEMDA,"R",PRCPWORD,.PRCPWPL3)
|
---|
| 46 | . ; set line number in transaction register
|
---|
| 47 | . I $D(^PRCP(445.2,+$G(Y),0)) S $P(^(0),"^",24)=LINEDA
|
---|
| 48 | . ;
|
---|
| 49 | . ;
|
---|
| 50 | . ; *** primary ***
|
---|
| 51 | . I 'PRCPFPRI Q
|
---|
| 52 | . S $P(^PRCS(410,PRCPDA,"IT",LINEDA,0),"^",13)=$P(^PRCS(410,PRCPDA,"IT",LINEDA,0),"^",13)+QTYPOST
|
---|
| 53 | . S ITEMDATA=$G(^PRCP(445,PRCPPRIM,1,ITEMDA,0)) I ITEMDATA="" D Q
|
---|
| 54 | . . S COSTCNTR=$P($G(^PRCP(445,PRCPPRIM,0)),"^",7) I COSTCNTR D COSTCNTR^PRCPUCC(PRCPPRIM,PRCPINPT,COSTCNTR,TOTCOST)
|
---|
| 55 | . S QTYPOST=QTYPOST*$P($$GETVEN^PRCPUVEN(PRCPPRIM,ITEMDA,PRCPPVNO,1),"^",4)
|
---|
| 56 | . ; update beginning balance
|
---|
| 57 | . I '$D(^PRCP(445.1,PRCPPRIM,1,ITEMDA,1,$E(DT,1,5),0)) D BALANCE^PRCPUBAL(PRCPPRIM,ITEMDA,$E(DT,1,5))
|
---|
| 58 | . ; update primary invpt
|
---|
| 59 | . S $P(ITEMDATA,"^",7)=$P(ITEMDATA,"^",7)+QTYPOST
|
---|
| 60 | . S $P(ITEMDATA,"^",27)=$P(ITEMDATA,"^",27)+TOTCOST
|
---|
| 61 | . ; update average cost
|
---|
| 62 | . S $P(ITEMDATA,"^",22)=0,QUANTITY=$P(ITEMDATA,"^",7)
|
---|
| 63 | . I QUANTITY S $P(ITEMDATA,"^",22)=$J($P(ITEMDATA,"^",27)/QUANTITY,0,3) I $P(ITEMDATA,"^",22)'>0 S $P(ITEMDATA,"^",22)=0
|
---|
| 64 | . ; update last cost
|
---|
| 65 | . S $P(ITEMDATA,"^",15)=$J(TOTCOST/QTYPOST,0,3),$P(ITEMDATA,"^",3)=DT
|
---|
| 66 | . S ^PRCP(445,PRCPPRIM,1,ITEMDA,0)=ITEMDATA
|
---|
| 67 | . ; remove due-in
|
---|
| 68 | . D OUTST^PRCPUTRA(PRCPPRIM,ITEMDA,PRCPDA,-QTYPOST)
|
---|
| 69 | . ; receipt history
|
---|
| 70 | . D RECEIPTS^PRCPUSAG(PRCPPRIM,ITEMDA,QTYPOST)
|
---|
| 71 | . ; distribution costs
|
---|
| 72 | . S COSTCNTR=$P(^PRCP(445,PRCPPRIM,0),"^",7) I COSTCNTR D COSTCNTR^PRCPUCC(PRCPPRIM,PRCPINPT,COSTCNTR,TOTCOST)
|
---|
| 73 | . ; drug accountability
|
---|
| 74 | . I $G(DRUGACCT) S %=+$P(ITEMDATA,"^",29) S:'% %=1 D EN^PSAGIP(PRCPPRIM,ITEMDA,QTYPOST*%,PRCPDA,PRCPIBNM,"RC"_PRCPPORD,TOTCOST)
|
---|
| 75 | . ; transaction register
|
---|
| 76 | . I PRCPPORD D
|
---|
| 77 | . . K PRCPWPL3
|
---|
| 78 | . . S PRCPWPL3("QTY")=QTYPOST,(PRCPWPL3("INVVAL"),PRCPWPL3("SELVAL"))=TOTCOST,PRCPWPL3("2237PO")=PRCPIBNM,PRCPWPL3("REF")=PRCPORD,PRCPWPL3("OTHERPT")=PRCPINPT
|
---|
| 79 | . . D ADDTRAN^PRCPUTRX(PRCPPRIM,ITEMDA,"RC",PRCPPORD,.PRCPWPL3)
|
---|
| 80 | ;
|
---|
| 81 | D ENDPOST^PRCPWPL5
|
---|
| 82 | Q
|
---|