| 1 | PRCPUDPT ;WISC/RFJ-distribution point selection                     ;10 Sep 93
 | 
|---|
| 2 |  ;;5.1;IFCAP;;Oct 20, 2000
 | 
|---|
| 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  Q
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 | TO(INVPT) ;  select the distr pt which invpt distributes stock TO
 | 
|---|
| 8 |  ;  return da; 0 no item selected; ^ for ^ entered or timeout
 | 
|---|
| 9 |  I '$D(^PRCP(445,+INVPT,0)) Q ""
 | 
|---|
| 10 |  N %,C,DA,DIC,DISYS,DTOUT,DUOUT,I,PRCPPRIV,X,Y
 | 
|---|
| 11 |  S:'$D(^PRCP(445,INVPT,2,0)) ^(0)="^445.03PA^^"
 | 
|---|
| 12 |  S DIC="^PRCP(445,"_INVPT_",2,",DIC(0)="QEAM",DIC("W")="I $P($G(^PRCP(445,Y,0)),U,2)=""Y"" W ?60,""KEEP PERPETUAL INV""",DA=INVPT,PRCPPRIV=1
 | 
|---|
| 13 |  W ! D ^DIC
 | 
|---|
| 14 |  Q $S($G(DUOUT):"^",$G(DTOUT):"^",Y<1:0,1:+Y)
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 | FROM(DISTRPT) ;  select the inventory pt which distrpt receives stock FROM
 | 
|---|
| 18 |  ;  return da; 0 no item selected; ^ for ^ entered or timeout
 | 
|---|
| 19 |  I '$D(^PRCP(445,+DISTRPT,0)) Q 0
 | 
|---|
| 20 |  N %,DIC,DTOUT,DUOUT,PRCPPRIV,TYPE,X,Y
 | 
|---|
| 21 |  S TYPE=$P(^PRCP(445,DISTRPT,0),"^",3)
 | 
|---|
| 22 |  S DIC="^PRCP(445,",DIC(0)="QEAM",DIC("S")="I $D(^PRCP(445,+Y,2,DISTRPT)),$P(^PRCP(445,+Y,0),U,3)="_$S(TYPE="P":"""W""",TYPE="S":"""P""",1:"""""")
 | 
|---|
| 23 |  S DIC("A")="Select "_$S(TYPE="P":"WAREHOUSE",TYPE="S":"PRIMARY",1:"")_" Inventory Distribution Point: ",PRCPPRIV=1
 | 
|---|
| 24 |  W ! D ^DIC
 | 
|---|
| 25 |  Q $S($G(DUOUT):"^",$G(DTOUT):"^",Y<1:0,1:+Y)
 | 
|---|
| 26 |  ;
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 | FROMCHEK(DISTRPT,SELECT) ;  check to see if distrpt is stocked by none
 | 
|---|
| 29 |  ;  or one inventory points
 | 
|---|
| 30 |  ;  pass select=1 to ask for selection if stocked by more than one
 | 
|---|
| 31 |  ;  return da if stocked by one, 0 otherwise
 | 
|---|
| 32 |  ;  set variable prcpfone=1 if only stocked by one inventory pt
 | 
|---|
| 33 |  ;  set variable prcpfnon=1 if not stocked by any inventory pts
 | 
|---|
| 34 |  K PRCPFONE,PRCPFNON
 | 
|---|
| 35 |  N %,DA,X
 | 
|---|
| 36 |  S X=0 F %=0:1 S X=$O(^PRCP(445,"AB",+DISTRPT,X)) Q:'X  S DA=X
 | 
|---|
| 37 |  I '% S PRCPFNON=1 Q 0
 | 
|---|
| 38 |  I %=1 S PRCPFONE=1 Q DA
 | 
|---|
| 39 |  I 'SELECT Q 0
 | 
|---|
| 40 |  Q $$FROM(DISTRPT)
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 |  ;
 | 
|---|
| 43 | SPD(DISTRPT,SELECT) ;  lookup and return only spd inventory point
 | 
|---|
| 44 |  ;  distrpt=secondary invpt stocked by spd
 | 
|---|
| 45 |  ;  select =ask for selection if set to 1
 | 
|---|
| 46 |  N SPD
 | 
|---|
| 47 |  S SPD=+$O(^PRCP(445,"ASPEC","S",0))
 | 
|---|
| 48 |  I '$D(^PRCP(445,SPD,2,+DISTRPT,0)) S SPD=""
 | 
|---|
| 49 |  I SPD="",SELECT Q $$FROMCHEK(DISTRPT,1)
 | 
|---|
| 50 |  I SPD="" Q 0
 | 
|---|
| 51 |  Q SPD
 | 
|---|