| 1 | PRCPUINV ;WISC/RFJ/DGL-inventory point selection ; 9/20/06 11:04am | 
|---|
| 2 | V ;;5.1;IFCAP;**1,98**;Oct 20, 2000;Build 37 | 
|---|
| 3 | ;Per VHA Directive 2004-038, this routine should not be modified. | 
|---|
| 4 | Q | 
|---|
| 5 | ; | 
|---|
| 6 | ; | 
|---|
| 7 | INVPT(PRCPSITE,PRCPTYPE,ADDNEW,PRCPUSER,DEFAULT) ;  select inventory point | 
|---|
| 8 | ;  prcptype=w or p or s | 
|---|
| 9 | ;  addnew  =1 to add new inventory points | 
|---|
| 10 | ;  prcpuser=1 to screen and set user | 
|---|
| 11 | ;  default =default inventory point | 
|---|
| 12 | ;  return da; 0 no item selected; ^ for ^ entered or timeout | 
|---|
| 13 | I 'PRCPSITE!("WPS"'[PRCPTYPE) Q "" | 
|---|
| 14 | N %,D0,DA,DI,DIE,DG,DIC,DISYS,DLAYGO,DQ,DR,PRC,PRCPPRIV,X,Y | 
|---|
| 15 | S PRC("SITE")=PRCPSITE | 
|---|
| 16 | ;  do not allow adding new entries for whse if defined | 
|---|
| 17 | I PRCPTYPE="W" F %=0:0 S %=$O(^PRCP(445,"AC","W",%)) Q:'%  I +$G(^PRCP(445,%,0))=PRCPSITE S ADDNEW=0 Q | 
|---|
| 18 | S DIC="^PRCP(445,",DIC(0)="QEAM",DIC("A")="Select a '"_$S(PRCPTYPE="W":"Warehouse",PRCPTYPE="P":"Primary",1:"Secondary")_"' Type Inventory Point: " | 
|---|
| 19 | I DEFAULT'="" S DIC("B")=DEFAULT | 
|---|
| 20 | I ADDNEW S DIC(0)="QEALM",DLAYGO=445,DIC("DR")=".8;.7///"_PRCPTYPE_";.5//"_$S(PRCPTYPE="S":"NO",1:"YES")_";.6//"_$S(PRCPTYPE="S":"NO",1:"YES")_";"_$S(PRCPTYPE="S":"",1:".9;") | 
|---|
| 21 | S DIC("S")="I +^(0)=PRCPSITE,$P(^(0),U,3)=PRCPTYPE"_$S(PRCPUSER:",$D(^PRCP(445,+Y,4,+$G(DUZ),0))",1:""),PRCPPRIV=1 | 
|---|
| 22 | W ! D ^DIC | 
|---|
| 23 | ;  if new entry added, add authorized user | 
|---|
| 24 | I $P(Y,"^",3),$G(DUZ),PRCPUSER D | 
|---|
| 25 | .   D ADDUSER^PRCPXTRM(+Y,DUZ) | 
|---|
| 26 | .   W !?2,"TYPE OF INVENTORY POINT: ",$S(PRCPTYPE="W":"WAREHOUSE",PRCPTYPE="P":"PRIMARY",1:"SECONDARY") | 
|---|
| 27 | Q $S($G(DUOUT):"^",$G(DTOUT):"^",Y<1:0,1:+Y) | 
|---|
| 28 | ; | 
|---|
| 29 | ; | 
|---|
| 30 | TYPE ;  called from 445,.7 input transform.  you cannot have | 
|---|
| 31 | ;  multiple warehouses with the same station number | 
|---|
| 32 | N STATION,% | 
|---|
| 33 | S STATION=+$G(^PRCP(445,DA,0)),%=0 | 
|---|
| 34 | F  S %=$O(^PRCP(445,"AC","W",%)) Q:'%  I %'=DA,+$G(^PRCP(445,%,0))=STATION W !?2,"YOU CANNOT HAVE MULTIPLE WAREHOUSES WITH THE SAME STATION NUMBER." K X Q | 
|---|
| 35 | Q | 
|---|
| 36 | ; | 
|---|
| 37 | ; | 
|---|
| 38 | KILL(INVPT) ;  update all pointers when deleting an inventory point | 
|---|
| 39 | ; (invoked from 'DEL' node in .01 field of file 445) | 
|---|
| 40 | ; | 
|---|
| 41 | N %,DATA,NAME,OUTORD,X | 
|---|
| 42 | S XP(1)="You cannot delete inventory points after they are created." | 
|---|
| 43 | S XP(2)="This action removes all the items, distribution points, users," | 
|---|
| 44 | S XP(3)="etc., for the inventory point and changes the name to" | 
|---|
| 45 | S XP(4)="STATIONNUMBER-'***INACTIVE_#***' where # is the internal entry number." | 
|---|
| 46 | S XP="",XP(5)="",XP(6)="  ARE YOU SURE YOU WANT TO PROCEED" | 
|---|
| 47 | I $$YN^PRCPUYN(2)'=1 Q | 
|---|
| 48 | ; | 
|---|
| 49 | ; quit if this inventory point has outstanding distribution orders | 
|---|
| 50 | S DATA=$P(^PRCP(445,INVPT,0),"^",3) ; search for primary or secondary | 
|---|
| 51 | I DATA="P"!(DATA="S") D  I OUTORD Q | 
|---|
| 52 | . S OUTORD=$$ORDCHK^PRCPUITM(0,INVPT,"REC","") | 
|---|
| 53 | . I OUTORD D  Q | 
|---|
| 54 | . . D EN^DDIOL("You must first post or delete outstanding orders for this inventory point.") | 
|---|
| 55 | . . I +$G(DQ) S DE(+$G(DQ))=$P($G(^PRCP(445,INVPT,0)),"^",1) | 
|---|
| 56 | . . W !! | 
|---|
| 57 | ; | 
|---|
| 58 | ; if the inventory point is linked to a supply station | 
|---|
| 59 | I $P($G(^PRCP(445,INVPT,5)),"^",1)]"" D  Q | 
|---|
| 60 | . D EN^DDIOL("This inventory point is linked to a supply station.") | 
|---|
| 61 | . D EN^DDIOL("You must first delete the Supply Station Provider.") | 
|---|
| 62 | ; | 
|---|
| 63 | W !?3,"Wait, deleting data, changing name, etc..." | 
|---|
| 64 | S DATA=$P($G(^PRCP(445,INVPT,5)),"^",1) ; supply station | 
|---|
| 65 | I DATA K ^PRCP(445,"AI",DATA,INVPT) | 
|---|
| 66 | ;  remove x-ref on inventory points | 
|---|
| 67 | S %=0 F  S %=$O(^PRCP(445,INVPT,2,%)) Q:'%  K ^PRCP(445,"AB",%,INVPT,%) | 
|---|
| 68 | ;  remove x-ref on inventory,ODI users ("AJ" (ODI) from PRC*5.1*98) | 
|---|
| 69 | S %=0 F  S %=$O(^PRCP(445,INVPT,4,%)) Q:'%  K ^PRCP(445,"AD",%,INVPT,%) | 
|---|
| 70 | S %=0 F  S %=$O(^PRCP(445,INVPT,9,%)) Q:'%  K ^PRCP(445,"AJ",%,INVPT,%) | 
|---|
| 71 | ;  remove x-ref on items | 
|---|
| 72 | S %=0 F  S %=$O(^PRCP(445,INVPT,1,%)) Q:'%  D | 
|---|
| 73 | . K ^PRCP(445,"AE",%,INVPT,%) | 
|---|
| 74 | . I DATA K ^PRCP(445,"AH",%,DATA,INVPT) | 
|---|
| 75 | ;  change name, etc | 
|---|
| 76 | S X=^PRCP(445,INVPT,0),NAME=$P(X,"^") | 
|---|
| 77 | S:$P(NAME,"-",2,99)="" $P(NAME,"-",2,99)=" " | 
|---|
| 78 | S:$P(X,"^",5)="" $P(X,"^",5)=" " | 
|---|
| 79 | K ^PRCP(445,"AF",+X,$P(X,"^",5),INVPT) | 
|---|
| 80 | K ^PRCP(445,"B",$P(X,"^"),INVPT) | 
|---|
| 81 | K ^PRCP(445,"C",$P(NAME,"-",2,99),INVPT) | 
|---|
| 82 | K ^PRCP(445,INVPT) | 
|---|
| 83 | S $P(NAME,"-",2,99)="***INACTIVE_"_INVPT_"***" | 
|---|
| 84 | S ^PRCP(445,"B",NAME,INVPT)="" | 
|---|
| 85 | S ^PRCP(445,"C",$P(NAME,"-",2),INVPT)="" | 
|---|
| 86 | S ^PRCP(445,INVPT,0)=NAME_"^N^"_$P(X,"^",3)_"^^^N" | 
|---|
| 87 | W !?5,"Name changed to: ",NAME | 
|---|
| 88 | ; | 
|---|
| 89 | W !?3,"Removing as a distribution point for the following inventory points:" | 
|---|
| 90 | S %=0 F  S %=$O(^PRCP(445,"AB",INVPT,%)) Q:'%  I $D(^PRCP(445,%,2,INVPT)) W !?5,$$INVNAME^PRCPUX1(%) K ^PRCP(445,%,2,INVPT) I $D(^PRCP(445,%,2,0)) S X=^(0) D | 
|---|
| 91 | .   S $P(X,"^",4)=$P(X,"^",4)-1 S:$P(X,"^",4)<0 $P(X,"^",4)=0 S:$P(X,"^",3)=INVPT $P(X,"^",3)="" S ^PRCP(445,%,2,0)=X | 
|---|
| 92 | K ^PRCP(445,"AB",INVPT) | 
|---|
| 93 | ; | 
|---|
| 94 | W !?3,"Removing link to the following fund control points:" | 
|---|
| 95 | S %=0 F  S %=$O(^PRC(420,"AE",%)) Q:'%  S PRC("SITE")=%,X=0 F  S X=$O(^PRC(420,"AE",%,INVPT,X)) Q:'X  W !?5,%,"-",X D DEL^PRCPUFCP(X,INVPT) | 
|---|
| 96 | I +$G(DQ) S DE(+$G(DQ))=NAME | 
|---|
| 97 | W !! | 
|---|
| 98 | Q | 
|---|
| 99 | ; | 
|---|
| 100 | ;PRCPUINV | 
|---|