DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_PRICE_LIST_LINE_UTIL

Source


1 PACKAGE BODY OE_Price_List_Line_Util AS
2 /* $Header: OEXUPRLB.pls 120.2 2006/03/21 11:21:09 rnayani noship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'OE_Price_List_Line_Util';
7 
8 --  Procedure Clear_Dependent_Attr
9 
10 PROCEDURE Clear_Dependent_Attr
11 (   p_attr_id                       IN  NUMBER := FND_API.G_MISS_NUM
12 ,   p_PRICE_LIST_LINE_rec           IN  OE_Price_List_PUB.Price_List_Line_Rec_Type
13 ,   p_old_PRICE_LIST_LINE_rec       IN  OE_Price_List_PUB.Price_List_Line_Rec_Type :=
14                                         OE_Price_List_PUB.G_MISS_PRICE_LIST_LINE_REC
15 ,   x_PRICE_LIST_LINE_rec           OUT NOCOPY /* file.sql.39 change */ OE_Price_List_PUB.Price_List_Line_Rec_Type
16 )
17 IS
18 l_index                       NUMBER := 0;
19 l_src_attr_tbl                OE_GLOBALS.NUMBER_Tbl_Type;
20 l_dep_attr_tbl                OE_GLOBALS.NUMBER_Tbl_Type;
21 BEGIN
22 
23     --  Load out record
24 
25     x_PRICE_LIST_LINE_rec := p_PRICE_LIST_LINE_rec;
26 
27     --  If attr_id is missing compare old and new records and for
28     --  every changed attribute clear its dependent fields.
29 
30     IF p_attr_id = FND_API.G_MISS_NUM THEN
31 
32         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute1,p_old_PRICE_LIST_LINE_rec.attribute1)
33         THEN
34             l_index := l_index + 1;
35             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE1;
36         END IF;
37 
38         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute10,p_old_PRICE_LIST_LINE_rec.attribute10)
39         THEN
40             l_index := l_index + 1;
41             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE10;
42         END IF;
43 
44         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute11,p_old_PRICE_LIST_LINE_rec.attribute11)
45         THEN
46             l_index := l_index + 1;
47             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE11;
48         END IF;
49 
50         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute12,p_old_PRICE_LIST_LINE_rec.attribute12)
51         THEN
52             l_index := l_index + 1;
53             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE12;
54         END IF;
55 
56         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute13,p_old_PRICE_LIST_LINE_rec.attribute13)
57         THEN
58             l_index := l_index + 1;
59             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE13;
60         END IF;
61 
62         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute14,p_old_PRICE_LIST_LINE_rec.attribute14)
63         THEN
64             l_index := l_index + 1;
65             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE14;
66         END IF;
67 
68         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute15,p_old_PRICE_LIST_LINE_rec.attribute15)
69         THEN
70             l_index := l_index + 1;
71             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE15;
72         END IF;
73 
74         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute2,p_old_PRICE_LIST_LINE_rec.attribute2)
75         THEN
76             l_index := l_index + 1;
77             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE2;
78         END IF;
79 
80         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute3,p_old_PRICE_LIST_LINE_rec.attribute3)
81         THEN
82             l_index := l_index + 1;
83             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE3;
84         END IF;
85 
86         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute4,p_old_PRICE_LIST_LINE_rec.attribute4)
87         THEN
88             l_index := l_index + 1;
89             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE4;
90         END IF;
91 
92         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute5,p_old_PRICE_LIST_LINE_rec.attribute5)
93         THEN
94             l_index := l_index + 1;
95             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE5;
96         END IF;
97 
98         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute6,p_old_PRICE_LIST_LINE_rec.attribute6)
99         THEN
100             l_index := l_index + 1;
101             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE6;
102         END IF;
103 
104         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute7,p_old_PRICE_LIST_LINE_rec.attribute7)
105         THEN
106             l_index := l_index + 1;
107             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE7;
108         END IF;
109 
110         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute8,p_old_PRICE_LIST_LINE_rec.attribute8)
111         THEN
112             l_index := l_index + 1;
113             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE8;
114         END IF;
115 
116         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute9,p_old_PRICE_LIST_LINE_rec.attribute9)
117         THEN
118             l_index := l_index + 1;
119             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE9;
120         END IF;
121 
122         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.comments,p_old_PRICE_LIST_LINE_rec.comments)
123         THEN
124             l_index := l_index + 1;
125             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_COMMENTS;
126         END IF;
127 
128         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.context,p_old_PRICE_LIST_LINE_rec.context)
129         THEN
130             l_index := l_index + 1;
131             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_CONTEXT;
132         END IF;
133 
134         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.created_by,p_old_PRICE_LIST_LINE_rec.created_by)
135         THEN
136             l_index := l_index + 1;
137             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_CREATED_BY;
138         END IF;
139 
140         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.creation_date,p_old_PRICE_LIST_LINE_rec.creation_date)
141         THEN
142             l_index := l_index + 1;
143             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_CREATION_DATE;
144         END IF;
145 
146         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.customer_item_id,p_old_PRICE_LIST_LINE_rec.customer_item_id)
147         THEN
148             l_index := l_index + 1;
149             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_CUSTOMER_ITEM;
150         END IF;
151 
152         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.end_date_active,p_old_PRICE_LIST_LINE_rec.end_date_active)
153         THEN
154             l_index := l_index + 1;
155             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_END_DATE_ACTIVE;
156         END IF;
157 
158         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.inventory_item_id,p_old_PRICE_LIST_LINE_rec.inventory_item_id)
159         THEN
160             l_index := l_index + 1;
161             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_INVENTORY_ITEM;
162         END IF;
163 
164         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.last_updated_by,p_old_PRICE_LIST_LINE_rec.last_updated_by)
165         THEN
166             l_index := l_index + 1;
167             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_LAST_UPDATED_BY;
168         END IF;
169 
170         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.last_update_date,p_old_PRICE_LIST_LINE_rec.last_update_date)
171         THEN
172             l_index := l_index + 1;
173             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_LAST_UPDATE_DATE;
174         END IF;
175 
176         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.last_update_login,p_old_PRICE_LIST_LINE_rec.last_update_login)
177         THEN
178             l_index := l_index + 1;
179             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_LAST_UPDATE_LOGIN;
180         END IF;
181 
182         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_price,p_old_PRICE_LIST_LINE_rec.list_price)
183         THEN
184             l_index := l_index + 1;
185             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_LIST_PRICE;
186         END IF;
187 
188         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.method_code,p_old_PRICE_LIST_LINE_rec.method_code)
189         THEN
190             l_index := l_index + 1;
191             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_METHOD;
192         END IF;
193 
194         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.price_list_id,p_old_PRICE_LIST_LINE_rec.price_list_id)
195         THEN
196             l_index := l_index + 1;
197             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICE_LIST;
198         END IF;
199 
200         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.price_list_line_id,p_old_PRICE_LIST_LINE_rec.price_list_line_id)
201         THEN
202             l_index := l_index + 1;
203             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICE_LIST_LINE;
204         END IF;
205 
206         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.pricing_attribute1,p_old_PRICE_LIST_LINE_rec.pricing_attribute1)
207         THEN
208             l_index := l_index + 1;
209             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE1;
210         END IF;
211 
212         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.pricing_attribute10,p_old_PRICE_LIST_LINE_rec.pricing_attribute10)
213         THEN
214             l_index := l_index + 1;
215             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE10;
216         END IF;
217 
218         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.pricing_attribute11,p_old_PRICE_LIST_LINE_rec.pricing_attribute11)
219         THEN
220             l_index := l_index + 1;
221             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE11;
222         END IF;
223 
224         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.pricing_attribute12,p_old_PRICE_LIST_LINE_rec.pricing_attribute12)
225         THEN
226             l_index := l_index + 1;
227             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE12;
228         END IF;
229 
230         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.pricing_attribute13,p_old_PRICE_LIST_LINE_rec.pricing_attribute13)
231         THEN
232             l_index := l_index + 1;
233             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE13;
234         END IF;
235 
236         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.pricing_attribute14,p_old_PRICE_LIST_LINE_rec.pricing_attribute14)
237         THEN
238             l_index := l_index + 1;
239             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE14;
240         END IF;
241 
242         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.pricing_attribute15,p_old_PRICE_LIST_LINE_rec.pricing_attribute15)
243         THEN
244             l_index := l_index + 1;
245             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE15;
246         END IF;
247 
248         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.pricing_attribute2,p_old_PRICE_LIST_LINE_rec.pricing_attribute2)
249         THEN
250             l_index := l_index + 1;
251             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE2;
252         END IF;
253 
254         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.pricing_attribute3,p_old_PRICE_LIST_LINE_rec.pricing_attribute3)
255         THEN
256             l_index := l_index + 1;
257             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE3;
258         END IF;
259 
260         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.pricing_attribute4,p_old_PRICE_LIST_LINE_rec.pricing_attribute4)
261         THEN
262             l_index := l_index + 1;
263             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE4;
264         END IF;
265 
266         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.pricing_attribute5,p_old_PRICE_LIST_LINE_rec.pricing_attribute5)
267         THEN
268             l_index := l_index + 1;
269             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE5;
270         END IF;
271 
272         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.pricing_attribute6,p_old_PRICE_LIST_LINE_rec.pricing_attribute6)
273         THEN
274             l_index := l_index + 1;
275             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE6;
276         END IF;
277 
278         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.pricing_attribute7,p_old_PRICE_LIST_LINE_rec.pricing_attribute7)
279         THEN
280             l_index := l_index + 1;
281             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE7;
282         END IF;
283 
284         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.pricing_attribute8,p_old_PRICE_LIST_LINE_rec.pricing_attribute8)
285         THEN
286             l_index := l_index + 1;
287             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE8;
288         END IF;
289 
290         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.pricing_attribute9,p_old_PRICE_LIST_LINE_rec.pricing_attribute9)
291         THEN
292             l_index := l_index + 1;
293             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE9;
294         END IF;
295 
296         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.pricing_context,p_old_PRICE_LIST_LINE_rec.pricing_context)
297         THEN
298             l_index := l_index + 1;
299             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_CONTEXT;
300         END IF;
301 
302         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.pricing_rule_id,p_old_PRICE_LIST_LINE_rec.pricing_rule_id)
303         THEN
304             l_index := l_index + 1;
305             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_RULE;
306         END IF;
307 
308         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.primary,p_old_PRICE_LIST_LINE_rec.primary)
309         THEN
310             l_index := l_index + 1;
311             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRIMARY;
312         END IF;
313 
314         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.program_application_id,p_old_PRICE_LIST_LINE_rec.program_application_id)
315         THEN
316             l_index := l_index + 1;
317             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PROGRAM_APPLICATION;
318         END IF;
319 
320         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.program_id,p_old_PRICE_LIST_LINE_rec.program_id)
321         THEN
322             l_index := l_index + 1;
323             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PROGRAM;
324         END IF;
325 
326         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.program_update_date,p_old_PRICE_LIST_LINE_rec.program_update_date)
327         THEN
328             l_index := l_index + 1;
329             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PROGRAM_UPDATE_DATE;
330         END IF;
331 
332         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.reprice_flag,p_old_PRICE_LIST_LINE_rec.reprice_flag)
333         THEN
334             l_index := l_index + 1;
335             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_REPRICE;
336         END IF;
337 
338         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.request_id,p_old_PRICE_LIST_LINE_rec.request_id)
339         THEN
340             l_index := l_index + 1;
341             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_REQUEST;
342         END IF;
343 
344         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision,p_old_PRICE_LIST_LINE_rec.revision)
345         THEN
346             l_index := l_index + 1;
347             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_REVISION;
348         END IF;
349 
350         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision_date,p_old_PRICE_LIST_LINE_rec.revision_date)
351         THEN
352             l_index := l_index + 1;
353             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_REVISION_DATE;
354         END IF;
355 
356         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision_reason_code,p_old_PRICE_LIST_LINE_rec.revision_reason_code)
357         THEN
358             l_index := l_index + 1;
359             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_REVISION_REASON;
360         END IF;
361 
362         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.start_date_active,p_old_PRICE_LIST_LINE_rec.start_date_active)
363         THEN
364             l_index := l_index + 1;
365             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_START_DATE_ACTIVE;
366         END IF;
367 
368         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.unit_code,p_old_PRICE_LIST_LINE_rec.unit_code)
369         THEN
370             l_index := l_index + 1;
371             l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_UNIT;
372         END IF;
373 
374     ELSIF p_attr_id = G_ATTRIBUTE1 THEN
375         l_index := l_index + 1;
376         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE1;
377     ELSIF p_attr_id = G_ATTRIBUTE10 THEN
378         l_index := l_index + 1;
379         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE10;
380     ELSIF p_attr_id = G_ATTRIBUTE11 THEN
381         l_index := l_index + 1;
382         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE11;
383     ELSIF p_attr_id = G_ATTRIBUTE12 THEN
384         l_index := l_index + 1;
385         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE12;
386     ELSIF p_attr_id = G_ATTRIBUTE13 THEN
387         l_index := l_index + 1;
388         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE13;
389     ELSIF p_attr_id = G_ATTRIBUTE14 THEN
390         l_index := l_index + 1;
391         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE14;
392     ELSIF p_attr_id = G_ATTRIBUTE15 THEN
393         l_index := l_index + 1;
394         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE15;
395     ELSIF p_attr_id = G_ATTRIBUTE2 THEN
396         l_index := l_index + 1;
397         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE2;
398     ELSIF p_attr_id = G_ATTRIBUTE3 THEN
399         l_index := l_index + 1;
400         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE3;
401     ELSIF p_attr_id = G_ATTRIBUTE4 THEN
402         l_index := l_index + 1;
403         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE4;
404     ELSIF p_attr_id = G_ATTRIBUTE5 THEN
405         l_index := l_index + 1;
406         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE5;
407     ELSIF p_attr_id = G_ATTRIBUTE6 THEN
408         l_index := l_index + 1;
409         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE6;
410     ELSIF p_attr_id = G_ATTRIBUTE7 THEN
411         l_index := l_index + 1;
412         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE7;
413     ELSIF p_attr_id = G_ATTRIBUTE8 THEN
414         l_index := l_index + 1;
415         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE8;
416     ELSIF p_attr_id = G_ATTRIBUTE9 THEN
417         l_index := l_index + 1;
418         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE9;
419     ELSIF p_attr_id = G_COMMENTS THEN
420         l_index := l_index + 1;
421         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_COMMENTS;
422     ELSIF p_attr_id = G_CONTEXT THEN
423         l_index := l_index + 1;
424         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_CONTEXT;
425     ELSIF p_attr_id = G_CREATED_BY THEN
426         l_index := l_index + 1;
427         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_CREATED_BY;
428     ELSIF p_attr_id = G_CREATION_DATE THEN
429         l_index := l_index + 1;
430         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_CREATION_DATE;
431     ELSIF p_attr_id = G_CUSTOMER_ITEM THEN
432         l_index := l_index + 1;
433         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_CUSTOMER_ITEM;
434     ELSIF p_attr_id = G_END_DATE_ACTIVE THEN
435         l_index := l_index + 1;
436         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_END_DATE_ACTIVE;
437     ELSIF p_attr_id = G_INVENTORY_ITEM THEN
438         l_index := l_index + 1;
439         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_INVENTORY_ITEM;
440     ELSIF p_attr_id = G_LAST_UPDATED_BY THEN
441         l_index := l_index + 1;
442         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_LAST_UPDATED_BY;
443     ELSIF p_attr_id = G_LAST_UPDATE_DATE THEN
444         l_index := l_index + 1;
445         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_LAST_UPDATE_DATE;
446     ELSIF p_attr_id = G_LAST_UPDATE_LOGIN THEN
447         l_index := l_index + 1;
448         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_LAST_UPDATE_LOGIN;
449     ELSIF p_attr_id = G_LIST_PRICE THEN
450         l_index := l_index + 1;
451         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_LIST_PRICE;
452     ELSIF p_attr_id = G_METHOD THEN
453         l_index := l_index + 1;
454         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_METHOD;
455     ELSIF p_attr_id = G_PRICE_LIST THEN
456         l_index := l_index + 1;
457         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICE_LIST;
458     ELSIF p_attr_id = G_PRICE_LIST_LINE THEN
459         l_index := l_index + 1;
460         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICE_LIST_LINE;
461     ELSIF p_attr_id = G_PRICING_ATTRIBUTE1 THEN
462         l_index := l_index + 1;
463         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE1;
464     ELSIF p_attr_id = G_PRICING_ATTRIBUTE10 THEN
465         l_index := l_index + 1;
466         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE10;
467     ELSIF p_attr_id = G_PRICING_ATTRIBUTE11 THEN
468         l_index := l_index + 1;
469         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE11;
470     ELSIF p_attr_id = G_PRICING_ATTRIBUTE12 THEN
471         l_index := l_index + 1;
472         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE12;
473     ELSIF p_attr_id = G_PRICING_ATTRIBUTE13 THEN
474         l_index := l_index + 1;
475         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE13;
476     ELSIF p_attr_id = G_PRICING_ATTRIBUTE14 THEN
477         l_index := l_index + 1;
478         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE14;
479     ELSIF p_attr_id = G_PRICING_ATTRIBUTE15 THEN
480         l_index := l_index + 1;
481         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE15;
482     ELSIF p_attr_id = G_PRICING_ATTRIBUTE2 THEN
483         l_index := l_index + 1;
484         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE2;
485     ELSIF p_attr_id = G_PRICING_ATTRIBUTE3 THEN
486         l_index := l_index + 1;
487         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE3;
488     ELSIF p_attr_id = G_PRICING_ATTRIBUTE4 THEN
489         l_index := l_index + 1;
490         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE4;
491     ELSIF p_attr_id = G_PRICING_ATTRIBUTE5 THEN
492         l_index := l_index + 1;
493         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE5;
494     ELSIF p_attr_id = G_PRICING_ATTRIBUTE6 THEN
495         l_index := l_index + 1;
496         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE6;
497     ELSIF p_attr_id = G_PRICING_ATTRIBUTE7 THEN
498         l_index := l_index + 1;
499         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE7;
500     ELSIF p_attr_id = G_PRICING_ATTRIBUTE8 THEN
501         l_index := l_index + 1;
502         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE8;
503     ELSIF p_attr_id = G_PRICING_ATTRIBUTE9 THEN
504         l_index := l_index + 1;
505         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_ATTRIBUTE9;
506     ELSIF p_attr_id = G_PRICING_CONTEXT THEN
507         l_index := l_index + 1;
508         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_CONTEXT;
509     ELSIF p_attr_id = G_PRICING_RULE THEN
510         l_index := l_index + 1;
511         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRICING_RULE;
512     ELSIF p_attr_id = G_PRIMARY THEN
513         l_index := l_index + 1;
514         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PRIMARY;
515     ELSIF p_attr_id = G_PROGRAM_APPLICATION THEN
516         l_index := l_index + 1;
517         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PROGRAM_APPLICATION;
518     ELSIF p_attr_id = G_PROGRAM THEN
519         l_index := l_index + 1;
520         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PROGRAM;
521     ELSIF p_attr_id = G_PROGRAM_UPDATE_DATE THEN
522         l_index := l_index + 1;
523         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_PROGRAM_UPDATE_DATE;
524     ELSIF p_attr_id = G_REPRICE THEN
525         l_index := l_index + 1;
526         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_REPRICE;
527     ELSIF p_attr_id = G_REQUEST THEN
528         l_index := l_index + 1;
529         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_REQUEST;
530     ELSIF p_attr_id = G_REVISION THEN
531         l_index := l_index + 1;
532         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_REVISION;
533     ELSIF p_attr_id = G_REVISION_DATE THEN
534         l_index := l_index + 1;
535         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_REVISION_DATE;
536     ELSIF p_attr_id = G_REVISION_REASON THEN
537         l_index := l_index + 1;
538         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_REVISION_REASON;
539     ELSIF p_attr_id = G_START_DATE_ACTIVE THEN
540         l_index := l_index + 1;
541         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_START_DATE_ACTIVE;
542     ELSIF p_attr_id = G_UNIT THEN
543         l_index := l_index + 1;
544         l_src_attr_tbl(l_index) := OE_PRICE_LIST_LINE_UTIL.G_UNIT;
545     END IF;
546 
547 END Clear_Dependent_Attr;
548 
549 --  Procedure Apply_Attribute_Changes
550 
551 PROCEDURE Apply_Attribute_Changes
552 (   p_PRICE_LIST_LINE_rec           IN  OE_Price_List_PUB.Price_List_Line_Rec_Type
553 ,   p_old_PRICE_LIST_LINE_rec       IN  OE_Price_List_PUB.Price_List_Line_Rec_Type :=
554                                         OE_Price_List_PUB.G_MISS_PRICE_LIST_LINE_REC
555 ,   x_PRICE_LIST_LINE_rec           OUT NOCOPY /* file.sql.39 change */ OE_Price_List_PUB.Price_List_Line_Rec_Type
556 )
557 IS
558 l_primary_exists BOOLEAN;
559 BEGIN
560 
561     oe_debug_pub.add('Entering OE_Price_List_Line_Util.Apply_Attribute_Changes' || p_Price_List_Line_rec.price_list_id || ' ' || p_PRICE_LIST_LINE_rec.price_list_line_id);
562 
563     --  Load out record
564 
565     x_PRICE_LIST_LINE_rec := p_PRICE_LIST_LINE_rec;
566 
567     IF ( NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.attribute1,p_old_Price_List_Line_rec.attribute1) )
568     OR ( NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.attribute10,p_old_Price_List_Line_rec.attribute10))
569     OR ( NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.attribute11,p_old_Price_List_Line_rec.attribute11) )
570     OR ( NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.attribute12,p_old_Price_List_Line_rec.attribute12))
571     OR ( NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.attribute13,p_old_Price_List_Line_rec.attribute13))
572     OR (NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.attribute14,p_old_Price_List_Line_rec.attribute14))
573     OR (NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.attribute15,p_old_Price_List_Line_rec.attribute15))
574     OR (NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.attribute2,p_old_Price_List_Line_rec.attribute2))
575     OR (NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.attribute3,p_old_Price_List_Line_rec.attribute3))
576     OR (NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.attribute4,p_old_Price_List_Line_rec.attribute4))
577     OR (NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.attribute5,p_old_Price_List_Line_rec.attribute5))
578     OR (NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.attribute6,p_old_Price_List_Line_rec.attribute6))
579     OR (NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.attribute7,p_old_Price_List_Line_rec.attribute7))
580     OR (NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.attribute8,p_old_Price_List_Line_rec.attribute8))
581     OR (NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.attribute9,p_old_Price_List_Line_rec.attribute9))
582     OR (NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.context,p_old_Price_List_Line_rec.context))
583     THEN
584 	        --  Validate descriptive flexfield.
585 
586         IF NOT OE_Validate_Attr.Desc_Flex( 'PRICE_LIST_LINE' ) THEN
587             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
588         END IF;
589 
590     END IF;
591 
592     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute1,p_old_PRICE_LIST_LINE_rec.attribute1)
593     THEN
594         NULL;
595     END IF;
596 
597     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute10,p_old_PRICE_LIST_LINE_rec.attribute10)
598     THEN
599         NULL;
600     END IF;
601 
602     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute11,p_old_PRICE_LIST_LINE_rec.attribute11)
603     THEN
604         NULL;
605     END IF;
606 
607     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute12,p_old_PRICE_LIST_LINE_rec.attribute12)
608     THEN
609         NULL;
610     END IF;
611 
612     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute13,p_old_PRICE_LIST_LINE_rec.attribute13)
613     THEN
614         NULL;
615     END IF;
616 
617     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute14,p_old_PRICE_LIST_LINE_rec.attribute14)
618     THEN
619         NULL;
620     END IF;
621 
622     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute15,p_old_PRICE_LIST_LINE_rec.attribute15)
623     THEN
624         NULL;
625     END IF;
626 
627     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute2,p_old_PRICE_LIST_LINE_rec.attribute2)
628     THEN
629         NULL;
630     END IF;
631 
632     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute3,p_old_PRICE_LIST_LINE_rec.attribute3)
633     THEN
634         NULL;
635     END IF;
636 
637     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute4,p_old_PRICE_LIST_LINE_rec.attribute4)
638     THEN
639         NULL;
640     END IF;
641 
642     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute5,p_old_PRICE_LIST_LINE_rec.attribute5)
643     THEN
644         NULL;
645     END IF;
646 
647     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute6,p_old_PRICE_LIST_LINE_rec.attribute6)
648     THEN
649         NULL;
650     END IF;
651 
652     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute7,p_old_PRICE_LIST_LINE_rec.attribute7)
653     THEN
654         NULL;
655     END IF;
656 
657     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute8,p_old_PRICE_LIST_LINE_rec.attribute8)
658     THEN
659         NULL;
660     END IF;
661 
662     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute9,p_old_PRICE_LIST_LINE_rec.attribute9)
663     THEN
664         NULL;
665     END IF;
666 
667 
668     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.comments,p_old_Price_List_Line_rec.comments)
669     THEN
670         IF NOT OE_Validate_Attr.Comments(p_Price_List_Line_rec.comments) THEN
671             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
672         END IF;
673     END IF;
674 
675     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.context,p_old_Price_List_Line_rec.context)
676     THEN
677         NULL;  /* need to figure out how to check this for desc flex field */
678     END IF;
679 
680     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.created_by,p_old_Price_List_Line_rec.created_by)
681     THEN
682         IF NOT OE_Validate_Attr.Created_By(p_Price_List_Line_rec.created_by) THEN
683             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
684         END IF;
685     END IF;
686 
687     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.creation_date,p_old_Price_List_Line_rec.creation_date)
688     THEN
689         IF NOT OE_Validate_Attr.Creation_Date(p_Price_List_Line_rec.creation_date)
690 	THEN
691             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
692         END IF;
693     END IF;
694 
695     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.customer_item_id,p_old_Price_List_Line_rec.customer_item_id)
696     THEN
697         IF NOT OE_Validate_Attr.Customer_Item(p_Price_List_Line_rec.customer_item_id)
698 	THEN
699             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
700         END IF;
701     END IF;
702 
703     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.end_date_active,p_old_Price_List_Line_rec.end_date_active)
704     THEN
705         IF NOT OE_Validate_Attr.End_Date_Active(p_Price_List_Line_rec.end_date_active) THEN
706             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
707 
708          ELSIF NOT OE_Validate_Attr.Start_Date_End_Date(
709                        p_Price_List_Line_rec.start_date_active,
710                        p_Price_List_Line_rec.end_date_active) THEN
711             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
712 
713         END IF;
714     END IF;
715 
716     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.inventory_item_id,p_old_Price_List_Line_rec.inventory_item_id)
717     THEN
718         IF NOT OE_Validate_Attr.Inventory_Item(p_Price_List_Line_rec.inventory_item_id) THEN
719             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
720         END IF;
721     END IF;
722 
723     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.last_updated_by,p_old_Price_List_Line_rec.last_updated_by)
724     THEN
725         IF NOT OE_Validate_Attr.Last_Updated_By(p_Price_List_Line_rec.last_updated_by)
726 	THEN
727             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
728         END IF;
729     END IF;
730 
731     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.last_update_date,p_old_Price_List_Line_rec.last_update_date)
732     THEN
733 	IF NOT OE_Validate_Attr.Last_Update_Date(p_Price_List_Line_rec.last_update_date) THEN
734             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
735         END IF;
736     END IF;
737 
738     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.last_update_login,p_old_Price_List_Line_rec.last_update_login)
739     THEN
740         IF NOT OE_Validate_Attr.Last_Update_Login(p_Price_List_Line_rec.last_update_login) THEN
741             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
742         END IF;
743     END IF;
744 
745     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.list_price,p_old_Price_List_Line_rec.list_price)
746     THEN
747         IF NOT OE_Validate_Attr.List_Price(p_Price_List_Line_rec.list_price) THEN
748             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
749         END IF;
750     END IF;
751 
752     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.method_code,p_old_Price_List_Line_rec.method_code)
753     THEN
754         IF NOT OE_Validate_Attr.Method(p_Price_List_Line_rec.method_code) THEN
755             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
756         END IF;
757     END IF;
758 
759     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.price_list_id,p_old_Price_List_Line_rec.price_list_id)
760     THEN
761         IF NOT OE_Validate_Attr.Price_List(p_Price_List_Line_rec.price_list_id)
762 	THEN
763             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
764         END IF;
765     END IF;
766 
767     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.price_list_line_id,p_old_Price_List_Line_rec.price_list_line_id)
768     THEN
769         IF NOT OE_Validate_Attr.Price_List_Line(p_Price_List_Line_rec.price_list_line_id) THEN
770             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
771         END IF;
772     END IF;
773 
774     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.pricing_attribute1,p_old_Price_List_Line_rec.pricing_attribute1)
775     THEN
776         IF NOT OE_Validate_Attr.Pricing_Attribute1(p_Price_List_Line_rec.pricing_attribute1) THEN
777             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
778         END IF;
779     END IF;
780 
781     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.pricing_attribute10,p_old_Price_List_Line_rec.pricing_attribute10)
782     THEN
783         IF NOT OE_Validate_Attr.Pricing_Attribute10(p_Price_List_Line_rec.pricing_attribute10)
784 	THEN
785             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
786         END IF;
787     END IF;
788 
789     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.pricing_attribute11,p_old_Price_List_Line_rec.pricing_attribute11)
790     THEN
791         IF NOT OE_Validate_Attr.Pricing_Attribute11(p_Price_List_Line_rec.pricing_attribute11)
792 	THEN
793             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
794         END IF;
795     END IF;
796 
797     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.pricing_attribute12,p_old_Price_List_Line_rec.pricing_attribute12)
798     THEN
799         IF NOT OE_Validate_Attr.Pricing_Attribute12(p_Price_List_Line_rec.pricing_attribute12)
800 	THEN
801             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
802         END IF;
803     END IF;
804 
805     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.pricing_attribute13,p_old_Price_List_Line_rec.pricing_attribute13)
806     THEN
807         IF NOT OE_Validate_Attr.Pricing_Attribute13(p_Price_List_Line_rec.pricing_attribute13)
808 	THEN
809             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
810         END IF;
811     END IF;
812 
813     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.pricing_attribute14,p_old_Price_List_Line_rec.pricing_attribute14)
814     THEN
815         IF NOT OE_Validate_Attr.Pricing_Attribute14(p_Price_List_Line_rec.pricing_attribute14)
816 	THEN
817             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
818         END IF;
819     END IF;
820 
821     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.pricing_attribute15,p_old_Price_List_Line_rec.pricing_attribute15)
822     THEN
823         IF NOT OE_Validate_Attr.Pricing_Attribute15(p_Price_List_Line_rec.pricing_attribute15)
824 	THEN
825             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
826         END IF;
827     END IF;
828 
829     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.pricing_attribute2,p_old_Price_List_Line_rec.pricing_attribute2)
830     THEN
831         IF NOT OE_Validate_Attr.Pricing_Attribute2(p_Price_List_Line_rec.pricing_attribute2)
832 	THEN
833             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
834         END IF;
835     END IF;
836 
837     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.pricing_attribute3,p_old_Price_List_Line_rec.pricing_attribute3)
838     THEN
839         IF NOT OE_Validate_Attr.Pricing_Attribute3(p_Price_List_Line_rec.pricing_attribute3)
840 	THEN
841             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
842         END IF;
843     END IF;
844 
845     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.pricing_attribute4,p_old_Price_List_Line_rec.pricing_attribute4)
846     THEN
847         IF NOT OE_Validate_Attr.Pricing_Attribute4(p_Price_List_Line_rec.pricing_attribute4)
848 	THEN
849             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
850         END IF;
851     END IF;
852 
853     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.pricing_attribute5,p_old_Price_List_Line_rec.pricing_attribute5)
854     THEN
855         IF NOT OE_Validate_Attr.Pricing_Attribute5(p_Price_List_Line_rec.pricing_attribute5)
856 	THEN
857             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
858         END IF;
859     END IF;
860 
861     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.pricing_attribute6,p_old_Price_List_Line_rec.pricing_attribute6)
862     THEN
863        IF NOT OE_Validate_Attr.Pricing_Attribute6(p_Price_List_Line_rec.pricing_attribute6)
864 	THEN
865             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
866         END IF;
867     END IF;
868 
869     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.pricing_attribute7,p_old_Price_List_Line_rec.pricing_attribute7)
870     THEN
871         IF NOT OE_Validate_Attr.Pricing_Attribute7(p_Price_List_Line_rec.pricing_attribute7)
872 	THEN
873             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
874         END IF;
875     END IF;
876 
877     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.pricing_attribute8,p_old_Price_List_Line_rec.pricing_attribute8)
878     THEN
879         IF NOT OE_Validate_Attr.Pricing_Attribute8(p_Price_List_Line_rec.pricing_attribute8)
880 	THEN
881             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
882         END IF;
883     END IF;
884 
885     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.pricing_attribute9,p_old_Price_List_Line_rec.pricing_attribute9)
886     THEN
887         IF NOT OE_Validate_Attr.Pricing_Attribute9(p_Price_List_Line_rec.pricing_attribute9)
888 	THEN
889             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
890         END IF;
891     END IF;
892 
893     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.pricing_context,p_old_Price_List_Line_rec.pricing_context)
894     THEN
895         IF NOT OE_Validate_Attr.Pricing_Context(p_Price_List_Line_rec.pricing_context) THEN
896             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
897         END IF;
898     END IF;
899 
900     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.pricing_rule_id,p_old_Price_List_Line_rec.pricing_rule_id)
901     THEN
902         IF NOT OE_Validate_Attr.Pricing_Rule(p_Price_List_Line_rec.pricing_rule_id)
903 	THEN
904             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
905         END IF;
906     END IF;
907 
908     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.program_application_id,p_old_Price_List_Line_rec.program_application_id)
909     THEN
910         IF NOT OE_Validate_Attr.Program_Application(p_Price_List_Line_rec.program_application_id) THEN
911             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
912         END IF;
913     END IF;
914 
915     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.program_id,p_old_Price_List_Line_rec.program_id)
916     THEN
917 	IF NOT OE_Validate_Attr.Program(p_Price_List_Line_rec.program_id) THEN
918             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
919         END IF;
920     END IF;
921 
922     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.program_update_date,p_old_Price_List_Line_rec.program_update_date)
923     THEN
924         IF NOT OE_Validate_Attr.Program_Update_Date(p_Price_List_Line_rec.program_update_date) THEN
925             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
926         END IF;
927     END IF;
928 
929     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.reprice_flag,p_old_Price_List_Line_rec.reprice_flag)
930     THEN
931         IF NOT OE_Validate_Attr.Reprice(p_Price_List_Line_rec.reprice_flag) THEN
932             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
933         END IF;
934     END IF;
935 
936     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.request_id,p_old_Price_List_Line_rec.request_id)
937     THEN
938         IF NOT OE_Validate_Attr.Request(p_Price_List_Line_rec.request_id) THEN
939             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
940         END IF;
941     END IF;
942 
943     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.revision,p_old_Price_List_Line_rec.revision)
944     THEN
945         IF NOT OE_Validate_Attr.Revision(p_Price_List_Line_rec.revision) THEN
946             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
947         END IF;
948     END IF;
949 
950     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.revision_date,p_old_Price_List_Line_rec.revision_date)
951     THEN
952         IF NOT OE_Validate_Attr.Revision_Date(p_Price_List_Line_rec.revision_date) THEN
953             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
954         END IF;
955     END IF;
956 
957     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.revision_reason_code,p_old_Price_List_Line_rec.revision_reason_code)
958     THEN
959         IF NOT OE_Validate_Attr.Revision_Reason(p_Price_List_Line_rec.revision_reason_code) THEN
960             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
961         END IF;
962     END IF;
963 
964     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.start_date_active,p_old_Price_List_Line_rec.start_date_active)
965     THEN
966         IF NOT OE_Validate_Attr.Start_Date_Active(p_Price_List_Line_rec.start_date_active) THEN
967             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
968 
969         ELSIF NOT OE_Validate_Attr.Start_Date_End_Date(
970                        p_Price_List_Line_rec.start_date_active,
971                        p_Price_List_Line_rec.end_date_active) THEN
972             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
973 
974         END IF;
975     END IF;
976 
977     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.unit_code,p_old_Price_List_Line_rec.unit_code)
978     THEN
979         IF NOT OE_Validate_Attr.Unit(p_Price_List_Line_rec.unit_code) THEN
980             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
981         END IF;
982     END IF;
983 
984     IF NOT OE_GLOBALS.Equal(p_Price_List_Line_rec.primary,p_old_Price_List_Line_rec.primary)
985     THEN
986 
987 -- 2 parameters added start date and end date :: Geresh
988        l_primary_exists :=
989                  OE_VALIDATE_ATTR.PRIMARY_EXISTS(
990                  p_Price_List_Line_rec.price_list_id,
991                  p_Price_List_Line_rec.inventory_item_id,
992                  p_Price_List_Line_rec.customer_item_id,
993                  p_Price_List_Line_rec.pricing_attribute1,
994                  p_Price_List_Line_rec.pricing_attribute2,
995                  p_Price_List_Line_rec.pricing_attribute3,
996                  p_Price_List_Line_rec.pricing_attribute4,
997                  p_Price_List_Line_rec.pricing_attribute5,
998                  p_Price_List_Line_rec.pricing_attribute6,
999                  p_Price_List_Line_rec.pricing_attribute7,
1000                  p_Price_List_Line_rec.pricing_attribute8,
1001                  p_Price_List_Line_rec.pricing_attribute9,
1002                  p_Price_List_Line_rec.pricing_attribute10,
1003                  p_Price_List_Line_rec.pricing_attribute11,
1004                  p_Price_List_Line_rec.pricing_attribute12,
1005                  p_Price_List_Line_rec.pricing_attribute13,
1006                  p_Price_List_Line_rec.pricing_attribute14,
1007                  p_Price_List_Line_rec.pricing_attribute15,
1008 		 p_Price_List_Line_rec.start_date_active ,
1009 		 p_Price_List_Line_rec.end_date_active );
1010 
1011       oe_debug_pub.add('price line rec primary ulb is : ' || p_Price_List_Line_rec.primary);
1012 
1013       IF p_Price_List_Line_rec.primary = 'Y' THEN
1014 
1015          IF l_primary_exists THEN
1016 
1017 /*
1018             x_Price_List_Line_rec.primary := 'N';
1019 */
1020 
1021 	 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1022          THEN
1023 	       	FND_MESSAGE.SET_NAME('OE','OE_CANNOT_CREATE_PRIMARY');
1024             	OE_MSG_PUB.Add;
1025 
1026          END IF;
1027 
1028 
1029             x_Price_List_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
1030 
1031          END IF;
1032 
1033 
1034 
1035       END IF;
1036 
1037     END IF;
1038 
1039     oe_debug_pub.add('Exiting OE_Price_List_Line_Util.Apply_Attribute_Changes');
1040 
1041 END Apply_Attribute_Changes;
1042 
1043 
1044 --  Function Complete_Record
1045 
1046 FUNCTION Complete_Record
1047 (   p_PRICE_LIST_LINE_rec           IN  OE_Price_List_PUB.Price_List_Line_Rec_Type
1048 ,   p_old_PRICE_LIST_LINE_rec       IN  OE_Price_List_PUB.Price_List_Line_Rec_Type
1049 ) RETURN OE_Price_List_PUB.Price_List_Line_Rec_Type
1050 IS
1051 l_PRICE_LIST_LINE_rec         OE_Price_List_PUB.Price_List_Line_Rec_Type := p_PRICE_LIST_LINE_rec;
1052 BEGIN
1053 
1054     IF l_PRICE_LIST_LINE_rec.attribute1 = FND_API.G_MISS_CHAR THEN
1055         l_PRICE_LIST_LINE_rec.attribute1 := p_old_PRICE_LIST_LINE_rec.attribute1;
1056     END IF;
1057 
1058     IF l_PRICE_LIST_LINE_rec.attribute10 = FND_API.G_MISS_CHAR THEN
1059         l_PRICE_LIST_LINE_rec.attribute10 := p_old_PRICE_LIST_LINE_rec.attribute10;
1060     END IF;
1061 
1062     IF l_PRICE_LIST_LINE_rec.attribute11 = FND_API.G_MISS_CHAR THEN
1063         l_PRICE_LIST_LINE_rec.attribute11 := p_old_PRICE_LIST_LINE_rec.attribute11;
1064     END IF;
1065 
1066     IF l_PRICE_LIST_LINE_rec.attribute12 = FND_API.G_MISS_CHAR THEN
1067         l_PRICE_LIST_LINE_rec.attribute12 := p_old_PRICE_LIST_LINE_rec.attribute12;
1068     END IF;
1069 
1070     IF l_PRICE_LIST_LINE_rec.attribute13 = FND_API.G_MISS_CHAR THEN
1071         l_PRICE_LIST_LINE_rec.attribute13 := p_old_PRICE_LIST_LINE_rec.attribute13;
1072     END IF;
1073 
1074     IF l_PRICE_LIST_LINE_rec.attribute14 = FND_API.G_MISS_CHAR THEN
1075         l_PRICE_LIST_LINE_rec.attribute14 := p_old_PRICE_LIST_LINE_rec.attribute14;
1076     END IF;
1077 
1078     IF l_PRICE_LIST_LINE_rec.attribute15 = FND_API.G_MISS_CHAR THEN
1079         l_PRICE_LIST_LINE_rec.attribute15 := p_old_PRICE_LIST_LINE_rec.attribute15;
1080     END IF;
1081 
1082     IF l_PRICE_LIST_LINE_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1083         l_PRICE_LIST_LINE_rec.attribute2 := p_old_PRICE_LIST_LINE_rec.attribute2;
1084     END IF;
1085 
1086     IF l_PRICE_LIST_LINE_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1087         l_PRICE_LIST_LINE_rec.attribute3 := p_old_PRICE_LIST_LINE_rec.attribute3;
1088     END IF;
1089 
1090     IF l_PRICE_LIST_LINE_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1091         l_PRICE_LIST_LINE_rec.attribute4 := p_old_PRICE_LIST_LINE_rec.attribute4;
1092     END IF;
1093 
1094     IF l_PRICE_LIST_LINE_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1095         l_PRICE_LIST_LINE_rec.attribute5 := p_old_PRICE_LIST_LINE_rec.attribute5;
1096     END IF;
1097 
1098     IF l_PRICE_LIST_LINE_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1099         l_PRICE_LIST_LINE_rec.attribute6 := p_old_PRICE_LIST_LINE_rec.attribute6;
1100     END IF;
1101 
1102     IF l_PRICE_LIST_LINE_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1103         l_PRICE_LIST_LINE_rec.attribute7 := p_old_PRICE_LIST_LINE_rec.attribute7;
1104     END IF;
1105 
1106     IF l_PRICE_LIST_LINE_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1107         l_PRICE_LIST_LINE_rec.attribute8 := p_old_PRICE_LIST_LINE_rec.attribute8;
1108     END IF;
1109 
1110     IF l_PRICE_LIST_LINE_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1111         l_PRICE_LIST_LINE_rec.attribute9 := p_old_PRICE_LIST_LINE_rec.attribute9;
1112     END IF;
1113 
1114     IF l_PRICE_LIST_LINE_rec.comments = FND_API.G_MISS_CHAR THEN
1115         l_PRICE_LIST_LINE_rec.comments := p_old_PRICE_LIST_LINE_rec.comments;
1116     END IF;
1117 
1118     IF l_PRICE_LIST_LINE_rec.context = FND_API.G_MISS_CHAR THEN
1119         l_PRICE_LIST_LINE_rec.context := p_old_PRICE_LIST_LINE_rec.context;
1120     END IF;
1121 
1122     IF l_PRICE_LIST_LINE_rec.created_by = FND_API.G_MISS_NUM THEN
1123         l_PRICE_LIST_LINE_rec.created_by := p_old_PRICE_LIST_LINE_rec.created_by;
1124     END IF;
1125 
1126     IF l_PRICE_LIST_LINE_rec.creation_date = FND_API.G_MISS_DATE THEN
1127         l_PRICE_LIST_LINE_rec.creation_date := p_old_PRICE_LIST_LINE_rec.creation_date;
1128     END IF;
1129 
1130     IF l_PRICE_LIST_LINE_rec.customer_item_id = FND_API.G_MISS_NUM THEN
1131         l_PRICE_LIST_LINE_rec.customer_item_id := p_old_PRICE_LIST_LINE_rec.customer_item_id;
1132     END IF;
1133 
1134     IF l_PRICE_LIST_LINE_rec.end_date_active = FND_API.G_MISS_DATE THEN
1135         l_PRICE_LIST_LINE_rec.end_date_active := p_old_PRICE_LIST_LINE_rec.end_date_active;
1136     END IF;
1137 
1138     IF l_PRICE_LIST_LINE_rec.inventory_item_id = FND_API.G_MISS_NUM THEN
1139         l_PRICE_LIST_LINE_rec.inventory_item_id := p_old_PRICE_LIST_LINE_rec.inventory_item_id;
1140     END IF;
1141 
1142     IF l_PRICE_LIST_LINE_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1143         l_PRICE_LIST_LINE_rec.last_updated_by := p_old_PRICE_LIST_LINE_rec.last_updated_by;
1144     END IF;
1145 
1146     IF l_PRICE_LIST_LINE_rec.last_update_date = FND_API.G_MISS_DATE THEN
1147         l_PRICE_LIST_LINE_rec.last_update_date := p_old_PRICE_LIST_LINE_rec.last_update_date;
1148     END IF;
1149 
1150     IF l_PRICE_LIST_LINE_rec.last_update_login = FND_API.G_MISS_NUM THEN
1151         l_PRICE_LIST_LINE_rec.last_update_login := p_old_PRICE_LIST_LINE_rec.last_update_login;
1152     END IF;
1153 
1154     IF l_PRICE_LIST_LINE_rec.list_price = FND_API.G_MISS_NUM THEN
1155         l_PRICE_LIST_LINE_rec.list_price := p_old_PRICE_LIST_LINE_rec.list_price;
1156     END IF;
1157 
1158     IF l_PRICE_LIST_LINE_rec.method_code = FND_API.G_MISS_CHAR THEN
1159         l_PRICE_LIST_LINE_rec.method_code := p_old_PRICE_LIST_LINE_rec.method_code;
1160     END IF;
1161 
1162     IF l_PRICE_LIST_LINE_rec.price_list_id = FND_API.G_MISS_NUM THEN
1163         l_PRICE_LIST_LINE_rec.price_list_id := p_old_PRICE_LIST_LINE_rec.price_list_id;
1164     END IF;
1165 
1166     IF l_PRICE_LIST_LINE_rec.price_list_line_id = FND_API.G_MISS_NUM THEN
1167         l_PRICE_LIST_LINE_rec.price_list_line_id := p_old_PRICE_LIST_LINE_rec.price_list_line_id;
1168     END IF;
1169 
1170     IF l_PRICE_LIST_LINE_rec.pricing_attribute1 = FND_API.G_MISS_CHAR THEN
1171         l_PRICE_LIST_LINE_rec.pricing_attribute1 := p_old_PRICE_LIST_LINE_rec.pricing_attribute1;
1172     END IF;
1173 
1174     IF l_PRICE_LIST_LINE_rec.pricing_attribute10 = FND_API.G_MISS_CHAR THEN
1175         l_PRICE_LIST_LINE_rec.pricing_attribute10 := p_old_PRICE_LIST_LINE_rec.pricing_attribute10;
1176     END IF;
1177 
1178     IF l_PRICE_LIST_LINE_rec.pricing_attribute11 = FND_API.G_MISS_CHAR THEN
1179         l_PRICE_LIST_LINE_rec.pricing_attribute11 := p_old_PRICE_LIST_LINE_rec.pricing_attribute11;
1180     END IF;
1181 
1182     IF l_PRICE_LIST_LINE_rec.pricing_attribute12 = FND_API.G_MISS_CHAR THEN
1183         l_PRICE_LIST_LINE_rec.pricing_attribute12 := p_old_PRICE_LIST_LINE_rec.pricing_attribute12;
1184     END IF;
1185 
1186     IF l_PRICE_LIST_LINE_rec.pricing_attribute13 = FND_API.G_MISS_CHAR THEN
1187         l_PRICE_LIST_LINE_rec.pricing_attribute13 := p_old_PRICE_LIST_LINE_rec.pricing_attribute13;
1188     END IF;
1189 
1190     IF l_PRICE_LIST_LINE_rec.pricing_attribute14 = FND_API.G_MISS_CHAR THEN
1191         l_PRICE_LIST_LINE_rec.pricing_attribute14 := p_old_PRICE_LIST_LINE_rec.pricing_attribute14;
1192     END IF;
1193 
1194     IF l_PRICE_LIST_LINE_rec.pricing_attribute15 = FND_API.G_MISS_CHAR THEN
1195         l_PRICE_LIST_LINE_rec.pricing_attribute15 := p_old_PRICE_LIST_LINE_rec.pricing_attribute15;
1196     END IF;
1197 
1198     IF l_PRICE_LIST_LINE_rec.pricing_attribute2 = FND_API.G_MISS_CHAR THEN
1199         l_PRICE_LIST_LINE_rec.pricing_attribute2 := p_old_PRICE_LIST_LINE_rec.pricing_attribute2;
1200     END IF;
1201 
1202     IF l_PRICE_LIST_LINE_rec.pricing_attribute3 = FND_API.G_MISS_CHAR THEN
1203         l_PRICE_LIST_LINE_rec.pricing_attribute3 := p_old_PRICE_LIST_LINE_rec.pricing_attribute3;
1204     END IF;
1205 
1206     IF l_PRICE_LIST_LINE_rec.pricing_attribute4 = FND_API.G_MISS_CHAR THEN
1207         l_PRICE_LIST_LINE_rec.pricing_attribute4 := p_old_PRICE_LIST_LINE_rec.pricing_attribute4;
1208     END IF;
1209 
1210     IF l_PRICE_LIST_LINE_rec.pricing_attribute5 = FND_API.G_MISS_CHAR THEN
1211         l_PRICE_LIST_LINE_rec.pricing_attribute5 := p_old_PRICE_LIST_LINE_rec.pricing_attribute5;
1212     END IF;
1213 
1214     IF l_PRICE_LIST_LINE_rec.pricing_attribute6 = FND_API.G_MISS_CHAR THEN
1215         l_PRICE_LIST_LINE_rec.pricing_attribute6 := p_old_PRICE_LIST_LINE_rec.pricing_attribute6;
1216     END IF;
1217 
1218     IF l_PRICE_LIST_LINE_rec.pricing_attribute7 = FND_API.G_MISS_CHAR THEN
1219         l_PRICE_LIST_LINE_rec.pricing_attribute7 := p_old_PRICE_LIST_LINE_rec.pricing_attribute7;
1220     END IF;
1221 
1222     IF l_PRICE_LIST_LINE_rec.pricing_attribute8 = FND_API.G_MISS_CHAR THEN
1223         l_PRICE_LIST_LINE_rec.pricing_attribute8 := p_old_PRICE_LIST_LINE_rec.pricing_attribute8;
1224     END IF;
1225 
1226     IF l_PRICE_LIST_LINE_rec.pricing_attribute9 = FND_API.G_MISS_CHAR THEN
1227         l_PRICE_LIST_LINE_rec.pricing_attribute9 := p_old_PRICE_LIST_LINE_rec.pricing_attribute9;
1228     END IF;
1229 
1230     IF l_PRICE_LIST_LINE_rec.pricing_context = FND_API.G_MISS_CHAR THEN
1231         l_PRICE_LIST_LINE_rec.pricing_context := p_old_PRICE_LIST_LINE_rec.pricing_context;
1232     END IF;
1233 
1234     IF l_PRICE_LIST_LINE_rec.pricing_rule_id = FND_API.G_MISS_NUM THEN
1235         l_PRICE_LIST_LINE_rec.pricing_rule_id := p_old_PRICE_LIST_LINE_rec.pricing_rule_id;
1236     END IF;
1237 
1238     IF l_PRICE_LIST_LINE_rec.primary = FND_API.G_MISS_CHAR THEN
1239         l_PRICE_LIST_LINE_rec.primary := p_old_PRICE_LIST_LINE_rec.primary;
1240     END IF;
1241 
1242     IF l_PRICE_LIST_LINE_rec.program_application_id = FND_API.G_MISS_NUM THEN
1243         l_PRICE_LIST_LINE_rec.program_application_id := p_old_PRICE_LIST_LINE_rec.program_application_id;
1244     END IF;
1245 
1246     IF l_PRICE_LIST_LINE_rec.program_id = FND_API.G_MISS_NUM THEN
1247         l_PRICE_LIST_LINE_rec.program_id := p_old_PRICE_LIST_LINE_rec.program_id;
1248     END IF;
1249 
1250     IF l_PRICE_LIST_LINE_rec.program_update_date = FND_API.G_MISS_DATE THEN
1251         l_PRICE_LIST_LINE_rec.program_update_date := p_old_PRICE_LIST_LINE_rec.program_update_date;
1252     END IF;
1253 
1254     IF l_PRICE_LIST_LINE_rec.reprice_flag = FND_API.G_MISS_CHAR THEN
1255         l_PRICE_LIST_LINE_rec.reprice_flag := p_old_PRICE_LIST_LINE_rec.reprice_flag;
1256     END IF;
1257 
1258     IF l_PRICE_LIST_LINE_rec.request_id = FND_API.G_MISS_NUM THEN
1259         l_PRICE_LIST_LINE_rec.request_id := p_old_PRICE_LIST_LINE_rec.request_id;
1260     END IF;
1261 
1262     IF l_PRICE_LIST_LINE_rec.revision = FND_API.G_MISS_CHAR THEN
1263         l_PRICE_LIST_LINE_rec.revision := p_old_PRICE_LIST_LINE_rec.revision;
1264     END IF;
1265 
1266     IF l_PRICE_LIST_LINE_rec.revision_date = FND_API.G_MISS_DATE THEN
1267         l_PRICE_LIST_LINE_rec.revision_date := p_old_PRICE_LIST_LINE_rec.revision_date;
1268     END IF;
1269 
1270     IF l_PRICE_LIST_LINE_rec.revision_reason_code = FND_API.G_MISS_CHAR THEN
1271         l_PRICE_LIST_LINE_rec.revision_reason_code := p_old_PRICE_LIST_LINE_rec.revision_reason_code;
1272     END IF;
1273 
1274     IF l_PRICE_LIST_LINE_rec.start_date_active = FND_API.G_MISS_DATE THEN
1275         l_PRICE_LIST_LINE_rec.start_date_active := p_old_PRICE_LIST_LINE_rec.start_date_active;
1276     END IF;
1277 
1278     IF l_PRICE_LIST_LINE_rec.unit_code = FND_API.G_MISS_CHAR THEN
1279         l_PRICE_LIST_LINE_rec.unit_code := p_old_PRICE_LIST_LINE_rec.unit_code;
1280     END IF;
1281 
1282     RETURN l_PRICE_LIST_LINE_rec;
1283 
1284 END Complete_Record;
1285 
1286 --  Function Convert_Miss_To_Null
1287 
1288 FUNCTION Convert_Miss_To_Null
1289 (   p_PRICE_LIST_LINE_rec           IN  OE_Price_List_PUB.Price_List_Line_Rec_Type
1290 ) RETURN OE_Price_List_PUB.Price_List_Line_Rec_Type
1291 IS
1292 l_PRICE_LIST_LINE_rec         OE_Price_List_PUB.Price_List_Line_Rec_Type := p_PRICE_LIST_LINE_rec;
1293 BEGIN
1294 
1295     IF l_PRICE_LIST_LINE_rec.attribute1 = FND_API.G_MISS_CHAR THEN
1296         l_PRICE_LIST_LINE_rec.attribute1 := NULL;
1297     END IF;
1298 
1299     IF l_PRICE_LIST_LINE_rec.attribute10 = FND_API.G_MISS_CHAR THEN
1300         l_PRICE_LIST_LINE_rec.attribute10 := NULL;
1301     END IF;
1302 
1303     IF l_PRICE_LIST_LINE_rec.attribute11 = FND_API.G_MISS_CHAR THEN
1304         l_PRICE_LIST_LINE_rec.attribute11 := NULL;
1305     END IF;
1306 
1307     IF l_PRICE_LIST_LINE_rec.attribute12 = FND_API.G_MISS_CHAR THEN
1308         l_PRICE_LIST_LINE_rec.attribute12 := NULL;
1309     END IF;
1310 
1311     IF l_PRICE_LIST_LINE_rec.attribute13 = FND_API.G_MISS_CHAR THEN
1312         l_PRICE_LIST_LINE_rec.attribute13 := NULL;
1313     END IF;
1314 
1315     IF l_PRICE_LIST_LINE_rec.attribute14 = FND_API.G_MISS_CHAR THEN
1316         l_PRICE_LIST_LINE_rec.attribute14 := NULL;
1317     END IF;
1318 
1319     IF l_PRICE_LIST_LINE_rec.attribute15 = FND_API.G_MISS_CHAR THEN
1320         l_PRICE_LIST_LINE_rec.attribute15 := NULL;
1321     END IF;
1322 
1323     IF l_PRICE_LIST_LINE_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1324         l_PRICE_LIST_LINE_rec.attribute2 := NULL;
1325     END IF;
1326 
1327     IF l_PRICE_LIST_LINE_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1328         l_PRICE_LIST_LINE_rec.attribute3 := NULL;
1329     END IF;
1330 
1331     IF l_PRICE_LIST_LINE_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1332         l_PRICE_LIST_LINE_rec.attribute4 := NULL;
1333     END IF;
1334 
1335     IF l_PRICE_LIST_LINE_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1336         l_PRICE_LIST_LINE_rec.attribute5 := NULL;
1337     END IF;
1338 
1339     IF l_PRICE_LIST_LINE_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1340         l_PRICE_LIST_LINE_rec.attribute6 := NULL;
1341     END IF;
1342 
1343     IF l_PRICE_LIST_LINE_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1344         l_PRICE_LIST_LINE_rec.attribute7 := NULL;
1345     END IF;
1346 
1347     IF l_PRICE_LIST_LINE_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1348         l_PRICE_LIST_LINE_rec.attribute8 := NULL;
1349     END IF;
1350 
1351     IF l_PRICE_LIST_LINE_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1352         l_PRICE_LIST_LINE_rec.attribute9 := NULL;
1353     END IF;
1354 
1355     IF l_PRICE_LIST_LINE_rec.comments = FND_API.G_MISS_CHAR THEN
1356         l_PRICE_LIST_LINE_rec.comments := NULL;
1357     END IF;
1358 
1359     IF l_PRICE_LIST_LINE_rec.context = FND_API.G_MISS_CHAR THEN
1360         l_PRICE_LIST_LINE_rec.context := NULL;
1361     END IF;
1362 
1363     IF l_PRICE_LIST_LINE_rec.created_by = FND_API.G_MISS_NUM THEN
1364         l_PRICE_LIST_LINE_rec.created_by := NULL;
1365     END IF;
1366 
1367     IF l_PRICE_LIST_LINE_rec.creation_date = FND_API.G_MISS_DATE THEN
1368         l_PRICE_LIST_LINE_rec.creation_date := NULL;
1369     END IF;
1370 
1371     IF l_PRICE_LIST_LINE_rec.customer_item_id = FND_API.G_MISS_NUM THEN
1372         l_PRICE_LIST_LINE_rec.customer_item_id := NULL;
1373     END IF;
1374 
1375     IF l_PRICE_LIST_LINE_rec.end_date_active = FND_API.G_MISS_DATE THEN
1376         l_PRICE_LIST_LINE_rec.end_date_active := NULL;
1377     END IF;
1378 
1379     IF l_PRICE_LIST_LINE_rec.inventory_item_id = FND_API.G_MISS_NUM THEN
1380         l_PRICE_LIST_LINE_rec.inventory_item_id := NULL;
1381     END IF;
1382 
1383     IF l_PRICE_LIST_LINE_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1384         l_PRICE_LIST_LINE_rec.last_updated_by := NULL;
1385     END IF;
1386 
1387     IF l_PRICE_LIST_LINE_rec.last_update_date = FND_API.G_MISS_DATE THEN
1388         l_PRICE_LIST_LINE_rec.last_update_date := NULL;
1389     END IF;
1390 
1391     IF l_PRICE_LIST_LINE_rec.last_update_login = FND_API.G_MISS_NUM THEN
1392         l_PRICE_LIST_LINE_rec.last_update_login := NULL;
1393     END IF;
1394 
1395     IF l_PRICE_LIST_LINE_rec.list_price = FND_API.G_MISS_NUM THEN
1396         l_PRICE_LIST_LINE_rec.list_price := NULL;
1397     END IF;
1398 
1399     IF l_PRICE_LIST_LINE_rec.method_code = FND_API.G_MISS_CHAR THEN
1400         l_PRICE_LIST_LINE_rec.method_code := NULL;
1401     END IF;
1402 
1403     IF l_PRICE_LIST_LINE_rec.price_list_id = FND_API.G_MISS_NUM THEN
1404         l_PRICE_LIST_LINE_rec.price_list_id := NULL;
1405     END IF;
1406 
1407     IF l_PRICE_LIST_LINE_rec.price_list_line_id = FND_API.G_MISS_NUM THEN
1408         l_PRICE_LIST_LINE_rec.price_list_line_id := NULL;
1409     END IF;
1410 
1411     IF l_PRICE_LIST_LINE_rec.pricing_attribute1 = FND_API.G_MISS_CHAR THEN
1412         l_PRICE_LIST_LINE_rec.pricing_attribute1 := NULL;
1413     END IF;
1414 
1415     IF l_PRICE_LIST_LINE_rec.pricing_attribute10 = FND_API.G_MISS_CHAR THEN
1416         l_PRICE_LIST_LINE_rec.pricing_attribute10 := NULL;
1417     END IF;
1418 
1419     IF l_PRICE_LIST_LINE_rec.pricing_attribute11 = FND_API.G_MISS_CHAR THEN
1420         l_PRICE_LIST_LINE_rec.pricing_attribute11 := NULL;
1421     END IF;
1422 
1423     IF l_PRICE_LIST_LINE_rec.pricing_attribute12 = FND_API.G_MISS_CHAR THEN
1424         l_PRICE_LIST_LINE_rec.pricing_attribute12 := NULL;
1425     END IF;
1426 
1427     IF l_PRICE_LIST_LINE_rec.pricing_attribute13 = FND_API.G_MISS_CHAR THEN
1428         l_PRICE_LIST_LINE_rec.pricing_attribute13 := NULL;
1429     END IF;
1430 
1431     IF l_PRICE_LIST_LINE_rec.pricing_attribute14 = FND_API.G_MISS_CHAR THEN
1432         l_PRICE_LIST_LINE_rec.pricing_attribute14 := NULL;
1433     END IF;
1434 
1435     IF l_PRICE_LIST_LINE_rec.pricing_attribute15 = FND_API.G_MISS_CHAR THEN
1436         l_PRICE_LIST_LINE_rec.pricing_attribute15 := NULL;
1437     END IF;
1438 
1439     IF l_PRICE_LIST_LINE_rec.pricing_attribute2 = FND_API.G_MISS_CHAR THEN
1440         l_PRICE_LIST_LINE_rec.pricing_attribute2 := NULL;
1441     END IF;
1442 
1443     IF l_PRICE_LIST_LINE_rec.pricing_attribute3 = FND_API.G_MISS_CHAR THEN
1444         l_PRICE_LIST_LINE_rec.pricing_attribute3 := NULL;
1445     END IF;
1446 
1447     IF l_PRICE_LIST_LINE_rec.pricing_attribute4 = FND_API.G_MISS_CHAR THEN
1448         l_PRICE_LIST_LINE_rec.pricing_attribute4 := NULL;
1449     END IF;
1450 
1451     IF l_PRICE_LIST_LINE_rec.pricing_attribute5 = FND_API.G_MISS_CHAR THEN
1452         l_PRICE_LIST_LINE_rec.pricing_attribute5 := NULL;
1453     END IF;
1454 
1455     IF l_PRICE_LIST_LINE_rec.pricing_attribute6 = FND_API.G_MISS_CHAR THEN
1456         l_PRICE_LIST_LINE_rec.pricing_attribute6 := NULL;
1457     END IF;
1458 
1459     IF l_PRICE_LIST_LINE_rec.pricing_attribute7 = FND_API.G_MISS_CHAR THEN
1460         l_PRICE_LIST_LINE_rec.pricing_attribute7 := NULL;
1461     END IF;
1462 
1463     IF l_PRICE_LIST_LINE_rec.pricing_attribute8 = FND_API.G_MISS_CHAR THEN
1464         l_PRICE_LIST_LINE_rec.pricing_attribute8 := NULL;
1465     END IF;
1466 
1467     IF l_PRICE_LIST_LINE_rec.pricing_attribute9 = FND_API.G_MISS_CHAR THEN
1468         l_PRICE_LIST_LINE_rec.pricing_attribute9 := NULL;
1469     END IF;
1470 
1471     IF l_PRICE_LIST_LINE_rec.pricing_context = FND_API.G_MISS_CHAR THEN
1472         l_PRICE_LIST_LINE_rec.pricing_context := NULL;
1473     END IF;
1474 
1475     IF l_PRICE_LIST_LINE_rec.pricing_rule_id = FND_API.G_MISS_NUM THEN
1476         l_PRICE_LIST_LINE_rec.pricing_rule_id := NULL;
1477     END IF;
1478 
1479     IF l_PRICE_LIST_LINE_rec.primary = FND_API.G_MISS_CHAR THEN
1480         l_PRICE_LIST_LINE_rec.primary := NULL;
1481     END IF;
1482 
1483     IF l_PRICE_LIST_LINE_rec.program_application_id = FND_API.G_MISS_NUM THEN
1484         l_PRICE_LIST_LINE_rec.program_application_id := NULL;
1485     END IF;
1486 
1487     IF l_PRICE_LIST_LINE_rec.program_id = FND_API.G_MISS_NUM THEN
1488         l_PRICE_LIST_LINE_rec.program_id := NULL;
1489     END IF;
1490 
1491     IF l_PRICE_LIST_LINE_rec.program_update_date = FND_API.G_MISS_DATE THEN
1492         l_PRICE_LIST_LINE_rec.program_update_date := NULL;
1493     END IF;
1494 
1495     IF l_PRICE_LIST_LINE_rec.reprice_flag = FND_API.G_MISS_CHAR THEN
1496         l_PRICE_LIST_LINE_rec.reprice_flag := NULL;
1497     END IF;
1498 
1499     IF l_PRICE_LIST_LINE_rec.request_id = FND_API.G_MISS_NUM THEN
1500         l_PRICE_LIST_LINE_rec.request_id := NULL;
1501     END IF;
1502 
1503     IF l_PRICE_LIST_LINE_rec.revision = FND_API.G_MISS_CHAR THEN
1504         l_PRICE_LIST_LINE_rec.revision := NULL;
1505     END IF;
1506 
1507     IF l_PRICE_LIST_LINE_rec.revision_date = FND_API.G_MISS_DATE THEN
1508         l_PRICE_LIST_LINE_rec.revision_date := NULL;
1509     END IF;
1510 
1511     IF l_PRICE_LIST_LINE_rec.revision_reason_code = FND_API.G_MISS_CHAR THEN
1512         l_PRICE_LIST_LINE_rec.revision_reason_code := NULL;
1513     END IF;
1514 
1515     IF l_PRICE_LIST_LINE_rec.start_date_active = FND_API.G_MISS_DATE THEN
1516         l_PRICE_LIST_LINE_rec.start_date_active := NULL;
1517     END IF;
1518 
1519     IF l_PRICE_LIST_LINE_rec.unit_code = FND_API.G_MISS_CHAR THEN
1520         l_PRICE_LIST_LINE_rec.unit_code := NULL;
1521     END IF;
1522 
1523     RETURN l_PRICE_LIST_LINE_rec;
1524 
1525 END Convert_Miss_To_Null;
1526 
1527 --  Procedure Update_Row
1528 
1529 PROCEDURE Update_Row
1530 (   p_PRICE_LIST_LINE_rec           IN  OE_Price_List_PUB.Price_List_Line_Rec_Type
1531 )
1532 IS
1533 l_list_price number := NULL;
1534 l_percent_price number := NULL;
1535 x_return_status varchar2(30);
1536 BEGIN
1537 
1538     IF p_PRICE_LIST_LINE_rec.method_code = 'AMNT' THEN
1539          l_list_price := p_PRICE_LIST_LINE_rec.list_price;
1540     else
1541          l_percent_price := p_PRICE_LIST_LINE_rec.list_price;
1542     END IF;
1543 
1544     /* reprice_flag and tp_attributes are missing- need to add */
1545 
1546     UPDATE  QP_LIST_LINES
1547     SET     ATTRIBUTE1                     = p_PRICE_LIST_LINE_rec.attribute1
1548     ,       ATTRIBUTE10                    = p_PRICE_LIST_LINE_rec.attribute10
1549     ,       ATTRIBUTE11                    = p_PRICE_LIST_LINE_rec.attribute11
1550     ,       ATTRIBUTE12                    = p_PRICE_LIST_LINE_rec.attribute12
1551     ,       ATTRIBUTE13                    = p_PRICE_LIST_LINE_rec.attribute13
1552     ,       ATTRIBUTE14                    = p_PRICE_LIST_LINE_rec.attribute14
1553     ,       ATTRIBUTE15                    = p_PRICE_LIST_LINE_rec.attribute15
1554     ,       ATTRIBUTE2                     = p_PRICE_LIST_LINE_rec.attribute2
1555     ,       ATTRIBUTE3                     = p_PRICE_LIST_LINE_rec.attribute3
1556     ,       ATTRIBUTE4                     = p_PRICE_LIST_LINE_rec.attribute4
1557     ,       ATTRIBUTE5                     = p_PRICE_LIST_LINE_rec.attribute5
1558     ,       ATTRIBUTE6                     = p_PRICE_LIST_LINE_rec.attribute6
1559     ,       ATTRIBUTE7                     = p_PRICE_LIST_LINE_rec.attribute7
1560     ,       ATTRIBUTE8                     = p_PRICE_LIST_LINE_rec.attribute8
1561     ,       ATTRIBUTE9                     = p_PRICE_LIST_LINE_rec.attribute9
1562     ,       COMMENTS                       = p_PRICE_LIST_LINE_rec.comments
1563     ,       CONTEXT                        = p_PRICE_LIST_LINE_rec.context
1564     ,       CREATED_BY                     = p_PRICE_LIST_LINE_rec.created_by
1565     ,       CREATION_DATE                  = p_PRICE_LIST_LINE_rec.creation_date
1566     ,       END_DATE_ACTIVE                = p_PRICE_LIST_LINE_rec.end_date_active
1567     ,       LAST_UPDATE_DATE               = p_PRICE_LIST_LINE_rec.last_update_date
1568     ,       LAST_UPDATE_LOGIN              = p_PRICE_LIST_LINE_rec.last_update_login
1569     ,       LIST_PRICE                     = l_list_price
1570     ,       LIST_HEADER_ID                 = p_PRICE_LIST_LINE_rec.price_list_id
1571     ,       GENERATE_USING_FORMULA_ID      = p_PRICE_LIST_LINE_rec.pricing_rule_id
1572     ,       PRIMARY_UOM_FLAG               = p_PRICE_LIST_LINE_rec.primary
1573     ,       PROGRAM_APPLICATION_ID         = p_PRICE_LIST_LINE_rec.program_application_id
1574     ,       PROGRAM_ID                     = p_PRICE_LIST_LINE_rec.program_id
1575     ,       PROGRAM_UPDATE_DATE            = p_PRICE_LIST_LINE_rec.program_update_date
1576     ,       REQUEST_ID                     = p_PRICE_LIST_LINE_rec.request_id
1577     ,       REVISION                       = p_PRICE_LIST_LINE_rec.revision
1578     ,       REVISION_DATE                  = p_PRICE_LIST_LINE_rec.revision_date
1579     ,       REVISION_REASON_CODE           = p_PRICE_LIST_LINE_rec.revision_reason_code
1580     ,       START_DATE_ACTIVE              = p_PRICE_LIST_LINE_rec.start_date_active
1581     ,       LIST_PRICE_UOM_CODE            = p_PRICE_LIST_LINE_rec.unit_code
1582     ,       PERCENT_PRICE                  = l_percent_price
1583     ,       LAST_UPDATED_BY                = p_PRICE_LIST_LINE_rec.last_updated_by
1584     ,       LIST_LINE_TYPE_CODE            = p_PRICE_LIST_LINE_rec.list_line_type_code
1585     WHERE   LIST_LINE_ID = p_PRICE_LIST_LINE_rec.price_list_line_id
1586     ;
1587 
1588    oe_debug_pub.initialize;
1589    oe_debug_pub.debug_on;
1590    oe_debug_pub.add ( 'Geresh 6 :: Before Maintain attributes ' );
1591 
1592      maintain_pricing_attributes(p_PRICE_LIST_LINE_rec, 'UPDATE', x_return_status);
1593 
1594 
1595 
1596 
1597 EXCEPTION
1598 
1599     WHEN OTHERS THEN
1600 
1601         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1602         THEN
1603             OE_MSG_PUB.Add_Exc_Msg
1604             (   G_PKG_NAME
1605             ,   'Update_Row'
1606             );
1607         END IF;
1608 
1609         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1610 
1611 END Update_Row;
1612 
1613 --  Procedure Insert_Row
1614 
1615 PROCEDURE Insert_Row
1616 (   p_PRICE_LIST_LINE_rec           IN  OE_Price_List_PUB.Price_List_Line_Rec_Type
1617 )
1618 IS
1619 l_product_context varchar2(30);
1620 l_customer_item_context varchar2(30);
1621 l_product_attr varchar2(30);
1622 l_customer_item_attr varchar2(30);
1623 l_pricing_attr_rec OE_PRICE_LIST_PUB.Pricing_Attr_Rec_Type;
1624 l_pricing_attr_tbl OE_PRICE_LIST_PUB.Pricing_Attr_Tbl_Type;
1625 l_attribute_grouping_no number;
1626 l_pricing_attribute_id number;
1627 I number := 1;
1628 J number := 1;
1629 l_related_modifier_id number;
1630 l_rltd_modifier_grp_no number;
1631 x_return_status varchar2(30);
1632 BEGIN
1633 oe_debug_pub.add ( 'Insert Values' || p_PRICE_LIST_LINE_rec.comments );
1634 
1635   insert into qp_list_lines(
1636   LIST_LINE_ID,
1637   CREATION_DATE,
1638   CREATED_BY,
1639   LAST_UPDATE_DATE,
1640   LAST_UPDATED_BY,
1641   LAST_UPDATE_LOGIN,
1642   PROGRAM_APPLICATION_ID,
1643   PROGRAM_ID,
1644   PROGRAM_UPDATE_DATE,
1645   REQUEST_ID,
1646   LIST_HEADER_ID,
1647   LIST_LINE_TYPE_CODE,
1648   START_DATE_ACTIVE, /* START_DATE_EFFECTIVE */
1649   END_DATE_ACTIVE,   /* END_DATE_EFFECTIVE */
1650   AUTOMATIC_FLAG,
1651   MODIFIER_LEVEL_CODE,
1652   LIST_PRICE,
1653   LIST_PRICE_UOM_CODE,
1654   PRIMARY_UOM_FLAG,
1655   INVENTORY_ITEM_ID,
1656   ORGANIZATION_ID,
1657   RELATED_ITEM_ID,
1658   RELATIONSHIP_TYPE_ID,
1659   SUBSTITUTION_CONTEXT,
1660   SUBSTITUTION_ATTRIBUTE,
1661   SUBSTITUTION_VALUE,
1662   REVISION,
1663   REVISION_DATE,
1664   REVISION_REASON_CODE,
1665   CONTEXT,
1666   ATTRIBUTE1,
1667   ATTRIBUTE2,
1668   ATTRIBUTE3,
1669   ATTRIBUTE4,
1670   ATTRIBUTE5,
1671   ATTRIBUTE6,
1672   ATTRIBUTE7,
1673   ATTRIBUTE8,
1674   ATTRIBUTE9,
1675   ATTRIBUTE10,
1676   ATTRIBUTE11,
1677   ATTRIBUTE12,
1678   ATTRIBUTE13,
1679   ATTRIBUTE14,
1680   ATTRIBUTE15,
1681   COMMENTS,
1682   PRICE_BREAK_TYPE_CODE,
1683   PERCENT_PRICE,
1684   EFFECTIVE_PERIOD_UOM,
1685   NUMBER_EFFECTIVE_PERIODS,
1686   OPERAND,
1687   ARITHMETIC_OPERATOR,
1688   OVERRIDE_FLAG,
1689   PRINT_ON_INVOICE_FLAG,
1690   REBATE_TRANSACTION_TYPE_CODE,
1691   BASE_QTY,
1692   BASE_UOM_CODE,
1693   ACCRUAL_QTY,
1694   ACCRUAL_UOM_CODE,
1695   ESTIM_ACCRUAL_RATE,
1696   PRICE_BY_FORMULA_ID,
1697   GENERATE_USING_FORMULA_ID
1698   --ENH Upgrade BOAPI for orig_sys...ref RAVI
1699   ,orig_sys_line_ref
1700   ,ORIG_SYS_HEADER_REF
1701   /* , REPRICE_FLAG,
1702       TP_ATTRIBUTE1,
1703  TP_ATTRIBUTE2,
1704  TP_ATTRIBUTE3,
1705  TP_ATTRIBUTE4,
1706  TP_ATTRIBUTE5,
1707  TP_ATTRIBUTE6,
1708  TP_ATTRIBUTE7,
1709  TP_ATTRIBUTE8,
1710  TP_ATTRIBUTE9,
1711  TP_ATTRIBUTE10,
1712  TP_ATTRIBUTE11,
1713  TP_ATTRIBUTE12,
1714  TP_ATTRIBUTE13,
1715  TP_ATTRIBUTE14,
1716  TP_ATTRIBUTE15,
1717  TP_ATTRIBUTE_CATEGORY */ )
1718 values(
1719   p_PRICE_LIST_LINE_rec.price_list_line_id,
1720   p_PRICE_LIST_LINE_rec.creation_date,
1721   p_PRICE_LIST_LINE_rec.created_by,
1722   p_PRICE_LIST_LINE_rec.last_update_date,
1723   p_PRICE_LIST_LINE_rec.last_updated_by,
1724   p_PRICE_LIST_LINE_rec.last_update_login,
1725   p_PRICE_LIST_LINE_rec.program_application_id,
1726   p_PRICE_LIST_LINE_rec.program_id,
1727   p_PRICE_LIST_LINE_rec.program_update_date,
1728   p_PRICE_LIST_LINE_rec.request_id,
1729   p_PRICE_LIST_LINE_rec.price_list_id,
1730   'PLL',
1731   p_PRICE_LIST_LINE_rec.start_date_active, /* no need to do nvl */
1732   p_PRICE_LIST_LINE_rec.end_date_active,
1733   'Y',
1734   'LINE',
1735   DECODE(p_PRICE_LIST_LINE_rec.method_code, 'AMNT',p_PRICE_LIST_LINE_rec.list_price,NULL),
1736   p_PRICE_LIST_LINE_rec.unit_code,
1737   p_PRICE_LIST_LINE_rec.primary,
1738   NULL, /* INVENTORY_ITEM_ID */
1739   NULL, /* ORGANIZATION_ID */
1740   NULL, /* RELATED_ITEM_ID */
1741   NULL, /* RELATIONSHIP_TYPE_ID */
1742   NULL, /* SUBSTITUTION_CONTEXT */
1743   NULL, /* SUBSTITUTION_ATTRIBUTE */
1744   NULL, /* SUBSTITUTION_VALUE */
1745   p_PRICE_LIST_LINE_rec.revision,
1746   p_PRICE_LIST_LINE_rec.revision_date,
1747   p_PRICE_LIST_LINE_rec.revision_reason_code,
1748   p_PRICE_LIST_LINE_rec.context,
1749   p_PRICE_LIST_LINE_rec.attribute1,
1750   p_PRICE_LIST_LINE_rec.attribute2,
1751   p_PRICE_LIST_LINE_rec.attribute3,
1752   p_PRICE_LIST_LINE_rec.attribute4,
1753   p_PRICE_LIST_LINE_rec.attribute5,
1754   p_PRICE_LIST_LINE_rec.attribute6,
1755   p_PRICE_LIST_LINE_rec.attribute7,
1756   p_PRICE_LIST_LINE_rec.attribute8,
1757   p_PRICE_LIST_LINE_rec.attribute9,
1758   p_PRICE_LIST_LINE_rec.attribute10,
1759   p_PRICE_LIST_LINE_rec.attribute11,
1760   p_PRICE_LIST_LINE_rec.attribute12,
1761   p_PRICE_LIST_LINE_rec.attribute13,
1762   p_PRICE_LIST_LINE_rec.attribute14,
1763   p_PRICE_LIST_LINE_rec.attribute15,
1764   p_PRICE_LIST_LINE_rec.comments,
1765   NULL, /* p_PRICE_LIST_LINE_rec.price_break_type_code, */
1766   DECODE(p_PRICE_LIST_LINE_rec.method_code, 'PERC', p_PRICE_LIST_LINE_rec.list_price, NULL),
1767   NULL, /* EFFECTIVE_PERIOD_UOM */
1768   NULL, /* NUMBER_EFFECTIVE_PERIODS */
1769   NULL, /* OPERAND */
1770   NULL, /* ARITHMETIC_OPERATOR */
1771   NULL, /* OVERRIDE_FLAG */
1772   NULL, /* PRINT_ON_INVOICE_FLAG */
1773   NULL, /* REBATE_TRANSACTION_TYPE_CODE */
1774   NULL, /* BASE_QTY */
1775   NULL, /* BASE_UOM_CODE */
1776   NULL, /* ACCRUAL_QTY */
1777   NUll, /* ACCRUAL_UOM_CODE */
1778   NULL, /* ESTIM_ACCRUAL_RATE */
1779   NULL, /* PRICE_BY_FORMULA_ID */
1780   p_PRICE_LIST_LINE_rec.pricing_rule_id
1781   --ENH Upgrade BOAPI for orig_sys...ref RAVI
1782   ,to_char(p_PRICE_LIST_LINE_rec.price_list_line_id)
1783   ,(select h.ORIG_SYSTEM_HEADER_REF from qp_list_headers_b h where h.list_header_id=p_PRICE_LIST_LINE_rec.price_list_id)
1784  /* , p_PRICE_LIST_LINE_rec.REPRICE_FLAG,
1785  p_PRICE_LIST_LINE_rec.TP_ATTRIBUTE1,
1786  p_PRICE_LIST_LINE_rec.TP_ATTRIBUTE2,
1787  p_PRICE_LIST_LINE_rec.TP_ATTRIBUTE3,
1788  p_PRICE_LIST_LINE_rec.TP_ATTRIBUTE4,
1789  p_PRICE_LIST_LINE_rec.TP_ATTRIBUTE5,
1790  p_PRICE_LIST_LINE_rec.TP_ATTRIBUTE6,
1791  p_PRICE_LIST_LINE_rec.TP_ATTRIBUTE7,
1792  p_PRICE_LIST_LINE_rec.TP_ATTRIBUTE8,
1793  p_PRICE_LIST_LINE_rec.TP_ATTRIBUTE9,
1794  p_PRICE_LIST_LINE_rec.TP_ATTRIBUTE10,
1795  p_PRICE_LIST_LINE_rec.TP_ATTRIBUTE11,
1796  p_PRICE_LIST_LINE_rec.TP_ATTRIBUTE12,
1797  p_PRICE_LIST_LINE_rec.TP_ATTRIBUTE13,
1798  p_PRICE_LIST_LINE_rec.TP_ATTRIBUTE14,
1799  p_PRICE_LIST_LINE_rec.TP_ATTRIBUTE15,
1800  p_PRICE_LIST_LINE_rec.TP_ATTRIBUTE_CATEGORY */ );
1801 
1802 
1803    oe_debug_pub.initialize;
1804    oe_debug_pub.debug_on;
1805    oe_debug_pub.add ( 'Geresh 7 :: Before Maintain attributes ' );
1806 
1807  maintain_pricing_attributes(p_PRICE_LIST_LINE_rec, 'INSERT', x_return_status);
1808 
1809    oe_debug_pub.add ( 'Geresh 7 :: Outpiut' || x_return_status  );
1810 
1811 
1812 /********************************************************/
1813 /* insertion into translation table may need to be done */
1814 /********************************************************/
1815 
1816     EXCEPTION
1817 
1818     WHEN OTHERS THEN
1819 
1820         x_return_status                := FND_API.G_RET_STS_ERROR;
1821 
1822         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1823         THEN
1824             OE_MSG_PUB.Add_Exc_Msg
1825             (   G_PKG_NAME
1826             ,   'Insert_Row'
1827             );
1828         END IF;
1829 
1830 END Insert_Row;
1831 
1832 --  Procedure Delete_Row
1833 
1834 PROCEDURE Delete_Row
1835 (   p_price_list_line_id            IN  NUMBER
1836 )
1837 IS
1838 
1839 l_list_line_type_code varchar2(30);
1840 
1841 cursor child_lines is
1842 select to_rltd_modifier_id, rltd_modifier_id
1843 from qp_rltd_modifiers
1844 where from_rltd_modifier_id = p_price_list_line_id;
1845 
1846 BEGIN
1847 oe_debug_pub.add ( 'AAA - deleted ');
1848 
1849    /* If list_line_type_code = 'PBH', we need to delete all the children
1850       list lines */
1851 
1852     select list_line_type_code
1853     into l_list_line_type_code
1854     from qp_list_lines
1855     where list_line_id = p_price_list_line_id;
1856 
1857 
1858     if (l_list_line_type_code = 'PBH') then
1859 
1860         for child_lines_rec in child_lines loop
1861 
1862            DELETE  FROM QP_LIST_LINES
1863            WHERE   LIST_LINE_ID = child_lines_rec.to_rltd_modifier_id;
1864 
1865            DELETE FROM QP_PRICING_ATTRIBUTES
1866            WHERE LIST_LINE_ID = child_lines_rec.to_rltd_modifier_id;
1867 
1868            QP_RLTD_MODIFIER_PVT.Delete_Row(child_lines_rec.rltd_modifier_id);
1869 
1870         end loop;
1871 
1872     elsif l_list_line_type_code = 'PLL' then
1873 
1874        BEGIN
1875 
1876         DELETE from QP_RLTD_MODIFIERS
1877         where TO_RLTD_MODIFIER_ID = p_price_list_line_id;
1878 
1879        EXCEPTION
1880 
1881           WHEN NO_DATA_FOUND THEN NULL;
1882 
1883        END;
1884 
1885     	DELETE FROM QP_PRICING_ATTRIBUTES
1886     	WHERE LIST_LINE_ID = p_price_list_line_id;
1887 
1888         DELETE FROM QP_LIST_LINES
1889     	WHERE LIST_LINE_ID = p_price_list_line_id;
1890 
1891     end if;
1892 
1893 EXCEPTION
1894 
1895     WHEN OTHERS THEN
1896 
1897         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1898         THEN
1899             OE_MSG_PUB.Add_Exc_Msg
1900             (   G_PKG_NAME
1901             ,   'Delete_Row'
1902             );
1903         END IF;
1904 
1905         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1906 
1907 END Delete_Row;
1908 
1909 --  Function Query_Row
1910 
1911 FUNCTION Query_Row
1912 (   p_price_list_line_id            IN  NUMBER
1913 ,   p_price_list_id            IN  NUMBER
1914 ) RETURN OE_Price_List_PUB.Price_List_Line_Rec_Type
1915 IS
1916 BEGIN
1917 
1918     RETURN Query_Rows
1919         (   p_price_list_line_id          => p_price_list_line_id
1920         ,   p_price_list_id          => p_price_list_id
1921         )(1);
1922 
1923 END Query_Row;
1924 
1925 --  Function Query_Rows
1926 
1927 --
1928 
1929 FUNCTION Query_Rows
1930 (   p_price_list_line_id            IN  NUMBER :=
1931                                         FND_API.G_MISS_NUM
1932 ,   p_price_list_id                 IN  NUMBER :=
1933                                         FND_API.G_MISS_NUM
1934 ) RETURN OE_Price_List_PUB.Price_List_Line_Tbl_Type
1935 IS
1936 l_PRICE_LIST_LINE_rec         OE_Price_List_PUB.Price_List_Line_Rec_Type;
1937 l_PRICE_LIST_LINE_tbl         OE_Price_List_PUB.Price_List_Line_Tbl_Type;
1938 l_method_code VARCHAR2(30) := NULL;
1939 
1940 CURSOR l_PRICE_LIST_LINE_csr IS
1941     SELECT  ATTRIBUTE1
1942     ,       ATTRIBUTE10
1943     ,       ATTRIBUTE11
1944     ,       ATTRIBUTE12
1945     ,       ATTRIBUTE13
1946     ,       ATTRIBUTE14
1947     ,       ATTRIBUTE15
1948     ,       ATTRIBUTE2
1949     ,       ATTRIBUTE3
1950     ,       ATTRIBUTE4
1951     ,       ATTRIBUTE5
1952     ,       ATTRIBUTE6
1953     ,       ATTRIBUTE7
1954     ,       ATTRIBUTE8
1955     ,       ATTRIBUTE9
1956     ,       COMMENTS
1957     ,       CONTEXT
1958     ,       CREATED_BY
1959     ,       CREATION_DATE
1960     ,       CUSTOMER_ITEM_ID
1961     ,       END_DATE_ACTIVE
1962     ,       INVENTORY_ITEM_ID
1963     ,       LAST_UPDATED_BY
1964     ,       LAST_UPDATE_DATE
1965     ,       LAST_UPDATE_LOGIN
1966     ,       LIST_PRICE
1967     ,       METHOD_CODE
1968     ,       PRICE_LIST_ID
1969     ,       PRICE_LIST_LINE_ID
1970     ,       PRICING_ATTRIBUTE1
1971     ,       PRICING_ATTRIBUTE10
1972     ,       PRICING_ATTRIBUTE11
1973     ,       PRICING_ATTRIBUTE12
1974     ,       PRICING_ATTRIBUTE13
1975     ,       PRICING_ATTRIBUTE14
1976     ,       PRICING_ATTRIBUTE15
1977     ,       PRICING_ATTRIBUTE2
1978     ,       PRICING_ATTRIBUTE3
1979     ,       PRICING_ATTRIBUTE4
1980     ,       PRICING_ATTRIBUTE5
1981     ,       PRICING_ATTRIBUTE6
1982     ,       PRICING_ATTRIBUTE7
1983     ,       PRICING_ATTRIBUTE8
1984     ,       PRICING_ATTRIBUTE9
1985     ,       PRICING_CONTEXT
1986     ,       PRICING_RULE_ID
1987     ,       PRIMARY
1988     ,       PROGRAM_APPLICATION_ID
1989     ,       PROGRAM_ID
1990     ,       PROGRAM_UPDATE_DATE
1991     ,       REPRICE_FLAG
1992     ,       REQUEST_ID
1993     ,       REVISION
1994     ,       REVISION_DATE
1995     ,       REVISION_REASON_CODE
1996     ,       START_DATE_ACTIVE
1997     ,       UNIT_CODE
1998     FROM    QP_PRICE_LIST_LINES_V
1999     WHERE ( PRICE_LIST_LINE_ID = p_price_list_line_id)
2000     OR (PRICE_LIST_ID = p_price_list_id);
2001 
2002 BEGIN
2003 
2004     IF
2005     (p_price_list_line_id IS NOT NULL
2006      AND
2007      p_price_list_line_id <> FND_API.G_MISS_NUM)
2008     AND
2009     (p_price_list_id IS NOT NULL
2010      AND
2011      p_price_list_id <> FND_API.G_MISS_NUM)
2012     THEN
2013             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2014             THEN
2015                 OE_MSG_PUB.Add_Exc_Msg
2016                 (   G_PKG_NAME
2017                 ,   'Query Rows'
2018                 ,   'Keys are mutually exclusive: price_list_line_id = '|| p_price_list_line_id || ', price_list_id = '|| p_price_list_id
2019                 );
2020             END IF;
2021 
2022 -- Geresh Temporary comment
2023     /*    RAISE FND_API.G_EXC_UNEXPECTED_ERROR; */
2024 
2025     END IF;
2026 
2027 
2028     --  Loop over fetched records
2029 
2030     FOR l_implicit_rec IN l_PRICE_LIST_LINE_csr LOOP
2031 
2032         l_PRICE_LIST_LINE_rec.attribute1 := l_implicit_rec.ATTRIBUTE1;
2033         l_PRICE_LIST_LINE_rec.attribute10 := l_implicit_rec.ATTRIBUTE10;
2034         l_PRICE_LIST_LINE_rec.attribute11 := l_implicit_rec.ATTRIBUTE11;
2035         l_PRICE_LIST_LINE_rec.attribute12 := l_implicit_rec.ATTRIBUTE12;
2036         l_PRICE_LIST_LINE_rec.attribute13 := l_implicit_rec.ATTRIBUTE13;
2037         l_PRICE_LIST_LINE_rec.attribute14 := l_implicit_rec.ATTRIBUTE14;
2038         l_PRICE_LIST_LINE_rec.attribute15 := l_implicit_rec.ATTRIBUTE15;
2039         l_PRICE_LIST_LINE_rec.attribute2 := l_implicit_rec.ATTRIBUTE2;
2040         l_PRICE_LIST_LINE_rec.attribute3 := l_implicit_rec.ATTRIBUTE3;
2041         l_PRICE_LIST_LINE_rec.attribute4 := l_implicit_rec.ATTRIBUTE4;
2042         l_PRICE_LIST_LINE_rec.attribute5 := l_implicit_rec.ATTRIBUTE5;
2043         l_PRICE_LIST_LINE_rec.attribute6 := l_implicit_rec.ATTRIBUTE6;
2044         l_PRICE_LIST_LINE_rec.attribute7 := l_implicit_rec.ATTRIBUTE7;
2045         l_PRICE_LIST_LINE_rec.attribute8 := l_implicit_rec.ATTRIBUTE8;
2046         l_PRICE_LIST_LINE_rec.attribute9 := l_implicit_rec.ATTRIBUTE9;
2047         l_PRICE_LIST_LINE_rec.comments := l_implicit_rec.COMMENTS;
2048         l_PRICE_LIST_LINE_rec.context  := l_implicit_rec.CONTEXT;
2049         l_PRICE_LIST_LINE_rec.created_by := l_implicit_rec.CREATED_BY;
2050         l_PRICE_LIST_LINE_rec.creation_date := l_implicit_rec.CREATION_DATE;
2051         l_PRICE_LIST_LINE_rec.customer_item_id := l_implicit_rec.CUSTOMER_ITEM_ID;
2052         l_PRICE_LIST_LINE_rec.end_date_active := l_implicit_rec.END_DATE_ACTIVE;
2053         l_PRICE_LIST_LINE_rec.inventory_item_id := l_implicit_rec.INVENTORY_ITEM_ID;
2054         l_PRICE_LIST_LINE_rec.last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
2055         l_PRICE_LIST_LINE_rec.last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
2056         l_PRICE_LIST_LINE_rec.last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
2057         l_PRICE_LIST_LINE_rec.list_price := l_implicit_rec.LIST_PRICE;
2058         l_PRICE_LIST_LINE_rec.method_code := l_method_code;
2059         l_PRICE_LIST_LINE_rec.price_list_id := l_implicit_rec.PRICE_LIST_ID;
2060         l_PRICE_LIST_LINE_rec.price_list_line_id := l_implicit_rec.PRICE_LIST_LINE_ID;
2061         l_PRICE_LIST_LINE_rec.pricing_attribute1 := l_implicit_rec.PRICING_ATTRIBUTE1;
2062         l_PRICE_LIST_LINE_rec.pricing_attribute10 := l_implicit_rec.PRICING_ATTRIBUTE10;
2063         l_PRICE_LIST_LINE_rec.pricing_attribute11 := l_implicit_rec.PRICING_ATTRIBUTE11;
2064         l_PRICE_LIST_LINE_rec.pricing_attribute12 := l_implicit_rec.PRICING_ATTRIBUTE12;
2065         l_PRICE_LIST_LINE_rec.pricing_attribute13 := l_implicit_rec.PRICING_ATTRIBUTE13;
2066         l_PRICE_LIST_LINE_rec.pricing_attribute14 := l_implicit_rec.PRICING_ATTRIBUTE14;
2067         l_PRICE_LIST_LINE_rec.pricing_attribute15 := l_implicit_rec.PRICING_ATTRIBUTE15;
2068         l_PRICE_LIST_LINE_rec.pricing_attribute2 := l_implicit_rec.PRICING_ATTRIBUTE2;
2069         l_PRICE_LIST_LINE_rec.pricing_attribute3 := l_implicit_rec.PRICING_ATTRIBUTE3;
2070         l_PRICE_LIST_LINE_rec.pricing_attribute4 := l_implicit_rec.PRICING_ATTRIBUTE4;
2071         l_PRICE_LIST_LINE_rec.pricing_attribute5 := l_implicit_rec.PRICING_ATTRIBUTE5;
2072         l_PRICE_LIST_LINE_rec.pricing_attribute6 := l_implicit_rec.PRICING_ATTRIBUTE6;
2073         l_PRICE_LIST_LINE_rec.pricing_attribute7 := l_implicit_rec.PRICING_ATTRIBUTE7;
2074         l_PRICE_LIST_LINE_rec.pricing_attribute8 := l_implicit_rec.PRICING_ATTRIBUTE8;
2075         l_PRICE_LIST_LINE_rec.pricing_attribute9 := l_implicit_rec.PRICING_ATTRIBUTE9;
2076         l_PRICE_LIST_LINE_rec.pricing_context := l_implicit_rec.PRICING_CONTEXT;
2077         l_PRICE_LIST_LINE_rec.pricing_rule_id := l_implicit_rec.PRICING_RULE_ID;
2078         l_PRICE_LIST_LINE_rec.primary  := l_implicit_rec.PRIMARY;
2079         l_PRICE_LIST_LINE_rec.program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
2080         l_PRICE_LIST_LINE_rec.program_id := l_implicit_rec.PROGRAM_ID;
2081         l_PRICE_LIST_LINE_rec.program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
2082         l_PRICE_LIST_LINE_rec.reprice_flag := l_implicit_rec.REPRICE_FLAG;
2083         l_PRICE_LIST_LINE_rec.request_id := l_implicit_rec.REQUEST_ID;
2084         l_PRICE_LIST_LINE_rec.revision := l_implicit_rec.REVISION;
2085         l_PRICE_LIST_LINE_rec.revision_date := l_implicit_rec.REVISION_DATE;
2086         l_PRICE_LIST_LINE_rec.revision_reason_code := l_implicit_rec.REVISION_REASON_CODE;
2087         l_PRICE_LIST_LINE_rec.start_date_active := l_implicit_rec.START_DATE_ACTIVE;
2088         l_PRICE_LIST_LINE_rec.unit_code := l_implicit_rec.UNIT_CODE;
2089 
2090         l_PRICE_LIST_LINE_tbl(l_PRICE_LIST_LINE_tbl.COUNT + 1) := l_PRICE_LIST_LINE_rec;
2091 
2092 
2093     END LOOP;
2094 
2095 
2096     --  PK sent and no rows found
2097 
2098     IF
2099     (p_price_list_line_id IS NOT NULL
2100      AND
2101      p_price_list_line_id <> FND_API.G_MISS_NUM)
2102     AND
2103     (l_PRICE_LIST_LINE_tbl.COUNT = 0)
2104     THEN
2105         RAISE NO_DATA_FOUND;
2106     END IF;
2107 
2108 
2109     --  Return fetched table
2110 
2111     RETURN l_PRICE_LIST_LINE_tbl;
2112 
2113 EXCEPTION
2114 
2115     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2116 
2117         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2118 
2119     WHEN OTHERS THEN
2120 
2121         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2122         THEN
2123             OE_MSG_PUB.Add_Exc_Msg
2124             (   G_PKG_NAME
2125             ,   'Query_Rows'
2126             );
2127         END IF;
2128 
2129         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2130 
2131 END Query_Rows;
2132 
2133 
2134 PROCEDURE Lock_Row
2135 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2136 ,   p_PRICE_LIST_LINE_rec           IN  OE_Price_List_PUB.Price_List_Line_Rec_Type
2137 ,   x_PRICE_LIST_LINE_rec           OUT NOCOPY /* file.sql.39 change */ OE_Price_List_PUB.Price_List_Line_Rec_Type
2138 ) is
2139 l_PRICE_LIST_LINE_rec oe_price_list_pub.price_list_line_rec_type;
2140 l_percent_price number;
2141 l_list_price number;
2142 l_automatic_flag varchar2(30);
2143 l_list_line_type_code varchar2(30);
2144 l_modifier_level_code varchar2(30);
2145 l_list_line_id number;
2146 BEGIN
2147 
2148    l_list_line_type_code := 'PLL';
2149    l_automatic_flag := 'Y';
2150    l_modifier_level_code := 'LINE';
2151    l_list_line_id := p_PRICE_LIST_LINE_rec.price_list_line_id;
2152 
2153    If p_PRICE_LIST_LINE_rec.method_code = 'PERC' THEN
2154 
2155       l_percent_price := p_PRICE_LIST_LINE_rec.list_price;
2156 
2157    else
2158 
2159       l_list_price := p_PRICE_LIST_LINE_rec.list_price;
2160 
2161    end if;
2162 
2163 
2164 
2165 lock_pricing_attributes(p_list_line_id => l_list_line_id,
2166                         x_return_status => x_return_status);
2167 
2168 
2169    QP_MODIFIER_LIST_LINE_PVT.Lock_Row(
2170 X_LIST_LINE_ID			=> l_list_line_id
2171 , X_CREATION_DATE		=> p_PRICE_LIST_LINE_rec.creation_date
2172 , X_CREATED_BY			=> p_PRICE_LIST_LINE_rec.created_by
2173 , X_LAST_UPDATE_DATE		=> p_PRICE_LIST_LINE_rec.last_update_date
2174 , X_LAST_UPDATED_BY		=> p_PRICE_LIST_LINE_rec.last_updated_by
2175 , X_LAST_UPDATE_LOGIN		=> p_PRICE_LIST_LINE_rec.last_update_login
2176 , X_PROGRAM_APPLICATION_ID	=> p_PRICE_LIST_LINE_rec.program_application_id
2177 , X_PROGRAM_ID			=> p_PRICE_LIST_LINE_rec.program_id
2178 , X_PROGRAM_UPDATE_DATE		=> p_PRICE_LIST_LINE_rec.program_update_date
2179 , X_REQUEST_ID			=> p_PRICE_LIST_LINE_rec.request_id
2180 , X_LIST_HEADER_ID		=> p_PRICE_LIST_LINE_rec.price_list_id
2181 , X_LIST_LINE_TYPE_CODE		=> l_list_line_type_code
2182 , X_START_DATE_ACTIVE		=> p_PRICE_LIST_LINE_rec.start_date_active
2183 , X_END_DATE_ACTIVE		=> p_PRICE_LIST_LINE_rec.end_date_active
2184 , X_AUTOMATIC_FLAG		=> l_automatic_flag
2185 , X_MODIFIER_LEVEL_CODE		=> l_modifier_level_code
2186 , X_LIST_PRICE			=> l_list_price
2187 , X_LIST_PRICE_UOM_CODE		=> p_PRICE_LIST_LINE_rec.unit_code
2188 , X_PRIMARY_UOM_FLAG		=> p_PRICE_LIST_LINE_rec.primary
2189 , X_INVENTORY_ITEM_ID		=> NULL
2190 , X_ORGANIZATION_ID		=> NULL
2191 , X_RELATED_ITEM_ID		=> NULL
2192 , X_RELATIONSHIP_TYPE_ID	=> NULL
2193 , X_SUBSTITUTION_CONTEXT	=> NULL
2194 , X_SUBSTITUTION_ATTRIBUTE	=> NULL
2195 , X_SUBSTITUTION_VALUE		=> NULL
2196 , X_REVISION			=> p_PRICE_LIST_LINE_rec.revision
2197 , X_REVISION_DATE		=> p_PRICE_LIST_LINE_rec.revision_date
2198 , X_REVISION_REASON_CODE	=> p_PRICE_LIST_LINE_rec.revision_reason_code
2199 , X_COMMENTS			=> p_PRICE_LIST_LINE_rec.comments
2200 , X_CONTEXT			=> p_PRICE_LIST_LINE_rec.context
2201 , X_ATTRIBUTE1			=> p_PRICE_LIST_LINE_rec.attribute1
2202 , X_ATTRIBUTE2			=> p_PRICE_LIST_LINE_rec.attribute2
2203 , X_ATTRIBUTE3			=> p_PRICE_LIST_LINE_rec.attribute3
2204 , X_ATTRIBUTE4			=> p_PRICE_LIST_LINE_rec.attribute4
2205 , X_ATTRIBUTE5			=> p_PRICE_LIST_LINE_rec.attribute5
2206 , X_ATTRIBUTE6			=> p_PRICE_LIST_LINE_rec.attribute6
2207 , X_ATTRIBUTE7			=> p_PRICE_LIST_LINE_rec.attribute7
2208 , X_ATTRIBUTE8			=> p_PRICE_LIST_LINE_rec.attribute8
2209 , X_ATTRIBUTE9			=> p_PRICE_LIST_LINE_rec.attribute9
2210 , X_ATTRIBUTE10			=> p_PRICE_LIST_LINE_rec.attribute10
2211 , X_ATTRIBUTE11			=> p_PRICE_LIST_LINE_rec.attribute11
2212 , X_ATTRIBUTE12			=> p_PRICE_LIST_LINE_rec.attribute12
2213 , X_ATTRIBUTE13			=> p_PRICE_LIST_LINE_rec.attribute13
2214 , X_ATTRIBUTE14			=> p_PRICE_LIST_LINE_rec.attribute14
2215 , X_ATTRIBUTE15			=> p_PRICE_LIST_LINE_rec.attribute15
2216 ,X_PRICE_BREAK_TYPE_CODE	=> NULL /* p_PRICE_LIST_LINE_rec.price_break_type_code */
2217 , X_PERCENT_PRICE		=> l_percent_price
2218 , X_PRICE_BY_FORMULA_ID		=> NULL
2219 , X_NUMBER_EFFECTIVE_PERIODS	=> NULL
2220 , X_EFFECTIVE_PERIOD_UOM	=> NULL
2221 , X_ARITHMETIC_OPERATOR		=> NULL
2222 , X_OPERAND			=> NULL
2223 , X_NEW_PRICE                   => NULL
2224 , X_OVERRIDE_FLAG		=> NULL
2225 , X_PRINT_ON_INVOICE_FLAG	=> NULL
2226 , X_GL_CLASS_ID                 => NULL
2227 , X_REBATE_TRANSACTION_TYPE_CODE => NULL
2228 , X_REBATE_SUBTYPE_CODE          => NULL
2229 , X_BASE_QTY			 => NULL
2230 , X_BASE_UOM_CODE		 => NULL
2231 , X_ACCRUAL_TYPE_CODE            => NULL
2232 , X_ACCRUAL_QTY			 => NULL
2233 , X_ACCRUAL_UOM_CODE		 => NULL
2234 , X_ESTIM_ACCRUAL_RATE		 => NULL
2235 , X_ACCUM_TO_ACCR_CONV_RATE      => NULL
2236 , X_GENERATE_USING_FORMULA_ID	 => p_PRICE_LIST_LINE_rec.pricing_rule_id);
2237 
2238 
2239   x_PRICE_LIST_LINE_rec := p_PRICE_LIST_LINE_rec;
2240 
2241   EXCEPTION
2242 
2243     WHEN NO_DATA_FOUND THEN
2244 
2245         x_return_status                := FND_API.G_RET_STS_ERROR;
2246         x_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
2247 
2248         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
2249         THEN
2250 
2251             FND_MESSAGE.SET_NAME('OE','OE_LOCK_ROW_DELETED');
2252             OE_MSG_PUB.Add;
2253 
2254         END IF;
2255     WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
2256 
2257         x_return_status                := FND_API.G_RET_STS_ERROR;
2258         x_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
2259 
2260         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
2261         THEN
2262 
2263             FND_MESSAGE.SET_NAME('OE','OE_LOCK_ROW_ALREADY_LOCKED');
2264             OE_MSG_PUB.Add;
2265 
2266         END IF;
2267     WHEN OTHERS THEN
2268 
2269         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
2270         x_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2271 
2272         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2273         THEN
2274             OE_MSG_PUB.Add_Exc_Msg
2275             (   G_PKG_NAME
2276             ,   'Lock_Row'
2277             );
2278         END IF;
2279 
2280 END Lock_Row;
2281 
2282 
2283 
2284 
2285 
2286 --  Function Get_Values
2287 
2288 FUNCTION Get_Values
2289 (   p_PRICE_LIST_LINE_rec           IN  OE_Price_List_PUB.Price_List_Line_Rec_Type
2290 ,   p_old_PRICE_LIST_LINE_rec       IN  OE_Price_List_PUB.Price_List_Line_Rec_Type :=
2291                                         OE_Price_List_PUB.G_MISS_PRICE_LIST_LINE_REC
2292 ) RETURN OE_Price_List_PUB.Price_List_Line_Val_Rec_Type
2293 IS
2294 l_PRICE_LIST_LINE_val_rec     OE_Price_List_PUB.Price_List_Line_Val_Rec_Type;
2295 BEGIN
2296 
2297    /*
2298     IF p_PRICE_LIST_LINE_rec.customer_item_id IS NOT NULL AND
2299         p_PRICE_LIST_LINE_rec.customer_item_id <> FND_API.G_MISS_NUM AND
2300         NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.customer_item_id,
2301         p_old_PRICE_LIST_LINE_rec.customer_item_id)
2302     THEN
2303 
2304         l_PRICE_LIST_LINE_val_rec.customer_item := OE_Id_To_Value.Customer_Item
2305         (   p_customer_item_id            => p_PRICE_LIST_LINE_rec.customer_item_id
2306         );
2307     END IF;
2308     */
2309 
2310     IF p_PRICE_LIST_LINE_rec.inventory_item_id IS NOT NULL AND
2311         p_PRICE_LIST_LINE_rec.inventory_item_id <> FND_API.G_MISS_NUM AND
2312         NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.inventory_item_id,
2313         p_old_PRICE_LIST_LINE_rec.inventory_item_id)
2314     THEN
2315         l_PRICE_LIST_LINE_val_rec.inventory_item := OE_Id_To_Value.Inventory_Item
2316         (   p_inventory_item_id           => p_PRICE_LIST_LINE_rec.inventory_item_id
2317         );
2318     END IF;
2319 
2320     IF p_PRICE_LIST_LINE_rec.method_code IS NOT NULL AND
2321         p_PRICE_LIST_LINE_rec.method_code <> FND_API.G_MISS_CHAR AND
2322         NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.method_code,
2323         p_old_PRICE_LIST_LINE_rec.method_code)
2324     THEN
2325         l_PRICE_LIST_LINE_val_rec.method := OE_Id_To_Value.Method
2326         (   p_method_code                 => p_PRICE_LIST_LINE_rec.method_code
2327         );
2328     END IF;
2329 /*
2330     IF p_PRICE_LIST_LINE_rec.price_list_id IS NOT NULL AND
2331         p_PRICE_LIST_LINE_rec.price_list_id <> FND_API.G_MISS_NUM AND
2332         NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.price_list_id,
2333         p_old_PRICE_LIST_LINE_rec.price_list_id)
2334     THEN
2335         l_PRICE_LIST_LINE_val_rec.price_list := OE_Id_To_Value.Price_List
2336      (   p_price_list_id               => p_PRICE_LIST_LINE_rec.price_list_id
2337         );
2338     END IF;
2339 */
2340 
2341     IF p_PRICE_LIST_LINE_rec.price_list_line_id IS NOT NULL AND
2342         p_PRICE_LIST_LINE_rec.price_list_line_id <> FND_API.G_MISS_NUM AND
2343         NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.price_list_line_id,
2344         p_old_PRICE_LIST_LINE_rec.price_list_line_id)
2345     THEN
2346         l_PRICE_LIST_LINE_val_rec.price_list_line := OE_Id_To_Value.Price_List_Line
2347         (   p_price_list_line_id          => p_PRICE_LIST_LINE_rec.price_list_line_id
2348         );
2349     END IF;
2350 
2351     IF p_PRICE_LIST_LINE_rec.pricing_rule_id IS NOT NULL AND
2352         p_PRICE_LIST_LINE_rec.pricing_rule_id <> FND_API.G_MISS_NUM AND
2353         NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.pricing_rule_id,
2354         p_old_PRICE_LIST_LINE_rec.pricing_rule_id)
2355     THEN
2356         l_PRICE_LIST_LINE_val_rec.pricing_rule := OE_Id_To_Value.Pricing_Rule
2357         (   p_pricing_rule_id             => p_PRICE_LIST_LINE_rec.pricing_rule_id
2358         );
2359     END IF;
2360 
2361     IF p_PRICE_LIST_LINE_rec.reprice_flag IS NOT NULL AND
2362         p_PRICE_LIST_LINE_rec.reprice_flag <> FND_API.G_MISS_CHAR AND
2363         NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.reprice_flag,
2364         p_old_PRICE_LIST_LINE_rec.reprice_flag)
2365     THEN
2366         l_PRICE_LIST_LINE_val_rec.reprice := OE_Id_To_Value.Reprice
2367         (   p_reprice_flag                => p_PRICE_LIST_LINE_rec.reprice_flag
2368         );
2369     END IF;
2370 
2371     IF p_PRICE_LIST_LINE_rec.revision_reason_code IS NOT NULL AND
2372         p_PRICE_LIST_LINE_rec.revision_reason_code <> FND_API.G_MISS_CHAR AND
2373         NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision_reason_code,
2374         p_old_PRICE_LIST_LINE_rec.revision_reason_code)
2375     THEN
2376         l_PRICE_LIST_LINE_val_rec.revision_reason := OE_Id_To_Value.Revision_Reason
2377         (   p_revision_reason_code        => p_PRICE_LIST_LINE_rec.revision_reason_code
2378         );
2379     END IF;
2380 
2381     IF p_PRICE_LIST_LINE_rec.unit_code IS NOT NULL AND
2382         p_PRICE_LIST_LINE_rec.unit_code <> FND_API.G_MISS_CHAR AND
2383         NOT OE_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.unit_code,
2384         p_old_PRICE_LIST_LINE_rec.unit_code)
2385     THEN
2386         l_PRICE_LIST_LINE_val_rec.unit := OE_Id_To_Value.Unit
2387         (   p_unit_code                   => p_PRICE_LIST_LINE_rec.unit_code
2388         );
2389     END IF;
2390 
2391     RETURN l_PRICE_LIST_LINE_val_rec;
2392 
2393 END Get_Values;
2394 
2395 --  Function Get_Ids
2396 
2397 FUNCTION Get_Ids
2398 (   p_PRICE_LIST_LINE_rec           IN  OE_Price_List_PUB.Price_List_Line_Rec_Type
2399 ,   p_PRICE_LIST_LINE_val_rec       IN  OE_Price_List_PUB.Price_List_Line_Val_Rec_Type
2400 ) RETURN OE_Price_List_PUB.Price_List_Line_Rec_Type
2401 IS
2402 l_PRICE_LIST_LINE_rec         OE_Price_List_PUB.Price_List_Line_Rec_Type;
2403 BEGIN
2404 
2405     --  initialize  return_status.
2406 
2407     l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_SUCCESS;
2408 
2409     --  initialize l_PRICE_LIST_LINE_rec.
2410 
2411     l_PRICE_LIST_LINE_rec := p_PRICE_LIST_LINE_rec;
2412 
2413     IF  p_PRICE_LIST_LINE_val_rec.customer_item <> FND_API.G_MISS_CHAR
2414     THEN
2415 
2416         IF p_PRICE_LIST_LINE_rec.customer_item_id <> FND_API.G_MISS_NUM THEN
2417 
2418             l_PRICE_LIST_LINE_rec.customer_item_id := p_PRICE_LIST_LINE_rec.customer_item_id;
2419 
2420             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2421             THEN
2422 
2423                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2424                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','customer_item');
2425                 OE_MSG_PUB.Add;
2426 
2427             END IF;
2428 
2429         ELSE
2430 
2431 		 /*
2432             l_PRICE_LIST_LINE_rec.customer_item_id := OE_Value_To_Id.customer_item
2433             (   p_customer_item               => p_PRICE_LIST_LINE_val_rec.customer_item
2434             );
2435 		  */
2436 
2437             IF l_PRICE_LIST_LINE_rec.customer_item_id = FND_API.G_MISS_NUM THEN
2438                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
2439             END IF;
2440 
2441         END IF;
2442 
2443     END IF;
2444 
2445     IF  p_PRICE_LIST_LINE_val_rec.inventory_item <> FND_API.G_MISS_CHAR
2446     THEN
2447 
2448         IF p_PRICE_LIST_LINE_rec.inventory_item_id <> FND_API.G_MISS_NUM THEN
2449 
2450             l_PRICE_LIST_LINE_rec.inventory_item_id := p_PRICE_LIST_LINE_rec.inventory_item_id;
2451 
2452             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2453             THEN
2454 
2455                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2456                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','inventory_item');
2457                 OE_MSG_PUB.Add;
2458 
2459             END IF;
2460 
2461         ELSE
2462 
2463             l_PRICE_LIST_LINE_rec.inventory_item_id := OE_Value_To_Id.inventory_item
2464             (   p_inventory_item              => p_PRICE_LIST_LINE_val_rec.inventory_item
2465             );
2466 
2467             IF l_PRICE_LIST_LINE_rec.inventory_item_id = FND_API.G_MISS_NUM THEN
2468                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
2469             END IF;
2470 
2471         END IF;
2472 
2473     END IF;
2474 
2475     IF  p_PRICE_LIST_LINE_val_rec.method <> FND_API.G_MISS_CHAR
2476     THEN
2477 
2478         IF p_PRICE_LIST_LINE_rec.method_code <> FND_API.G_MISS_CHAR THEN
2479 
2480             l_PRICE_LIST_LINE_rec.method_code := p_PRICE_LIST_LINE_rec.method_code;
2481 
2482             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2483             THEN
2484 
2485                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2486                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','method');
2487                 OE_MSG_PUB.Add;
2488 
2489             END IF;
2490 
2491         ELSE
2492 
2493             l_PRICE_LIST_LINE_rec.method_code := OE_Value_To_Id.method
2494             (   p_method                      => p_PRICE_LIST_LINE_val_rec.method
2495             );
2496 
2497             IF l_PRICE_LIST_LINE_rec.method_code = FND_API.G_MISS_CHAR THEN
2498                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
2499             END IF;
2500 
2501         END IF;
2502 
2503     END IF;
2504 
2505     IF  p_PRICE_LIST_LINE_val_rec.price_list <> FND_API.G_MISS_CHAR
2506     THEN
2507 
2508         IF p_PRICE_LIST_LINE_rec.price_list_id <> FND_API.G_MISS_NUM THEN
2509 
2510             l_PRICE_LIST_LINE_rec.price_list_id := p_PRICE_LIST_LINE_rec.price_list_id;
2511 
2512             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2513             THEN
2514 
2515                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2516                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','price_list');
2517                 OE_MSG_PUB.Add;
2518 
2519             END IF;
2520 
2521         ELSE
2522 
2523             l_PRICE_LIST_LINE_rec.price_list_id := OE_Value_To_Id.price_list
2524             (   p_price_list                  => p_PRICE_LIST_LINE_val_rec.price_list
2525             );
2526 
2527             IF l_PRICE_LIST_LINE_rec.price_list_id = FND_API.G_MISS_NUM THEN
2528                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
2529             END IF;
2530 
2531         END IF;
2532 
2533     END IF;
2534 
2535     IF  p_PRICE_LIST_LINE_val_rec.price_list_line <> FND_API.G_MISS_CHAR
2536     THEN
2537 
2538         IF p_PRICE_LIST_LINE_rec.price_list_line_id <> FND_API.G_MISS_NUM THEN
2539 
2540             l_PRICE_LIST_LINE_rec.price_list_line_id := p_PRICE_LIST_LINE_rec.price_list_line_id;
2541 
2542             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2543             THEN
2544 
2545                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2546                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','price_list_line');
2547                 OE_MSG_PUB.Add;
2548 
2549             END IF;
2550 
2551         ELSE
2552 
2553             l_PRICE_LIST_LINE_rec.price_list_line_id := OE_Value_To_Id.price_list_line
2554             (   p_price_list_line             => p_PRICE_LIST_LINE_val_rec.price_list_line
2555             );
2556 
2557             IF l_PRICE_LIST_LINE_rec.price_list_line_id = FND_API.G_MISS_NUM THEN
2558                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
2559             END IF;
2560 
2561         END IF;
2562 
2563     END IF;
2564 
2565     IF  p_PRICE_LIST_LINE_val_rec.pricing_rule <> FND_API.G_MISS_CHAR
2566     THEN
2567 
2568         IF p_PRICE_LIST_LINE_rec.pricing_rule_id <> FND_API.G_MISS_NUM THEN
2569 
2570             l_PRICE_LIST_LINE_rec.pricing_rule_id := p_PRICE_LIST_LINE_rec.pricing_rule_id;
2571 
2572             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2573             THEN
2574 
2575                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2576                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','pricing_rule');
2577                 OE_MSG_PUB.Add;
2578 
2579             END IF;
2580 
2581         ELSE
2582 
2583             l_PRICE_LIST_LINE_rec.pricing_rule_id := OE_Value_To_Id.pricing_rule
2584             (   p_pricing_rule                => p_PRICE_LIST_LINE_val_rec.pricing_rule
2585             );
2586 
2587             IF l_PRICE_LIST_LINE_rec.pricing_rule_id = FND_API.G_MISS_NUM THEN
2588                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
2589             END IF;
2590 
2591         END IF;
2592 
2593     END IF;
2594 
2595     IF  p_PRICE_LIST_LINE_val_rec.reprice <> FND_API.G_MISS_CHAR
2596     THEN
2597 
2598         IF p_PRICE_LIST_LINE_rec.reprice_flag <> FND_API.G_MISS_CHAR THEN
2599 
2600             l_PRICE_LIST_LINE_rec.reprice_flag := p_PRICE_LIST_LINE_rec.reprice_flag;
2601 
2602             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2603             THEN
2604 
2605                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2606                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','reprice');
2607                 OE_MSG_PUB.Add;
2608 
2609             END IF;
2610 
2611         ELSE
2612 
2613             l_PRICE_LIST_LINE_rec.reprice_flag := OE_Value_To_Id.reprice
2614             (   p_reprice                     => p_PRICE_LIST_LINE_val_rec.reprice
2615             );
2616 
2617             IF l_PRICE_LIST_LINE_rec.reprice_flag = FND_API.G_MISS_CHAR THEN
2618                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
2619             END IF;
2620 
2621         END IF;
2622 
2623     END IF;
2624 
2625     IF  p_PRICE_LIST_LINE_val_rec.revision_reason <> FND_API.G_MISS_CHAR
2626     THEN
2627 
2628         IF p_PRICE_LIST_LINE_rec.revision_reason_code <> FND_API.G_MISS_CHAR THEN
2629 
2630             l_PRICE_LIST_LINE_rec.revision_reason_code := p_PRICE_LIST_LINE_rec.revision_reason_code;
2631 
2632             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2633             THEN
2634 
2635                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2636                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','revision_reason');
2637                 OE_MSG_PUB.Add;
2638 
2639             END IF;
2640 
2641         ELSE
2642 
2643             l_PRICE_LIST_LINE_rec.revision_reason_code := OE_Value_To_Id.revision_reason
2644             (   p_revision_reason             => p_PRICE_LIST_LINE_val_rec.revision_reason
2645             );
2646 
2647             IF l_PRICE_LIST_LINE_rec.revision_reason_code = FND_API.G_MISS_CHAR THEN
2648                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
2649             END IF;
2650 
2651         END IF;
2652 
2653 -- Added New Geresh
2654      ELSE
2655       --      l_Price_LLine_rec.revision_reason_code := '1234';
2656             l_Price_LIST_LINE_rec.revision_reason_code := OE_Value_To_Id.revision_reason
2657             (   p_revision_reason             => p_Price_LIST_LINE_val_rec.revision_reason
2658             );
2659 
2660             IF l_Price_LIST_Line_rec.revision_reason_code = FND_API.G_MISS_CHAR THEN
2661                 l_Price_LIST_Line_rec.return_status := FND_API.G_RET_STS_ERROR;
2662             END IF;
2663 
2664 
2665 
2666     END IF;
2667 
2668     IF  p_PRICE_LIST_LINE_val_rec.unit <> FND_API.G_MISS_CHAR
2669     THEN
2670 
2671         IF p_PRICE_LIST_LINE_rec.unit_code <> FND_API.G_MISS_CHAR THEN
2672 
2673             l_PRICE_LIST_LINE_rec.unit_code := p_PRICE_LIST_LINE_rec.unit_code;
2674 
2675             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2676             THEN
2677 
2678                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2679                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','unit');
2680                 OE_MSG_PUB.Add;
2681 
2682             END IF;
2683 
2684         ELSE
2685 
2686             l_PRICE_LIST_LINE_rec.unit_code := OE_Value_To_Id.unit
2687             (   p_unit                        => p_PRICE_LIST_LINE_val_rec.unit
2688             );
2689 
2690             IF l_PRICE_LIST_LINE_rec.unit_code = FND_API.G_MISS_CHAR THEN
2691                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
2692             END IF;
2693 
2694         END IF;
2695 
2696     END IF;
2697 
2698 
2699     RETURN l_PRICE_LIST_LINE_rec;
2700 
2701 END Get_Ids;
2702 
2703 PROCEDURE lock_pricing_attributes( p_list_line_id in number,
2704                                    x_return_status out NOCOPY /* file.sql.39 change */ varchar2)
2705 is
2706 l_count number := 0;
2707 begin
2708 
2709 
2710   select 1
2711   into l_count
2712   from qp_pricing_attributes
2713   where list_line_id = p_list_line_id
2714   for update nowait;
2715 
2716  exception
2717 
2718     WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
2719 
2720         x_return_status                := FND_API.G_RET_STS_ERROR;
2721 
2722         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
2723         THEN
2724 
2725             FND_MESSAGE.SET_NAME('OE','OE_LOCK_ROW_ALREADY_LOCKED');
2726             OE_MSG_PUB.Add;
2727 
2728         END IF;
2729 
2730 
2731     WHEN OTHERS THEN
2732 
2733         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
2734 
2735         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2736         THEN
2737             OE_MSG_PUB.Add_Exc_Msg
2738             (   G_PKG_NAME
2739             ,   'Lock_Row'
2740             );
2741         END IF;
2742 
2743 
2744 end lock_pricing_attributes;
2745 
2746 PROCEDURE maintain_pricing_attributes(p_PRICE_LIST_LINE_rec in OE_PRICE_LIST_PUB.Price_List_Line_Rec_Type,
2747 operation in varchar2,
2748 x_return_status out NOCOPY /* file.sql.39 change */ varchar2)
2749 is
2750 l_pricing_attr_tbl OE_PRICE_LIST_PUB.Pricing_Attr_Tbl_Type;
2751 l_pricing_attr_rec OE_PRICE_LIST_PUB.Pricing_Attr_Rec_Type;
2752 l_count number := 0;
2753 l_product_context varchar2(30);
2754 l_customer_item_context varchar2(30);
2755 l_pb_dollars_attribute_context varchar2(30);
2756 l_pb_units_attribute_context varchar2(30);
2757 l_product_attr varchar2(30);
2758 l_customer_item_attr varchar2(30);
2759 l_pb_dollars_attribute varchar2(30);
2760 l_pb_units_attribute varchar2(30);
2761 l_pricing_attr_grouping_no number;
2762 I number := 1;
2763 J number := 1;
2764 l_related_modifier_id number;
2765 l_rltd_modifier_grp_no number;
2766 l_pricing_attribute_id number;
2767 begin
2768 
2769    /* get the inventory item context first. */
2770 
2771    oe_debug_pub.initialize;
2772    oe_debug_pub.debug_on;
2773    oe_debug_pub.add ( 'Geresh 9 :: IN Maintain attributes ' );
2774 
2775   QP_UTIL.Get_Context_Attribute('1001', l_product_context, l_product_attr);
2776 
2777     /* get the customer item context  */
2778    oe_debug_pub.add ( 'Geresh 10 :: IN Maintain attributes ' );
2779 
2780   QP_UTIL.Get_Context_Attribute('CUSTOMER_ITEM_ID', l_customer_item_context, l_customer_item_attr);
2781 
2782    oe_debug_pub.add ( 'Geresh 11 :: IN Maintain attributes ' );
2783 
2784   QP_UTIL.Get_Context_Attribute('DOLLARS',
2785 				l_pb_dollars_attribute_context,
2786 				l_pb_dollars_attribute );
2787    oe_debug_pub.add ( 'Geresh 12 :: IN Maintain attributes ' );
2788 
2789   QP_UTIL.Get_Context_Attribute('UNITS',
2790 				l_pb_units_attribute_context,
2791 				l_pb_units_attribute );
2792    oe_debug_pub.add ( 'Geresh 13 :: IN Maintain attributes ' );
2793 
2794 
2795    IF operation = 'UPDATE' THEN
2796    oe_debug_pub.add ( 'Geresh 14 :: Before Query Maintain attributes ' );
2797 
2798     l_pricing_attr_tbl := Query_Pricing_Attributes(p_list_line_id => p_PRICE_LIST_LINE_rec.price_list_line_id);
2799 
2800    oe_debug_pub.add ( 'Geresh 15 :: IN Maintain attributes ' );
2801 
2802    FOR I in 1..l_pricing_attr_tbl.count LOOP
2803 
2804 
2805       IF ( (l_pricing_attr_tbl(I).product_attribute_context =
2806               l_product_context) and
2807          (l_pricing_attr_tbl(I).product_attribute =
2808               l_product_attr) ) THEN
2809           l_pricing_attr_tbl(I).product_attr_value := p_PRICE_LIST_LINE_rec.inventory_item_id;
2810           l_pricing_attr_tbl(I).product_uom_code := p_PRICE_LIST_LINE_rec.unit_code;
2811 
2812       END IF;
2813 
2814       IF ( (l_pricing_attr_tbl(I).pricing_attribute_context =
2815               l_customer_item_context) and
2816          (l_pricing_attr_tbl(I).pricing_attribute =
2817               l_customer_item_attr) ) THEN
2818           l_pricing_attr_tbl(I).pricing_attr_value_from := p_PRICE_LIST_LINE_rec.customer_item_id;
2819 
2820       END IF;
2821 
2822       IF ( (l_pricing_attr_tbl(I).pricing_attribute_context =
2823               p_PRICE_LIST_LINE_rec.pricing_context) and
2824          (l_pricing_attr_tbl(I).pricing_attribute =
2825               'PRICING_ATTRIBUTE1') ) THEN
2826           l_pricing_attr_tbl(I).pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute1;
2827 
2828       END IF;
2829 
2830       IF ( (l_pricing_attr_tbl(I).pricing_attribute_context =
2831               p_PRICE_LIST_LINE_rec.pricing_context) and
2832          (l_pricing_attr_tbl(I).pricing_attribute =
2833               'PRICING_ATTRIBUTE2') ) THEN
2834           l_pricing_attr_tbl(I).pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute2;
2835 
2836       END IF;
2837 
2838       IF ( (l_pricing_attr_tbl(I).pricing_attribute_context =
2839               p_PRICE_LIST_LINE_rec.pricing_context) and
2840          (l_pricing_attr_tbl(I).pricing_attribute =
2841               'PRICING_ATTRIBUTE3') ) THEN
2842           l_pricing_attr_tbl(I).pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute3;
2843 
2844       END IF;
2845 
2846       IF ( (l_pricing_attr_tbl(I).pricing_attribute_context =
2847               p_PRICE_LIST_LINE_rec.pricing_context) and
2848          (l_pricing_attr_tbl(I).pricing_attribute =
2849               'PRICING_ATTRIBUTE4') ) THEN
2850           l_pricing_attr_tbl(I).pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute4;
2851 
2852       END IF;
2853 
2854       IF ( (l_pricing_attr_tbl(I).pricing_attribute_context =
2855               p_PRICE_LIST_LINE_rec.pricing_context) and
2856          (l_pricing_attr_tbl(I).pricing_attribute =
2857               'PRICING_ATTRIBUTE5') ) THEN
2858           l_pricing_attr_tbl(I).pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute5;
2859 
2860       END IF;
2861 
2862       IF ( (l_pricing_attr_tbl(I).pricing_attribute_context =
2863               p_PRICE_LIST_LINE_rec.pricing_context) and
2864          (l_pricing_attr_tbl(I).pricing_attribute =
2865               'PRICING_ATTRIBUTE6') ) THEN
2866           l_pricing_attr_tbl(I).pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute6;
2867 
2868       END IF;
2869 
2870       IF ( (l_pricing_attr_tbl(I).pricing_attribute_context =
2871               p_PRICE_LIST_LINE_rec.pricing_context) and
2872          (l_pricing_attr_tbl(I).pricing_attribute =
2873               'PRICING_ATTRIBUTE7') ) THEN
2874           l_pricing_attr_tbl(I).pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute7;
2875 
2876       END IF;
2877 
2878       IF ( (l_pricing_attr_tbl(I).pricing_attribute_context =
2879               p_PRICE_LIST_LINE_rec.pricing_context) and
2880          (l_pricing_attr_tbl(I).pricing_attribute =
2881               'PRICING_ATTRIBUTE8') ) THEN
2882           l_pricing_attr_tbl(I).pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute8;
2883 
2884       END IF;
2885 
2886       IF ( (l_pricing_attr_tbl(I).pricing_attribute_context =
2887               p_PRICE_LIST_LINE_rec.pricing_context) and
2888          (l_pricing_attr_tbl(I).pricing_attribute =
2889               'PRICING_ATTRIBUTE9') ) THEN
2890           l_pricing_attr_tbl(I).pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute9;
2891 
2892       END IF;
2893 
2894       IF ( (l_pricing_attr_tbl(I).pricing_attribute_context =
2895               p_PRICE_LIST_LINE_rec.pricing_context) and
2896          (l_pricing_attr_tbl(I).pricing_attribute =
2897               'PRICING_ATTRIBUTE10') ) THEN
2898           l_pricing_attr_tbl(I).pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute10;
2899 
2900       END IF;
2901 
2902       IF ( (l_pricing_attr_tbl(I).pricing_attribute_context =
2903               p_PRICE_LIST_LINE_rec.pricing_context) and
2904          (l_pricing_attr_tbl(I).pricing_attribute =
2905               'PRICING_ATTRIBUTE11') ) THEN
2906           l_pricing_attr_tbl(I).pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute11;
2907 
2908       END IF;
2909 
2910       IF ( (l_pricing_attr_tbl(I).pricing_attribute_context =
2911               p_PRICE_LIST_LINE_rec.pricing_context) and
2912          (l_pricing_attr_tbl(I).pricing_attribute =
2913               'PRICING_ATTRIBUTE12') ) THEN
2914           l_pricing_attr_tbl(I).pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute12;
2915 
2916       END IF;
2917 
2918       IF ( (l_pricing_attr_tbl(I).pricing_attribute_context =
2919               p_PRICE_LIST_LINE_rec.pricing_context) and
2920          (l_pricing_attr_tbl(I).pricing_attribute =
2921               'PRICING_ATTRIBUTE13') ) THEN
2922           l_pricing_attr_tbl(I).pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute13;
2923 
2924       END IF;
2925 
2926       IF ( (l_pricing_attr_tbl(I).pricing_attribute_context =
2927               p_PRICE_LIST_LINE_rec.pricing_context) and
2928          (l_pricing_attr_tbl(I).pricing_attribute =
2929               'PRICING_ATTRIBUTE14') ) THEN
2930           l_pricing_attr_tbl(I).pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute14;
2931 
2932       END IF;
2933 
2934        IF ( (l_pricing_attr_tbl(I).pricing_attribute_context =
2935               p_PRICE_LIST_LINE_rec.pricing_context) and
2936          (l_pricing_attr_tbl(I).pricing_attribute =
2937               'PRICING_ATTRIBUTE15') ) THEN
2938           l_pricing_attr_tbl(I).pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute15;
2939 
2940        END IF;
2941 
2942 
2943        IF ( (l_pricing_attr_tbl(I).pricing_attribute_context =
2944               l_pb_dollars_attribute_context) and
2945          (l_pricing_attr_tbl(I).pricing_attribute =
2946             l_pb_dollars_attribute) ) THEN
2947           l_pricing_attr_tbl(I).pricing_attr_value_from := p_PRICE_LIST_LINE_rec.price_break_low;
2948           l_pricing_attr_tbl(I).pricing_attr_value_to := p_PRICE_LIST_LINE_rec.price_break_high;
2949 
2950        END IF;
2951 
2952 
2953 
2954      /* call update row for pricing attributes */
2955 
2956      QP_PRICING_ATTRIBUTE_PVT.Update_Row(
2957   X_PRICING_ATTRIBUTE_ID => l_pricing_attr_tbl(I).pricing_attribute_id
2958 , X_CREATION_DATE        => l_pricing_attr_tbl(I).creation_date
2959 , X_CREATED_BY		 => l_pricing_attr_tbl(I).created_by
2960 , X_LAST_UPDATE_DATE	 => l_pricing_attr_tbl(I).last_update_date
2961 , X_LAST_UPDATED_BY	 => l_pricing_attr_tbl(I).last_updated_by
2962 , X_LAST_UPDATE_LOGIN	 => l_pricing_attr_tbl(I).last_update_login
2963 , X_PROGRAM_APPLICATION_ID => l_pricing_attr_tbl(I).program_application_id
2964 , X_PROGRAM_ID             => l_pricing_attr_tbl(I).program_id
2965 , X_PROGRAM_UPDATE_DATE    => l_pricing_attr_tbl(I).program_update_date
2966 , X_REQUEST_ID		   => l_pricing_attr_tbl(I).request_id
2967 , X_LIST_LINE_ID	   => l_pricing_attr_tbl(I).list_line_id
2968 , X_EXCLUDER_FLAG	   => l_pricing_attr_tbl(I).excluder_flag
2969 , X_ACCUMULATE_FLAG	   => l_pricing_attr_tbl(I).accumulate_flag
2970 , X_PRODUCT_ATTRIBUTE_CONTEXT => l_pricing_attr_tbl(I).product_attribute_context
2971 , X_PRODUCT_ATTRIBUTE	      => l_pricing_attr_tbl(I).product_attribute
2972 , X_PRODUCT_ATTR_VALUE	      => l_pricing_attr_tbl(I).product_attr_value
2973 , X_PRODUCT_UOM_CODE	      => l_pricing_attr_tbl(I).product_uom_code
2974 , X_PRICING_ATTRIBUTE_CONTEXT => l_pricing_attr_tbl(I).pricing_attribute_context
2975 , X_PRICING_ATTRIBUTE	      => l_pricing_attr_tbl(I).pricing_attribute
2976 , X_PRICING_ATTR_VALUE_FROM   => l_pricing_attr_tbl(I).pricing_attr_value_from
2977 , X_PRICING_ATTR_VALUE_TO     => l_pricing_attr_tbl(I).pricing_attr_value_to
2978 , X_ATTRIBUTE_GROUPING_NO     => l_pricing_attr_tbl(I).attribute_grouping_no
2979 , X_CONTEXT		      => l_pricing_attr_tbl(I).context
2980 , X_ATTRIBUTE1		      => l_pricing_attr_tbl(I).attribute1
2981 , X_ATTRIBUTE2                => l_pricing_attr_tbl(I).attribute1
2982 , X_ATTRIBUTE3                => l_pricing_attr_tbl(I).attribute1
2983 , X_ATTRIBUTE4                => l_pricing_attr_tbl(I).attribute1
2984 , X_ATTRIBUTE5                => l_pricing_attr_tbl(I).attribute1
2985 , X_ATTRIBUTE6                => l_pricing_attr_tbl(I).attribute1
2986 , X_ATTRIBUTE7                => l_pricing_attr_tbl(I).attribute1
2987 , X_ATTRIBUTE8                => l_pricing_attr_tbl(I).attribute1
2988 , X_ATTRIBUTE9                => l_pricing_attr_tbl(I).attribute1
2989 , X_ATTRIBUTE10               => l_pricing_attr_tbl(I).attribute1
2990 , X_ATTRIBUTE11               => l_pricing_attr_tbl(I).attribute1
2991 , X_ATTRIBUTE12               => l_pricing_attr_tbl(I).attribute1
2992 , X_ATTRIBUTE13               => l_pricing_attr_tbl(I).attribute1
2993 , X_ATTRIBUTE14               => l_pricing_attr_tbl(I).attribute1
2994 , X_ATTRIBUTE15               => l_pricing_attr_tbl(I).attribute1 );
2995 
2996      END LOOP; /* for I in 1..l_pricing_attr_tbl.count */
2997 
2998 
2999     END IF; /* If operation = UPDATE */
3000 
3001    IF ( operation = 'INSERT') THEN
3002 
3003    oe_debug_pub.add ( 'Geresh 20 :: Insert Maintain attributes ' );
3004     l_pricing_attr_rec.product_attribute_context := l_product_context;
3005     l_pricing_attr_rec.product_attribute := l_product_attr;
3006     l_pricing_attr_rec.product_attr_value := p_PRICE_LIST_LINE_rec.inventory_item_id;
3007     l_pricing_attr_rec.pricing_attribute_context := 'ALL';
3008     l_pricing_attr_rec.pricing_attribute := 'ALL';
3009     l_pricing_attr_rec.pricing_attr_value_from := 'ALL';
3010     l_pricing_attr_tbl(I) := l_pricing_attr_rec;
3011 
3012     If p_PRICE_LIST_LINE_rec.customer_item_id is not null then
3013         l_pricing_attr_rec.pricing_attribute_context := l_customer_item_context;
3014         l_pricing_attr_rec.pricing_attribute := l_customer_item_attr;
3015         l_pricing_attr_rec.pricing_attr_value_from := p_PRICE_LIST_LINE_rec.customer_item_id;
3016         l_pricing_attr_rec.pricing_attr_value_to := NULL;
3017         l_pricing_attr_tbl(I) := l_pricing_attr_rec;
3018         I := I + 1;
3019     end if;
3020 
3021     /* check if pricing_attribute_context is present*/
3022 
3023     If p_PRICE_LIST_LINE_rec.pricing_context is not null then
3024         l_pricing_attr_rec.pricing_attribute_context := p_PRICE_LIST_LINE_rec.pricing_context;
3025 
3026     end if;
3027 
3028     If p_PRICE_LIST_LINE_rec.pricing_attribute1 is not null then
3029         l_pricing_attr_rec.pricing_attribute_context := p_PRICE_LIST_LINE_rec.pricing_context;
3030         l_pricing_attr_rec.pricing_attribute := 'PRICING_ATTRIBUTE1';
3031         l_pricing_attr_rec.pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute1;
3032         l_pricing_attr_rec.pricing_attr_value_to := NULL;
3033         l_pricing_attr_tbl(I) := l_pricing_attr_rec;
3034         I := I + 1;
3035     end if;
3036 
3037    oe_debug_pub.add ( 'Geresh 21 :: Insert Maintain attributes ' );
3038     If p_PRICE_LIST_LINE_rec.pricing_attribute2 is not null then
3039         l_pricing_attr_rec.pricing_attribute_context := p_PRICE_LIST_LINE_rec.pricing_context;
3040         l_pricing_attr_rec.pricing_attribute := 'PRICING_ATTRIBUTE2';
3041         l_pricing_attr_rec.pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute2;
3042         l_pricing_attr_rec.pricing_attr_value_to := NULL;
3043         l_pricing_attr_tbl(I) := l_pricing_attr_rec;
3044         I := I + 1;
3045     end if;
3046 
3047     If p_PRICE_LIST_LINE_rec.pricing_attribute3 is not null then
3048         l_pricing_attr_rec.pricing_attribute_context := p_PRICE_LIST_LINE_rec.pricing_context;
3049         l_pricing_attr_rec.pricing_attribute := 'PRICING_ATTRIBUTE3';
3050         l_pricing_attr_rec.pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute3;
3051         l_pricing_attr_rec.pricing_attr_value_to := NULL;
3052         l_pricing_attr_tbl(I) := l_pricing_attr_rec;
3053         I := I + 1;
3054     end if;
3055 
3056     If p_PRICE_LIST_LINE_rec.pricing_attribute4 is not null then
3057         l_pricing_attr_rec.pricing_attribute_context := p_PRICE_LIST_LINE_rec.pricing_context;
3058         l_pricing_attr_rec.pricing_attribute := 'PRICING_ATTRIBUTE4';
3059         l_pricing_attr_rec.pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute4;
3060         l_pricing_attr_rec.pricing_attr_value_to := NULL;
3061         l_pricing_attr_tbl(I) := l_pricing_attr_rec;
3062         I := I + 1;
3063     end if;
3064 
3065     If p_PRICE_LIST_LINE_rec.pricing_attribute5 is not null then
3066         l_pricing_attr_rec.pricing_attribute_context := p_PRICE_LIST_LINE_rec.pricing_context;
3067         l_pricing_attr_rec.pricing_attribute := 'PRICING_ATTRIBUTE5';
3068         l_pricing_attr_rec.pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute5;
3069         l_pricing_attr_rec.pricing_attr_value_to := NULL;
3070         l_pricing_attr_tbl(I) := l_pricing_attr_rec;
3071         I := I + 1;
3072     end if;
3073    oe_debug_pub.add ( 'Geresh 23 :: Insert Maintain attributes ' );
3074 
3075     If p_PRICE_LIST_LINE_rec.pricing_attribute6 is not null then
3076         l_pricing_attr_rec.pricing_attribute_context := p_PRICE_LIST_LINE_rec.pricing_context;
3077         l_pricing_attr_rec.pricing_attribute := 'PRICING_ATTRIBUTE6';
3078         l_pricing_attr_rec.pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute6;
3079         l_pricing_attr_rec.pricing_attr_value_to := NULL;
3080         l_pricing_attr_tbl(I) := l_pricing_attr_rec;
3081         I := I + 1;
3082     end if;
3083 
3084     If p_PRICE_LIST_LINE_rec.pricing_attribute7 is not null then
3085         l_pricing_attr_rec.pricing_attribute_context := p_PRICE_LIST_LINE_rec.pricing_context;
3086         l_pricing_attr_rec.pricing_attribute := 'PRICING_ATTRIBUTE7';
3087         l_pricing_attr_rec.pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute7;
3088         l_pricing_attr_rec.pricing_attr_value_to := NULL;
3089         l_pricing_attr_tbl(I) := l_pricing_attr_rec;
3090         I := I + 1;
3091     end if;
3092 
3093     If p_PRICE_LIST_LINE_rec.pricing_attribute8 is not null then
3094         l_pricing_attr_rec.pricing_attribute_context := p_PRICE_LIST_LINE_rec.pricing_context;
3095         l_pricing_attr_rec.pricing_attribute := 'PRICING_ATTRIBUTE8';
3096         l_pricing_attr_rec.pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute8;
3097         l_pricing_attr_rec.pricing_attr_value_to := NULL;
3098         l_pricing_attr_tbl(I) := l_pricing_attr_rec;
3099         I := I + 1;
3100     end if;
3101 
3102     If p_PRICE_LIST_LINE_rec.pricing_attribute9 is not null then
3103         l_pricing_attr_rec.pricing_attribute_context := p_PRICE_LIST_LINE_rec.pricing_context;
3104         l_pricing_attr_rec.pricing_attribute := 'PRICING_ATTRIBUTE9';
3105         l_pricing_attr_rec.pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute9;
3106         l_pricing_attr_rec.pricing_attr_value_to := NULL;
3107         l_pricing_attr_tbl(I) := l_pricing_attr_rec;
3108         I := I + 1;
3109     end if;
3110 
3111    oe_debug_pub.add ( 'Geresh 24 :: Insert Maintain attributes ' );
3112     If p_PRICE_LIST_LINE_rec.pricing_attribute10 is not null then
3113         l_pricing_attr_rec.pricing_attribute_context := p_PRICE_LIST_LINE_rec.pricing_context;
3114         l_pricing_attr_rec.pricing_attribute := 'PRICING_ATTRIBUTE10';
3115         l_pricing_attr_rec.pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute10;
3116         l_pricing_attr_rec.pricing_attr_value_to := NULL;
3117         l_pricing_attr_tbl(I) := l_pricing_attr_rec;
3118         I := I + 1;
3119     end if;
3120 
3121     If p_PRICE_LIST_LINE_rec.pricing_attribute11 is not null then
3122         l_pricing_attr_rec.pricing_attribute_context := p_PRICE_LIST_LINE_rec.pricing_context;
3123         l_pricing_attr_rec.pricing_attribute := 'PRICING_ATTRIBUTE11';
3124         l_pricing_attr_rec.pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute11;
3125         l_pricing_attr_rec.pricing_attr_value_to := NULL;
3126         l_pricing_attr_tbl(I) := l_pricing_attr_rec;
3127         I := I + 1;
3128     end if;
3129 
3130     If p_PRICE_LIST_LINE_rec.pricing_attribute12 is not null then
3131         l_pricing_attr_rec.pricing_attribute_context := p_PRICE_LIST_LINE_rec.pricing_context;
3132         l_pricing_attr_rec.pricing_attribute := 'PRICING_ATTRIBUTE12';
3133         l_pricing_attr_rec.pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute12;
3134         l_pricing_attr_rec.pricing_attr_value_to := NULL;
3135         l_pricing_attr_tbl(I) := l_pricing_attr_rec;
3136         I := I + 1;
3137     end if;
3138 
3139     If p_PRICE_LIST_LINE_rec.pricing_attribute13 is not null then
3140         l_pricing_attr_rec.pricing_attribute_context := p_PRICE_LIST_LINE_rec.pricing_context;
3141         l_pricing_attr_rec.pricing_attribute := 'PRICING_ATTRIBUTE13';
3142         l_pricing_attr_rec.pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute13;
3143         l_pricing_attr_rec.pricing_attr_value_to := NULL;
3144         l_pricing_attr_tbl(I) := l_pricing_attr_rec;
3145         I := I + 1;
3146     end if;
3147 
3148     If p_PRICE_LIST_LINE_rec.pricing_attribute14 is not null then
3149         l_pricing_attr_rec.pricing_attribute_context := p_PRICE_LIST_LINE_rec.pricing_context;
3150         l_pricing_attr_rec.pricing_attribute := 'PRICING_ATTRIBUTE14';
3151         l_pricing_attr_rec.pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute14;
3152         l_pricing_attr_rec.pricing_attr_value_to := NULL;
3153         l_pricing_attr_tbl(I) := l_pricing_attr_rec;
3154         I := I + 1;
3155     end if;
3156 
3157     If p_PRICE_LIST_LINE_rec.pricing_attribute15 is not null then
3158         l_pricing_attr_rec.pricing_attribute_context := p_PRICE_LIST_LINE_rec.pricing_context;
3159         l_pricing_attr_rec.pricing_attribute := 'PRICING_ATTRIBUTE15';
3160         l_pricing_attr_rec.pricing_attr_value_from := p_PRICE_LIST_LINE_rec.pricing_attribute15;
3161         l_pricing_attr_rec.pricing_attr_value_to := NULL;
3162         l_pricing_attr_tbl(I) := l_pricing_attr_rec;
3163         I := I + 1;
3164     end if;
3165 
3166 
3167    if p_PRICE_LIST_LINE_rec.method_type_code is not null THEN
3168 
3169      if p_PRICE_LIST_LINE_rec.method_type_code = 'Value'  THEN
3170 
3171        l_Pricing_Attr_rec.pricing_attribute_context := l_pb_dollars_attribute_context;
3172        l_pricing_attr_rec.pricing_attribute := l_pb_dollars_attribute;
3173      else
3174        l_Pricing_Attr_rec.pricing_attribute_context := l_pb_units_attribute_context;
3175        l_pricing_attr_rec.pricing_attribute := l_pb_units_attribute;
3176 
3177     end if;
3178 
3179      l_Pricing_Attr_rec.pricing_attr_value_from := p_PRICE_LIST_LINE_rec.price_break_low;
3180      l_Pricing_Attr_rec.pricing_attr_value_to := p_PRICE_LIST_LINE_rec.price_break_high;
3181 
3182       l_Pricing_Attr_tbl(I) := l_Pricing_Attr_rec;
3183 
3184       I := I + 1;
3185 
3186    end if;
3187 
3188    /* select attribute grouping no first */
3189 
3190 
3191     SELECT QP_PRICING_ATTR_GROUP_NO_S.nextval
3192 		INTO   l_pricing_attr_grouping_no
3193 		FROM   DUAL;
3194 
3195    oe_debug_pub.add ( 'Geresh 18 :: Before Insert into Pricing attributes Maintain attributes ' );
3196 
3197    FOR I in 1..l_pricing_attr_tbl.count loop
3198 
3199     SELECT QP_PRICING_ATTRIBUTES_S.nextval
3200           INTO l_pricing_attribute_id
3201           from dual;
3202 
3203     QP_PRICING_ATTRIBUTE_PVT.Insert_Row(
3204   X_PRICING_ATTRIBUTE_ID 	=> l_pricing_attribute_id
3205 , X_CREATION_DATE		=> p_PRICE_LIST_LINE_rec.creation_date
3206 , X_CREATED_BY                  => p_PRICE_LIST_LINE_rec.created_by
3207 , X_LAST_UPDATE_DATE		=> p_PRICE_LIST_LINE_rec.last_update_date
3208 , X_LAST_UPDATED_BY		=> p_PRICE_LIST_LINE_rec.last_updated_by
3209 , X_LAST_UPDATE_LOGIN		=> p_PRICE_LIST_LINE_rec.last_update_login
3210 , X_PROGRAM_APPLICATION_ID	=> p_PRICE_LIST_LINE_rec.program_application_id
3211 , X_PROGRAM_ID			=> p_PRICE_LIST_LINE_rec.program_id
3212 , X_PROGRAM_UPDATE_DATE		=> p_PRICE_LIST_LINE_rec.program_update_date
3213 , X_REQUEST_ID			=> p_PRICE_LIST_LINE_rec.request_id
3214 , X_LIST_LINE_ID		=> p_PRICE_LIST_LINE_rec.price_list_line_id
3215 , X_EXCLUDER_FLAG		=> 'N'
3216 , X_ACCUMULATE_FLAG             => 'N'
3217 , X_PRODUCT_ATTRIBUTE_CONTEXT   => l_product_context
3218 , X_PRODUCT_ATTRIBUTE		=> l_product_attr
3219 , X_PRODUCT_ATTR_VALUE		=> p_PRICE_LIST_LINE_rec.inventory_item_id
3220 , X_PRODUCT_UOM_CODE		=> p_PRICE_LIST_LINE_rec.unit_code
3221 , X_PRICING_ATTRIBUTE_CONTEXT	=> l_pricing_attr_tbl(I).pricing_attribute_context
3222 , X_PRICING_ATTRIBUTE		=> l_pricing_attr_tbl(I).pricing_attribute
3223 , X_PRICING_ATTR_VALUE_FROM	=> l_pricing_attr_tbl(I).pricing_attr_value_from
3224 , X_PRICING_ATTR_VALUE_TO	=> l_pricing_attr_tbl(I).pricing_attr_value_to
3225 , X_ATTRIBUTE_GROUPING_NO	=> l_pricing_attr_grouping_no
3226 , X_CONTEXT			=> NULL
3227 , X_ATTRIBUTE1			=> NULL
3228 , X_ATTRIBUTE2			=> NULL
3229 , X_ATTRIBUTE3			=> NULL
3230 , X_ATTRIBUTE4			=> NULL
3231 , X_ATTRIBUTE5			=> NULL
3232 , X_ATTRIBUTE6			=> NULL
3233 , X_ATTRIBUTE7			=> NULL
3234 , X_ATTRIBUTE8			=> NULL
3235 , X_ATTRIBUTE9			=> NULL
3236 , X_ATTRIBUTE10			=> NULL
3237 , X_ATTRIBUTE11			=> NULL
3238 , X_ATTRIBUTE12			=> NULL
3239 , X_ATTRIBUTE13			=> NULL
3240 , X_ATTRIBUTE14			=> NULL
3241 , X_ATTRIBUTE15			=> NULL
3242 );
3243 
3244    END LOOP;
3245 
3246 
3247 
3248    oe_debug_pub.add ( 'Geresh 31 :: Before Insert into Pricing attributes Maintain attributes ' );
3249 
3250    IF p_PRICE_LIST_LINE_rec.price_break_parent_line is not null THEN
3251 
3252       select qp_rltd_modifier_grp_no_s.nextval
3253       into l_rltd_modifier_grp_no
3254       from dual;
3255    oe_debug_pub.add ( 'Geresh 30 :: Before Insert into Pricing attributes Maintain attributes ' );
3256 
3257       select qp_rltd_modifiers_s.nextval
3258       into l_related_modifier_id
3259       from dual;
3260    oe_debug_pub.add ( 'Geresh 31 :: ' || p_PRICE_LIST_LINE_rec.price_break_parent_line );
3261    oe_debug_pub.add ( 'Geresh 31:: 1  ' || p_PRICE_LIST_LINE_rec.price_list_line_id );
3262 
3263 /*
3264       QP_RLTD_MODIFIER_PVT.Insert_Row(
3265        	X_RLTD_MODIFIER_ID 	=> l_related_modifier_id
3266 , X_CREATION_DATE 		=> p_PRICE_LIST_LINE_rec.creation_date
3267 , X_CREATED_BY			=> p_PRICE_LIST_LINE_rec.created_by
3268 , X_LAST_UPDATE_DATE		=> p_PRICE_LIST_LINE_rec.last_update_date
3269 , X_LAST_UPDATED_BY		=> p_PRICE_LIST_LINE_rec.last_updated_by
3270 , X_LAST_UPDATE_LOGIN           => p_PRICE_LIST_LINE_rec.last_update_login
3271 , X_RLTD_MODIFIER_GRP_NO        => l_rltd_modifier_grp_no
3272 , X_FROM_RLTD_MODIFIER_ID       => p_PRICE_LIST_LINE_rec.price_break_parent_line
3273 , X_TO_RLTD_MODIFIER_ID		=> p_PRICE_LIST_LINE_rec.price_list_line_id
3274 , X_CONTEXT               	=> NULL
3275 , X_ATTRIBUTE1			=> NULL
3276 , X_ATTRIBUTE2                  => NULL
3277 , X_ATTRIBUTE3                  => NULL
3278 , X_ATTRIBUTE4                  => NULL
3279 , X_ATTRIBUTE5                  => NULL
3280 , X_ATTRIBUTE6                  => NULL
3281 , X_ATTRIBUTE7                  => NULL
3282 , X_ATTRIBUTE8                  => NULL
3283 , X_ATTRIBUTE9                  => NULL
3284 , X_ATTRIBUTE10                 => NULL
3285 , X_ATTRIBUTE11                 => NULL
3286 , X_ATTRIBUTE12                 => NULL
3287 , X_ATTRIBUTE13                 => NULL
3288 , X_ATTRIBUTE14                 => NULL
3289 , X_ATTRIBUTE15                 => NULL
3290 ); */
3291 
3292 
3293     END IF;
3294 
3295 
3296  END IF;  /* If operation = 'INSERT' */
3297 
3298   x_return_status := FND_API.G_RET_STS_SUCCESS;
3299 
3300  exception
3301 
3302     WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
3303 
3304         x_return_status                := FND_API.G_RET_STS_ERROR;
3305 
3306         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
3307         THEN
3308 
3309             FND_MESSAGE.SET_NAME('OE','OE_LOCK_ROW_ALREADY_LOCKED');
3310             OE_MSG_PUB.Add;
3311 
3312         END IF;
3313 
3314 
3315     WHEN OTHERS THEN
3316 
3317         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
3318 
3319         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3320         THEN
3321             OE_MSG_PUB.Add_Exc_Msg
3322             (   G_PKG_NAME
3323             ,   'Lock_Row'
3324             );
3325         END IF;
3326 
3327 
3328 end maintain_pricing_attributes;
3329 
3330 FUNCTION Query_Pricing_Attributes
3331 (   p_pricing_attribute_id          IN  NUMBER :=
3332                                         FND_API.G_MISS_NUM
3333 ,   p_list_line_id                  IN  NUMBER :=
3334                                         FND_API.G_MISS_NUM
3335 ) RETURN OE_Price_List_PUB.Pricing_Attr_Tbl_Type
3336 IS
3337 l_PRICING_ATTR_rec            OE_PRICE_LIST_PUB.Pricing_Attr_Rec_Type;
3338 l_PRICING_ATTR_tbl            OE_PRICE_LIST_PUB.Pricing_Attr_Tbl_Type;
3339 
3340 CURSOR l_PRICING_ATTR_csr IS
3341     SELECT  ACCUMULATE_FLAG
3342     ,       ATTRIBUTE1
3343     ,       ATTRIBUTE10
3344     ,       ATTRIBUTE11
3345     ,       ATTRIBUTE12
3346     ,       ATTRIBUTE13
3347     ,       ATTRIBUTE14
3348     ,       ATTRIBUTE15
3349     ,       ATTRIBUTE2
3350     ,       ATTRIBUTE3
3351     ,       ATTRIBUTE4
3352     ,       ATTRIBUTE5
3353     ,       ATTRIBUTE6
3354     ,       ATTRIBUTE7
3355     ,       ATTRIBUTE8
3356     ,       ATTRIBUTE9
3357     ,       ATTRIBUTE_GROUPING_NO
3358     ,       CONTEXT
3359     ,       CREATED_BY
3360     ,       CREATION_DATE
3361     ,       EXCLUDER_FLAG
3362     ,       LAST_UPDATED_BY
3363     ,       LAST_UPDATE_DATE
3364     ,       LAST_UPDATE_LOGIN
3365     ,       LIST_LINE_ID
3366     ,       PRICING_ATTRIBUTE
3367     ,       PRICING_ATTRIBUTE_CONTEXT
3368     ,       PRICING_ATTRIBUTE_ID
3369     ,       PRICING_ATTR_VALUE_FROM
3370     ,       PRICING_ATTR_VALUE_TO
3371     ,       PRODUCT_ATTRIBUTE
3372     ,       PRODUCT_ATTRIBUTE_CONTEXT
3373     ,       PRODUCT_ATTR_VALUE
3374     ,       PRODUCT_UOM_CODE
3375     ,       PROGRAM_APPLICATION_ID
3376     ,       PROGRAM_ID
3377     ,       PROGRAM_UPDATE_DATE
3378     ,       REQUEST_ID
3379     FROM    QP_PRICING_ATTRIBUTES
3380     WHERE ( PRICING_ATTRIBUTE_ID = p_pricing_attribute_id
3381     )
3382     OR (    LIST_LINE_ID = p_list_line_id
3383     );
3384 
3385 BEGIN
3386 
3387     IF ( ( p_pricing_attribute_id is not null
3388         and p_pricing_attribute_id <> FND_API.G_MISS_NUM)
3389        or (p_list_line_id is not null
3390             and p_list_line_id <> FND_API.G_MISS_NUM ) ) THEN
3391 
3392       FOR l_implicit_rec IN l_PRICING_ATTR_csr LOOP
3393 
3394         l_PRICING_ATTR_rec.accumulate_flag := l_implicit_rec.ACCUMULATE_FLAG;
3395         l_PRICING_ATTR_rec.attribute1  := l_implicit_rec.ATTRIBUTE1;
3396         l_PRICING_ATTR_rec.attribute10 := l_implicit_rec.ATTRIBUTE10;
3397         l_PRICING_ATTR_rec.attribute11 := l_implicit_rec.ATTRIBUTE11;
3398         l_PRICING_ATTR_rec.attribute12 := l_implicit_rec.ATTRIBUTE12;
3399         l_PRICING_ATTR_rec.attribute13 := l_implicit_rec.ATTRIBUTE13;
3400         l_PRICING_ATTR_rec.attribute14 := l_implicit_rec.ATTRIBUTE14;
3401         l_PRICING_ATTR_rec.attribute15 := l_implicit_rec.ATTRIBUTE15;
3402         l_PRICING_ATTR_rec.attribute2  := l_implicit_rec.ATTRIBUTE2;
3403         l_PRICING_ATTR_rec.attribute3  := l_implicit_rec.ATTRIBUTE3;
3404         l_PRICING_ATTR_rec.attribute4  := l_implicit_rec.ATTRIBUTE4;
3405         l_PRICING_ATTR_rec.attribute5  := l_implicit_rec.ATTRIBUTE5;
3406         l_PRICING_ATTR_rec.attribute6  := l_implicit_rec.ATTRIBUTE6;
3407         l_PRICING_ATTR_rec.attribute7  := l_implicit_rec.ATTRIBUTE7;
3408         l_PRICING_ATTR_rec.attribute8  := l_implicit_rec.ATTRIBUTE8;
3409         l_PRICING_ATTR_rec.attribute9  := l_implicit_rec.ATTRIBUTE9;
3410         l_PRICING_ATTR_rec.attribute_grouping_no := l_implicit_rec.ATTRIBUTE_GROUPING_NO;
3411         l_PRICING_ATTR_rec.context     := l_implicit_rec.CONTEXT;
3412         l_PRICING_ATTR_rec.created_by  := l_implicit_rec.CREATED_BY;
3413         l_PRICING_ATTR_rec.creation_date := l_implicit_rec.CREATION_DATE;
3414         l_PRICING_ATTR_rec.excluder_flag := l_implicit_rec.EXCLUDER_FLAG;
3415         l_PRICING_ATTR_rec.last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
3416         l_PRICING_ATTR_rec.last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
3417         l_PRICING_ATTR_rec.last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
3418         l_PRICING_ATTR_rec.list_line_id := l_implicit_rec.LIST_LINE_ID;
3419         l_PRICING_ATTR_rec.pricing_attribute := l_implicit_rec.PRICING_ATTRIBUTE;
3420         l_PRICING_ATTR_rec.pricing_attribute_context := l_implicit_rec.PRICING_ATTRIBUTE_CONTEXT;
3421         l_PRICING_ATTR_rec.pricing_attribute_id := l_implicit_rec.PRICING_ATTRIBUTE_ID;
3422         l_PRICING_ATTR_rec.pricing_attr_value_from := l_implicit_rec.PRICING_ATTR_VALUE_FROM;
3423         l_PRICING_ATTR_rec.pricing_attr_value_to := l_implicit_rec.PRICING_ATTR_VALUE_TO;
3424         l_PRICING_ATTR_rec.product_attribute := l_implicit_rec.PRODUCT_ATTRIBUTE;
3425         l_PRICING_ATTR_rec.product_attribute_context := l_implicit_rec.PRODUCT_ATTRIBUTE_CONTEXT;
3426         l_PRICING_ATTR_rec.product_attr_value := l_implicit_rec.PRODUCT_ATTR_VALUE;
3427         l_PRICING_ATTR_rec.product_uom_code := l_implicit_rec.PRODUCT_UOM_CODE;
3428         l_PRICING_ATTR_rec.program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
3429         l_PRICING_ATTR_rec.program_id  := l_implicit_rec.PROGRAM_ID;
3430         l_PRICING_ATTR_rec.program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
3431         l_PRICING_ATTR_rec.request_id  := l_implicit_rec.REQUEST_ID;
3432 
3433         l_PRICING_ATTR_tbl(l_PRICING_ATTR_tbl.COUNT + 1) := l_PRICING_ATTR_rec;
3434 
3435     END LOOP;
3436 
3437   END IF;
3438 
3439 
3440     --  PK sent and no rows found
3441 
3442     IF
3443     ( (p_pricing_attribute_id IS NOT NULL
3444      AND
3445      p_pricing_attribute_id <> FND_API.G_MISS_NUM)
3446     or
3447     (p_list_line_id IS NOT NULL
3448      AND
3449      p_list_line_id <> FND_API.G_MISS_NUM) )
3450     AND
3451     (l_PRICING_ATTR_tbl.COUNT = 0)
3452     THEN
3453         RAISE NO_DATA_FOUND;
3454     END IF;
3455 
3456 
3457     --  Return fetched table
3458 
3459     RETURN l_PRICING_ATTR_tbl;
3460 
3461 EXCEPTION
3462 
3463     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3464         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3465 
3466     WHEN OTHERS THEN
3467 
3468         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3469         THEN
3470             FND_MSG_PUB.Add_Exc_Msg
3471             (   G_PKG_NAME
3472             ,   'Query_Rows'
3473             );
3474         END IF;
3475 
3476         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3477 
3478 END Query_Pricing_Attributes;
3479 
3480 
3481 END OE_Price_List_Line_Util;