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