1 | PRCV442B ;WOIFO/CC-GET DATA WHEN ITEM DELETED, SET UP AUDIT FILE;1/29/05
|
---|
2 | V ;;5.1;IFCAP;**81,86**;Oct 20, 2000
|
---|
3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | RRAUD(POIEN,PRCV,PRCVCR,PRCVDAT) ; add deleted Receiving Report to audit file
|
---|
7 | ;
|
---|
8 | ; POIEN = the ien of the purchase order from which the receiving
|
---|
9 | ; report is being deleted.
|
---|
10 | ; PRCV = the string of info about the item (from PRCV442A)
|
---|
11 | ; DM DOC ID ^ Item ien ^ line item # ^ 2237 ien ^ UOP ^
|
---|
12 | ; qty ordered ^ unit price ^ NIF ^ pkg mult ^ qty rec'd
|
---|
13 | ; ^ total item cost ^ total discount ^ delivery date
|
---|
14 | ; PRCVCR = the date/time the receiving report was created
|
---|
15 | ; PRCVDAT = The date/time of deletion processing
|
---|
16 | ;
|
---|
17 | N PRCVRA,PRCVRN,PRCVIEN,PRCVY
|
---|
18 | S PRCVID=$P(PRCV,"^",1) Q:PRCVID']"" ; DM DOC ID
|
---|
19 | S PRCVRN=$O(^PRCV(414.02,"B",PRCVID,0)) ; find DM DOC ID record
|
---|
20 | I +PRCVRN'>0 D MAIL("X1",POIEN,PRCVID,$P(PRCV,"^",2)) Q ; notify users that DM DOC ID record not in audit file
|
---|
21 | S PRCVIEN="+1,"_PRCVRN_","
|
---|
22 | S PRCVRA(414.021,PRCVIEN,.01)=PRCVDAT ; D/T RR deleted
|
---|
23 | S PRCVRA(414.021,PRCVIEN,1)=DUZ ; user deleting RR
|
---|
24 | S PRCVRA(414.021,PRCVIEN,2)=PRCVCR ; RR create D/T
|
---|
25 | S PRCVRA(414.021,PRCVIEN,3)=0-$P(PRCV,"^",10) ; Qty
|
---|
26 | S PRCVRA(414.021,PRCVIEN,4)=0-$P(PRCV,"^",11) ; total cost
|
---|
27 | S PRCVRA(414.021,PRCVIEN,5)=0-$P(PRCV,"^",12) ; discount
|
---|
28 | D UPDATE^DIE("","PRCVRA","PRCVY")
|
---|
29 | I $D(^TMP("DIERR",$J)) D MAIL("X5",POIEN,PRCVID,$P(PRCV,"^",2)) ; tell users that Audit file could not be updated
|
---|
30 | S $P(^TMP("PRCV442A",$J,POIEN),"^",7)=PRCVDAT
|
---|
31 | Q
|
---|
32 | ;
|
---|
33 | DELAUD(PRCVID,PRCVDATE,PRCVDUZ,POIEN,PRCVITEM,PRCVIT) ; UPDATE AUDIT FILE FOR DELETED ITEMS
|
---|
34 | ;
|
---|
35 | ; PRCVID = the DM Doc ID of the item being deleted
|
---|
36 | ; PRCVDATE = the date/time the item is deleted or PO is cancelled
|
---|
37 | ; PRCVDUZ = the user deleting the item or canceling the PO
|
---|
38 | ; POIEN = the ien of the purchase order from which the receiving
|
---|
39 | ; report is being deleted.
|
---|
40 | ; PRCVITEM = the item number
|
---|
41 | ; PRCVIT = set to 1 if deleted at line item level, else PC cancel
|
---|
42 | ;
|
---|
43 | N PRCVD,PRCVDA,PRCVIEN,PRCVY
|
---|
44 | S PRCVY="C" I PRCVIT=1 S PRCVY="D"
|
---|
45 | S PRCVDA=$O(^PRCV(414.02,"B",PRCVID,0)) ; find DM DOC ID record
|
---|
46 | I PRCVDA']"" D MAIL(PRCVY_1,POIEN,PRCVID,PRCVITEM) Q ; DM DOC ID not in audit file
|
---|
47 | S PRCVD(414.02,PRCVDA_",",8)=PRCVDATE
|
---|
48 | S PRCVD(414.02,PRCVDA_",",9)=PRCVDUZ
|
---|
49 | D UPDATE^DIE("","PRCVD")
|
---|
50 | I $D(^TMP("DIERR",$J)) D MAIL(PRCVY_5,POIEN,PRCVID,PRCVITEM) ; tell user audit file not updated
|
---|
51 | Q
|
---|
52 | ;
|
---|
53 | ;
|
---|
54 | DELITEM(POIEN) ; delete line item, get key info for DYNAMED
|
---|
55 | ; called from "AK" cross ref in DD - .01 of file 442.01 (Item multiple)
|
---|
56 | ;
|
---|
57 | ; POIEN = the ien of the purchase order (file 442)
|
---|
58 | ;
|
---|
59 | N PRCV,PRCVP
|
---|
60 | S PRCVP=""
|
---|
61 | D OP^XQCHK I $P(XQOPT,"^",1)="PRCHPC PO REMOVE 2237" Q ; this option does not cancel item out of IFCAP
|
---|
62 | I $$GET^XPAR("SYS","PRCV COTS INVENTORY",1,"Q")'=1 Q ; DM interface not active
|
---|
63 | D GETS^DIQ(442,POIEN_",",".01;.02;.07;5;7;62","IE","PRCVP") ; get PO data
|
---|
64 | S $P(PRCV,"^",7)=POIEN,POIEN=POIEN_","
|
---|
65 | I $D(^TMP("DIERR",$J)) G DELITEM1 ; PO data not on file,send to DM anyway
|
---|
66 | S $P(PRCV,"^",8)=PRCVP(442,POIEN,.02,"I") ; MOP (#.02 - n0,p2)
|
---|
67 | S $P(PRCV,"^",1)=PRCVP(442,POIEN,.01,"E") ; PO# (#.01 n0,p1)
|
---|
68 | S $P(PRCV,"^",4)=PRCVP(442,POIEN,5,"I") ; vendor IEN (#5 n1 p1)
|
---|
69 | S $P(PRCV,"^",5)=PRCVP(442,POIEN,62,"E") ; for PC orders MOP=25, 2237 is in #62 N23,P23
|
---|
70 | S $P(PRCV,"^",6)=PRCVP(442,POIEN,.07,"E") ; for inv/rec MOP=1, 2237 is in #.07 - n0,p12
|
---|
71 | S $P(PRCV,"^",2)=PRCVP(442,POIEN,7,"I") ; delivery date (#7 n0p10)
|
---|
72 | DELITEM1 S $P(PRCV,"^",10)=$$NOW^XLFDT
|
---|
73 | S $P(PRCV,"^",11)=DA
|
---|
74 | ;
|
---|
75 | ; get DUZ
|
---|
76 | S $P(PRCV,"^",3)=DUZ
|
---|
77 | ;
|
---|
78 | ; X1 is the array of variables set in the execution of the 'AK' cross reference
|
---|
79 | S X1(999999)=PRCV ; save PO data to variables passed to background job
|
---|
80 | ;
|
---|
81 | D OPKG^XUHUI("","PRCV 442 ITEM DELETE","K","AK") ; invoke background job
|
---|
82 | K X1(999999) ; not to go back DD
|
---|
83 | Q
|
---|
84 | ;
|
---|
85 | DELJOB ; send deleted item's info to DynaMed (collected by DELITEM subroutine)
|
---|
86 | ; called from protocol PRCV 442 ITEM DELETE and jobbed by TaskMan
|
---|
87 | ; builds
|
---|
88 | ; PRCVI (string for each item)
|
---|
89 | ; DM DOC ID ^ Item ien ^ line item # ^ 2237 ien ^ UOP ^ qty ordered
|
---|
90 | ; ^ unit price ^ NIF ^ pkg mult ^ qty rec'd ^ total item cost ^
|
---|
91 | ; total discount ^ delivery date
|
---|
92 | ; PRCV (header) variable -
|
---|
93 | ; PO# ^ txn type ^ DUZ ^ vendor IEN ^ FMS vendor # ^Alt add ind ^
|
---|
94 | ; txn D/T ^ Station# ^ Purchasing Station
|
---|
95 | ;
|
---|
96 | N POIEN,PRCV,PRCVERR,PRCVI,PRCVP,PRCVV,PRCV2237
|
---|
97 | ; QUIT IF mop'1 AND '=25
|
---|
98 | S PRCVP=XUHUIX1(999999) I $P(PRCVP,"^",8)'=1,$P(PRCVP,"^",8)'=25 Q
|
---|
99 | S POIEN=$P(PRCVP,"^",7)
|
---|
100 | K ^TMP("PRCV442A",$J,POIEN)
|
---|
101 | S PRCV=$P(PRCVP,"^",1,4),$P(PRCV,"^",7)=$P(PRCVP,"^",10)
|
---|
102 | ; get FMS vendor ID & alt addr code from file 440, #34# - n3 p4&5
|
---|
103 | I $P(PRCV,"^",4)]"" D GETS^DIQ(440,$P(PRCV,"^",4)_",","34:35","E","PRCVV")
|
---|
104 | I $D(^TMP("DIERR",$J)) G DELJOB1 ; vendor data not on file
|
---|
105 | S $P(PRCV,"^",2)=5 ; DELETE
|
---|
106 | S $P(PRCV,"^",5)=PRCVV(440,$P(PRCV,"^",4)_",",34,"E") ; FMS vendor ID
|
---|
107 | S $P(PRCV,"^",6)=PRCVV(440,$P(PRCV,"^",4)_",",35,"E") ; FMA alt add ind
|
---|
108 | ; get Station Number
|
---|
109 | DELJOB1 S $P(PRCV,"^",8)=$$GET1^DIQ(4,$$KSP^XUPARAM("INST")_",",99)
|
---|
110 | S ^TMP("PRCV442A",$J,POIEN)=PRCV
|
---|
111 | S PRCVI=XUHUIX1(2)_"^"_XUHUIX1(3)_"^"_XUHUIX1(1)_"^^^"_XUHUIX1(4)_"^"_XUHUIX1(7)_"^^"_XUHUIX1(6)
|
---|
112 | S $P(PRCVI,"^",5)=$$GET1^DIQ(420.5,XUHUIX1(5),.01,"E") ; UOP
|
---|
113 | S $P(PRCVI,"^",8)=$$GET1^DIQ(441,XUHUIX1(3),51) ; NIF
|
---|
114 | S $P(PRCVI,"^",13)=$P(PRCVP,"^",2) ; DELIVERY DATE FOR PO
|
---|
115 | S PRCV2237=XUHUIX1(8)
|
---|
116 | I PRCV2237]"" S PRCV2237=$$GET1^DIQ(410,PRCV2237,.01,"E")
|
---|
117 | I PRCV2237']"" S PRCV2237=$P(PRCVP,"^",6)
|
---|
118 | I PRCV2237']"" S PRCV2237=$P(PRCVP,"^",5)
|
---|
119 | S $P(PRCVI,"^",4)=PRCV2237
|
---|
120 | D DELAUD($P(PRCVI,"^",1),$P(PRCV,"^",7),$P(PRCV,"^",3),POIEN,$P(PRCVI,"^",2),1)
|
---|
121 | S ^TMP("PRCV442A",$J,POIEN,$P(PRCVP,"^",11))=PRCVI
|
---|
122 | I $O(^TMP("PRCV442A",$J,POIEN,""))']"" S PRCVERR=1 D Q Q ; no DynaMed items
|
---|
123 | D EN^PRCVPOSD(POIEN)
|
---|
124 | Q
|
---|
125 | ;
|
---|
126 | MAIL(PRCVCODE,PRCVPIEN,PRCVID,PRCVITEM) ; PREPARE VALUES FOR MESSAGE TO USERS
|
---|
127 | ;
|
---|
128 | ; $E(PRCVCODE,1) = U if the error occurred approving a PO
|
---|
129 | ; = C if the error occurred canceling a PO
|
---|
130 | ; = D if error occurred while deleting a line item
|
---|
131 | ; = R if the error occurred signing a Receipt Report
|
---|
132 | ; = X if the error occurred deleting a Receipt Report
|
---|
133 | ; $E(PRCVCODE,2) = DM Doc ID not in Audit File
|
---|
134 | ; = 2 if the PO data could not be found
|
---|
135 | ; = 3 if the item data could not be found
|
---|
136 | ; = 4 if the receiving report info for item was not found
|
---|
137 | ; = 5 if data could not be saved in audit file
|
---|
138 | ;
|
---|
139 | ; PRCVPIEN IEN of selected purchase order
|
---|
140 | ; PRCVID DM Doc ID of affected item
|
---|
141 | ; PRCVITEM ien of item (item#)
|
---|
142 | ;
|
---|
143 | N PRCVSITE,PRCVFCP,PRCVPO,XMB
|
---|
144 | K ^TMP($J,"PRCV442B")
|
---|
145 | S XMB(1)=$S($E(PRCVCODE,1)="C":"cancelling a PC order",$E(PRCVCODE,1)="D":"deleting a line item from a purchase order",1:"deleting a receiving report")
|
---|
146 | S XMB(2)=PRCVID
|
---|
147 | S XMB(3)=" "_PRCVID_" is not in file 414.02 - can't add related data"
|
---|
148 | I $E(PRCVCODE,2)=5 D
|
---|
149 | . S XMB(3)="System can't update Audit File (414.02) for "_PRCVID
|
---|
150 | . D TMPERR
|
---|
151 | S PRCVPO=$P($G(^PRC(442,PRCVPIEN,0)),"^",1)
|
---|
152 | S ^TMP($J,"PRCV442B",1)="Purchase Order# "_PRCVPO
|
---|
153 | S ^TMP($J,"PRCV442B",2)="ITEM# "_PRCVITEM
|
---|
154 | S ^TMP($J,"PRCV442B")=2
|
---|
155 | S PRCVSITE=PRCVPO+0 I PRCVSITE=0 S PRCVSITE=PRC("SITE")
|
---|
156 | S PRCVFCP=$P($G(^PRC(442,PRCVPIEN,0)),"^",3)
|
---|
157 | S PRCVFCP=$P(PRCVFCP," ",1)
|
---|
158 | D DMERXMB^PRCVLIC("PRCV442B",PRCVSITE,PRCVFCP)
|
---|
159 | K ^TMP($J,"PRCV442B")
|
---|
160 | Q
|
---|
161 | ;
|
---|
162 | TMPERR ;
|
---|
163 | ;
|
---|
164 | ;
|
---|
165 | N PRCJ,PRCK S PRCK=$G(^TMP($J,"PRCV442B")),PRCJ=0
|
---|
166 | F S PRCJ=$O(^TMP("DIERR",$J,PRCJ)) Q:PRCJ'?1.N D
|
---|
167 | . I $D(^TMP("DIERR",$J,PRCJ,"TEXT",1)) D
|
---|
168 | . . S PRCK=PRCK+1,^TMP($J,"PRCV442B",PRCK)="Reason: "_^TMP("DIERR",$J,PRCJ,"TEXT",1)
|
---|
169 | . . S:$D(^TMP("DIERR",$J,PRCJ,"PARAM","IENS")) ^TMP($J,"PRCV442B",PRCK)=$E(^TMP($J,"PRCV442B",PRCK),1,220)_"-IENS: "_^TMP("DIERR",$J,PRCJ,"PARAM","IENS")
|
---|
170 | S:PRCK>0 ^TMP($J,"PRCV442B")=PRCK
|
---|
171 | K ^TMP("DIERR",$J)
|
---|
172 | Q
|
---|
173 | ;
|
---|
174 | FCP(PRCVPO) ; return FCP for PO#
|
---|
175 | ;
|
---|
176 | ; PRCVPO = the external purchase order number
|
---|
177 | ; returns -1 if the PO or its FCP cannot be found
|
---|
178 | ;
|
---|
179 | N PRCVF,PRCVI
|
---|
180 | S PRCVF=-1
|
---|
181 | S PRCVI=$O(^PRC(442,"B",PRCVPO,0))
|
---|
182 | I PRCVI]"" D
|
---|
183 | . S PRCVI=$$GET1^DIQ(442,PRCVI_",",1,"E")
|
---|
184 | . I PRCVI]"" S PRCVF=$P(PRCVI," ",1)
|
---|
185 | Q PRCVF
|
---|
186 | ;
|
---|
187 | Q I PRCVERR K ^TMP("PRCV442A",$J)
|
---|
188 | Q
|
---|