| 1 | RMPR5NTU ;HIN/RVD-PROS INVENTORY TRANS/UPDATE UTILITY ;2/11/98
 | 
|---|
| 2 |  ;;3.0;PROSTHETICS;**33,34,37**;Feb 09, 1996
 | 
|---|
| 3 |  D DIV4^RMPRSIT I $D(Y),(Y<0) K DIC("B") Q
 | 
|---|
| 4 |  W @IOF
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 | TRAN ;ask for Location.
 | 
|---|
| 7 |  S X="NOW" D ^%DT S RMDAT1=Y D DD^%DT S RMDAT=Y
 | 
|---|
| 8 |  K DTOUT,DUOUT,DIC("B")
 | 
|---|
| 9 |  W !!,"Transferring Item Quantity to Another LOCATION....."
 | 
|---|
| 10 |  S DZ="??",D="B",DIC("S")="I $P(^RMPR(661.3,+Y,0),U,3)=RMPR(""STA"")"
 | 
|---|
| 11 |  S DIC="^RMPR(661.3,",DIC(0)="AEQM"
 | 
|---|
| 12 |  ;I $D(^RMPR(661.3,"B")) D DQ^DICQ
 | 
|---|
| 13 |  S D="B",DIC("A")="From Location:  " D MIX^DIC1
 | 
|---|
| 14 |  G:Y'>0!$D(DTOUT)!$D(DUOUT) EXIT
 | 
|---|
| 15 |  S (RMLOFDA,RMLODA)=+Y,(RMLOC,RMLOF)=$P(^RMPR(661.3,+Y,0),U,1) K DIC("S"),DIC("B")
 | 
|---|
| 16 |  S DA(1)=RMLOFDA,DIC="^RMPR(661.3,"_DA(1)_",1,"
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 | THCPCS ;ask for HCPCS to transfer.
 | 
|---|
| 19 |  S DIC("A")="Enter HCPCS to Transfer: " K DTOUT,DUOUT,DIC("S"),DIC("B")
 | 
|---|
| 20 |  S DIC(0)="AEMQ",DIC("W")="S RZ=$P(^RMPR(661.3,RMLODA,1,+Y,0),U,1) I RZ W ?25,$P($G(^RMPR(661.1,RZ,0)),U,2)"
 | 
|---|
| 21 |  S DIC="^RMPR(661.3,"_RMLODA_",1,",DA(1)=RMLODA D ^DIC
 | 
|---|
| 22 |  I +Y'>0!$D(DTOUT)!$D(DUOUT) W !,"** No HCPCS selected..." G TRAN
 | 
|---|
| 23 |  S RMHCFDA=+Y,RMDAHC=$P(^RMPR(661.3,RMLODA,1,+Y,0),U,1),RMHCPC=$P(^RMPR(661.1,RMDAHC,0),U,1)
 | 
|---|
| 24 |  S DIC(0)="ANEMQ",DA(1)=RMHCFDA,DA(2)=RMLOFDA
 | 
|---|
| 25 |  S DIC="^RMPR(661.3,"_DA(2)_",1,"_DA(1)_",1,"
 | 
|---|
| 26 |  ;
 | 
|---|
| 27 | LIST ;ask for PSAS Item to transfer.
 | 
|---|
| 28 |  ;I $D(^RMPR(661.3,RMLOFDA,1,RMHCFDA,1,"B")) S DZ="??",D="B" D DQ^DICQ
 | 
|---|
| 29 |  ;S DIC("B")=$O(^RMPR(661.3,RMLOFDA,1,RMHCFDA,1,"B",0))
 | 
|---|
| 30 |  S DIC("A")="Enter item to transfer: " D ^DIC
 | 
|---|
| 31 |  G:(+Y'>0)!$D(DTOUT)!$D(DUOUT) TRAN
 | 
|---|
| 32 |  L +^RMPR(661.3,RMLOFDA,1,RMHCFDA,1,+Y):2
 | 
|---|
| 33 |  I '$T W !,"Record in use. Try again later..." G TRAN
 | 
|---|
| 34 |  S RMITFDA=+Y,RMIT=$P(^RMPR(661.3,RMLOFDA,1,RMHCFDA,1,+Y,0),U,1)
 | 
|---|
| 35 |  S RMDAFIT=$P(RMIT,"-",2)
 | 
|---|
| 36 |  S RM3=^RMPR(661.3,RMLOFDA,1,RMHCFDA,1,RMITFDA,0)
 | 
|---|
| 37 |  S RMBA=$P(RM3,U,2),RMCO=$P(RM3,U,3),RMSO=$P(RM3,U,9),RMAV=$P(RM3,U,10)
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 | TRANQ ;ask for Quantity to transfer.
 | 
|---|
| 40 |  S RMQTY=0 R !,"Enter Quantity to transfer: ",RMQTY:DTIME
 | 
|---|
| 41 |  I $D(DTOUT)!($D(DUOUT))!(RMQTY="^") W !,"*** Nothing transferred ..." G EXIT
 | 
|---|
| 42 |  I RMQTY["?"!(RMQTY<.0001) W $C(7),!!,"Current balance is = ",RMBA W:RMBA>0 !,"Enter quantity 1 to ",RMBA," or" W " enter '^' to QUIT? " G TRANQ
 | 
|---|
| 43 |  I RMQTY>RMBA W !!,$C(7),"Quantity to transfer is greater than current balance.." G TRANQ
 | 
|---|
| 44 |  ;
 | 
|---|
| 45 | TRANT ;ask for forwarding Location.
 | 
|---|
| 46 |  S DIC("S")="I $D(^RMPR(661.3,""C"",RMDAHC,+Y)),($P(^RMPR(661.3,+Y,0),U,1)'=RMLOF)"
 | 
|---|
| 47 |  S DZ="??",D="B"
 | 
|---|
| 48 |  S DIC="^RMPR(661.3,",DIC(0)="AEQM"
 | 
|---|
| 49 |  S DIC("A")="Enter Receiving Location:  ",DIC="^RMPR(661.3," K DIC("B")
 | 
|---|
| 50 |  S DIC(0)="AEQ",D="B" D MIX^DIC1
 | 
|---|
| 51 |  I $D(DTOUT)!($D(DUOUT)) W !,"*** Nothing transferred ..." G EXIT
 | 
|---|
| 52 |  G:Y'>0 TRANT
 | 
|---|
| 53 |  S RMLORDA=+Y
 | 
|---|
| 54 |  I RMLOFDA=RMLORDA W !,$C(7),"***Forwarding and Receiving Location is the same!!!!" G TRANT
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 | TRANI S RMHCRDA=$O(^RMPR(661.3,RMLORDA,1,"B",RMDAHC,0))
 | 
|---|
| 57 |  S RMDARHC=$P(^RMPR(661.3,RMLORDA,1,RMHCRDA,0),U,1)
 | 
|---|
| 58 |  ;ask/enter forwarding item
 | 
|---|
| 59 |  S DIC(0)="ANEMQ",DA(1)=RMHCRDA,DA(2)=RMLORDA K DIC("S")
 | 
|---|
| 60 |  S DIC="^RMPR(661.3,"_DA(2)_",1,"_DA(1)_",1,"
 | 
|---|
| 61 |  S DIC("A")="Enter Receiving Item: " D ^DIC
 | 
|---|
| 62 |  G:(+Y'>0)!$D(DTOUT)!$D(DUOUT) EXIT
 | 
|---|
| 63 |  L +^RMPR(661.3,RMLORDA,1,RMHCRDA,1,+Y):2
 | 
|---|
| 64 |  I '$T W !,"Record in use. Try again later..." G TRANI
 | 
|---|
| 65 |  S RMITRDA=+Y,RMIT=$P(^RMPR(661.3,RMLORDA,1,RMHCRDA,1,+Y,0),U,1)
 | 
|---|
| 66 |  ;
 | 
|---|
| 67 |  S RMTO=$G(^RMPR(661.3,RMLORDA,1,RMHCRDA,1,RMITRDA,0))
 | 
|---|
| 68 |  S RMBAR=$P(RMTO,U,2),RMBAR=RMBAR+RMQTY,RMCOR=RMAV*RMBAR
 | 
|---|
| 69 |  S RMLOR=$P(^RMPR(661.3,RMLORDA,0),U,1)
 | 
|---|
| 70 |  S RMFR=$G(^RMPR(661.3,RMLOFDA,1,RMHCFDA,1,RMITFDA,0))
 | 
|---|
| 71 |  S RMBAF=$P(RMFR,U,2),RMBAF=RMBAF-RMQTY,RMCOF=RMAV*RMBAF
 | 
|---|
| 72 |  W !,"Quantity ",RMQTY," was transferred from ",RMLOF," to ",RMLOR
 | 
|---|
| 73 |  S $P(^RMPR(661.3,RMLOFDA,1,RMHCFDA,1,RMITFDA,0),U,2)=RMBAF
 | 
|---|
| 74 |  S $P(^RMPR(661.3,RMLORDA,1,RMHCRDA,1,RMITRDA,0),U,2)=RMBAR
 | 
|---|
| 75 |  S $P(^RMPR(661.3,RMLOFDA,1,RMHCFDA,1,RMITFDA,0),U,3)=RMCOF
 | 
|---|
| 76 |  S $P(^RMPR(661.3,RMLORDA,1,RMHCRDA,1,RMITRDA,0),U,3)=RMCOR
 | 
|---|
| 77 |  S RMRSTA=$P($G(^RMPR(661.3,RMLORDA,0)),U,3)
 | 
|---|
| 78 |  ;
 | 
|---|
| 79 | STAT ;create transfer stat for an item
 | 
|---|
| 80 |  D BAL^RMPR5NU1
 | 
|---|
| 81 |  L -^RMPR(661.3,RMLORDA,1,RMHCRDA,1,RMITRDA)
 | 
|---|
| 82 |  L -^RMPR(661.3,RMLOFDA,1,RMHCFDA,1,RMITFDA)
 | 
|---|
| 83 |  S DIC="^RMPR(661.2,",DLAYGO=661.2,X=RMDAT1,DIC(0)="L" K DD,DO
 | 
|---|
| 84 |  D FILE^DICN G:Y'>0 TRAN S DA=+Y
 | 
|---|
| 85 |  S RMMES="QTY "_RMQTY_" transferred from "_$E(RMLOF,1,8)_" to "_$E(RMLOR,1,8)
 | 
|---|
| 86 |  S ^RMPR(661.2,DA,0)=RMDAT1_"^^^"_RMDAHC_"^^^"_DUZ_"^^"_RMIT_"^^^"_RMTOBA_"^"_RMMES_"^"_$J(RMTOCO,0,2)_"^"_RMPR("STA")_"^"_RMLORDA_"^"_$J(RMAVA,0,2)
 | 
|---|
| 87 |  S DIK=DIC D IX1^DIK
 | 
|---|
| 88 |  I RMPR("STA")'=RMRSTA D
 | 
|---|
| 89 |  .S RMFSTA=RMPR("STA"),RMPR("STA")=RMRSTA D BAL^RMPR5NU1
 | 
|---|
| 90 |  .S DIC="^RMPR(661.2,",DLAYGO=661.2,X=RMDAT1,DIC(0)="L" K DD,DO
 | 
|---|
| 91 |  .D FILE^DICN G:Y'>0 TRAN S DA=+Y
 | 
|---|
| 92 |  .S RMMES="QTY "_RMQTY_" transferred from "_$E(RMLOF,1,8)_" to "_$E(RMLOR,1,8)
 | 
|---|
| 93 |  .S ^RMPR(661.2,DA,0)=RMDAT1_"^^^"_RMDAHC_"^^^"_DUZ_"^^"_RMIT_"^^^"_RMTOBA_"^"_RMMES_"^"_$J(RMTOCO,0,2)_"^"_RMRSTA_"^"_RMLORDA_"^"_$J(RMAVA,0,2)
 | 
|---|
| 94 |  .S RMPR("STA")=RMFSTA
 | 
|---|
| 95 |  .S DIK=DIC D IX1^DIK
 | 
|---|
| 96 |  W !,"*** Item was transferred..."
 | 
|---|
| 97 |  H 1 G TRAN
 | 
|---|
| 98 |  ;
 | 
|---|
| 99 | UPD ;update current inventory item balance.
 | 
|---|
| 100 |  W @IOF
 | 
|---|
| 101 | UPD1 W !!,"Updating Item in a Location.....",!
 | 
|---|
| 102 |  D DIV4^RMPRSIT I $D(Y),(Y<0) K DIC("B") Q
 | 
|---|
| 103 |  S X="NOW" D ^%DT S RMDAT1=Y D DD^%DT S RMDAT=Y K DTOUT,DUOUT,DIC("B")
 | 
|---|
| 104 |  S DZ="??",D="B",DIC("S")="I $P(^RMPR(661.3,+Y,0),U,3)=RMPR(""STA"")"
 | 
|---|
| 105 |  S DIC="^RMPR(661.3,",DIC(0)="AEQM"
 | 
|---|
| 106 |  ;I $D(^RMPR(661.3,"B")) D DQ^DICQ
 | 
|---|
| 107 |  S DIC("A")="Enter Pros Location: "
 | 
|---|
| 108 |  D MIX^DIC1 G:(+Y'>0)!($D(DTOUT))!$D(DUOUT) EXIT S RMLODA=+Y
 | 
|---|
| 109 |  S RMLOC=$P(^RMPR(661.3,+Y,0),U,1)
 | 
|---|
| 110 |  ;
 | 
|---|
| 111 | HCPC S DA(1)=RMLODA,DIC="^RMPR(661.3,"_DA(1)_",1," K DTOUT,DUOUT
 | 
|---|
| 112 |  K DTOUT,DUOUT,DIC("S"),DIR
 | 
|---|
| 113 |  S DIC("A")="Select HCPCS to Update: "
 | 
|---|
| 114 |  S DIC(0)="AEMQ",DIC("W")="S RZ=$P(^RMPR(661.3,RMLODA,1,+Y,0),U,1) I RZ W ?25,$P($G(^RMPR(661.1,RZ,0)),U,2)"
 | 
|---|
| 115 |  S DIC="^RMPR(661.3,"_RMLODA_",1," D ^DIC
 | 
|---|
| 116 |  I +Y'>0!$D(DTOUT)!$D(DUOUT) W !,"** No HCPCS selected..." G UPD1
 | 
|---|
| 117 |  S RMHCDA=+Y,RMDAHC=$P(^RMPR(661.3,RMLODA,1,+Y,0),U,1),RMHCPC=$P(^RMPR(661.1,RMDAHC,0),U,1)
 | 
|---|
| 118 |  ;
 | 
|---|
| 119 | ITEM ;
 | 
|---|
| 120 |  S DIC(0)="ANEMQ",DA(1)=RMHCDA,DA(2)=RMLODA
 | 
|---|
| 121 |  S DIC="^RMPR(661.3,"_DA(2)_",1,"_DA(1)_",1,"
 | 
|---|
| 122 |  G:'$D(^RMPR(661.3,RMLODA,1,RMHCDA,1,"B")) HCPC
 | 
|---|
| 123 |  ;I $D(^RMPR(661.3,RMLODA,1,RMHCDA,1,"B")) S DZ="??",D="B" D DQ^DICQ
 | 
|---|
| 124 |  S DIC("B")=$O(^RMPR(661.3,RMLODA,1,RMHCDA,1,"B",0))
 | 
|---|
| 125 |  S DIC("A")="Enter ITEM to Update: " D ^DIC K DIC("B")
 | 
|---|
| 126 |  G:(+Y'>0)!($D(DTOUT))!$D(DUOUT) HCPC S RMITDA=+Y
 | 
|---|
| 127 |  L +^RMPR(661.3,RMLODA,1,RMHCDA,1,+Y):2
 | 
|---|
| 128 |  I '$T W !,"Record in use. Try again later..." G ITEM
 | 
|---|
| 129 |  S RMIT=$P(^RMPR(661.3,RMLODA,1,RMHCDA,1,RMITDA,0),U,1)
 | 
|---|
| 130 |  S RMHCPC=$P(RMIT,"-",1),RMDAIT=$P(RMIT,"-",2)
 | 
|---|
| 131 |  S RM3=^RMPR(661.3,RMLODA,1,RMHCDA,1,RMITDA,0)
 | 
|---|
| 132 |  S RMBA=$P(RM3,U,2),RMCO=$P(RM3,U,3),RMUNI=$P(RM3,U,4),RMSOB=$P(RM3,U,9)
 | 
|---|
| 133 |  S RMRORA=$P(RM3,U,6),RMDIIA=$P(RM3,U,7),RMVENA=$P(RM3,U,5)
 | 
|---|
| 134 |  S DA(2)=RMLODA,DA(1)=RMHCDA,DA=RMITDA
 | 
|---|
| 135 |  S DIE="^RMPR(661.3,"_DA(2)_",1,"_DA(1)_",1,"
 | 
|---|
| 136 |  S DR="29R" D ^DIE
 | 
|---|
| 137 |  I $P(^RMPR(661.3,RMLODA,1,RMHCDA,1,RMITDA,0),U,9)="C" S DR="22R;24;25R;26;27"
 | 
|---|
| 138 |  E  S DR="22R;24;27"
 | 
|---|
| 139 |  D ^DIE
 | 
|---|
| 140 |  S (RMAVD,RMBAD,RMCOD)=0
 | 
|---|
| 141 |  S RM3=^RMPR(661.3,RMLODA,1,RMHCDA,1,RMITDA,0)
 | 
|---|
| 142 |  S RMBAA=$P(RM3,U,2),RMSO=$P(RM3,U,9),RMAVA=$P(RM3,U,10)
 | 
|---|
| 143 |  S RMRORAA=$P(RM3,U,6),RMDIIAA=$P(RM3,U,7),RMVENAA=$P(RM3,U,5)
 | 
|---|
| 144 |  S RMUNIA=$P(RM3,U,4)
 | 
|---|
| 145 |  I RMBAA=RMBA,RMRORA=RMRORAA,RMDIIA=RMDIIAA,RMVENA=RMVENAA,RMSO=RMSOB,RMUNI=RMUNIA W !,"*** Nothing updated...." G UPD1
 | 
|---|
| 146 |  S:RMBA'=RMBAA RMBAD=RMBAA-RMBA S RMCOA=RMBAA*RMAVA
 | 
|---|
| 147 |  S $P(^RMPR(661.3,RMLODA,1,RMHCDA,1,RMITDA,0),U,3)=RMCOA
 | 
|---|
| 148 |  ;
 | 
|---|
| 149 | STATUPD ;create UPDATE stat for an item
 | 
|---|
| 150 |  D BAL^RMPR5NU1
 | 
|---|
| 151 |  L -^RMPR(661.3,RMLODA,1,RMHCDA,1,RMITDA)
 | 
|---|
| 152 |  S DIC="^RMPR(661.2,",DLAYGO=661.2,X=RMDAT1,DIC(0)="L" K DD,DO
 | 
|---|
| 153 |  D FILE^DICN G:Y'>0 UPD1 S DA=+Y
 | 
|---|
| 154 |  S RMMESF="QTY updated by "_$E($P(^VA(200,DUZ,0),U,1),1,15)_":"
 | 
|---|
| 155 |  S ^RMPR(661.2,DA,0)=RMDAT1_"^^^"_RMDAHC_"^^^"_DUZ_"^"_RMBAD_"^"_RMIT_"^^^"_RMTOBA_"^"_RMMESF_"^"_$J(RMTOCO,0,2)_"^"_RMPR("STA")_"^"_RMLODA_"^"_$J(RMAVA,0,2)
 | 
|---|
| 156 |  W !,"*** Item was updated..."
 | 
|---|
| 157 |  S DIK=DIC D IX1^DIK
 | 
|---|
| 158 |  H 1 G UPD1
 | 
|---|
| 159 |  ;
 | 
|---|
| 160 | EXIT ;MAIN EXIT POINT
 | 
|---|
| 161 |  N RMPRSITE,RMPR D KILL^XUSCLEAN
 | 
|---|
| 162 |  Q
 | 
|---|