[Home] [Help]
PACKAGE BODY: APPS.QP_QP_FORM_PRICING_ATTR
Source
1 PACKAGE BODY QP_QP_Form_Pricing_Attr AS
2 /* $Header: QPXFPRAB.pls 120.5 2008/06/10 10:25:54 kdurgasi ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'QP_QP_Form_Pricing_Attr';
7
8 -- Global variables holding cached record.
9
10 g_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
11 g_db_PRICING_ATTR_rec QP_Modifiers_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_Modifiers_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_Modifiers_PUB.Pricing_Attr_Rec_Type;
25
26 PROCEDURE Clear_PRICING_ATTR;
27
28 -- Global variable holding performed operations.
29
30 g_opr__tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
31
32 -- Procedure : Default_Attributes
33 --
34
35 PROCEDURE Default_Attributes
36 ( p_list_line_id IN NUMBER
37 , x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
38 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
39 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
40 , x_accumulate_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
41 , x_attribute1 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
42 , x_attribute10 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
43 , x_attribute11 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
44 , x_attribute12 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
45 , x_attribute13 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
46 , x_attribute14 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
47 , x_attribute15 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
48 , x_attribute2 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
49 , x_attribute3 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
50 , x_attribute4 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
51 , x_attribute5 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
52 , x_attribute6 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
53 , x_attribute7 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
54 , x_attribute8 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
55 , x_attribute9 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
56 , x_attribute_grouping_no OUT NOCOPY /* file.sql.39 change */ NUMBER
57 , x_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
58 , x_excluder_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
59 , x_list_line_id OUT NOCOPY /* file.sql.39 change */ NUMBER
60 , x_pricing_attribute OUT NOCOPY /* file.sql.39 change */ VARCHAR2
61 , x_pricing_attribute_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
62 , x_pricing_attribute_id OUT NOCOPY /* file.sql.39 change */ NUMBER
63 , x_pricing_attr_value_from OUT NOCOPY /* file.sql.39 change */ VARCHAR2
64 , x_pricing_attr_value_to OUT NOCOPY /* file.sql.39 change */ VARCHAR2
65 , x_product_attribute OUT NOCOPY /* file.sql.39 change */ VARCHAR2
66 , x_product_attribute_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
67 , x_product_attr_value OUT NOCOPY /* file.sql.39 change */ VARCHAR2
68 , x_product_uom_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
69 , x_accumulate OUT NOCOPY /* file.sql.39 change */ VARCHAR2
70 , x_excluder OUT NOCOPY /* file.sql.39 change */ VARCHAR2
71 , x_list_line OUT NOCOPY /* file.sql.39 change */ VARCHAR2
72 , x_product_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
73 , x_product_attribute_datatype OUT NOCOPY /* file.sql.39 change */ VARCHAR2
74 , x_pricing_attribute_datatype OUT NOCOPY /* file.sql.39 change */ VARCHAR2
75 , x_comparison_operator_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
76 )
77 IS
78 l_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
79 l_PRICING_ATTR_val_rec QP_Modifiers_PUB.Pricing_Attr_Val_Rec_Type;
80 l_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
81 l_control_rec QP_GLOBALS.Control_Rec_Type;
82 l_return_status VARCHAR2(1);
83 l_x_MODIFIER_LIST_rec QP_Modifiers_PUB.Modifier_List_Rec_Type;
84 l_x_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
85 l_x_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
86 l_x_QUALIFIERS_rec QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
87 l_x_QUALIFIERS_tbl QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
88 l_x_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
89 l_x_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
90 BEGIN
91
92 oe_debug_pub.add('BEGIN Default_Attributes in QPXFPRAB');
93
94 -- Set control flags.
95
96 l_control_rec.controlled_operation := TRUE;
97 l_control_rec.default_attributes := TRUE;
98
99 l_control_rec.change_attributes := FALSE;
100 l_control_rec.validate_entity := FALSE;
101 l_control_rec.write_to_DB := FALSE;
102 l_control_rec.process := FALSE;
103
104 -- Instruct API to retain its caches
105
106 l_control_rec.clear_api_cache := FALSE;
107 l_control_rec.clear_api_requests := FALSE;
108
109 -- Load IN parameters if any exist
110
111 l_PRICING_ATTR_rec.list_line_id := p_list_line_id;
112
113
114 -- Defaulting of flex values is currently done by the form.
115 -- Set flex attributes to NULL in order to avoid defaulting them.
116
117 l_PRICING_ATTR_rec.attribute1 := NULL;
118 l_PRICING_ATTR_rec.attribute10 := NULL;
119 l_PRICING_ATTR_rec.attribute11 := NULL;
120 l_PRICING_ATTR_rec.attribute12 := NULL;
121 l_PRICING_ATTR_rec.attribute13 := NULL;
122 l_PRICING_ATTR_rec.attribute14 := NULL;
123 l_PRICING_ATTR_rec.attribute15 := NULL;
124 l_PRICING_ATTR_rec.attribute2 := NULL;
125 l_PRICING_ATTR_rec.attribute3 := NULL;
126 l_PRICING_ATTR_rec.attribute4 := NULL;
127 l_PRICING_ATTR_rec.attribute5 := NULL;
128 l_PRICING_ATTR_rec.attribute6 := NULL;
129 l_PRICING_ATTR_rec.attribute7 := NULL;
130 l_PRICING_ATTR_rec.attribute8 := NULL;
131 l_PRICING_ATTR_rec.attribute9 := NULL;
132 l_PRICING_ATTR_rec.context := NULL;
133
134 -- Set Operation to Create
135
136 l_PRICING_ATTR_rec.operation := QP_GLOBALS.G_OPR_CREATE;
137
138 -- Populate PRICING_ATTR table
139
140 oe_debug_pub.add(to_char(l_PRICING_ATTR_rec.attribute_grouping_no)||'attr_grp_no QPXFPRAB');
141 l_PRICING_ATTR_tbl(1) := l_PRICING_ATTR_rec;
142
143 -- Call QP_Modifiers_PVT.Process_MODIFIERS
144
145 QP_Modifiers_PVT.Process_MODIFIERS
146 ( p_api_version_number => 1.0
147 , p_init_msg_list => FND_API.G_TRUE
148 , x_return_status => l_return_status
149 , x_msg_count => x_msg_count
150 , x_msg_data => x_msg_data
151 , p_control_rec => l_control_rec
152 , p_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl
153 , x_MODIFIER_LIST_rec => l_x_MODIFIER_LIST_rec
154 , x_MODIFIERS_tbl => l_x_MODIFIERS_tbl
155 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
156 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
157 );
158
159 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
160 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
161 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
162 RAISE FND_API.G_EXC_ERROR;
163 END IF;
164
165
166 -- Unload out tbl
167
168 l_x_PRICING_ATTR_rec := l_x_PRICING_ATTR_tbl(1);
169
170 -- Load OUT parameters.
171
172 x_accumulate_flag := l_x_PRICING_ATTR_rec.accumulate_flag;
173 x_attribute1 := l_x_PRICING_ATTR_rec.attribute1;
174 x_attribute10 := l_x_PRICING_ATTR_rec.attribute10;
175 x_attribute11 := l_x_PRICING_ATTR_rec.attribute11;
176 x_attribute12 := l_x_PRICING_ATTR_rec.attribute12;
177 x_attribute13 := l_x_PRICING_ATTR_rec.attribute13;
178 x_attribute14 := l_x_PRICING_ATTR_rec.attribute14;
179 x_attribute15 := l_x_PRICING_ATTR_rec.attribute15;
180 x_attribute2 := l_x_PRICING_ATTR_rec.attribute2;
181 x_attribute3 := l_x_PRICING_ATTR_rec.attribute3;
182 x_attribute4 := l_x_PRICING_ATTR_rec.attribute4;
183 x_attribute5 := l_x_PRICING_ATTR_rec.attribute5;
184 x_attribute6 := l_x_PRICING_ATTR_rec.attribute6;
185 x_attribute7 := l_x_PRICING_ATTR_rec.attribute7;
186 x_attribute8 := l_x_PRICING_ATTR_rec.attribute8;
187 x_attribute9 := l_x_PRICING_ATTR_rec.attribute9;
188 x_attribute_grouping_no := l_x_PRICING_ATTR_rec.attribute_grouping_no;
189 x_context := l_x_PRICING_ATTR_rec.context;
190 x_excluder_flag := l_x_PRICING_ATTR_rec.excluder_flag;
191 x_list_line_id := l_x_PRICING_ATTR_rec.list_line_id;
192 x_pricing_attribute := l_x_PRICING_ATTR_rec.pricing_attribute;
193 x_pricing_attribute_context := l_x_PRICING_ATTR_rec.pricing_attribute_context;
194 x_pricing_attribute_id := l_x_PRICING_ATTR_rec.pricing_attribute_id;
195 x_pricing_attr_value_from := l_x_PRICING_ATTR_rec.pricing_attr_value_from;
196 x_pricing_attr_value_to := l_x_PRICING_ATTR_rec.pricing_attr_value_to;
197 x_product_attribute := l_x_PRICING_ATTR_rec.product_attribute;
198 x_product_attribute_context := l_x_PRICING_ATTR_rec.product_attribute_context;
199 x_product_attr_value := l_x_PRICING_ATTR_rec.product_attr_value;
200 x_product_uom_code := l_x_PRICING_ATTR_rec.product_uom_code;
201 x_product_attribute_datatype := l_x_PRICING_ATTR_rec.product_attribute_datatype;
202 x_pricing_attribute_datatype := l_x_PRICING_ATTR_rec.pricing_attribute_datatype;
203 x_comparison_operator_code := l_x_PRICING_ATTR_rec.comparison_operator_code;
204
205 -- Load display out parameters if any
206
207 l_PRICING_ATTR_val_rec := QP_Pricing_Attr_Util.Get_Values
208 ( p_PRICING_ATTR_rec => l_x_PRICING_ATTR_rec
209 );
210 x_accumulate := l_PRICING_ATTR_val_rec.accumulate;
211 x_excluder := l_PRICING_ATTR_val_rec.excluder;
212 x_list_line := l_PRICING_ATTR_val_rec.list_line;
213 x_product_uom := l_PRICING_ATTR_val_rec.product_uom;
214
215 -- Write to cache.
216 -- Set db_flag to False before writing to cache
217
218 l_x_PRICING_ATTR_rec.db_flag := FND_API.G_FALSE;
219
220 Write_PRICING_ATTR
221 ( p_PRICING_ATTR_rec => l_x_PRICING_ATTR_rec
222 );
223
224 -- Set return status.
225
226 x_return_status := FND_API.G_RET_STS_SUCCESS;
227
228 -- Get message count and data
229
230 OE_MSG_PUB.Count_And_Get
231 ( p_count => x_msg_count
232 , p_data => x_msg_data
233 );
234
235
236 oe_debug_pub.add('END Default_Attributes in QPXFPRAB');
237
238 EXCEPTION
239
240 WHEN FND_API.G_EXC_ERROR THEN
241
242 x_return_status := FND_API.G_RET_STS_ERROR;
243
244 -- Get message count and data
245
246 OE_MSG_PUB.Count_And_Get
247 ( p_count => x_msg_count
248 , p_data => x_msg_data
249 );
250
251 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
252
253 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
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 WHEN OTHERS THEN
263
264 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
265
266 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
267 THEN
268 OE_MSG_PUB.Add_Exc_Msg
269 ( G_PKG_NAME
270 , 'Default_Attributes'
271 );
272 END IF;
273
274 -- Get message count and data
275
276 OE_MSG_PUB.Count_And_Get
277 ( p_count => x_msg_count
278 , p_data => x_msg_data
279 );
280
281 END Default_Attributes;
282
283 -- Procedure : Change_Attribute
284 --
285
286 PROCEDURE Change_Attribute
287 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
288 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
289 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
290 , p_pricing_attribute_id IN NUMBER
291 , p_attr_id IN NUMBER
292 , p_attr_value IN VARCHAR2
293 , p_attribute1 IN VARCHAR2
294 , p_attribute10 IN VARCHAR2
295 , p_attribute11 IN VARCHAR2
296 , p_attribute12 IN VARCHAR2
297 , p_attribute13 IN VARCHAR2
298 , p_attribute14 IN VARCHAR2
299 , p_attribute15 IN VARCHAR2
300 , p_attribute2 IN VARCHAR2
301 , p_attribute3 IN VARCHAR2
302 , p_attribute4 IN VARCHAR2
303 , p_attribute5 IN VARCHAR2
304 , p_attribute6 IN VARCHAR2
305 , p_attribute7 IN VARCHAR2
306 , p_attribute8 IN VARCHAR2
307 , p_attribute9 IN VARCHAR2
308 , p_context IN VARCHAR2
309 , x_accumulate_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
310 , x_attribute1 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
311 , x_attribute10 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
312 , x_attribute11 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
313 , x_attribute12 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
314 , x_attribute13 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
315 , x_attribute14 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
316 , x_attribute15 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
317 , x_attribute2 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
318 , x_attribute3 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
319 , x_attribute4 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
320 , x_attribute5 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
321 , x_attribute6 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
322 , x_attribute7 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
323 , x_attribute8 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
324 , x_attribute9 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
325 , x_attribute_grouping_no OUT NOCOPY /* file.sql.39 change */ NUMBER
326 , x_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
327 , x_excluder_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
328 , x_list_line_id OUT NOCOPY /* file.sql.39 change */ NUMBER
329 , x_pricing_attribute OUT NOCOPY /* file.sql.39 change */ VARCHAR2
330 , x_pricing_attribute_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
331 , x_pricing_attribute_id OUT NOCOPY /* file.sql.39 change */ NUMBER
332 , x_pricing_attr_value_from OUT NOCOPY /* file.sql.39 change */ VARCHAR2
333 , x_pricing_attr_value_to OUT NOCOPY /* file.sql.39 change */ VARCHAR2
334 , x_product_attribute OUT NOCOPY /* file.sql.39 change */ VARCHAR2
335 , x_product_attribute_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
336 , x_product_attr_value OUT NOCOPY /* file.sql.39 change */ VARCHAR2
337 , x_product_uom_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
338 , x_accumulate OUT NOCOPY /* file.sql.39 change */ VARCHAR2
339 , x_excluder OUT NOCOPY /* file.sql.39 change */ VARCHAR2
340 , x_list_line OUT NOCOPY /* file.sql.39 change */ VARCHAR2
341 , x_product_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
342 , x_product_attribute_datatype OUT NOCOPY /* file.sql.39 change */ VARCHAR2
343 , x_pricing_attribute_datatype OUT NOCOPY /* file.sql.39 change */ VARCHAR2
344 , x_comparison_operator_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
345 )
346 IS
347 l_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
348 l_old_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
349 l_PRICING_ATTR_val_rec QP_Modifiers_PUB.Pricing_Attr_Val_Rec_Type;
350 l_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
351 l_old_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
352 l_control_rec QP_GLOBALS.Control_Rec_Type;
353 l_return_status VARCHAR2(1);
354 l_x_MODIFIER_LIST_rec QP_Modifiers_PUB.Modifier_List_Rec_Type;
355 l_x_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
356 l_x_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
357 l_x_QUALIFIERS_rec QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
358 l_x_QUALIFIERS_tbl QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
359 l_x_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
360 l_x_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
361 BEGIN
362
363 oe_debug_pub.add('BEGIN Change_Attribute in QPXFPRAB');
364
365 -- Set control flags.
366
367 l_control_rec.controlled_operation := TRUE;
368 l_control_rec.change_attributes := TRUE;
369
370 l_control_rec.default_attributes := FALSE;
371 l_control_rec.validate_entity := FALSE;
372 l_control_rec.write_to_DB := FALSE;
373 l_control_rec.process := FALSE;
374
375 -- Instruct API to retain its caches
376
377 l_control_rec.clear_api_cache := FALSE;
378 l_control_rec.clear_api_requests := FALSE;
379
380 -- Read PRICING_ATTR from cache
381 OE_Debug_PUB.add('here');
382
383 l_PRICING_ATTR_rec := Get_PRICING_ATTR
384 ( p_db_record => FALSE
385 , p_pricing_attribute_id => p_pricing_attribute_id
386 );
387
388 OE_Debug_PUB.add('here1');
389 l_old_PRICING_ATTR_rec := l_PRICING_ATTR_rec;
390
391 IF p_attr_id = QP_Pricing_Attr_Util.G_ACCUMULATE THEN
392 l_PRICING_ATTR_rec.accumulate_flag := p_attr_value;
393 ELSIF p_attr_id = QP_Pricing_Attr_Util.G_ATTRIBUTE_GROUPING_NO THEN
394 l_PRICING_ATTR_rec.attribute_grouping_no := TO_NUMBER(p_attr_value);
395 ELSIF p_attr_id = QP_Pricing_Attr_Util.G_EXCLUDER THEN
396 l_PRICING_ATTR_rec.excluder_flag := p_attr_value;
397 OE_Debug_PUB.add(p_attr_value||'exclude here1');
398 ELSIF p_attr_id = QP_Pricing_Attr_Util.G_LIST_LINE THEN
399 l_PRICING_ATTR_rec.list_line_id := TO_NUMBER(p_attr_value);
400 ELSIF p_attr_id = QP_Pricing_Attr_Util.G_PRICING_ATTRIBUTE THEN
401 OE_Debug_PUB.add(p_attr_id||'attr_value'||QP_Pricing_attr_Util.G_PRICING_ATTRIBUTE);
402 l_PRICING_ATTR_rec.pricing_attribute := p_attr_value;
403 ELSIF p_attr_id = QP_Pricing_Attr_Util.G_PRICING_ATTRIBUTE_CONTEXT THEN
404 l_PRICING_ATTR_rec.pricing_attribute_context := p_attr_value;
405 ELSIF p_attr_id = QP_Pricing_Attr_Util.G_PRICING_ATTRIBUTE THEN
406 l_PRICING_ATTR_rec.pricing_attribute_id := TO_NUMBER(p_attr_value);
407 ELSIF p_attr_id = QP_Pricing_Attr_Util.G_PRICING_ATTR_VALUE_FROM THEN
408 l_PRICING_ATTR_rec.pricing_attr_value_from := p_attr_value;
409 ELSIF p_attr_id = QP_Pricing_Attr_Util.G_PRICING_ATTR_VALUE_TO THEN
410 l_PRICING_ATTR_rec.pricing_attr_value_to := p_attr_value;
411 ELSIF p_attr_id = QP_Pricing_Attr_Util.G_PRODUCT_ATTRIBUTE THEN
412 l_PRICING_ATTR_rec.product_attribute := p_attr_value;
413 ELSIF p_attr_id = QP_Pricing_Attr_Util.G_PRODUCT_ATTRIBUTE_CONTEXT THEN
414 l_PRICING_ATTR_rec.product_attribute_context := p_attr_value;
415 ELSIF p_attr_id = QP_Pricing_Attr_Util.G_PRODUCT_ATTR_VALUE THEN
416 l_PRICING_ATTR_rec.product_attr_value := p_attr_value;
417 ELSIF p_attr_id = QP_Pricing_Attr_Util.G_PRODUCT_UOM THEN
418 l_PRICING_ATTR_rec.product_uom_code := p_attr_value;
419 ELSIF p_attr_id = QP_Pricing_Attr_Util.G_PRODUCT_ATTRIBUTE_DATATYPE THEN
420 l_PRICING_ATTR_rec.product_attribute_datatype := p_attr_value;
421 ELSIF p_attr_id = QP_Pricing_Attr_Util.G_PRICING_ATTRIBUTE_DATATYPE THEN
422 l_PRICING_ATTR_rec.pricing_attribute_datatype := p_attr_value;
423 ELSIF p_attr_id = QP_Pricing_Attr_Util.G_COMPARISON_OPERATOR THEN
424 l_PRICING_ATTR_rec.comparison_operator_code := p_attr_value;
425 ELSIF p_attr_id = QP_Pricing_Attr_Util.G_ATTRIBUTE1
426 OR p_attr_id = QP_Pricing_Attr_Util.G_ATTRIBUTE10
427 OR p_attr_id = QP_Pricing_Attr_Util.G_ATTRIBUTE11
428 OR p_attr_id = QP_Pricing_Attr_Util.G_ATTRIBUTE12
429 OR p_attr_id = QP_Pricing_Attr_Util.G_ATTRIBUTE13
430 OR p_attr_id = QP_Pricing_Attr_Util.G_ATTRIBUTE14
431 OR p_attr_id = QP_Pricing_Attr_Util.G_ATTRIBUTE15
432 OR p_attr_id = QP_Pricing_Attr_Util.G_ATTRIBUTE2
433 OR p_attr_id = QP_Pricing_Attr_Util.G_ATTRIBUTE3
434 OR p_attr_id = QP_Pricing_Attr_Util.G_ATTRIBUTE4
435 OR p_attr_id = QP_Pricing_Attr_Util.G_ATTRIBUTE5
436 OR p_attr_id = QP_Pricing_Attr_Util.G_ATTRIBUTE6
437 OR p_attr_id = QP_Pricing_Attr_Util.G_ATTRIBUTE7
438 OR p_attr_id = QP_Pricing_Attr_Util.G_ATTRIBUTE8
439 OR p_attr_id = QP_Pricing_Attr_Util.G_ATTRIBUTE9
440 OR p_attr_id = QP_Pricing_Attr_Util.G_CONTEXT
441 THEN
442
443 l_PRICING_ATTR_rec.attribute1 := p_attribute1;
444 l_PRICING_ATTR_rec.attribute10 := p_attribute10;
445 l_PRICING_ATTR_rec.attribute11 := p_attribute11;
446 l_PRICING_ATTR_rec.attribute12 := p_attribute12;
447 l_PRICING_ATTR_rec.attribute13 := p_attribute13;
448 l_PRICING_ATTR_rec.attribute14 := p_attribute14;
449 l_PRICING_ATTR_rec.attribute15 := p_attribute15;
450 l_PRICING_ATTR_rec.attribute2 := p_attribute2;
451 l_PRICING_ATTR_rec.attribute3 := p_attribute3;
452 l_PRICING_ATTR_rec.attribute4 := p_attribute4;
453 l_PRICING_ATTR_rec.attribute5 := p_attribute5;
454 l_PRICING_ATTR_rec.attribute6 := p_attribute6;
455 l_PRICING_ATTR_rec.attribute7 := p_attribute7;
456 l_PRICING_ATTR_rec.attribute8 := p_attribute8;
457 l_PRICING_ATTR_rec.attribute9 := p_attribute9;
458 l_PRICING_ATTR_rec.context := p_context;
459
460 ELSE
461
462 -- Unexpected error, unrecognized attribute
463
464 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
465 THEN
466 OE_MSG_PUB.Add_Exc_Msg
467 ( G_PKG_NAME
468 , 'Change_Attribute'
469 , 'Unrecognized attribute'
470 );
471 END IF;
472
473 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
474
475 END IF;
476
477 OE_Debug_PUB.add('operation');
478 -- Set Operation.
479
480 IF FND_API.To_Boolean(l_PRICING_ATTR_rec.db_flag) THEN
481 l_PRICING_ATTR_rec.operation := QP_GLOBALS.G_OPR_UPDATE;
482 ELSE
483 l_PRICING_ATTR_rec.operation := QP_GLOBALS.G_OPR_CREATE;
484 END IF;
485
486 -- Populate PRICING_ATTR table
487
488 l_PRICING_ATTR_tbl(1) := l_PRICING_ATTR_rec;
489 l_old_PRICING_ATTR_tbl(1) := l_old_PRICING_ATTR_rec;
490
491 -- Call QP_Modifiers_PVT.Process_MODIFIERS
492
493 OE_Debug_PUB.add('process mod');
494 QP_Modifiers_PVT.Process_MODIFIERS
495 ( p_api_version_number => 1.0
496 , p_init_msg_list => FND_API.G_TRUE
497 , p_validation_level => FND_API.G_VALID_LEVEL_NONE
498 , x_return_status => l_return_status
499 , x_msg_count => x_msg_count
500 , x_msg_data => x_msg_data
501 , p_control_rec => l_control_rec
502 , p_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl
503 , p_old_PRICING_ATTR_tbl => l_old_PRICING_ATTR_tbl
504 , x_MODIFIER_LIST_rec => l_x_MODIFIER_LIST_rec
505 , x_MODIFIERS_tbl => l_x_MODIFIERS_tbl
506 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
507 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
508 );
509
510 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
511 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
512 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
513 RAISE FND_API.G_EXC_ERROR;
514 END IF;
515
516
517 OE_Debug_PUB.add('after process mod');
518 -- Unload out tbl
519
520 l_x_PRICING_ATTR_rec := l_x_PRICING_ATTR_tbl(1);
521
522 -- Init OUT parameters to missing.
523
524 x_accumulate_flag := FND_API.G_MISS_CHAR;
525 x_attribute1 := FND_API.G_MISS_CHAR;
526 x_attribute10 := FND_API.G_MISS_CHAR;
527 x_attribute11 := FND_API.G_MISS_CHAR;
528 x_attribute12 := FND_API.G_MISS_CHAR;
529 x_attribute13 := FND_API.G_MISS_CHAR;
530 x_attribute14 := FND_API.G_MISS_CHAR;
531 x_attribute15 := FND_API.G_MISS_CHAR;
532 x_attribute2 := FND_API.G_MISS_CHAR;
533 x_attribute3 := FND_API.G_MISS_CHAR;
534 x_attribute4 := FND_API.G_MISS_CHAR;
535 x_attribute5 := FND_API.G_MISS_CHAR;
536 x_attribute6 := FND_API.G_MISS_CHAR;
537 x_attribute7 := FND_API.G_MISS_CHAR;
538 x_attribute8 := FND_API.G_MISS_CHAR;
539 x_attribute9 := FND_API.G_MISS_CHAR;
540 x_attribute_grouping_no := FND_API.G_MISS_NUM;
541 x_context := FND_API.G_MISS_CHAR;
542 x_excluder_flag := FND_API.G_MISS_CHAR;
543 x_list_line_id := FND_API.G_MISS_NUM;
544 x_pricing_attribute := FND_API.G_MISS_CHAR;
545 x_pricing_attribute_context := FND_API.G_MISS_CHAR;
546 x_pricing_attribute_id := FND_API.G_MISS_NUM;
547 x_pricing_attr_value_from := FND_API.G_MISS_CHAR;
548 x_pricing_attr_value_to := FND_API.G_MISS_CHAR;
549 x_product_attribute := FND_API.G_MISS_CHAR;
550 x_product_attribute_context := FND_API.G_MISS_CHAR;
551 x_product_attr_value := FND_API.G_MISS_CHAR;
552 x_product_uom_code := FND_API.G_MISS_CHAR;
553 x_accumulate := FND_API.G_MISS_CHAR;
554 x_excluder := FND_API.G_MISS_CHAR;
555 x_list_line := FND_API.G_MISS_CHAR;
556 x_product_uom := FND_API.G_MISS_CHAR;
557 x_product_attribute_datatype := FND_API.G_MISS_CHAR;
558 x_pricing_attribute_datatype := FND_API.G_MISS_CHAR;
559 x_comparison_operator_code := FND_API.G_MISS_CHAR;
560
561 -- Load display out parameters if any
562
563 l_PRICING_ATTR_val_rec := QP_Pricing_Attr_Util.Get_Values
564 ( p_PRICING_ATTR_rec => l_x_PRICING_ATTR_rec
565 , p_old_PRICING_ATTR_rec => l_PRICING_ATTR_rec
566 );
567
568 -- Return changed attributes.
569
570 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.accumulate_flag,
571 l_PRICING_ATTR_rec.accumulate_flag)
572 THEN
573 x_accumulate_flag := l_x_PRICING_ATTR_rec.accumulate_flag;
574 x_accumulate := l_PRICING_ATTR_val_rec.accumulate;
575 END IF;
576
577 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute1,
578 l_PRICING_ATTR_rec.attribute1)
579 THEN
580 x_attribute1 := l_x_PRICING_ATTR_rec.attribute1;
581 END IF;
582
583 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute10,
584 l_PRICING_ATTR_rec.attribute10)
585 THEN
586 x_attribute10 := l_x_PRICING_ATTR_rec.attribute10;
587 END IF;
588
589 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute11,
590 l_PRICING_ATTR_rec.attribute11)
591 THEN
592 x_attribute11 := l_x_PRICING_ATTR_rec.attribute11;
593 END IF;
594
595 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute12,
596 l_PRICING_ATTR_rec.attribute12)
597 THEN
598 x_attribute12 := l_x_PRICING_ATTR_rec.attribute12;
599 END IF;
600
601 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute13,
602 l_PRICING_ATTR_rec.attribute13)
603 THEN
604 x_attribute13 := l_x_PRICING_ATTR_rec.attribute13;
605 END IF;
606
607 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute14,
608 l_PRICING_ATTR_rec.attribute14)
609 THEN
610 x_attribute14 := l_x_PRICING_ATTR_rec.attribute14;
611 END IF;
612
613 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute15,
614 l_PRICING_ATTR_rec.attribute15)
615 THEN
616 x_attribute15 := l_x_PRICING_ATTR_rec.attribute15;
617 END IF;
618
619 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute2,
620 l_PRICING_ATTR_rec.attribute2)
621 THEN
622 x_attribute2 := l_x_PRICING_ATTR_rec.attribute2;
623 END IF;
624
625 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute3,
626 l_PRICING_ATTR_rec.attribute3)
627 THEN
628 x_attribute3 := l_x_PRICING_ATTR_rec.attribute3;
629 END IF;
630
631 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute4,
632 l_PRICING_ATTR_rec.attribute4)
633 THEN
634 x_attribute4 := l_x_PRICING_ATTR_rec.attribute4;
635 END IF;
636
637 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute5,
638 l_PRICING_ATTR_rec.attribute5)
639 THEN
640 x_attribute5 := l_x_PRICING_ATTR_rec.attribute5;
641 END IF;
642
643 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute6,
644 l_PRICING_ATTR_rec.attribute6)
645 THEN
646 x_attribute6 := l_x_PRICING_ATTR_rec.attribute6;
647 END IF;
648
649 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute7,
650 l_PRICING_ATTR_rec.attribute7)
651 THEN
652 x_attribute7 := l_x_PRICING_ATTR_rec.attribute7;
653 END IF;
654
655 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute8,
656 l_PRICING_ATTR_rec.attribute8)
657 THEN
658 x_attribute8 := l_x_PRICING_ATTR_rec.attribute8;
659 END IF;
660
661 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute9,
662 l_PRICING_ATTR_rec.attribute9)
663 THEN
664 x_attribute9 := l_x_PRICING_ATTR_rec.attribute9;
665 END IF;
666
667 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.attribute_grouping_no,
668 l_PRICING_ATTR_rec.attribute_grouping_no)
669 THEN
670 x_attribute_grouping_no := l_x_PRICING_ATTR_rec.attribute_grouping_no;
671 END IF;
672
673 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.context,
674 l_PRICING_ATTR_rec.context)
675 THEN
676 x_context := l_x_PRICING_ATTR_rec.context;
677 END IF;
678
679 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.excluder_flag,
680 l_PRICING_ATTR_rec.excluder_flag)
681 THEN
682 x_excluder_flag := l_x_PRICING_ATTR_rec.excluder_flag;
683 x_excluder := l_PRICING_ATTR_val_rec.excluder;
684 END IF;
685
686 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.list_line_id,
687 l_PRICING_ATTR_rec.list_line_id)
688 THEN
689 x_list_line_id := l_x_PRICING_ATTR_rec.list_line_id;
690 x_list_line := l_PRICING_ATTR_val_rec.list_line;
691 END IF;
692
693 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.pricing_attribute,
694 l_PRICING_ATTR_rec.pricing_attribute)
695 THEN
696 x_pricing_attribute := l_x_PRICING_ATTR_rec.pricing_attribute;
697 END IF;
698
699 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.pricing_attribute_context,
700 l_PRICING_ATTR_rec.pricing_attribute_context)
701 THEN
702 x_pricing_attribute_context := l_x_PRICING_ATTR_rec.pricing_attribute_context;
703 END IF;
704
705 /* IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.pricing_attribute_id,
706 l_PRICING_ATTR_rec.pricing_attribute_id)
707 THEN
708 x_pricing_attribute_id := l_x_PRICING_ATTR_rec.pricing_attribute_id;
709 x_pricing_attribute := l_PRICING_ATTR_val_rec.pricing_attribute;
710 END IF;
711 */
712 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.pricing_attr_value_from,
713 l_PRICING_ATTR_rec.pricing_attr_value_from)
714 THEN
715 x_pricing_attr_value_from := l_x_PRICING_ATTR_rec.pricing_attr_value_from;
716 END IF;
717
718 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.pricing_attr_value_to,
719 l_PRICING_ATTR_rec.pricing_attr_value_to)
720 THEN
721 x_pricing_attr_value_to := l_x_PRICING_ATTR_rec.pricing_attr_value_to;
722 END IF;
723
724 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.product_attribute,
725 l_PRICING_ATTR_rec.product_attribute)
726 THEN
727 x_product_attribute := l_x_PRICING_ATTR_rec.product_attribute;
728 END IF;
729
730 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.product_attribute_context,
731 l_PRICING_ATTR_rec.product_attribute_context)
732 THEN
733 x_product_attribute_context := l_x_PRICING_ATTR_rec.product_attribute_context;
734 END IF;
735
736 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.product_attr_value,
737 l_PRICING_ATTR_rec.product_attr_value)
738 THEN
739 x_product_attr_value := l_x_PRICING_ATTR_rec.product_attr_value;
740 END IF;
741
742 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.product_uom_code,
743 l_PRICING_ATTR_rec.product_uom_code)
744 THEN
745 x_product_uom_code := l_x_PRICING_ATTR_rec.product_uom_code;
746 x_product_uom := l_PRICING_ATTR_val_rec.product_uom;
747 END IF;
748
749 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.product_attribute_datatype,
750 l_PRICING_ATTR_rec.product_attribute_datatype)
751 THEN
752 x_product_attribute_datatype := l_x_PRICING_ATTR_rec.product_attribute_datatype;
753 END IF;
754
755 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.pricing_attribute_datatype,
756 l_PRICING_ATTR_rec.pricing_attribute_datatype)
757 THEN
758 x_pricing_attribute_datatype := l_x_PRICING_ATTR_rec.pricing_attribute_datatype;
759 END IF;
760
761 IF NOT QP_GLOBALS.Equal(l_x_PRICING_ATTR_rec.comparison_operator_code,
762 l_PRICING_ATTR_rec.comparison_operator_code)
763 THEN
764 x_comparison_operator_code := l_x_PRICING_ATTR_rec.comparison_operator_code;
765 END IF;
766
767
768 -- Write to cache.
769
770 Write_PRICING_ATTR
771 ( p_PRICING_ATTR_rec => l_x_PRICING_ATTR_rec
772 );
773
774 -- Set return status.
775
776 x_return_status := FND_API.G_RET_STS_SUCCESS;
777
778 -- Get message count and data
779
780 OE_MSG_PUB.Count_And_Get
781 ( p_count => x_msg_count
782 , p_data => x_msg_data
783 );
784
785 oe_debug_pub.add('END Change_Attribute in QPXFPRAB');
786
787 EXCEPTION
788
789 WHEN FND_API.G_EXC_ERROR THEN
790
791 x_return_status := FND_API.G_RET_STS_ERROR;
792
793 -- Get message count and data
794
795 OE_MSG_PUB.Count_And_Get
796 ( p_count => x_msg_count
797 , p_data => x_msg_data
798 );
799
800 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
801
802 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
803
804 -- Get message count and data
805
806 OE_MSG_PUB.Count_And_Get
807 ( p_count => x_msg_count
808 , p_data => x_msg_data
809 );
810
811 WHEN OTHERS THEN
812
813 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
814
815 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
816 THEN
817 OE_MSG_PUB.Add_Exc_Msg
818 ( G_PKG_NAME
819 , 'Change_Attribute'
820 );
821 END IF;
822
823 -- Get message count and data
824
825 OE_MSG_PUB.Count_And_Get
826 ( p_count => x_msg_count
827 , p_data => x_msg_data
828 );
829
830 END Change_Attribute;
831
832 -- Procedure Validate_And_Write
833 --
834
835 PROCEDURE Validate_And_Write
836 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
837 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
838 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
839 , p_pricing_attribute_id IN NUMBER
840 , x_creation_date OUT NOCOPY /* file.sql.39 change */ DATE
841 , x_created_by OUT NOCOPY /* file.sql.39 change */ NUMBER
842 , x_last_update_date OUT NOCOPY /* file.sql.39 change */ DATE
843 , x_last_updated_by OUT NOCOPY /* file.sql.39 change */ NUMBER
844 , x_last_update_login OUT NOCOPY /* file.sql.39 change */ NUMBER
845 )
846 IS
847 l_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
848 l_old_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
849 l_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
850 l_old_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
851 l_control_rec QP_GLOBALS.Control_Rec_Type;
852 l_return_status VARCHAR2(1);
853 l_x_MODIFIER_LIST_rec QP_Modifiers_PUB.Modifier_List_Rec_Type;
854 l_x_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
855 l_x_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
856 l_x_QUALIFIERS_rec QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
857 l_x_QUALIFIERS_tbl QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
858 l_x_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
859 l_x_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
860 BEGIN
861
862 oe_debug_pub.add('BEGIN Validate_And_Write in QPXFPRAB');
863
864 -- Set control flags.
865
866 l_control_rec.controlled_operation := TRUE;
867 l_control_rec.validate_entity := TRUE;
868 l_control_rec.write_to_DB := TRUE;
869
870 l_control_rec.default_attributes := FALSE;
871 l_control_rec.change_attributes := FALSE;
872 l_control_rec.process := FALSE;
873
874 -- Instruct API to retain its caches
875
876 l_control_rec.clear_api_cache := FALSE;
877 l_control_rec.clear_api_requests := FALSE;
878
879 -- Read PRICING_ATTR from cache
880
881 l_old_PRICING_ATTR_rec := Get_PRICING_ATTR
882 ( p_db_record => TRUE
883 , p_pricing_attribute_id => p_pricing_attribute_id
884 );
885
886 l_PRICING_ATTR_rec := Get_PRICING_ATTR
887 ( p_db_record => FALSE
888 , p_pricing_attribute_id => p_pricing_attribute_id
889 );
890
891 -- Set Operation.
892
893 IF FND_API.To_Boolean(l_PRICING_ATTR_rec.db_flag) THEN
894 l_PRICING_ATTR_rec.operation := QP_GLOBALS.G_OPR_UPDATE;
895 ELSE
896 l_PRICING_ATTR_rec.operation := QP_GLOBALS.G_OPR_CREATE;
897 END IF;
898
899 -- Populate PRICING_ATTR table
900
901 l_PRICING_ATTR_tbl(1) := l_PRICING_ATTR_rec;
902 l_old_PRICING_ATTR_tbl(1) := l_old_PRICING_ATTR_rec;
903
904 -- Call QP_Modifiers_PVT.Process_MODIFIERS
905
906 QP_Modifiers_PVT.Process_MODIFIERS
907 ( p_api_version_number => 1.0
908 , p_init_msg_list => FND_API.G_TRUE
909 , x_return_status => l_return_status
910 , x_msg_count => x_msg_count
911 , x_msg_data => x_msg_data
912 , p_control_rec => l_control_rec
913 , p_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl
914 , p_old_PRICING_ATTR_tbl => l_old_PRICING_ATTR_tbl
915 , x_MODIFIER_LIST_rec => l_x_MODIFIER_LIST_rec
916 , x_MODIFIERS_tbl => l_x_MODIFIERS_tbl
917 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
918 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
919 );
920
921 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
922 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
923 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
924 RAISE FND_API.G_EXC_ERROR;
925 END IF;
926
927
928 -- Load OUT parameters.
929
930 l_x_PRICING_ATTR_rec := l_x_PRICING_ATTR_tbl(1);
931
932 x_creation_date := l_x_PRICING_ATTR_rec.creation_date;
933 x_created_by := l_x_PRICING_ATTR_rec.created_by;
934 x_last_update_date := l_x_PRICING_ATTR_rec.last_update_date;
935 x_last_updated_by := l_x_PRICING_ATTR_rec.last_updated_by;
936 x_last_update_login := l_x_PRICING_ATTR_rec.last_update_login;
937
938 -- Clear PRICING_ATTR record cache
939
940 Clear_PRICING_ATTR;
941
942 -- Keep track of performed operations.
943
944 l_old_PRICING_ATTR_rec.operation := l_PRICING_ATTR_rec.operation;
945
946
947 -- Set return status.
948
949 x_return_status := FND_API.G_RET_STS_SUCCESS;
950
951 -- Get message count and data
952
953 OE_MSG_PUB.Count_And_Get
954 ( p_count => x_msg_count
955 , p_data => x_msg_data
956 );
957
958 oe_debug_pub.add('END Validate_And_Write in QPXFPRAB');
959
960 EXCEPTION
961
962 WHEN FND_API.G_EXC_ERROR THEN
963
964 x_return_status := FND_API.G_RET_STS_ERROR;
965
966 -- Get message count and data
967
968 OE_MSG_PUB.Count_And_Get
969 ( p_count => x_msg_count
970 , p_data => x_msg_data
971 );
972
973 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
974
975 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
976
977 -- Get message count and data
978
979 OE_MSG_PUB.Count_And_Get
980 ( p_count => x_msg_count
981 , p_data => x_msg_data
982 );
983
984 WHEN OTHERS THEN
985
986 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
987
988 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
989 THEN
990 OE_MSG_PUB.Add_Exc_Msg
991 ( G_PKG_NAME
992 , 'Validate_And_Write'
993 );
994 END IF;
995
996 -- Get message count and data
997
998 OE_MSG_PUB.Count_And_Get
999 ( p_count => x_msg_count
1000 , p_data => x_msg_data
1001 );
1002
1003 END Validate_And_Write;
1004
1005 -- Procedure Delete_Row
1006 --
1007
1008 PROCEDURE Delete_Row
1009 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1010 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1011 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1012 , p_pricing_attribute_id IN NUMBER
1013 )
1014 IS
1015 l_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
1016 l_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
1017 l_control_rec QP_GLOBALS.Control_Rec_Type;
1018 l_return_status VARCHAR2(1);
1019 l_x_MODIFIER_LIST_rec QP_Modifiers_PUB.Modifier_List_Rec_Type;
1020 l_x_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
1021 l_x_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
1022 l_x_QUALIFIERS_rec QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
1023 l_x_QUALIFIERS_tbl QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
1024 l_x_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
1025 l_x_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
1026 BEGIN
1027
1028 oe_debug_pub.add('BEGIN Delete_Row in QPXFPRAB');
1029
1030 -- Set control flags.
1031
1032 l_control_rec.controlled_operation := TRUE;
1033 l_control_rec.validate_entity := TRUE;
1034 l_control_rec.write_to_DB := TRUE;
1035
1036 l_control_rec.default_attributes := FALSE;
1037 l_control_rec.change_attributes := FALSE;
1038 l_control_rec.process := FALSE; -- Changed back to false. Regression bug of 5261328
1039
1040 -- Instruct API to retain its caches
1041
1042 l_control_rec.clear_api_cache := FALSE;
1043 l_control_rec.clear_api_requests := FALSE;
1044
1045 -- Read DB record from cache
1046
1047 l_PRICING_ATTR_rec := Get_PRICING_ATTR
1048 ( p_db_record => TRUE
1049 , p_pricing_attribute_id => p_pricing_attribute_id
1050 );
1051
1052 -- Set Operation.
1053
1054 l_PRICING_ATTR_rec.operation := QP_GLOBALS.G_OPR_DELETE;
1055
1056 -- Populate PRICING_ATTR table
1057
1058 l_PRICING_ATTR_tbl(1) := l_PRICING_ATTR_rec;
1059
1060 -- Call QP_Modifiers_PVT.Process_MODIFIERS
1061 qp_delayed_requests_PVT.log_request(
1062 p_entity_code => QP_GLOBALS.G_ENTITY_Price_List_Line,
1063 p_entity_id => l_PRICING_ATTR_rec.list_line_id,
1064 p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_Price_List_Line,
1065 p_requesting_entity_id => l_PRICING_ATTR_rec.list_line_id,
1066 p_request_type =>QP_GLOBALS.G_UPDATE_LINE_QUAL_IND,
1067 x_return_status => l_return_status);
1068
1069 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1070
1071 oe_debug_pub.add('failed in logging a delayed request in delete_row ');
1072
1073 RAISE FND_API.G_EXC_ERROR;
1074
1075 END IF;
1076
1077
1078 QP_Modifiers_PVT.Process_MODIFIERS
1079 ( p_api_version_number => 1.0
1080 , p_init_msg_list => FND_API.G_TRUE
1081 , x_return_status => l_return_status
1082 , x_msg_count => x_msg_count
1083 , x_msg_data => x_msg_data
1084 , p_control_rec => l_control_rec
1085 , p_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl
1086 , x_MODIFIER_LIST_rec => l_x_MODIFIER_LIST_rec
1087 , x_MODIFIERS_tbl => l_x_MODIFIERS_tbl
1088 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
1089 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
1090 );
1091
1092 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1093 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1094 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1095 RAISE FND_API.G_EXC_ERROR;
1096 END IF;
1097
1098
1099 -- Clear PRICING_ATTR record cache
1100
1101 Clear_PRICING_ATTR;
1102
1103 -- Set return status.
1104
1105 x_return_status := FND_API.G_RET_STS_SUCCESS;
1106
1107 -- Get message count and data
1108
1109 OE_MSG_PUB.Count_And_Get
1110 ( p_count => x_msg_count
1111 , p_data => x_msg_data
1112 );
1113
1114 oe_debug_pub.add('END Delete_Row in QPXFPRAB');
1115
1116 EXCEPTION
1117
1118 WHEN FND_API.G_EXC_ERROR THEN
1119
1120 x_return_status := FND_API.G_RET_STS_ERROR;
1121
1122 -- Get message count and data
1123
1124 OE_MSG_PUB.Count_And_Get
1125 ( p_count => x_msg_count
1126 , p_data => x_msg_data
1127 );
1128
1129 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1130
1131 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1132
1133 -- Get message count and data
1134
1135 OE_MSG_PUB.Count_And_Get
1136 ( p_count => x_msg_count
1137 , p_data => x_msg_data
1138 );
1139
1140 WHEN OTHERS THEN
1141
1142 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1143
1144 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1145 THEN
1146 OE_MSG_PUB.Add_Exc_Msg
1147 ( G_PKG_NAME
1148 , 'Delete_Row'
1149 );
1150 END IF;
1151
1152 -- Get message count and data
1153
1154 OE_MSG_PUB.Count_And_Get
1155 ( p_count => x_msg_count
1156 , p_data => x_msg_data
1157 );
1158
1159 END Delete_Row;
1160
1161 -- Procedure Process_Entity
1162 --
1163
1164 PROCEDURE Process_Entity
1165 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1166 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1167 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1168 )
1169 IS
1170 l_control_rec QP_GLOBALS.Control_Rec_Type;
1171 l_return_status VARCHAR2(1);
1172 l_x_MODIFIER_LIST_rec QP_Modifiers_PUB.Modifier_List_Rec_Type;
1173 l_x_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
1174 l_x_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
1175 l_x_QUALIFIERS_rec QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
1176 l_x_QUALIFIERS_tbl QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
1177 l_x_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
1178 l_x_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
1179 BEGIN
1180
1181 oe_debug_pub.add('BEGIN Process_Entity in QPXFPRAB');
1182
1183 -- Set control flags.
1184
1185 l_control_rec.controlled_operation := TRUE;
1186 l_control_rec.process := TRUE;
1187 l_control_rec.process_entity := QP_GLOBALS.G_ENTITY_PRICING_ATTR;
1188
1189 l_control_rec.default_attributes := FALSE;
1190 l_control_rec.change_attributes := FALSE;
1191 l_control_rec.validate_entity := FALSE;
1192 l_control_rec.write_to_DB := FALSE;
1193
1194 -- Instruct API to clear its request table
1195
1196 l_control_rec.clear_api_cache := FALSE;
1197 l_control_rec.clear_api_requests := FALSE;
1198
1199 -- Call QP_Modifiers_PVT.Process_MODIFIERS
1200
1201 QP_Modifiers_PVT.Process_MODIFIERS
1202 ( p_api_version_number => 1.0
1203 , p_init_msg_list => FND_API.G_TRUE
1204 , x_return_status => l_return_status
1205 , x_msg_count => x_msg_count
1206 , x_msg_data => x_msg_data
1207 , p_control_rec => l_control_rec
1208 , x_MODIFIER_LIST_rec => l_x_MODIFIER_LIST_rec
1209 , x_MODIFIERS_tbl => l_x_MODIFIERS_tbl
1210 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
1211 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
1212 );
1213
1214 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1215 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1216 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1217 RAISE FND_API.G_EXC_ERROR;
1218 END IF;
1219
1220
1221 -- Set return status.
1222
1223 x_return_status := FND_API.G_RET_STS_SUCCESS;
1224
1225 -- Get message count and data
1226
1227 OE_MSG_PUB.Count_And_Get
1228 ( p_count => x_msg_count
1229 , p_data => x_msg_data
1230 );
1231
1232 oe_debug_pub.add('END Process_Entity in QPXFPRAB');
1233
1234 EXCEPTION
1235
1236 WHEN FND_API.G_EXC_ERROR THEN
1237
1238 x_return_status := FND_API.G_RET_STS_ERROR;
1239
1240 -- Get message count and data
1241
1242 OE_MSG_PUB.Count_And_Get
1243 ( p_count => x_msg_count
1244 , p_data => x_msg_data
1245 );
1246
1247 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1248
1249 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1250
1251 -- Get message count and data
1252
1253 OE_MSG_PUB.Count_And_Get
1254 ( p_count => x_msg_count
1255 , p_data => x_msg_data
1256 );
1257
1258 WHEN OTHERS THEN
1259
1260 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1261
1262 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1263 THEN
1264 OE_MSG_PUB.Add_Exc_Msg
1265 ( G_PKG_NAME
1266 , 'Process_Entity'
1267 );
1268 END IF;
1269
1270 -- Get message count and data
1271
1272 OE_MSG_PUB.Count_And_Get
1273 ( p_count => x_msg_count
1274 , p_data => x_msg_data
1275 );
1276
1277 END Process_Entity;
1278
1279 -- Procedure lock_Row
1280 --
1281
1282 PROCEDURE Lock_Row
1283 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1284 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1285 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1286 , p_accumulate_flag IN VARCHAR2
1287 , p_attribute1 IN VARCHAR2
1288 , p_attribute10 IN VARCHAR2
1289 , p_attribute11 IN VARCHAR2
1290 , p_attribute12 IN VARCHAR2
1291 , p_attribute13 IN VARCHAR2
1292 , p_attribute14 IN VARCHAR2
1293 , p_attribute15 IN VARCHAR2
1294 , p_attribute2 IN VARCHAR2
1295 , p_attribute3 IN VARCHAR2
1296 , p_attribute4 IN VARCHAR2
1297 , p_attribute5 IN VARCHAR2
1298 , p_attribute6 IN VARCHAR2
1299 , p_attribute7 IN VARCHAR2
1300 , p_attribute8 IN VARCHAR2
1301 , p_attribute9 IN VARCHAR2
1302 , p_attribute_grouping_no IN NUMBER
1303 , p_context IN VARCHAR2
1304 , p_created_by IN NUMBER
1305 , p_creation_date IN DATE
1306 , p_excluder_flag IN VARCHAR2
1307 , p_last_updated_by IN NUMBER
1308 , p_last_update_date IN DATE
1309 , p_last_update_login IN NUMBER
1310 , p_list_line_id IN NUMBER
1311 , p_pricing_attribute IN VARCHAR2
1312 , p_pricing_attribute_context IN VARCHAR2
1313 , p_pricing_attribute_id IN NUMBER
1314 , p_pricing_attr_value_from IN VARCHAR2
1315 , p_pricing_attr_value_to IN VARCHAR2
1316 , p_product_attribute IN VARCHAR2
1317 , p_product_attribute_context IN VARCHAR2
1318 , p_product_attr_value IN VARCHAR2
1319 , p_product_uom_code IN VARCHAR2
1320 , p_program_application_id IN NUMBER
1321 , p_program_id IN NUMBER
1322 , p_program_update_date IN DATE
1323 , p_request_id IN NUMBER
1324 , p_product_attribute_datatype IN VARCHAR2
1325 , p_pricing_attribute_datatype IN VARCHAR2
1326 , p_comparison_operator_code IN VARCHAR2
1327 )
1328 IS
1329 l_return_status VARCHAR2(1);
1330 l_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
1331 l_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
1332 l_x_MODIFIER_LIST_rec QP_Modifiers_PUB.Modifier_List_Rec_Type;
1333 l_x_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
1334 l_x_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
1335 l_x_QUALIFIERS_rec QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
1336 l_x_QUALIFIERS_tbl QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
1337 l_x_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
1338 l_x_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
1339 BEGIN
1340
1341 oe_debug_pub.add('BEGIN Lock_Row in QPXFPRAB');
1342 oe_debug_pub.add('BEGIN Lock_Row in QPXFPRAB');
1343
1344 -- Load PRICING_ATTR record
1345
1346 l_PRICING_ATTR_rec.accumulate_flag := p_accumulate_flag;
1347 l_PRICING_ATTR_rec.attribute1 := p_attribute1;
1348 l_PRICING_ATTR_rec.attribute10 := p_attribute10;
1349 l_PRICING_ATTR_rec.attribute11 := p_attribute11;
1350 l_PRICING_ATTR_rec.attribute12 := p_attribute12;
1351 l_PRICING_ATTR_rec.attribute13 := p_attribute13;
1352 l_PRICING_ATTR_rec.attribute14 := p_attribute14;
1353 l_PRICING_ATTR_rec.attribute15 := p_attribute15;
1354 l_PRICING_ATTR_rec.attribute2 := p_attribute2;
1355 l_PRICING_ATTR_rec.attribute3 := p_attribute3;
1356 l_PRICING_ATTR_rec.attribute4 := p_attribute4;
1357 l_PRICING_ATTR_rec.attribute5 := p_attribute5;
1358 l_PRICING_ATTR_rec.attribute6 := p_attribute6;
1359 l_PRICING_ATTR_rec.attribute7 := p_attribute7;
1360 l_PRICING_ATTR_rec.attribute8 := p_attribute8;
1361 l_PRICING_ATTR_rec.attribute9 := p_attribute9;
1362 l_PRICING_ATTR_rec.attribute_grouping_no := p_attribute_grouping_no;
1363 l_PRICING_ATTR_rec.context := p_context;
1364 l_PRICING_ATTR_rec.created_by := p_created_by;
1365 l_PRICING_ATTR_rec.creation_date := p_creation_date;
1366 l_PRICING_ATTR_rec.excluder_flag := p_excluder_flag;
1367 l_PRICING_ATTR_rec.last_updated_by := p_last_updated_by;
1368 l_PRICING_ATTR_rec.last_update_date := p_last_update_date;
1369 l_PRICING_ATTR_rec.last_update_login := p_last_update_login;
1370 l_PRICING_ATTR_rec.list_line_id := p_list_line_id;
1371 l_PRICING_ATTR_rec.pricing_attribute := p_pricing_attribute;
1372 l_PRICING_ATTR_rec.pricing_attribute_context := p_pricing_attribute_context;
1373 l_PRICING_ATTR_rec.pricing_attribute_id := p_pricing_attribute_id;
1374 l_PRICING_ATTR_rec.pricing_attr_value_from := p_pricing_attr_value_from;
1375 l_PRICING_ATTR_rec.pricing_attr_value_to := p_pricing_attr_value_to;
1376 l_PRICING_ATTR_rec.product_attribute := p_product_attribute;
1377 l_PRICING_ATTR_rec.product_attribute_context := p_product_attribute_context;
1378 l_PRICING_ATTR_rec.product_attr_value := p_product_attr_value;
1379 l_PRICING_ATTR_rec.product_uom_code := p_product_uom_code;
1380 l_PRICING_ATTR_rec.program_application_id := p_program_application_id;
1381 l_PRICING_ATTR_rec.program_id := p_program_id;
1382 l_PRICING_ATTR_rec.program_update_date := p_program_update_date;
1383 l_PRICING_ATTR_rec.request_id := p_request_id;
1384 l_PRICING_ATTR_rec.product_attribute_datatype := p_product_attribute_datatype;
1385 l_PRICING_ATTR_rec.pricing_attribute_datatype := p_pricing_attribute_datatype;
1386 l_PRICING_ATTR_rec.comparison_operator_code := p_comparison_operator_code;
1387 l_PRICING_ATTR_rec.operation := QP_GLOBALS.G_OPR_LOCK;
1388
1389 -- Populate PRICING_ATTR table
1390
1391 l_PRICING_ATTR_tbl(1) := l_PRICING_ATTR_rec;
1392
1393 -- Call QP_Modifiers_PVT.Lock_MODIFIERS
1394
1395 QP_Modifiers_PVT.Lock_MODIFIERS
1396 ( p_api_version_number => 1.0
1397 , p_init_msg_list => FND_API.G_TRUE
1398 , x_return_status => l_return_status
1399 , x_msg_count => x_msg_count
1400 , x_msg_data => x_msg_data
1401 , p_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl
1402 , x_MODIFIER_LIST_rec => l_x_MODIFIER_LIST_rec
1403 , x_MODIFIERS_tbl => l_x_MODIFIERS_tbl
1404 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
1405 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
1406 );
1407
1408 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
1409
1410 -- Set DB flag and write record to cache.
1411
1412 l_x_PRICING_ATTR_rec.db_flag := FND_API.G_TRUE;
1413
1414 Write_PRICING_ATTR
1415 ( p_PRICING_ATTR_rec => l_x_PRICING_ATTR_rec
1416 , p_db_record => TRUE
1417 );
1418
1419 END IF;
1420
1421 -- Set return status.
1422
1423 x_return_status := l_return_status;
1424
1425 -- Get message count and data
1426
1427 OE_MSG_PUB.Count_And_Get
1428 ( p_count => x_msg_count
1429 , p_data => x_msg_data
1430 );
1431
1432
1433 oe_debug_pub.add('END Lock_Row in QPXFPRAB');
1434
1435 EXCEPTION
1436
1437 WHEN OTHERS THEN
1438
1439 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1440 THEN
1441 OE_MSG_PUB.Add_Exc_Msg
1442 ( G_PKG_NAME
1443 , 'Lock_Row'
1444 );
1445 END IF;
1446
1447 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1448
1449 -- Get message count and data
1450
1451 OE_MSG_PUB.Count_And_Get
1452 ( p_count => x_msg_count
1453 , p_data => x_msg_data
1454 );
1455
1456
1457
1458 END Lock_Row;
1459
1460 -- Procedures maintaining PRICING_ATTR record cache.
1461
1462 PROCEDURE Write_PRICING_ATTR
1463 ( p_PRICING_ATTR_rec IN QP_Modifiers_PUB.Pricing_Attr_Rec_Type
1464 , p_db_record IN BOOLEAN := FALSE
1465 )
1466 IS
1467 BEGIN
1468
1469 oe_debug_pub.add('BEGIN Write_PRICING_ATTR in QPXFPRAB');
1470
1471 g_PRICING_ATTR_rec := p_PRICING_ATTR_rec;
1472
1473 IF p_db_record THEN
1474
1475 g_db_PRICING_ATTR_rec := p_PRICING_ATTR_rec;
1476
1477 END IF;
1478
1479 oe_debug_pub.add('END Write_PRICING_ATTR in QPXFPRAB');
1480
1481 END Write_Pricing_Attr;
1482
1483 FUNCTION Get_PRICING_ATTR
1484 ( p_db_record IN BOOLEAN := FALSE
1485 , p_pricing_attribute_id IN NUMBER
1486 )
1487 RETURN QP_Modifiers_PUB.Pricing_Attr_Rec_Type
1488 IS
1489 BEGIN
1490 OE_Debug_PUB.Add('Begin Get_Pricing_Attr in QPXFPRAB');
1491
1492 IF p_pricing_attribute_id <> g_PRICING_ATTR_rec.pricing_attribute_id
1493 THEN
1494
1495 -- Query row from DB
1496
1497 g_PRICING_ATTR_rec := QP_Pricing_Attr_Util.Query_Row
1498 ( p_pricing_attribute_id => p_pricing_attribute_id
1499 );
1500
1501 g_PRICING_ATTR_rec.db_flag := FND_API.G_TRUE;
1502
1503 -- Load DB record
1504
1505 g_db_PRICING_ATTR_rec := g_PRICING_ATTR_rec;
1506
1507 END IF;
1508
1509 IF p_db_record THEN
1510
1511 OE_Debug_PUB.Add('ENd Get_Pricing_Attr in QPXFPRAB');
1512 RETURN g_db_PRICING_ATTR_rec;
1513
1514 ELSE
1515
1516 OE_Debug_PUB.Add('else ENd Get_Pricing_Attr in QPXFPRAB');
1517 RETURN g_PRICING_ATTR_rec;
1518
1519 END IF;
1520 EXCEPTION WHEN OTHERS THEN
1521 RETURN g_PRICING_ATTR_rec;
1522
1523 END Get_Pricing_Attr;
1524
1525 PROCEDURE Clear_Pricing_Attr
1526 IS
1527 BEGIN
1528
1529 oe_debug_pub.add('BEGIN Clear_Pricing_Attr in QPXFPRAB');
1530 g_PRICING_ATTR_rec := QP_Modifiers_PUB.G_MISS_PRICING_ATTR_REC;
1531 g_db_PRICING_ATTR_rec := QP_Modifiers_PUB.G_MISS_PRICING_ATTR_REC;
1532
1533 oe_debug_pub.add('END Clear_Pricing_Attr in QPXFPRAB');
1534 END Clear_Pricing_Attr;
1535
1536 --for canonical datafix in tst115
1537 FUNCTION Get_DATATYPE
1538 ( p_flexfield_name IN VARCHAR2
1539 , p_Context IN QP_PRICING_ATTRIBUTES.Pricing_Attribute_Context%type
1540 , p_Attribute IN QP_PRICING_ATTRIBUTES.Pricing_Attribute%Type
1541 )
1542 RETURN QP_PRICING_ATTRIBUTES.Pricing_Attribute_Datatype%Type IS
1543 x_Datatype QP_PRICING_ATTRIBUTES.Pricing_Attribute_Datatype%Type;
1544 l_Segment_Name VARCHAR2(240);
1545 l_vsid NUMBER;
1546 l_Validation_Type VARCHAR2(240);
1547
1548 BEGIN
1549
1550 l_Segment_Name := Get_Segment_Name( p_flexfield_name
1551 , p_context
1552 , p_attribute);
1553
1554 QP_UTIL.Get_Valueset_ID( p_flexfield_name
1555 , p_context
1556 , l_Segment_Name
1557 , l_vsid
1558 , x_datatype
1559 , l_validation_type);
1560
1561 RETURN x_Datatype;
1562
1563 EXCEPTION
1564
1565 When NO_DATA_FOUND Then
1566
1567 Return Null;
1568
1569 When OTHERS Then
1570
1571 Return Null;
1572
1573 END Get_DATATYPE;
1574
1575
1576
1577
1578
1579 FUNCTION Get_MEANING
1580 ( p_lookup_code IN QP_LOOKUPS.lookup_code%type
1581 , p_lookup_type IN QP_LOOKUPS.lookup_type%type
1582 )
1583 RETURN QP_LOOKUPS.Meaning%Type IS
1584 l_Meaning QP_LOOKUPS.Meaning%Type;
1585 BEGIN
1586
1587 select meaning into l_Meaning from qp_lookups where
1588 lookup_code = p_lookup_code and lookup_type = p_lookup_type ;
1589
1590 RETURN l_Meaning;
1591
1592 EXCEPTION
1593
1594 When NO_DATA_FOUND Then
1595
1596 Return Null;
1597
1598 When OTHERS Then
1599
1600 Return Null;
1601
1602 END Get_MEANING;
1603
1604 FUNCTION Get_Pricing_Phase
1605 ( p_pricing_phase_id IN QP_PRICING_PHASES.Pricing_Phase_ID%type
1606 )
1607 RETURN QP_PRICING_PHASES.Name%Type IS
1608 l_Pricing_Phase QP_PRICING_PHASES.Name%Type;
1609 BEGIN
1610
1611 select name into l_Pricing_Phase from QP_Pricing_Phases where
1612 Pricing_Phase_Id = p_Pricing_Phase_Id;
1613
1614 RETURN l_Pricing_Phase;
1615
1616 EXCEPTION
1617
1618 When NO_DATA_FOUND Then
1619
1620 Return Null;
1621
1622 When OTHERS Then
1623
1624 Return Null;
1625
1626 END Get_Pricing_Phase;
1627
1628 FUNCTION Get_Charge_name
1629 ( p_list_header_id IN qp_list_headers_b.list_header_id%type
1630 , p_Charge_Type_code IN QP_CHARGE_LOOKUP.lookup_code%type
1631 , p_Charge_Subtype_code IN QP_LOOKUPS.lookup_code%type
1632 , p_list_line_type_code IN QP_LIST_LINES.list_line_type_code%type
1633 )
1634 RETURN QP_LOOKUPS.Meaning%Type IS
1635 l_Charge_Name QP_LOOKUPS.Meaning%Type;
1636 l_profile_source_system_code qp_list_headers_b.source_system_code%type := fnd_profile.value('QP_SOURCE_SYSTEM_CODE');
1637 l_profile_pte_code qp_list_headers_b.pte_code%type := fnd_profile.value('QP_PRICING_TRANSACTION_ENTITY');
1638 l_source_system_code qp_list_headers_b.source_system_code%type;
1639 l_pte_code qp_list_headers_b.pte_code%type;
1640 BEGIN
1641
1642 IF p_list_line_type_code = 'FREIGHT_CHARGE' THEN
1643
1644 /* Added the validation for freight and spl. charges Bug#4562869 */
1645 qp_util.get_pte_and_ss( p_list_header_id
1646 ,l_pte_code
1647 ,l_source_system_code
1648 );
1649
1650 IF ( l_pte_code = 'PO' and l_source_system_code = 'PO' ) OR ( l_profile_source_system_code = 'PO' and
1651 l_profile_pte_code = 'PO') THEN
1652
1653 SELECT name
1654 INTO l_charge_name
1655 FROM pon_cost_factors_vl
1656 WHERE price_element_type_id > 0
1657 AND NVL(enabled_flag,'Y') <> 'N'
1658 AND TO_CHAR(price_element_type_id) = p_charge_type_code;
1659
1660 ELSIF ( l_pte_code <> 'PO' and l_source_system_code <> 'PO' ) OR ( l_profile_source_system_code <> 'PO' and
1661 l_profile_pte_code <> 'PO') THEN
1662
1663 /* changes made in select statement by dhgupta for bug 2047030 */
1664 /* LKP1 rewritten from qp_charge_lookup to fnd_lookup_values (plus additional
1665 where conditions of the qp_charge_lookup view definition) to get rid of
1666 non-mergable view, bug 4865226 */
1667 SELECT nvl(DECODE(lkp1.lookup_type,'FREIGHT_COST_TYPE',lkp1.meaning,lkp2.meaning),lkp1.meaning)
1668 INTO l_Charge_Name
1669 FROM fnd_lookup_values LKP1, QP_LOOKUPS LKP2
1670 WHERE lkp1.language = userenv('LANG')
1671 and lkp1.security_group_id = 0
1672 and ((lkp1.view_application_id = 661 and
1673 lkp1.lookup_type = 'FREIGHT_CHARGES_TYPE')
1674 or
1675 (lkp1.view_application_id = 665 and
1676 lkp1.lookup_type = 'FREIGHT_COST_TYPE'))
1677 AND lkp1.lookup_code = lkp2.lookup_type(+)
1678 AND lkp1.enabled_flag = 'Y'
1679 AND sysdate BETWEEN NVL(lkp1.start_date_active,sysdate)
1680 AND NVL(lkp1.end_date_active,sysdate)
1681 AND (lkp2.enabled_flag = 'Y' OR lkp2.enabled_flag IS NULL)
1682 AND sysdate BETWEEN NVL(lkp2.start_date_active,sysdate)
1683 AND NVL(lkp2.end_date_active,sysdate)
1684 AND lkp1.lookup_code = p_Charge_Type_Code
1685 AND DECODE(lkp1.lookup_type,'FREIGHT_COST_TYPE','0',NVL(lkp2.lookup_code,0))
1686 = nvl(p_Charge_Subtype_Code, '0');
1687
1688 ELSE
1689
1690 l_Charge_Name := NULL;
1691
1692 END IF;
1693
1694 END IF;
1695
1696 RETURN l_Charge_Name;
1697
1698 EXCEPTION
1699
1700 When NO_DATA_FOUND Then
1701
1702 Return Null;
1703
1704 When OTHERS Then
1705
1706 Return Null;
1707
1708 END Get_Charge_Name;
1709
1710 FUNCTION Get_Formula
1711 ( p_Price_By_Formula_Id IN QP_PRICE_FORMULAS_VL.Price_Formula_ID%type
1712 )
1713 RETURN QP_PRICE_FORMULAS_VL.Name%Type IS
1714 l_Price_By_Formula QP_PRICE_FORMULAS_VL.Name%Type;
1715 BEGIN
1716
1717 select Name into l_Price_By_Formula from QP_Price_Formulas_Vl where
1718 Price_Formula_ID = p_Price_By_Formula_ID;
1719
1720 RETURN l_Price_By_Formula;
1721
1722 EXCEPTION
1723
1724 When NO_DATA_FOUND Then
1725
1726 Return Null;
1727
1728 When OTHERS Then
1729
1730 Return Null;
1731
1732 END Get_Formula;
1733
1734 FUNCTION Get_Expiration_Date
1735 ( p_list_line_id IN QP_LIST_LINES.list_line_id%type
1736 , p_modifier_type_code IN QP_LIST_LINES.list_line_type_code%type
1737 )
1738 RETURN QP_LIST_LINES.Expiration_Date%Type IS
1739 l_Expiration_Date QP_LIST_LINES.Expiration_Date%Type;
1740 BEGIN
1741
1742 select decode(p_modifier_type_code, ql.list_line_type_code, ql.Expiration_Date,
1743 Null) into l_Expiration_Date from QP_LIST_LINES ql where
1744 ql.list_line_id = p_list_line_id;
1745
1746 RETURN l_Expiration_Date;
1747
1748 EXCEPTION
1749
1750 When NO_DATA_FOUND Then
1751
1752 Return Null;
1753
1754 When OTHERS Then
1755
1756 Return Null;
1757
1758 END Get_Expiration_Date;
1759
1760 FUNCTION Get_Exp_Period_Start_Date
1761 ( p_list_line_id IN QP_LIST_LINES.list_line_id%type
1762 , p_modifier_type_code IN QP_LIST_LINES.list_line_type_code%type
1763 )
1764 RETURN QP_LIST_LINES.Expiration_Period_Start_Date%Type IS
1765 l_Exp_Period_Start_Date QP_LIST_LINES.Expiration_Period_Start_Date%Type;
1766 BEGIN
1767
1768 select decode(p_modifier_type_code, ql.list_line_type_code, ql.Expiration_Period_Start_Date,
1769 Null) into l_Exp_Period_Start_Date from QP_LIST_LINES ql where
1770 ql.list_line_id = p_list_line_id;
1771
1772 RETURN l_Exp_Period_Start_Date;
1773
1774 EXCEPTION
1775
1776 When NO_DATA_FOUND Then
1777
1778 Return Null;
1779
1780 When OTHERS Then
1781
1782 Return Null;
1783
1784 END Get_Exp_Period_Start_Date;
1785
1786 FUNCTION Get_Number_Expiration_Periods
1787 ( p_list_line_id IN QP_LIST_LINES.list_line_id%type
1788 , p_modifier_type_code IN QP_LIST_LINES.list_line_type_code%type
1789 )
1790 RETURN QP_LIST_LINES.Number_Expiration_Periods%Type IS
1791 l_Number_Expiration_Periods QP_LIST_LINES.Number_Expiration_Periods%Type;
1792 BEGIN
1793
1794 select decode(p_modifier_type_code, ql.list_line_type_code, ql.Number_Expiration_Periods,
1795 Null) into l_Number_Expiration_Periods from QP_LIST_LINES ql where
1796 ql.list_line_id = p_list_line_id;
1797
1798 RETURN l_Number_Expiration_Periods;
1799
1800 EXCEPTION
1801
1802 When NO_DATA_FOUND Then
1803
1804 Return Null;
1805
1806 When OTHERS Then
1807
1808 Return Null;
1809
1810 END Get_Number_Expiration_Periods;
1811
1812 FUNCTION Get_Expiration_Period_UOM
1813 ( p_list_line_id IN QP_LIST_LINES.list_line_id%type
1814 , p_modifier_type_code IN QP_LIST_LINES.list_line_type_code%type
1815 )
1816 RETURN QP_LIST_LINES.Expiration_Period_UOM%Type IS
1817 l_Expiration_Period_UOM QP_LIST_LINES.Expiration_Period_UOM%Type;
1818 BEGIN
1819
1820 select decode(p_modifier_type_code, ql.list_line_type_code, ql.Expiration_Period_UOM,
1821 Null) into l_Expiration_Period_UOM from QP_LIST_LINES ql where
1822 ql.list_line_id = p_list_line_id;
1823
1824 RETURN l_Expiration_Period_UOM;
1825
1826 EXCEPTION
1827
1828 When NO_DATA_FOUND Then
1829
1830 Return Null;
1831
1832 When OTHERS Then
1833
1834 Return Null;
1835
1836 END Get_Expiration_Period_UOM;
1837
1838 --changes for bug 1496839 to improve performance
1839 FUNCTION Get_Rebate_Txn_Type
1840 ( p_list_line_id IN QP_LIST_LINES.list_line_id%type
1841 , p_modifier_type_code IN QP_LIST_LINES.list_line_type_code%type
1842 , p_list_line_type_code IN QP_LIST_LINES.list_line_type_code%type
1843 , p_rebate_transaction_type_code IN QP_LIST_LINES.REBATE_TRANSACTION_TYPE_CODE%type
1844 )
1845 RETURN QP_LOOKUPS.Meaning%Type IS
1846 l_Rebate_Txn_Type QP_LOOKUPS.Meaning%Type;
1847 BEGIN
1848
1849 select decode(p_modifier_type_code, p_list_line_type_code,
1850 qlook.meaning, Null) into
1851 l_Rebate_Txn_Type from QP_LOOKUPS qlook where
1852 qlook.lookup_type = 'REBATE_TRANSACTION_TYPE_CODE' and
1853 qlook.lookup_code = p_rebate_transaction_type_code;
1854
1855 /*
1856 select decode(p_modifier_type_code, ql.list_line_type_code,
1857 qlook.meaning, Null) into
1858 l_Rebate_Txn_Type from QP_LIST_LINES ql, QP_LOOKUPS qlook where
1859 ql.list_line_id = p_list_line_id and
1860 qlook.lookup_code = ql.rebate_transaction_type_code;
1861 */
1862
1863 RETURN l_Rebate_Txn_Type;
1864
1865 EXCEPTION
1866
1867 When NO_DATA_FOUND Then
1868
1869 Return Null;
1870
1871 When OTHERS Then
1872
1873 Return Null;
1874
1875 END Get_Rebate_Txn_Type;
1876
1877 FUNCTION Get_Benefit_Qty
1878 ( p_list_line_id IN QP_LIST_LINES.list_line_id%type
1879 , p_modifier_type_code IN QP_LIST_LINES.list_line_type_code%type
1880 )
1881 RETURN QP_LIST_LINES.Benefit_Qty%Type IS
1882 l_Benefit_Qty QP_LIST_LINES.Benefit_Qty%Type;
1883 BEGIN
1884
1885 select decode(p_modifier_type_code, ql.list_line_type_code, ql.Benefit_Qty,
1886 Null) into l_Benefit_Qty from QP_LIST_LINES ql where
1887 ql.list_line_id = p_list_line_id;
1888
1889 RETURN l_Benefit_Qty;
1890
1891 EXCEPTION
1892
1893 When NO_DATA_FOUND Then
1894
1895 Return Null;
1896
1897 When OTHERS Then
1898
1899 Return Null;
1900
1901 END Get_Benefit_Qty;
1902
1903 FUNCTION Get_Benefit_UOM_Code
1904 ( p_list_line_id IN QP_LIST_LINES.list_line_id%type
1905 , p_modifier_type_code IN QP_LIST_LINES.list_line_type_code%type
1906 )
1907 RETURN QP_LIST_LINES.Benefit_UOM_Code%Type IS
1908 l_Benefit_UOM_Code QP_LIST_LINES.Benefit_UOM_Code%Type;
1909 BEGIN
1910
1911 select decode(p_modifier_type_code, ql.list_line_type_code, ql.Benefit_UOM_Code,
1912 Null) into l_Benefit_UOM_Code from QP_LIST_LINES ql where
1913 ql.list_line_id = p_list_line_id;
1914
1915 RETURN l_Benefit_UOM_Code;
1916
1917 EXCEPTION
1918
1919 When NO_DATA_FOUND Then
1920
1921 Return Null;
1922
1923 When OTHERS Then
1924
1925 Return Null;
1926
1927 END Get_Benefit_UOM_Code;
1928
1929 PROCEDURE Get_Rltd_Modifier_Flds
1930 (p_List_Line_Id IN QP_LIST_LINES.List_Line_ID%Type
1931 ,x_To_Rltd_Modifier_ID OUT NOCOPY /* file.sql.39 change */ NUMBER
1932 ,x_Rltd_Modifier_Grp_Type OUT NOCOPY /* file.sql.39 change */ NUMBER
1933 ,x_Rltd_Modifier_Grp_No OUT NOCOPY /* file.sql.39 change */ NUMBER
1934 ,x_Rltd_Modifier_ID OUT NOCOPY /* file.sql.39 change */ NUMBER
1935 );
1936
1937 PROCEDURE Get_Rltd_Modifier_Flds
1938 (p_List_Line_Id IN QP_LIST_LINES.List_Line_ID%Type
1939 ,x_To_Rltd_Modifier_ID OUT NOCOPY /* file.sql.39 change */ NUMBER
1940 ,x_Rltd_Modifier_Grp_Type OUT NOCOPY /* file.sql.39 change */ NUMBER
1941 ,x_Rltd_Modifier_Grp_No OUT NOCOPY /* file.sql.39 change */ NUMBER
1942 ,x_Rltd_Modifier_ID OUT NOCOPY /* file.sql.39 change */ NUMBER
1943 ) IS
1944
1945 l_List_Line_Id QP_LIST_LINES.List_Line_ID%Type;
1946 l_To_Rltd_Modifier_ID QP_RLTD_MODIFIERS.To_Rltd_Modifier_ID%Type;
1947 l_Rltd_Modifier_Grp_Type QP_RLTD_MODIFIERS.Rltd_Modifier_Grp_Type%Type;
1948 l_Rltd_Modifier_Grp_No QP_RLTD_MODIFIERS.Rltd_Modifier_Grp_No%Type;
1949 l_Rltd_Modifier_ID QP_RLTD_MODIFIERS.Rltd_Modifier_ID%Type;
1950
1951 BEGIN
1952
1953 select to_rltd_modifier_id,
1954 rltd_modifier_grp_type, rltd_modifier_grp_no, rltd_modifier_id
1955 into x_to_rltd_modifier_id,
1956 x_rltd_modifier_grp_type, x_rltd_modifier_grp_no, x_rltd_modifier_id
1957 from qp_rltd_modifiers
1958 where
1959 from_rltd_modifier_id = p_list_line_id;
1960
1961 EXCEPTION
1962
1963 When NO_DATA_FOUND Then
1964
1965 Null;
1966
1967 When OTHERS Then
1968
1969 Null;
1970
1971 END Get_Rltd_Modifier_Flds;
1972
1973 FUNCTION Get_To_Rltd_Modifier_ID
1974 ( p_list_line_id IN QP_LIST_LINES.List_Line_ID%Type
1975 , p_modifier_type_code IN QP_LIST_LINES.list_line_type_code%type
1976 )
1977 RETURN QP_RLTD_MODIFIERS.To_Rltd_Modifier_ID%Type IS
1978 l_To_Rltd_Modifier_ID QP_RLTD_MODIFIERS.To_Rltd_Modifier_ID%Type;
1979 l_Rltd_Modifier_Grp_Type QP_RLTD_MODIFIERS.Rltd_Modifier_Grp_Type%Type;
1980 l_Rltd_Modifier_Grp_No QP_RLTD_MODIFIERS.Rltd_Modifier_Grp_No%Type;
1981 l_Rltd_Modifier_ID QP_RLTD_MODIFIERS.Rltd_Modifier_ID%Type;
1982 BEGIN
1983
1984 IF p_modifier_type_code = 'CIE' THEN
1985 --only for coupon issue
1986 Get_Rltd_Modifier_Flds(p_List_Line_ID
1987 , l_To_Rltd_Modifier_ID
1988 , l_Rltd_Modifier_Grp_Type
1989 , l_Rltd_Modifier_Grp_No
1990 , l_Rltd_Modifier_ID);
1991 END IF;
1992
1993 RETURN l_To_Rltd_Modifier_ID;
1994
1995 EXCEPTION
1996
1997 When NO_DATA_FOUND Then
1998
1999 Return Null;
2000
2001 When OTHERS Then
2002
2003 Return Null;
2004
2005 END Get_To_Rltd_Modifier_ID;
2006
2007 FUNCTION Get_Rltd_Modifier_ID
2008 ( p_list_line_id IN QP_LIST_LINES.List_Line_ID%Type
2009 , p_modifier_type_code IN QP_LIST_LINES.list_line_type_code%type
2010 )
2011 RETURN QP_RLTD_MODIFIERS.Rltd_Modifier_ID%Type IS
2012 l_To_Rltd_Modifier_ID QP_RLTD_MODIFIERS.To_Rltd_Modifier_ID%Type;
2013 l_Rltd_Modifier_Grp_Type QP_RLTD_MODIFIERS.Rltd_Modifier_Grp_Type%Type;
2014 l_Rltd_Modifier_Grp_No QP_RLTD_MODIFIERS.Rltd_Modifier_Grp_No%Type;
2015 l_Rltd_Modifier_ID QP_RLTD_MODIFIERS.Rltd_Modifier_ID%Type;
2016 BEGIN
2017
2018 IF p_modifier_type_code = 'CIE' THEN
2019 --only for coupon issue
2020 Get_Rltd_Modifier_Flds(p_List_Line_ID
2021 , l_To_Rltd_Modifier_ID
2022 , l_Rltd_Modifier_Grp_Type
2023 , l_Rltd_Modifier_Grp_No
2024 , l_Rltd_Modifier_ID);
2025 END IF;
2026
2027 RETURN l_Rltd_Modifier_ID;
2028
2029 EXCEPTION
2030
2031 When NO_DATA_FOUND Then
2032
2033 Return Null;
2034
2035 When OTHERS Then
2036
2037 Return Null;
2038
2039 END Get_Rltd_Modifier_ID;
2040
2041 FUNCTION Get_Rltd_Modifier_Grp_Type
2042 ( p_list_line_id IN QP_LIST_LINES.List_Line_ID%Type
2043 , p_modifier_type_code IN QP_LIST_LINES.list_line_type_code%type
2044 )
2045 RETURN QP_RLTD_MODIFIERS.Rltd_Modifier_Grp_Type%Type IS
2046 l_To_Rltd_Modifier_ID QP_RLTD_MODIFIERS.To_Rltd_Modifier_ID%Type;
2047 l_Rltd_Modifier_Grp_Type QP_RLTD_MODIFIERS.Rltd_Modifier_Grp_Type%Type;
2048 l_Rltd_Modifier_Grp_No QP_RLTD_MODIFIERS.Rltd_Modifier_Grp_No%Type;
2049 l_Rltd_Modifier_ID QP_RLTD_MODIFIERS.Rltd_Modifier_ID%Type;
2050 BEGIN
2051
2052 IF p_modifier_type_code = 'CIE' THEN
2053 --only for coupon issue
2054 Get_Rltd_Modifier_Flds(p_List_Line_ID
2055 , l_To_Rltd_Modifier_ID
2056 , l_Rltd_Modifier_Grp_Type
2057 , l_Rltd_Modifier_Grp_No
2058 , l_Rltd_Modifier_ID);
2059 END IF;
2060
2061 RETURN l_Rltd_Modifier_Grp_Type;
2062
2063 EXCEPTION
2064
2065 When NO_DATA_FOUND Then
2066
2067 Return Null;
2068
2069 When OTHERS Then
2070
2071 Return Null;
2072
2073 END Get_Rltd_Modifier_Grp_Type;
2074
2075 FUNCTION Get_Rltd_Modifier_Grp_No
2076 ( p_list_line_id IN QP_LIST_LINES.List_Line_ID%Type
2077 , p_modifier_type_code IN QP_LIST_LINES.list_line_type_code%type
2078 )
2079 RETURN QP_RLTD_MODIFIERS.Rltd_Modifier_Grp_No%Type IS
2080 l_To_Rltd_Modifier_ID QP_RLTD_MODIFIERS.To_Rltd_Modifier_ID%Type;
2081 l_Rltd_Modifier_Grp_Type QP_RLTD_MODIFIERS.Rltd_Modifier_Grp_Type%Type;
2082 l_Rltd_Modifier_Grp_No QP_RLTD_MODIFIERS.Rltd_Modifier_Grp_No%Type;
2083 l_Rltd_Modifier_ID QP_RLTD_MODIFIERS.Rltd_Modifier_ID%Type;
2084 BEGIN
2085
2086 IF p_modifier_type_code = 'CIE' THEN
2087 --only for coupon issue
2088 Get_Rltd_Modifier_Flds(p_List_Line_ID
2089 , l_To_Rltd_Modifier_ID
2090 , l_Rltd_Modifier_Grp_Type
2091 , l_Rltd_Modifier_Grp_No
2092 , l_Rltd_Modifier_ID);
2093 END IF;
2094
2095 RETURN l_Rltd_Modifier_Grp_No;
2096
2097 EXCEPTION
2098
2099 When NO_DATA_FOUND Then
2100
2101 Return Null;
2102
2103 When OTHERS Then
2104
2105 Return Null;
2106
2107 END Get_Rltd_Modifier_Grp_No;
2108
2109
2110 FUNCTION Get_Benefit_list_Line_No
2111 ( p_list_line_id IN QP_LIST_LINES.List_Line_ID%Type
2112 , p_modifier_type_code IN QP_LIST_LINES.list_line_type_code%type
2113 )
2114 RETURN QP_LIST_LINES.List_Line_No%Type IS
2115 l_To_Rltd_Modifier_ID QP_RLTD_MODIFIERS.To_Rltd_Modifier_ID%Type;
2116 l_Rltd_Modifier_Grp_Type QP_RLTD_MODIFIERS.Rltd_Modifier_Grp_Type%Type;
2117 l_Rltd_Modifier_Grp_No QP_RLTD_MODIFIERS.Rltd_Modifier_Grp_No%Type;
2118 l_Rltd_Modifier_ID QP_RLTD_MODIFIERS.Rltd_Modifier_ID%Type;
2119 l_Benefit_List_Line_No QP_LIST_LINES.List_Line_No%Type;
2120 BEGIN
2121
2122 IF p_modifier_type_code = 'CIE' THEN
2123 --only for coupon issue
2124 Get_Rltd_Modifier_Flds(p_List_Line_ID
2125 , l_To_Rltd_Modifier_ID
2126 , l_Rltd_Modifier_Grp_Type
2127 , l_Rltd_Modifier_Grp_No
2128 , l_Rltd_Modifier_ID);
2129
2130 select list_line_no into l_benefit_list_line_no from
2131 qp_list_lines where list_line_id = l_to_rltd_modifier_id;
2132
2133 END IF;
2134
2135 RETURN l_benefit_list_line_no;
2136
2137 EXCEPTION
2138
2139 When NO_DATA_FOUND Then
2140
2141 Return Null;
2142
2143 When OTHERS Then
2144
2145 Return Null;
2146
2147 END Get_Benefit_list_Line_No;
2148
2149
2150
2151 /*
2152 FUNCTION Get_Benefit_List_Line_No
2153 ( p_to_rltd_modifier_id IN QP_RLTD_MODIFIERS.to_rltd_modifier_id%type
2154 , p_modifier_type_code IN QP_LIST_LINES.list_line_type_code%type
2155 )
2156 RETURN QP_LIST_LINES.List_Line_No%Type IS
2157 l_Benefit_List_Line_No QP_LIST_LINES.List_Line_No%Type;
2158 BEGIN
2159
2160 select decode(p_modifier_type_code, ql.list_line_type_code, ql.List_Line_No,
2161 Null) into l_Benefit_List_Line_No from QP_LIST_LINES ql where
2162 ql.list_line_id = p_to_rltd_modifier_id;
2163
2164 RETURN l_Benefit_List_Line_No;
2165
2166 EXCEPTION
2167
2168 When NO_DATA_FOUND Then
2169
2170 Return Null;
2171
2172 When OTHERS Then
2173
2174 Return Null;
2175
2176 END Get_Benefit_List_Line_No;
2177 */
2178
2179 FUNCTION Get_Accrual_Flag
2180 ( p_list_line_id IN QP_LIST_LINES.list_line_id%type
2181 , p_modifier_type_code IN QP_LIST_LINES.list_line_type_code%type
2182 )
2183 RETURN QP_LIST_LINES.Accrual_Flag%Type IS
2184 l_Accrual_Flag QP_LIST_LINES.Accrual_Flag%Type;
2185 BEGIN
2186
2187 select decode(p_modifier_type_code, ql.list_line_type_code, ql.Accrual_Flag,
2188 Null) into l_Accrual_Flag from QP_LIST_LINES ql where
2189 ql.list_line_id = p_list_line_id;
2190
2191 RETURN l_Accrual_Flag;
2192
2193 EXCEPTION
2194
2195 When NO_DATA_FOUND Then
2196
2197 Return Null;
2198
2199 When OTHERS Then
2200
2201 Return Null;
2202
2203 END Get_Accrual_Flag;
2204
2205 FUNCTION Get_Accrual_Conversion_Rate
2206 ( p_list_line_id IN QP_LIST_LINES.list_line_id%type
2207 , p_modifier_type_code IN QP_LIST_LINES.list_line_type_code%type
2208 )
2209 RETURN QP_LIST_LINES.Accrual_Conversion_Rate%Type IS
2210 l_Accrual_Conversion_Rate QP_LIST_LINES.Accrual_Conversion_Rate%Type;
2211 BEGIN
2212
2213 select decode(p_modifier_type_code, ql.list_line_type_code,
2214 ql.Accrual_Conversion_Rate, Null) into l_Accrual_Conversion_Rate
2215 from QP_LIST_LINES ql where ql.list_line_id = p_list_line_id;
2216
2217 RETURN l_Accrual_Conversion_Rate;
2218
2219 EXCEPTION
2220
2221 When NO_DATA_FOUND Then
2222
2223 Return Null;
2224
2225 When OTHERS Then
2226
2227 Return Null;
2228
2229 END Get_Accrual_Conversion_Rate;
2230
2231 FUNCTION Get_Estim_Accrual_Rate
2232 ( p_list_line_id IN QP_LIST_LINES.list_line_id%type
2233 , p_modifier_type_code IN QP_LIST_LINES.list_line_type_code%type
2234 )
2235 RETURN QP_LIST_LINES.Estim_Accrual_Rate%Type IS
2236 l_Estim_Accrual_Rate QP_LIST_LINES.Estim_Accrual_Rate%Type;
2237 BEGIN
2238
2239 select decode(p_modifier_type_code, ql.list_line_type_code,
2240 ql.Estim_Accrual_Rate, Null) into l_Estim_Accrual_Rate from
2241 QP_LIST_LINES ql where ql.list_line_id = p_list_line_id;
2242
2243 RETURN l_Estim_Accrual_Rate;
2244
2245 EXCEPTION
2246
2247 When NO_DATA_FOUND Then
2248
2249 Return Null;
2250
2251 When OTHERS Then
2252
2253 Return Null;
2254
2255 END Get_Estim_Accrual_Rate;
2256
2257 --changes for bug 1496839 to improve performance
2258 FUNCTION Get_Break_Line_Type_Code
2259 ( p_list_line_id IN QP_LIST_LINES.list_line_id%type
2260 , p_modifier_type_code IN QP_LIST_LINES.list_line_type_code%type
2261 )
2262 RETURN QP_LIST_LINES.List_Line_Type_Code%Type IS
2263 l_Break_Line_Type_Code QP_LIST_LINES.List_Line_Type_Code%Type;
2264 BEGIN
2265
2266 IF p_modifier_type_code = 'PBH' then
2267
2268 select ql.list_line_type_code into l_Break_Line_Type_Code
2269 from QP_LIST_LINES ql
2270 where ql.list_line_id = (select to_rltd_modifier_id from
2271 qp_rltd_modifiers where from_rltd_modifier_id = p_list_line_id and
2272 rownum < 2);
2273
2274 ELSE
2275
2276 l_break_line_type_code := null;
2277
2278 END IF;
2279
2280 RETURN l_Break_Line_Type_Code;
2281
2282 EXCEPTION
2283
2284 When NO_DATA_FOUND Then
2285
2286 Return Null;
2287
2288 When OTHERS Then
2289
2290 Return Null;
2291
2292 END Get_Break_Line_Type_Code;
2293
2294 --changes for bug 1496839 to improve performance
2295 FUNCTION Get_Break_Line_Type
2296 ( p_list_line_id IN QP_LIST_LINES.list_line_id%type
2297 , p_modifier_type_code IN QP_LIST_LINES.list_line_type_code%type
2298 , p_break_line_type_code IN QP_LIST_LINES.list_line_type_code%type
2299 )
2300 RETURN QP_LOOKUPS.Meaning%Type IS
2301 l_Break_Line_Type QP_LOOKUPS.Meaning%Type;
2302 BEGIN
2303
2304 IF p_modifier_type_code = 'PBH' then
2305
2306 select qlook.Meaning into l_Break_Line_Type
2307 from qp_lookups qlook
2308 where qlook.lookup_type = 'LIST_LINE_TYPE_CODE' and
2309 qlook.lookup_code = p_break_line_type_code;
2310
2311
2312 /*
2313 select qlook.Meaning into l_Break_Line_Type
2314 from QP_LIST_LINES ql, qp_lookups qlook
2315 where qlook.lookup_code = ql.list_line_type_code and
2316 ql.list_line_id = (select to_rltd_modifier_id from
2317 qp_rltd_modifiers where from_rltd_modifier_id = p_list_line_id and
2318 rownum < 2);
2319 */
2320
2321 ELSE
2322
2323 l_break_line_type := null;
2324
2325 END IF;
2326
2327 RETURN l_Break_Line_Type;
2328
2329 EXCEPTION
2330
2331 When NO_DATA_FOUND Then
2332
2333 Return Null;
2334
2335 When OTHERS Then
2336
2337 Return Null;
2338
2339 END Get_Break_Line_Type;
2340
2341
2342 FUNCTION Get_Context(p_FlexField_Name IN VARCHAR2
2343 ,p_context IN VARCHAR2)RETURN VARCHAR2 IS
2344 /* commented for attribute manager change
2345 Flexfield FND_DFLEX.dflex_r;
2346 Flexinfo FND_DFLEX.dflex_dr;
2347 Contexts FND_DFLEX.contexts_dr;
2348 */
2349
2350 x_context_code VARCHAR2(240);
2351
2352 BEGIN
2353 x_context_code := QP_UTIL.Get_Context(p_FlexField_Name
2354 ,p_context);
2355
2356 /* commented for attribute manager change
2357 -- Call Flexapi to get contexts
2358
2359 FND_DFLEX.get_flexfield('QP',p_FlexField_Name,Flexfield,Flexinfo);
2360 FND_DFLEX.get_contexts(Flexfield,Contexts);
2361
2362
2363 For i in 1..Contexts.ncontexts LOOP
2364
2365 If(Contexts.is_enabled(i) AND (NOT (Contexts.is_global(i)))) Then
2366
2367 If p_context = Contexts.context_code(i) Then
2368 x_context_code :=Contexts.context_name(i);
2369 EXIT;
2370 End If;
2371
2372 End if;
2373 End Loop;
2374 */
2375
2376 RETURN x_context_code;
2377
2378 END Get_Context;
2379
2380 /*-------------------------------------------------------------------------
2381 CHANGED THIS PROCEDURE TO SHOW THE ID IF THE ATTRIBUTE IS INVALID OR
2382 THE ATTRIBUTE HAS BEEN DELETED.
2383 CHANGES MADE BASED ON SWATI'S CHANGES TO QP_CON_ATTR_PACKAGE IN QPXCORE
2384 -------------------------------------------------------------------------*/
2385
2386 PROCEDURE Get_Attribute_Code(p_FlexField_Name IN VARCHAR2
2387 ,p_Context_Name IN VARCHAR2
2388 ,p_attribute IN VARCHAR2
2389 ,p_attribute_col_name IN VARCHAR2
2390 ,x_attribute_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2391 ,x_segment_name OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2392 ) IS
2393 /* commented for attribute manager change
2394 Flexfield FND_DFLEX.dflex_r;
2395 Flexinfo FND_DFLEX.dflex_dr;
2396 Contexts FND_DFLEX.contexts_dr;
2397 segments FND_DFLEX.segments_dr;
2398 i BINARY_INTEGER;
2399
2400 VALID_ATTRIBUTE BOOLEAN := FALSE;
2401 */
2402
2403 BEGIN
2404 QP_UTIL.Get_Attribute_Code(p_FlexField_Name
2405 ,p_Context_Name
2406 ,p_attribute
2407 ,x_attribute_code
2408 ,x_segment_name
2409 );
2410
2411 /* commented for attribute manager change
2412 FND_DFLEX.get_flexfield('QP',p_FlexField_Name,Flexfield,Flexinfo);
2413
2414 --removing the check for the enabled segments as well as per the upgrade
2415 --requirement.
2416 --While upgrading ,there may be some segments which were enabled in the
2417 --past but disabled now.
2418 --In such cases ,we still need to show the data in the post query.
2419 --Hence commented out the call with 'TRUE' which looks only for enabled
2420 --segments.
2421 --And added 'FALSE' which reads all the segments.
2422
2423
2424 --FND_DFLEX.get_segments(FND_DFLEX.make_context(Flexfield,p_Context_Name),
2425 -- segments,TRUE);
2426 FND_DFLEX.get_segments(FND_DFLEX.make_context(Flexfield,p_Context_Name), segments,FALSE);
2427
2428 For i in 1..segments.nsegments LOOP
2429
2430 --removing the check for the enabled segments as well as per the upgrade
2431 --requirement.
2432 --While upgrading ,there may be some segments which were enabled in the past
2433 --but disabled now.
2434 --In such cases ,we still need to show the data in the post query.
2435
2436 IF segments.is_enabled(i) THEN
2437
2438 IF segments.application_column_name(i) = p_attribute Then
2439 x_attribute_code := segments.row_prompt(i);
2440 x_segment_name := segments.segment_name(i);
2441 VALID_ATTRIBUTE := TRUE;
2442 EXIT;
2443 End if;
2444 END IF;
2445 END LOOP;
2446
2447 --added to show invalid values brought in by upgrade.
2448 IF NOT VALID_ATTRIBUTE THEN
2449 --fnd_message.debug('invalid attr');
2450 oe_debug_pub.add('invalid attr');
2451 x_attribute_code := p_attribute;
2452 --Not applicable for database package; will handle in the UI
2453 set_item_instance_property(
2454 p_attribute_col_name
2455 ,CURRENT_RECORD
2456 ,VISUAL_ATTRIBUTE
2457 ,'DATA_RED');
2458
2459 END IF;
2460 -- end of additions for the upgrade.
2461 */
2462
2463
2464 END Get_Attribute_Code;
2465
2466 FUNCTION Get_Attribute
2467 ( p_FlexField_Name IN VARCHAR2
2468 , p_Context_Name IN VARCHAR2
2469 , p_attribute IN VARCHAR2
2470 )
2471 RETURN VARCHAR2 IS
2472 l_product_attr VARCHAR2(240);
2473 l_prod_segment_name VARCHAR2(240);
2474 BEGIN
2475
2476 Get_Attribute_Code(p_FlexField_Name
2477 , p_context_name
2478 , p_attribute
2479 , NULL
2480 , l_product_attr
2481 , l_prod_segment_name);
2482
2483 RETURN l_Product_attr;
2484
2485 EXCEPTION
2486
2487 When NO_DATA_FOUND Then
2488
2489 Return Null;
2490
2491 When OTHERS Then
2492
2493 Return Null;
2494
2495 END Get_Attribute;
2496
2497 FUNCTION Get_Segment_name
2498 ( p_FlexField_Name IN VARCHAR2
2499 , p_Context_Name IN VARCHAR2
2500 , p_attribute IN VARCHAR2
2501 )
2502 RETURN VARCHAR2 IS
2503 l_product_attr VARCHAR2(240);
2504 l_prod_segment_name VARCHAR2(240);
2505 BEGIN
2506
2507 Get_Attribute_Code(p_FlexField_Name
2508 , p_context_name
2509 , p_attribute
2510 , NULL
2511 , l_product_attr
2512 , l_prod_segment_name);
2513
2514 RETURN l_prod_segment_name;
2515
2516 EXCEPTION
2517
2518 When NO_DATA_FOUND Then
2519
2520 Return Null;
2521
2522 When OTHERS Then
2523
2524
2525 Return Null;
2526
2527 END Get_Segment_name;
2528
2529 /*-------------------------------------------------------------------------
2530 CHANGED THIS FUNCTION TO SHOW THE ID IF THE VALUE IS INVALID OR THE VALUE
2531 HAS BEEN DELETED FROM THE VALUE SET.
2532 CHANGES MADE BASED ON SWATI'S CHANGES TO QP_CON_ATTR_PACKAGE IN QPXCORE
2533 -------------------------------------------------------------------------*/
2534
2535
2536 FUNCTION Get_Attribute_Value(p_FlexField_Name IN VARCHAR2
2537 ,p_Context_Name IN VARCHAR2
2538 ,p_attribute IN VARCHAR2
2539 ,p_attr_value IN VARCHAR2
2540 ,p_attribute_val_col_name IN VARCHAR2 := NULL
2541 ,p_comparison_operator_code IN VARCHAR2 := NULL
2542 ) RETURN VARCHAR2 IS
2543
2544 Vset FND_VSET.valueset_r;
2545 Fmt FND_VSET.valueset_dr;
2546
2547 Found BOOLEAN;
2548 Row NUMBER;
2549 Value FND_VSET.value_dr;
2550
2551
2552
2553 x_Format_Type Varchar2(1);
2554 x_Validation_Type Varchar2(1);
2555 x_Vsid NUMBER;
2556
2557
2558 x_attr_value_code VARCHAR2(240);
2559 l_segment_name VARCHAR2(240);
2560
2561
2562 l_attr_value VARCHAR2(2000);
2563
2564
2565 Value_Valid_In_Valueset BOOLEAN := FALSE;
2566 l_id VARCHAR2(150);
2567 l_value VARCHAR2(150);
2568
2569 BEGIN
2570 /* Added for 2332139 */
2571
2572 IF p_FlexField_Name IS NULL OR p_Context_Name IS NULL OR p_attribute IS NULL THEN
2573 RETURN NULL;
2574 ELSE
2575
2576 l_segment_name := get_segment_name(p_flexfield_name,
2577 p_context_name, p_attribute);
2578
2579 QP_UTIL.get_valueset_id(p_FlexField_Name,p_Context_Name,
2580 l_Segment_Name,x_Vsid,
2581 x_Format_Type, x_Validation_Type);
2582
2583
2584 l_attr_value := p_attr_value;
2585
2586 -- if comparison operator is other than '=' then no need to get the
2587 -- meaning as the value itself will be stored in qualifier_attr_value
2588
2589
2590 --change made by spgopal. added parameter called p_comparison_operator_code
2591 --to generalise the code for all forms and packages
2592
2593 If nvl(p_comparison_operator_code, '0') <> 'BETWEEN' THEN
2594
2595 IF x_Validation_Type In('F' ,'I') AND x_Vsid IS NOT NULL THEN
2596
2597
2598 IF x_Validation_Type = 'I' Then
2599
2600 FND_VSET.get_valueset(x_Vsid,Vset,Fmt);
2601 FND_VSET.get_value_init(Vset,TRUE);
2602 FND_VSET.get_value(Vset,Row,Found,Value);
2603
2604
2605 IF Fmt.Has_Id Then --id is defined.Hence compare for id
2606
2607 While(Found) Loop
2608
2609
2610 If l_attr_value = Value.id Then
2611
2612 x_attr_value_code := Value.value;
2613 Value_Valid_In_Valueset := TRUE;
2614 EXIT;
2615 End If;
2616 FND_VSET.get_value(Vset,Row,Found,Value);
2617
2618 End Loop;
2619 Else -- id not defined.Hence compare for value
2620
2621 While(Found) Loop
2622
2623 If l_attr_value = Value.value Then
2624
2625 x_attr_value_code := l_attr_value;
2626 Value_Valid_In_Valueset := TRUE;
2627 EXIT;
2628 End If;
2629 FND_VSET.get_value(Vset,Row,Found,Value);
2630
2631 End Loop;
2632
2633 End If; ---end of Fmt.Has_Id
2634
2635
2636 FND_VSET.get_value_end(Vset);
2637
2638 ELSIF x_Validation_Type = 'F' THEN
2639
2640 FND_VSET.get_valueset(x_Vsid,Vset,Fmt);
2641
2642 IF (QP_UTIL.value_exists_in_table(Vset.table_info,
2643 l_attr_value,l_id,l_value)) THEN
2644
2645 IF Fmt.Has_Id Then
2646 --id is defined. Hence compare id
2647
2648 IF l_attr_value = l_id Then
2649
2650 x_attr_value_code := l_value;
2651 Value_Valid_In_Valueset := TRUE;
2652 END IF;
2653 ELSE
2654 IF l_attr_value = l_value THEN
2655 x_attr_value_code := l_attr_value;
2656 Value_Valid_In_Valueset := TRUE;
2657 END IF;
2658 END IF; --End of Fmt.Has_ID
2659 ELSE
2660 Value_Valid_In_Valueset := FALSE;
2661 END IF;
2662 END IF;
2663
2664
2665 ELSE -- if validation type is not F or I or valueset id is null (not defined)
2666
2667 x_attr_value_code := l_attr_value;
2668 END IF;
2669 ELSE -- if comparison operator is 'between'
2670
2671 x_attr_value_code := l_attr_value;
2672 END IF;
2673
2674
2675 RETURN x_attr_value_code;
2676 END IF;
2677 END Get_Attribute_Value;
2678
2679
2680
2681 FUNCTION Get_Attr_Value_To(p_FlexField_Name IN VARCHAR2
2682 ,p_Context_Name IN VARCHAR2
2683 ,p_segment_name IN VARCHAR2
2684 ,p_attr_value_To IN VARCHAR2
2685 ) RETURN VARCHAR2 IS
2686
2687 Vset FND_VSET.valueset_r;
2688 Fmt FND_VSET.valueset_dr;
2689
2690 Found BOOLEAN;
2691 Row NUMBER;
2692 Value FND_VSET.value_dr;
2693
2694
2695
2696 x_Format_Type Varchar2(1);
2697 x_Validation_Type Varchar2(1);
2698 x_Vsid NUMBER;
2699
2700
2701 x_attr_value_code VARCHAR2(240);
2702 l_attr_value_to VARCHAR2(2000);
2703
2704 BEGIN
2705
2706
2707 QP_UTIL.get_valueset_id(p_FlexField_Name,p_Context_Name,
2708 p_Segment_Name,x_Vsid,
2709 x_Format_Type, x_Validation_Type);
2710 /*
2711 IF x_Validation_Type In('F' ,'I') AND x_Vsid IS NOT NULL THEN
2712 FND_VSET.get_valueset(x_Vsid,Vset,Fmt);
2713 FND_VSET.get_value_init(Vset,TRUE);
2714 FND_VSET.get_value(Vset,Row,Found,Value);
2715
2716 While(Found) Loop
2717
2718 --fnd_message.debug(Value.value);
2719 --fnd_message.debug(Value.meaning);
2720 --fnd_message.debug(Value.id);
2721
2722 If p_attr_value_to = Value.value Then
2723
2724 x_attr_value_code := Value.Meaning;
2725 EXIT;
2726 End If;
2727 FND_VSET.get_value(Vset,Row,Found,Value);
2728
2729 End Loop;
2730 FND_VSET.get_value_end(Vset);
2731 ELSE
2732
2733 x_attr_value_code := p_attr_value_to;
2734 END IF;
2735 --ELSE
2736
2737 -- x_attr_value_code := p_attr_value;
2738 --END IF;
2739 --fnd_message.debug(x_attr_value_code);
2740 */
2741
2742 --this function is going to be used in the summary block of modifiers form.
2743 --the pricing context can only be VOLUME. so returning the value to directly
2744 --the post query of the block handles canonical conversion
2745
2746 x_attr_value_code := p_attr_value_to;
2747
2748 RETURN x_attr_value_code;
2749 END Get_Attr_Value_to;
2750
2751
2752
2753
2754
2755 --added by svdeshmu
2756 -- This procedure will be called from the client when the user
2757 -- clears a record
2758 Procedure Clear_Record
2759 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2760 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
2761 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2762 , p_list_line_id IN NUMBER
2763 )
2764 IS
2765 l_return_status Varchar2(30);
2766 BEGIN
2767 OE_MSG_PUB.initialize;
2768 x_return_status := FND_API.G_RET_STS_SUCCESS;
2769 QP_DELAYED_REQUESTS_PVT.Delete_Reqs_for_Deleted_Entity(
2770 p_entity_code => QP_GLOBALS.G_ENTITY_PRICING_ATTR
2771 ,p_entity_id => p_list_line_id
2772 ,x_return_status => l_return_status);
2773
2774 OE_MSG_PUB.Count_And_Get
2775 ( p_count => x_msg_count
2776 , p_data => x_msg_data
2777 );
2778
2779 -- Clear the controller cache
2780 Clear_Pricing_Attr;
2781
2782 EXCEPTION
2783 WHEN OTHERS THEN
2784 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2785 THEN
2786 OE_MSG_PUB.Add_Exc_Msg
2787 ( G_PKG_NAME
2788 , 'Clear_Record'
2789 );
2790 END IF;
2791 -- Get message count and data
2792 OE_MSG_PUB.Count_And_Get
2793 ( p_count => x_msg_count
2794 , p_data => x_msg_data
2795 );
2796 x_return_status := FND_API.G_RET_STS_ERROR;
2797
2798 END Clear_Record;
2799
2800
2801 --added by svdeshmu
2802
2803
2804
2805
2806 END QP_QP_Form_Pricing_Attr;