| 1 | PRCPUTRA ;WISC/RFJ-outstanding transaction and duein update         ;20 Sep 91 | 
|---|
| 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 | ADDTRAN(INVPT,ITEMDA,TRANDA,PRCPDATA) ;  create outstanding transacation duein | 
|---|
| 8 | ;  PRCPDATA=qtyordered^unitofreceipt^pkgmult^convfact | 
|---|
| 9 | I '+PRCPDATA Q | 
|---|
| 10 | I '$D(^PRCP(445,INVPT,1,ITEMDA,0)) Q | 
|---|
| 11 | I $D(^PRCP(445,INVPT,1,ITEMDA,7,TRANDA)) Q | 
|---|
| 12 | N %,D0,DA,DATA,DD,DIC,DINUM,DLAYGO,X,Y | 
|---|
| 13 | S:'$D(^PRCP(445,INVPT,1,ITEMDA,7,0)) ^(0)="^445.09P^^" | 
|---|
| 14 | S DIC="^PRCP(445,"_INVPT_",1,"_ITEMDA_",7,",(X,DINUM)=TRANDA,DA(1)=ITEMDA,DA(2)=INVPT,DIC(0)="L",DLAYGO=445 | 
|---|
| 15 | D FILE^DICN Q:Y<1 | 
|---|
| 16 | I '$D(^PRCP(445,INVPT,1,ITEMDA,7,TRANDA,0)) Q | 
|---|
| 17 | L +^PRCP(445,INVPT,1,ITEMDA,7,TRANDA) | 
|---|
| 18 | S ^PRCP(445,INVPT,1,ITEMDA,7,TRANDA,0)=^PRCP(445,INVPT,1,ITEMDA,7,TRANDA,0)_"^"_PRCPDATA | 
|---|
| 19 | D SETIN^PRCPUDUE(INVPT,ITEMDA,+PRCPDATA) | 
|---|
| 20 | L -^PRCP(445,INVPT,1,ITEMDA,7,TRANDA) | 
|---|
| 21 | Q | 
|---|
| 22 | ; | 
|---|
| 23 | ; | 
|---|
| 24 | KILLTRAN(INVPT,ITEMDA,TRANDA) ;  kill outstanding transaction | 
|---|
| 25 | I '$D(^PRCP(445,INVPT,1,ITEMDA,7,TRANDA,0)) Q | 
|---|
| 26 | N %,DIK,DA,DIC,QTY,X,Y | 
|---|
| 27 | S QTY=$P(^PRCP(445,INVPT,1,ITEMDA,7,TRANDA,0),"^",2) | 
|---|
| 28 | I QTY D SETIN^PRCPUDUE(INVPT,ITEMDA,-QTY) | 
|---|
| 29 | S DIK="^PRCP(445,"_INVPT_",1,"_ITEMDA_",7,",DA=TRANDA,DA(1)=ITEMDA,DA(2)=INVPT | 
|---|
| 30 | D ^DIK | 
|---|
| 31 | Q | 
|---|
| 32 | ; | 
|---|
| 33 | ; | 
|---|
| 34 | OUTST(INVPT,ITEMDA,TRANDA,QTY) ;  add qty to outstanding transaction, | 
|---|
| 35 | ;  update duein | 
|---|
| 36 | I 'QTY Q | 
|---|
| 37 | I '$D(^PRCP(445,INVPT,1,ITEMDA,7,TRANDA,0)) Q | 
|---|
| 38 | N %,DATA,NEWQTY | 
|---|
| 39 | S DATA=^PRCP(445,INVPT,1,ITEMDA,7,TRANDA,0),NEWQTY=$P(DATA,"^",2)+QTY | 
|---|
| 40 | I NEWQTY<0 S NEWQTY=0,QTY=-$P(DATA,"^",2) | 
|---|
| 41 | S $P(^PRCP(445,INVPT,1,ITEMDA,7,TRANDA,0),"^",2)=NEWQTY | 
|---|
| 42 | I QTY D SETIN^PRCPUDUE(INVPT,ITEMDA,QTY) | 
|---|
| 43 | ;  kill transaction if duein is zero | 
|---|
| 44 | I NEWQTY=0 D KILLTRAN(INVPT,ITEMDA,TRANDA) | 
|---|
| 45 | Q | 
|---|
| 46 | ; | 
|---|
| 47 | ; | 
|---|
| 48 | ADDUPD(INVPT,ITEMDA,TRANDA,PRCPDATA) ;  create outstanding transacation duein | 
|---|
| 49 | ;  prcpdata=qtyordered^unitofreceipt^pkgmult^convfact | 
|---|
| 50 | I '$D(^PRCP(445,INVPT,1,ITEMDA,0)) Q | 
|---|
| 51 | I '$D(^PRCP(445,INVPT,1,ITEMDA,7,TRANDA,0)) D ADDTRAN(INVPT,ITEMDA,TRANDA,PRCPDATA) Q | 
|---|
| 52 | D OUTST(INVPT,ITEMDA,TRANDA,$P(PRCPDATA,"^")) | 
|---|
| 53 | Q | 
|---|
| 54 | ; | 
|---|
| 55 | ; | 
|---|
| 56 | CHECKOUT(INVPT,ITEMDA,TRANDA) ;  check outstanding transaction | 
|---|
| 57 | ;  returns => outstdata=vendor^pkgmult^unitreceipt^convfactor | 
|---|
| 58 | ;          => outsterr=error message | 
|---|
| 59 | ;  if outstdata and outsterr not defined, outstanding transaction is correct | 
|---|
| 60 | K OUTSTERR,OUTSDATA | 
|---|
| 61 | N %,OUTST,V,VENDATA,VENDOR | 
|---|
| 62 | S OUTST=$G(^PRCP(445,INVPT,1,ITEMDA,7,TRANDA,0)) | 
|---|
| 63 | I OUTST="" S OUTSTERR="OUTSTANDING TRANSACTION NOT FOUND IN INVENTORY POINT." Q | 
|---|
| 64 | S VENDOR=$P($G(^PRCS(410,TRANDA,3)),"^",4) | 
|---|
| 65 | I 'VENDOR S OUTSTERR="VENDOR NOT SPECIFIED FOR OUTSTANDING TRANSACTION (FILE 441, FIELD 12)." Q | 
|---|
| 66 | S VENDATA=$$GETVEN^PRCPUVEN(INVPT,ITEMDA,VENDOR_";PRC(440,",0) | 
|---|
| 67 | I 'VENDATA S OUTSTERR="VENDOR NOT INCLUDED AS A PROCUREMENT SOURCE FOR THIS ITEM." Q | 
|---|
| 68 | S %=$$UNITVAL^PRCPUX1($P(VENDATA,"^",3),$P(VENDATA,"^",2)," per ") | 
|---|
| 69 | I %["?" S OUTSTERR="PROCUREMENT SOURCE'S UNIT per RECEIPT ("_%_") IS INCORRECT." Q | 
|---|
| 70 | I '$P(VENDATA,"^",4) S OUTSTERR="PROCUREMENT SOURCE'S CONVERSION FACTOR IS NOT DEFINED." Q | 
|---|
| 71 | I $P(OUTST,"^",3,5)=$P(VENDATA,"^",2,4) Q | 
|---|
| 72 | S OUTSDATA=VENDOR_"^"_$P(VENDATA,"^",3)_"^"_$P(VENDATA,"^",2)_"^"_$P(VENDATA,"^",4) | 
|---|
| 73 | Q | 
|---|