[Home] [Help]
PACKAGE BODY: APPS.QP_QP_FORM_PLL_PRICING_ATTR
Source
1 PACKAGE BODY QP_QP_Form_pll_pricing_attr AS
2 /* $Header: QPXFPLAB.pls 120.5 2008/06/12 07:42:04 kdurgasi ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'Qp_Qp_Form_pll_pricing_attr';
7
8 -- Global variables holding cached record.
9
10 g_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
11 g_db_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
12
13 -- Forward declaration of procedures maintaining entity record cache.
14
15 PROCEDURE Write_PRICING_ATTR
16 ( p_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
17 , p_db_record IN BOOLEAN := FALSE
18 );
19
20 FUNCTION Get_PRICING_ATTR
21 ( p_db_record IN BOOLEAN := FALSE
22 , p_pricing_attribute_id IN NUMBER
23 )
24 RETURN QP_Price_List_PUB.Pricing_Attr_Rec_Type;
25
26 PROCEDURE Clear_PRICING_ATTR;
27
28 -- Global variable holding performed operations.
29
30 g_opr__tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
31
32 -- Procedure : Default_Attributes
33 --
34
35 PROCEDURE Default_Attributes
36 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
37 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
38 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
39 , p_list_header_id IN NUMBER DEFAULT NULL
40 , p_list_line_id IN NUMBER
41 , x_accumulate_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
42 , x_attribute1 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
43 , x_attribute10 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
44 , x_attribute11 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
45 , x_attribute12 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
46 , x_attribute13 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
47 , x_attribute14 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
48 , x_attribute15 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
49 , x_attribute2 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
50 , x_attribute3 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
51 , x_attribute4 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
52 , x_attribute5 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
53 , x_attribute6 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
54 , x_attribute7 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
55 , x_attribute8 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
56 , x_attribute9 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
57 , x_attribute_grouping_no OUT NOCOPY /* file.sql.39 change */ NUMBER
58 , x_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
59 , x_excluder_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
60 , x_list_line_id OUT NOCOPY /* file.sql.39 change */ NUMBER
61 , x_pricing_attribute OUT NOCOPY /* file.sql.39 change */ VARCHAR2
62 , x_pricing_attribute_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
63 , x_pricing_attribute_id OUT NOCOPY /* file.sql.39 change */ NUMBER
64 , x_pricing_attr_value_from OUT NOCOPY /* file.sql.39 change */ VARCHAR2
65 , x_pricing_attr_value_to OUT NOCOPY /* file.sql.39 change */ VARCHAR2
66 , x_product_attribute OUT NOCOPY /* file.sql.39 change */ VARCHAR2
67 , x_product_attribute_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
68 , x_product_attr_value OUT NOCOPY /* file.sql.39 change */ VARCHAR2
69 , x_product_uom_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
70 , x_accumulate OUT NOCOPY /* file.sql.39 change */ VARCHAR2
71 , x_excluder OUT NOCOPY /* file.sql.39 change */ VARCHAR2
72 , x_list_line OUT NOCOPY /* file.sql.39 change */ VARCHAR2
73 , x_product_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
74 , x_from_rltd_modifier_id OUT NOCOPY /* file.sql.39 change */ NUMBER
75 , x_comparison_operator_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
76 , x_pricing_attribute_datatype OUT NOCOPY /* file.sql.39 change */ VARCHAR2
77 , x_product_attribute_datatype OUT NOCOPY /* file.sql.39 change */ VARCHAR2
78 , p_from_rltd_modifier_id IN NUMBER := NULL
79 , p_pricing_attribute_context IN VARCHAR2 := NULL
80 , p_pricing_attribute IN VARCHAR2 := NULL
81 )
82 IS
83 l_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
84 l_PRICING_ATTR_val_rec QP_Price_List_PUB.Pricing_Attr_Val_Rec_Type;
85 l_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
86 l_control_rec QP_GLOBALS.Control_Rec_Type;
87 l_return_status VARCHAR2(1);
88 l_x_PRICE_LIST_rec QP_Price_List_PUB.Price_List_Rec_Type;
89 l_x_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
90 l_x_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
91 l_x_QUALIFIERS_rec Qp_Qualifier_Rules_Pub.Qualifiers_Rec_Type;
92 l_x_QUALIFIERS_tbl Qp_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
93 l_x_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
94 l_x_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
95 BEGIN
96
97 oe_debug_pub.add('Ren: inside default attr of prc attr 1');
98 -- Set control flags.
99
100 l_control_rec.controlled_operation := TRUE;
101 l_control_rec.default_attributes := TRUE;
102
103 l_control_rec.change_attributes := FALSE;
104 l_control_rec.validate_entity := FALSE;
105 l_control_rec.write_to_DB := FALSE;
106 l_control_rec.process := FALSE;
107
108 -- Instruct API to retain its caches
109
110 l_control_rec.clear_api_cache := FALSE;
111 l_control_rec.clear_api_requests := FALSE;
112
113 -- Load IN parameters if any exist
114
115
116 l_PRICING_ATTR_rec.list_header_id := p_list_header_id;
117 l_PRICING_ATTR_rec.list_line_id := p_list_line_id;
118 l_PRICING_ATTR_rec.from_rltd_modifier_id := p_from_rltd_modifier_id;
119 l_PRICING_ATTR_rec.pricing_attribute_context := p_pricing_attribute_context;
120 l_PRICING_ATTR_rec.pricing_attribute := p_pricing_attribute;
121
122
123
124 -- Defaulting of flex values is currently done by the form.
125 -- Set flex attributes to NULL in order to avoid defaulting them.
126
127 l_PRICING_ATTR_rec.attribute1 := NULL;
128 l_PRICING_ATTR_rec.attribute10 := NULL;
129 l_PRICING_ATTR_rec.attribute11 := NULL;
130 l_PRICING_ATTR_rec.attribute12 := NULL;
131 l_PRICING_ATTR_rec.attribute13 := NULL;
132 l_PRICING_ATTR_rec.attribute14 := NULL;
133 l_PRICING_ATTR_rec.attribute15 := NULL;
134 l_PRICING_ATTR_rec.attribute2 := NULL;
135 l_PRICING_ATTR_rec.attribute3 := NULL;
136 l_PRICING_ATTR_rec.attribute4 := NULL;
137 l_PRICING_ATTR_rec.attribute5 := NULL;
138 l_PRICING_ATTR_rec.attribute6 := NULL;
139 l_PRICING_ATTR_rec.attribute7 := NULL;
140 l_PRICING_ATTR_rec.attribute8 := NULL;
141 l_PRICING_ATTR_rec.attribute9 := NULL;
142 l_PRICING_ATTR_rec.context := NULL;
143
144 -- Set Operation to Create
145
146 l_PRICING_ATTR_rec.operation := QP_GLOBALS.G_OPR_CREATE;
147
148 -- Populate PRICING_ATTR table
149
150 l_PRICING_ATTR_tbl(1) := l_PRICING_ATTR_rec;
151
152 -- Call QP_LIST_HEADERS_PVT.Process_PRICE_LIST
153
154 QP_LIST_HEADERS_PVT.Process_PRICE_LIST
155 ( p_api_version_number => 1.0
156 , p_init_msg_list => FND_API.G_TRUE
157 , x_return_status => l_return_status
158 , x_msg_count => x_msg_count
159 , x_msg_data => x_msg_data
160 , p_control_rec => l_control_rec
161 , p_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl
162 , x_PRICE_LIST_rec => l_x_PRICE_LIST_rec
163 , x_PRICE_LIST_LINE_tbl => l_x_PRICE_LIST_LINE_tbl
164 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
165 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
166 );
167
168 oe_debug_pub.add('Ren: after process price list 1');
169
170 oe_debug_pub.add('return status is : ' || l_return_status);
171
172 oe_debug_pub.add('ren: msg data 1 is : ' || x_msg_data);
173
174 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
175 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
176 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
177 RAISE FND_API.G_EXC_ERROR;
178 END IF;
179
180
181 -- Unload out tbl
182
183 l_x_PRICING_ATTR_rec := l_x_PRICING_ATTR_tbl(1);
184
185 -- Load OUT parameters.
186
187 x_accumulate_flag := l_x_PRICING_ATTR_rec.accumulate_flag;
188 x_attribute1 := l_x_PRICING_ATTR_rec.attribute1;
189 x_attribute10 := l_x_PRICING_ATTR_rec.attribute10;
190 x_attribute11 := l_x_PRICING_ATTR_rec.attribute11;
191 x_attribute12 := l_x_PRICING_ATTR_rec.attribute12;
192 x_attribute13 := l_x_PRICING_ATTR_rec.attribute13;
193 x_attribute14 := l_x_PRICING_ATTR_rec.attribute14;
194 x_attribute15 := l_x_PRICING_ATTR_rec.attribute15;
195 x_attribute2 := l_x_PRICING_ATTR_rec.attribute2;
196 x_attribute3 := l_x_PRICING_ATTR_rec.attribute3;
197 x_attribute4 := l_x_PRICING_ATTR_rec.attribute4;
198 x_attribute5 := l_x_PRICING_ATTR_rec.attribute5;
199 x_attribute6 := l_x_PRICING_ATTR_rec.attribute6;
200 x_attribute7 := l_x_PRICING_ATTR_rec.attribute7;
201 x_attribute8 := l_x_PRICING_ATTR_rec.attribute8;
202 x_attribute9 := l_x_PRICING_ATTR_rec.attribute9;
203 x_attribute_grouping_no := l_x_PRICING_ATTR_rec.attribute_grouping_no;
204 x_context := l_x_PRICING_ATTR_rec.context;
205 x_excluder_flag := l_x_PRICING_ATTR_rec.excluder_flag;
206 x_list_line_id := l_x_PRICING_ATTR_rec.list_line_id;
207 x_pricing_attribute := l_x_PRICING_ATTR_rec.pricing_attribute;
208 x_pricing_attribute_context := l_x_PRICING_ATTR_rec.pricing_attribute_context;
209 x_pricing_attribute_id := l_x_PRICING_ATTR_rec.pricing_attribute_id;
210 x_pricing_attr_value_from := l_x_PRICING_ATTR_rec.pricing_attr_value_from;
211 x_pricing_attr_value_to := l_x_PRICING_ATTR_rec.pricing_attr_value_to;
212 x_product_attribute := l_x_PRICING_ATTR_rec.product_attribute;
213 x_product_attribute_context := l_x_PRICING_ATTR_rec.product_attribute_context;
214 x_product_attr_value := l_x_PRICING_ATTR_rec.product_attr_value;
215 x_product_uom_code := l_x_PRICING_ATTR_rec.product_uom_code;
216 x_from_rltd_modifier_id := l_x_PRICING_ATTR_rec.from_rltd_modifier_id;
217 x_comparison_operator_code := l_x_PRICING_ATTR_rec.comparison_operator_code;
218 x_pricing_attribute_datatype := l_x_PRICING_ATTR_rec.pricing_attribute_datatype;
219 x_product_attribute_datatype := l_x_PRICING_ATTR_rec.product_attribute_datatype;
220
221 -- Load display out parameters if any
222
223 oe_debug_pub.add('Ren: before get_values 1');
224 oe_debug_pub.add('ren : msg data 0.5 is : ' || x_msg_data);
225
226 l_PRICING_ATTR_val_rec := Qp_pll_pricing_attr_Util.Get_Values
227 ( p_PRICING_ATTR_rec => l_x_PRICING_ATTR_rec
228 );
229 x_accumulate := l_PRICING_ATTR_val_rec.accumulate;
230 x_excluder := l_PRICING_ATTR_val_rec.excluder;
231 x_list_line := l_PRICING_ATTR_val_rec.list_line;
232 x_product_uom := l_PRICING_ATTR_val_rec.product_uom;
233
234
235 oe_debug_pub.add('Ren: after get_values 1 ');
236
237 -- Write to cache.
238 -- Set db_flag to False before writing to cache
239
240 l_x_PRICING_ATTR_rec.db_flag := FND_API.G_FALSE;
241
242 oe_debug_pub.add('Ren: before write prc attr 1');
243 oe_debug_pub.add('Ren: msg data 1 is :' || x_msg_data);
244
245 Write_PRICING_ATTR
246 ( p_PRICING_ATTR_rec => l_x_PRICING_ATTR_rec
247 );
248
249 oe_debug_pub.add('Ren: msg data 2 is :' || x_msg_data);
250
251 -- Set return status.
252
253 x_return_status := FND_API.G_RET_STS_SUCCESS;
254
255 -- Get message count and data
256
257 oe_msg_pub.Count_And_Get
258 ( p_count => x_msg_count
259 , p_data => x_msg_data
260 );
261
262 oe_debug_pub.add('Ren: msg data 2.5 is :' || x_msg_data);
263
264 oe_debug_pub.add('exiting default attributes');
265
266
267 EXCEPTION
268
269 WHEN FND_API.G_EXC_ERROR THEN
270
271 x_return_status := FND_API.G_RET_STS_ERROR;
272
273 -- Get message count and data
274
275 oe_msg_pub.Count_And_Get
276 ( p_count => x_msg_count
277 , p_data => x_msg_data
278 );
279
280 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
281
282 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
283
284 -- Get message count and data
285
286 oe_msg_pub.Count_And_Get
287 ( p_count => x_msg_count
288 , p_data => x_msg_data
289 );
290
291 WHEN OTHERS THEN
292
293 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
294
295 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
296 THEN
297 oe_msg_pub.Add_Exc_Msg
298 ( G_PKG_NAME
299 , 'Default_Attributes'
300 );
301 END IF;
302
303 -- Get message count and data
304
305 oe_msg_pub.Count_And_Get
306 ( p_count => x_msg_count
307 , p_data => x_msg_data
308 );
309
310 END Default_Attributes;
311
312 -- Procedure : Change_Attribute
313 --
314
315 PROCEDURE Change_Attribute
316 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
317 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
318 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
319 , p_pricing_attribute_id IN NUMBER
320 , p_attr_id IN NUMBER
321 , p_attr_value IN VARCHAR2
322 , p_attribute1 IN VARCHAR2
323 , p_attribute10 IN VARCHAR2
324 , p_attribute11 IN VARCHAR2
325 , p_attribute12 IN VARCHAR2
326 , p_attribute13 IN VARCHAR2
327 , p_attribute14 IN VARCHAR2
328 , p_attribute15 IN VARCHAR2
329 , p_attribute2 IN VARCHAR2
330 , p_attribute3 IN VARCHAR2
331 , p_attribute4 IN VARCHAR2
332 , p_attribute5 IN VARCHAR2
333 , p_attribute6 IN VARCHAR2
334 , p_attribute7 IN VARCHAR2
335 , p_attribute8 IN VARCHAR2
336 , p_attribute9 IN VARCHAR2
337 , p_context IN VARCHAR2
338 , x_accumulate_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
339 , x_attribute1 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
340 , x_attribute10 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
341 , x_attribute11 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
342 , x_attribute12 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
343 , x_attribute13 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
344 , x_attribute14 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
345 , x_attribute15 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
346 , x_attribute2 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
347 , x_attribute3 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
348 , x_attribute4 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
349 , x_attribute5 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
350 , x_attribute6 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
351 , x_attribute7 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
352 , x_attribute8 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
353 , x_attribute9 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
354 , x_attribute_grouping_no OUT NOCOPY /* file.sql.39 change */ NUMBER
355 , x_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
356 , x_excluder_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
357 , x_list_line_id OUT NOCOPY /* file.sql.39 change */ NUMBER
358 , x_pricing_attribute OUT NOCOPY /* file.sql.39 change */ VARCHAR2
359 , x_pricing_attribute_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
360 , x_pricing_attribute_id OUT NOCOPY /* file.sql.39 change */ NUMBER
361 , x_pricing_attr_value_from OUT NOCOPY /* file.sql.39 change */ VARCHAR2
362 , x_pricing_attr_value_to OUT NOCOPY /* file.sql.39 change */ VARCHAR2
363 , x_product_attribute OUT NOCOPY /* file.sql.39 change */ VARCHAR2
364 , x_product_attribute_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
365 , x_product_attr_value OUT NOCOPY /* file.sql.39 change */ VARCHAR2
366 , x_product_uom_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
367 , x_accumulate OUT NOCOPY /* file.sql.39 change */ VARCHAR2
368 , x_excluder OUT NOCOPY /* file.sql.39 change */ VARCHAR2
369 , x_list_line OUT NOCOPY /* file.sql.39 change */ VARCHAR2
370 , x_product_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
371 , x_from_rltd_modifier_id OUT NOCOPY /* file.sql.39 change */ NUMBER
372 , x_comparison_operator_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
373 , x_pricing_attribute_datatype OUT NOCOPY /* file.sql.39 change */ VARCHAR2
374 , x_product_attribute_datatype OUT NOCOPY /* file.sql.39 change */ VARCHAR2
375 )
376 IS
377 l_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
378 l_old_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
379 l_PRICING_ATTR_val_rec QP_Price_List_PUB.Pricing_Attr_Val_Rec_Type;
380 l_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
381 l_old_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
382 l_control_rec QP_GLOBALS.Control_Rec_Type;
383 l_return_status VARCHAR2(1);
384 l_x_PRICE_LIST_rec QP_Price_List_PUB.Price_List_Rec_Type;
385 l_x_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
386 l_x_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
387 l_x_QUALIFIERS_rec Qp_Qualifier_Rules_Pub.Qualifiers_Rec_Type;
388 l_x_QUALIFIERS_tbl Qp_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
389 l_x_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
390 l_x_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
391 BEGIN
392
393 -- Set control flags.
394
395 l_control_rec.controlled_operation := TRUE;
396 l_control_rec.change_attributes := TRUE;
397
398 l_control_rec.default_attributes := FALSE;
399 l_control_rec.validate_entity := FALSE;
400 l_control_rec.write_to_DB := FALSE;
401 l_control_rec.process := FALSE;
402
403 -- Instruct API to retain its caches
404
405 l_control_rec.clear_api_cache := FALSE;
406 l_control_rec.clear_api_requests := FALSE;
407
408 -- Read PRICING_ATTR from cache
409
410 l_PRICING_ATTR_rec := Get_PRICING_ATTR
411 ( p_db_record => FALSE
412 , p_pricing_attribute_id => p_pricing_attribute_id
413 );
414
415 l_old_PRICING_ATTR_rec := l_PRICING_ATTR_rec;
416
417 IF p_attr_id = Qp_pll_pricing_attr_Util.G_ACCUMULATE THEN
418 l_PRICING_ATTR_rec.accumulate_flag := p_attr_value;
419 ELSIF p_attr_id = Qp_pll_pricing_attr_Util.G_ATTRIBUTE_GROUPING_NO THEN
420 l_PRICING_ATTR_rec.attribute_grouping_no := TO_NUMBER(p_attr_value);
421 ELSIF p_attr_id = Qp_pll_pricing_attr_Util.G_EXCLUDER THEN
422 l_PRICING_ATTR_rec.excluder_flag := p_attr_value;
423 ELSIF p_attr_id = Qp_pll_pricing_attr_Util.G_LIST_LINE THEN
424 l_PRICING_ATTR_rec.list_line_id := TO_NUMBER(p_attr_value);
425 ELSIF p_attr_id = Qp_pll_pricing_attr_Util.G_PRICING_ATTRIBUTE THEN
426 l_PRICING_ATTR_rec.pricing_attribute := p_attr_value;
427 ELSIF p_attr_id = Qp_pll_pricing_attr_Util.G_PRICING_ATTRIBUTE_CONTEXT THEN
428 l_PRICING_ATTR_rec.pricing_attribute_context := p_attr_value;
429 /*
430 ELSIF p_attr_id = Qp_pll_pricing_attr_Util.G_PRICING_ATTRIBUTE THEN
431 l_PRICING_ATTR_rec.pricing_attribute_id := TO_NUMBER(p_attr_value);
432 */
433 ELSIF p_attr_id = Qp_pll_pricing_attr_Util.G_PRICING_ATTR_VALUE_FROM THEN
434 l_PRICING_ATTR_rec.pricing_attr_value_from := p_attr_value;
435 ELSIF p_attr_id = Qp_pll_pricing_attr_Util.G_PRICING_ATTR_VALUE_TO THEN
436 l_PRICING_ATTR_rec.pricing_attr_value_to := p_attr_value;
437 ELSIF p_attr_id = Qp_pll_pricing_attr_Util.G_PRODUCT_ATTRIBUTE THEN
438 l_PRICING_ATTR_rec.product_attribute := p_attr_value;
439 ELSIF p_attr_id = Qp_pll_pricing_attr_Util.G_PRODUCT_ATTRIBUTE_CONTEXT THEN
440 l_PRICING_ATTR_rec.product_attribute_context := p_attr_value;
441 ELSIF p_attr_id = Qp_pll_pricing_attr_Util.G_PRODUCT_ATTR_VALUE THEN
442 l_PRICING_ATTR_rec.product_attr_value := p_attr_value;
443 ELSIF p_attr_id = Qp_pll_pricing_attr_Util.G_PRODUCT_UOM THEN
444 l_PRICING_ATTR_rec.product_uom_code := p_attr_value;
445 ELSIF p_attr_id = Qp_pll_pricing_attr_Util.G_FROM_RLTD_MODIFIER THEN
446 l_PRICING_ATTR_rec.from_rltd_modifier_id := to_number(p_attr_value);
447 ELSIF p_attr_id = Qp_pll_pricing_attr_Util.G_COMPARISON_OPERATOR_CODE THEN
448 l_PRICING_ATTR_rec.comparison_operator_code := p_attr_value;
449 ELSIF p_attr_id = Qp_pll_pricing_attr_Util.G_PRICING_ATTRIBUTE_DATATYPE THEN
450 l_PRICING_ATTR_rec.pricing_attribute_datatype := p_attr_value;
451 ELSIF p_attr_id = Qp_pll_pricing_attr_Util.G_PRODUCT_ATTRIBUTE_DATATYPE THEN
452 l_PRICING_ATTR_rec.product_attribute_datatype := p_attr_value;
453 ELSIF p_attr_id = Qp_pll_pricing_attr_Util.G_ATTRIBUTE1
454 OR p_attr_id = Qp_pll_pricing_attr_Util.G_ATTRIBUTE10
455 OR p_attr_id = Qp_pll_pricing_attr_Util.G_ATTRIBUTE11
456 OR p_attr_id = Qp_pll_pricing_attr_Util.G_ATTRIBUTE12
457 OR p_attr_id = Qp_pll_pricing_attr_Util.G_ATTRIBUTE13
458 OR p_attr_id = Qp_pll_pricing_attr_Util.G_ATTRIBUTE14
459 OR p_attr_id = Qp_pll_pricing_attr_Util.G_ATTRIBUTE15
460 OR p_attr_id = Qp_pll_pricing_attr_Util.G_ATTRIBUTE2
461 OR p_attr_id = Qp_pll_pricing_attr_Util.G_ATTRIBUTE3
462 OR p_attr_id = Qp_pll_pricing_attr_Util.G_ATTRIBUTE4
463 OR p_attr_id = Qp_pll_pricing_attr_Util.G_ATTRIBUTE5
464 OR p_attr_id = Qp_pll_pricing_attr_Util.G_ATTRIBUTE6
465 OR p_attr_id = Qp_pll_pricing_attr_Util.G_ATTRIBUTE7
466 OR p_attr_id = Qp_pll_pricing_attr_Util.G_ATTRIBUTE8
467 OR p_attr_id = Qp_pll_pricing_attr_Util.G_ATTRIBUTE9
468 OR p_attr_id = Qp_pll_pricing_attr_Util.G_CONTEXT
469 THEN
470
471 l_PRICING_ATTR_rec.attribute1 := p_attribute1;
472 l_PRICING_ATTR_rec.attribute10 := p_attribute10;
473 l_PRICING_ATTR_rec.attribute11 := p_attribute11;
474 l_PRICING_ATTR_rec.attribute12 := p_attribute12;
475 l_PRICING_ATTR_rec.attribute14 := p_attribute14;
476 l_PRICING_ATTR_rec.attribute15 := p_attribute15;
477 l_PRICING_ATTR_rec.attribute2 := p_attribute2;
478 l_PRICING_ATTR_rec.attribute3 := p_attribute3;
479 l_PRICING_ATTR_rec.attribute4 := p_attribute4;
480 l_PRICING_ATTR_rec.attribute5 := p_attribute5;
481 l_PRICING_ATTR_rec.attribute6 := p_attribute6;
482 l_PRICING_ATTR_rec.attribute7 := p_attribute7;
483 l_PRICING_ATTR_rec.attribute8 := p_attribute8;
484 l_PRICING_ATTR_rec.attribute9 := p_attribute9;
485 l_PRICING_ATTR_rec.context := p_context;
486
487 ELSE
488
489 -- Unexpected error, unrecognized attribute
490
491 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
492 THEN
493 oe_msg_pub.Add_Exc_Msg
494 ( G_PKG_NAME
495 , 'Change_Attribute'
496 , 'Unrecognized attribute'
497 );
498 END IF;
499
500 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
501
502 END IF;
503
504 -- Set Operation.
505
506 IF FND_API.To_Boolean(l_PRICING_ATTR_rec.db_flag) THEN
507 l_PRICING_ATTR_rec.operation := QP_GLOBALS.G_OPR_UPDATE;
508 ELSE
509 l_PRICING_ATTR_rec.operation := QP_GLOBALS.G_OPR_CREATE;
510 END IF;
511
512 -- Populate PRICING_ATTR table
513
514 l_PRICING_ATTR_tbl(1) := l_PRICING_ATTR_rec;
515 l_old_PRICING_ATTR_tbl(1) := l_old_PRICING_ATTR_rec;
516
517 -- Call QP_LIST_HEADERS_PVT.Process_PRICE_LIST
518
519 QP_LIST_HEADERS_PVT.Process_PRICE_LIST
520 ( p_api_version_number => 1.0
521 , p_init_msg_list => FND_API.G_TRUE
522 , p_validation_level => FND_API.G_VALID_LEVEL_NONE
523 , x_return_status => l_return_status
524 , x_msg_count => x_msg_count
525 , x_msg_data => x_msg_data
526 , p_control_rec => l_control_rec
527 , p_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl
528 , p_old_PRICING_ATTR_tbl => l_old_PRICING_ATTR_tbl
529 , x_PRICE_LIST_rec => l_x_PRICE_LIST_rec
530 , x_PRICE_LIST_LINE_tbl => l_x_PRICE_LIST_LINE_tbl
531 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
532 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
533 );
534
535 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
536 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
537 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
538 RAISE FND_API.G_EXC_ERROR;
539 END IF;
540
541
542 -- Unload out tbl
543
544 l_x_PRICING_ATTR_rec := l_x_PRICING_ATTR_tbl(1);
545
546 -- Init OUT parameters to missing.
547
548 x_accumulate_flag := FND_API.G_MISS_CHAR;
549 x_attribute1 := FND_API.G_MISS_CHAR;
550 x_attribute10 := FND_API.G_MISS_CHAR;
551 x_attribute11 := FND_API.G_MISS_CHAR;
552 x_attribute12 := FND_API.G_MISS_CHAR;
553 x_attribute13 := FND_API.G_MISS_CHAR;
554 x_attribute14 := FND_API.G_MISS_CHAR;
555 x_attribute15 := FND_API.G_MISS_CHAR;
556 x_attribute2 := FND_API.G_MISS_CHAR;
557 x_attribute3 := FND_API.G_MISS_CHAR;
558 x_attribute4 := FND_API.G_MISS_CHAR;
559 x_attribute5 := FND_API.G_MISS_CHAR;
560 x_attribute6 := FND_API.G_MISS_CHAR;
561 x_attribute7 := FND_API.G_MISS_CHAR;
562 x_attribute8 := FND_API.G_MISS_CHAR;
563 x_attribute9 := FND_API.G_MISS_CHAR;
564 x_attribute_grouping_no := FND_API.G_MISS_NUM;
565 x_context := FND_API.G_MISS_CHAR;
566 x_excluder_flag := FND_API.G_MISS_CHAR;
567 x_list_line_id := FND_API.G_MISS_NUM;
568 x_pricing_attribute := FND_API.G_MISS_CHAR;
569 x_pricing_attribute_context := FND_API.G_MISS_CHAR;
570 x_pricing_attribute_id := FND_API.G_MISS_NUM;
571 x_pricing_attr_value_from := FND_API.G_MISS_CHAR;
572 x_pricing_attr_value_to := FND_API.G_MISS_CHAR;
573 x_product_attribute := FND_API.G_MISS_CHAR;
574 x_product_attribute_context := FND_API.G_MISS_CHAR;
575 x_product_attr_value := FND_API.G_MISS_CHAR;
576 x_product_uom_code := FND_API.G_MISS_CHAR;
577 x_accumulate := FND_API.G_MISS_CHAR;
578 x_excluder := FND_API.G_MISS_CHAR;
579 x_list_line := FND_API.G_MISS_CHAR;
580 x_product_uom := FND_API.G_MISS_CHAR;
581 x_from_rltd_modifier_id := FND_API.G_MISS_NUM;
582 x_comparison_operator_code := FND_API.G_MISS_CHAR;
583 x_pricing_attribute_datatype := FND_API.G_MISS_CHAR;
584 x_product_attribute_datatype := FND_API.G_MISS_CHAR;
585
586 -- Load display out parameters if any
587
588 l_PRICING_ATTR_val_rec := Qp_pll_pricing_attr_Util.Get_Values
589 ( p_PRICING_ATTR_rec => l_x_PRICING_ATTR_rec
590 , p_old_PRICING_ATTR_rec => l_PRICING_ATTR_rec
591 );
592
593 -- Return changed attributes.
594
595 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.accumulate_flag,
596 l_PRICING_ATTR_rec.accumulate_flag)
597 THEN
598 x_accumulate_flag := l_x_PRICING_ATTR_rec.accumulate_flag;
599 x_accumulate := l_PRICING_ATTR_val_rec.accumulate;
600 END IF;
601
602 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.from_rltd_modifier_id,
603 l_PRICING_ATTR_rec.from_rltd_modifier_id)
604 THEN
605 x_from_rltd_modifier_id := l_x_PRICING_ATTR_rec.from_rltd_modifier_id;
606 END IF;
607
608 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute1,
609 l_PRICING_ATTR_rec.attribute1)
610 THEN
611 x_attribute1 := l_x_PRICING_ATTR_rec.attribute1;
612 END IF;
613
614 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute10,
615 l_PRICING_ATTR_rec.attribute10)
616 THEN
617 x_attribute10 := l_x_PRICING_ATTR_rec.attribute10;
618 END IF;
619
620 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute11,
621 l_PRICING_ATTR_rec.attribute11)
622 THEN
623 x_attribute11 := l_x_PRICING_ATTR_rec.attribute11;
624 END IF;
625
626 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute12,
627 l_PRICING_ATTR_rec.attribute12)
628 THEN
629 x_attribute12 := l_x_PRICING_ATTR_rec.attribute12;
630 END IF;
631
632 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute13,
633 l_PRICING_ATTR_rec.attribute13)
634 THEN
635 x_attribute13 := l_x_PRICING_ATTR_rec.attribute13;
636 END IF;
637
638 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute14,
639 l_PRICING_ATTR_rec.attribute14)
640 THEN
641 x_attribute14 := l_x_PRICING_ATTR_rec.attribute14;
642 END IF;
643
644 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute15,
645 l_PRICING_ATTR_rec.attribute15)
646 THEN
647 x_attribute15 := l_x_PRICING_ATTR_rec.attribute15;
648 END IF;
649
650 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute2,
651 l_PRICING_ATTR_rec.attribute2)
652 THEN
653 x_attribute2 := l_x_PRICING_ATTR_rec.attribute2;
654 END IF;
655
656 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute3,
657 l_PRICING_ATTR_rec.attribute3)
658 THEN
659 x_attribute3 := l_x_PRICING_ATTR_rec.attribute3;
660 END IF;
661
662 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute4,
663 l_PRICING_ATTR_rec.attribute4)
664 THEN
665 x_attribute4 := l_x_PRICING_ATTR_rec.attribute4;
666 END IF;
667
668 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute5,
669 l_PRICING_ATTR_rec.attribute5)
670 THEN
671 x_attribute5 := l_x_PRICING_ATTR_rec.attribute5;
672 END IF;
673
674 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute6,
675 l_PRICING_ATTR_rec.attribute6)
676 THEN
677 x_attribute6 := l_x_PRICING_ATTR_rec.attribute6;
678 END IF;
679
680 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute7,
681 l_PRICING_ATTR_rec.attribute7)
682 THEN
683 x_attribute7 := l_x_PRICING_ATTR_rec.attribute7;
684 END IF;
685
686 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute8,
687 l_PRICING_ATTR_rec.attribute8)
688 THEN
689 x_attribute8 := l_x_PRICING_ATTR_rec.attribute8;
690 END IF;
691
692 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute9,
693 l_PRICING_ATTR_rec.attribute9)
694 THEN
695 x_attribute9 := l_x_PRICING_ATTR_rec.attribute9;
696 END IF;
697
698 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute_grouping_no,
699 l_PRICING_ATTR_rec.attribute_grouping_no)
700 THEN
701 x_attribute_grouping_no := l_x_PRICING_ATTR_rec.attribute_grouping_no;
702 END IF;
703
704 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.context,
705 l_PRICING_ATTR_rec.context)
706 THEN
707 x_context := l_x_PRICING_ATTR_rec.context;
708 END IF;
709
710 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.excluder_flag,
711 l_PRICING_ATTR_rec.excluder_flag)
712 THEN
713 x_excluder_flag := l_x_PRICING_ATTR_rec.excluder_flag;
714 x_excluder := l_PRICING_ATTR_val_rec.excluder;
715 END IF;
716
717 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.list_line_id,
718 l_PRICING_ATTR_rec.list_line_id)
719 THEN
720 x_list_line_id := l_x_PRICING_ATTR_rec.list_line_id;
721 x_list_line := l_PRICING_ATTR_val_rec.list_line;
722 END IF;
723
724 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.pricing_attribute,
725 l_PRICING_ATTR_rec.pricing_attribute)
726 THEN
727 x_pricing_attribute := l_x_PRICING_ATTR_rec.pricing_attribute;
728 END IF;
729
730 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.pricing_attribute_context,
731 l_PRICING_ATTR_rec.pricing_attribute_context)
732 THEN
733 x_pricing_attribute_context := l_x_PRICING_ATTR_rec.pricing_attribute_context;
734 END IF;
735
736 /* IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.pricing_attribute_id,
737 l_PRICING_ATTR_rec.pricing_attribute_id)
738 THEN
739 x_pricing_attribute_id := l_x_PRICING_ATTR_rec.pricing_attribute_id;
740 x_pricing_attribute := l_PRICING_ATTR_val_rec.pricing_attribute;
741 END IF;
742 */
743 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.pricing_attr_value_from,
744 l_PRICING_ATTR_rec.pricing_attr_value_from)
745 THEN
746 x_pricing_attr_value_from := l_x_PRICING_ATTR_rec.pricing_attr_value_from;
747 END IF;
748
749 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.pricing_attr_value_to,
750 l_PRICING_ATTR_rec.pricing_attr_value_to)
751 THEN
752 x_pricing_attr_value_to := l_x_PRICING_ATTR_rec.pricing_attr_value_to;
753 END IF;
754
755 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.product_attribute,
756 l_PRICING_ATTR_rec.product_attribute)
757 THEN
758 x_product_attribute := l_x_PRICING_ATTR_rec.product_attribute;
759 END IF;
760
761 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.product_attribute_context,
762 l_PRICING_ATTR_rec.product_attribute_context)
763 THEN
764 x_product_attribute_context := l_x_PRICING_ATTR_rec.product_attribute_context;
765 END IF;
766
767 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.product_attr_value,
768 l_PRICING_ATTR_rec.product_attr_value)
769 THEN
770 x_product_attr_value := l_x_PRICING_ATTR_rec.product_attr_value;
771 END IF;
772
773 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.product_uom_code,
774 l_PRICING_ATTR_rec.product_uom_code)
775 THEN
776 x_product_uom_code := l_x_PRICING_ATTR_rec.product_uom_code;
777 x_product_uom := l_PRICING_ATTR_val_rec.product_uom;
778 END IF;
779
780 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.comparison_operator_code,
781 l_PRICING_ATTR_rec.comparison_operator_code)
782 THEN
783 x_comparison_operator_code := l_PRICING_ATTR_rec.comparison_operator_code;
784 END IF;
785
786 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.pricing_attribute_datatype,
787 l_PRICING_ATTR_rec.pricing_attribute_datatype)
788 THEN
789 x_pricing_attribute_datatype := l_PRICING_ATTR_rec.pricing_attribute_datatype;
790 END IF;
791
792 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.product_attribute_datatype,
793 l_PRICING_ATTR_rec.product_attribute_datatype)
794 THEN
795 x_product_attribute_datatype := l_PRICING_ATTR_rec.product_attribute_datatype;
796 END IF;
797
798
799
800 -- Write to cache.
801
802 Write_PRICING_ATTR
803 ( p_PRICING_ATTR_rec => l_x_PRICING_ATTR_rec
804 );
805
806 -- Set return status.
807
808 x_return_status := FND_API.G_RET_STS_SUCCESS;
809
810 -- Get message count and data
811
812 oe_msg_pub.Count_And_Get
813 ( p_count => x_msg_count
814 , p_data => x_msg_data
815 );
816
817
818 EXCEPTION
819
820 WHEN FND_API.G_EXC_ERROR THEN
821
822 x_return_status := FND_API.G_RET_STS_ERROR;
823
824 -- Get message count and data
825
826 oe_msg_pub.Count_And_Get
827 ( p_count => x_msg_count
828 , p_data => x_msg_data
829 );
830
831 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
832
833 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
834
835 -- Get message count and data
836
837 oe_msg_pub.Count_And_Get
838 ( p_count => x_msg_count
839 , p_data => x_msg_data
840 );
841
842 WHEN OTHERS THEN
843
844 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
845
846 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
847 THEN
848 oe_msg_pub.Add_Exc_Msg
849 ( G_PKG_NAME
850 , 'Change_Attribute'
851 );
852 END IF;
853
854 -- Get message count and data
855
856 oe_msg_pub.Count_And_Get
857 ( p_count => x_msg_count
858 , p_data => x_msg_data
859 );
860
861 END Change_Attribute;
862
863 -- Procedure Validate_And_Write
864 --
865
866 PROCEDURE Validate_And_Write
867 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
868 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
869 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
870 , p_pricing_attribute_id IN NUMBER
871 , x_creation_date OUT NOCOPY /* file.sql.39 change */ DATE
872 , x_created_by OUT NOCOPY /* file.sql.39 change */ NUMBER
873 , x_last_update_date OUT NOCOPY /* file.sql.39 change */ DATE
874 , x_last_updated_by OUT NOCOPY /* file.sql.39 change */ NUMBER
875 , x_last_update_login OUT NOCOPY /* file.sql.39 change */ NUMBER
876 , x_program_application_id OUT NOCOPY /* file.sql.39 change */ NUMBER
877 , x_program_id OUT NOCOPY /* file.sql.39 change */ NUMBER
878 , x_program_update_date OUT NOCOPY /* file.sql.39 change */ DATE
879 , x_request_id OUT NOCOPY /* file.sql.39 change */ NUMBER
880 )
881 IS
882 l_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
883 l_old_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
884 l_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
885 l_old_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
886 l_control_rec QP_GLOBALS.Control_Rec_Type;
887 l_return_status VARCHAR2(1);
888 l_x_PRICE_LIST_rec QP_Price_List_PUB.Price_List_Rec_Type;
889 l_x_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
890 l_x_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
891 l_x_QUALIFIERS_rec Qp_Qualifier_Rules_Pub.Qualifiers_Rec_Type;
892 l_x_QUALIFIERS_tbl Qp_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
893 l_x_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
894 l_x_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
895 BEGIN
896
897 oe_debug_pub.add('entering validate_and_write');
898 -- Set control flags.
899
900 l_control_rec.controlled_operation := TRUE;
901 l_control_rec.validate_entity := TRUE;
902 l_control_rec.write_to_DB := TRUE;
903
904 l_control_rec.default_attributes := FALSE;
905 l_control_rec.change_attributes := FALSE;
906 l_control_rec.process := FALSE;
907
908 -- Instruct API to retain its caches
909
910 l_control_rec.clear_api_cache := FALSE;
911 l_control_rec.clear_api_requests := FALSE;
912
913 -- Read PRICING_ATTR from cache
914
915 l_old_PRICING_ATTR_rec := Get_PRICING_ATTR
916 ( p_db_record => TRUE
917 , p_pricing_attribute_id => p_pricing_attribute_id
918 );
919
920 l_PRICING_ATTR_rec := Get_PRICING_ATTR
921 ( p_db_record => FALSE
922 , p_pricing_attribute_id => p_pricing_attribute_id
923 );
924
925 -- Set Operation.
926
927 IF FND_API.To_Boolean(l_PRICING_ATTR_rec.db_flag) THEN
928 l_PRICING_ATTR_rec.operation := QP_GLOBALS.G_OPR_UPDATE;
929 ELSE
930 l_PRICING_ATTR_rec.operation := QP_GLOBALS.G_OPR_CREATE;
931 END IF;
932
933 -- Populate PRICING_ATTR table
934
935 l_PRICING_ATTR_tbl(1) := l_PRICING_ATTR_rec;
936 l_old_PRICING_ATTR_tbl(1) := l_old_PRICING_ATTR_rec;
937
938 -- Call QP_LIST_HEADERS_PVT.Process_PRICE_LIST
939
940 QP_LIST_HEADERS_PVT.Process_PRICE_LIST
941 ( p_api_version_number => 1.0
942 , p_init_msg_list => FND_API.G_TRUE
943 , x_return_status => l_return_status
944 , x_msg_count => x_msg_count
945 , x_msg_data => x_msg_data
946 , p_control_rec => l_control_rec
947 , p_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl
948 , p_old_PRICING_ATTR_tbl => l_old_PRICING_ATTR_tbl
949 , x_PRICE_LIST_rec => l_x_PRICE_LIST_rec
950 , x_PRICE_LIST_LINE_tbl => l_x_PRICE_LIST_LINE_tbl
951 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
952 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
953 );
954
955 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
956 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
957 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
958 RAISE FND_API.G_EXC_ERROR;
959 END IF;
960
961
962 -- Load OUT parameters.
963
964 l_x_PRICING_ATTR_rec := l_x_PRICING_ATTR_tbl(1);
965
966 x_creation_date := l_x_PRICING_ATTR_rec.creation_date;
967 x_created_by := l_x_PRICING_ATTR_rec.created_by;
968 x_last_update_date := l_x_PRICING_ATTR_rec.last_update_date;
969 x_last_updated_by := l_x_PRICING_ATTR_rec.last_updated_by;
970 x_last_update_login := l_x_PRICING_ATTR_rec.last_update_login;
971 x_program_application_id := l_x_PRICING_ATTR_rec.program_application_id;
972 x_program_id := l_x_PRICING_ATTR_rec.program_id;
973 x_program_update_date := l_x_PRICING_ATTR_rec.program_update_date;
974 x_request_id := l_x_PRICING_ATTR_rec.request_id;
975
976 -- Clear PRICING_ATTR record cache
977
978 Clear_PRICING_ATTR;
979
980 -- Keep track of performed operations.
981
982 l_old_PRICING_ATTR_rec.operation := l_PRICING_ATTR_rec.operation;
983
984
985 -- Set return status.
986
987 x_return_status := FND_API.G_RET_STS_SUCCESS;
988
989 -- Get message count and data
990
991 oe_debug_pub.add('Ren: msg data in val_and_write of attr 1 is :' || x_msg_data);
992
993 oe_msg_pub.Count_And_Get
994 ( p_count => x_msg_count
995 , p_data => x_msg_data
996 );
997 oe_debug_pub.add('Ren: msg data in val_and_write of attr 2 is :' || x_msg_data);
998
999 oe_debug_pub.add('exiting validate_and_write');
1000
1001 EXCEPTION
1002
1003 WHEN FND_API.G_EXC_ERROR THEN
1004
1005 x_return_status := FND_API.G_RET_STS_ERROR;
1006
1007 -- Get message count and data
1008
1009 oe_msg_pub.Count_And_Get
1010 ( p_count => x_msg_count
1011 , p_data => x_msg_data
1012 );
1013 oe_debug_pub.add('Ren: msg data in val_and_write of attr 10 is :' || x_msg_data);
1014
1015 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1016
1017 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1018
1019 -- Get message count and data
1020
1021 oe_msg_pub.Count_And_Get
1022 ( p_count => x_msg_count
1023 , p_data => x_msg_data
1024 );
1025 oe_debug_pub.add('Ren: msg data in val_and_write of attr 11 is :' || x_msg_data);
1026
1027 WHEN OTHERS THEN
1028
1029 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1030
1031 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1032 THEN
1033 oe_msg_pub.Add_Exc_Msg
1034 ( G_PKG_NAME
1035 , 'Validate_And_Write'
1036 );
1037 END IF;
1038
1039 -- Get message count and data
1040
1041 oe_msg_pub.Count_And_Get
1042 ( p_count => x_msg_count
1043 , p_data => x_msg_data
1044 );
1045 oe_debug_pub.add('Ren: msg data in val_and_write of attr 12 is :' || x_msg_data);
1046
1047 END Validate_And_Write;
1048
1049 -- Procedure Delete_Row
1050 --
1051
1052 PROCEDURE Delete_Row
1053 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1054 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1055 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1056 , p_pricing_attribute_id IN NUMBER
1057 )
1058 IS
1059 l_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
1060 l_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
1061 l_control_rec QP_GLOBALS.Control_Rec_Type;
1062 l_return_status VARCHAR2(1);
1063 l_x_PRICE_LIST_rec QP_Price_List_PUB.Price_List_Rec_Type;
1064 l_x_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
1065 l_x_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
1066 l_x_QUALIFIERS_rec Qp_Qualifier_Rules_Pub.Qualifiers_Rec_Type;
1067 l_x_QUALIFIERS_tbl Qp_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
1068 l_x_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
1069 l_x_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
1070 -- start bug2301959
1071 l_revision VARCHAR2(30);
1072 l_start_date_active DATE;
1073 l_end_date_active DATE;
1074 l_list_header_id NUMBER;
1075 -- end bug2301959
1076 BEGIN
1077
1078 -- Set control flags.
1079
1080 l_control_rec.controlled_operation := TRUE;
1081 l_control_rec.validate_entity := TRUE;
1082 l_control_rec.write_to_DB := TRUE;
1083
1084 l_control_rec.default_attributes := FALSE;
1085 l_control_rec.change_attributes := FALSE;
1086 l_control_rec.process := FALSE; -- Changed back to false. bug 7165334
1087
1088 -- Instruct API to retain its caches
1089
1090 l_control_rec.clear_api_cache := FALSE;
1091 l_control_rec.clear_api_requests := FALSE;
1092
1093 -- Read DB record from cache
1094
1095 l_PRICING_ATTR_rec := Get_PRICING_ATTR
1096 ( p_db_record => TRUE
1097 , p_pricing_attribute_id => p_pricing_attribute_id
1098 );
1099
1100 -- Set Operation.
1101
1102 l_PRICING_ATTR_rec.operation := QP_GLOBALS.G_OPR_DELETE;
1103
1104 -- Populate PRICING_ATTR table
1105
1106 l_PRICING_ATTR_tbl(1) := l_PRICING_ATTR_rec;
1107
1108 -- Call QP_LIST_HEADERS_PVT.Process_PRICE_LIST
1109
1110 --start bug 2301959
1111
1112 select start_date_active, end_date_active , revision, list_header_id
1113 into l_start_date_active, l_end_date_active, l_revision, l_list_header_id
1114 from qp_list_lines
1115 where list_line_id = l_pricing_attr_rec.list_line_id;
1116
1117 IF (QP_GLOBALS.G_CHECK_DUP_PRICELIST_LINES <> 'N' or QP_GLOBALS.G_CHECK_DUP_PRICELIST_LINES IS NULL)
1118 THEN -- 5018856, 5024919 do not log request if N
1119
1120 oe_debug_pub.add('about to log a request to check duplicate list lines ');
1121
1122 QP_DELAYED_REQUESTS_PVT.Log_Request
1123 ( p_entity_code => QP_GLOBALS.G_ENTITY_ALL
1124 , p_entity_id => l_pricing_attr_rec.list_line_id
1125 , p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL
1126 , p_requesting_entity_id => l_pricing_attr_rec.list_line_id
1127 , p_request_type => QP_GLOBALS.G_DUPLICATE_LIST_LINES
1128 , p_param1 => l_list_header_id
1129 , p_param2 => fnd_date.date_to_canonical(l_start_date_active) --2739511
1130 , p_param3 => fnd_date.date_to_canonical(l_end_date_active) --2739511
1131 , p_param4 => l_revision
1132 , x_return_status => l_return_status
1133 );
1134
1135 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1136
1137 oe_debug_pub.add('failed in logging a delayed request in delete_row ');
1138
1139 RAISE FND_API.G_EXC_ERROR;
1140
1141 END IF;
1142
1143 oe_debug_pub.add('after logging delayed request ');
1144
1145 -- end bug2301959
1146 END IF; -- END IF QP_GLOBALS.G_CHECK_DUP_PRICELIST_LINES <> 'N' -- 5018856,, 5024919
1147
1148 oe_debug_pub.add('Logging a request to update qualification_ind ', 1);
1149 qp_delayed_requests_PVT.log_request(
1150 p_entity_code => QP_GLOBALS.G_ENTITY_Price_List_Line,
1151 p_entity_id => l_PRICING_ATTR_rec.list_line_id,
1152 p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_Price_List_Line,
1153 p_requesting_entity_id => l_PRICING_ATTR_rec.list_line_id,
1154 p_request_type =>QP_GLOBALS.G_UPDATE_LINE_QUAL_IND,
1155 x_return_status => l_return_status);
1156
1157 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1158
1159 oe_debug_pub.add('failed in logging a delayed request in delete_row ');
1160
1161 RAISE FND_API.G_EXC_ERROR;
1162
1163 END IF;
1164
1165 QP_LIST_HEADERS_PVT.Process_PRICE_LIST
1166 ( p_api_version_number => 1.0
1167 , p_init_msg_list => FND_API.G_TRUE
1168 , x_return_status => l_return_status
1169 , x_msg_count => x_msg_count
1170 , x_msg_data => x_msg_data
1171 , p_control_rec => l_control_rec
1172 , p_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl
1173 , x_PRICE_LIST_rec => l_x_PRICE_LIST_rec
1174 , x_PRICE_LIST_LINE_tbl => l_x_PRICE_LIST_LINE_tbl
1175 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
1176 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
1177 );
1178
1179 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1180 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1181 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1182 RAISE FND_API.G_EXC_ERROR;
1183 END IF;
1184
1185
1186 -- Clear PRICING_ATTR record cache
1187
1188 Clear_PRICING_ATTR;
1189
1190 -- Set return status.
1191
1192 x_return_status := FND_API.G_RET_STS_SUCCESS;
1193
1194 -- Get message count and data
1195
1196 oe_msg_pub.Count_And_Get
1197 ( p_count => x_msg_count
1198 , p_data => x_msg_data
1199 );
1200
1201
1202 EXCEPTION
1203
1204 WHEN FND_API.G_EXC_ERROR THEN
1205
1206 x_return_status := FND_API.G_RET_STS_ERROR;
1207
1208 -- Get message count and data
1209
1210 oe_msg_pub.Count_And_Get
1211 ( p_count => x_msg_count
1212 , p_data => x_msg_data
1213 );
1214
1215 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1216
1217 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1218
1219 -- Get message count and data
1220
1221 oe_msg_pub.Count_And_Get
1222 ( p_count => x_msg_count
1223 , p_data => x_msg_data
1224 );
1225
1226 WHEN OTHERS THEN
1227
1228 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1229
1230 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1231 THEN
1232 oe_msg_pub.Add_Exc_Msg
1233 ( G_PKG_NAME
1234 , 'Delete_Row'
1235 );
1236 END IF;
1237
1238 -- Get message count and data
1239
1240 oe_msg_pub.Count_And_Get
1241 ( p_count => x_msg_count
1242 , p_data => x_msg_data
1243 );
1244
1245 END Delete_Row;
1246
1247 -- Procedure Process_Entity
1248 --
1249
1250 PROCEDURE Process_Entity
1251 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1252 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1253 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1254 )
1255 IS
1256 l_control_rec QP_GLOBALS.Control_Rec_Type;
1257 l_return_status VARCHAR2(1);
1258 l_x_PRICE_LIST_rec QP_Price_List_PUB.Price_List_Rec_Type;
1259 l_x_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
1260 l_x_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
1261 l_x_QUALIFIERS_rec Qp_Qualifier_Rules_Pub.Qualifiers_Rec_Type;
1262 l_x_QUALIFIERS_tbl Qp_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
1263 l_x_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
1264 l_x_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
1265 BEGIN
1266
1267 -- Set control flags.
1268
1269 l_control_rec.controlled_operation := TRUE;
1270 l_control_rec.process := TRUE;
1271 l_control_rec.process_entity := QP_GLOBALS.G_ENTITY_PRICING_ATTR;
1272
1273 l_control_rec.default_attributes := FALSE;
1274 l_control_rec.change_attributes := FALSE;
1275 l_control_rec.validate_entity := FALSE;
1276 l_control_rec.write_to_DB := FALSE;
1277
1278 -- Instruct API to clear its request table
1279
1280 l_control_rec.clear_api_cache := FALSE;
1281 l_control_rec.clear_api_requests := FALSE;
1282
1283 -- Call QP_LIST_HEADERS_PVT.Process_PRICE_LIST
1284
1285 QP_LIST_HEADERS_PVT.Process_PRICE_LIST
1286 ( p_api_version_number => 1.0
1287 , p_init_msg_list => FND_API.G_TRUE
1288 , x_return_status => l_return_status
1289 , x_msg_count => x_msg_count
1290 , x_msg_data => x_msg_data
1291 , p_control_rec => l_control_rec
1292 , x_PRICE_LIST_rec => l_x_PRICE_LIST_rec
1293 , x_PRICE_LIST_LINE_tbl => l_x_PRICE_LIST_LINE_tbl
1294 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
1295 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
1296 );
1297
1298 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1299 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1300 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1301 RAISE FND_API.G_EXC_ERROR;
1302 END IF;
1303
1304
1305 -- Set return status.
1306
1307 x_return_status := FND_API.G_RET_STS_SUCCESS;
1308
1309 -- Get message count and data
1310
1311 oe_msg_pub.Count_And_Get
1312 ( p_count => x_msg_count
1313 , p_data => x_msg_data
1314 );
1315
1316
1317 EXCEPTION
1318
1319 WHEN FND_API.G_EXC_ERROR THEN
1320
1321 x_return_status := FND_API.G_RET_STS_ERROR;
1322
1323 -- Get message count and data
1324
1325 oe_msg_pub.Count_And_Get
1326 ( p_count => x_msg_count
1327 , p_data => x_msg_data
1328 );
1329
1330 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1331
1332 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1333
1334 -- Get message count and data
1335
1336 oe_msg_pub.Count_And_Get
1337 ( p_count => x_msg_count
1338 , p_data => x_msg_data
1339 );
1340
1341 WHEN OTHERS THEN
1342
1343 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1344
1345 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1346 THEN
1347 oe_msg_pub.Add_Exc_Msg
1348 ( G_PKG_NAME
1349 , 'Process_Entity'
1350 );
1351 END IF;
1352
1353 -- Get message count and data
1354
1355 oe_msg_pub.Count_And_Get
1356 ( p_count => x_msg_count
1357 , p_data => x_msg_data
1358 );
1359
1360 END Process_Entity;
1361
1362 -- Procedure lock_Row
1363 --
1364
1365 PROCEDURE Lock_Row
1366 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1367 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1368 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1369 , p_accumulate_flag IN VARCHAR2
1370 , p_attribute1 IN VARCHAR2
1371 , p_attribute10 IN VARCHAR2
1372 , p_attribute11 IN VARCHAR2
1373 , p_attribute12 IN VARCHAR2
1374 , p_attribute13 IN VARCHAR2
1375 , p_attribute14 IN VARCHAR2
1376 , p_attribute15 IN VARCHAR2
1377 , p_attribute2 IN VARCHAR2
1378 , p_attribute3 IN VARCHAR2
1379 , p_attribute4 IN VARCHAR2
1380 , p_attribute5 IN VARCHAR2
1381 , p_attribute6 IN VARCHAR2
1382 , p_attribute7 IN VARCHAR2
1383 , p_attribute8 IN VARCHAR2
1384 , p_attribute9 IN VARCHAR2
1385 , p_attribute_grouping_no IN NUMBER
1386 , p_context IN VARCHAR2
1387 , p_created_by IN NUMBER
1388 , p_creation_date IN DATE
1389 , p_excluder_flag IN VARCHAR2
1390 , p_last_updated_by IN NUMBER
1391 , p_last_update_date IN DATE
1392 , p_last_update_login IN NUMBER
1393 , p_list_line_id IN NUMBER
1394 , p_pricing_attribute IN VARCHAR2
1395 , p_pricing_attribute_context IN VARCHAR2
1396 , p_pricing_attribute_id IN NUMBER
1397 , p_pricing_attr_value_from IN VARCHAR2
1398 , p_pricing_attr_value_to IN VARCHAR2
1399 , p_product_attribute IN VARCHAR2
1400 , p_product_attribute_context IN VARCHAR2
1401 , p_product_attr_value IN VARCHAR2
1402 , p_product_uom_code IN VARCHAR2
1403 , p_program_application_id IN NUMBER
1404 , p_program_id IN NUMBER
1405 , p_program_update_date IN DATE
1406 , p_request_id IN NUMBER
1407 , p_comparison_operator_code IN VARCHAR2
1408 , p_pricing_attribute_datatype IN VARCHAR2
1409 , p_product_attribute_datatype IN VARCHAR2
1410 )
1411 IS
1412 l_return_status VARCHAR2(1);
1413 l_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
1414 l_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
1415 l_x_PRICE_LIST_rec QP_Price_List_PUB.Price_List_Rec_Type;
1416 l_x_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
1417 l_x_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
1418 l_x_QUALIFIERS_rec Qp_Qualifier_Rules_Pub.Qualifiers_Rec_Type;
1419 l_x_QUALIFIERS_tbl Qp_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
1420 l_x_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
1421 l_x_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
1422 BEGIN
1423
1424 -- Load PRICING_ATTR record
1425
1426 l_PRICING_ATTR_rec.accumulate_flag := p_accumulate_flag;
1427 l_PRICING_ATTR_rec.attribute1 := p_attribute1;
1428 l_PRICING_ATTR_rec.attribute10 := p_attribute10;
1429 l_PRICING_ATTR_rec.attribute11 := p_attribute11;
1430 l_PRICING_ATTR_rec.attribute12 := p_attribute12;
1431 l_PRICING_ATTR_rec.attribute13 := p_attribute13;
1432 l_PRICING_ATTR_rec.attribute14 := p_attribute14;
1433 l_PRICING_ATTR_rec.attribute15 := p_attribute15;
1434 l_PRICING_ATTR_rec.attribute2 := p_attribute2;
1435 l_PRICING_ATTR_rec.attribute3 := p_attribute3;
1436 l_PRICING_ATTR_rec.attribute4 := p_attribute4;
1437 l_PRICING_ATTR_rec.attribute5 := p_attribute5;
1438 l_PRICING_ATTR_rec.attribute6 := p_attribute6;
1439 l_PRICING_ATTR_rec.attribute7 := p_attribute7;
1440 l_PRICING_ATTR_rec.attribute8 := p_attribute8;
1441 l_PRICING_ATTR_rec.attribute9 := p_attribute9;
1442 l_PRICING_ATTR_rec.attribute_grouping_no := p_attribute_grouping_no;
1443 l_PRICING_ATTR_rec.context := p_context;
1444 l_PRICING_ATTR_rec.created_by := p_created_by;
1445 l_PRICING_ATTR_rec.creation_date := p_creation_date;
1446 l_PRICING_ATTR_rec.excluder_flag := p_excluder_flag;
1447 l_PRICING_ATTR_rec.last_updated_by := p_last_updated_by;
1448 l_PRICING_ATTR_rec.last_update_date := p_last_update_date;
1449 l_PRICING_ATTR_rec.last_update_login := p_last_update_login;
1450 l_PRICING_ATTR_rec.list_line_id := p_list_line_id;
1451 l_PRICING_ATTR_rec.pricing_attribute := p_pricing_attribute;
1452 l_PRICING_ATTR_rec.pricing_attribute_context := p_pricing_attribute_context;
1453 l_PRICING_ATTR_rec.pricing_attribute_id := p_pricing_attribute_id;
1454 l_PRICING_ATTR_rec.pricing_attr_value_from := p_pricing_attr_value_from;
1455 l_PRICING_ATTR_rec.pricing_attr_value_to := p_pricing_attr_value_to;
1456 l_PRICING_ATTR_rec.product_attribute := p_product_attribute;
1457 l_PRICING_ATTR_rec.product_attribute_context := p_product_attribute_context;
1458 l_PRICING_ATTR_rec.product_attr_value := p_product_attr_value;
1459 l_PRICING_ATTR_rec.product_uom_code := p_product_uom_code;
1460 l_PRICING_ATTR_rec.program_application_id := p_program_application_id;
1461 l_PRICING_ATTR_rec.program_id := p_program_id;
1462 l_PRICING_ATTR_rec.program_update_date := p_program_update_date;
1463 l_PRICING_ATTR_rec.request_id := p_request_id;
1464 l_PRICING_ATTR_rec.operation := QP_GLOBALS.G_OPR_LOCK;
1465 l_PRICING_ATTR_rec.comparison_operator_code := p_comparison_operator_code;
1466 l_PRICING_ATTR_rec.pricing_attribute_datatype := p_pricing_attribute_datatype;
1467 l_PRICING_ATTR_rec.product_attribute_datatype := p_product_attribute_datatype;
1468
1469 -- Populate PRICING_ATTR table
1470
1471 l_PRICING_ATTR_tbl(1) := l_PRICING_ATTR_rec;
1472
1473 -- Call QP_LIST_HEADERS_PVT.Lock_PRICE_LIST
1474
1475 QP_LIST_HEADERS_PVT.Lock_PRICE_LIST
1476 ( p_api_version_number => 1.0
1477 , p_init_msg_list => FND_API.G_TRUE
1478 , x_return_status => l_return_status
1479 , x_msg_count => x_msg_count
1480 , x_msg_data => x_msg_data
1481 , p_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl
1482 , x_PRICE_LIST_rec => l_x_PRICE_LIST_rec
1483 , x_PRICE_LIST_LINE_tbl => l_x_PRICE_LIST_LINE_tbl
1484 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
1485 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
1486 );
1487
1488 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
1489
1490 -- Set DB flag and write record to cache.
1491
1492 l_x_PRICING_ATTR_rec.db_flag := FND_API.G_TRUE;
1493
1494 Write_PRICING_ATTR
1495 ( p_PRICING_ATTR_rec => l_x_PRICING_ATTR_rec
1496 , p_db_record => TRUE
1497 );
1498
1499 END IF;
1500
1501 -- Set return status.
1502
1503 x_return_status := l_return_status;
1504
1505 -- Get message count and data
1506
1507 oe_msg_pub.Count_And_Get
1508 ( p_count => x_msg_count
1509 , p_data => x_msg_data
1510 );
1511
1512
1513 EXCEPTION
1514
1515 WHEN OTHERS THEN
1516
1517 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1518 THEN
1519 oe_msg_pub.Add_Exc_Msg
1520 ( G_PKG_NAME
1521 , 'Lock_Row'
1522 );
1523 END IF;
1524
1525 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1526
1527 -- Get message count and data
1528
1529 oe_msg_pub.Count_And_Get
1530 ( p_count => x_msg_count
1531 , p_data => x_msg_data
1532 );
1533
1534
1535
1536 END Lock_Row;
1537
1538 -- Procedures maintaining PRICING_ATTR record cache.
1539
1540 PROCEDURE Write_PRICING_ATTR
1541 ( p_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
1542 , p_db_record IN BOOLEAN := FALSE
1543 )
1544 IS
1545 BEGIN
1546
1547 g_PRICING_ATTR_rec := p_PRICING_ATTR_rec;
1548
1549 IF p_db_record THEN
1550
1551 g_db_PRICING_ATTR_rec := p_PRICING_ATTR_rec;
1552
1553 END IF;
1554
1555 END Write_Pricing_Attr;
1556
1557 FUNCTION Get_PRICING_ATTR
1558 ( p_db_record IN BOOLEAN := FALSE
1559 , p_pricing_attribute_id IN NUMBER
1560 )
1561 RETURN QP_Price_List_PUB.Pricing_Attr_Rec_Type
1562 IS
1563 BEGIN
1564
1565 IF p_pricing_attribute_id <> g_PRICING_ATTR_rec.pricing_attribute_id
1566 THEN
1567
1568 -- Query row from DB
1569
1570 g_PRICING_ATTR_rec := Qp_pll_pricing_attr_Util.Query_Row
1571 ( p_pricing_attribute_id => p_pricing_attribute_id
1572 );
1573
1574 g_PRICING_ATTR_rec.db_flag := FND_API.G_TRUE;
1575
1576 -- Load DB record
1577
1578 g_db_PRICING_ATTR_rec := g_PRICING_ATTR_rec;
1579
1580 END IF;
1581
1582 IF p_db_record THEN
1583
1584 RETURN g_db_PRICING_ATTR_rec;
1585
1586 ELSE
1587
1588 RETURN g_PRICING_ATTR_rec;
1589
1590 END IF;
1591
1592 END Get_Pricing_Attr;
1593
1594 PROCEDURE Clear_Pricing_Attr
1595 IS
1596 BEGIN
1597
1598 g_PRICING_ATTR_rec := QP_Price_List_PUB.G_MISS_PRICING_ATTR_REC;
1599 g_db_PRICING_ATTR_rec := QP_Price_List_PUB.G_MISS_PRICING_ATTR_REC;
1600
1601 END Clear_Pricing_Attr;
1602
1603 -- This procedure will be called from the client when the user
1604 -- clears a record
1605
1606 Procedure Clear_Record
1607 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1608 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1609 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1610 , p_pricing_attribute_id IN NUMBER
1611 )
1612 IS
1613 l_return_status Varchar2(30);
1614 BEGIN
1615 OE_MSG_PUB.initialize;
1616 x_return_status := FND_API.G_RET_STS_SUCCESS;
1617 QP_DELAYED_REQUESTS_PVT.Delete_Reqs_for_Deleted_Entity(
1618 p_entity_code => QP_GLOBALS.G_ENTITY_PRICING_ATTR
1619 ,p_entity_id => p_pricing_attribute_id
1620 ,x_return_status => l_return_status);
1621
1622 OE_MSG_PUB.Count_And_Get
1623 ( p_count => x_msg_count
1624 , p_data => x_msg_data
1625 );
1626
1627 -- Clear the controller cache
1628 Clear_Pricing_Attr;
1629
1630 EXCEPTION
1631 WHEN OTHERS THEN
1632 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1633 THEN
1634 OE_MSG_PUB.Add_Exc_Msg
1635 ( G_PKG_NAME
1636 , 'Clear_Record'
1637 );
1638 END IF;
1639 -- Get message count and data
1640 OE_MSG_PUB.Count_And_Get
1641 ( p_count => x_msg_count
1642 , p_data => x_msg_data
1643 );
1644 x_return_status := FND_API.G_RET_STS_ERROR;
1645
1646 END Clear_Record;
1647
1648
1649 -- This procedure will be called from the client when the user
1650 -- clears a block or Form
1651 Procedure Delete_All_Requests
1652 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1653 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1654 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1655 )
1656 IS
1657 l_return_status Varchar2(30);
1658 BEGIN
1659 OE_MSG_PUB.initialize;
1660 x_return_status := FND_API.G_RET_STS_SUCCESS;
1661 QP_DELAYED_REQUESTS_PVT.Clear_Request(
1662 x_return_status => l_return_status);
1663
1664 EXCEPTION
1665 WHEN OTHERS THEN
1666 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1667 THEN
1668 OE_MSG_PUB.Add_Exc_Msg
1669 ( G_PKG_NAME
1670 , 'Delete_All_Requests'
1671 );
1672 END IF;
1673 -- Get message count and data
1674 OE_MSG_PUB.Count_And_Get
1675 ( p_count => x_msg_count
1676 , p_data => x_msg_data
1677 );
1678 x_return_status := FND_API.G_RET_STS_ERROR;
1679
1680 END Delete_All_Requests;
1681
1682 Procedure Dup_record
1683 ( p_x_old_list_line_id IN NUMBER,
1684 p_x_new_list_line_id IN NUMBER,
1685 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1686 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1687 )
1688 IS
1689 l_new_pricing_attribute_id Number;
1690 --added for related lines duplication
1691 l_new_list_line_id Number;
1692 l_list_line_type_code Varchar2(30);
1693 l_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
1694 l_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
1695 --added for related lines duplication
1696 l_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
1697 l_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
1698 l_x_PRICE_LIST_rec QP_Price_List_PUB.Price_List_Rec_Type;
1699 l_x_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
1700 l_x_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
1701 l_x_QUALIFIERS_rec Qp_Qualifier_Rules_Pub.Qualifiers_Rec_Type;
1702 l_x_QUALIFIERS_tbl Qp_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
1703 l_x_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
1704 l_x_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
1705 l_control_rec QP_GLOBALS.Control_Rec_Type;
1706 l_return_status varchar2(1);
1707 l_continuous_price_break_flag varchar2(1);
1708
1709
1710 --added for related lines duplication
1711
1712 CURSOR l_LIST_LINE_csr(p_list_line_id Number) IS
1713 SELECT
1714 L.ACCRUAL_QTY
1715 ,L.ACCRUAL_UOM_CODE
1716 ,L.ARITHMETIC_OPERATOR
1717 ,L.ATTRIBUTE1
1718 ,L.ATTRIBUTE10
1719 ,L.ATTRIBUTE11
1720 ,L.ATTRIBUTE12
1721 ,L.ATTRIBUTE13
1722 ,L.ATTRIBUTE14
1723 ,L.ATTRIBUTE15
1724 ,L.ATTRIBUTE2
1725 ,L.ATTRIBUTE3
1726 ,L.ATTRIBUTE4
1727 ,L.ATTRIBUTE5
1728 ,L.ATTRIBUTE6
1729 ,L.ATTRIBUTE7
1730 ,L.ATTRIBUTE8
1731 ,L.ATTRIBUTE9
1732 ,L.AUTOMATIC_FLAG
1733 ,L.BASE_QTY
1734 ,L.BASE_UOM_CODE
1735 ,L.COMMENTS
1736 ,L.CONTEXT
1737 ,L.CREATED_BY
1738 ,L.CREATION_DATE
1739 ,L.EFFECTIVE_PERIOD_UOM
1740 ,L.END_DATE_ACTIVE
1741 ,L.ESTIM_ACCRUAL_RATE
1742 ,L.GENERATE_USING_FORMULA_ID
1743 ,L.INVENTORY_ITEM_ID
1744 ,L.LAST_UPDATED_BY
1745 ,L.LAST_UPDATE_DATE
1746 ,L.LAST_UPDATE_LOGIN
1747 ,L.LIST_HEADER_ID
1748 ,L.LIST_LINE_ID
1749 ,L.LIST_LINE_TYPE_CODE
1750 ,L.LIST_PRICE
1751 ,L.MODIFIER_LEVEL_CODE
1752 ,L.NUMBER_EFFECTIVE_PERIODS
1753 ,L.OPERAND
1754 ,L.ORGANIZATION_ID
1755 ,L.OVERRIDE_FLAG
1756 ,L.PERCENT_PRICE
1757 ,L.PRICE_BREAK_TYPE_CODE
1758 ,L.PRICE_BY_FORMULA_ID
1759 ,L.PRIMARY_UOM_FLAG
1760 ,L.PRINT_ON_INVOICE_FLAG
1761 ,L.PROGRAM_APPLICATION_ID
1762 ,L.PROGRAM_ID
1763 ,L.PROGRAM_UPDATE_DATE
1764 ,L.REBATE_TRANSACTION_TYPE_CODE
1765 ,L.RELATED_ITEM_ID
1766 ,L.RELATIONSHIP_TYPE_ID
1767 ,L.REPRICE_FLAG
1768 ,L.REQUEST_ID
1769 ,L.REVISION
1770 ,L.REVISION_DATE
1771 ,L.REVISION_REASON_CODE
1772 ,L.START_DATE_ACTIVE
1773 ,L.SUBSTITUTION_ATTRIBUTE
1774 ,L.SUBSTITUTION_CONTEXT
1775 ,L.SUBSTITUTION_VALUE
1776 ,RM.RLTD_MODIFIER_ID
1777 ,RM.FROM_RLTD_MODIFIER_ID
1778 ,RM.TO_RLTD_MODIFIER_ID
1779 ,RM.RLTD_MODIFIER_GRP_NO
1780 ,RM.RLTD_MODIFIER_GRP_TYPE
1781 ,L.PRODUCT_PRECEDENCE
1782 ,L.LIST_LINE_NO
1783 ,L.QUALIFICATION_IND
1784 ,L.RECURRING_VALUE
1785 ,L.CUSTOMER_ITEM_ID
1786 ,L.BREAK_UOM_CODE
1787 ,L.BREAK_UOM_CONTEXT
1788 ,L.BREAK_UOM_ATTRIBUTE
1789 FROM QP_LIST_LINES L, QP_RLTD_MODIFIERS RM
1790 WHERE L.LIST_LINE_ID = RM.TO_RLTD_MODIFIER_ID
1791 AND RM.FROM_RLTD_MODIFIER_ID = p_list_line_id;
1792
1793 --added for related lines duplication
1794
1795 CURSOR l_PRICING_ATTR_csr(p_list_line_id Number) IS
1796 SELECT ACCUMULATE_FLAG
1797 , ATTRIBUTE1
1798 , ATTRIBUTE10
1799 , ATTRIBUTE11
1800 , ATTRIBUTE12
1801 , ATTRIBUTE13
1802 , ATTRIBUTE14
1803 , ATTRIBUTE15
1804 , ATTRIBUTE2
1805 , ATTRIBUTE3
1806 , ATTRIBUTE4
1807 , ATTRIBUTE5
1808 , ATTRIBUTE6
1809 , ATTRIBUTE7
1810 , ATTRIBUTE8
1811 , ATTRIBUTE9
1812 , ATTRIBUTE_GROUPING_NO
1813 , CONTEXT
1814 , CREATED_BY
1815 , CREATION_DATE
1816 , EXCLUDER_FLAG
1817 , LAST_UPDATED_BY
1818 , LAST_UPDATE_DATE
1819 , LAST_UPDATE_LOGIN
1820 , LIST_LINE_ID
1821 , LIST_HEADER_ID
1822 , PRICING_PHASE_ID
1823 , PRICING_ATTRIBUTE
1824 , PRICING_ATTRIBUTE_CONTEXT
1825 , PRICING_ATTRIBUTE_ID
1826 , PRICING_ATTR_VALUE_FROM
1827 , PRICING_ATTR_VALUE_TO
1828 , PRODUCT_ATTRIBUTE
1829 , PRODUCT_ATTRIBUTE_CONTEXT
1830 , PRODUCT_ATTR_VALUE
1831 , PRODUCT_UOM_CODE
1832 , PROGRAM_APPLICATION_ID
1833 , PROGRAM_ID
1834 , PROGRAM_UPDATE_DATE
1835 , REQUEST_ID
1836 , COMPARISON_OPERATOR_CODE
1837 , PRICING_ATTRIBUTE_DATATYPE
1838 , PRODUCT_ATTRIBUTE_DATATYPE
1839 , PRICING_ATTR_VALUE_FROM_NUMBER
1840 , PRICING_ATTR_VALUE_TO_NUMBER
1841 , QUALIFICATION_IND
1842 FROM QP_PRICING_ATTRIBUTES
1843 WHERE LIST_LINE_ID = p_list_line_id
1844 AND PRICING_ATTRIBUTE_CONTEXT IS NOT NULL;
1845
1846
1847
1848 --added for related lines duplication
1849
1850 CURSOR l_PRICING_ATTR_RLTD_csr(p_list_line_id Number) IS
1851 SELECT ACCUMULATE_FLAG
1852 , ATTRIBUTE1
1853 , ATTRIBUTE10
1854 , ATTRIBUTE11
1855 , ATTRIBUTE12
1856 , ATTRIBUTE13
1857 , ATTRIBUTE14
1858 , ATTRIBUTE15
1859 , ATTRIBUTE2
1860 , ATTRIBUTE3
1861 , ATTRIBUTE4
1862 , ATTRIBUTE5
1863 , ATTRIBUTE6
1864 , ATTRIBUTE7
1865 , ATTRIBUTE8
1866 , ATTRIBUTE9
1867 , ATTRIBUTE_GROUPING_NO
1868 , CONTEXT
1869 , CREATED_BY
1870 , CREATION_DATE
1871 , EXCLUDER_FLAG
1872 , LAST_UPDATED_BY
1873 , LAST_UPDATE_DATE
1874 , LAST_UPDATE_LOGIN
1875 , LIST_LINE_ID
1876 , LIST_HEADER_ID
1877 , PRICING_PHASE_ID
1878 , PRICING_ATTRIBUTE
1879 , PRICING_ATTRIBUTE_CONTEXT
1880 , PRICING_ATTRIBUTE_ID
1881 , PRICING_ATTR_VALUE_FROM
1882 , PRICING_ATTR_VALUE_TO
1883 , PRODUCT_ATTRIBUTE
1884 , PRODUCT_ATTRIBUTE_CONTEXT
1885 , PRODUCT_ATTR_VALUE
1886 , PRODUCT_UOM_CODE
1887 , PROGRAM_APPLICATION_ID
1888 , PROGRAM_ID
1889 , PROGRAM_UPDATE_DATE
1890 , REQUEST_ID
1891 , COMPARISON_OPERATOR_CODE
1892 , PRICING_ATTRIBUTE_DATATYPE
1893 , PRODUCT_ATTRIBUTE_DATATYPE
1894 , PRICING_ATTR_VALUE_FROM_NUMBER
1895 , PRICING_ATTR_VALUE_TO_NUMBER
1896 , QUALIFICATION_IND
1897 FROM QP_PRICING_ATTRIBUTES
1898 WHERE LIST_LINE_ID = p_list_line_id;
1899
1900
1901 --added for related lines duplication
1902
1903 BEGIN
1904 FOR l_implicit_rec IN l_PRICING_ATTR_csr(p_x_old_list_line_id) LOOP
1905
1906 SELECT qp_pricing_attributes_s.nextval INTO l_new_pricing_attribute_id
1907 FROM dual;
1908
1909 l_PRICING_ATTR_rec.accumulate_flag := l_implicit_rec.ACCUMULATE_FLAG;
1910 l_PRICING_ATTR_rec.attribute1 := l_implicit_rec.ATTRIBUTE1;
1911 l_PRICING_ATTR_rec.attribute10 := l_implicit_rec.ATTRIBUTE10;
1912 l_PRICING_ATTR_rec.attribute11 := l_implicit_rec.ATTRIBUTE11;
1913 l_PRICING_ATTR_rec.attribute12 := l_implicit_rec.ATTRIBUTE12;
1914 l_PRICING_ATTR_rec.attribute13 := l_implicit_rec.ATTRIBUTE13;
1915 l_PRICING_ATTR_rec.attribute14 := l_implicit_rec.ATTRIBUTE14;
1916 l_PRICING_ATTR_rec.attribute15 := l_implicit_rec.ATTRIBUTE15;
1917 l_PRICING_ATTR_rec.attribute2 := l_implicit_rec.ATTRIBUTE2;
1918 l_PRICING_ATTR_rec.attribute3 := l_implicit_rec.ATTRIBUTE3;
1919 l_PRICING_ATTR_rec.attribute4 := l_implicit_rec.ATTRIBUTE4;
1920 l_PRICING_ATTR_rec.attribute5 := l_implicit_rec.ATTRIBUTE5;
1921 l_PRICING_ATTR_rec.attribute6 := l_implicit_rec.ATTRIBUTE6;
1922 l_PRICING_ATTR_rec.attribute7 := l_implicit_rec.ATTRIBUTE7;
1923 l_PRICING_ATTR_rec.attribute8 := l_implicit_rec.ATTRIBUTE8;
1924 l_PRICING_ATTR_rec.attribute9 := l_implicit_rec.ATTRIBUTE9;
1925 l_PRICING_ATTR_rec.attribute_grouping_no := l_implicit_rec.ATTRIBUTE_GROUPING_NO;
1926 l_PRICING_ATTR_rec.context := l_implicit_rec.CONTEXT;
1927 l_PRICING_ATTR_rec.created_by := l_implicit_rec.CREATED_BY;
1928 l_PRICING_ATTR_rec.creation_date := l_implicit_rec.CREATION_DATE;
1929 l_PRICING_ATTR_rec.excluder_flag := l_implicit_rec.EXCLUDER_FLAG;
1930 l_PRICING_ATTR_rec.last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
1931 l_PRICING_ATTR_rec.last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
1932 l_PRICING_ATTR_rec.last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
1933 l_PRICING_ATTR_rec.list_line_id := p_x_new_list_line_id;
1934 l_PRICING_ATTR_rec.list_header_id := l_implicit_rec.LIST_HEADER_ID;
1935 l_PRICING_ATTR_rec.pricing_phase_id := l_implicit_rec.PRICING_PHASE_ID;
1936 l_PRICING_ATTR_rec.pricing_attribute := l_implicit_rec.PRICING_ATTRIBUTE;
1937 l_PRICING_ATTR_rec.pricing_attribute_context := l_implicit_rec.PRICING_ATTRIBUTE_CONTEXT;
1938 l_PRICING_ATTR_rec.pricing_attribute_id := l_new_pricing_attribute_id;
1939 l_PRICING_ATTR_rec.pricing_attr_value_from := l_implicit_rec.PRICING_ATTR_VALUE_FROM;
1940 l_PRICING_ATTR_rec.pricing_attr_value_to := l_implicit_rec.PRICING_ATTR_VALUE_TO;
1941 l_PRICING_ATTR_rec.product_attribute := l_implicit_rec.PRODUCT_ATTRIBUTE;
1942 l_PRICING_ATTR_rec.product_attribute_context := l_implicit_rec.PRODUCT_ATTRIBUTE_CONTEXT;
1943 l_PRICING_ATTR_rec.product_attr_value := l_implicit_rec.PRODUCT_ATTR_VALUE;
1944 l_PRICING_ATTR_rec.product_uom_code := l_implicit_rec.PRODUCT_UOM_CODE;
1945 l_PRICING_ATTR_rec.program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
1946 l_PRICING_ATTR_rec.program_id := l_implicit_rec.PROGRAM_ID;
1947 l_PRICING_ATTR_rec.program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
1948 l_PRICING_ATTR_rec.request_id := l_implicit_rec.REQUEST_ID;
1949 l_PRICING_ATTR_rec.comparison_operator_code := l_implicit_rec.comparison_operator_code;
1950 l_PRICING_ATTR_rec.pricing_attribute_datatype := l_implicit_rec.pricing_attribute_datatype;
1951 l_PRICING_ATTR_rec.product_attribute_datatype := l_implicit_rec.product_attribute_datatype;
1952 l_PRICING_ATTR_rec.pricing_attr_value_from_number := l_implicit_rec.PRICING_ATTR_VALUE_FROM_NUMBER;
1953 l_PRICING_ATTR_rec.pricing_attr_value_to_number := l_implicit_rec.PRICING_ATTR_VALUE_TO_NUMBER;
1954 l_PRICING_ATTR_rec.qualification_ind := l_implicit_rec.QUALIFICATION_IND;
1955 l_PRICING_ATTR_rec.operation := QP_GLOBALS.G_OPR_CREATE;
1956
1957 l_PRICING_ATTR_tbl(l_PRICING_ATTR_tbl.COUNT + 1) := l_PRICING_ATTR_rec;
1958
1959 END LOOP;
1960
1961 --added for related lines duplication
1962
1963 SELECT list_line_type_code into l_list_line_type_code from QP_LIST_LINES where list_line_id=p_x_old_list_line_id;
1964 If l_list_line_type_code IN ('PBH') Then
1965
1966 --Storing continuous_price_break_flag value for later use,to convert non continuous price break lines into continuous line.
1967
1968 SELECT continuous_price_break_flag INTO l_continuous_price_break_flag
1969 FROM QP_LIST_LINES
1970 WHERE list_line_id=p_x_old_list_line_id;
1971 FOR l_implicit_rec IN l_LIST_LINE_csr(p_x_old_list_line_id) LOOP
1972
1973
1974 SELECT qp_List_lines_s.nextval INTO l_new_list_line_id
1975 FROM dual;
1976
1977
1978
1979 l_PRICE_LIST_LINE_rec.accrual_qty := l_implicit_rec.ACCRUAL_QTY;
1980 l_PRICE_LIST_LINE_rec.accrual_uom_code := l_implicit_rec.ACCRUAL_UOM_CODE;
1981 l_PRICE_LIST_LINE_rec.arithmetic_operator := l_implicit_rec.ARITHMETIC_OPERATOR;
1982 l_PRICE_LIST_LINE_rec.attribute1 := l_implicit_rec.ATTRIBUTE1;
1983 l_PRICE_LIST_LINE_rec.attribute10 := l_implicit_rec.ATTRIBUTE10;
1984 l_PRICE_LIST_LINE_rec.attribute11 := l_implicit_rec.ATTRIBUTE11;
1985 l_PRICE_LIST_LINE_rec.attribute12 := l_implicit_rec.ATTRIBUTE12;
1986 l_PRICE_LIST_LINE_rec.attribute13 := l_implicit_rec.ATTRIBUTE13;
1987 l_PRICE_LIST_LINE_rec.attribute14 := l_implicit_rec.ATTRIBUTE14;
1988 l_PRICE_LIST_LINE_rec.attribute15 := l_implicit_rec.ATTRIBUTE15;
1989 l_PRICE_LIST_LINE_rec.attribute2 := l_implicit_rec.ATTRIBUTE2;
1990 l_PRICE_LIST_LINE_rec.attribute3 := l_implicit_rec.ATTRIBUTE3;
1991 l_PRICE_LIST_LINE_rec.attribute4 := l_implicit_rec.ATTRIBUTE4;
1992 l_PRICE_LIST_LINE_rec.attribute5 := l_implicit_rec.ATTRIBUTE5;
1993 l_PRICE_LIST_LINE_rec.attribute6 := l_implicit_rec.ATTRIBUTE6;
1994 l_PRICE_LIST_LINE_rec.attribute7 := l_implicit_rec.ATTRIBUTE7;
1995 l_PRICE_LIST_LINE_rec.attribute8 := l_implicit_rec.ATTRIBUTE8;
1996 l_PRICE_LIST_LINE_rec.attribute9 := l_implicit_rec.ATTRIBUTE9;
1997 l_PRICE_LIST_LINE_rec.automatic_flag := l_implicit_rec.AUTOMATIC_FLAG;
1998 l_PRICE_LIST_LINE_rec.base_qty := l_implicit_rec.BASE_QTY;
1999 l_PRICE_LIST_LINE_rec.base_uom_code := l_implicit_rec.BASE_UOM_CODE;
2000 l_PRICE_LIST_LINE_rec.comments := l_implicit_rec.COMMENTS;
2001 l_PRICE_LIST_LINE_rec.context := l_implicit_rec.CONTEXT;
2002 l_PRICE_LIST_LINE_rec.created_by := l_implicit_rec.CREATED_BY;
2003 l_PRICE_LIST_LINE_rec.creation_date := l_implicit_rec.CREATION_DATE;
2004 l_PRICE_LIST_LINE_rec.effective_period_uom := l_implicit_rec.EFFECTIVE_PERIOD_UOM;
2005 l_PRICE_LIST_LINE_rec.end_date_active := l_implicit_rec.END_DATE_ACTIVE;
2006 l_PRICE_LIST_LINE_rec.estim_accrual_rate := l_implicit_rec.ESTIM_ACCRUAL_RATE;
2007 l_PRICE_LIST_LINE_rec.generate_using_formula_id := l_implicit_rec.GENERATE_USING_FORMULA_ID;
2008 l_PRICE_LIST_LINE_rec.inventory_item_id := l_implicit_rec.INVENTORY_ITEM_ID;
2009 l_PRICE_LIST_LINE_rec.last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
2010 l_PRICE_LIST_LINE_rec.last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
2011 l_PRICE_LIST_LINE_rec.last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
2012 l_PRICE_LIST_LINE_rec.list_header_id := l_implicit_rec.LIST_HEADER_ID;
2013 l_PRICE_LIST_LINE_rec.list_line_id := l_new_list_line_id;
2014 l_PRICE_LIST_LINE_rec.list_line_type_code := l_implicit_rec.LIST_LINE_TYPE_CODE;
2015 l_PRICE_LIST_LINE_rec.list_price := l_implicit_rec.LIST_PRICE;
2016 l_PRICE_LIST_LINE_rec.modifier_level_code := l_implicit_rec.MODIFIER_LEVEL_CODE;
2017 l_PRICE_LIST_LINE_rec.number_effective_periods := l_implicit_rec.NUMBER_EFFECTIVE_PERIODS;
2018 l_PRICE_LIST_LINE_rec.operand := l_implicit_rec.OPERAND;
2019 l_PRICE_LIST_LINE_rec.organization_id := l_implicit_rec.ORGANIZATION_ID;
2020 l_PRICE_LIST_LINE_rec.override_flag := l_implicit_rec.OVERRIDE_FLAG;
2021 l_PRICE_LIST_LINE_rec.percent_price := l_implicit_rec.PERCENT_PRICE;
2022 l_PRICE_LIST_LINE_rec.price_break_type_code := l_implicit_rec.PRICE_BREAK_TYPE_CODE;
2023 l_PRICE_LIST_LINE_rec.price_by_formula_id := l_implicit_rec.PRICE_BY_FORMULA_ID;
2024 l_PRICE_LIST_LINE_rec.primary_uom_flag := l_implicit_rec.PRIMARY_UOM_FLAG;
2025 l_PRICE_LIST_LINE_rec.print_on_invoice_flag := l_implicit_rec.PRINT_ON_INVOICE_FLAG;
2026 l_PRICE_LIST_LINE_rec.program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
2027 l_PRICE_LIST_LINE_rec.program_id := l_implicit_rec.PROGRAM_ID;
2028 l_PRICE_LIST_LINE_rec.program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
2029 l_PRICE_LIST_LINE_rec.rebate_trxn_type_code := l_implicit_rec.REBATE_TRANSACTION_TYPE_CODE;
2030 l_PRICE_LIST_LINE_rec.related_item_id := l_implicit_rec.RELATED_ITEM_ID;
2031 l_PRICE_LIST_LINE_rec.relationship_type_id := l_implicit_rec.RELATIONSHIP_TYPE_ID;
2032 l_PRICE_LIST_LINE_rec.reprice_flag := l_implicit_rec.REPRICE_FLAG;
2033 l_PRICE_LIST_LINE_rec.request_id := l_implicit_rec.REQUEST_ID;
2034 l_PRICE_LIST_LINE_rec.revision := l_implicit_rec.REVISION;
2035 l_PRICE_LIST_LINE_rec.revision_date := l_implicit_rec.REVISION_DATE;
2036 l_PRICE_LIST_LINE_rec.revision_reason_code := l_implicit_rec.REVISION_REASON_CODE;
2037 l_PRICE_LIST_LINE_rec.start_date_active := l_implicit_rec.START_DATE_ACTIVE;
2038 l_PRICE_LIST_LINE_rec.substitution_attribute := l_implicit_rec.SUBSTITUTION_ATTRIBUTE;
2039 l_PRICE_LIST_LINE_rec.substitution_context := l_implicit_rec.SUBSTITUTION_CONTEXT;
2040 l_PRICE_LIST_LINE_rec.substitution_value := l_implicit_rec.SUBSTITUTION_VALUE;
2041 l_PRICE_LIST_LINE_rec.from_rltd_modifier_id := p_x_new_list_line_id;
2042 l_PRICE_LIST_LINE_rec.to_rltd_modifier_id := l_new_list_line_id;
2043 l_PRICE_LIST_LINE_rec.rltd_modifier_group_no := l_implicit_rec.RLTD_MODIFIER_GRP_NO;
2044 l_PRICE_LIST_LINE_rec.rltd_modifier_grp_type := l_implicit_rec.RLTD_MODIFIER_GRP_TYPE;
2045 l_PRICE_LIST_LINE_rec.product_precedence := l_implicit_rec.PRODUCT_PRECEDENCE;
2046 l_PRICE_LIST_LINE_rec.list_line_no := l_new_list_line_id;
2047 l_PRICE_LIST_LINE_rec.qualification_ind := l_implicit_rec.QUALIFICATION_IND;
2048 l_PRICE_LIST_LINE_rec.recurring_value := l_implicit_rec.RECURRING_VALUE;
2049 l_PRICE_LIST_LINE_rec.customer_item_id := l_implicit_rec.CUSTOMER_ITEM_ID;
2050 l_PRICE_LIST_LINE_rec.break_uom_code := l_implicit_rec.BREAK_UOM_CODE;
2051 l_PRICE_LIST_LINE_rec.break_uom_context := l_implicit_rec.BREAK_UOM_CONTEXT;
2052 l_PRICE_LIST_LINE_rec.break_uom_attribute := l_implicit_rec.BREAK_UOM_ATTRIBUTE;
2053 l_PRICE_LIST_LINE_rec.db_flag := FND_API.G_TRUE;
2054 l_PRICE_LIST_LINE_rec.operation := QP_GLOBALS.G_OPR_CREATE;
2055
2056
2057 l_PRICE_LIST_LINE_tbl(l_PRICE_LIST_LINE_tbl.COUNT + 1) := l_PRICE_LIST_LINE_rec;
2058
2059
2060 -- Related Lines Pricing Attributes Duplication
2061
2062 FOR l_implicit_attr_rec IN l_PRICING_ATTR_rltd_csr(l_implicit_rec.list_line_id) LOOP
2063
2064 SELECT qp_pricing_attributes_s.nextval INTO l_new_pricing_attribute_id FROM dual;
2065
2066 l_PRICING_ATTR_rec.accumulate_flag := l_implicit_attr_rec.ACCUMULATE_FLAG;
2067 l_PRICING_ATTR_rec.attribute1 := l_implicit_attr_rec.ATTRIBUTE1;
2068 l_PRICING_ATTR_rec.attribute10 := l_implicit_attr_rec.ATTRIBUTE10;
2069 l_PRICING_ATTR_rec.attribute11 := l_implicit_attr_rec.ATTRIBUTE11;
2070 l_PRICING_ATTR_rec.attribute12 := l_implicit_attr_rec.ATTRIBUTE12;
2071 l_PRICING_ATTR_rec.attribute13 := l_implicit_attr_rec.ATTRIBUTE13;
2072 l_PRICING_ATTR_rec.attribute14 := l_implicit_attr_rec.ATTRIBUTE14;
2073 l_PRICING_ATTR_rec.attribute15 := l_implicit_attr_rec.ATTRIBUTE15;
2074 l_PRICING_ATTR_rec.attribute2 := l_implicit_attr_rec.ATTRIBUTE2;
2075 l_PRICING_ATTR_rec.attribute3 := l_implicit_attr_rec.ATTRIBUTE3;
2076 l_PRICING_ATTR_rec.attribute4 := l_implicit_attr_rec.ATTRIBUTE4;
2077 l_PRICING_ATTR_rec.attribute5 := l_implicit_attr_rec.ATTRIBUTE5;
2078 l_PRICING_ATTR_rec.attribute6 := l_implicit_attr_rec.ATTRIBUTE6;
2079 l_PRICING_ATTR_rec.attribute7 := l_implicit_attr_rec.ATTRIBUTE7;
2080 l_PRICING_ATTR_rec.attribute8 := l_implicit_attr_rec.ATTRIBUTE8;
2081 l_PRICING_ATTR_rec.attribute9 := l_implicit_attr_rec.ATTRIBUTE9;
2082 l_PRICING_ATTR_rec.attribute_grouping_no := l_implicit_attr_rec.ATTRIBUTE_GROUPING_NO;
2083 l_PRICING_ATTR_rec.context := l_implicit_attr_rec.CONTEXT;
2084 l_PRICING_ATTR_rec.created_by := l_implicit_attr_rec.CREATED_BY;
2085 l_PRICING_ATTR_rec.creation_date := l_implicit_attr_rec.CREATION_DATE;
2086 l_PRICING_ATTR_rec.excluder_flag := l_implicit_attr_rec.EXCLUDER_FLAG;
2087 l_PRICING_ATTR_rec.last_updated_by := l_implicit_attr_rec.LAST_UPDATED_BY;
2088 l_PRICING_ATTR_rec.last_update_date := l_implicit_attr_rec.LAST_UPDATE_DATE;
2089 l_PRICING_ATTR_rec.last_update_login := l_implicit_attr_rec.LAST_UPDATE_LOGIN;
2090 l_PRICING_ATTR_rec.list_line_id := l_new_list_line_id;
2091 l_PRICING_ATTR_rec.list_header_id := l_implicit_attr_rec.LIST_HEADER_ID;
2092 l_PRICING_ATTR_rec.pricing_phase_id := l_implicit_attr_rec.PRICING_PHASE_ID;
2093 l_PRICING_ATTR_rec.pricing_attribute := l_implicit_attr_rec.PRICING_ATTRIBUTE;
2094 l_PRICING_ATTR_rec.pricing_attribute_context := l_implicit_attr_rec.PRICING_ATTRIBUTE_CONTEXT;
2095 l_PRICING_ATTR_rec.pricing_attribute_id := l_new_pricing_attribute_id;
2096 l_PRICING_ATTR_rec.pricing_attr_value_from := l_implicit_attr_rec.PRICING_ATTR_VALUE_FROM;
2097 l_PRICING_ATTR_rec.pricing_attr_value_to := l_implicit_attr_rec.PRICING_ATTR_VALUE_TO;
2098 l_PRICING_ATTR_rec.product_attribute := l_implicit_attr_rec.PRODUCT_ATTRIBUTE;
2099 l_PRICING_ATTR_rec.product_attribute_context := l_implicit_attr_rec.PRODUCT_ATTRIBUTE_CONTEXT;
2100 l_PRICING_ATTR_rec.product_attr_value := l_implicit_attr_rec.PRODUCT_ATTR_VALUE;
2101 l_PRICING_ATTR_rec.product_uom_code := l_implicit_attr_rec.PRODUCT_UOM_CODE;
2102 l_PRICING_ATTR_rec.program_application_id := l_implicit_attr_rec.PROGRAM_APPLICATION_ID;
2103 l_PRICING_ATTR_rec.program_id := l_implicit_attr_rec.PROGRAM_ID;
2104 l_PRICING_ATTR_rec.program_update_date := l_implicit_attr_rec.PROGRAM_UPDATE_DATE;
2105 l_PRICING_ATTR_rec.request_id := l_implicit_attr_rec.REQUEST_ID;
2106 l_PRICING_ATTR_rec.comparison_operator_code := l_implicit_attr_rec.comparison_operator_code;
2107 l_PRICING_ATTR_rec.pricing_attribute_datatype := l_implicit_attr_rec.pricing_attribute_datatype;
2108 l_PRICING_ATTR_rec.product_attribute_datatype := l_implicit_attr_rec.product_attribute_datatype;
2109 l_PRICING_ATTR_rec.pricing_attr_value_from_number := l_implicit_attr_rec.PRICING_ATTR_VALUE_FROM_NUMBER;
2110 l_PRICING_ATTR_rec.pricing_attr_value_to_number := l_implicit_attr_rec.PRICING_ATTR_VALUE_TO_NUMBER;
2111 l_PRICING_ATTR_rec.qualification_ind := l_implicit_attr_rec.QUALIFICATION_IND;
2112 l_PRICING_ATTR_rec.operation := QP_GLOBALS.G_OPR_CREATE;
2113
2114 l_PRICING_ATTR_tbl(l_PRICING_ATTR_tbl.COUNT + 1) := l_PRICING_ATTR_rec;
2115
2116 END LOOP;
2117 END LOOP;
2118 END IF;
2119
2120 IF ((l_PRICE_LIST_LINE_tbl.COUNT <> 0) OR
2121 (l_PRICING_ATTR_tbl.COUNT <> 0))
2122
2123 -- added for related lines duplication
2124
2125 THEN
2126 l_control_rec.controlled_operation := TRUE;
2127 l_control_rec.write_to_DB := TRUE;
2128
2129 l_control_rec.validate_entity := FALSE;
2130 l_control_rec.default_attributes := FALSE;
2131 l_control_rec.change_attributes := FALSE;
2132 l_control_rec.process := FALSE;
2133
2134 -- Instruct API to retain its caches
2135
2136 l_control_rec.clear_api_cache := FALSE;
2137 l_control_rec.clear_api_requests := FALSE;
2138
2139
2140 QP_LIST_HEADERS_PVT.Process_PRICE_LIST
2141 ( p_api_version_number => 1.0
2142 , p_init_msg_list => FND_API.G_TRUE
2143 , x_return_status => l_return_status
2144 , x_msg_count => x_msg_count
2145 , x_msg_data => x_msg_data
2146 , p_control_rec => l_control_rec
2147 , p_PRICE_LIST_LINE_tbl => l_PRICE_LIST_LINE_tbl /* added for related lines duplication*/
2148 , p_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl
2149 , x_PRICE_LIST_rec => l_x_PRICE_LIST_rec
2150 , x_PRICE_LIST_LINE_tbl => l_x_PRICE_LIST_LINE_tbl
2151 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
2152 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
2153 );
2154
2155 -- Upgrade Non Continuous Price Break Lines into Continuous Price Break Lines.
2156 IF (l_continuous_price_break_flag<>'Y' OR l_continuous_price_break_flag IS NULL )and l_list_line_type_code='PBH' THEN
2157 qp_delayed_requests_PVT.log_request
2158 ( p_entity_code => QP_GLOBALS.G_ENTITY_PRICING_ATTR
2159 , p_entity_id =>p_x_new_list_line_id
2160 , p_requesting_entity_code => QP_GLOBALS.G_ENTITY_PRICING_ATTR
2161 , p_requesting_entity_id => p_x_new_list_line_id
2162 , p_request_type => QP_Globals.G_UPGRADE_PRICE_BREAKS
2163 , p_param1 => null
2164 , p_param2 => null
2165 , p_param3 => null
2166 , x_return_status => l_return_status);
2167
2168
2169 QP_DELAYED_REQUESTS_PVT.Process_Request_for_Entity
2170 ( p_entity_code => QP_GLOBALS.G_ENTITY_PRICING_ATTR
2171 , x_return_status => l_return_status);
2172 END IF;
2173 oe_debug_pub.add('QPXFPLAB - l_return_status = ' || l_return_status);
2174 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2175 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2176 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2177 RAISE FND_API.G_EXC_ERROR;
2178 END IF;
2179 END IF;
2180
2181 -- Added following 3 lines to avoid NullPointerException when called from Mass Maintenance
2182 if x_msg_count is null then
2183 x_msg_count := 0;
2184 end if;
2185
2186 EXCEPTION
2187
2188 WHEN FND_API.G_EXC_ERROR THEN
2189
2190 -- x_return_status := FND_API.G_RET_STS_ERROR;
2191
2192 -- Get message count and data
2193
2194 oe_msg_pub.Count_And_Get
2195 ( p_count => x_msg_count
2196 , p_data => x_msg_data
2197 );
2198
2199 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2200
2201 -- x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2202
2203 -- Get message count and data
2204
2205 oe_msg_pub.Count_And_Get
2206 ( p_count => x_msg_count
2207 , p_data => x_msg_data
2208 );
2209
2210 WHEN OTHERS THEN
2211
2212 -- x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2213
2214 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
2215 THEN
2216 oe_msg_pub.Add_Exc_Msg
2217 ( G_PKG_NAME
2218 , 'Write to DB'
2219 );
2220 END IF;
2221
2222 -- Get message count and data
2223
2224 oe_msg_pub.Count_And_Get
2225 ( p_count => x_msg_count
2226 , p_data => x_msg_data
2227 );
2228
2229 END Dup_record;
2230
2231 END QP_QP_Form_pll_pricing_attr;