| [613] | 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
 | 
|---|