1 | PRCPUTRX ;WISC/RFJ-transaction history file 445.2 sets ;07 Jul 92
|
---|
2 | V ;;5.1;IFCAP;**1**;Oct 20, 2000
|
---|
3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | ;
|
---|
7 | ADDTRAN(INVPT,ITEMDA,TRANTYPE,ORDERNO,PRCPDATA) ; add transaction entry
|
---|
8 | ;prcpdata nodes:
|
---|
9 | ; date) = date of transaction (posted or issued, etc)
|
---|
10 | ; (optional) if not set it uses current date
|
---|
11 | ; qty) = quantity of transaction
|
---|
12 | ; invval) = inventory value
|
---|
13 | ; selval) = sales value
|
---|
14 | ; avgunit) = average unit cost
|
---|
15 | ; selunit) = selling unit cost
|
---|
16 | ; pkg) = unit per issue / units
|
---|
17 | ; (optional) set to current if not passed
|
---|
18 | ; ref) = reference number
|
---|
19 | ; 2237po) = 2237 or purchase order number
|
---|
20 | ; issue) = issue/nonissue
|
---|
21 | ; (optional) set to I for issuable, N for non
|
---|
22 | ; otherpt) = other inventory point
|
---|
23 | ; reason) = n:reason (if n=1 ask reason)
|
---|
24 | ; reasoncode) = reason code (for whse other adjustments)
|
---|
25 | ; recipient = who got the supply
|
---|
26 | ; user = person who took the supply from the cabinet
|
---|
27 | ;
|
---|
28 | ; returns variable y = da of entry added
|
---|
29 | S Y=0
|
---|
30 | ;
|
---|
31 | ; inventory point is not keeping a detailed transaction reg.
|
---|
32 | I $P($G(^PRCP(445,+INVPT,0)),"^",6)'="Y" Q
|
---|
33 | ;
|
---|
34 | N %,%DT,D,D0,DA,DD,DI,DIC,DIE,DLAYGO,DQ,DR,NOW,PRCPDR,PRCPPRIV,PRCPREAS,TRANDA,X
|
---|
35 | D NOW^%DTC S NOW=%
|
---|
36 | ;
|
---|
37 | ; set up all variables not defined
|
---|
38 | I '$G(PRCPDATA("DATE")) S PRCPDATA("DATE")=$E(NOW,1,7)
|
---|
39 | I '$D(PRCPDATA("PKG")) S PRCPDATA("PKG")=$$UNIT^PRCPUX1(INVPT,ITEMDA,"/")
|
---|
40 | F %="QTY","INVVAL","SELVAL" I '$G(PRCPDATA(%)) S PRCPDATA(%)=0
|
---|
41 | S %=$G(^PRCP(445,INVPT,1,ITEMDA,0))
|
---|
42 | S:'$G(PRCPDATA("AVGUNIT")) PRCPDATA("AVGUNIT")=+$P(%,"^",22)
|
---|
43 | S:'$G(PRCPDATA("SELUNIT")) PRCPDATA("SELUNIT")=+$P(%,"^",15)
|
---|
44 | F %="REF","2237PO","ISSUE","OTHERPT","REASON","RECIPIENT","USER" I '$D(PRCPDATA(%)) S PRCPDATA(%)=""
|
---|
45 | ;
|
---|
46 | ; add new transaction history entry
|
---|
47 | S DIC(0)="L",DLAYGO=445.2,DIC="^PRCP(445.2,",X=INVPT,PRCPPRIV=1
|
---|
48 | D FILE^DICN I Y<1 S Y=0 Q
|
---|
49 | S (TRANDA,DA)=+Y,DIE="^PRCP(445.2,"
|
---|
50 | S DR="1///"_TRANTYPE_ORDERNO_";2///"_PRCPDATA("DATE")_";2.5///"_NOW_";3///"_TRANTYPE_";4////"_ITEMDA_";5////"_PRCPDATA("PKG")_";6////"_PRCPDATA("QTY")_";7////"_(+PRCPDATA("AVGUNIT"))_";8////"_(+PRCPDATA("SELUNIT"))_";"
|
---|
51 | S DR=DR_"6.1////"_(+PRCPDATA("INVVAL"))_";6.2////"_(+PRCPDATA("SELVAL"))_";8.5////"_DUZ_";10////"_PRCPDATA("ISSUE")_";13////"_PRCPDATA("REF")_";14////"_PRCPDATA("OTHERPT")_";410////"_PRCPDATA("2237PO")_";"
|
---|
52 | S DR=DR_"23////"_PRCPDATA("RECIPIENT")_";"
|
---|
53 | S DR=DR_"22////"_PRCPDATA("USER")_";"
|
---|
54 | ; additional reason text (for asking in second call to die)
|
---|
55 | S PRCPDR="" I $D(PRCPDATA("REASONCODE")) S PRCPDR="9////"_$E(PRCPDATA("REASONCODE"),1,3)_";"
|
---|
56 | S PRCPDR=PRCPDR_"9.5//"_$S($P(PRCPDATA("REASON"),":"):"",1:"/")_"^S X=PRCPREAS",PRCPREAS=$E($P(PRCPDATA("REASON"),":",2,99),1,80)
|
---|
57 | L +^PRCP(445.2,TRANDA)
|
---|
58 | D ^DIE
|
---|
59 | S DR=PRCPDR
|
---|
60 | D ^DIE
|
---|
61 | L -^PRCP(445.2,TRANDA)
|
---|
62 | S Y=DA
|
---|
63 | Q
|
---|
64 | ;
|
---|
65 | ;
|
---|
66 | ORDERNO(INVPT) ; get next order number for inventory point
|
---|
67 | ; returns orderno
|
---|
68 | S Y=0
|
---|
69 | I $P($G(^PRCP(445,+INVPT,0)),"^",6)="Y" L +^PRCP(445.2,"ANXT",INVPT) S Y=$G(^PRCP(445.2,"ANXT",INVPT))+1 S:Y>9999999 Y=1 S ^(INVPT)=Y L -^PRCP(445.2,"ANXT",INVPT)
|
---|
70 | Q Y
|
---|