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