Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: RMPRPIYG

RMPRPIYG.m

Go to the documentation of this file.
  1. RMPRPIYG ;HINCIO/ODJ - RC - PIP Receive Stock ;3/8/01
  1. ;;3.0;PROSTHETICS;**61,132**;Feb 09, 1996;Build 13
  1. Q
  1. ;
  1. ;***** RC - Replaces RC option in old PIP
  1. ; RMPR INV RECEIVE
  1. ; cf. REC^RMPR5NOR
  1. ; Callable from VISTA menu, no vars required other than
  1. ; global VISTA vars (DUZ, etc)
  1. ;
  1. RC N RMPRERR,RMPRSTN,RMPRLCN,RMPREXC,RMPR5,RMPR1,RMPR11,RMPROVAL
  1. N RMPRVEND,RMPRQTY,RMPRTVAL,RMPR4,RMPRUCST,RMPRQ,RMPRIOP,RMPRNLAB
  1. N RMPRBARC,RMPRITXT,RMPRBCP,RMPR41,RMPR41N,RMPRYN
  1. ;
  1. ;***** STN - prompt for Site/Station
  1. STN S RMPROVAL=$G(RMPRSTN("IEN"))
  1. W @IOF S RMPRERR=$$STN^RMPRPIY1(.RMPRSTN,.RMPREXC)
  1. I RMPRERR G RCX
  1. I RMPREXC'="" G RCX
  1. I RMPROVAL'=RMPRSTN("IEN") K RMPR1,RMPR11
  1. S RMPR("NAME")=RMPRSTN("SITE NAME")
  1. ;
  1. ;***** HCPCS - prompt for HCPCS
  1. HCPCS W !!,"Receive an Item from Supply, Vendor or Veteran.",!
  1. K RMPR6,RMPRTVAL,RMPRQTY,RMPRUCST,RMPRBCP,RMPRQ,RMPRIOP,RMPRNLAB
  1. K RMPRBARC,RMPRITXT,RMPR41N,RMPR41,RMPRVEND,RMPR1,RMPR11,RMPRUNI
  1. HCPCS2 D HCPCS^RMPRPIY7(RMPRSTN("IEN"),$G(RMPR1("HCPCS")),.RMPR1,.RMPR11,.RMPREXC)
  1. I RMPREXC="T" G RCX
  1. I RMPREXC="P"!(RMPREXC="^") D G RCX
  1. . W !,"** No HCPCS selected." H 1
  1. . Q
  1. I $G(RMPR11("IEN"))'="" G HCPCS4
  1. HCPCS3 D ITEM^RMPRPIYP(RMPRSTN("IEN"),RMPR1("HCPCS"),.RMPR11,.RMPREXC)
  1. I RMPREXC="T" G RCX
  1. I RMPREXC="P"!(RMPREXC="^") G HCPCS
  1. S RMPR11("STATION")=RMPRSTN("IEN")
  1. S RMPR11("STATION IEN")=RMPRSTN("IEN")
  1. ;
  1. ; display selected HCPCS and item and continue
  1. HCPCS4 W !!,"HCPCS: "_$G(RMPR1("HCPCS"))_" "_$G(RMPR1("SHORT DESC"))
  1. W !!,"IFCAP Item: ",$G(RMPR11("ITEM MASTER"))
  1. W !!,"PIP Item desc.: ",$G(RMPR11("DESCRIPTION"))
  1. ;
  1. ; call module to display and select orders
  1. PORD D PORD^RMPRPIYY(RMPRSTN("IEN"),RMPR1("HCPCS"),RMPR11("ITEM"),.RMPR41,.RMPREXC)
  1. I RMPREXC="P" G HCPCS
  1. I RMPREXC="T" G RCX
  1. I RMPREXC="",+$G(RMPR41("IEN")) D
  1. . S RMPRQTY=RMPR41("BALANCE QTY")
  1. . K RMPRVEND
  1. . S RMPRVEND("IEN")=RMPR41("VENDOR IEN")
  1. . Q
  1. ;
  1. ;***** QTY - call prompt for Quantity
  1. QTY K RMPR41N("ORDER QTY")
  1. W ! D QTY^RMPRPIY5(.RMPRQTY,.RMPREXC)
  1. I RMPREXC="T" G RCX
  1. I RMPREXC="^" D MESS G HCPCS
  1. I RMPREXC="P" G HCPCS
  1. S RMPRQTY=+$G(RMPRQTY)
  1. I 'RMPRQTY D G HCPCS
  1. . W !,"No quantity entered!"
  1. . H 3
  1. . Q
  1. I +$G(RMPR41("IEN")),RMPRQTY>RMPR41("BALANCE QTY") G QTYA
  1. G UCST
  1. ;
  1. ; If receive quantity is greater than o/s order balance ask if
  1. ; changing the order qty
  1. QTYA D YNQTY(.RMPRYN,.RMPREXC)
  1. I RMPREXC="T" G RCX
  1. I RMPREXC="^" D MESS G HCPCS
  1. I RMPREXC="P" G QTY
  1. I RMPRYN="N" G QTY
  1. S RMPR41N("ORDER QTY")=RMPR41("ORDER QTY")+(RMPRQTY-RMPR41("BALANCE QTY"))
  1. ;
  1. ;***** UCST - call prompt for Unit Cost
  1. UCST D UCST^RMPRPIY5(.RMPRUCST,.RMPREXC)
  1. I RMPREXC="P" G QTY
  1. I RMPREXC="^" D MESS G HCPCS
  1. I RMPREXC="T" G RCX
  1. S RMPRUCST=+$G(RMPRUCST)
  1. ;
  1. ;***** TVAL - Total Value - use if Unit Cost not used
  1. TVAL I RMPRUCST D G VEND
  1. . S RMPRTVAL=$J(RMPRQTY*RMPRUCST,0,2)
  1. . W !,"TOTAL COST OF QUANTITY: "_RMPRTVAL
  1. . Q
  1. D TVAL^RMPRPIY5(.RMPRTVAL,.RMPREXC)
  1. I RMPREXC="P" G UCST
  1. I RMPREXC="^" D MESS G HCPCS
  1. I RMPREXC="T" G RCX
  1. ;
  1. ;***** VEND - prompt for Vendor
  1. VEND K RMPR41N("VENDOR IEN")
  1. D VEND^RMPRPIY5(.RMPRVEND,.RMPREXC)
  1. I RMPREXC="T" G RCX
  1. I RMPREXC="^" D MESS G HCPCS
  1. I RMPREXC="P" G UCST
  1. I RMPRVEND("IEN")=$G(RMPR41("VENDOR IEN")) G UNIT
  1. ;
  1. ;***** VENDA - vendor not same as order vendor so asK if changing
  1. D YNVND(.RMPRYN,.RMPREXC)
  1. I RMPREXC="T" G RCX
  1. I RMPREXC="^" D MESS G HCPCS
  1. I RMPREXC="P" G VEND
  1. I RMPRYN="N" G UNIT
  1. S RMPR41N("VENDOR IEN")=RMPRVEND("IEN")
  1. ;
  1. ;***** UNIT - call prompt for UNIT OF ISSUE
  1. UNIT D UNIT^RMPRPIY5(.RMPRUNI,.RMPREXC)
  1. I RMPREXC="P" G UCST
  1. I RMPREXC="^" D MESS G HCPCS
  1. I RMPREXC="T" G RCX
  1. S RMPRUNI("UNIT")=RMPRUNI("IEN")
  1. ;
  1. ;***** LOCN - prompt for location (if more than 1)
  1. LOCN S RMPRLCN=$$LOC1^RMPRPIYB(RMPRSTN("IEN"))
  1. I RMPRLCN D G TRANS
  1. . K RMPR5
  1. . S RMPR5("IEN")=RMPRLCN
  1. . S RMPRERR=$$GET^RMPRPIX5(.RMPR5)
  1. . W !,"Location: "_RMPR5("NAME")
  1. . Q
  1. D LOCNM^RMPRPIY7(RMPRSTN("IEN"),.RMPR5,.RMPREXC)
  1. I RMPREXC="T" G RCX
  1. I RMPREXC="^" D MESS G HCPCS
  1. I RMPREXC="P" G UCST
  1. ;
  1. ;***** TRANS - Now create receipt transaction
  1. TRANS S RMPR11("STATION")=RMPRSTN("IEN")
  1. S RMPR11("STATION IEN")=RMPRSTN("IEN")
  1. I '$D(^RMPR(661.4,"ASLHI",RMPRSTN("IEN"),RMPR5("IEN"),RMPR11("HCPCS"),RMPR11("ITEM"))) D
  1. . S RMPR4("RE-ORDER QTY")=0
  1. . S RMPRERR=$$CRE^RMPRPIX4(.RMPR4,.RMPR11,.RMPR5)
  1. . Q
  1. S RMPR11("STATION")=RMPRSTN("IEN")
  1. S RMPR11("STATION IEN")=RMPRSTN("IEN")
  1. S RMPR6("QUANTITY")=RMPRQTY
  1. S RMPR6("VALUE")=RMPRTVAL
  1. S RMPR6("VENDOR")=RMPRVEND("IEN")
  1. S RMPR6("UNIT")=RMPRUNI("UNIT")
  1. I $D(RMPR41N("ORDER QTY")) S RMPR41("ORDER QTY")=RMPR41N("ORDER QTY")
  1. I $D(RMPR41N("VENDOR IEN")) S RMPR41("VENDOR IEN")=RMPR41N("VENDOR IEN")
  1. S RMPRERR=$$REC^RMPRPIU8(.RMPR6,.RMPR11,.RMPR5,1,.RMPR41) ;receipt API
  1. I RMPRERR D G RCX
  1. . W !!,"** Item could not be received, please contact support."
  1. . H 3
  1. . Q
  1. E D
  1. . W !!,"** Item has been received and inventory updated."
  1. . W !," If you are using barcoding you should now print labels"
  1. . W !," for the items received.",!
  1. . Q
  1. ;
  1. ;***** NLAB - call prompt for number of labels to print
  1. NLAB S RMPRNLAB=RMPR6("QUANTITY")
  1. W ! D NLABP^RMPRPIYS(.RMPRNLAB,RMPR6("QUANTITY"),.RMPREXC)
  1. I RMPREXC="T" G RCX
  1. I RMPREXC="P" G RCNX
  1. I RMPREXC="^" G RCNX
  1. I RMPRNLAB=0 G RCNX
  1. ;
  1. ;***** SELP - call prompt for barcode print device
  1. SELP ;W ! D SELP^RMPRPI11(.RMPRBCP,.RMPREXC,.RMPRQ,.RMPRIOP)
  1. ;I RMPREXC'="" G NLAB
  1. S RMPRBARC=RMPR11("HCPCS")_"-"_$P(RMPR6("DATE&TIME"),".",1)_$P(RMPR6("DATE&TIME"),".",2)
  1. S RMPRITXT("DATE")=$E(RMPR6("DATE&TIME"),4,5)_"/"_$E(RMPR6("DATE&TIME"),6,7)_"/"_(1700+$E(RMPR6("DATE&TIME"),1,3))
  1. S RMPRITXT("ITEM")=RMPR11("HCPCS-ITEM")
  1. S RMPRITXT("ITEM DESC")=RMPR11("DESCRIPTION")
  1. S RMPRITXT("MASTER DESC")=RMPR11("ITEM MASTER")
  1. S RMPRITXT("UNIT PRICE")=RMPRUCST
  1. S RMPRITXT("VENDOR")=RMPRVEND("NAME")
  1. S RMPRITXT("LOCATION")=RMPR5("NAME")
  1. D PRINT^RMPRPIYS
  1. RCNX K RMPR6,RMPRTVAL,RMPRQTY,RMPRUCST,RMPRBCP,RMPRQ,RMPRIOP,RMPRNLAB
  1. K RMPRBARC,RMPRITXT,RMPR41N,RMPR41,RMPRVEND
  1. G HCPCS
  1. RCX D KILL^XUSCLEAN
  1. Q
  1. ;
  1. MESS W !!,"*** NOTHING RECEIVE !!!",!
  1. Q
  1. ;
  1. ; Y/N Prompt to confirm change of order qty
  1. YNQTY(RMPRYN,RMPREXC) ;
  1. N DIR,X,Y,DA,DUOUT,DTOUT,DIROUT,DIRUT
  1. S RMPRYN="N"
  1. S RMPREXC=""
  1. S DIR(0)="Y"
  1. S DIR("A",1)="The entered quantity is greater than the outstanding balance ("_RMPR41("BALANCE QTY")_")"
  1. S DIR("A",2)="still on order."
  1. S DIR("A")="Do you want to increase the original order quantity"
  1. D ^DIR
  1. I $D(DTOUT) S RMPREXC="T" G YNQTYX
  1. I $D(DIROUT) S RMPREXC="P" G YNQTYX
  1. I X=""!(X["^")!($D(DUOUT)) S RMPREXC="^" G YNQTYX
  1. S:Y RMPRYN="Y"
  1. YNQTYX Q
  1. ;
  1. ; Y/N Prompt to confirm change of order Vendor
  1. YNVND(RMPRYN,RMPREXC) ;
  1. N DIR,X,Y,DA,DUOUT,DTOUT,DIROUT,DIRUT
  1. S RMPRYN="N"
  1. S RMPREXC=""
  1. S DIR(0)="Y"
  1. S DIR("A",1)="The entered Vendor is not the same as on the original order"
  1. S DIR("A")="Do you want to change the Vendor on the order"
  1. D ^DIR
  1. I $D(DTOUT) S RMPREXC="T" G YNVNDX
  1. I $D(DIROUT) S RMPREXC="P" G YNVNDX
  1. I X=""!(X["^")!($D(DUOUT)) S RMPREXC="^" G YNVNDX
  1. S:Y RMPRYN="Y"
  1. YNVNDX Q