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
|
---|