[Home] [Help]
PACKAGE BODY: APPS.QP_PRL_LOADER_PUB
Source
1 PACKAGE BODY QP_PRL_LOADER_PUB AS
2 /* $Header: QPXPLDRB.pls 120.1 2005/06/13 00:54:55 appldev $ */
3
4
5 PROCEDURE Load_Price_List
6 ( p_process_id IN NUMBER,
7 p_req_type_code IN VARCHAR2,
8 x_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
9 x_errors OUT NOCOPY /* file.sql.39 change */ VARCHAR2
10 )
11 IS
12
13 gpr_return_status varchar2(30) := NULL;
14 gpr_msg_count number := 0;
15 gpr_msg_data varchar2(2000);
16 x_error varchar2(2000);
17 l_operation VARCHAR2(30);
18 l_process_type VARCHAR2(30);
19 l_line_index VARCHAR2(30);
20 i number := 1;
21
22 gpr_price_list_rec QP_PRICE_LIST_PUB.Price_List_Rec_Type;
23 gpr_price_list_val_rec QP_PRICE_LIST_PUB.Price_List_Val_Rec_Type;
24 gpr_price_list_line_tbl QP_PRICE_LIST_PUB.Price_List_Line_Tbl_Type;
25 gpr_price_list_line_val_tbl QP_PRICE_LIST_PUB.Price_List_Line_Val_Tbl_Type;
26 gpr_qualifiers_tbl QP_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
27 gpr_qualifiers_val_tbl QP_Qualifier_Rules_Pub.Qualifiers_Val_Tbl_Type;
28 gpr_pricing_attr_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Tbl_Type;
29 gpr_pricing_attr_val_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Val_Tbl_Type;
30 ppr_price_list_rec QP_PRICE_LIST_PUB.Price_List_Rec_Type;
31 ppr_price_list_val_rec QP_PRICE_LIST_PUB.Price_List_Val_Rec_Type;
32 ppr_price_list_line_tbl QP_PRICE_LIST_PUB.Price_List_Line_Tbl_Type;
33 ppr_price_list_line_val_tbl QP_PRICE_LIST_PUB.Price_List_Line_Val_Tbl_Type;
34 ppr_qualifiers_tbl QP_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
35 ppr_qualifiers_val_tbl QP_Qualifier_Rules_Pub.Qualifiers_Val_Tbl_Type;
36 ppr_pricing_attr_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Tbl_Type;
37 ppr_pricing_attr_val_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Val_Tbl_Type;
38
39 -- Getting the data from the interface tables
40
41 CURSOR l_qualifiers IS
42 SELECT
43 qual.interface_action_code,
44 qual.qualifier_id,
45 qual.list_header_id,
46 qual.excluder_flag,
47 qual.comparison_operator_code,
48 qual.qualifier_context,
49 qual.qualifier_attribute,
50 qual.qualifier_attr_value,
51 qual.qualifier_datatype,
52 qual.qualifier_grouping_no
53 FROM
54 qp_interface_qualifiers qual
55 WHERE
56 qual.process_id = p_process_id;
57
58 CURSOR l_lines IS
59 SELECT
60 line.interface_action_code,
61 line.list_header_id,
62 line.list_line_id,
63 line.list_line_type_code,
64 line.automatic_flag,
65 line.override_flag,
66 line.modifier_level_code,
67 line.primary_uom_flag,
68 line.operand,
69 line.arithmetic_operator,
70 line.product_precedence,
71 line.comments,
72 line.price_break_type_code,
73 line.list_line_no,
74 line.price_break_header_index,
75 line.attribute1,
76 line.attribute2,
77 line.start_date_active,
78 line.end_date_active
79 FROM
80 qp_interface_list_lines line
81 WHERE
82 line.process_id = p_process_id
83 ORDER BY
84 TO_NUMBER(line.list_line_no);
85
86 CURSOR l_pricing_attribs IS
87 SELECT
88 pa.interface_action_code,
89 pa.pricing_attribute_id,
90 pa.list_header_id,
91 pa.list_line_id,
92 pa.excluder_flag,
93 pa.product_attribute_context,
94 pa.product_attribute,
95 pa.product_attr_value,
96 pa.product_uom_code,
97 pa.product_attribute_datatype,
98 pa.pricing_attribute_datatype,
99 pa.pricing_attribute_context,
100 pa.pricing_attribute,
101 pa.pricing_attr_value_from,
102 pa.pricing_attr_value_to,
103 pa.attribute_grouping_no,
104 pa.comparison_operator_code,
105 -- pa.price_list_line_index,
106 pa.list_line_no
107 FROM
108 qp_interface_pricing_attribs pa
109 WHERE
110 pa.process_id = p_process_id
111 ORDER BY
112 TO_NUMBER(pa.list_line_no);
113
114
115 BEGIN
116
117 --dbms_output.put_line('Transferring data into pl/sql tables used as input to the PriceList BOI');
118 QP_PRL_LOADER_PUB.G_PROCESS_LST_REQ_TYPE := p_req_type_code; -- shulin, just in case this procedure is called independently
119 x_status := 1;
120
121 SELECT process_type
122 INTO l_process_type
123 FROM qp_interface_list_headers
124 WHERE process_id = p_process_id;
125
126 IF (l_process_type = 'XML') THEN
127
128 SELECT
129 lhdr.list_header_id,
130 lhdr.name,
131 lhdr.description,
132 lhdr.interface_action_code,
133 lhdr.list_type_code,
134 lhdr.currency_code,
135 TO_DATE(lhdr.start_date_active,'YYYYMMDD HHMISS'),
136 TO_DATE(lhdr.end_date_active,'YYYYMMDD HHMISS'),
137 lhdr.automatic_flag
138 INTO
139 gpr_price_list_rec.list_header_id,
140 gpr_price_list_rec.name,
141 gpr_price_list_rec.description,
142 l_operation,
143 gpr_price_list_rec.list_type_code,
144 gpr_price_list_rec.currency_code,
145 gpr_price_list_rec.start_date_active,
146 gpr_price_list_rec.end_date_active,
147 gpr_price_list_rec.automatic_flag
148 FROM
149 qp_interface_list_headers lhdr
150 WHERE
151 lhdr.process_id = p_process_id
152 AND
153 rownum < 2;
154
155 ELSE
156
157 SELECT
158 lhdr.list_header_id,
159 lhdr.name,
160 lhdr.description,
161 lhdr.interface_action_code,
162 lhdr.list_type_code,
163 lhdr.currency_code,
164 lhdr.start_date_active,
165 lhdr.end_date_active,
166 lhdr.rounding_factor,
167 lhdr.automatic_flag,
168 lhdr.attribute1
169 INTO
170 gpr_price_list_rec.list_header_id,
171 gpr_price_list_rec.name,
172 gpr_price_list_rec.description,
173 l_operation,
174 gpr_price_list_rec.list_type_code,
175 gpr_price_list_rec.currency_code,
176 gpr_price_list_rec.start_date_active,
177 gpr_price_list_rec.end_date_active,
178 gpr_price_list_rec.rounding_factor,
179 gpr_price_list_rec.automatic_flag,
180 gpr_price_list_rec.attribute1
181 FROM
182 qp_interface_list_headers lhdr
183 WHERE
184 lhdr.process_id = p_process_id
185 AND
186 rownum < 2;
187 END IF;
188
189 IF (l_operation = 'C') THEN
190 gpr_price_list_rec.list_header_id := FND_API.G_MISS_NUM;
191 gpr_price_list_rec.rounding_factor := FND_API.G_MISS_NUM;
192 gpr_price_list_rec.operation := QP_GLOBALS.G_OPR_CREATE;
193 END IF;
194
195 IF (l_operation = 'U') THEN
196 gpr_price_list_rec.rounding_factor := FND_API.G_MISS_NUM;
197 gpr_price_list_rec.operation := QP_GLOBALS.G_OPR_UPDATE;
198 --dbms_output.put_line('Setting operation to update');
199 END IF;
200
201 IF (l_operation = 'D') THEN
202 gpr_price_list_rec.operation := QP_GLOBALS.G_OPR_DELETE;
203 --dbms_output.put_line('Setting operation to update');
204 END IF;
205
206 --dbms_output.put_line('Header_id: ' || gpr_price_list_rec.list_header_id);
207 --dbms_output.put_line('Name: ' || gpr_price_list_rec.name);
208 --dbms_output.put_line('Description: ' || gpr_price_list_rec.description);
209 --dbms_output.put_line('Operation: ' || gpr_price_list_rec.operation);
210 --dbms_output.put_line('List_Type_Code: ' || gpr_price_list_rec.list_type_code);
211 --dbms_output.put_line('Currency_Code: ' || gpr_price_list_rec.currency_code);
212 --dbms_output.put_line('Start_Date_Active: ' || gpr_price_list_rec.start_date_active);
213 --dbms_output.put_line('End_Date_Active: ' || gpr_price_list_rec.end_date_active);
214 --dbms_output.put_line('Automatic_Flag: ' || gpr_price_list_rec.automatic_flag);
215 --dbms_output.put_line('Attribute1: ' || gpr_price_list_rec.attribute1);
216
217
218
219 i := 1;
220 OPEN l_qualifiers;
221 LOOP
222 FETCH l_qualifiers INTO
223 l_operation,
224 gpr_qualifiers_tbl(i).qualifier_id,
225 gpr_qualifiers_tbl(i).list_header_id,
226 gpr_qualifiers_tbl(i).excluder_flag,
227 gpr_qualifiers_tbl(i).comparison_operator_code,
228 gpr_qualifiers_tbl(i).qualifier_context,
229 gpr_qualifiers_val_tbl(i).qualifier_attribute_desc,
230 gpr_qualifiers_tbl(i).qualifier_attr_value,
231 gpr_qualifiers_tbl(i).qualifier_datatype,
232 gpr_qualifiers_tbl(i).qualifier_grouping_no;
233 EXIT WHEN l_qualifiers%NOTFOUND;
234
235 gpr_qualifiers_tbl(i).qualifier_attribute := FND_API.G_MISS_CHAR;
236 --gpr_qualifiers_tbl(i).qualifier_attr_value := FND_API.G_MISS_CHAR;
237
238 IF (l_operation = 'C') THEN
239 gpr_qualifiers_tbl(i).list_header_id := FND_API.G_MISS_NUM;
240 gpr_qualifiers_tbl(i).qualifier_id := FND_API.G_MISS_NUM;
241 gpr_qualifiers_tbl(i).operation := QP_GLOBALS.G_OPR_CREATE;
242
243 IF (gpr_qualifiers_tbl(i).excluder_flag IS NULL) THEN
244 gpr_qualifiers_tbl(i).excluder_flag:= FND_API.G_MISS_CHAR;
245 END IF;
246
247 IF (gpr_qualifiers_tbl(i).qualifier_grouping_no IS NULL) THEN
248 gpr_qualifiers_tbl(i).qualifier_grouping_no:= FND_API.G_MISS_NUM;
249 END IF;
250 END IF;
251
252 IF (l_operation = 'U') THEN
253 gpr_qualifiers_tbl(i).operation := QP_GLOBALS.G_OPR_UPDATE;
254 END IF;
255
256 IF (l_operation = 'D') THEN
257 gpr_qualifiers_tbl(i).operation := QP_GLOBALS.G_OPR_DELETE;
258 END IF;
259
260 --dbms_output.put_line('*** Qualifier ***');
261 --dbms_output.put_line('Qualifier Id: ' || gpr_qualifiers_tbl(i).qualifier_id);
262 --dbms_output.put_line('List_header_id: ' || gpr_qualifiers_tbl(i).list_header_id);
263 --dbms_output.put_line('Operation: ' || gpr_qualifiers_tbl(i).operation);
264 --dbms_output.put_line('excluder_flag: ' || gpr_qualifiers_tbl(i).excluder_flag);
265 --dbms_output.put_line('comparison_operator_code: ' || gpr_qualifiers_tbl(i).comparison_operator_code);
266 --dbms_output.put_line('qualifier_context: ' || gpr_qualifiers_tbl(i).qualifier_context);
267 --dbms_output.put_line('qualifier_attribute_desc: ' || gpr_qualifiers_val_tbl(i).qualifier_attribute_desc);
268 --dbms_output.put_line('qualifier_attr_value: ' || gpr_qualifiers_tbl(i).qualifier_attr_value);
269 --dbms_output.put_line('qualifier_datatype: ' || gpr_qualifiers_tbl(i).qualifier_datatype);
270 --dbms_output.put_line('qualifier_grouping_no: ' || gpr_qualifiers_tbl(i).qualifier_grouping_no);
271
272 i := i + 1;
273
274 END LOOP;
275
276 i := 1;
277 OPEN l_lines;
278 LOOP
279 FETCH l_lines INTO
280 l_operation,
281 gpr_price_list_line_tbl(i).list_header_id,
282 gpr_price_list_line_tbl(i).list_line_id,
283 gpr_price_list_line_tbl(i).list_line_type_code,
284 gpr_price_list_line_tbl(i).automatic_flag,
285 gpr_price_list_line_tbl(i).override_flag,
286 gpr_price_list_line_tbl(i).modifier_level_code,
287 gpr_price_list_line_tbl(i).primary_uom_flag,
288 gpr_price_list_line_tbl(i).operand,
289 gpr_price_list_line_tbl(i).arithmetic_operator,
290 gpr_price_list_line_tbl(i).product_precedence,
291 gpr_price_list_line_tbl(i).comments,
292 gpr_price_list_line_tbl(i).price_break_type_code,
293 gpr_price_list_line_tbl(i).list_line_no,
294 gpr_price_list_line_tbl(i).price_break_header_index,
295 gpr_price_list_line_tbl(i).attribute1,
296 gpr_price_list_line_tbl(i).attribute2,
297 gpr_price_list_line_tbl(i).start_date_active,
298 gpr_price_list_line_tbl(i).end_date_active;
299 EXIT WHEN l_lines%NOTFOUND;
300
301 IF (l_operation = 'C') THEN
302 IF (gpr_price_list_line_tbl(i).list_header_id IS NULL) THEN
303 gpr_price_list_line_tbl(i).list_header_id := FND_API.G_MISS_NUM;
304 END IF;
305
306 IF (gpr_price_list_line_tbl(i).list_line_no IS NULL) THEN
307 gpr_price_list_line_tbl(i).list_line_no := FND_API.G_MISS_NUM;
308 END IF;
309
310 gpr_price_list_line_tbl(i).list_line_id := FND_API.G_MISS_NUM;
311 gpr_price_list_line_tbl(i).rltd_modifier_id := FND_API.G_MISS_NUM;
312 gpr_price_list_line_tbl(i).from_rltd_modifier_id := FND_API.G_MISS_NUM;
313 gpr_price_list_line_tbl(i).to_rltd_modifier_id := FND_API.G_MISS_NUM;
314 gpr_price_list_line_tbl(i).rltd_modifier_group_no := FND_API.G_MISS_NUM;
315 gpr_price_list_line_tbl(i).operation := QP_GLOBALS.G_OPR_CREATE;
316
317 IF (gpr_price_list_line_tbl(i).automatic_flag IS NULL) THEN
318 gpr_price_list_line_tbl(i).automatic_flag := FND_API.G_MISS_CHAR;
319 END IF;
320
321 IF (gpr_price_list_line_tbl(i).modifier_level_code IS NULL) THEN
322 gpr_price_list_line_tbl(i).modifier_level_code := FND_API.G_MISS_CHAR;
323 END IF;
324 END IF;
325
326 IF (l_operation = 'U') THEN
327 gpr_price_list_line_tbl(i).operation := QP_GLOBALS.G_OPR_UPDATE;
328 END IF;
329
330 IF (l_operation = 'D') THEN
331 gpr_price_list_line_tbl(i).operation := QP_GLOBALS.G_OPR_DELETE;
332 END IF;
333
334 --dbms_output.put_line('*** List Line ***');
335 --dbms_output.put_line('operation: ' || gpr_price_list_line_tbl(i).operation);
336 --dbms_output.put_line('Header_id: ' || gpr_price_list_line_tbl(i).list_header_id);
337 --dbms_output.put_line('List_line_id: ' || gpr_price_list_line_tbl(i).list_line_id);
338 --dbms_output.put_line('Start_Date_Active: ' || gpr_price_list_line_tbl(i).start_date_active);
339 --dbms_output.put_line('End_Date_Active: ' || gpr_price_list_line_tbl(i).end_date_active);
340 --dbms_output.put_line('list_line_type_code: ' || gpr_price_list_line_tbl(i).list_line_type_code);
341 --dbms_output.put_line('automatic_flag: ' || gpr_price_list_line_tbl(i).automatic_flag);
342 --dbms_output.put_line('override_flag: ' || gpr_price_list_line_tbl(i).override_flag);
343 --dbms_output.put_line('modifier_level_code: ' || gpr_price_list_line_tbl(i).modifier_level_code);
344 --dbms_output.put_line('operand: ' || gpr_price_list_line_tbl(i).operand);
345 --dbms_output.put_line('arithmetic_operator: ' || gpr_price_list_line_tbl(i).arithmetic_operator);
346 --dbms_output.put_line('product_precedence: ' || gpr_price_list_line_tbl(i).product_precedence);
347 --dbms_output.put_line('comments: ' || gpr_price_list_line_tbl(i).comments);
348 --dbms_output.put_line('price_break_type_code: ' || gpr_price_list_line_tbl(i).price_break_type_code);
349 --dbms_output.put_line('list_line_no: ' || gpr_price_list_line_tbl(i).list_line_no);
350 --dbms_output.put_line('price_break_header_index: ' || gpr_price_list_line_tbl(i).price_break_header_index);
351 --dbms_output.put_line('price_line_index: ' || l_line_index);
352
353 i := i + 1;
354
355 END LOOP;
356
357
358 i := 1;
359 OPEN l_pricing_attribs;
360 LOOP
361 FETCH l_pricing_attribs INTO
362 l_operation,
363 gpr_pricing_attr_tbl(i).pricing_attribute_id,
364 gpr_pricing_attr_tbl(i).list_header_id,
365 gpr_pricing_attr_tbl(i).list_line_id,
366 gpr_pricing_attr_tbl(i).excluder_flag,
367 gpr_pricing_attr_tbl(i).product_attribute_context,
368 gpr_pricing_attr_tbl(i).product_attribute,
369 gpr_pricing_attr_tbl(i).product_attr_value,
370 gpr_pricing_attr_tbl(i).product_uom_code,
371 gpr_pricing_attr_tbl(i).product_attribute_datatype,
372 gpr_pricing_attr_tbl(i).pricing_attribute_datatype,
373 gpr_pricing_attr_tbl(i).pricing_attribute_context,
374 gpr_pricing_attr_val_tbl(i).pricing_attribute_desc,
375 gpr_pricing_attr_val_tbl(i).pricing_attr_value_from_desc,
376 gpr_pricing_attr_val_tbl(i).pricing_attr_value_to_desc,
377 gpr_pricing_attr_tbl(i).attribute_grouping_no,
378 gpr_pricing_attr_tbl(i).comparison_operator_code,
379 gpr_pricing_attr_tbl(i).price_list_line_index;
380 EXIT WHEN l_pricing_attribs%NOTFOUND;
381
382
383 IF (l_operation = 'C') THEN
384 gpr_pricing_attr_tbl(i).pricing_attribute_id := FND_API.G_MISS_NUM;
385 gpr_pricing_attr_tbl(i).list_line_id := FND_API.G_MISS_NUM;
386
387 IF (gpr_pricing_attr_tbl(i).list_header_id IS NULL) THEN
388 gpr_pricing_attr_tbl(i).list_header_id := FND_API.G_MISS_NUM;
389 END IF;
390
391 gpr_pricing_attr_tbl(i).operation := QP_GLOBALS.G_OPR_CREATE;
392 gpr_pricing_attr_tbl(i).pricing_attribute := FND_API.G_MISS_CHAR;
393 gpr_pricing_attr_tbl(i).pricing_attr_value_from := FND_API.G_MISS_CHAR;
394 gpr_pricing_attr_tbl(i).pricing_attr_value_to := FND_API.G_MISS_CHAR;
395
396 IF (gpr_pricing_attr_tbl(i).excluder_flag IS NULL) THEN
397 gpr_pricing_attr_tbl(i).excluder_flag := FND_API.G_MISS_CHAR;
398 END IF;
399
400 IF (gpr_pricing_attr_tbl(i).attribute_grouping_no IS NULL) THEN
401 gpr_pricing_attr_tbl(i).attribute_grouping_no := FND_API.G_MISS_NUM;
402 END IF;
403
404
405 IF (gpr_pricing_attr_tbl(i).product_attribute_datatype IS NULL) THEN
406 --gpr_pricing_attr_tbl(i).product_attribute_datatype := FND_API.G_MISS_CHAR;
407 gpr_pricing_attr_tbl(i).product_attribute_datatype := 'C';
408 END IF;
409
410 IF (gpr_pricing_attr_tbl(i).pricing_attribute_datatype IS NULL) THEN
411 --gpr_pricing_attr_tbl(i).pricing_attribute_datatype := FND_API.G_MISS_CHAR;
412 gpr_pricing_attr_tbl(i).pricing_attribute_datatype := 'C';
413 END IF;
414 END IF;
415
416 IF (l_operation = 'U') THEN
417 gpr_pricing_attr_tbl(i).operation := QP_GLOBALS.G_OPR_UPDATE;
418 END IF;
419
420 IF (l_operation = 'D') THEN
421 gpr_pricing_attr_tbl(i).operation := QP_GLOBALS.G_OPR_DELETE;
422 END IF;
423
424 --dbms_output.put_line('***Pricing Attribute***');
425 --dbms_output.put_line('Pricing Attribute Id: ' || gpr_pricing_attr_tbl(i).pricing_attribute_id);
426 --dbms_output.put_line('List Header Id: ' || gpr_pricing_attr_tbl(i).list_header_id);
427 --dbms_output.put_line('List Line Id: ' || gpr_pricing_attr_tbl(i).list_line_id);
428 --dbms_output.put_line('operation: ' || gpr_pricing_attr_tbl(i).operation);
429 --dbms_output.put_line('excluder_flag: ' || gpr_pricing_attr_tbl(i).excluder_flag);
430 --dbms_output.put_line('product_attribute_context: ' || gpr_pricing_attr_tbl(i).product_attribute_context);
431 --dbms_output.put_line('product_attribute: ' || gpr_pricing_attr_tbl(i).product_attribute);
432 --dbms_output.put_line('product_attr_value: ' || gpr_pricing_attr_tbl(i).product_attr_value);
433 --dbms_output.put_line('product_uom_code: ' || gpr_pricing_attr_tbl(i).product_uom_code);
434 --dbms_output.put_line('product_attribute_datatype: ' || gpr_pricing_attr_tbl(i).product_attribute_datatype);
435 --dbms_output.put_line('pricing_attribute_datatype: ' || gpr_pricing_attr_tbl(i).pricing_attribute_datatype);
436 --dbms_output.put_line('pricing_attribute_context: ' || gpr_pricing_attr_tbl(i).pricing_attribute_context);
437 --dbms_output.put_line('pricing_attribute: ' || gpr_pricing_attr_val_tbl(i).pricing_attribute_desc);
438 --dbms_output.put_line('pricing_attr_value_from: ' || gpr_pricing_attr_val_tbl(i).pricing_attr_value_from_desc);
439 --dbms_output.put_line('pricing_attr_value_to: ' || gpr_pricing_attr_val_tbl(i).pricing_attr_value_to_desc);
440 --dbms_output.put_line('attribute_grouping_no: ' || gpr_pricing_attr_tbl(i).attribute_grouping_no);
441 --dbms_output.put_line('comparison_operator_code: ' || gpr_pricing_attr_tbl(i).comparison_operator_code);
442 --dbms_output.put_line('price_list_line_index: ' || gpr_pricing_attr_tbl(i).price_list_line_index);
443
444 i := i + 1;
445 END LOOP;
446
447
448
449 QP_PRICE_LIST_PUB.Process_Price_List
450 ( p_api_version_number => 1
451 , p_init_msg_list => FND_API.G_FALSE
452 , p_return_values => FND_API.G_FALSE
453 , p_commit => FND_API.G_FALSE
454 , x_return_status => gpr_return_status
455 , x_msg_count => gpr_msg_count
456 , x_msg_data => gpr_msg_data
457 , p_PRICE_LIST_rec => gpr_price_list_rec
458 , p_PRICE_LIST_LINE_tbl => gpr_price_list_line_tbl
459 , p_QUALIFIERS_tbl => gpr_qualifiers_tbl
460 , p_QUALIFIERS_val_tbl => gpr_qualifiers_val_tbl
461 , p_PRICING_ATTR_tbl => gpr_pricing_attr_tbl
462 , p_PRICING_ATTR_val_tbl => gpr_pricing_attr_val_tbl
463 , x_PRICE_LIST_rec => ppr_price_list_rec
464 , x_PRICE_LIST_val_rec => ppr_price_list_val_rec
465 , x_PRICE_LIST_LINE_tbl => ppr_price_list_line_tbl
466 , x_PRICE_LIST_LINE_val_tbl => ppr_price_list_line_val_tbl
467 , x_QUALIFIERS_tbl => ppr_qualifiers_tbl
468 , x_QUALIFIERS_val_tbl => ppr_qualifiers_val_tbl
469 , x_PRICING_ATTR_tbl => ppr_pricing_attr_tbl
470 , x_PRICING_ATTR_val_tbl => ppr_pricing_attr_val_tbl
471 );
472
473 IF gpr_return_status = FND_API.G_RET_STS_SUCCESS THEN
474 x_status := 'COMPLETED';
475 --dbms_output.put_line('Successfully completed Pricelist BOI');
476 END IF;
477
478 IF gpr_return_status <> FND_API.G_RET_STS_SUCCESS THEN
479
480 x_status := 'FAILED';
481 for k in 1 .. gpr_msg_count loop
482 gpr_msg_data := oe_msg_pub.get( p_msg_index => k, p_encoded => 'F');
483 x_error := substr(gpr_msg_data,1,2000);
484 IF (x_error = 'SO_NT_NOTE_NAME_IN_USE') THEN
485 x_error := 'Pricelist name already in use';
486 END IF;
487 x_errors := x_errors || x_error || ' , ';
488 --dbms_output.put_line('Error msg: '||substr(gpr_msg_data,1,2000));
489 end loop;
490
491 --dbms_output.put_line('Error in BOI');
492 --dbms_output.put_line('error_count : ' || gpr_msg_count);
493 --dbms_output.put_line('X_STATUS : ' || x_status);
494 --dbms_output.put_line('X_ERRORS : ' || x_errors);
495
496 rollback;
497 -- RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
498
499 END IF;
500
501 --dbms_output.put_line('after process price list ');
502 EXCEPTION
503 WHEN OTHERS THEN
504 x_status :='FAILED';
505 x_errors :='Exception';
506
507
508 END LOAD_PRICE_LIST;
509
510
511
512 -- add parameter p_req_type_code, if FTE, allowed calling application to use BOI process_price_list
513 PROCEDURE Load_Price_List
514 ( p_process_id IN NUMBER,
515 p_req_type_code IN VARCHAR2, --shulin
516 p_action_code IN VARCHAR2
517 )
518 IS
519
520
521 BEGIN
522
523 -- INSERT INTO FTE_JOB_ERRORS (JOB_ID,LINE_NUMBER,ERROR_MESSAGE)
524 -- VALUES (p_process_id,1,'Load Price List Called with action: ' || p_action_code);
525
526 QP_PRL_LOADER_PUB.G_PROCESS_LST_REQ_TYPE := p_req_type_code; -- shulin
527
528 IF p_action_code = 'C' THEN
529 Load_Price_List(p_process_id, p_req_type_code, G_temp_status, G_temp_errors);
530 END IF;
531
532 END LOAD_PRICE_LIST;
533
534 END QP_PRL_LOADER_PUB;