| 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 | 
|---|