[Home] [Help]
PACKAGE BODY: APPS.QP_MODIFIERS_GRP
Source
1 PACKAGE BODY QP_Modifiers_GRP AS
2 /* $Header: QPXGMLSB.pls 120.3 2005/07/12 17:19:52 appldev ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'QP_Modifiers_GRP';
7
8 -- Forward declaration of Procedure Id_To_Value
9
10 PROCEDURE Id_To_Value
11 ( p_MODIFIER_LIST_rec IN QP_MODIFIERS_PUB.Modifier_List_Rec_Type
12 , p_MODIFIERS_tbl IN QP_MODIFIERS_PUB.Modifiers_Tbl_Type
13 , p_QUALIFIERS_tbl IN QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type
14 , p_PRICING_ATTR_tbl IN QP_MODIFIERS_PUB.Pricing_Attr_Tbl_Type
15 , x_MODIFIER_LIST_val_rec OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Modifier_List_Val_Rec_Type
16 , x_MODIFIERS_val_tbl OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Modifiers_Val_Tbl_Type
17 , x_QUALIFIERS_val_tbl OUT NOCOPY /* file.sql.39 change */ QP_Qualifier_Rules_PUB.Qualifiers_Val_Tbl_Type
18 , x_PRICING_ATTR_val_tbl OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Pricing_Attr_Val_Tbl_Type
19 );
20
21 -- Forward declaration of procedure Value_To_Id
22
23 PROCEDURE Value_To_Id
24 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
25 , p_MODIFIER_LIST_rec IN QP_MODIFIERS_PUB.Modifier_List_Rec_Type
26 , p_MODIFIER_LIST_val_rec IN QP_MODIFIERS_PUB.Modifier_List_Val_Rec_Type
27 , p_MODIFIERS_tbl IN QP_MODIFIERS_PUB.Modifiers_Tbl_Type
28 , p_MODIFIERS_val_tbl IN QP_MODIFIERS_PUB.Modifiers_Val_Tbl_Type
29 , p_QUALIFIERS_tbl IN QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type
30 , p_QUALIFIERS_val_tbl IN QP_Qualifier_Rules_PUB.Qualifiers_Val_Tbl_Type
31 , p_PRICING_ATTR_tbl IN QP_MODIFIERS_PUB.Pricing_Attr_Tbl_Type
32 , p_PRICING_ATTR_val_tbl IN QP_MODIFIERS_PUB.Pricing_Attr_Val_Tbl_Type
33 , x_MODIFIER_LIST_rec OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Modifier_List_Rec_Type
37 );
34 , x_MODIFIERS_tbl OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Modifiers_Tbl_Type
35 , x_QUALIFIERS_tbl OUT NOCOPY /* file.sql.39 change */ QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type
36 , x_PRICING_ATTR_tbl OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Pricing_Attr_Tbl_Type
38
39 -- Start of Comments
40 -- API name Process_Modifiers
41 -- Type Group
42 -- Function
43 --
44 -- Pre-reqs
45 --
46 -- Parameters
47 --
48 -- Version Current version = 1.0
49 -- Initial version = 1.0
50 --
51 -- Notes
52 --
53 -- End of Comments
54
55 PROCEDURE Process_Modifiers
56 ( p_api_version_number IN NUMBER
57 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
58 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
59 , p_commit IN VARCHAR2 := FND_API.G_FALSE
60 , p_control_rec IN QP_GLOBALS.Control_Rec_Type :=
61 QP_GLOBALS.G_MISS_CONTROL_REC
62 , x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
63 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
64 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
65 , p_MODIFIER_LIST_rec IN QP_Modifiers_PUB.Modifier_List_Rec_Type :=
66 QP_MODIFIERS_PUB.G_MISS_MODIFIER_LIST_REC
67 , p_MODIFIER_LIST_val_rec IN QP_Modifiers_PUB.Modifier_List_Val_Rec_Type :=
68 QP_MODIFIERS_PUB.G_MISS_MODIFIER_LIST_VAL_REC
69 , p_MODIFIERS_tbl IN QP_Modifiers_PUB.Modifiers_Tbl_Type :=
70 QP_MODIFIERS_PUB.G_MISS_MODIFIERS_TBL
71 , p_MODIFIERS_val_tbl IN QP_Modifiers_PUB.Modifiers_Val_Tbl_Type :=
72 QP_MODIFIERS_PUB.G_MISS_MODIFIERS_VAL_TBL
73 , p_QUALIFIERS_tbl IN QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type :=
74 QP_Qualifier_Rules_PUB.G_MISS_QUALIFIERS_TBL
75 , p_QUALIFIERS_val_tbl IN QP_Qualifier_Rules_PUB.Qualifiers_Val_Tbl_Type :=
76 QP_Qualifier_Rules_PUB.G_MISS_QUALIFIERS_VAL_TBL
77 , p_PRICING_ATTR_tbl IN QP_Modifiers_PUB.Pricing_Attr_Tbl_Type :=
78 QP_MODIFIERS_PUB.G_MISS_PRICING_ATTR_TBL
79 , p_PRICING_ATTR_val_tbl IN QP_Modifiers_PUB.Pricing_Attr_Val_Tbl_Type :=
80 QP_MODIFIERS_PUB.G_MISS_PRICING_ATTR_VAL_TBL
81 , x_MODIFIER_LIST_rec OUT NOCOPY /* file.sql.39 change */ QP_Modifiers_PUB.Modifier_List_Rec_Type
82 , x_MODIFIER_LIST_val_rec OUT NOCOPY /* file.sql.39 change */ QP_Modifiers_PUB.Modifier_List_Val_Rec_Type
83 , x_MODIFIERS_tbl OUT NOCOPY /* file.sql.39 change */ QP_Modifiers_PUB.Modifiers_Tbl_Type
84 , x_MODIFIERS_val_tbl OUT NOCOPY /* file.sql.39 change */ QP_Modifiers_PUB.Modifiers_Val_Tbl_Type
85 , x_QUALIFIERS_tbl OUT NOCOPY /* file.sql.39 change */ QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type
86 , x_QUALIFIERS_val_tbl OUT NOCOPY /* file.sql.39 change */ QP_Qualifier_Rules_PUB.Qualifiers_Val_Tbl_Type
87 , x_PRICING_ATTR_tbl OUT NOCOPY /* file.sql.39 change */ QP_Modifiers_PUB.Pricing_Attr_Tbl_Type
88 , x_PRICING_ATTR_val_tbl OUT NOCOPY /* file.sql.39 change */ QP_Modifiers_PUB.Pricing_Attr_Val_Tbl_Type
89 )
90 IS
91 l_api_version_number CONSTANT NUMBER := 1.0;
92 l_api_name CONSTANT VARCHAR2(30):= 'Process_Modifiers';
93 l_control_rec QP_GLOBALS.Control_Rec_Type;
94 l_return_status VARCHAR2(1);
95 l_MODIFIER_LIST_rec QP_MODIFIERS_PUB.Modifier_List_Rec_Type;
96 l_p_MODIFIER_LIST_rec QP_MODIFIERS_PUB.Modifier_List_Rec_Type;
97 l_MODIFIERS_tbl QP_MODIFIERS_PUB.Modifiers_Tbl_Type;
98 l_p_MODIFIERS_tbl QP_MODIFIERS_PUB.Modifiers_Tbl_Type;
99 l_QUALIFIERS_tbl QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
100 l_p_QUALIFIERS_tbl QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
101 l_PRICING_ATTR_tbl QP_MODIFIERS_PUB.Pricing_Attr_Tbl_Type;
102 l_p_PRICING_ATTR_tbl QP_MODIFIERS_PUB.Pricing_Attr_Tbl_Type;
103 l_qp_status VARCHAR2(1);
104 l_list_source_code VARCHAR2(10); -- bug#3599792
105 BEGIN
106
107 oe_debug_pub.add('BEGIN process_modifiers in Public');
108 --dbms_output.put_line('BEGIN process_modifiers in Public');
109
110 -- Standard call to check for call compatibility
111
112 IF NOT FND_API.Compatible_API_Call
113 ( l_api_version_number
114 , p_api_version_number
115 , l_api_name
116 , G_PKG_NAME
117 )
118 THEN
119 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
120 END IF;
121
122 -- BOI not available for Basic Pricing when called through the Public Package
123
124 l_qp_status := QP_UTIL.GET_QP_STATUS;
125
126 -- bug#3599792/bug#3888568/#bug4261021
127 IF p_MODIFIERS_tbl.COUNT <> 0 THEN
128 IF p_MODIFIERS_tbl(1).list_header_id IS NOT NULL AND
129 p_MODIFIERS_tbl(1).list_header_id <> FND_API.G_MISS_NUM THEN
130 BEGIN
131 select list_source_code into l_list_source_code
132 from qp_list_headers_b
133 where list_header_id = p_MODIFIERS_tbl(1).list_header_id;
134 EXCEPTION
135 WHEN OTHERS THEN
136 oe_debug_pub.add('MODIFIERS list_header_id : '||p_MODIFIERS_tbl(1).list_header_id);
140 l_list_source_code := p_MODIFIER_LIST_rec.list_source_code;
137 IF p_MODIFIER_LIST_rec.list_source_code IS NOT NULL
138 AND p_MODIFIER_LIST_rec.list_source_code <> FND_API.G_MISS_CHAR
139 THEN
141 END IF;
142 END;
143 ELSIF p_MODIFIERS_tbl(1).list_line_id IS NOT NULL AND
144 p_MODIFIERS_tbl(1).list_line_id <> FND_API.G_MISS_NUM THEN
145 BEGIN
146 select list_source_code into l_list_source_code
147 from qp_list_headers_b
148 where list_header_id = (select list_header_id from qp_list_lines
149 where list_line_id = p_MODIFIERS_tbl(1).list_line_id);
150 EXCEPTION
151 WHEN OTHERS THEN
152 oe_debug_pub.add('MODIFIERS list_line_id : '|| p_MODIFIERS_tbl(1).list_line_id);
153 IF p_MODIFIER_LIST_rec.list_source_code IS NOT NULL
154 AND p_MODIFIER_LIST_rec.list_source_code <> FND_API.G_MISS_CHAR
155 THEN
156 l_list_source_code := p_MODIFIER_LIST_rec.list_source_code;
157 END IF;
158 END;
159 ELSE
160 IF p_MODIFIER_LIST_rec.list_source_code IS NOT NULL
161 AND p_MODIFIER_LIST_rec.list_source_code <> FND_API.G_MISS_CHAR
162 THEN
163 l_list_source_code := p_MODIFIER_LIST_rec.list_source_code;
164 END IF;
165 END IF;
166 ELSE
167 IF p_MODIFIER_LIST_rec.list_source_code IS NOT NULL
168 AND p_MODIFIER_LIST_rec.list_source_code <> FND_API.G_MISS_CHAR
169 THEN
170 l_list_source_code := p_MODIFIER_LIST_rec.list_source_code;
171 END IF;
172 END IF;
173
174 IF l_qp_status = 'S'
175 AND nvl(l_list_source_code,'NULL') <> QP_GLOBALS.G_ENTITY_BSO --bug#3385041
176 THEN
177
178 l_return_status := FND_API.G_RET_STS_ERROR;
179 FND_MESSAGE.SET_NAME('QP','QP_BASIC_PRICING_UNAVAILABLE');
180 OE_MSG_PUB.Add;
181 RAISE FND_API.G_EXC_ERROR;
182
183 END IF;
184
185 -- Perform Value to Id conversion
186
187 --dbms_output.put_line('before calling value to id');
188 Value_To_Id
189 ( x_return_status => l_return_status
190 , p_MODIFIER_LIST_rec => p_MODIFIER_LIST_rec
191 , p_MODIFIER_LIST_val_rec => p_MODIFIER_LIST_val_rec
192 , p_MODIFIERS_tbl => p_MODIFIERS_tbl
193 , p_MODIFIERS_val_tbl => p_MODIFIERS_val_tbl
194 , p_QUALIFIERS_tbl => p_QUALIFIERS_tbl
195 , p_QUALIFIERS_val_tbl => p_QUALIFIERS_val_tbl
196 , p_PRICING_ATTR_tbl => p_PRICING_ATTR_tbl
197 , p_PRICING_ATTR_val_tbl => p_PRICING_ATTR_val_tbl
198 , x_MODIFIER_LIST_rec => l_MODIFIER_LIST_rec
199 , x_MODIFIERS_tbl => l_MODIFIERS_tbl
200 , x_QUALIFIERS_tbl => l_QUALIFIERS_tbl
201 , x_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl
202 );
203
204 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
205 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
206 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
207 RAISE FND_API.G_EXC_ERROR;
208 END IF;
209
210 -- Call QP_Modifiers_PVT.Process_Modifiers
211
212 --dbms_output.put_line('before calling pvt');
213 l_p_MODIFIER_LIST_rec := l_MODIFIER_LIST_rec;
214 l_p_MODIFIERS_tbl := l_MODIFIERS_tbl;
215 l_p_QUALIFIERS_tbl := l_QUALIFIERS_tbl;
216 l_p_PRICING_ATTR_tbl := l_PRICING_ATTR_tbl;
217
218 QP_Modifiers_PVT.Process_Modifiers
219 ( p_api_version_number => 1.0
220 , p_init_msg_list => p_init_msg_list
221 , p_validation_level => FND_API.G_VALID_LEVEL_FULL
222 , p_commit => p_commit
223 , x_return_status => x_return_status
224 , x_msg_count => x_msg_count
225 , x_msg_data => x_msg_data
226 , p_control_rec => p_control_rec
227 , p_MODIFIER_LIST_rec => l_p_MODIFIER_LIST_rec
228 , p_MODIFIERS_tbl => l_p_MODIFIERS_tbl
229 , p_QUALIFIERS_tbl => l_p_QUALIFIERS_tbl
230 , p_PRICING_ATTR_tbl => l_p_PRICING_ATTR_tbl
231 , x_MODIFIER_LIST_rec => l_MODIFIER_LIST_rec
232 , x_MODIFIERS_tbl => l_MODIFIERS_tbl
233 , x_QUALIFIERS_tbl => l_QUALIFIERS_tbl
234 , x_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl
235 );
236
237 -- Load Id OUT parameters.
238
239 x_MODIFIER_LIST_rec := l_MODIFIER_LIST_rec;
240 x_MODIFIERS_tbl := l_MODIFIERS_tbl;
241 x_QUALIFIERS_tbl := l_QUALIFIERS_tbl;
242 x_PRICING_ATTR_tbl := l_PRICING_ATTR_tbl;
243
244 -- If p_return_values is TRUE then convert Ids to Values.
245
246 IF FND_API.to_Boolean(p_return_values) THEN
247
248 Id_To_Value
249 ( p_MODIFIER_LIST_rec => l_MODIFIER_LIST_rec
250 , p_MODIFIERS_tbl => l_MODIFIERS_tbl
251 , p_QUALIFIERS_tbl => l_QUALIFIERS_tbl
252 , p_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl
253 , x_MODIFIER_LIST_val_rec => x_MODIFIER_LIST_val_rec
254 , x_MODIFIERS_val_tbl => x_MODIFIERS_val_tbl
255 , x_QUALIFIERS_val_tbl => x_QUALIFIERS_val_tbl
256 , x_PRICING_ATTR_val_tbl => x_PRICING_ATTR_val_tbl
257 );
258
259 END IF;
260
261 oe_debug_pub.add('END process_modifiers in Public');
265 WHEN FND_API.G_EXC_ERROR THEN
262 --dbms_output.put_line('END process_modifiers in Public');
263 EXCEPTION
264
266
267 x_return_status := FND_API.G_RET_STS_ERROR;
268
269 -- Get message count and data
270
271 OE_MSG_PUB.Count_And_Get
272 ( p_count => x_msg_count
273 , p_data => x_msg_data
274 );
275
276 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
277
278 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
279
280 -- Get message count and data
281
282 OE_MSG_PUB.Count_And_Get
283 ( p_count => x_msg_count
284 , p_data => x_msg_data
285 );
286
287 WHEN OTHERS THEN
288
289 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
290
291 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
292 THEN
293 OE_MSG_PUB.Add_Exc_Msg
294 ( G_PKG_NAME
295 , 'Process_Modifiers'
296 );
297 END IF;
298
299 -- Get message count and data
300
301 OE_MSG_PUB.Count_And_Get
302 ( p_count => x_msg_count
303 , p_data => x_msg_data
304 );
305
306 END Process_Modifiers;
307
308 -- Start of Comments
309 -- API name Lock_Modifiers
310 -- Type Group
311 -- Function
312 --
313 -- Pre-reqs
314 --
315 -- Parameters
316 --
317 -- Version Current version = 1.0
318 -- Initial version = 1.0
319 --
320 -- Notes
321 --
322 -- End of Comments
323
324 PROCEDURE Lock_Modifiers
325 ( p_api_version_number IN NUMBER
326 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
327 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
328 , x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
329 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
330 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
331 , p_MODIFIER_LIST_rec IN QP_MODIFIERS_PUB.Modifier_List_Rec_Type :=
332 QP_MODIFIERS_PUB.G_MISS_MODIFIER_LIST_REC
333 , p_MODIFIER_LIST_val_rec IN QP_MODIFIERS_PUB.Modifier_List_Val_Rec_Type :=
334 QP_MODIFIERS_PUB.G_MISS_MODIFIER_LIST_VAL_REC
335 , p_MODIFIERS_tbl IN QP_MODIFIERS_PUB.Modifiers_Tbl_Type :=
336 QP_MODIFIERS_PUB.G_MISS_MODIFIERS_TBL
337 , p_MODIFIERS_val_tbl IN QP_MODIFIERS_PUB.Modifiers_Val_Tbl_Type :=
338 QP_MODIFIERS_PUB.G_MISS_MODIFIERS_VAL_TBL
339 , p_QUALIFIERS_tbl IN QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type :=
340 QP_Qualifier_Rules_PUB.G_MISS_QUALIFIERS_TBL
341 , p_QUALIFIERS_val_tbl IN QP_Qualifier_Rules_PUB.Qualifiers_Val_Tbl_Type :=
342 QP_Qualifier_Rules_PUB.G_MISS_QUALIFIERS_VAL_TBL
343 , p_PRICING_ATTR_tbl IN QP_MODIFIERS_PUB.Pricing_Attr_Tbl_Type :=
344 QP_MODIFIERS_PUB.G_MISS_PRICING_ATTR_TBL
345 , p_PRICING_ATTR_val_tbl IN QP_MODIFIERS_PUB.Pricing_Attr_Val_Tbl_Type :=
346 QP_MODIFIERS_PUB.G_MISS_PRICING_ATTR_VAL_TBL
347 , x_MODIFIER_LIST_rec OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Modifier_List_Rec_Type
348 , x_MODIFIER_LIST_val_rec OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Modifier_List_Val_Rec_Type
349 , x_MODIFIERS_tbl OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Modifiers_Tbl_Type
350 , x_MODIFIERS_val_tbl OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Modifiers_Val_Tbl_Type
351 , x_QUALIFIERS_tbl OUT NOCOPY /* file.sql.39 change */ QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type
352 , x_QUALIFIERS_val_tbl OUT NOCOPY /* file.sql.39 change */ QP_Qualifier_Rules_PUB.Qualifiers_Val_Tbl_Type
353 , x_PRICING_ATTR_tbl OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Pricing_Attr_Tbl_Type
354 , x_PRICING_ATTR_val_tbl OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Pricing_Attr_Val_Tbl_Type
355 )
356 IS
357 l_api_version_number CONSTANT NUMBER := 1.0;
358 l_api_name CONSTANT VARCHAR2(30):= 'Lock_Modifiers';
359 l_return_status VARCHAR2(1);
360 l_MODIFIER_LIST_rec QP_MODIFIERS_PUB.Modifier_List_Rec_Type;
361 l_p_MODIFIER_LIST_rec QP_MODIFIERS_PUB.Modifier_List_Rec_Type;
362 l_MODIFIERS_tbl QP_MODIFIERS_PUB.Modifiers_Tbl_Type;
363 l_p_MODIFIERS_tbl QP_MODIFIERS_PUB.Modifiers_Tbl_Type;
364 l_QUALIFIERS_tbl QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
365 l_p_QUALIFIERS_tbl QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
366 l_PRICING_ATTR_tbl QP_MODIFIERS_PUB.Pricing_Attr_Tbl_Type;
367 l_p_PRICING_ATTR_tbl QP_MODIFIERS_PUB.Pricing_Attr_Tbl_Type;
368 BEGIN
369
370 oe_debug_pub.add('BEGIN lock_modifiers in Public');
371 -- Standard call to check for call compatibility
372
373 IF NOT FND_API.Compatible_API_Call
374 ( l_api_version_number
375 , p_api_version_number
376 , l_api_name
377 , G_PKG_NAME
378 )
379 THEN
380 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
381 END IF;
382
386 ( x_return_status => l_return_status
383 -- Perform Value to Id conversion
384
385 Value_To_Id
387 , p_MODIFIER_LIST_rec => p_MODIFIER_LIST_rec
388 , p_MODIFIER_LIST_val_rec => p_MODIFIER_LIST_val_rec
389 , p_MODIFIERS_tbl => p_MODIFIERS_tbl
390 , p_MODIFIERS_val_tbl => p_MODIFIERS_val_tbl
391 , p_QUALIFIERS_tbl => p_QUALIFIERS_tbl
392 , p_QUALIFIERS_val_tbl => p_QUALIFIERS_val_tbl
393 , p_PRICING_ATTR_tbl => p_PRICING_ATTR_tbl
394 , p_PRICING_ATTR_val_tbl => p_PRICING_ATTR_val_tbl
395 , x_MODIFIER_LIST_rec => l_MODIFIER_LIST_rec
396 , x_MODIFIERS_tbl => l_MODIFIERS_tbl
397 , x_QUALIFIERS_tbl => l_QUALIFIERS_tbl
398 , x_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl
399 );
400
401 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
402 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
403 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
404 RAISE FND_API.G_EXC_ERROR;
405 END IF;
406
407
408 -- Call QP_Modifiers_PVT.Lock_Modifiers
409 l_p_MODIFIER_LIST_rec := l_MODIFIER_LIST_rec;
410 l_p_MODIFIERS_tbl := l_MODIFIERS_tbl;
411 l_p_QUALIFIERS_tbl := l_QUALIFIERS_tbl;
412 l_p_PRICING_ATTR_tbl := l_PRICING_ATTR_tbl;
413
414 QP_Modifiers_PVT.Lock_Modifiers
415 ( p_api_version_number => 1.0
416 , p_init_msg_list => p_init_msg_list
417 , x_return_status => x_return_status
418 , x_msg_count => x_msg_count
419 , x_msg_data => x_msg_data
420 , p_MODIFIER_LIST_rec => l_p_MODIFIER_LIST_rec
421 , p_MODIFIERS_tbl => l_p_MODIFIERS_tbl
422 , p_QUALIFIERS_tbl => l_p_QUALIFIERS_tbl
423 , p_PRICING_ATTR_tbl => l_p_PRICING_ATTR_tbl
424 , x_MODIFIER_LIST_rec => l_MODIFIER_LIST_rec
425 , x_MODIFIERS_tbl => l_MODIFIERS_tbl
426 , x_QUALIFIERS_tbl => l_QUALIFIERS_tbl
427 , x_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl
428 );
429
430 -- Load Id OUT parameters.
431
432 x_MODIFIER_LIST_rec := l_MODIFIER_LIST_rec;
433 x_MODIFIERS_tbl := l_MODIFIERS_tbl;
434 x_QUALIFIERS_tbl := l_QUALIFIERS_tbl;
435 x_PRICING_ATTR_tbl := l_PRICING_ATTR_tbl;
436
437 -- If p_return_values is TRUE then convert Ids to Values.
438
439 IF FND_API.to_Boolean(p_return_values) THEN
440
441 Id_To_Value
442 ( p_MODIFIER_LIST_rec => l_MODIFIER_LIST_rec
443 , p_MODIFIERS_tbl => l_MODIFIERS_tbl
444 , p_QUALIFIERS_tbl => l_QUALIFIERS_tbl
445 , p_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl
446 , x_MODIFIER_LIST_val_rec => x_MODIFIER_LIST_val_rec
447 , x_MODIFIERS_val_tbl => x_MODIFIERS_val_tbl
448 , x_QUALIFIERS_val_tbl => x_QUALIFIERS_val_tbl
449 , x_PRICING_ATTR_val_tbl => x_PRICING_ATTR_val_tbl
450 );
451
452 END IF;
453
454 EXCEPTION
455
456 WHEN FND_API.G_EXC_ERROR THEN
457
458 x_return_status := FND_API.G_RET_STS_ERROR;
459
460 -- Get message count and data
461
462 OE_MSG_PUB.Count_And_Get
463 ( p_count => x_msg_count
464 , p_data => x_msg_data
465 );
466
467 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
468
469 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
470
471 -- Get message count and data
472
473 OE_MSG_PUB.Count_And_Get
474 ( p_count => x_msg_count
475 , p_data => x_msg_data
476 );
477
478 WHEN OTHERS THEN
479
480 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
481
482 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
483 THEN
484 OE_MSG_PUB.Add_Exc_Msg
485 ( G_PKG_NAME
486 , 'Lock_Modifiers'
487 );
488 END IF;
489
490 -- Get message count and data
491
492 OE_MSG_PUB.Count_And_Get
493 ( p_count => x_msg_count
494 , p_data => x_msg_data
495 );
496
497 oe_debug_pub.add('END lock_modifiers in Public');
498 END Lock_Modifiers;
499
500 -- Start of Comments
501 -- API name Get_Modifiers
502 -- Type Group
503 -- Function
504 --
505 -- Pre-reqs
506 --
507 -- Parameters
508 --
509 -- Version Current version = 1.0
510 -- Initial version = 1.0
511 --
512 -- Notes
513 --
514 -- End of Comments
515
516 PROCEDURE Get_Modifiers
517 ( p_api_version_number IN NUMBER
518 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
519 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
520 , x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
521 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
522 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
523 , p_list_header_id IN NUMBER :=
527 , x_MODIFIER_LIST_rec OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Modifier_List_Rec_Type
524 FND_API.G_MISS_NUM
525 , p_list_header IN VARCHAR2 :=
526 FND_API.G_MISS_CHAR
528 , x_MODIFIER_LIST_val_rec OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Modifier_List_Val_Rec_Type
529 , x_MODIFIERS_tbl OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Modifiers_Tbl_Type
530 , x_MODIFIERS_val_tbl OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Modifiers_Val_Tbl_Type
531 , x_QUALIFIERS_tbl OUT NOCOPY /* file.sql.39 change */ QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type
532 , x_QUALIFIERS_val_tbl OUT NOCOPY /* file.sql.39 change */ QP_Qualifier_Rules_PUB.Qualifiers_Val_Tbl_Type
533 , x_PRICING_ATTR_tbl OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Pricing_Attr_Tbl_Type
534 , x_PRICING_ATTR_val_tbl OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Pricing_Attr_Val_Tbl_Type
535 )
536 IS
537 l_api_version_number CONSTANT NUMBER := 1.0;
538 l_api_name CONSTANT VARCHAR2(30):= 'Get_Modifiers';
539 l_list_header_id NUMBER := p_list_header_id;
540 l_MODIFIER_LIST_rec QP_Modifiers_PUB.Modifier_List_Rec_Type;
541 l_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
542 l_QUALIFIERS_tbl QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
543 l_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
544 BEGIN
545
546 oe_debug_pub.add('BEGIN get_modifiers in Public');
547 -- Standard call to check for call compatibility
548
549 IF NOT FND_API.Compatible_API_Call
550 ( l_api_version_number
551 , p_api_version_number
552 , l_api_name
553 , G_PKG_NAME
554 )
555 THEN
556 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
557 END IF;
558
559 -- Standard check for Val/ID conversion
560
561 IF p_list_header = FND_API.G_MISS_CHAR
562 THEN
563
564 l_list_header_id := p_list_header_id;
565
566 ELSIF p_list_header_id <> FND_API.G_MISS_NUM THEN
567
568 l_list_header_id := p_list_header_id;
569
570 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
571 THEN
572
573 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
574 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_header');
575 OE_MSG_PUB.Add;
576
577 END IF;
578
579 ELSE
580
581 -- Convert Value to Id
582
583 l_list_header_id := QP_Value_To_Id.list_header
584 ( p_list_header => p_list_header
585 );
586
587 IF l_list_header_id = FND_API.G_MISS_NUM THEN
588 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
589 THEN
590
591 FND_MESSAGE.SET_NAME('QP','Invalid Business Object Value');
592 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_header');
593 OE_MSG_PUB.Add;
594
595 END IF;
596 END IF;
597
598 RAISE FND_API.G_EXC_ERROR;
599
600 END IF;
601
602
603 -- Call QP_Modifiers_PVT.Get_Modifiers
604
605 QP_Modifiers_PVT.Get_Modifiers
606 ( p_api_version_number => 1.0
607 , p_init_msg_list => p_init_msg_list
608 , x_return_status => x_return_status
609 , x_msg_count => x_msg_count
610 , x_msg_data => x_msg_data
611 , p_list_header_id => l_list_header_id
612 , x_MODIFIER_LIST_rec => l_MODIFIER_LIST_rec
613 , x_MODIFIERS_tbl => l_MODIFIERS_tbl
614 , x_QUALIFIERS_tbl => l_QUALIFIERS_tbl
615 , x_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl
616 );
617
618 -- Load Id OUT parameters.
619
620 x_MODIFIER_LIST_rec := l_MODIFIER_LIST_rec;
621 x_MODIFIERS_tbl := l_MODIFIERS_tbl;
622 x_QUALIFIERS_tbl := l_QUALIFIERS_tbl;
623 x_PRICING_ATTR_tbl := l_PRICING_ATTR_tbl;
624
625 -- If p_return_values is TRUE then convert Ids to Values.
626
627 IF FND_API.TO_BOOLEAN(p_return_values) THEN
628
629 Id_To_Value
630 ( p_MODIFIER_LIST_rec => l_MODIFIER_LIST_rec
631 , p_MODIFIERS_tbl => l_MODIFIERS_tbl
632 , p_QUALIFIERS_tbl => l_QUALIFIERS_tbl
633 , p_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl
634 , x_MODIFIER_LIST_val_rec => x_MODIFIER_LIST_val_rec
635 , x_MODIFIERS_val_tbl => x_MODIFIERS_val_tbl
636 , x_QUALIFIERS_val_tbl => x_QUALIFIERS_val_tbl
637 , x_PRICING_ATTR_val_tbl => x_PRICING_ATTR_val_tbl
638 );
639
640 END IF;
641
642 -- Set return status
643
644 x_return_status := FND_API.G_RET_STS_SUCCESS;
645
646 -- Get message count and data
647
648 OE_MSG_PUB.Count_And_Get
649 ( p_count => x_msg_count
650 , p_data => x_msg_data
651 );
652
653
654 EXCEPTION
655
656 WHEN FND_API.G_EXC_ERROR THEN
657
658 x_return_status := FND_API.G_RET_STS_ERROR;
659
660 -- Get message count and data
661
662 OE_MSG_PUB.Count_And_Get
666
663 ( p_count => x_msg_count
664 , p_data => x_msg_data
665 );
667 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
668
669 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
670
671 -- Get message count and data
672
673 OE_MSG_PUB.Count_And_Get
674 ( p_count => x_msg_count
675 , p_data => x_msg_data
676 );
677
678 WHEN OTHERS THEN
679
680 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
681
682 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
683 THEN
684 OE_MSG_PUB.Add_Exc_Msg
685 ( G_PKG_NAME
686 , 'Get_Modifiers'
687 );
688 END IF;
689
690 -- Get message count and data
691
692 OE_MSG_PUB.Count_And_Get
693 ( p_count => x_msg_count
694 , p_data => x_msg_data
695 );
696
697 oe_debug_pub.add('END get_modifiers in Public');
698 END Get_Modifiers;
699
700 -- Procedure Id_To_Value
701
702 PROCEDURE Id_To_Value
703 ( p_MODIFIER_LIST_rec IN QP_MODIFIERS_PUB.Modifier_List_Rec_Type
704 , p_MODIFIERS_tbl IN QP_MODIFIERS_PUB.Modifiers_Tbl_Type
705 , p_QUALIFIERS_tbl IN QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type
706 , p_PRICING_ATTR_tbl IN QP_MODIFIERS_PUB.Pricing_Attr_Tbl_Type
707 , x_MODIFIER_LIST_val_rec OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Modifier_List_Val_Rec_Type
708 , x_MODIFIERS_val_tbl OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Modifiers_Val_Tbl_Type
709 , x_QUALIFIERS_val_tbl OUT NOCOPY /* file.sql.39 change */ QP_Qualifier_Rules_PUB.Qualifiers_Val_Tbl_Type
710 , x_PRICING_ATTR_val_tbl OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Pricing_Attr_Val_Tbl_Type
711 )
712 IS
713 BEGIN
714
715 oe_debug_pub.add('BEGIN id_to_value in Public');
716 -- Convert MODIFIER_LIST
717
718 x_MODIFIER_LIST_val_rec := QP_Modifier_List_Util.Get_Values(p_MODIFIER_LIST_rec);
719
720 -- Convert MODIFIERS
721
722 FOR I IN 1..p_MODIFIERS_tbl.COUNT LOOP
723 x_MODIFIERS_val_tbl(I) :=
724 QP_Modifiers_Util.Get_Values(p_MODIFIERS_tbl(I));
725 END LOOP;
726
727 -- Convert QUALIFIERS
728
729 FOR I IN 1..p_QUALIFIERS_tbl.COUNT LOOP
730 x_QUALIFIERS_val_tbl(I) :=
731 QP_Qualifiers_Util.Get_Values(p_QUALIFIERS_tbl(I));
732 END LOOP;
733
734 -- Convert PRICING_ATTR
735
736 FOR I IN 1..p_PRICING_ATTR_tbl.COUNT LOOP
737 x_PRICING_ATTR_val_tbl(I) :=
738 QP_Pricing_Attr_Util.Get_Values(p_PRICING_ATTR_tbl(I));
739 END LOOP;
740
741 EXCEPTION
742
743 WHEN OTHERS THEN
744
745 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
746 THEN
747 OE_MSG_PUB.Add_Exc_Msg
748 ( G_PKG_NAME
749 , 'Id_To_Value'
750 );
751 END IF;
752
753 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
754
755 oe_debug_pub.add('END id_to_value in Public');
756 END Id_To_Value;
757
758 -- Procedure Value_To_Id
759
760 PROCEDURE Value_To_Id
761 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
762 , p_MODIFIER_LIST_rec IN QP_MODIFIERS_PUB.Modifier_List_Rec_Type
763 , p_MODIFIER_LIST_val_rec IN QP_MODIFIERS_PUB.Modifier_List_Val_Rec_Type
764 , p_MODIFIERS_tbl IN QP_MODIFIERS_PUB.Modifiers_Tbl_Type
765 , p_MODIFIERS_val_tbl IN QP_MODIFIERS_PUB.Modifiers_Val_Tbl_Type
766 , p_QUALIFIERS_tbl IN QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type
767 , p_QUALIFIERS_val_tbl IN QP_Qualifier_Rules_PUB.Qualifiers_Val_Tbl_Type
768 , p_PRICING_ATTR_tbl IN QP_MODIFIERS_PUB.Pricing_Attr_Tbl_Type
769 , p_PRICING_ATTR_val_tbl IN QP_MODIFIERS_PUB.Pricing_Attr_Val_Tbl_Type
770 , x_MODIFIER_LIST_rec OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Modifier_List_Rec_Type
771 , x_MODIFIERS_tbl OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Modifiers_Tbl_Type
772 , x_QUALIFIERS_tbl OUT NOCOPY /* file.sql.39 change */ QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type
773 , x_PRICING_ATTR_tbl OUT NOCOPY /* file.sql.39 change */ QP_MODIFIERS_PUB.Pricing_Attr_Tbl_Type
774 )
775 IS
776 l_MODIFIER_LIST_rec QP_MODIFIERS_PUB.Modifier_List_Rec_Type;
777 l_MODIFIERS_rec QP_MODIFIERS_PUB.Modifiers_Rec_Type;
778 l_QUALIFIERS_rec QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
779 l_PRICING_ATTR_rec QP_MODIFIERS_PUB.Pricing_Attr_Rec_Type;
780 l_index BINARY_INTEGER;
781 BEGIN
782
783 oe_debug_pub.add('START value_to_id in Public');
784
785 -- Init x_return_status.
786 x_return_status := FND_API.G_RET_STS_SUCCESS;
787
788
789 -- Convert MODIFIER_LIST
790
791 l_MODIFIER_LIST_rec := QP_Modifier_List_Util.Get_Ids
792 ( p_MODIFIER_LIST_rec => p_MODIFIER_LIST_rec
793 , p_MODIFIER_LIST_val_rec => p_MODIFIER_LIST_val_rec
794 );
795
796 x_MODIFIER_LIST_rec := l_MODIFIER_LIST_rec;
797
798 IF l_MODIFIER_LIST_rec.return_status = FND_API.G_RET_STS_ERROR THEN
799 x_return_status := FND_API.G_RET_STS_ERROR;
800 END IF;
804 x_MODIFIERS_tbl := p_MODIFIERS_tbl;
801
802 -- Convert MODIFIERS
803
805
806 l_index := p_MODIFIERS_val_tbl.FIRST;
807
808 WHILE l_index IS NOT NULL LOOP
809
810 l_MODIFIERS_rec := QP_Modifiers_Util.Get_Ids
811 ( p_MODIFIERS_rec => p_MODIFIERS_tbl(l_index)
812 , p_MODIFIERS_val_rec => p_MODIFIERS_val_tbl(l_index)
813 );
814
815 x_MODIFIERS_tbl(l_index) := l_MODIFIERS_rec;
816
817 IF l_MODIFIERS_rec.return_status = FND_API.G_RET_STS_ERROR THEN
818 x_return_status := FND_API.G_RET_STS_ERROR;
819 END IF;
820
821 l_index := p_MODIFIERS_val_tbl.NEXT(l_index);
822
823 END LOOP;
824
825 -- Convert QUALIFIERS
826
827 x_QUALIFIERS_tbl := p_QUALIFIERS_tbl;
828
829 l_index := p_QUALIFIERS_val_tbl.FIRST;
830
831 WHILE l_index IS NOT NULL LOOP
832
833 l_QUALIFIERS_rec := QP_Qualifiers_Util.Get_Ids
834 ( p_QUALIFIERS_rec => p_QUALIFIERS_tbl(l_index)
835 , p_QUALIFIERS_val_rec => p_QUALIFIERS_val_tbl(l_index)
836 );
837
838 x_QUALIFIERS_tbl(l_index) := l_QUALIFIERS_rec;
839
840 IF l_QUALIFIERS_rec.return_status = FND_API.G_RET_STS_ERROR THEN
841 x_return_status := FND_API.G_RET_STS_ERROR;
842 END IF;
843
844 l_index := p_QUALIFIERS_val_tbl.NEXT(l_index);
845
846 END LOOP;
847
848 -- Convert PRICING_ATTR
849
850 x_PRICING_ATTR_tbl := p_PRICING_ATTR_tbl;
851
852 l_index := p_PRICING_ATTR_val_tbl.FIRST;
853
854 WHILE l_index IS NOT NULL LOOP
855
856 l_PRICING_ATTR_rec := QP_Pricing_Attr_Util.Get_Ids
857 ( p_PRICING_ATTR_rec => p_PRICING_ATTR_tbl(l_index)
858 , p_PRICING_ATTR_val_rec => p_PRICING_ATTR_val_tbl(l_index)
859 );
860
861 x_PRICING_ATTR_tbl(l_index) := l_PRICING_ATTR_rec;
862
863 IF l_PRICING_ATTR_rec.return_status = FND_API.G_RET_STS_ERROR THEN
864 x_return_status := FND_API.G_RET_STS_ERROR;
865 END IF;
866
867 l_index := p_PRICING_ATTR_val_tbl.NEXT(l_index);
868
869 END LOOP;
870
871 oe_debug_pub.add('END value_to_id in Public');
872 EXCEPTION
873
874 WHEN OTHERS THEN
875
876 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
877 THEN
878 OE_MSG_PUB.Add_Exc_Msg
879 ( G_PKG_NAME
880 , 'Value_To_Id'
881 );
882 END IF;
883
884 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
885
886 END Value_To_Id;
887
888
889 END QP_Modifiers_GRP;