| 1 | PRCPWPP3 ;WISC/RFJ-primary receive issue book (receive)             ;20 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 | RECEIVE ;  receive issue book | 
|---|
| 8 | D FULL^VALM1 | 
|---|
| 9 | S VALMBCK="R" | 
|---|
| 10 | I '$O(^TMP($J,"PRCPWPPLPOST",0)) S VALMSG="THERE ARE NO ITEMS TO RECEIVE" Q | 
|---|
| 11 | ; | 
|---|
| 12 | N %,COSTCNTR,DRUGACCT,IBDATA,ITEMDA,ITEMDATA,LINEDA,PRCPFLAG,PRCPPORD,PRCPWPP3,QTYPOST,QUANTITY,TOTCOST,TOTLINES,UNITCOST,X | 
|---|
| 13 | ; | 
|---|
| 14 | I $P($G(^PRCP(445,PRCPINPT,0)),"^",20)="D" S X="PSAGIP" I $D(^%ZOSF("TEST")) X ^("TEST") I $T S DRUGACCT=1 K X S X(1)="NOTE: This is a DRUG ACCOUNTABILITY inventory point." D DISPLAY^PRCPUX2(1,79,.X) | 
|---|
| 15 | ; | 
|---|
| 16 | S XP="ARE YOU SURE YOU WANT TO RECEIVE THIS ISSUE BOOK" | 
|---|
| 17 | W ! I $$YN^PRCPUYN(1)'=1 Q | 
|---|
| 18 | L +^PRCP(445,PRCPINPT,1):5 I '$T D SHOWWHO^PRCPULOC(445,PRCPINPT_"-1",0) Q | 
|---|
| 19 | D ADD^PRCPULOC(445,PRCPINPT_"-1",0,"Receive Issue Book") | 
|---|
| 20 | S PRCPPORD=$$ORDERNO^PRCPUTRX(PRCPINPT) | 
|---|
| 21 | S TOTLINES=0 | 
|---|
| 22 | S LINEDA=0 F  S LINEDA=$O(^TMP($J,"PRCPWPPLPOST",LINEDA)) Q:'LINEDA  S QTYPOST=^(LINEDA) I QTYPOST D | 
|---|
| 23 | .   S IBDATA=$G(^PRCS(410,PRCPDA,"IT",LINEDA,0)) I IBDATA="" Q | 
|---|
| 24 | .   S ITEMDA=+$P(IBDATA,"^",5) | 
|---|
| 25 | .   S ITEMDATA=$G(^PRCP(445,PRCPINPT,1,ITEMDA,0)) I ITEMDATA="" Q | 
|---|
| 26 | .   S UNITCOST=$P(IBDATA,"^",7) | 
|---|
| 27 | .   S TOTCOST=$J(QTYPOST*UNITCOST,0,2) | 
|---|
| 28 | .   S TOTLINES=TOTLINES+1 | 
|---|
| 29 | .   ; | 
|---|
| 30 | .   ;  *** primary *** | 
|---|
| 31 | .   S $P(^PRCS(410,PRCPDA,"IT",LINEDA,0),"^",13)=$P(^PRCS(410,PRCPDA,"IT",LINEDA,0),"^",13)+QTYPOST | 
|---|
| 32 | .   S ITEMDATA=$G(^PRCP(445,PRCPINPT,1,ITEMDA,0)) I ITEMDATA="" D  Q | 
|---|
| 33 | .   .   S COSTCNTR=$P($G(^PRCP(445,PRCPINPT,0)),"^",7) I COSTCNTR D COSTCNTR^PRCPUCC(PRCPINPT,PRCPWHSE,COSTCNTR,TOTCOST) | 
|---|
| 34 | .   S QTYPOST=QTYPOST*$P($$GETVEN^PRCPUVEN(PRCPINPT,ITEMDA,PRCPPVNO,1),"^",4) | 
|---|
| 35 | .   ;  update beginning balance | 
|---|
| 36 | .   I '$D(^PRCP(445.1,PRCPINPT,1,ITEMDA,1,$E(DT,1,5),0)) D BALANCE^PRCPUBAL(PRCPINPT,ITEMDA,$E(DT,1,5)) | 
|---|
| 37 | .   ;  update primary invpt | 
|---|
| 38 | .   S $P(ITEMDATA,"^",7)=$P(ITEMDATA,"^",7)+QTYPOST | 
|---|
| 39 | .   S $P(ITEMDATA,"^",27)=$P(ITEMDATA,"^",27)+TOTCOST | 
|---|
| 40 | .   ;  update average cost | 
|---|
| 41 | .   S $P(ITEMDATA,"^",22)=0,QUANTITY=$P(ITEMDATA,"^",7) | 
|---|
| 42 | .   I QUANTITY S $P(ITEMDATA,"^",22)=$J($P(ITEMDATA,"^",27)/QUANTITY,0,3) I $P(ITEMDATA,"^",22)'>0 S $P(ITEMDATA,"^",22)=0 | 
|---|
| 43 | .   ;  update last cost | 
|---|
| 44 | .   S $P(ITEMDATA,"^",15)=$J(TOTCOST/QTYPOST,0,3),$P(ITEMDATA,"^",3)=DT | 
|---|
| 45 | .   S ^PRCP(445,PRCPINPT,1,ITEMDA,0)=ITEMDATA | 
|---|
| 46 | .   ;  remove due-in | 
|---|
| 47 | .   D OUTST^PRCPUTRA(PRCPINPT,ITEMDA,PRCPDA,-QTYPOST) | 
|---|
| 48 | .   ;  receipt history | 
|---|
| 49 | .   D RECEIPTS^PRCPUSAG(PRCPINPT,ITEMDA,QTYPOST) | 
|---|
| 50 | .   ;  distribution costs | 
|---|
| 51 | .   S COSTCNTR=$P(^PRCP(445,PRCPINPT,0),"^",7) I COSTCNTR D COSTCNTR^PRCPUCC(PRCPINPT,PRCPWHSE,COSTCNTR,TOTCOST) | 
|---|
| 52 | .   ;  drug accountability | 
|---|
| 53 | .   I $G(DRUGACCT) S %=+$P(ITEMDATA,"^",29) S:'% %=1 D EN^PSAGIP(PRCPINPT,ITEMDA,QTYPOST*%,PRCPDA,PRCPIBNM,"RC"_PRCPPORD,TOTCOST) | 
|---|
| 54 | .   ;  transaction register | 
|---|
| 55 | .   I PRCPPORD D | 
|---|
| 56 | .   .   K PRCPWPP3 | 
|---|
| 57 | .   .   S PRCPWPP3("QTY")=QTYPOST,(PRCPWPP3("INVVAL"),PRCPWPP3("SELVAL"))=TOTCOST,PRCPWPP3("2237PO")=PRCPIBNM,PRCPWPP3("OTHERPT")=PRCPWHSE | 
|---|
| 58 | .   .   D ADDTRAN^PRCPUTRX(PRCPINPT,ITEMDA,"RC",PRCPPORD,.PRCPWPP3) | 
|---|
| 59 | ; | 
|---|
| 60 | K VALMBCK | 
|---|
| 61 | ; | 
|---|
| 62 | I $G(DRUGACCT) D EX^PSAGIP | 
|---|
| 63 | K X S X(1)="TOTAL LINE ITEMS POSTED: "_TOTLINES D DISPLAY^PRCPUX2(1,40,.X) | 
|---|
| 64 | ; | 
|---|
| 65 | ;  make issue book a final | 
|---|
| 66 | I $G(PRCPFINL) D | 
|---|
| 67 | .   K X S X(1)="This issue book is a final.  You have the option to remove all outstanding due-ins for this issue book." D DISPLAY^PRCPUX2(5,75,.X) | 
|---|
| 68 | .   S XP="Do you want to remove the due-ins for this issue book",XH="Enter YES to remove the due-ins, NO to leave the due-ins." | 
|---|
| 69 | .   I $$YN^PRCPUYN(1)'=1 Q | 
|---|
| 70 | .   S LINEDA=0 F  S LINEDA=$O(^PRCS(410,PRCPDA,"IT",LINEDA)) Q:'LINEDA  S ITEMDA=+$P(^(LINEDA,0),"^",5),QTYOUT=$P(^(0),"^",2)-$P(^(0),"^",13) I QTYOUT>0 D | 
|---|
| 71 | .   .   D KILLTRAN^PRCPUTRA(PRCPINPT,ITEMDA,PRCPDA) | 
|---|
| 72 | ; | 
|---|
| 73 | D CLEAR^PRCPULOC(445,PRCPINPT_"-1",0) | 
|---|
| 74 | L -^PRCP(445,PRCPINPT,1) | 
|---|
| 75 | ; | 
|---|
| 76 | I TOTLINES=0 Q:$G(PRCPFINL)  S VALMSG="NO LINE ITEMS TO POST",VALMBCK="R" Q | 
|---|
| 77 | D R^PRCPUREP | 
|---|
| 78 | Q | 
|---|