1 PACKAGE BODY INV_INVKBCPR_XMLP_PKG AS
2 /* $Header: INVKBCPRB.pls 120.2 2011/02/07 13:41:35 sisankar ship $ */
3 FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4 BEGIN
5 BEGIN
6 P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
7 /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
8 EXCEPTION
9 WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
10 /*SRW.MESSAGE(010
11 ,'Failed in before report trigger, srwinit. ')*/NULL;
12 RAISE;
13 END;
14 DECLARE
15 P_ORG_ID_CHAR VARCHAR2(100) := TO_CHAR(P_ORG_ID);
16 BEGIN
17 /*SRW.USER_EXIT('FND PUTPROFILE NAME="' || 'MFG_ORGANIZATION_ID' || '" FIELD="' || P_ORG_ID_CHAR || '"')*/NULL;
18 EXCEPTION
19 WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
20 /*SRW.MESSAGE(020
21 ,'Failed in before report trigger, setting org profile ')*/NULL;
22 RAISE;
23 END;
24 BEGIN
25 NULL;
26 EXCEPTION
27 WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
28 /*SRW.MESSAGE(020
29 ,'Failed in before report trigger, item select. ')*/NULL;
30 RAISE;
31 END;
32 BEGIN
33 NULL;
34 EXCEPTION
35 WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
36 /*SRW.MESSAGE(030
37 ,'Failed in before report trigger, locator select. ')*/NULL;
38 RAISE;
39 END;
40 BEGIN
41 NULL;
42 EXCEPTION
43 WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
44 /*SRW.MESSAGE(030
45 ,'Failed in before report trigger, source locator select. ')*/NULL;
46 RAISE;
47 END;
48 BEGIN
49 IF P_ITEM_HIGH IS NOT NULL OR P_ITEM_LOW IS NOT NULL THEN
50 NULL;
51 END IF;
52 EXCEPTION
53 WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
54 /*SRW.MESSAGE(1
55 ,'Failed in before report trigger:Item/where')*/NULL;
56 RAISE;
57 END;
58 BEGIN
59 IF P_LOCATOR_HI IS NOT NULL OR P_LOCATOR_LOW IS NOT NULL THEN
60 NULL;
61 END IF;
62 EXCEPTION
63 WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
64 /*SRW.MESSAGE(1
65 ,'Failed in before report trigger:Loc/where')*/NULL;
66 RAISE;
67 END;
68 IF P_CALL_FROM = 1 THEN
69 IF P_DATE_CREATED_LOW IS NOT NULL THEN
70 P_CALL_WHERE := P_CALL_WHERE || ' AND TO_CHAR(MKC.CREATION_DATE,''YYYY-MM-DD'' ) >= ''' || TO_CHAR(P_DATE_CREATED_LOW
71 ,'YYYY-MM-DD') || '''';
72 END IF;
73 IF P_DATE_CREATED_HIGH IS NOT NULL THEN
74 P_CALL_WHERE := P_CALL_WHERE || ' AND TO_CHAR(MKC.CREATION_DATE,''YYYY-MM-DD'' ) <= ''' || TO_CHAR(P_DATE_CREATED_HIGH
75 ,'YYYY-MM-DD') || '''';
76 END IF;
77 IF P_ORG_ID IS NOT NULL THEN
78 P_CALL_WHERE := P_CALL_WHERE || ' AND MKC.ORGANIZATION_ID = ' || TO_CHAR(P_ORG_ID);
79 END IF;
80 IF P_SOURCE_TYPE IS NOT NULL THEN
81 P_CALL_WHERE := P_CALL_WHERE || ' AND MKC.SOURCE_TYPE = ' || TO_CHAR(P_SOURCE_TYPE);
82 END IF;
83 IF P_SOURCE_ORG_ID IS NOT NULL THEN
84 P_CALL_WHERE := P_CALL_WHERE || ' AND MKC.SOURCE_ORGANIZATION_ID = ' || TO_CHAR(P_SOURCE_ORG_ID);
85 END IF;
86 IF P_SOURCE_SUBINV IS NOT NULL THEN
87 P_CALL_WHERE := P_CALL_WHERE || ' AND MKC.SOURCE_SUBINVENTORY = ''' || P_SOURCE_SUBINV || '''';
88 END IF;
89 IF P_SOURCE_LOC_ID IS NOT NULL THEN
90 P_CALL_WHERE := P_CALL_WHERE || ' AND MKC.SOURCE_LOCATOR_ID = ' || TO_CHAR(P_SOURCE_LOC_ID);
91 END IF;
92 IF P_KANBAN_CARD_NUMBER_LOW IS NOT NULL THEN
93 P_CALL_WHERE := P_CALL_WHERE || ' AND MKC.KANBAN_CARD_NUMBER >= ''' || P_KANBAN_CARD_NUMBER_LOW || '''';
94 END IF;
95 IF P_KANBAN_CARD_NUMBER_HIGH IS NOT NULL THEN
96 P_CALL_WHERE := P_CALL_WHERE || ' AND MKC.KANBAN_CARD_NUMBER <= ''' || P_KANBAN_CARD_NUMBER_HIGH || '''';
97 END IF;
98 IF P_SUPPLIER_ID IS NOT NULL THEN
99 P_CALL_WHERE := P_CALL_WHERE || ' AND MKC.SUPPLIER_ID = ' || TO_CHAR(P_SUPPLIER_ID);
100 END IF;
101 IF P_SUPPLIER_SITE_ID IS NOT NULL THEN
102 P_CALL_WHERE := P_CALL_WHERE || ' AND MKC.SUPPLIER_SITE_ID = ' || TO_CHAR(P_SUPPLIER_SITE_ID);
103 END IF;
104 IF P_SUBINV IS NOT NULL THEN
105 P_CALL_WHERE := P_CALL_WHERE || ' AND MKC.SUBINVENTORY_NAME = ''' || P_SUBINV || '''';
106 END IF;
107 IF P_KANBAN_CARD_TYPE IS NOT NULL THEN
108 P_CALL_WHERE := P_CALL_WHERE || ' AND MKC.KANBAN_CARD_TYPE = ' || TO_CHAR(P_KANBAN_CARD_TYPE);
109 END IF;
110 IF P_ITEM_LOW IS NOT NULL OR P_ITEM_HIGH IS NOT NULL THEN
111 P_CALL_WHERE := P_CALL_WHERE || ' AND ' || P_ITEM_WHERE;
112 END IF;
113 IF P_LOCATOR_LOW IS NOT NULL OR P_LOCATOR_HI IS NOT NULL THEN
114 P_CALL_WHERE := P_CALL_WHERE || ' AND ' || P_LOC_WHERE;
115 END IF;
116 ELSIF P_CALL_FROM = 2 THEN
117 --in case for multiple cards from adf page also p_call_from has to be 2
118 --in case of pullsequence id also from adf page p_call_from has to be 2
119 IF P_REPORT_ID IS NOT NULL THEN
120 P_CALL_WHERE := P_CALL_WHERE || ' AND (MKC.KANBAN_CARD_ID IN ( SELECT MKBNT.KANBAN_CARD_ID FROM MTL_KANBAN_CARD_PRINT_TEMP MKBNT
121 WHERE MKBNT.REPORT_ID = ' || TO_CHAR(P_REPORT_ID) || ')
122 OR MKC.KANBAN_CARD_ID IN ( SELECT MKC.KANBAN_CARD_ID FROM MTL_KANBAN_CARDS MKC WHERE
123 MKC.PULL_SEQUENCE_ID IN ( SELECT MKBNT.PULL_SEQUENCE_ID
124 FROM MTL_KANBAN_CARD_PRINT_TEMP MKBNT
125 WHERE MKBNT.REPORT_ID = ' || TO_CHAR(P_REPORT_ID) || ')))';
126 END IF;
127 ELSIF P_CALL_FROM = 3 THEN
128 IF P_KANBAN_CARD_ID IS NOT NULL THEN
129 P_CALL_WHERE := P_CALL_WHERE || ' AND MKC.KANBAN_CARD_ID = ' || TO_CHAR(P_KANBAN_CARD_ID);
130 END IF;
131 END IF;
132 IF P_SORT_BY = 1 THEN
133 P_ORDER_BY := 'MKC.KANBAN_CARD_NUMBER';
134 ELSIF P_SORT_BY = 2 THEN
135 P_ORDER_BY := 'MKC.SUBINVENTORY_NAME';
136 ELSIF P_SORT_BY = 3 THEN
137 P_ORDER_BY := 'MKC.SUBINVENTORY_NAME , ' || P_LOC_FLEXDATA;
138 ELSIF P_SORT_BY = 4 THEN
139 P_ORDER_BY := 'PSV.VENDOR_NAME , MSS.VENDOR_SITE_CODE ';
140 ELSIF P_SORT_BY = 5 THEN
141 P_ORDER_BY := 'MKC.SOURCE_ORGANIZATION_ID,
142 MKC.SOURCE_SUBINVENTORY, ' || P_SOURCE_LOC_FLEXDATA;
143 END IF;
144 RETURN (TRUE);
145 END BEFOREREPORT;
146
147 FUNCTION AFTERREPORT RETURN BOOLEAN IS
148 BEGIN
149 --IF P_CALL_FROM = 2 THEN
150 --Added as part of ekanban by javakat
151 --where 4 is cal from adf page
152 IF P_CALL_FROM IN ( 2 ,4) THEN
153 BEGIN
154 DELETE FROM MTL_KANBAN_CARD_PRINT_TEMP
155 WHERE REPORT_ID = P_REPORT_ID;
156 EXCEPTION
157 WHEN NO_DATA_FOUND THEN
158 NULL;
159 WHEN OTHERS THEN
160 NULL;
161 END;
162 END IF;
163 /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
164 COMMIT;
165 RETURN (TRUE);
166 END AFTERREPORT;
167
168 FUNCTION AFTERPFORM RETURN BOOLEAN IS
169 BEGIN
170 IF P_TRACE_FLAG = 1 THEN
171 EXECUTE IMMEDIATE
172 ' alter session set sql_trace = true ';
173 END IF;
174 RETURN (TRUE);
175 END AFTERPFORM;
176 --Added this funtion for ekanban by javakat
177 --to print report for multiple kanaban records s
178 /* Formatted on 2011/01/05 12:36 (Formatter Plus v4.8.8) */
179 PROCEDURE call_kanban_report (
180 errbuf OUT NOCOPY VARCHAR2,
181 retcode OUT NOCOPY NUMBER,
182 x_request_id OUT NOCOPY NUMBER,
183 p_pull_sequence_id IN NUMBER,
184 p_mul_kbn_card_ids IN VARCHAR2
185 )
186 IS
187 v_report_id NUMBER;
188 v_sort_by NUMBER := 3;
189 v_call_from NUMBER := 2;
190 l_debug NUMBER := NVL (fnd_profile.VALUE ('INV_DEBUG_TRACE'), 0);
191 v_request_id NUMBER;
192 l_count NUMBER;
193 l_value VARCHAR2 (2000);
194 l_language VARCHAR2 (10);
195 l_territory VARCHAR2 (10);
196 l_add_layout BOOLEAN;
197 BEGIN
198 fnd_file.put_line (fnd_file.LOG, 'call_kanban_report');
199 fnd_file.put_line (fnd_file.LOG,
200 'P_PULL_SEQUENCE_ID: ' || P_PULL_SEQUENCE_ID
201 );
202 fnd_file.put_line (fnd_file.LOG,
203 'P_MUL_KBN_CARD_IDS: ' || p_mul_kbn_card_ids
204 );
205
206 IF P_PULL_SEQUENCE_ID IS NOT NULL THEN
207 v_report_id:=0;
208 fnd_file.put_line (fnd_file.LOG,
209 'Call from is 3 and Pull sequence is Passed'
210 );
211 IF v_report_id IS NULL
212 THEN
213 SELECT mtl_kanban_card_print_temp_s.NEXTVAL
214 INTO v_report_id
215 FROM DUAL;
216 END IF;
217
218 INSERT INTO mtl_kanban_card_print_temp
219 (report_id, kanban_card_id
220 )
221 select v_report_id,kanban_card_id from MTL_KANBAN_CARDS_V
222 where pull_sequence_id=pull_sequence_id;
223 ELSE
224
225 l_count :=
226 LENGTH (p_mul_kbn_card_ids)
227 - LENGTH (REPLACE (p_mul_kbn_card_ids, ',', ''))
228 + 1;
229 fnd_file.put_line (fnd_file.LOG, 'no of kanban cards selceted : ' || l_count);
230
231 -- In oracle 11g use regexp_count to determine l_count
232 FOR i IN 1 .. l_count
233 LOOP
234 SELECT REGEXP_SUBSTR (p_mul_kbn_card_ids, '[^,]+', 1, i)
235 INTO l_value
236 FROM DUAL;
237 IF v_report_id IS NULL
238 THEN
239 SELECT mtl_kanban_card_print_temp_s.NEXTVAL
240 INTO v_report_id
241 FROM DUAL;
242 END IF;
243
244 INSERT INTO mtl_kanban_card_print_temp
245 (report_id, kanban_card_id
246 )
247 VALUES (v_report_id, l_value
248 );
249 END LOOP;
250
251 fnd_file.put_line (fnd_file.LOG, 'v_report_id: ' || v_report_id);
252 END IF;
253 -- call to report conc pgm report
254 IF v_report_id IS NOT NULL OR P_PULL_SEQUENCE_ID IS NOT NULL
255 THEN
256 BEGIN
257 SELECT LOWER(FL.iso_language),ISO_TERRITORY
258 INTO l_language,l_territory
259 FROM NLS_SESSION_PARAMETERS NSP
260 ,fnd_languages FL
261 WHERE NSP.parameter = 'NLS_LANGUAGE'
262 AND NSP.value = FL.nls_language;
263 EXCEPTION
264 WHEN NO_DATA_FOUND THEN
265 FND_MESSAGE.set_name('FLM', 'FLM_SET_NLS_PARAM');
266 fnd_file.put_line(fnd_file.log, fnd_message.get);
267 END;
268 l_add_layout :=
269 fnd_request.add_layout ('INV', 'INVKBCPR_XML', l_language, l_territory, 'RTF');
270
271
272 IF l_add_layout
273 THEN
274 v_request_id :=
275 fnd_request.submit_request ('INV',
276 'INVKBCPR_XML',
277 NULL,
278 NULL,
279 FALSE,
280 NULL, /* p_org_id */
281 NULL, /* p_date_created_low */
282 NULL, /* p_date_created_high */
283 NULL, /* p_kanban_card_number_low */
284 NULL, /* p_kanban_card_number_high */
285 NULL, /* p_item_low */
286 NULL, /* p_item_high */
287 NULL, /* p_subinv */
288 NULL, /* p_locator_low */
289 NULL, /* p_locator_high */
290 NULL, /* p_source_type */
291 NULL, /* p_kanban_card_type */
292 NULL, /* p_supplier */
293 NULL, /* p_supplier_site */
294 NULL, /* p_source_org_id */
295 NULL, /* p_source_subinv */
296 NULL, /* p_source_loc_id */
297 v_sort_by, /* p_sort_by */
298 v_call_from, /* p_call_from */
299 NULL, /* p_kanban_card_id */
300 v_report_id, /* p_report_id */
301 NULL /* DebugFlag */
302 );
303 COMMIT;
304 END IF;
305 END IF;
306 retcode := 0 ;
307 x_request_id := v_request_id;
308
309 fnd_file.put_line (fnd_file.LOG, 'request_id: ' || x_request_id);
310 EXCEPTION
311 WHEN OTHERS
312 THEN
313 retcode := 2;
314 errbuf := SQLCODE || ':' || SQLERRM;
315 fnd_file.put_line(fnd_file.log, sqlcode||':'||sqlerrm);
316 END call_kanban_report;
317 END INV_INVKBCPR_XMLP_PKG;
318