1 | PRCPUITM ;WISC/RFJ-select items utility ;10 Dec 91
|
---|
2 | V ;;5.1;IFCAP;**1**;Oct 20, 2000
|
---|
3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | ;
|
---|
7 | ITEM(INVPT,ADDNEW,SCREEN,DEFAULT) ; select item in inventory point
|
---|
8 | ; addnew=1 to add new items
|
---|
9 | ; screen=additional screen
|
---|
10 | ; default=default item master number
|
---|
11 | ; return itemda; 0 no item selected; ^ for ^ entered or timeout
|
---|
12 | ;
|
---|
13 | I '$D(^PRCP(445,+INVPT,0)) Q 0
|
---|
14 | N %,C,DA,DG,DISYS,DIC,DTOUT,DUOUT,I,PRCPSET,PRCPX,TYPE,X,Y
|
---|
15 | S DIC="^PRCP(445,"_INVPT_",1,"
|
---|
16 | S DIC(0)="QEAM"_$S(ADDNEW:"L",1:"")
|
---|
17 | S DIC("A")="Select "_$P($$INVNAME^PRCPUX1(INVPT),"-",2,99)_" ITEM: "
|
---|
18 | S TYPE=$P($G(^PRCP(445,INVPT,0)),"^",3)
|
---|
19 | S PRCPSET="I 0"
|
---|
20 | ;
|
---|
21 | ; whse screen
|
---|
22 | I TYPE="W" S PRCPSET="I $$PURCHASE^PRCPU441(+Y),'$$INACTIVE^PRCPU441(+Y),$$MANDSRCE^PRCPU441(+Y)=$O(^PRC(440,""AC"",""S"",0))"_$G(SCREEN)
|
---|
23 | ;
|
---|
24 | ; primary screen
|
---|
25 | I TYPE="P" S PRCPSET="I '$$INACTIVE^PRCPU441(+Y)"_$G(SCREEN)
|
---|
26 | ;
|
---|
27 | ; secondary screen
|
---|
28 | I TYPE="S" S PRCPSET="I '$$INACTIVE^PRCPU441(+Y),$O(^PRCP(445,""AB"","_INVPT_",0))"_$G(SCREEN)_" F PRCPX=0:0 S PRCPX=$O(^PRCP(445,""AB"","_INVPT_",PRCPX)) Q:'PRCPX I $D(^PRCP(445,PRCPX,1,+Y,0)) Q"
|
---|
29 | ;
|
---|
30 | S:'$D(^PRCP(445,INVPT,1,0)) ^(0)="^445.01IP^^"
|
---|
31 | S DIC("S")=PRCPSET
|
---|
32 | S DIC("W")="W ?10,$E($$DESCR^PRCPUX1("_INVPT_",+Y),1,20),?35,""NSN: "",$$NSN^PRCPUX1(+Y)"
|
---|
33 | S DA(1)=INVPT
|
---|
34 | I DEFAULT S DIC("B")=$$DESCR^PRCPUX1(INVPT,DEFAULT) I DIC("B")="" K DIC("B")
|
---|
35 | D ^DIC
|
---|
36 | Q $S($G(DUOUT):"^",$G(DTOUT):"^",Y<1:0,1:+Y)
|
---|
37 | ;
|
---|
38 | ;
|
---|
39 | MASTITEM(SCREEN) ; select item from master item file
|
---|
40 | ; screen=optional screen
|
---|
41 | ; return itemda; 0 no item selected; ^ for ^ entered or timeout
|
---|
42 | ;
|
---|
43 | N %,DDH,DIC,DTOUT,DUOUT,PRCPSET,X,Y
|
---|
44 | I $G(SCREEN)'="" S DIC("S")=SCREEN,PRCPSET=SCREEN
|
---|
45 | S DIC="^PRC(441,",DIC(0)="QEAM" D ^DIC
|
---|
46 | Q $S($G(DUOUT):"^",$G(DTOUT):"^",Y<1:0,1:+Y)
|
---|
47 | ;
|
---|
48 | ;
|
---|
49 | GETITEM(INVPT,ITEMDA) ; get data for item in invpt
|
---|
50 | ; return data in prcpdata array
|
---|
51 | K PRCPDATA
|
---|
52 | I '$D(^PRCP(445,+INVPT,1,+ITEMDA,0)) Q
|
---|
53 | N %,D0,DA,DIC,DIQ,DIQ2,DR
|
---|
54 | S DIC="^PRCP(445,"
|
---|
55 | S DR=1,DR(445.01)=".01:99"
|
---|
56 | S DA=INVPT,DA(445.01)=ITEMDA
|
---|
57 | S DIQ="PRCPDATA",DIQ(0)="E"
|
---|
58 | D EN^DIQ1
|
---|
59 | Q
|
---|
60 | ;
|
---|
61 | ;
|
---|
62 | DELETE(PRCPINPT,ITEMDA) ; check for deleting item from inventory point
|
---|
63 | I $G(^PRCP(445,+PRCPINPT,1,+ITEMDA,0))="" Q
|
---|
64 | N %,%H,%I,DATA,DIC,DISTR,DISYS,DUEIN,DUEOUT,INACTIVE,OUTORD,SITE,STRING,TYPE,X,Y
|
---|
65 | S DATA=^PRCP(445,PRCPINPT,1,ITEMDA,0)
|
---|
66 | I $P(DATA,"^",7) W !!,"QUANTITY ON HAND (",$P(DATA,"^",7),") NEEDS TO BE ADJUSTED TO ZERO." Q
|
---|
67 | I $P(DATA,"^",19) W !!,"QUANTITY NON-ISSUABLE (",$P(DATA,"^",19),") NEEDS TO BE ADJUSTED TO ZERO." Q
|
---|
68 | S INACTIVE=$P(^PRCP(445,PRCPINPT,0),"^",13)
|
---|
69 | I INACTIVE D NOW^%DTC S X1=X,X2=-(INACTIVE*30+1) D C^%DTC I $O(^PRCP(445,PRCPINPT,1,ITEMDA,2,$E(X,1,5)-.1))!($O(^PRCP(445,PRCPINPT,1,ITEMDA,3,X))) D Q
|
---|
70 | . W !!,"ITEM HAS HAD ACTIVITY DURING THE LAST ",INACTIVE," MONTHS."
|
---|
71 | S DUEIN=$$GETIN^PRCPUDUE(PRCPINPT,ITEMDA)
|
---|
72 | I DUEIN W !,"ITEM HAS DUE-INS: ",DUEIN
|
---|
73 | S DUEOUT=$$GETOUT^PRCPUDUE(PRCPINPT,ITEMDA)
|
---|
74 | I DUEOUT W !,"ITEM HAS DUE-OUTS: ",DUEOUT
|
---|
75 | W !,"Checking to see if this item is on an outstanding order...."
|
---|
76 | S OUTORD=$$ORDCHK(ITEMDA,PRCPINPT,"RCE","") I OUTORD D Q
|
---|
77 | . W !,"This item cannot be deleted. You must first post, delete, or"
|
---|
78 | . W !,"remove the item from the following order(s):"
|
---|
79 | . D LISTOO(ITEMDA,PRCPINPT)
|
---|
80 | S %=$$INVNAME^PRCPUX1(PRCPINPT),SITE=$P(%,"-")
|
---|
81 | S XP="ARE YOU SURE YOU WANT TO DELETE THIS ITEM"
|
---|
82 | S XP(1)=" FROM THE "_%_" INVENTORY POINT"
|
---|
83 | S XH="Enter 'YES' to DELETE this item from the inventory point."
|
---|
84 | I $$YN^PRCPUYN(2)'=1 Q
|
---|
85 | W !!?5,"--Deleting Item from Inventory Point ..."
|
---|
86 | D DELITEM(PRCPINPT,ITEMDA)
|
---|
87 | I $P($G(^PRCP(445,PRCPINPT,0)),"^",3)="W" D
|
---|
88 | . D DELETE^PRCPSMS0(ITEMDA)
|
---|
89 | . I STRING("ID")="" W !," WARNING--UNABLE TO CREATE ISMS CODE SHEET!" Q
|
---|
90 | . K ^TMP($J,"STRING") S ^TMP($J,"STRING",1)=STRING("ID") D CODESHT^PRCPSMGO(SITE,"IVD","")
|
---|
91 | W !!,"Checking Distribution Points (you will have the option to delete the item",!,"from the distribution points if the distribution point is NOT keeping a",!,"perpetual inventory) ..."
|
---|
92 | S DISTR="" F S DISTR=$O(^PRCP(445,PRCPINPT,2,DISTR)) Q:'DISTR I $P($G(^PRCP(445,DISTR,0)),"^",6)="Y",$D(^PRCP(445,DISTR,1,ITEMDA,0)) W !!,"DISTRIBUTION POINT: ",$P($$INVNAME^PRCPUX1(DISTR),"-",2,99) D
|
---|
93 | . S XP=" OK TO DELETE ITEM FROM THIS DISTRIBUTION POINT",XH=" Enter 'YES' to DELETE the item from the distribution point, '^' to exit."
|
---|
94 | . S %=$$YN^PRCPUYN(2) I '% S DISTR=999999 Q
|
---|
95 | . I %=2 Q
|
---|
96 | . W !!?5,"--Deleting Item from Distribution Point ..." D DELITEM(DISTR,ITEMDA) Q
|
---|
97 | Q
|
---|
98 | ;
|
---|
99 | ;
|
---|
100 | DELITEM(PRCPINPT,DA) ; delete item da from inventory point
|
---|
101 | N %,DIC,DIK,ITEM,X,Y
|
---|
102 | S ITEM=DA
|
---|
103 | I $P($G(^PRCP(445,PRCPINPT,5)),"^",1)]"",$P($G(^PRCP(445,PRCPINPT,1,ITEM,0)),"^",9)>0 D BLDSEG^PRCPHLFM(2,ITEM,PRCPINPT) ; send to supply station
|
---|
104 | S DA(1)=PRCPINPT,DIK="^PRCP(445,"_DA(1)_",1," D ^DIK
|
---|
105 | Q
|
---|
106 | ;
|
---|
107 | ORDCHK(ITEMDA,PRCPINPT,ORDTYP,ORDSTA) ; is the item on any outstanding orders
|
---|
108 | ; ITEMDA = DA of item to be deleted, 0 if search is for any order
|
---|
109 | ; for that inventory point.
|
---|
110 | ; PRCPINT = DA of inventory point in the search
|
---|
111 | ; ORDTYP = search for regular, emergency and/or call-in
|
---|
112 | ; ORDSTA = Status of the outstanding order, if search is limited
|
---|
113 | ; returns 0 if no outstanding order is found, 1 it it is
|
---|
114 | ;
|
---|
115 | N ORD,OUTORD,TYPE,XREF
|
---|
116 | I '$D(ORDSTA) S ORDSTA=""
|
---|
117 | S TYPE=$P($G(^PRCP(445,PRCPINPT,0)),"^",3)
|
---|
118 | S XREF=""
|
---|
119 | I TYPE="S" S XREF="AD"
|
---|
120 | I TYPE="P" S XREF="AC"
|
---|
121 | S OUTORD=0
|
---|
122 | I XREF]"" D
|
---|
123 | . S ORD=0
|
---|
124 | . F S ORD=$O(^PRCP(445.3,XREF,PRCPINPT,ORD)) Q:+ORD'>0!OUTORD D
|
---|
125 | . . I 'ITEMDA,$P(^PRCP(445.3,ORD,0),"^",6)'="P",ORDTYP[($P(^PRCP(445.3,ORD,0),"^",8)) D
|
---|
126 | . . . I ORDSTA="" S OUTORD=1
|
---|
127 | . . . I ORDSTA]"",$P(^PRCP(445.3,ORD,0),"^",6)[ORDSTA S OUTORD=1
|
---|
128 | . . I ITEMDA,$P(^PRCP(445.3,ORD,0),"^",6)'="P",$D(^PRCP(445.3,ORD,1,ITEMDA)),ORDTYP[($P(^PRCP(445.3,ORD,0),"^",8)) D
|
---|
129 | . . . I ORDSTA="" S OUTORD=1
|
---|
130 | . . . I ORDSTA]"",$P(^PRCP(445.3,ORD,0),"^",6)[ORDSTA S OUTORD=1
|
---|
131 | Q (OUTORD)
|
---|
132 | ;
|
---|
133 | LISTOO(ITEM,PRCPINPT,ORDSTA) ; list outstanding orders for this item
|
---|
134 | ; ITEM = DA of item to be deleted
|
---|
135 | ; PRCPINT = DA of inventory point housing the item
|
---|
136 | ; ORDSTA = Status of the outstanding order, if search is limited
|
---|
137 | ;
|
---|
138 | N ORD,OUTORD,TYPE,XREF
|
---|
139 | I '$D(ORDSTA) S ORDSTA=""
|
---|
140 | S TYPE=$P($G(^PRCP(445,PRCPINPT,0)),"^",3)
|
---|
141 | S XREF=""
|
---|
142 | I TYPE="S" S XREF="AD"
|
---|
143 | I TYPE="P" S XREF="AC"
|
---|
144 | S OUTORD=0
|
---|
145 | I XREF]"" D
|
---|
146 | . S ORD=0
|
---|
147 | . F S ORD=$O(^PRCP(445.3,XREF,PRCPINPT,ORD)) Q:+ORD'>0 D
|
---|
148 | . . I $P(^PRCP(445.3,ORD,0),"^",6)'="P",$D(^PRCP(445.3,ORD,1,ITEM)) D
|
---|
149 | . . . S OUTORD=$P(^PRCP(445.3,ORD,0),"^",1)
|
---|
150 | . . . I ORDSTA]"",$P(^PRCP(445.3,ORD,0),"^",6)[ORDSTA W !?5,OUTORD
|
---|
151 | . . . I ORDSTA="" W !?5,OUTORD
|
---|
152 | Q ; (OUTORD)
|
---|