1 | PRCHL4 ;VACO/HNC/VAC - REMOTE PROCEDURE, LIST LOGISTICS DATA FILE 442 ; 4/17/07 3:47pm
|
---|
2 | ;;5.1;IFCAP;**103**;Oct 20, 2000;Build 25
|
---|
3 | ;Per VHA Directive 2004-038, this routine should not be modified
|
---|
4 | ;DBIA# 4345 giving permission to reference Prosthetics data
|
---|
5 | ;hnc - Aug 21, 2006 add item detail to main grid
|
---|
6 | ;VAC - Set limit on 80 po line items
|
---|
7 | ;
|
---|
8 | ;RESULTS passed to broker in ^TMP($J,
|
---|
9 | ;delimited by ^
|
---|
10 | ;piece 1 = .1 date; display 2
|
---|
11 | ;piece 2 = 91 cost; display 5
|
---|
12 | ;piece 3 = 19 agent assigned PO; display 9
|
---|
13 | ;piece 4 = primary 2237; display 15
|
---|
14 | ;piece 5 = 93 liq amount; display 17
|
---|
15 | ;piece 6 = FOB; display 13
|
---|
16 | ;piece 7 = 1.4 Appropriation; display 14
|
---|
17 | ;piece 8 = 2 cost center; display 8
|
---|
18 | ;piece 9 = 5 vendor; display 12
|
---|
19 | ;piece 10 = 15 number of line items on po; display 11
|
---|
20 | ;piece 11 = station, derived from PO Number; display 1
|
---|
21 | ;piece 12 = 6.4 IEN 442; display 18
|
---|
22 | ;piece 13 = .02 method; display 4
|
---|
23 | ;piece 14 = .01 purchase order number; display 3
|
---|
24 | ;piece 15 = .5 Status; display 6
|
---|
25 | ;piece 16 = 1 FCP; display 7
|
---|
26 | ;piece 17 =5.4 Ship To; display 10
|
---|
27 | ;piece 18 =61 purchase card holder; display 16
|
---|
28 | ;piece 19 = Optional Flex Field
|
---|
29 | ;piece 20 = Optional Flex Field
|
---|
30 | ;piece 21 = Optional Flex Field
|
---|
31 | EN(RESULT,DATE1,DATE2,FLEXF,FLEX2,FLEX3) ;broker entry point
|
---|
32 | ;
|
---|
33 | K ^TMP($J)
|
---|
34 | I '$D(DATE1)!('$D(DATE2)) G EXIT
|
---|
35 | S DATE=DATE1-1
|
---|
36 | F S DATE=$O(^PRC(442,"AB",DATE)) Q:(DATE="")!($P(DATE,".",1)>DATE2) D
|
---|
37 | .S RMPRB=0
|
---|
38 | .F S RMPRB=$O(^PRC(442,"AB",DATE,RMPRB)) Q:RMPRB="" D
|
---|
39 | ..D DATA
|
---|
40 | S RESULT=$NA(^TMP($J))
|
---|
41 | K DATE,DFN,HDES,LINE,PHCPCS,RMPRB,RMPRFLD,TYPE,PRCHLB
|
---|
42 | Q
|
---|
43 | ;
|
---|
44 | DATA ;
|
---|
45 | S PRCHLB=RMPRB
|
---|
46 | I (FLEXF'="")&(FLEXF'="ITM") S RMPRFLD=".1;91;19;.5;2;20;15;.02;.01;7.2;93;1.4;6.4;5.4;1;61;5;.07;"_FLEXF
|
---|
47 | I (FLEXF="")!(FLEXF="ITM") S RMPRFLD=".1;91;19;.5;2;20;15;.02;.01;7.2;93;1.4;6.4;5.4;1;61;5;.07"
|
---|
48 | I (FLEX2'="")&(FLEX2'="ITM") S RMPRFLD=RMPRFLD_";"_FLEX2
|
---|
49 | I (FLEX3'="")&(FLEX3'="ITM") S RMPRFLD=RMPRFLD_";"_FLEX3
|
---|
50 | D GETS^DIQ(442,PRCHLB,RMPRFLD,"","RMXM")
|
---|
51 | ;flat data
|
---|
52 | S $P(^TMP($J,PRCHLB),U,1)=$G(RMXM(442,PRCHLB_",",.1))
|
---|
53 | S $P(^TMP($J,PRCHLB),U,2)=$G(RMXM(442,PRCHLB_",",91))
|
---|
54 | S $P(^TMP($J,PRCHLB),U,3)=$G(RMXM(442,PRCHLB_",",19))
|
---|
55 | S $P(^TMP($J,PRCHLB),U,4)=$G(RMXM(442,PRCHLB_",",.07))
|
---|
56 | S $P(^TMP($J,PRCHLB),U,5)=$G(RMXM(442,PRCHLB_",",93))
|
---|
57 | S $P(^TMP($J,PRCHLB),U,6)=PRCHLB
|
---|
58 | S $P(^TMP($J,PRCHLB),U,7)=$G(RMXM(442,PRCHLB_",",1.4))
|
---|
59 | S $P(^TMP($J,PRCHLB),U,8)=$G(RMXM(442,PRCHLB_",",2))
|
---|
60 | S $P(^TMP($J,PRCHLB),U,9)=$G(RMXM(442,PRCHLB_",",5))
|
---|
61 | S $P(^TMP($J,PRCHLB),U,10)=$G(RMXM(442,PRCHLB_",",15))
|
---|
62 | S $P(^TMP($J,PRCHLB),U,11)=$P($G(RMXM(442,PRCHLB_",",.01)),"-",1)
|
---|
63 | S $P(^TMP($J,PRCHLB),U,12)=$G(RMXM(442,PRCHLB_",",6.4))
|
---|
64 | S $P(^TMP($J,PRCHLB),U,13)=$G(RMXM(442,PRCHLB_",",.02))
|
---|
65 | S $P(^TMP($J,PRCHLB),U,14)=$G(RMXM(442,PRCHLB_",",.01))
|
---|
66 | S $P(^TMP($J,PRCHLB),U,15)=$G(RMXM(442,PRCHLB_",",.5))
|
---|
67 | S $P(^TMP($J,PRCHLB),U,16)=$G(RMXM(442,PRCHLB_",",1))
|
---|
68 | S $P(^TMP($J,PRCHLB),U,17)=$G(RMXM(442,PRCHLB_",",5.4))
|
---|
69 | S $P(^TMP($J,PRCHLB),U,18)=$G(RMXM(442,PRCHLB_",",61))
|
---|
70 | ;
|
---|
71 | I FLEXF'="" S $P(^TMP($J,PRCHLB),U,19)=$G(RMXM(442,PRCHLB_",",FLEXF))
|
---|
72 | I FLEXF="" S $P(^TMP($J,PRCHLB),U,19)=""
|
---|
73 | I FLEX2'="" S $P(^TMP($J,PRCHLB),U,20)=$G(RMXM(442,PRCHLB_",",FLEX2))
|
---|
74 | I FLEX2="" S $P(^TMP($J,PRCHLB),U,20)=""
|
---|
75 | I FLEX3'="" S $P(^TMP($J,PRCHLB),U,21)=$G(RMXM(442,PRCHLB_",",FLEX3))
|
---|
76 | I FLEX3="" S $P(^TMP($J,PRCHLB),U,21)=""
|
---|
77 | ;
|
---|
78 | I (FLEXF="ITM")!(FLEX2="ITM")!(FLEX3="ITM") D ITMDET
|
---|
79 | K RMXM,PRCHLB
|
---|
80 | Q
|
---|
81 | ITMDET ;item detail
|
---|
82 | I PRCHLB="" Q
|
---|
83 | S CNT=0
|
---|
84 | ;First check number of line items on PO, stop if more than 80
|
---|
85 | I $P(^TMP($J,PRCHLB),U,10)>80 S $P(^TMP($J,PRCHLB,1),U,10)="<** More than 80 Line Items **>" Q
|
---|
86 | D GETS^DIQ(442,PRCHLB,"40*;.01","EN","ITM")
|
---|
87 | S PRCHPO=$G(ITM("442",PRCHLB_",",".01","E"))
|
---|
88 | S PRCHIEN=""
|
---|
89 | I PRCHPO'="" S PRCHIEN=$O(^RMPR(664,"G",$P(PRCHPO,"-",2),PRCHIEN))
|
---|
90 | I PRCHIEN'="" D GETS^DIQ(664,PRCHIEN,"2*;11;12","EN","PITMSTR")
|
---|
91 | I $D(PITMSTR) D
|
---|
92 | .;Prosthetic item
|
---|
93 | .S PRCHB="" F S PRCHB=$O(PITMSTR(664.02,PRCHB)) Q:'PRCHB D
|
---|
94 | . .S QTY=$G(PITMSTR(664.02,PRCHB,3,"E"))
|
---|
95 | . .S UOP=$G(PITMSTR(664.02,PRCHB,4,"E"))
|
---|
96 | . .S CBOA=$G(PITMSTR(664.02,PRCHB,13,"E"))
|
---|
97 | . .S ITMD=$G(PITMSTR(664.02,PRCHB,1,"E"))
|
---|
98 | . .S AUC=$G(PITMSTR(664.02,PRCHB,6,"E"))
|
---|
99 | . .I AUC="" S AUC=$G(PITMSTR(664.02,PRCHB,2,"E"))
|
---|
100 | . .S HCPCS=$G(PITMSTR(664.02,PRCHB,16,"E"))
|
---|
101 | . .S VSN=$G(PITMSTR(664.02,PRCHB,15.4,"E"))
|
---|
102 | . .S TCST=QTY*AUC
|
---|
103 | . .S CNT=CNT+1
|
---|
104 | . .S $P(^TMP($J,PRCHLB,CNT),U,1)=$G(RMXM(442,PRCHLB_",",.1))
|
---|
105 | . .S $P(^TMP($J,PRCHLB,CNT),U,2)=TCST
|
---|
106 | . .S $P(^TMP($J,PRCHLB,CNT),U,8)=CBOA
|
---|
107 | . .S $P(^TMP($J,PRCHLB,CNT),U,7)=VSN
|
---|
108 | . .S $P(^TMP($J,PRCHLB,CNT),U,11)=$P($G(RMXM(442,PRCHLB_",",.01)),"-",1)
|
---|
109 | . .I HCPCS'="" S $P(^TMP($J,PRCHLB,CNT),U,13)="HCPCS: "_HCPCS
|
---|
110 | . .S $P(^TMP($J,PRCHLB,CNT),U,14)=$G(RMXM(442,PRCHLB_",",.01))_"-P "_CNT
|
---|
111 | . .I FLEXF="ITM" S $P(^TMP($J,PRCHLB,CNT),U,19)=$TR(ITMD,","," ")
|
---|
112 | . .I FLEX2="ITM" S $P(^TMP($J,PRCHLB,CNT),U,20)=$TR(ITMD,","," ")
|
---|
113 | . .I FLEX3="ITM" S $P(^TMP($J,PRCHLB,CNT),U,21)=$TR(ITMD,","," ")
|
---|
114 | .;prosthetic shipping
|
---|
115 | . S SHIP="",SHIPF=""
|
---|
116 | . S SHIP=$G(PITMSTR(664,PRCHIEN_",",11,"E"))
|
---|
117 | . S SHIPF=$G(PITMSTR(664,PRCHIEN_",",12,"E"))
|
---|
118 | . I SHIPF'="" S SHIP=SHIPF
|
---|
119 | . I SHIP'="" D
|
---|
120 | . .S CNT=CNT+1
|
---|
121 | . .S $P(^TMP($J,PRCHLB,CNT),U,2)=SHIP
|
---|
122 | . .S $P(^TMP($J,PRCHLB,CNT),U,1)=$G(RMXM(442,PRCHLB_",",.1))
|
---|
123 | . .S $P(^TMP($J,PRCHLB,CNT),U,11)=$P($G(RMXM(442,PRCHLB_",",.01)),"-",1)
|
---|
124 | . .S $P(^TMP($J,PRCHLB,CNT),U,14)=$G(RMXM(442,PRCHLB_",",.01))_"-P "_CNT
|
---|
125 | . .I FLEXF="ITM" S $P(^TMP($J,PRCHLB,CNT),U,19)="Shipping"
|
---|
126 | . .I FLEX2="ITM" S $P(^TMP($J,PRCHLB,CNT),U,20)="Shipping"
|
---|
127 | . .I FLEX3="ITM" S $P(^TMP($J,PRCHLB,CNT),U,21)="Shipping"
|
---|
128 | .;IFCAP item
|
---|
129 | S B="" F S B=$O(ITM(442.01,B)) Q:'B D
|
---|
130 | . S IFITM=$G(ITM(442.01,B,1.5,"E"))
|
---|
131 | . D GETS^DIQ(441,IFITM,".01;.05;51","E","ITMSTR")
|
---|
132 | . S ITMD=$G(ITMSTR(441,IFITM_",",.05,"E"))
|
---|
133 | . S IFITM1=$G(ITMSTR(441,IFITM_",",.01,"E"))
|
---|
134 | . S NIF=$G(ITMSTR(441,IFITM_",",51,"E"))
|
---|
135 | . S LICNT=$P(B,",",1)
|
---|
136 | . S QTY=$G(ITM(442.01,B,2,"E"))
|
---|
137 | . S UOP=$G(ITM(442.01,B,3,"E"))
|
---|
138 | . S BOC=$G(ITM(442.01,B,3.5,"E"))
|
---|
139 | . S CBOA=$G(ITM(442.01,B,4,"E"))
|
---|
140 | . S AUC=$TR($G(ITM(442.01,B,5,"E")),"$","")
|
---|
141 | . S FSC=$G(ITM(442.01,B,8,"E"))
|
---|
142 | . S VSN=$G(ITM(442.01,B,9,"E"))
|
---|
143 | . S UCF=$G(ITM(442.01,B,9.7,"E"))
|
---|
144 | . S TCST=$G(ITM(442.01,B,15,"E"))
|
---|
145 | . S ITMDD=$G(ITM(442.01,B,1,1))
|
---|
146 | . I ITMD'="" S ITMD=ITMD_" "
|
---|
147 | . S ITMD=ITMD_"1st Line: "_ITMDD
|
---|
148 | . K ITMDD
|
---|
149 | . S CNT=CNT+1
|
---|
150 | . ;S ^TMP($J,PRCHLB,CNT)="I "_LICNT_U_IFITM1_U_QTY_U_UOP_U_BOC_U_CBOA_U_AUC_U_FSC_U_VSN_U_UCF_U_TCST_U_NIF_U_ITMD
|
---|
151 | .S $P(^TMP($J,PRCHLB,CNT),U,2)=TCST
|
---|
152 | .I FLEXF="ITM" S $P(^TMP($J,PRCHLB,CNT),U,19)=$TR(ITMD,","," ")
|
---|
153 | .I FLEX2="ITM" S $P(^TMP($J,PRCHLB,CNT),U,20)=$TR(ITMD,","," ")
|
---|
154 | .I FLEX3="ITM" S $P(^TMP($J,PRCHLB,CNT),U,21)=$TR(ITMD,","," ")
|
---|
155 | .S $P(^TMP($J,PRCHLB,CNT),U,1)=$G(RMXM(442,PRCHLB_",",.1))
|
---|
156 | .S $P(^TMP($J,PRCHLB,CNT),U,8)=BOC
|
---|
157 | .S $P(^TMP($J,PRCHLB,CNT),U,9)=VSN
|
---|
158 | .S $P(^TMP($J,PRCHLB,CNT),U,11)=$P($G(RMXM(442,PRCHLB_",",.01)),"-",1)
|
---|
159 | .I NIF'="" S IFITM1=IFITM1_" NIF: "_NIF
|
---|
160 | .I IFITM1'="" S $P(^TMP($J,PRCHLB,CNT),U,13)="Item Master: "_IFITM1
|
---|
161 | .S $P(^TMP($J,PRCHLB,CNT),U,14)=$G(RMXM(442,PRCHLB_",",.01))_"-I "_LICNT
|
---|
162 | K PRCHLB,CNT,ITM,ITMSTR,IFITM,ITMD,IFITM1,LICNT,QTY,UOP,BOC,CBOA,AUC,FSC,VSN,UCF,TCST,NIF,B,PRCHPO,PITMSTR,PRCHB,PRCHIEN,HCPCS,SHIP,SHIPF
|
---|
163 | Q
|
---|
164 | EXIT ;
|
---|
165 | Q
|
---|
166 | ;END
|
---|