| 1 | PRCPWPL1 ;WISC/RFJ-whse post issue book (substitute)                ;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 | SUBST ;  substitute item | 
|---|
| 8 | D FULL^VALM1 | 
|---|
| 9 | S VALMBCK="R" | 
|---|
| 10 | N CONV,DATA,DIR,DR,INVDATA,ITEMDA,LINEDA,VENDDATA,NEWLINE,QTYORD,STATUS,SUBACCT,SUBITEM,UNITCOST,VENDOR,X | 
|---|
| 11 | K X S X(1)="This option will allow you to CANCEL and SUBSTITUTE a line item on the issue book.  Once a line item is cancelled, the oustanding quantity will be set to zero and the due-ins and due-outs will be cancelled." | 
|---|
| 12 | D DISPLAY^PRCPUX2(5,75,.X) | 
|---|
| 13 | F  W ! S LINEDA=$$LINEITEM^PRCPWPL0 Q:LINEDA<1  D | 
|---|
| 14 | .   S DATA=$G(^PRCS(410,PRCPDA,"IT",LINEDA,0)) I DATA="" W !,"CANNOT FIND LINE ITEM." Q | 
|---|
| 15 | .   S STATUS=$P(DATA,"^",14) | 
|---|
| 16 | .   I STATUS'="" W !,"ITEM IS CANCELLED",$S(STATUS["S":" AND SUBSTITUTED WITH LINE #(S): "_$P(STATUS,",",2,99),1:"") | 
|---|
| 17 | .   S ITEMDA=+$P(DATA,"^",5) I '$D(^PRCP(445,PRCPINPT,1,ITEMDA,0)) W !,"ITEM IS NOT STORED IN THE INVENTORY POINT." Q | 
|---|
| 18 | .   F  W ! S SUBITEM=$$SUBITEM Q:SUBITEM<1  D  Q:SUBITEM | 
|---|
| 19 | .   .   S INVDATA=$G(^PRCP(445,PRCPINPT,1,SUBITEM,0)) | 
|---|
| 20 | .   .   I INVDATA="" W !,"SUBSTITUTE ITEM IS NOT STORED IN THE WAREHOUSE INVENTORY POINT." S SUBITEM=0 Q | 
|---|
| 21 | .   .   S VENDDATA=$G(^PRC(441,SUBITEM,2,+PRCPPVNO,0)) | 
|---|
| 22 | .   .   I VENDDATA="" W !,"WAREHOUSE IS NOT ESTABLISHED AS A VENDOR FOR THIS ITEM." S SUBITEM=0 Q | 
|---|
| 23 | .   I SUBITEM<1 Q | 
|---|
| 24 | .   S UNITCOST=$P(INVDATA,"^",22) S:$P(INVDATA,"^",15)>UNITCOST UNITCOST=$P(INVDATA,"^",15) S:$P(VENDDATA,"^",2)>UNITCOST UNITCOST=$P(VENDDATA,"^",2) S UNITCOST=$J(UNITCOST,0,2) | 
|---|
| 25 | .   W !!,SUBITEM,?5,$E($$DESCR^PRCPUX1(PRCPINPT,SUBITEM),1,30),"  ",$$NSN^PRCPUX1(SUBITEM) | 
|---|
| 26 | .   W !?5,"UNIT/ISSUE     : ",$$UNIT^PRCPUX1(PRCPINPT,SUBITEM,"/") | 
|---|
| 27 | .   W !?5,"UNIT/PURCHASE  : ",$$UNITVAL^PRCPUX1($P(VENDDATA,"^",8),$P(VENDDATA,"^",7),"/") | 
|---|
| 28 | .   W !?5,"AVERAGE COST   : ",$J(+$P(INVDATA,"^",22),0,2) | 
|---|
| 29 | .   W !?5,"LAST COST      : ",$J(+$P(INVDATA,"^",15),0,2) | 
|---|
| 30 | .   W !?5,"CHARGE UNITCOST: ",UNITCOST | 
|---|
| 31 | .   W ! | 
|---|
| 32 | .   W !?5,"QTY ON-HAND    : ",+$P(INVDATA,"^",7) | 
|---|
| 33 | .   S DIR(0)="NA^0:99999:0",DIR("A")="  QUANTITY ORDERED: " | 
|---|
| 34 | .   S DIR("A",1)="Enter the quantity ordered for this item." | 
|---|
| 35 | .   W ! D ^DIR K DIR S QTYORD=+Y | 
|---|
| 36 | .   S XP="ARE YOU SURE YOU WANT TO CANCEL AND SUBSTITUTE THIS ITEM",XH="Enter YES to CANCEL and SUBSTITUTE this line item." | 
|---|
| 37 | .   W ! I $$YN^PRCPUYN(1)'=1 Q | 
|---|
| 38 | .   I $E(STATUS)'="C" W !!,"cancelling original ordered item..." D CANCELIT^PRCPWPL2 | 
|---|
| 39 | .   F NEWLINE=$P(^PRCS(410,PRCPDA,"IT",0),"^",3)+1:1 Q:'$D(^PRCS(410,PRCPDA,"IT",NEWLINE,0)) | 
|---|
| 40 | .   W !!,"adding a NEW line item (#",NEWLINE,") as a substitute item..." | 
|---|
| 41 | .   S SUBACCT=$E($P($G(^PRCD(420.2,+$$SUBACCT^PRCPU441(SUBITEM),0)),"^"),1,30) | 
|---|
| 42 | .   S DR="2///"_QTYORD_";3///"_$P(VENDDATA,"^",7)_";4//"_SUBACCT_";5///"_SUBITEM_";7//"_$S('UNITCOST:"",1:"/"_UNITCOST) | 
|---|
| 43 | .   D NEWLINE(DR) | 
|---|
| 44 | .   ; | 
|---|
| 45 | .   ;  update cancelled item | 
|---|
| 46 | .   S STATUS=$P(^PRCS(410,PRCPDA,"IT",LINEDA,0),"^",14) I STATUS'["S" S STATUS=STATUS_"S" | 
|---|
| 47 | .   S $P(^PRCS(410,PRCPDA,"IT",LINEDA,0),"^",14)=STATUS_", "_NEWLINE | 
|---|
| 48 | .   I $D(^PRCP(445,PRCPINPT,1,SUBITEM,0)) W !?5,"... incrementing due-outs@warehouse by ",QTYORD D SETOUT^PRCPUDUE(PRCPINPT,SUBITEM,QTYORD) | 
|---|
| 49 | .   I $D(^PRCP(445,PRCPPRIM,1,SUBITEM,0)) D | 
|---|
| 50 | .   .   S VENDOR=$$GETVEN^PRCPUVEN(PRCPPRIM,SUBITEM,PRCPPVNO,1),CONV=$P(VENDOR,"^",4) | 
|---|
| 51 | .   .   W !?5,"... incrementing due-ins @primary   by ",QTYORD*CONV W:CONV>1 "  (convfact: ",CONV,")" | 
|---|
| 52 | .   .   D ADDUPD^PRCPUTRA(PRCPPRIM,SUBITEM,PRCPDA,QTYORD*CONV_"^"_$P(VENDOR,"^",2)_"^"_$P(VENDOR,"^",3)_"^"_CONV) | 
|---|
| 53 | D REBUILD^PRCPWPLB | 
|---|
| 54 | Q | 
|---|
| 55 | ; | 
|---|
| 56 | ; | 
|---|
| 57 | SUBITEM() ;  select substitute item | 
|---|
| 58 | N DIC,DA,X,Y | 
|---|
| 59 | I '$D(^PRCP(445,PRCPINPT,1,ITEMDA,0)) Q 0 | 
|---|
| 60 | I '$D(^PRCP(445,PRCPINPT,1,ITEMDA,4,0)) S ^(0)="^445.122PI^^" | 
|---|
| 61 | S DIC="^PRCP(445,"_PRCPINPT_",1,"_ITEMDA_",4,",DA(1)=PRCPINPT,DA=ITEMDA,DIC(0)="QEAM" | 
|---|
| 62 | S DIC("W")="N %,Z S %=$G(^PRC(441,+Y,0)),Z=$G(^PRCP(445,PRCPINPT,1,+Y,0)) W ?7,"" "",$P(%,U,5),?32,$E($P($G(^PRCP(445,PRCPINPT,1,+Y,6)),U),1,20),?55,""  QTY ON-HAND: "",$P(Z,U,7)" | 
|---|
| 63 | D ^DIC | 
|---|
| 64 | Q +Y | 
|---|
| 65 | ; | 
|---|
| 66 | ; | 
|---|
| 67 | NEWLINE(DR) ;  set new line item in issue book | 
|---|
| 68 | N %,C,D0,DA,DD,DDH,DI,DIC,DIE,DLAYGO,DQ,I,PRCS,X,Y | 
|---|
| 69 | S DIC="^PRCS(410,"_PRCPDA_",""IT"",",DIC(0)="L",DLAYGO=410,DA(1)=PRCPDA,X=NEWLINE | 
|---|
| 70 | S DIE("NO^")="" | 
|---|
| 71 | I DR'="" S DIC("DR")=DR | 
|---|
| 72 | D FILE^DICN | 
|---|
| 73 | Q | 
|---|