DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_FORMULA_LINES_UTIL

Source


1 PACKAGE BODY QP_Formula_Lines_Util AS
2 /* $Header: QPXUPFLB.pls 120.1 2005/06/12 21:05:36 appldev  $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'QP_Formula_Lines_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_FORMULA_LINES_rec             IN  QP_Price_Formula_PUB.Formula_Lines_Rec_Type
13 ,   p_old_FORMULA_LINES_rec         IN  QP_Price_Formula_PUB.Formula_Lines_Rec_Type :=
14                                         QP_Price_Formula_PUB.G_MISS_FORMULA_LINES_REC
15 ,   x_FORMULA_LINES_rec             OUT NOCOPY /* file.sql.39 change */ QP_Price_Formula_PUB.Formula_Lines_Rec_Type
16 )
17 IS
18 l_index                       NUMBER := 0;
19 l_src_attr_tbl                QP_GLOBALS.NUMBER_Tbl_Type;
20 l_dep_attr_tbl                QP_GLOBALS.NUMBER_Tbl_Type;
21 BEGIN
22 
23 oe_debug_pub.add('Entering proc clear_dependent_attr in FormulaLines Util Pkg');
24     --  Load out record
25 
26     x_FORMULA_LINES_rec := p_FORMULA_LINES_rec;
27 
28     --  If attr_id is missing compare old and new records and for
29     --  every changed attribute clear its dependent fields.
30 
31     IF p_attr_id = FND_API.G_MISS_NUM THEN
32 
33         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute1,p_old_FORMULA_LINES_rec.attribute1)
34         THEN
35             l_index := l_index + 1;
36             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE1;
37         END IF;
38 
39         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute10,p_old_FORMULA_LINES_rec.attribute10)
40         THEN
41             l_index := l_index + 1;
42             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE10;
43         END IF;
44 
45         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute11,p_old_FORMULA_LINES_rec.attribute11)
46         THEN
47             l_index := l_index + 1;
48             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE11;
49         END IF;
50 
51         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute12,p_old_FORMULA_LINES_rec.attribute12)
52         THEN
53             l_index := l_index + 1;
54             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE12;
55         END IF;
56 
57         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute13,p_old_FORMULA_LINES_rec.attribute13)
58         THEN
59             l_index := l_index + 1;
60             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE13;
61         END IF;
62 
63         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute14,p_old_FORMULA_LINES_rec.attribute14)
64         THEN
65             l_index := l_index + 1;
66             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE14;
67         END IF;
68 
69         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute15,p_old_FORMULA_LINES_rec.attribute15)
70         THEN
71             l_index := l_index + 1;
72             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE15;
73         END IF;
74 
75         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute2,p_old_FORMULA_LINES_rec.attribute2)
76         THEN
77             l_index := l_index + 1;
78             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE2;
79         END IF;
80 
81         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute3,p_old_FORMULA_LINES_rec.attribute3)
82         THEN
83             l_index := l_index + 1;
84             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE3;
85         END IF;
86 
87         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute4,p_old_FORMULA_LINES_rec.attribute4)
88         THEN
89             l_index := l_index + 1;
90             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE4;
91         END IF;
92 
93         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute5,p_old_FORMULA_LINES_rec.attribute5)
94         THEN
95             l_index := l_index + 1;
96             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE5;
97         END IF;
98 
99         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute6,p_old_FORMULA_LINES_rec.attribute6)
100         THEN
101             l_index := l_index + 1;
102             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE6;
103         END IF;
104 
105         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute7,p_old_FORMULA_LINES_rec.attribute7)
106         THEN
107             l_index := l_index + 1;
108             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE7;
109         END IF;
110 
111         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute8,p_old_FORMULA_LINES_rec.attribute8)
112         THEN
113             l_index := l_index + 1;
114             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE8;
115         END IF;
116 
117         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute9,p_old_FORMULA_LINES_rec.attribute9)
118         THEN
119             l_index := l_index + 1;
120             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE9;
121         END IF;
122 
123         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.context,p_old_FORMULA_LINES_rec.context)
124         THEN
125             l_index := l_index + 1;
126             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_CONTEXT;
127         END IF;
128 
129         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.created_by,p_old_FORMULA_LINES_rec.created_by)
130         THEN
131             l_index := l_index + 1;
132             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_CREATED_BY;
133         END IF;
134 
135         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.creation_date,p_old_FORMULA_LINES_rec.creation_date)
136         THEN
137             l_index := l_index + 1;
138             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_CREATION_DATE;
139         END IF;
140 
141         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.end_date_active,p_old_FORMULA_LINES_rec.end_date_active)
142         THEN
143             l_index := l_index + 1;
144             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_END_DATE_ACTIVE;
145         END IF;
146 
147         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.last_updated_by,p_old_FORMULA_LINES_rec.last_updated_by)
148         THEN
149             l_index := l_index + 1;
150             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_LAST_UPDATED_BY;
151         END IF;
152 
153         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.last_update_date,p_old_FORMULA_LINES_rec.last_update_date)
154         THEN
155             l_index := l_index + 1;
156             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_LAST_UPDATE_DATE;
157         END IF;
158 
159         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.last_update_login,p_old_FORMULA_LINES_rec.last_update_login)
160         THEN
161             l_index := l_index + 1;
162             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_LAST_UPDATE_LOGIN;
163         END IF;
164 
165         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.numeric_constant,p_old_FORMULA_LINES_rec.numeric_constant)
166         THEN
167             l_index := l_index + 1;
168             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_NUMERIC_CONSTANT;
169         END IF;
170 
171         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.price_formula_id,p_old_FORMULA_LINES_rec.price_formula_id)
172         THEN
173             l_index := l_index + 1;
174             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_PRICE_FORMULA;
175         END IF;
176 
177         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.price_formula_line_id,p_old_FORMULA_LINES_rec.price_formula_line_id)
178         THEN
179             l_index := l_index + 1;
180             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_PRICE_FORMULA_LINE;
181         END IF;
182 
183         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.formula_line_type_code,p_old_FORMULA_LINES_rec.formula_line_type_code)
184         THEN
185             l_index := l_index + 1;
186             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_PRICE_FORMULA_LINE_TYPE;
187         END IF;
188 
189         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.price_list_line_id,p_old_FORMULA_LINES_rec.price_list_line_id)
190         THEN
191             l_index := l_index + 1;
192             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_PRICE_LIST_LINE;
193         END IF;
194 
195         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.price_modifier_list_id,p_old_FORMULA_LINES_rec.price_modifier_list_id)
196         THEN
197             l_index := l_index + 1;
198             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_PRICE_MODIFIER_LIST;
199         END IF;
200 
201         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.pricing_attribute,p_old_FORMULA_LINES_rec.pricing_attribute)
202         THEN
203             l_index := l_index + 1;
204             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_PRICING_ATTRIBUTE;
205         END IF;
206 
207         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.pricing_attribute_context,p_old_FORMULA_LINES_rec.pricing_attribute_context)
208         THEN
209             l_index := l_index + 1;
210             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_PRICING_ATTRIBUTE_CONTEXT;
211         END IF;
212 
213         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.start_date_active,p_old_FORMULA_LINES_rec.start_date_active)
214         THEN
215             l_index := l_index + 1;
216             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_START_DATE_ACTIVE;
217         END IF;
218 
219         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.step_number,p_old_FORMULA_LINES_rec.step_number)
220         THEN
221             l_index := l_index + 1;
222             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_STEP_NUMBER;
223         END IF;
224 
225         IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.reqd_flag,p_old_FORMULA_LINES_rec.reqd_flag)
226         THEN
227             l_index := l_index + 1;
228             l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_REQD_FLAG;
229         END IF;
230 
231     ELSIF p_attr_id = G_ATTRIBUTE1 THEN
232         l_index := l_index + 1;
233         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE1;
234     ELSIF p_attr_id = G_ATTRIBUTE10 THEN
235         l_index := l_index + 1;
236         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE10;
237     ELSIF p_attr_id = G_ATTRIBUTE11 THEN
238         l_index := l_index + 1;
239         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE11;
240     ELSIF p_attr_id = G_ATTRIBUTE12 THEN
241         l_index := l_index + 1;
242         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE12;
243     ELSIF p_attr_id = G_ATTRIBUTE13 THEN
244         l_index := l_index + 1;
245         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE13;
246     ELSIF p_attr_id = G_ATTRIBUTE14 THEN
247         l_index := l_index + 1;
248         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE14;
249     ELSIF p_attr_id = G_ATTRIBUTE15 THEN
250         l_index := l_index + 1;
251         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE15;
252     ELSIF p_attr_id = G_ATTRIBUTE2 THEN
253         l_index := l_index + 1;
254         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE2;
255     ELSIF p_attr_id = G_ATTRIBUTE3 THEN
256         l_index := l_index + 1;
257         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE3;
258     ELSIF p_attr_id = G_ATTRIBUTE4 THEN
259         l_index := l_index + 1;
260         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE4;
261     ELSIF p_attr_id = G_ATTRIBUTE5 THEN
262         l_index := l_index + 1;
263         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE5;
264     ELSIF p_attr_id = G_ATTRIBUTE6 THEN
265         l_index := l_index + 1;
266         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE6;
267     ELSIF p_attr_id = G_ATTRIBUTE7 THEN
268         l_index := l_index + 1;
269         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE7;
270     ELSIF p_attr_id = G_ATTRIBUTE8 THEN
271         l_index := l_index + 1;
272         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE8;
273     ELSIF p_attr_id = G_ATTRIBUTE9 THEN
274         l_index := l_index + 1;
275         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_ATTRIBUTE9;
276     ELSIF p_attr_id = G_CONTEXT THEN
277         l_index := l_index + 1;
278         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_CONTEXT;
279     ELSIF p_attr_id = G_CREATED_BY THEN
280         l_index := l_index + 1;
281         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_CREATED_BY;
282     ELSIF p_attr_id = G_CREATION_DATE THEN
283         l_index := l_index + 1;
284         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_CREATION_DATE;
285     ELSIF p_attr_id = G_END_DATE_ACTIVE THEN
286         l_index := l_index + 1;
287         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_END_DATE_ACTIVE;
288     ELSIF p_attr_id = G_LAST_UPDATED_BY THEN
289         l_index := l_index + 1;
290         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_LAST_UPDATED_BY;
291     ELSIF p_attr_id = G_LAST_UPDATE_DATE THEN
292         l_index := l_index + 1;
293         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_LAST_UPDATE_DATE;
294     ELSIF p_attr_id = G_LAST_UPDATE_LOGIN THEN
295         l_index := l_index + 1;
296         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_LAST_UPDATE_LOGIN;
297     ELSIF p_attr_id = G_NUMERIC_CONSTANT THEN
298         l_index := l_index + 1;
299         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_NUMERIC_CONSTANT;
300     ELSIF p_attr_id = G_PRICE_FORMULA THEN
301         l_index := l_index + 1;
302         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_PRICE_FORMULA;
303     ELSIF p_attr_id = G_PRICE_FORMULA_LINE THEN
304         l_index := l_index + 1;
305         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_PRICE_FORMULA_LINE;
306     ELSIF p_attr_id = G_PRICE_FORMULA_LINE_TYPE THEN
307         l_index := l_index + 1;
308         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_PRICE_FORMULA_LINE_TYPE;
309     ELSIF p_attr_id = G_PRICE_LIST_LINE THEN
310         l_index := l_index + 1;
311         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_PRICE_LIST_LINE;
312     ELSIF p_attr_id = G_PRICE_MODIFIER_LIST THEN
313         l_index := l_index + 1;
314         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_PRICE_MODIFIER_LIST;
315     ELSIF p_attr_id = G_PRICING_ATTRIBUTE THEN
316         l_index := l_index + 1;
317         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_PRICING_ATTRIBUTE;
318     ELSIF p_attr_id = G_PRICING_ATTRIBUTE_CONTEXT THEN
319         l_index := l_index + 1;
320         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_PRICING_ATTRIBUTE_CONTEXT;
321     ELSIF p_attr_id = G_START_DATE_ACTIVE THEN
322         l_index := l_index + 1;
323         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_START_DATE_ACTIVE;
324     ELSIF p_attr_id = G_STEP_NUMBER THEN
325         l_index := l_index + 1;
326         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_STEP_NUMBER;
327     ELSIF p_attr_id = G_REQD_FLAG THEN
328         l_index := l_index + 1;
329         l_src_attr_tbl(l_index) := QP_FORMULA_LINES_UTIL.G_REQD_FLAG;
330     END IF;
331 
332 oe_debug_pub.add('Leaving proc clear_dependent_attr in FormulaLines Util Pkg');
333 END Clear_Dependent_Attr;
334 
335 --  Procedure Apply_Attribute_Changes
336 
337 PROCEDURE Apply_Attribute_Changes
338 (   p_FORMULA_LINES_rec             IN  QP_Price_Formula_PUB.Formula_Lines_Rec_Type
339 ,   p_old_FORMULA_LINES_rec         IN  QP_Price_Formula_PUB.Formula_Lines_Rec_Type :=
340                                         QP_Price_Formula_PUB.G_MISS_FORMULA_LINES_REC
341 ,   x_FORMULA_LINES_rec             OUT NOCOPY /* file.sql.39 change */ QP_Price_Formula_PUB.Formula_Lines_Rec_Type
342 )
343 IS
344 BEGIN
345 
346 oe_debug_pub.add('Entering proc apply_attr_Changes in FormulaLines Util Pkg');
347     --  Load out record
348 
349     x_FORMULA_LINES_rec := p_FORMULA_LINES_rec;
350 
351     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute1,p_old_FORMULA_LINES_rec.attribute1)
352     THEN
353         NULL;
354     END IF;
355 
356     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute10,p_old_FORMULA_LINES_rec.attribute10)
357     THEN
358         NULL;
359     END IF;
360 
361     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute11,p_old_FORMULA_LINES_rec.attribute11)
362     THEN
363         NULL;
364     END IF;
365 
366     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute12,p_old_FORMULA_LINES_rec.attribute12)
367     THEN
368         NULL;
369     END IF;
370 
371     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute13,p_old_FORMULA_LINES_rec.attribute13)
372     THEN
373         NULL;
374     END IF;
375 
376     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute14,p_old_FORMULA_LINES_rec.attribute14)
377     THEN
378         NULL;
379     END IF;
380 
381     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute15,p_old_FORMULA_LINES_rec.attribute15)
382     THEN
383         NULL;
384     END IF;
385 
386     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute2,p_old_FORMULA_LINES_rec.attribute2)
387     THEN
388         NULL;
389     END IF;
390 
391     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute3,p_old_FORMULA_LINES_rec.attribute3)
392     THEN
393         NULL;
394     END IF;
395 
396     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute4,p_old_FORMULA_LINES_rec.attribute4)
397     THEN
398         NULL;
399     END IF;
400 
401     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute5,p_old_FORMULA_LINES_rec.attribute5)
402     THEN
403         NULL;
404     END IF;
405 
406     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute6,p_old_FORMULA_LINES_rec.attribute6)
407     THEN
408         NULL;
409     END IF;
410 
411     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute7,p_old_FORMULA_LINES_rec.attribute7)
412     THEN
413         NULL;
414     END IF;
415 
416     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute8,p_old_FORMULA_LINES_rec.attribute8)
417     THEN
418         NULL;
419     END IF;
420 
421     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute9,p_old_FORMULA_LINES_rec.attribute9)
422     THEN
423         NULL;
424     END IF;
425 
426     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.context,p_old_FORMULA_LINES_rec.context)
427     THEN
428         NULL;
429     END IF;
430 
431     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.created_by,p_old_FORMULA_LINES_rec.created_by)
432     THEN
433         NULL;
434     END IF;
435 
436     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.creation_date,p_old_FORMULA_LINES_rec.creation_date)
437     THEN
438         NULL;
439     END IF;
440 
441     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.end_date_active,p_old_FORMULA_LINES_rec.end_date_active)
442     THEN
443         NULL;
444     END IF;
445 
446     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.last_updated_by,p_old_FORMULA_LINES_rec.last_updated_by)
447     THEN
448         NULL;
449     END IF;
450 
451     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.last_update_date,p_old_FORMULA_LINES_rec.last_update_date)
452     THEN
453         NULL;
454     END IF;
455 
456     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.last_update_login,p_old_FORMULA_LINES_rec.last_update_login)
457     THEN
458         NULL;
459     END IF;
460 
461     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.numeric_constant,p_old_FORMULA_LINES_rec.numeric_constant)
462     THEN
463         NULL;
464     END IF;
465 
466     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.price_formula_id,p_old_FORMULA_LINES_rec.price_formula_id)
467     THEN
468         NULL;
469     END IF;
470 
471     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.price_formula_line_id,p_old_FORMULA_LINES_rec.price_formula_line_id)
472     THEN
473         NULL;
474     END IF;
475 
476     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.formula_line_type_code,p_old_FORMULA_LINES_rec.formula_line_type_code)
477     THEN
478         NULL;
479     END IF;
480 
481     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.price_list_line_id,p_old_FORMULA_LINES_rec.price_list_line_id)
482     THEN
483         NULL;
484     END IF;
485 
486     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.price_modifier_list_id,p_old_FORMULA_LINES_rec.price_modifier_list_id)
487     THEN
488         NULL;
489     END IF;
490 
491     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.pricing_attribute,p_old_FORMULA_LINES_rec.pricing_attribute)
492     THEN
493         NULL;
494     END IF;
495 
496     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.pricing_attribute_context,p_old_FORMULA_LINES_rec.pricing_attribute_context)
497     THEN
498         NULL;
499     END IF;
500 
501     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.start_date_active,p_old_FORMULA_LINES_rec.start_date_active)
502     THEN
503         NULL;
504     END IF;
505 
506     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.step_number,p_old_FORMULA_LINES_rec.step_number)
507     THEN
508         NULL;
509     END IF;
510 
511     IF NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.reqd_flag,p_old_FORMULA_LINES_rec.reqd_flag)
512     THEN
513         NULL;
514     END IF;
515 
516 oe_debug_pub.add('Leaving proc apply_attr_Changes in FormulaLines Util Pkg');
517 END Apply_Attribute_Changes;
518 
519 --  Function Complete_Record
520 
521 FUNCTION Complete_Record
522 (   p_FORMULA_LINES_rec             IN  QP_Price_Formula_PUB.Formula_Lines_Rec_Type
523 ,   p_old_FORMULA_LINES_rec         IN  QP_Price_Formula_PUB.Formula_Lines_Rec_Type
524 ) RETURN QP_Price_Formula_PUB.Formula_Lines_Rec_Type
525 IS
526 l_FORMULA_LINES_rec           QP_Price_Formula_PUB.Formula_Lines_Rec_Type := p_FORMULA_LINES_rec;
527 BEGIN
528 
529 oe_debug_pub.add('Entering proc Complete_Record in FormulaLines Util Pkg');
530     IF l_FORMULA_LINES_rec.attribute1 = FND_API.G_MISS_CHAR THEN
531         l_FORMULA_LINES_rec.attribute1 := p_old_FORMULA_LINES_rec.attribute1;
532     END IF;
533 
534     IF l_FORMULA_LINES_rec.attribute10 = FND_API.G_MISS_CHAR THEN
535         l_FORMULA_LINES_rec.attribute10 := p_old_FORMULA_LINES_rec.attribute10;
536     END IF;
537 
538     IF l_FORMULA_LINES_rec.attribute11 = FND_API.G_MISS_CHAR THEN
539         l_FORMULA_LINES_rec.attribute11 := p_old_FORMULA_LINES_rec.attribute11;
540     END IF;
541 
542     IF l_FORMULA_LINES_rec.attribute12 = FND_API.G_MISS_CHAR THEN
543         l_FORMULA_LINES_rec.attribute12 := p_old_FORMULA_LINES_rec.attribute12;
544     END IF;
545 
546     IF l_FORMULA_LINES_rec.attribute13 = FND_API.G_MISS_CHAR THEN
547         l_FORMULA_LINES_rec.attribute13 := p_old_FORMULA_LINES_rec.attribute13;
548     END IF;
549 
550     IF l_FORMULA_LINES_rec.attribute14 = FND_API.G_MISS_CHAR THEN
551         l_FORMULA_LINES_rec.attribute14 := p_old_FORMULA_LINES_rec.attribute14;
552     END IF;
553 
554     IF l_FORMULA_LINES_rec.attribute15 = FND_API.G_MISS_CHAR THEN
555         l_FORMULA_LINES_rec.attribute15 := p_old_FORMULA_LINES_rec.attribute15;
556     END IF;
557 
558     IF l_FORMULA_LINES_rec.attribute2 = FND_API.G_MISS_CHAR THEN
559         l_FORMULA_LINES_rec.attribute2 := p_old_FORMULA_LINES_rec.attribute2;
560     END IF;
561 
562     IF l_FORMULA_LINES_rec.attribute3 = FND_API.G_MISS_CHAR THEN
563         l_FORMULA_LINES_rec.attribute3 := p_old_FORMULA_LINES_rec.attribute3;
564     END IF;
565 
566     IF l_FORMULA_LINES_rec.attribute4 = FND_API.G_MISS_CHAR THEN
567         l_FORMULA_LINES_rec.attribute4 := p_old_FORMULA_LINES_rec.attribute4;
568     END IF;
569 
570     IF l_FORMULA_LINES_rec.attribute5 = FND_API.G_MISS_CHAR THEN
571         l_FORMULA_LINES_rec.attribute5 := p_old_FORMULA_LINES_rec.attribute5;
572     END IF;
573 
574     IF l_FORMULA_LINES_rec.attribute6 = FND_API.G_MISS_CHAR THEN
575         l_FORMULA_LINES_rec.attribute6 := p_old_FORMULA_LINES_rec.attribute6;
576     END IF;
577 
578     IF l_FORMULA_LINES_rec.attribute7 = FND_API.G_MISS_CHAR THEN
579         l_FORMULA_LINES_rec.attribute7 := p_old_FORMULA_LINES_rec.attribute7;
580     END IF;
581 
582     IF l_FORMULA_LINES_rec.attribute8 = FND_API.G_MISS_CHAR THEN
583         l_FORMULA_LINES_rec.attribute8 := p_old_FORMULA_LINES_rec.attribute8;
584     END IF;
585 
586     IF l_FORMULA_LINES_rec.attribute9 = FND_API.G_MISS_CHAR THEN
587         l_FORMULA_LINES_rec.attribute9 := p_old_FORMULA_LINES_rec.attribute9;
588     END IF;
589 
590     IF l_FORMULA_LINES_rec.context = FND_API.G_MISS_CHAR THEN
591         l_FORMULA_LINES_rec.context := p_old_FORMULA_LINES_rec.context;
592     END IF;
593 
594     IF l_FORMULA_LINES_rec.created_by = FND_API.G_MISS_NUM THEN
595         l_FORMULA_LINES_rec.created_by := p_old_FORMULA_LINES_rec.created_by;
596     END IF;
597 
598     IF l_FORMULA_LINES_rec.creation_date = FND_API.G_MISS_DATE THEN
599         l_FORMULA_LINES_rec.creation_date := p_old_FORMULA_LINES_rec.creation_date;
600     END IF;
601 
602     IF l_FORMULA_LINES_rec.end_date_active = FND_API.G_MISS_DATE THEN
603         l_FORMULA_LINES_rec.end_date_active := p_old_FORMULA_LINES_rec.end_date_active;
604     END IF;
605 
606     IF l_FORMULA_LINES_rec.last_updated_by = FND_API.G_MISS_NUM THEN
607         l_FORMULA_LINES_rec.last_updated_by := p_old_FORMULA_LINES_rec.last_updated_by;
608     END IF;
609 
610     IF l_FORMULA_LINES_rec.last_update_date = FND_API.G_MISS_DATE THEN
611         l_FORMULA_LINES_rec.last_update_date := p_old_FORMULA_LINES_rec.last_update_date;
612     END IF;
613 
614     IF l_FORMULA_LINES_rec.last_update_login = FND_API.G_MISS_NUM THEN
615         l_FORMULA_LINES_rec.last_update_login := p_old_FORMULA_LINES_rec.last_update_login;
616     END IF;
617 
618     IF l_FORMULA_LINES_rec.numeric_constant = FND_API.G_MISS_NUM THEN
619         l_FORMULA_LINES_rec.numeric_constant := p_old_FORMULA_LINES_rec.numeric_constant;
620     END IF;
621 
622     IF l_FORMULA_LINES_rec.price_formula_id = FND_API.G_MISS_NUM THEN
623         l_FORMULA_LINES_rec.price_formula_id := p_old_FORMULA_LINES_rec.price_formula_id;
624     END IF;
625 
626     IF l_FORMULA_LINES_rec.price_formula_line_id = FND_API.G_MISS_NUM THEN
627         l_FORMULA_LINES_rec.price_formula_line_id := p_old_FORMULA_LINES_rec.price_formula_line_id;
628     END IF;
629 
630     IF l_FORMULA_LINES_rec.formula_line_type_code = FND_API.G_MISS_CHAR THEN
631         l_FORMULA_LINES_rec.formula_line_type_code := p_old_FORMULA_LINES_rec.formula_line_type_code;
632     END IF;
633 
634     IF l_FORMULA_LINES_rec.price_list_line_id = FND_API.G_MISS_NUM THEN
635         l_FORMULA_LINES_rec.price_list_line_id := p_old_FORMULA_LINES_rec.price_list_line_id;
636     END IF;
637 
638     IF l_FORMULA_LINES_rec.price_modifier_list_id = FND_API.G_MISS_NUM THEN
639         l_FORMULA_LINES_rec.price_modifier_list_id := p_old_FORMULA_LINES_rec.price_modifier_list_id;
640     END IF;
641 
642     IF l_FORMULA_LINES_rec.pricing_attribute = FND_API.G_MISS_CHAR THEN
643         l_FORMULA_LINES_rec.pricing_attribute := p_old_FORMULA_LINES_rec.pricing_attribute;
644     END IF;
645 
646     IF l_FORMULA_LINES_rec.pricing_attribute_context = FND_API.G_MISS_CHAR THEN
647         l_FORMULA_LINES_rec.pricing_attribute_context := p_old_FORMULA_LINES_rec.pricing_attribute_context;
648     END IF;
649 
650     IF l_FORMULA_LINES_rec.start_date_active = FND_API.G_MISS_DATE THEN
651         l_FORMULA_LINES_rec.start_date_active := p_old_FORMULA_LINES_rec.start_date_active;
652     END IF;
653 
654     IF l_FORMULA_LINES_rec.step_number = FND_API.G_MISS_NUM THEN
655         l_FORMULA_LINES_rec.step_number := p_old_FORMULA_LINES_rec.step_number;
656     END IF;
657 
658     IF l_FORMULA_LINES_rec.reqd_flag = FND_API.G_MISS_CHAR THEN
659         l_FORMULA_LINES_rec.reqd_flag := p_old_FORMULA_LINES_rec.reqd_flag;
660     END IF;
661 
662     RETURN l_FORMULA_LINES_rec;
663 
664 oe_debug_pub.add('Leaving proc Complete_Record in FormulaLines Util Pkg');
665 END Complete_Record;
666 
667 --  Function Convert_Miss_To_Null
668 
669 FUNCTION Convert_Miss_To_Null
670 (   p_FORMULA_LINES_rec             IN  QP_Price_Formula_PUB.Formula_Lines_Rec_Type
671 ) RETURN QP_Price_Formula_PUB.Formula_Lines_Rec_Type
672 IS
673 l_FORMULA_LINES_rec           QP_Price_Formula_PUB.Formula_Lines_Rec_Type := p_FORMULA_LINES_rec;
674 BEGIN
675 
676 oe_debug_pub.add('Entering proc Convert_Miss_To_Null in FormulaLines Util Pkg');
677     IF l_FORMULA_LINES_rec.attribute1 = FND_API.G_MISS_CHAR THEN
678         l_FORMULA_LINES_rec.attribute1 := NULL;
679     END IF;
680 
681     IF l_FORMULA_LINES_rec.attribute10 = FND_API.G_MISS_CHAR THEN
682         l_FORMULA_LINES_rec.attribute10 := NULL;
683     END IF;
684 
685     IF l_FORMULA_LINES_rec.attribute11 = FND_API.G_MISS_CHAR THEN
686         l_FORMULA_LINES_rec.attribute11 := NULL;
687     END IF;
688 
689     IF l_FORMULA_LINES_rec.attribute12 = FND_API.G_MISS_CHAR THEN
690         l_FORMULA_LINES_rec.attribute12 := NULL;
691     END IF;
692 
693     IF l_FORMULA_LINES_rec.attribute13 = FND_API.G_MISS_CHAR THEN
694         l_FORMULA_LINES_rec.attribute13 := NULL;
695     END IF;
696 
697     IF l_FORMULA_LINES_rec.attribute14 = FND_API.G_MISS_CHAR THEN
698         l_FORMULA_LINES_rec.attribute14 := NULL;
699     END IF;
700 
701     IF l_FORMULA_LINES_rec.attribute15 = FND_API.G_MISS_CHAR THEN
702         l_FORMULA_LINES_rec.attribute15 := NULL;
703     END IF;
704 
705     IF l_FORMULA_LINES_rec.attribute2 = FND_API.G_MISS_CHAR THEN
706         l_FORMULA_LINES_rec.attribute2 := NULL;
707     END IF;
708 
709     IF l_FORMULA_LINES_rec.attribute3 = FND_API.G_MISS_CHAR THEN
710         l_FORMULA_LINES_rec.attribute3 := NULL;
711     END IF;
712 
713     IF l_FORMULA_LINES_rec.attribute4 = FND_API.G_MISS_CHAR THEN
714         l_FORMULA_LINES_rec.attribute4 := NULL;
715     END IF;
716 
717     IF l_FORMULA_LINES_rec.attribute5 = FND_API.G_MISS_CHAR THEN
718         l_FORMULA_LINES_rec.attribute5 := NULL;
719     END IF;
720 
721     IF l_FORMULA_LINES_rec.attribute6 = FND_API.G_MISS_CHAR THEN
722         l_FORMULA_LINES_rec.attribute6 := NULL;
723     END IF;
724 
725     IF l_FORMULA_LINES_rec.attribute7 = FND_API.G_MISS_CHAR THEN
726         l_FORMULA_LINES_rec.attribute7 := NULL;
727     END IF;
728 
729     IF l_FORMULA_LINES_rec.attribute8 = FND_API.G_MISS_CHAR THEN
730         l_FORMULA_LINES_rec.attribute8 := NULL;
731     END IF;
732 
733     IF l_FORMULA_LINES_rec.attribute9 = FND_API.G_MISS_CHAR THEN
734         l_FORMULA_LINES_rec.attribute9 := NULL;
735     END IF;
736 
737     IF l_FORMULA_LINES_rec.context = FND_API.G_MISS_CHAR THEN
738         l_FORMULA_LINES_rec.context := NULL;
739     END IF;
740 
741     IF l_FORMULA_LINES_rec.created_by = FND_API.G_MISS_NUM THEN
742         l_FORMULA_LINES_rec.created_by := NULL;
743     END IF;
744 
745     IF l_FORMULA_LINES_rec.creation_date = FND_API.G_MISS_DATE THEN
746         l_FORMULA_LINES_rec.creation_date := NULL;
747     END IF;
748 
749     IF l_FORMULA_LINES_rec.end_date_active = FND_API.G_MISS_DATE THEN
750         l_FORMULA_LINES_rec.end_date_active := NULL;
751     END IF;
752 
753     IF l_FORMULA_LINES_rec.last_updated_by = FND_API.G_MISS_NUM THEN
754         l_FORMULA_LINES_rec.last_updated_by := NULL;
755     END IF;
756 
757     IF l_FORMULA_LINES_rec.last_update_date = FND_API.G_MISS_DATE THEN
758         l_FORMULA_LINES_rec.last_update_date := NULL;
759     END IF;
760 
761     IF l_FORMULA_LINES_rec.last_update_login = FND_API.G_MISS_NUM THEN
762         l_FORMULA_LINES_rec.last_update_login := NULL;
763     END IF;
764 
765     IF l_FORMULA_LINES_rec.numeric_constant = FND_API.G_MISS_NUM THEN
766         l_FORMULA_LINES_rec.numeric_constant := NULL;
767     END IF;
768 
769     IF l_FORMULA_LINES_rec.price_formula_id = FND_API.G_MISS_NUM THEN
770         l_FORMULA_LINES_rec.price_formula_id := NULL;
771     END IF;
772 
773     IF l_FORMULA_LINES_rec.price_formula_line_id = FND_API.G_MISS_NUM THEN
774         l_FORMULA_LINES_rec.price_formula_line_id := NULL;
775     END IF;
776 
777     IF l_FORMULA_LINES_rec.formula_line_type_code = FND_API.G_MISS_CHAR THEN
778         l_FORMULA_LINES_rec.formula_line_type_code := NULL;
779     END IF;
780 
781     IF l_FORMULA_LINES_rec.price_list_line_id = FND_API.G_MISS_NUM THEN
782         l_FORMULA_LINES_rec.price_list_line_id := NULL;
783     END IF;
784 
785     IF l_FORMULA_LINES_rec.price_modifier_list_id = FND_API.G_MISS_NUM THEN
786         l_FORMULA_LINES_rec.price_modifier_list_id := NULL;
787     END IF;
788 
789     IF l_FORMULA_LINES_rec.pricing_attribute = FND_API.G_MISS_CHAR THEN
790         l_FORMULA_LINES_rec.pricing_attribute := NULL;
791     END IF;
792 
793     IF l_FORMULA_LINES_rec.pricing_attribute_context = FND_API.G_MISS_CHAR THEN
794         l_FORMULA_LINES_rec.pricing_attribute_context := NULL;
795     END IF;
796 
797     IF l_FORMULA_LINES_rec.start_date_active = FND_API.G_MISS_DATE THEN
798         l_FORMULA_LINES_rec.start_date_active := NULL;
799     END IF;
800 
801     IF l_FORMULA_LINES_rec.step_number = FND_API.G_MISS_NUM THEN
802         l_FORMULA_LINES_rec.step_number := NULL;
803     END IF;
804 
805     IF l_FORMULA_LINES_rec.reqd_flag = FND_API.G_MISS_CHAR THEN
806         l_FORMULA_LINES_rec.reqd_flag := NULL;
807     END IF;
808 
809 oe_debug_pub.add('Leaving proc Convert_Miss_To_Null in FormulaLines Util Pkg');
810     RETURN l_FORMULA_LINES_rec;
811 
812 END Convert_Miss_To_Null;
813 
814 --  Procedure Update_Row
815 
816 PROCEDURE Update_Row
817 (   p_FORMULA_LINES_rec             IN  QP_Price_Formula_PUB.Formula_Lines_Rec_Type
818 )
819 IS
820 BEGIN
821 
822 oe_debug_pub.add('Entering proc Update_Row in FormulaLines Util Pkg');
823     UPDATE  QP_PRICE_FORMULA_LINES
824     SET     ATTRIBUTE1                     = p_FORMULA_LINES_rec.attribute1
825     ,       ATTRIBUTE10                    = p_FORMULA_LINES_rec.attribute10
826     ,       ATTRIBUTE11                    = p_FORMULA_LINES_rec.attribute11
827     ,       ATTRIBUTE12                    = p_FORMULA_LINES_rec.attribute12
828     ,       ATTRIBUTE13                    = p_FORMULA_LINES_rec.attribute13
829     ,       ATTRIBUTE14                    = p_FORMULA_LINES_rec.attribute14
830     ,       ATTRIBUTE15                    = p_FORMULA_LINES_rec.attribute15
831     ,       ATTRIBUTE2                     = p_FORMULA_LINES_rec.attribute2
832     ,       ATTRIBUTE3                     = p_FORMULA_LINES_rec.attribute3
833     ,       ATTRIBUTE4                     = p_FORMULA_LINES_rec.attribute4
834     ,       ATTRIBUTE5                     = p_FORMULA_LINES_rec.attribute5
835     ,       ATTRIBUTE6                     = p_FORMULA_LINES_rec.attribute6
836     ,       ATTRIBUTE7                     = p_FORMULA_LINES_rec.attribute7
837     ,       ATTRIBUTE8                     = p_FORMULA_LINES_rec.attribute8
838     ,       ATTRIBUTE9                     = p_FORMULA_LINES_rec.attribute9
839     ,       CONTEXT                        = p_FORMULA_LINES_rec.context
840     ,       CREATED_BY                     = p_FORMULA_LINES_rec.created_by
841     ,       CREATION_DATE                  = p_FORMULA_LINES_rec.creation_date
842     ,       END_DATE_ACTIVE                = p_FORMULA_LINES_rec.end_date_active
843     ,       LAST_UPDATED_BY                = p_FORMULA_LINES_rec.last_updated_by
844     ,       LAST_UPDATE_DATE               = p_FORMULA_LINES_rec.last_update_date
845     ,       LAST_UPDATE_LOGIN              = p_FORMULA_LINES_rec.last_update_login
846     ,       NUMERIC_CONSTANT               = p_FORMULA_LINES_rec.numeric_constant
847     ,       PRICE_FORMULA_ID               = p_FORMULA_LINES_rec.price_formula_id
848     ,       PRICE_FORMULA_LINE_ID          = p_FORMULA_LINES_rec.price_formula_line_id
849     ,       PRICE_FORMULA_LINE_TYPE_CODE   = p_FORMULA_LINES_rec.formula_line_type_code
850     ,       PRICE_LIST_LINE_ID             = p_FORMULA_LINES_rec.price_list_line_id
851     ,       PRICE_MODIFIER_LIST_ID         = p_FORMULA_LINES_rec.price_modifier_list_id
852     ,       PRICING_ATTRIBUTE              = p_FORMULA_LINES_rec.pricing_attribute
853     ,       PRICING_ATTRIBUTE_CONTEXT      = p_FORMULA_LINES_rec.pricing_attribute_context
854     ,       START_DATE_ACTIVE              = p_FORMULA_LINES_rec.start_date_active
855     ,       STEP_NUMBER                    = p_FORMULA_LINES_rec.step_number
856     ,       REQD_FLAG                      = p_FORMULA_LINES_rec.reqd_flag
857     WHERE   PRICE_FORMULA_LINE_ID = p_FORMULA_LINES_rec.price_formula_line_id
858     ;
859 
860 oe_debug_pub.add('Leaving proc Update_Row in FormulaLines Util Pkg');
861 
862 IF(p_FORMULA_LINES_rec.pricing_attribute_context IS NOT NULL) AND
863    (p_FORMULA_LINES_rec.pricing_attribute IS NOT NULL) THEN
864    UPDATE qp_pte_segments SET used_in_setup='Y'
865    WHERE  nvl(used_in_setup,'N')='N'
866    AND    segment_id IN
867    (SELECT a.segment_id
868     FROM  qp_segments_b a,qp_prc_contexts_b b
869     WHERE a.segment_mapping_column=p_FORMULA_LINES_rec.pricing_attribute
870     AND   a.prc_context_id=b.prc_context_id
871     AND   b.prc_context_code=p_FORMULA_LINES_rec.pricing_attribute_context);
872 END IF;
873 
874 EXCEPTION
875     WHEN OTHERS THEN
876 
877         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
878         THEN
879             OE_MSG_PUB.Add_Exc_Msg
880             (   G_PKG_NAME
881             ,   'Update_Row'
882             );
883         END IF;
884 
885         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
886 
887 END Update_Row;
888 
889 --  Procedure Insert_Row
890 
891 PROCEDURE Insert_Row
892 (   p_FORMULA_LINES_rec             IN  QP_Price_Formula_PUB.Formula_Lines_Rec_Type
893 )
894 IS
895 BEGIN
896 
897 oe_debug_pub.add('Entering proc Insert_Row in FormulaLines Util Pkg');
898     INSERT  INTO QP_PRICE_FORMULA_LINES
899     (       ATTRIBUTE1
900     ,       ATTRIBUTE10
901     ,       ATTRIBUTE11
902     ,       ATTRIBUTE12
903     ,       ATTRIBUTE13
904     ,       ATTRIBUTE14
905     ,       ATTRIBUTE15
906     ,       ATTRIBUTE2
907     ,       ATTRIBUTE3
908     ,       ATTRIBUTE4
909     ,       ATTRIBUTE5
910     ,       ATTRIBUTE6
911     ,       ATTRIBUTE7
912     ,       ATTRIBUTE8
913     ,       ATTRIBUTE9
914     ,       CONTEXT
915     ,       CREATED_BY
916     ,       CREATION_DATE
917     ,       END_DATE_ACTIVE
918     ,       LAST_UPDATED_BY
919     ,       LAST_UPDATE_DATE
920     ,       LAST_UPDATE_LOGIN
921     ,       NUMERIC_CONSTANT
922     ,       PRICE_FORMULA_ID
923     ,       PRICE_FORMULA_LINE_ID
924     ,       PRICE_FORMULA_LINE_TYPE_CODE
925     ,       PRICE_LIST_LINE_ID
926     ,       PRICE_MODIFIER_LIST_ID
927     ,       PRICING_ATTRIBUTE
928     ,       PRICING_ATTRIBUTE_CONTEXT
929     ,       START_DATE_ACTIVE
930     ,       STEP_NUMBER
931     ,       REQD_FLAG
932     )
933     VALUES
934     (       p_FORMULA_LINES_rec.attribute1
935     ,       p_FORMULA_LINES_rec.attribute10
936     ,       p_FORMULA_LINES_rec.attribute11
937     ,       p_FORMULA_LINES_rec.attribute12
938     ,       p_FORMULA_LINES_rec.attribute13
939     ,       p_FORMULA_LINES_rec.attribute14
940     ,       p_FORMULA_LINES_rec.attribute15
941     ,       p_FORMULA_LINES_rec.attribute2
942     ,       p_FORMULA_LINES_rec.attribute3
943     ,       p_FORMULA_LINES_rec.attribute4
944     ,       p_FORMULA_LINES_rec.attribute5
945     ,       p_FORMULA_LINES_rec.attribute6
946     ,       p_FORMULA_LINES_rec.attribute7
947     ,       p_FORMULA_LINES_rec.attribute8
948     ,       p_FORMULA_LINES_rec.attribute9
949     ,       p_FORMULA_LINES_rec.context
950     ,       p_FORMULA_LINES_rec.created_by
951     ,       p_FORMULA_LINES_rec.creation_date
952     ,       p_FORMULA_LINES_rec.end_date_active
956     ,       p_FORMULA_LINES_rec.numeric_constant
953     ,       p_FORMULA_LINES_rec.last_updated_by
954     ,       p_FORMULA_LINES_rec.last_update_date
955     ,       p_FORMULA_LINES_rec.last_update_login
957     ,       p_FORMULA_LINES_rec.price_formula_id
958     ,       p_FORMULA_LINES_rec.price_formula_line_id
959     ,       p_FORMULA_LINES_rec.formula_line_type_code
960     ,       p_FORMULA_LINES_rec.price_list_line_id
961     ,       p_FORMULA_LINES_rec.price_modifier_list_id
962     ,       p_FORMULA_LINES_rec.pricing_attribute
963     ,       p_FORMULA_LINES_rec.pricing_attribute_context
964     ,       p_FORMULA_LINES_rec.start_date_active
965     ,       p_FORMULA_LINES_rec.step_number
966     ,       p_FORMULA_LINES_rec.reqd_flag
967     );
968 
969 oe_debug_pub.add('Leaving proc Insert_Row in FormulaLines Util Pkg');
970 
971 IF(p_FORMULA_LINES_rec.pricing_attribute_context IS NOT NULL) AND
972    (p_FORMULA_LINES_rec.pricing_attribute IS NOT NULL) THEN
973    UPDATE qp_pte_segments SET used_in_setup='Y'
974    WHERE  nvl(used_in_setup,'N')='N'
975    AND    segment_id IN
976    (SELECT a.segment_id
977     FROM  qp_segments_b a,qp_prc_contexts_b b
978     WHERE a.segment_mapping_column=p_FORMULA_LINES_rec.pricing_attribute
979     AND   a.prc_context_id=b.prc_context_id
980     AND   b.prc_context_code=p_FORMULA_LINES_rec.pricing_attribute_context);
981 END IF;
982 
983 EXCEPTION
984 
985     WHEN OTHERS THEN
986 
987         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
988         THEN
989             OE_MSG_PUB.Add_Exc_Msg
990             (   G_PKG_NAME
991             ,   'Insert_Row'
992             );
993         END IF;
994 
995         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
996 
997 END Insert_Row;
998 
999 --  Procedure Delete_Row
1000 
1001 PROCEDURE Delete_Row
1002 (   p_price_formula_line_id         IN  NUMBER
1003 )
1004 IS
1005 BEGIN
1006 
1007 oe_debug_pub.add('Entering proc Delete_Row in FormulaLines Util Pkg');
1008     DELETE  FROM QP_PRICE_FORMULA_LINES
1009     WHERE   PRICE_FORMULA_LINE_ID = p_price_formula_line_id
1010     ;
1011 
1012 oe_debug_pub.add('Leaving proc Delete_Row in FormulaLines Util Pkg');
1013 
1014 
1015 EXCEPTION
1016 
1017     WHEN OTHERS THEN
1018 
1019         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1020         THEN
1021             OE_MSG_PUB.Add_Exc_Msg
1022             (   G_PKG_NAME
1023             ,   'Delete_Row'
1024             );
1025         END IF;
1026 
1027         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1028 
1029 END Delete_Row;
1030 
1031 --  Function Query_Row
1032 
1033 FUNCTION Query_Row
1034 (   p_price_formula_line_id         IN  NUMBER
1035 ) RETURN QP_Price_Formula_PUB.Formula_Lines_Rec_Type
1036 IS
1037 BEGIN
1038 
1039 oe_debug_pub.add('Entering and Leaving proc Query_Row in FormulaLines Util Pkg');
1040     RETURN Query_Rows
1041         (   p_price_formula_line_id       => p_price_formula_line_id
1042         )(1);
1043 
1044 END Query_Row;
1045 
1046 --  Function Query_Rows
1047 
1048 --
1049 
1050 FUNCTION Query_Rows
1051 (   p_price_formula_line_id         IN  NUMBER :=
1052                                         FND_API.G_MISS_NUM
1053 ,   p_price_formula_id              IN  NUMBER :=
1054                                         FND_API.G_MISS_NUM
1055 ) RETURN QP_Price_Formula_PUB.Formula_Lines_Tbl_Type
1056 IS
1057 l_FORMULA_LINES_rec           QP_Price_Formula_PUB.Formula_Lines_Rec_Type;
1058 l_FORMULA_LINES_tbl           QP_Price_Formula_PUB.Formula_Lines_Tbl_Type;
1059 
1060 CURSOR l_FORMULA_LINES_csr IS
1061     SELECT  ATTRIBUTE1
1062     ,       ATTRIBUTE10
1063     ,       ATTRIBUTE11
1064     ,       ATTRIBUTE12
1065     ,       ATTRIBUTE13
1066     ,       ATTRIBUTE14
1067     ,       ATTRIBUTE15
1068     ,       ATTRIBUTE2
1069     ,       ATTRIBUTE3
1070     ,       ATTRIBUTE4
1071     ,       ATTRIBUTE5
1072     ,       ATTRIBUTE6
1073     ,       ATTRIBUTE7
1074     ,       ATTRIBUTE8
1075     ,       ATTRIBUTE9
1076     ,       CONTEXT
1077     ,       CREATED_BY
1078     ,       CREATION_DATE
1079     ,       END_DATE_ACTIVE
1080     ,       LAST_UPDATED_BY
1081     ,       LAST_UPDATE_DATE
1082     ,       LAST_UPDATE_LOGIN
1083     ,       NUMERIC_CONSTANT
1084     ,       PRICE_FORMULA_ID
1085     ,       PRICE_FORMULA_LINE_ID
1086     ,       PRICE_FORMULA_LINE_TYPE_CODE
1087     ,       PRICE_LIST_LINE_ID
1088     ,       PRICE_MODIFIER_LIST_ID
1089     ,       PRICING_ATTRIBUTE
1090     ,       PRICING_ATTRIBUTE_CONTEXT
1091     ,       START_DATE_ACTIVE
1092     ,       STEP_NUMBER
1093     ,       REQD_FLAG
1094     FROM    QP_PRICE_FORMULA_LINES
1095     WHERE ( PRICE_FORMULA_LINE_ID = p_price_formula_line_id
1096     )
1097     OR (    PRICE_FORMULA_ID = p_price_formula_id
1098     );
1099 
1100 BEGIN
1101 
1102 oe_debug_pub.add('Entering proc Query_Rows in FormulaLines Util Pkg');
1103     IF
1104     (p_price_formula_line_id IS NOT NULL
1105      AND
1106      p_price_formula_line_id <> FND_API.G_MISS_NUM)
1107     AND
1108     (p_price_formula_id IS NOT NULL
1109      AND
1110      p_price_formula_id <> FND_API.G_MISS_NUM)
1111     THEN
1112             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1113             THEN
1114                 OE_MSG_PUB.Add_Exc_Msg
1115                 (   G_PKG_NAME
1116                 ,   'Query Rows'
1117                 ,   'Keys are mutually exclusive: price_formula_line_id = '|| p_price_formula_line_id || ', price_formula_id = '|| p_price_formula_id
1118                 );
1119             END IF;
1120 
1121         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1122 
1123     END IF;
1124 
1125 
1126     --  Loop over fetched records
1127 
1128     FOR l_implicit_rec IN l_FORMULA_LINES_csr LOOP
1129 
1130         l_FORMULA_LINES_rec.attribute1 := l_implicit_rec.ATTRIBUTE1;
1131         l_FORMULA_LINES_rec.attribute10 := l_implicit_rec.ATTRIBUTE10;
1132         l_FORMULA_LINES_rec.attribute11 := l_implicit_rec.ATTRIBUTE11;
1133         l_FORMULA_LINES_rec.attribute12 := l_implicit_rec.ATTRIBUTE12;
1134         l_FORMULA_LINES_rec.attribute13 := l_implicit_rec.ATTRIBUTE13;
1135         l_FORMULA_LINES_rec.attribute14 := l_implicit_rec.ATTRIBUTE14;
1136         l_FORMULA_LINES_rec.attribute15 := l_implicit_rec.ATTRIBUTE15;
1137         l_FORMULA_LINES_rec.attribute2 := l_implicit_rec.ATTRIBUTE2;
1138         l_FORMULA_LINES_rec.attribute3 := l_implicit_rec.ATTRIBUTE3;
1139         l_FORMULA_LINES_rec.attribute4 := l_implicit_rec.ATTRIBUTE4;
1140         l_FORMULA_LINES_rec.attribute5 := l_implicit_rec.ATTRIBUTE5;
1141         l_FORMULA_LINES_rec.attribute6 := l_implicit_rec.ATTRIBUTE6;
1142         l_FORMULA_LINES_rec.attribute7 := l_implicit_rec.ATTRIBUTE7;
1143         l_FORMULA_LINES_rec.attribute8 := l_implicit_rec.ATTRIBUTE8;
1144         l_FORMULA_LINES_rec.attribute9 := l_implicit_rec.ATTRIBUTE9;
1145         l_FORMULA_LINES_rec.context    := l_implicit_rec.CONTEXT;
1146         l_FORMULA_LINES_rec.created_by := l_implicit_rec.CREATED_BY;
1147         l_FORMULA_LINES_rec.creation_date := l_implicit_rec.CREATION_DATE;
1148         l_FORMULA_LINES_rec.end_date_active := l_implicit_rec.END_DATE_ACTIVE;
1149         l_FORMULA_LINES_rec.last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
1150         l_FORMULA_LINES_rec.last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
1151         l_FORMULA_LINES_rec.last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
1152         l_FORMULA_LINES_rec.numeric_constant := l_implicit_rec.NUMERIC_CONSTANT;
1153         l_FORMULA_LINES_rec.price_formula_id := l_implicit_rec.PRICE_FORMULA_ID;
1154         l_FORMULA_LINES_rec.price_formula_line_id := l_implicit_rec.PRICE_FORMULA_LINE_ID;
1155         l_FORMULA_LINES_rec.formula_line_type_code := l_implicit_rec.PRICE_FORMULA_LINE_TYPE_CODE;
1156         l_FORMULA_LINES_rec.price_list_line_id := l_implicit_rec.PRICE_LIST_LINE_ID;
1157         l_FORMULA_LINES_rec.price_modifier_list_id := l_implicit_rec.PRICE_MODIFIER_LIST_ID;
1158         l_FORMULA_LINES_rec.pricing_attribute := l_implicit_rec.PRICING_ATTRIBUTE;
1159         l_FORMULA_LINES_rec.pricing_attribute_context := l_implicit_rec.PRICING_ATTRIBUTE_CONTEXT;
1160         l_FORMULA_LINES_rec.start_date_active := l_implicit_rec.START_DATE_ACTIVE;
1161         l_FORMULA_LINES_rec.step_number := l_implicit_rec.STEP_NUMBER;
1162         l_FORMULA_LINES_rec.reqd_flag := l_implicit_rec.REQD_FLAG;
1163 
1164         l_FORMULA_LINES_tbl(l_FORMULA_LINES_tbl.COUNT + 1) := l_FORMULA_LINES_rec;
1165 
1166     END LOOP;
1167 
1168 
1169     --  PK sent and no rows found
1170 
1171     IF
1172     (p_price_formula_line_id IS NOT NULL
1173      AND
1174      p_price_formula_line_id <> FND_API.G_MISS_NUM)
1175     AND
1176     (l_FORMULA_LINES_tbl.COUNT = 0)
1177     THEN
1178         RAISE NO_DATA_FOUND;
1179     END IF;
1180 
1181 
1182 oe_debug_pub.add('Leaving proc Query_Rows in FormulaLines Util Pkg');
1183     --  Return fetched table
1184 
1185     RETURN l_FORMULA_LINES_tbl;
1186 
1187 EXCEPTION
1188 
1189     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1190 
1191         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1192 
1193     WHEN OTHERS THEN
1194 
1195         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1196         THEN
1197             OE_MSG_PUB.Add_Exc_Msg
1198             (   G_PKG_NAME
1199             ,   'Query_Rows'
1200             );
1201         END IF;
1202 
1203         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1204 
1205 END Query_Rows;
1206 
1207 --  Procedure       lock_Row
1208 --
1209 
1210 PROCEDURE Lock_Row
1211 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1212 ,   p_FORMULA_LINES_rec             IN  QP_Price_Formula_PUB.Formula_Lines_Rec_Type
1213 ,   x_FORMULA_LINES_rec             OUT NOCOPY /* file.sql.39 change */ QP_Price_Formula_PUB.Formula_Lines_Rec_Type
1214 )
1215 IS
1216 l_FORMULA_LINES_rec           QP_Price_Formula_PUB.Formula_Lines_Rec_Type;
1217 BEGIN
1218 
1219 oe_debug_pub.add('Entering proc Lock_Row in FormulaLines Util Pkg');
1220     SELECT  ATTRIBUTE1
1221     ,       ATTRIBUTE10
1222     ,       ATTRIBUTE11
1223     ,       ATTRIBUTE12
1224     ,       ATTRIBUTE13
1225     ,       ATTRIBUTE14
1226     ,       ATTRIBUTE15
1227     ,       ATTRIBUTE2
1228     ,       ATTRIBUTE3
1229     ,       ATTRIBUTE4
1230     ,       ATTRIBUTE5
1231     ,       ATTRIBUTE6
1232     ,       ATTRIBUTE7
1233     ,       ATTRIBUTE8
1234     ,       ATTRIBUTE9
1235     ,       CONTEXT
1236     ,       CREATED_BY
1237     ,       CREATION_DATE
1238     ,       END_DATE_ACTIVE
1239     ,       LAST_UPDATED_BY
1240     ,       LAST_UPDATE_DATE
1241     ,       LAST_UPDATE_LOGIN
1242     ,       NUMERIC_CONSTANT
1243     ,       PRICE_FORMULA_ID
1244     ,       PRICE_FORMULA_LINE_ID
1245     ,       PRICE_FORMULA_LINE_TYPE_CODE
1246     ,       PRICE_LIST_LINE_ID
1247     ,       PRICE_MODIFIER_LIST_ID
1248     ,       PRICING_ATTRIBUTE
1249     ,       PRICING_ATTRIBUTE_CONTEXT
1250     ,       START_DATE_ACTIVE
1251     ,       STEP_NUMBER
1252     ,       REQD_FLAG
1253     INTO    l_FORMULA_LINES_rec.attribute1
1254     ,       l_FORMULA_LINES_rec.attribute10
1258     ,       l_FORMULA_LINES_rec.attribute14
1255     ,       l_FORMULA_LINES_rec.attribute11
1256     ,       l_FORMULA_LINES_rec.attribute12
1257     ,       l_FORMULA_LINES_rec.attribute13
1259     ,       l_FORMULA_LINES_rec.attribute15
1260     ,       l_FORMULA_LINES_rec.attribute2
1261     ,       l_FORMULA_LINES_rec.attribute3
1262     ,       l_FORMULA_LINES_rec.attribute4
1263     ,       l_FORMULA_LINES_rec.attribute5
1264     ,       l_FORMULA_LINES_rec.attribute6
1265     ,       l_FORMULA_LINES_rec.attribute7
1266     ,       l_FORMULA_LINES_rec.attribute8
1267     ,       l_FORMULA_LINES_rec.attribute9
1268     ,       l_FORMULA_LINES_rec.context
1269     ,       l_FORMULA_LINES_rec.created_by
1270     ,       l_FORMULA_LINES_rec.creation_date
1271     ,       l_FORMULA_LINES_rec.end_date_active
1272     ,       l_FORMULA_LINES_rec.last_updated_by
1273     ,       l_FORMULA_LINES_rec.last_update_date
1274     ,       l_FORMULA_LINES_rec.last_update_login
1275     ,       l_FORMULA_LINES_rec.numeric_constant
1276     ,       l_FORMULA_LINES_rec.price_formula_id
1277     ,       l_FORMULA_LINES_rec.price_formula_line_id
1278     ,       l_FORMULA_LINES_rec.formula_line_type_code
1279     ,       l_FORMULA_LINES_rec.price_list_line_id
1280     ,       l_FORMULA_LINES_rec.price_modifier_list_id
1281     ,       l_FORMULA_LINES_rec.pricing_attribute
1282     ,       l_FORMULA_LINES_rec.pricing_attribute_context
1283     ,       l_FORMULA_LINES_rec.start_date_active
1284     ,       l_FORMULA_LINES_rec.step_number
1285     ,       l_FORMULA_LINES_rec.reqd_flag
1286     FROM    QP_PRICE_FORMULA_LINES
1287     WHERE   PRICE_FORMULA_LINE_ID = p_FORMULA_LINES_rec.price_formula_line_id
1288         FOR UPDATE NOWAIT;
1289 
1290     --  Row locked. Compare IN attributes to DB attributes.
1291 
1292     IF  QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute1,
1293                          l_FORMULA_LINES_rec.attribute1)
1294     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute10,
1295                          l_FORMULA_LINES_rec.attribute10)
1296     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute11,
1297                          l_FORMULA_LINES_rec.attribute11)
1298     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute12,
1299                          l_FORMULA_LINES_rec.attribute12)
1300     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute13,
1301                          l_FORMULA_LINES_rec.attribute13)
1302     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute14,
1303                          l_FORMULA_LINES_rec.attribute14)
1304     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute15,
1305                          l_FORMULA_LINES_rec.attribute15)
1306     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute2,
1307                          l_FORMULA_LINES_rec.attribute2)
1308     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute3,
1309                          l_FORMULA_LINES_rec.attribute3)
1310     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute4,
1311                          l_FORMULA_LINES_rec.attribute4)
1312     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute5,
1313                          l_FORMULA_LINES_rec.attribute5)
1314     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute6,
1315                          l_FORMULA_LINES_rec.attribute6)
1316     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute7,
1317                          l_FORMULA_LINES_rec.attribute7)
1318     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute8,
1319                          l_FORMULA_LINES_rec.attribute8)
1320     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.attribute9,
1321                          l_FORMULA_LINES_rec.attribute9)
1322     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.context,
1323                          l_FORMULA_LINES_rec.context)
1324     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.created_by,
1325                          l_FORMULA_LINES_rec.created_by)
1326     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.creation_date,
1327                          l_FORMULA_LINES_rec.creation_date)
1328     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.end_date_active,
1329                          l_FORMULA_LINES_rec.end_date_active)
1330     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.last_updated_by,
1331                          l_FORMULA_LINES_rec.last_updated_by)
1332     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.last_update_date,
1333                          l_FORMULA_LINES_rec.last_update_date)
1334     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.last_update_login,
1335                          l_FORMULA_LINES_rec.last_update_login)
1336     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.numeric_constant,
1337                          l_FORMULA_LINES_rec.numeric_constant)
1338     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.price_formula_id,
1339                          l_FORMULA_LINES_rec.price_formula_id)
1340     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.price_formula_line_id,
1341                          l_FORMULA_LINES_rec.price_formula_line_id)
1342     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.formula_line_type_code,
1343                          l_FORMULA_LINES_rec.formula_line_type_code)
1344     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.price_list_line_id,
1345                          l_FORMULA_LINES_rec.price_list_line_id)
1346     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.price_modifier_list_id,
1347                          l_FORMULA_LINES_rec.price_modifier_list_id)
1348     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.pricing_attribute,
1349                          l_FORMULA_LINES_rec.pricing_attribute)
1350     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.pricing_attribute_context,
1351                          l_FORMULA_LINES_rec.pricing_attribute_context)
1352     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.start_date_active,
1353                          l_FORMULA_LINES_rec.start_date_active)
1354     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.step_number,
1355                          l_FORMULA_LINES_rec.step_number)
1356     AND QP_GLOBALS.Equal(p_FORMULA_LINES_rec.reqd_flag,
1357                          l_FORMULA_LINES_rec.reqd_flag)
1358     THEN
1359 
1360         --  Row has not changed. Set out parameter.
1364         --  Set return status
1361 
1362         x_FORMULA_LINES_rec            := l_FORMULA_LINES_rec;
1363 
1365 
1366         x_return_status                := FND_API.G_RET_STS_SUCCESS;
1367         x_FORMULA_LINES_rec.return_status := FND_API.G_RET_STS_SUCCESS;
1368 
1369     ELSE
1370 
1371         --  Row has changed by another user.
1372 
1373         x_return_status                := FND_API.G_RET_STS_ERROR;
1374         x_FORMULA_LINES_rec.return_status := FND_API.G_RET_STS_ERROR;
1375 
1376         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1377         THEN
1378 
1379             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_CHANGED');
1380             OE_MSG_PUB.Add;
1381 
1382         END IF;
1383 
1384     END IF;
1385 
1386 oe_debug_pub.add('Leaving proc Lock_Row in FormulaLines Util Pkg');
1387 EXCEPTION
1388 
1389     WHEN NO_DATA_FOUND THEN
1390 
1391         x_return_status                := FND_API.G_RET_STS_ERROR;
1392         x_FORMULA_LINES_rec.return_status := FND_API.G_RET_STS_ERROR;
1393 
1394         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1395         THEN
1396 
1397             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_DELETED');
1398             OE_MSG_PUB.Add;
1399 
1400         END IF;
1401     WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
1402 
1403         x_return_status                := FND_API.G_RET_STS_ERROR;
1404         x_FORMULA_LINES_rec.return_status := FND_API.G_RET_STS_ERROR;
1405 
1406         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1407         THEN
1408 
1409             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_ALREADY_LOCKED');
1410             OE_MSG_PUB.Add;
1411 
1412         END IF;
1413     WHEN OTHERS THEN
1414 
1415         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
1416         x_FORMULA_LINES_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1417 
1418         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1419         THEN
1420             OE_MSG_PUB.Add_Exc_Msg
1421             (   G_PKG_NAME
1422             ,   'Lock_Row'
1423             );
1424         END IF;
1425 
1426 END Lock_Row;
1427 
1428 --  Function Get_Values
1429 
1430 FUNCTION Get_Values
1431 (   p_FORMULA_LINES_rec             IN  QP_Price_Formula_PUB.Formula_Lines_Rec_Type
1432 ,   p_old_FORMULA_LINES_rec         IN  QP_Price_Formula_PUB.Formula_Lines_Rec_Type :=
1433                                         QP_Price_Formula_PUB.G_MISS_FORMULA_LINES_REC
1434 ) RETURN QP_Price_Formula_PUB.Formula_Lines_Val_Rec_Type
1435 IS
1436 l_FORMULA_LINES_val_rec       QP_Price_Formula_PUB.Formula_Lines_Val_Rec_Type;
1437 BEGIN
1438 
1439 oe_debug_pub.add('Entering proc Get_Values in FormulaLines Util Pkg');
1440     IF p_FORMULA_LINES_rec.price_formula_id IS NOT NULL AND
1441         p_FORMULA_LINES_rec.price_formula_id <> FND_API.G_MISS_NUM AND
1442         NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.price_formula_id,
1443         p_old_FORMULA_LINES_rec.price_formula_id)
1444     THEN
1445         l_FORMULA_LINES_val_rec.price_formula := QP_Id_To_Value.Price_Formula
1446         (   p_price_formula_id            => p_FORMULA_LINES_rec.price_formula_id
1447         );
1448     END IF;
1449 
1450     IF p_FORMULA_LINES_rec.price_formula_line_id IS NOT NULL AND
1451         p_FORMULA_LINES_rec.price_formula_line_id <> FND_API.G_MISS_NUM AND
1452         NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.price_formula_line_id,
1453         p_old_FORMULA_LINES_rec.price_formula_line_id)
1454     THEN
1455         l_FORMULA_LINES_val_rec.price_formula_line := QP_Id_To_Value.Price_Formula_Line
1456         (   p_price_formula_line_id       => p_FORMULA_LINES_rec.price_formula_line_id
1457         );
1458     END IF;
1459 
1460     IF p_FORMULA_LINES_rec.formula_line_type_code IS NOT NULL AND
1461         p_FORMULA_LINES_rec.formula_line_type_code <> FND_API.G_MISS_CHAR AND
1462         NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.formula_line_type_code,
1463         p_old_FORMULA_LINES_rec.formula_line_type_code)
1464     THEN
1465         l_FORMULA_LINES_val_rec.price_formula_line_type := QP_Id_To_Value.Price_Formula_Line_Type
1466         (   p_formula_line_type_code      => p_FORMULA_LINES_rec.formula_line_type_code
1467         );
1468     END IF;
1469 
1470     IF p_FORMULA_LINES_rec.price_list_line_id IS NOT NULL AND
1471         p_FORMULA_LINES_rec.price_list_line_id <> FND_API.G_MISS_NUM AND
1472         NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.price_list_line_id,
1473         p_old_FORMULA_LINES_rec.price_list_line_id)
1474     THEN
1475         l_FORMULA_LINES_val_rec.price_list_line := QP_Id_To_Value.Price_List_Line
1476         (   p_price_list_line_id          => p_FORMULA_LINES_rec.price_list_line_id
1477         );
1478     END IF;
1479 
1480     IF p_FORMULA_LINES_rec.price_modifier_list_id IS NOT NULL AND
1481         p_FORMULA_LINES_rec.price_modifier_list_id <> FND_API.G_MISS_NUM AND
1482         NOT QP_GLOBALS.Equal(p_FORMULA_LINES_rec.price_modifier_list_id,
1483         p_old_FORMULA_LINES_rec.price_modifier_list_id)
1484     THEN
1485         l_FORMULA_LINES_val_rec.price_modifier_list := QP_Id_To_Value.Price_Modifier_List
1486         (   p_price_modifier_list_id      => p_FORMULA_LINES_rec.price_modifier_list_id
1487         );
1488     END IF;
1489 
1490 oe_debug_pub.add('Leaving proc Get_Values in FormulaLines Util Pkg');
1491     RETURN l_FORMULA_LINES_val_rec;
1492 
1493 END Get_Values;
1494 
1495 --  Function Get_Ids
1496 
1497 FUNCTION Get_Ids
1498 (   p_FORMULA_LINES_rec             IN  QP_Price_Formula_PUB.Formula_Lines_Rec_Type
1499 ,   p_FORMULA_LINES_val_rec         IN  QP_Price_Formula_PUB.Formula_Lines_Val_Rec_Type
1500 ) RETURN QP_Price_Formula_PUB.Formula_Lines_Rec_Type
1501 IS
1505 oe_debug_pub.add('Entering proc Get_Ids in FormulaLines Util Pkg');
1502 l_FORMULA_LINES_rec           QP_Price_Formula_PUB.Formula_Lines_Rec_Type;
1503 BEGIN
1504 
1506     --  initialize  return_status.
1507 
1508     l_FORMULA_LINES_rec.return_status := FND_API.G_RET_STS_SUCCESS;
1509 
1510     --  initialize l_FORMULA_LINES_rec.
1511 
1512     l_FORMULA_LINES_rec := p_FORMULA_LINES_rec;
1513 
1514     IF  p_FORMULA_LINES_val_rec.price_formula <> FND_API.G_MISS_CHAR
1515     THEN
1516 
1517         IF p_FORMULA_LINES_rec.price_formula_id <> FND_API.G_MISS_NUM THEN
1518 
1519             l_FORMULA_LINES_rec.price_formula_id := p_FORMULA_LINES_rec.price_formula_id;
1520 
1521             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1522             THEN
1523 
1524                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1525                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','price_formula');
1526                 OE_MSG_PUB.Add;
1527 
1528             END IF;
1529 
1530         ELSE
1531 
1532             l_FORMULA_LINES_rec.price_formula_id := QP_Value_To_Id.price_formula
1533             (   p_price_formula               => p_FORMULA_LINES_val_rec.price_formula
1534             );
1535 
1536             IF l_FORMULA_LINES_rec.price_formula_id = FND_API.G_MISS_NUM THEN
1537                 l_FORMULA_LINES_rec.return_status := FND_API.G_RET_STS_ERROR;
1538             END IF;
1539 
1540         END IF;
1541 
1542     END IF;
1543 
1544     IF  p_FORMULA_LINES_val_rec.price_formula_line <> FND_API.G_MISS_CHAR
1545     THEN
1546 
1547         IF p_FORMULA_LINES_rec.price_formula_line_id <> FND_API.G_MISS_NUM THEN
1548 
1549             l_FORMULA_LINES_rec.price_formula_line_id := p_FORMULA_LINES_rec.price_formula_line_id;
1550 
1551             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1552             THEN
1553 
1554                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1555                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','price_formula_line');
1556                 OE_MSG_PUB.Add;
1557 
1558             END IF;
1559 
1560         ELSE
1561 
1562             l_FORMULA_LINES_rec.price_formula_line_id := QP_Value_To_Id.price_formula_line
1563             (   p_price_formula_line          => p_FORMULA_LINES_val_rec.price_formula_line
1564             );
1565 
1566             IF l_FORMULA_LINES_rec.price_formula_line_id = FND_API.G_MISS_NUM THEN
1567                 l_FORMULA_LINES_rec.return_status := FND_API.G_RET_STS_ERROR;
1568             END IF;
1569 
1570         END IF;
1571 
1572     END IF;
1573 
1574     IF  p_FORMULA_LINES_val_rec.price_formula_line_type <> FND_API.G_MISS_CHAR
1575     THEN
1576 
1577         IF p_FORMULA_LINES_rec.formula_line_type_code <> FND_API.G_MISS_CHAR THEN
1578 
1579             l_FORMULA_LINES_rec.formula_line_type_code := p_FORMULA_LINES_rec.formula_line_type_code;
1580 
1581             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1582             THEN
1583 
1584                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1585                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','price_formula_line_type');
1586                 OE_MSG_PUB.Add;
1587 
1588             END IF;
1589 
1590         ELSE
1591 
1592             l_FORMULA_LINES_rec.formula_line_type_code := QP_Value_To_Id.price_formula_line_type
1593             (   p_price_formula_line_type     => p_FORMULA_LINES_val_rec.price_formula_line_type
1594             );
1595 
1596             IF l_FORMULA_LINES_rec.formula_line_type_code = FND_API.G_MISS_CHAR THEN
1597                 l_FORMULA_LINES_rec.return_status := FND_API.G_RET_STS_ERROR;
1598             END IF;
1599 
1600         END IF;
1601 
1602     END IF;
1603 
1604     IF  p_FORMULA_LINES_val_rec.price_list_line <> FND_API.G_MISS_CHAR
1605     THEN
1606 
1607         IF p_FORMULA_LINES_rec.price_list_line_id <> FND_API.G_MISS_NUM THEN
1608 
1609             l_FORMULA_LINES_rec.price_list_line_id := p_FORMULA_LINES_rec.price_list_line_id;
1610 
1611             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1612             THEN
1613 
1614                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1615                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','price_list_line');
1616                 OE_MSG_PUB.Add;
1617 
1618             END IF;
1619 
1620         ELSE
1621 
1622             l_FORMULA_LINES_rec.price_list_line_id := QP_Value_To_Id.price_list_line
1623             (   p_price_list_line             => p_FORMULA_LINES_val_rec.price_list_line
1624             );
1625 
1626             IF l_FORMULA_LINES_rec.price_list_line_id = FND_API.G_MISS_NUM THEN
1627                 l_FORMULA_LINES_rec.return_status := FND_API.G_RET_STS_ERROR;
1628             END IF;
1629 
1630         END IF;
1631 
1632     END IF;
1633 
1634     IF  p_FORMULA_LINES_val_rec.price_modifier_list <> FND_API.G_MISS_CHAR
1635     THEN
1636 
1637         IF p_FORMULA_LINES_rec.price_modifier_list_id <> FND_API.G_MISS_NUM THEN
1638 
1639             l_FORMULA_LINES_rec.price_modifier_list_id := p_FORMULA_LINES_rec.price_modifier_list_id;
1640 
1641             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1642             THEN
1643 
1644                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1645                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','price_modifier_list');
1646                 OE_MSG_PUB.Add;
1647 
1648             END IF;
1649 
1650         ELSE
1651 
1652             l_FORMULA_LINES_rec.price_modifier_list_id := QP_Value_To_Id.price_modifier_list
1653             (   p_price_modifier_list         => p_FORMULA_LINES_val_rec.price_modifier_list
1654             );
1655 
1656             IF l_FORMULA_LINES_rec.price_modifier_list_id = FND_API.G_MISS_NUM THEN
1657                 l_FORMULA_LINES_rec.return_status := FND_API.G_RET_STS_ERROR;
1658             END IF;
1659 
1660         END IF;
1661 
1662     END IF;
1663 
1664 
1665 oe_debug_pub.add('Leaving proc Get_Ids in FormulaLines Util Pkg');
1666     RETURN l_FORMULA_LINES_rec;
1667 
1668 END Get_Ids;
1669 
1670 END QP_Formula_Lines_Util;