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