DBA Data[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;