| [613] | 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
 | 
|---|