DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_FORMULA_UTIL

Source


1 PACKAGE BODY QP_Formula_Util AS
2 /* $Header: QPXUPRFB.pls 120.1 2005/06/12 23:13:25 appldev  $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'QP_Formula_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_rec                   IN  QP_Price_Formula_PUB.Formula_Rec_Type
13 ,   p_old_FORMULA_rec               IN  QP_Price_Formula_PUB.Formula_Rec_Type :=
14                                         QP_Price_Formula_PUB.G_MISS_FORMULA_REC
15 ,   x_FORMULA_rec                   OUT NOCOPY /* file.sql.39 change */ QP_Price_Formula_PUB.Formula_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 Formula Util Pkg');
24     --  Load out record
25 
26     x_FORMULA_rec := p_FORMULA_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_rec.attribute1,p_old_FORMULA_rec.attribute1)
34         THEN
35             l_index := l_index + 1;
36             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE1;
37         END IF;
38 
39         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute10,p_old_FORMULA_rec.attribute10)
40         THEN
41             l_index := l_index + 1;
42             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE10;
43         END IF;
44 
45         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute11,p_old_FORMULA_rec.attribute11)
46         THEN
47             l_index := l_index + 1;
48             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE11;
49         END IF;
50 
51         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute12,p_old_FORMULA_rec.attribute12)
52         THEN
53             l_index := l_index + 1;
54             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE12;
55         END IF;
56 
57         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute13,p_old_FORMULA_rec.attribute13)
58         THEN
59             l_index := l_index + 1;
60             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE13;
61         END IF;
62 
63         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute14,p_old_FORMULA_rec.attribute14)
64         THEN
65             l_index := l_index + 1;
66             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE14;
67         END IF;
68 
69         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute15,p_old_FORMULA_rec.attribute15)
70         THEN
71             l_index := l_index + 1;
72             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE15;
73         END IF;
74 
75         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute2,p_old_FORMULA_rec.attribute2)
76         THEN
77             l_index := l_index + 1;
78             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE2;
79         END IF;
80 
81         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute3,p_old_FORMULA_rec.attribute3)
82         THEN
83             l_index := l_index + 1;
84             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE3;
85         END IF;
86 
87         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute4,p_old_FORMULA_rec.attribute4)
88         THEN
89             l_index := l_index + 1;
90             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE4;
91         END IF;
92 
93         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute5,p_old_FORMULA_rec.attribute5)
94         THEN
95             l_index := l_index + 1;
96             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE5;
97         END IF;
98 
99         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute6,p_old_FORMULA_rec.attribute6)
100         THEN
101             l_index := l_index + 1;
102             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE6;
103         END IF;
104 
105         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute7,p_old_FORMULA_rec.attribute7)
106         THEN
107             l_index := l_index + 1;
108             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE7;
109         END IF;
110 
111         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute8,p_old_FORMULA_rec.attribute8)
112         THEN
113             l_index := l_index + 1;
114             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE8;
115         END IF;
116 
117         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute9,p_old_FORMULA_rec.attribute9)
118         THEN
119             l_index := l_index + 1;
120             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE9;
121         END IF;
122 
123         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.context,p_old_FORMULA_rec.context)
124         THEN
125             l_index := l_index + 1;
126             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_CONTEXT;
127         END IF;
128 
129         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.created_by,p_old_FORMULA_rec.created_by)
130         THEN
131             l_index := l_index + 1;
132             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_CREATED_BY;
133         END IF;
134 
135         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.creation_date,p_old_FORMULA_rec.creation_date)
136         THEN
137             l_index := l_index + 1;
138             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_CREATION_DATE;
139         END IF;
140 
141         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.description,p_old_FORMULA_rec.description)
142         THEN
143             l_index := l_index + 1;
144             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_DESCRIPTION;
145         END IF;
146 
147         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.end_date_active,p_old_FORMULA_rec.end_date_active)
148         THEN
149             l_index := l_index + 1;
150             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_END_DATE_ACTIVE;
151         END IF;
152 
153         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.formula,p_old_FORMULA_rec.formula)
154         THEN
155             l_index := l_index + 1;
156             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_FORMULA;
157         END IF;
158 
159         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.last_updated_by,p_old_FORMULA_rec.last_updated_by)
160         THEN
161             l_index := l_index + 1;
162             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_LAST_UPDATED_BY;
163         END IF;
164 
165         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.last_update_date,p_old_FORMULA_rec.last_update_date)
166         THEN
167             l_index := l_index + 1;
168             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_LAST_UPDATE_DATE;
169         END IF;
170 
171         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.last_update_login,p_old_FORMULA_rec.last_update_login)
172         THEN
173             l_index := l_index + 1;
174             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_LAST_UPDATE_LOGIN;
175         END IF;
176 
177         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.name,p_old_FORMULA_rec.name)
178         THEN
179             l_index := l_index + 1;
180             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_NAME;
181         END IF;
182 
183         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.price_formula_id,p_old_FORMULA_rec.price_formula_id)
184         THEN
185             l_index := l_index + 1;
186             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_PRICE_FORMULA;
187         END IF;
188 
189         IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.start_date_active,p_old_FORMULA_rec.start_date_active)
190         THEN
191             l_index := l_index + 1;
192             l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_START_DATE_ACTIVE;
193         END IF;
194 
195     ELSIF p_attr_id = G_ATTRIBUTE1 THEN
196         l_index := l_index + 1;
197         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE1;
198     ELSIF p_attr_id = G_ATTRIBUTE10 THEN
199         l_index := l_index + 1;
200         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE10;
201     ELSIF p_attr_id = G_ATTRIBUTE11 THEN
202         l_index := l_index + 1;
203         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE11;
204     ELSIF p_attr_id = G_ATTRIBUTE12 THEN
205         l_index := l_index + 1;
206         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE12;
207     ELSIF p_attr_id = G_ATTRIBUTE13 THEN
208         l_index := l_index + 1;
209         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE13;
210     ELSIF p_attr_id = G_ATTRIBUTE14 THEN
211         l_index := l_index + 1;
212         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE14;
213     ELSIF p_attr_id = G_ATTRIBUTE15 THEN
214         l_index := l_index + 1;
215         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE15;
216     ELSIF p_attr_id = G_ATTRIBUTE2 THEN
217         l_index := l_index + 1;
218         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE2;
219     ELSIF p_attr_id = G_ATTRIBUTE3 THEN
220         l_index := l_index + 1;
221         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE3;
222     ELSIF p_attr_id = G_ATTRIBUTE4 THEN
223         l_index := l_index + 1;
224         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE4;
225     ELSIF p_attr_id = G_ATTRIBUTE5 THEN
226         l_index := l_index + 1;
227         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE5;
228     ELSIF p_attr_id = G_ATTRIBUTE6 THEN
229         l_index := l_index + 1;
230         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE6;
231     ELSIF p_attr_id = G_ATTRIBUTE7 THEN
232         l_index := l_index + 1;
233         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE7;
234     ELSIF p_attr_id = G_ATTRIBUTE8 THEN
235         l_index := l_index + 1;
236         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE8;
237     ELSIF p_attr_id = G_ATTRIBUTE9 THEN
238         l_index := l_index + 1;
239         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_ATTRIBUTE9;
240     ELSIF p_attr_id = G_CONTEXT THEN
241         l_index := l_index + 1;
242         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_CONTEXT;
243     ELSIF p_attr_id = G_CREATED_BY THEN
244         l_index := l_index + 1;
245         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_CREATED_BY;
246     ELSIF p_attr_id = G_CREATION_DATE THEN
247         l_index := l_index + 1;
248         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_CREATION_DATE;
249     ELSIF p_attr_id = G_DESCRIPTION THEN
250         l_index := l_index + 1;
251         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_DESCRIPTION;
252     ELSIF p_attr_id = G_END_DATE_ACTIVE THEN
253         l_index := l_index + 1;
254         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_END_DATE_ACTIVE;
255     ELSIF p_attr_id = G_FORMULA THEN
256         l_index := l_index + 1;
257         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_FORMULA;
258     ELSIF p_attr_id = G_LAST_UPDATED_BY THEN
259         l_index := l_index + 1;
260         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_LAST_UPDATED_BY;
261     ELSIF p_attr_id = G_LAST_UPDATE_DATE THEN
262         l_index := l_index + 1;
263         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_LAST_UPDATE_DATE;
264     ELSIF p_attr_id = G_LAST_UPDATE_LOGIN THEN
265         l_index := l_index + 1;
266         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_LAST_UPDATE_LOGIN;
267     ELSIF p_attr_id = G_NAME THEN
268         l_index := l_index + 1;
269         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_NAME;
270     ELSIF p_attr_id = G_PRICE_FORMULA THEN
271         l_index := l_index + 1;
272         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_PRICE_FORMULA;
273     ELSIF p_attr_id = G_START_DATE_ACTIVE THEN
274         l_index := l_index + 1;
275         l_src_attr_tbl(l_index) := QP_FORMULA_UTIL.G_START_DATE_ACTIVE;
276     END IF;
277 
278 oe_debug_pub.add('Leaving proc clear_dependent_attr in Formula Util Pkg');
279 END Clear_Dependent_Attr;
280 
281 --  Procedure Apply_Attribute_Changes
282 
283 PROCEDURE Apply_Attribute_Changes
284 (   p_FORMULA_rec                   IN  QP_Price_Formula_PUB.Formula_Rec_Type
285 ,   p_old_FORMULA_rec               IN  QP_Price_Formula_PUB.Formula_Rec_Type :=
286                                         QP_Price_Formula_PUB.G_MISS_FORMULA_REC
287 ,   x_FORMULA_rec                   OUT NOCOPY /* file.sql.39 change */ QP_Price_Formula_PUB.Formula_Rec_Type
288 )
289 IS
290 BEGIN
291 
292 oe_debug_pub.add('Entering proc Apply_attribute_Changes in Formula Util Pkg');
293     --  Load out NOCOPY record
294 
295     x_FORMULA_rec := p_FORMULA_rec;
296 
297     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute1,p_old_FORMULA_rec.attribute1)
298     THEN
299         NULL;
300     END IF;
301 
302     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute10,p_old_FORMULA_rec.attribute10)
303     THEN
304         NULL;
305     END IF;
306 
307     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute11,p_old_FORMULA_rec.attribute11)
308     THEN
309         NULL;
310     END IF;
311 
312     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute12,p_old_FORMULA_rec.attribute12)
313     THEN
314         NULL;
315     END IF;
316 
317     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute13,p_old_FORMULA_rec.attribute13)
318     THEN
319         NULL;
320     END IF;
321 
322     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute14,p_old_FORMULA_rec.attribute14)
323     THEN
324         NULL;
325     END IF;
326 
327     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute15,p_old_FORMULA_rec.attribute15)
328     THEN
329         NULL;
330     END IF;
331 
332     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute2,p_old_FORMULA_rec.attribute2)
333     THEN
334         NULL;
335     END IF;
336 
337     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute3,p_old_FORMULA_rec.attribute3)
338     THEN
339         NULL;
340     END IF;
341 
342     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute4,p_old_FORMULA_rec.attribute4)
343     THEN
344         NULL;
345     END IF;
346 
347     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute5,p_old_FORMULA_rec.attribute5)
348     THEN
349         NULL;
350     END IF;
351 
352     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute6,p_old_FORMULA_rec.attribute6)
353     THEN
354         NULL;
355     END IF;
356 
357     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute7,p_old_FORMULA_rec.attribute7)
358     THEN
359         NULL;
360     END IF;
361 
362     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute8,p_old_FORMULA_rec.attribute8)
363     THEN
364         NULL;
365     END IF;
366 
367     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.attribute9,p_old_FORMULA_rec.attribute9)
368     THEN
369         NULL;
370     END IF;
371 
372     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.context,p_old_FORMULA_rec.context)
373     THEN
374         NULL;
375     END IF;
376 
377     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.created_by,p_old_FORMULA_rec.created_by)
378     THEN
379         NULL;
380     END IF;
381 
382     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.creation_date,p_old_FORMULA_rec.creation_date)
383     THEN
384         NULL;
385     END IF;
386 
387     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.description,p_old_FORMULA_rec.description)
388     THEN
389         NULL;
390     END IF;
391 
392     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.end_date_active,p_old_FORMULA_rec.end_date_active)
393     THEN
394         NULL;
395     END IF;
396 
397     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.formula,p_old_FORMULA_rec.formula)
398     THEN
399         NULL;
400     END IF;
401 
402     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.last_updated_by,p_old_FORMULA_rec.last_updated_by)
403     THEN
404         NULL;
405     END IF;
406 
407     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.last_update_date,p_old_FORMULA_rec.last_update_date)
408     THEN
409         NULL;
410     END IF;
411 
412     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.last_update_login,p_old_FORMULA_rec.last_update_login)
413     THEN
414         NULL;
415     END IF;
416 
417     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.name,p_old_FORMULA_rec.name)
418     THEN
419         NULL;
420     END IF;
421 
422     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.price_formula_id,p_old_FORMULA_rec.price_formula_id)
423     THEN
424         NULL;
425     END IF;
426 
427     IF NOT QP_GLOBALS.Equal(p_FORMULA_rec.start_date_active,p_old_FORMULA_rec.start_date_active)
428     THEN
429         NULL;
430     END IF;
431 
432 oe_debug_pub.add('Leaving proc Apply_attribute_Changes in Formula Util Pkg');
433 END Apply_Attribute_Changes;
434 
435 --  Function Complete_Record
436 
437 FUNCTION Complete_Record
438 (   p_FORMULA_rec                   IN  QP_Price_Formula_PUB.Formula_Rec_Type
439 ,   p_old_FORMULA_rec               IN  QP_Price_Formula_PUB.Formula_Rec_Type
440 ) RETURN QP_Price_Formula_PUB.Formula_Rec_Type
441 IS
442 l_FORMULA_rec                 QP_Price_Formula_PUB.Formula_Rec_Type := p_FORMULA_rec;
443 BEGIN
444 
445 oe_debug_pub.add('Entering proc Complete_Record in Formula Util Pkg');
446     IF l_FORMULA_rec.attribute1 = FND_API.G_MISS_CHAR THEN
447         l_FORMULA_rec.attribute1 := p_old_FORMULA_rec.attribute1;
448     END IF;
449 
450     IF l_FORMULA_rec.attribute10 = FND_API.G_MISS_CHAR THEN
451         l_FORMULA_rec.attribute10 := p_old_FORMULA_rec.attribute10;
452     END IF;
453 
454     IF l_FORMULA_rec.attribute11 = FND_API.G_MISS_CHAR THEN
455         l_FORMULA_rec.attribute11 := p_old_FORMULA_rec.attribute11;
456     END IF;
457 
458     IF l_FORMULA_rec.attribute12 = FND_API.G_MISS_CHAR THEN
459         l_FORMULA_rec.attribute12 := p_old_FORMULA_rec.attribute12;
460     END IF;
461 
462     IF l_FORMULA_rec.attribute13 = FND_API.G_MISS_CHAR THEN
463         l_FORMULA_rec.attribute13 := p_old_FORMULA_rec.attribute13;
464     END IF;
465 
466     IF l_FORMULA_rec.attribute14 = FND_API.G_MISS_CHAR THEN
467         l_FORMULA_rec.attribute14 := p_old_FORMULA_rec.attribute14;
468     END IF;
469 
470     IF l_FORMULA_rec.attribute15 = FND_API.G_MISS_CHAR THEN
471         l_FORMULA_rec.attribute15 := p_old_FORMULA_rec.attribute15;
472     END IF;
473 
474     IF l_FORMULA_rec.attribute2 = FND_API.G_MISS_CHAR THEN
475         l_FORMULA_rec.attribute2 := p_old_FORMULA_rec.attribute2;
476     END IF;
477 
478     IF l_FORMULA_rec.attribute3 = FND_API.G_MISS_CHAR THEN
479         l_FORMULA_rec.attribute3 := p_old_FORMULA_rec.attribute3;
480     END IF;
481 
482     IF l_FORMULA_rec.attribute4 = FND_API.G_MISS_CHAR THEN
483         l_FORMULA_rec.attribute4 := p_old_FORMULA_rec.attribute4;
484     END IF;
485 
486     IF l_FORMULA_rec.attribute5 = FND_API.G_MISS_CHAR THEN
487         l_FORMULA_rec.attribute5 := p_old_FORMULA_rec.attribute5;
488     END IF;
489 
490     IF l_FORMULA_rec.attribute6 = FND_API.G_MISS_CHAR THEN
491         l_FORMULA_rec.attribute6 := p_old_FORMULA_rec.attribute6;
492     END IF;
493 
494     IF l_FORMULA_rec.attribute7 = FND_API.G_MISS_CHAR THEN
495         l_FORMULA_rec.attribute7 := p_old_FORMULA_rec.attribute7;
496     END IF;
497 
498     IF l_FORMULA_rec.attribute8 = FND_API.G_MISS_CHAR THEN
499         l_FORMULA_rec.attribute8 := p_old_FORMULA_rec.attribute8;
500     END IF;
501 
502     IF l_FORMULA_rec.attribute9 = FND_API.G_MISS_CHAR THEN
503         l_FORMULA_rec.attribute9 := p_old_FORMULA_rec.attribute9;
504     END IF;
505 
506     IF l_FORMULA_rec.context = FND_API.G_MISS_CHAR THEN
507         l_FORMULA_rec.context := p_old_FORMULA_rec.context;
508     END IF;
509 
510     IF l_FORMULA_rec.created_by = FND_API.G_MISS_NUM THEN
511         l_FORMULA_rec.created_by := p_old_FORMULA_rec.created_by;
512     END IF;
513 
514     IF l_FORMULA_rec.creation_date = FND_API.G_MISS_DATE THEN
515         l_FORMULA_rec.creation_date := p_old_FORMULA_rec.creation_date;
516     END IF;
517 
518     IF l_FORMULA_rec.description = FND_API.G_MISS_CHAR THEN
519         l_FORMULA_rec.description := p_old_FORMULA_rec.description;
520     END IF;
521 
522     IF l_FORMULA_rec.end_date_active = FND_API.G_MISS_DATE THEN
523         l_FORMULA_rec.end_date_active := p_old_FORMULA_rec.end_date_active;
524     END IF;
525 
526     IF l_FORMULA_rec.formula = FND_API.G_MISS_CHAR THEN
527         l_FORMULA_rec.formula := p_old_FORMULA_rec.formula;
528     END IF;
529 
530     IF l_FORMULA_rec.last_updated_by = FND_API.G_MISS_NUM THEN
531         l_FORMULA_rec.last_updated_by := p_old_FORMULA_rec.last_updated_by;
532     END IF;
533 
534     IF l_FORMULA_rec.last_update_date = FND_API.G_MISS_DATE THEN
535         l_FORMULA_rec.last_update_date := p_old_FORMULA_rec.last_update_date;
536     END IF;
537 
538     IF l_FORMULA_rec.last_update_login = FND_API.G_MISS_NUM THEN
539         l_FORMULA_rec.last_update_login := p_old_FORMULA_rec.last_update_login;
540     END IF;
541 
542     IF l_FORMULA_rec.name = FND_API.G_MISS_CHAR THEN
543         l_FORMULA_rec.name := p_old_FORMULA_rec.name;
544     END IF;
545 
546     IF l_FORMULA_rec.price_formula_id = FND_API.G_MISS_NUM THEN
547         l_FORMULA_rec.price_formula_id := p_old_FORMULA_rec.price_formula_id;
548     END IF;
549 
550     IF l_FORMULA_rec.start_date_active = FND_API.G_MISS_DATE THEN
551         l_FORMULA_rec.start_date_active := p_old_FORMULA_rec.start_date_active;
552     END IF;
553 
554 oe_debug_pub.add('Leaving proc Complete_Record in Formula Util Pkg');
555     RETURN l_FORMULA_rec;
556 
557 END Complete_Record;
558 
559 --  Function Convert_Miss_To_Null
560 
561 FUNCTION Convert_Miss_To_Null
562 (   p_FORMULA_rec                   IN  QP_Price_Formula_PUB.Formula_Rec_Type
563 ) RETURN QP_Price_Formula_PUB.Formula_Rec_Type
564 IS
565 l_FORMULA_rec                 QP_Price_Formula_PUB.Formula_Rec_Type := p_FORMULA_rec;
566 BEGIN
567 
568 oe_debug_pub.add('Entering proc Convert_Miss_To_Null in Formula Util Pkg');
569     IF l_FORMULA_rec.attribute1 = FND_API.G_MISS_CHAR THEN
570         l_FORMULA_rec.attribute1 := NULL;
571     END IF;
572 
573     IF l_FORMULA_rec.attribute10 = FND_API.G_MISS_CHAR THEN
574         l_FORMULA_rec.attribute10 := NULL;
575     END IF;
576 
577     IF l_FORMULA_rec.attribute11 = FND_API.G_MISS_CHAR THEN
578         l_FORMULA_rec.attribute11 := NULL;
579     END IF;
580 
581     IF l_FORMULA_rec.attribute12 = FND_API.G_MISS_CHAR THEN
582         l_FORMULA_rec.attribute12 := NULL;
583     END IF;
584 
585     IF l_FORMULA_rec.attribute13 = FND_API.G_MISS_CHAR THEN
586         l_FORMULA_rec.attribute13 := NULL;
587     END IF;
588 
589     IF l_FORMULA_rec.attribute14 = FND_API.G_MISS_CHAR THEN
590         l_FORMULA_rec.attribute14 := NULL;
591     END IF;
592 
593     IF l_FORMULA_rec.attribute15 = FND_API.G_MISS_CHAR THEN
594         l_FORMULA_rec.attribute15 := NULL;
595     END IF;
596 
597     IF l_FORMULA_rec.attribute2 = FND_API.G_MISS_CHAR THEN
598         l_FORMULA_rec.attribute2 := NULL;
599     END IF;
600 
601     IF l_FORMULA_rec.attribute3 = FND_API.G_MISS_CHAR THEN
602         l_FORMULA_rec.attribute3 := NULL;
603     END IF;
604 
605     IF l_FORMULA_rec.attribute4 = FND_API.G_MISS_CHAR THEN
606         l_FORMULA_rec.attribute4 := NULL;
607     END IF;
608 
609     IF l_FORMULA_rec.attribute5 = FND_API.G_MISS_CHAR THEN
610         l_FORMULA_rec.attribute5 := NULL;
611     END IF;
612 
613     IF l_FORMULA_rec.attribute6 = FND_API.G_MISS_CHAR THEN
614         l_FORMULA_rec.attribute6 := NULL;
615     END IF;
616 
617     IF l_FORMULA_rec.attribute7 = FND_API.G_MISS_CHAR THEN
618         l_FORMULA_rec.attribute7 := NULL;
619     END IF;
620 
621     IF l_FORMULA_rec.attribute8 = FND_API.G_MISS_CHAR THEN
622         l_FORMULA_rec.attribute8 := NULL;
623     END IF;
624 
625     IF l_FORMULA_rec.attribute9 = FND_API.G_MISS_CHAR THEN
626         l_FORMULA_rec.attribute9 := NULL;
627     END IF;
628 
629     IF l_FORMULA_rec.context = FND_API.G_MISS_CHAR THEN
630         l_FORMULA_rec.context := NULL;
631     END IF;
632 
633     IF l_FORMULA_rec.created_by = FND_API.G_MISS_NUM THEN
634         l_FORMULA_rec.created_by := NULL;
635     END IF;
636 
637     IF l_FORMULA_rec.creation_date = FND_API.G_MISS_DATE THEN
638         l_FORMULA_rec.creation_date := NULL;
639     END IF;
640 
641     IF l_FORMULA_rec.description = FND_API.G_MISS_CHAR THEN
642         l_FORMULA_rec.description := NULL;
643     END IF;
644 
645     IF l_FORMULA_rec.end_date_active = FND_API.G_MISS_DATE THEN
646         l_FORMULA_rec.end_date_active := NULL;
647     END IF;
648 
649     IF l_FORMULA_rec.formula = FND_API.G_MISS_CHAR THEN
650         l_FORMULA_rec.formula := NULL;
651     END IF;
652 
653     IF l_FORMULA_rec.last_updated_by = FND_API.G_MISS_NUM THEN
654         l_FORMULA_rec.last_updated_by := NULL;
655     END IF;
656 
657     IF l_FORMULA_rec.last_update_date = FND_API.G_MISS_DATE THEN
658         l_FORMULA_rec.last_update_date := NULL;
659     END IF;
660 
661     IF l_FORMULA_rec.last_update_login = FND_API.G_MISS_NUM THEN
662         l_FORMULA_rec.last_update_login := NULL;
663     END IF;
664 
665     IF l_FORMULA_rec.name = FND_API.G_MISS_CHAR THEN
666         l_FORMULA_rec.name := NULL;
667     END IF;
668 
669     IF l_FORMULA_rec.price_formula_id = FND_API.G_MISS_NUM THEN
670         l_FORMULA_rec.price_formula_id := NULL;
671     END IF;
672 
673     IF l_FORMULA_rec.start_date_active = FND_API.G_MISS_DATE THEN
674         l_FORMULA_rec.start_date_active := NULL;
675     END IF;
676 
677 oe_debug_pub.add('Leaving proc Convert_Miss_To_Null in Formula Util Pkg');
678     RETURN l_FORMULA_rec;
679 
680 END Convert_Miss_To_Null;
681 
682 --  Procedure Update_Row
683 
684 PROCEDURE Update_Row
685 (   p_FORMULA_rec                   IN  QP_Price_Formula_PUB.Formula_Rec_Type
686 )
687 IS
688 BEGIN
689 
690 oe_debug_pub.add('Entering proc Update_Row in Formula Util Pkg');
691     UPDATE  QP_PRICE_FORMULAS_B
692     SET     ATTRIBUTE1                     = p_FORMULA_rec.attribute1
693     ,       ATTRIBUTE10                    = p_FORMULA_rec.attribute10
694     ,       ATTRIBUTE11                    = p_FORMULA_rec.attribute11
695     ,       ATTRIBUTE12                    = p_FORMULA_rec.attribute12
696     ,       ATTRIBUTE13                    = p_FORMULA_rec.attribute13
697     ,       ATTRIBUTE14                    = p_FORMULA_rec.attribute14
698     ,       ATTRIBUTE15                    = p_FORMULA_rec.attribute15
699     ,       ATTRIBUTE2                     = p_FORMULA_rec.attribute2
700     ,       ATTRIBUTE3                     = p_FORMULA_rec.attribute3
701     ,       ATTRIBUTE4                     = p_FORMULA_rec.attribute4
702     ,       ATTRIBUTE5                     = p_FORMULA_rec.attribute5
703     ,       ATTRIBUTE6                     = p_FORMULA_rec.attribute6
704     ,       ATTRIBUTE7                     = p_FORMULA_rec.attribute7
705     ,       ATTRIBUTE8                     = p_FORMULA_rec.attribute8
706     ,       ATTRIBUTE9                     = p_FORMULA_rec.attribute9
707     ,       CONTEXT                        = p_FORMULA_rec.context
708     ,       CREATED_BY                     = p_FORMULA_rec.created_by
709     ,       CREATION_DATE                  = p_FORMULA_rec.creation_date
710     ,       END_DATE_ACTIVE                = p_FORMULA_rec.end_date_active
711     ,       FORMULA                        = p_FORMULA_rec.formula
712     ,       LAST_UPDATED_BY                = p_FORMULA_rec.last_updated_by
713     ,       LAST_UPDATE_DATE               = p_FORMULA_rec.last_update_date
714     ,       LAST_UPDATE_LOGIN              = p_FORMULA_rec.last_update_login
715     ,       PRICE_FORMULA_ID               = p_FORMULA_rec.price_formula_id
716     ,       START_DATE_ACTIVE              = p_FORMULA_rec.start_date_active
717     WHERE   PRICE_FORMULA_ID = p_FORMULA_rec.price_formula_id
718     ;
719 
720     UPDATE  QP_PRICE_FORMULAS_TL
721     SET     DESCRIPTION                    = p_FORMULA_rec.description
722     ,       SOURCE_LANG                    = userenv('LANG')
723     ,       LAST_UPDATED_BY                = p_FORMULA_rec.last_updated_by
724     ,       LAST_UPDATE_DATE               = p_FORMULA_rec.last_update_date
725     ,       LAST_UPDATE_LOGIN              = p_FORMULA_rec.last_update_login
726     ,       NAME                           = p_FORMULA_rec.name
727     WHERE   PRICE_FORMULA_ID = p_FORMULA_rec.price_formula_id
728     AND     LANGUAGE = userenv('LANG');
729 
730 oe_debug_pub.add('Leaving proc Update_Row in Formula Util Pkg');
731 EXCEPTION
732 
733     WHEN OTHERS THEN
734 
735         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
736         THEN
737             OE_MSG_PUB.Add_Exc_Msg
738             (   G_PKG_NAME
739             ,   'Update_Row'
740             );
741         END IF;
742 
743         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
744 
745 END Update_Row;
746 
747 --  Procedure Insert_Row
748 
749 PROCEDURE Insert_Row
750 (   p_FORMULA_rec                   IN  QP_Price_Formula_PUB.Formula_Rec_Type
751 )
752 IS
753 BEGIN
754 
755 oe_debug_pub.add('Entering proc Insert_Row in Formula Util Pkg');
756     INSERT  INTO QP_PRICE_FORMULAS_B
757     (       ATTRIBUTE1
758     ,       ATTRIBUTE10
759     ,       ATTRIBUTE11
760     ,       ATTRIBUTE12
761     ,       ATTRIBUTE13
762     ,       ATTRIBUTE14
763     ,       ATTRIBUTE15
764     ,       ATTRIBUTE2
765     ,       ATTRIBUTE3
766     ,       ATTRIBUTE4
767     ,       ATTRIBUTE5
768     ,       ATTRIBUTE6
769     ,       ATTRIBUTE7
770     ,       ATTRIBUTE8
771     ,       ATTRIBUTE9
772     ,       CONTEXT
773     ,       CREATED_BY
774     ,       CREATION_DATE
775     ,       END_DATE_ACTIVE
776     ,       FORMULA
777     ,       LAST_UPDATED_BY
778     ,       LAST_UPDATE_DATE
779     ,       LAST_UPDATE_LOGIN
780     ,       PRICE_FORMULA_ID
781     ,       START_DATE_ACTIVE
782     )
783     VALUES
784     (       p_FORMULA_rec.attribute1
785     ,       p_FORMULA_rec.attribute10
786     ,       p_FORMULA_rec.attribute11
787     ,       p_FORMULA_rec.attribute12
788     ,       p_FORMULA_rec.attribute13
789     ,       p_FORMULA_rec.attribute14
790     ,       p_FORMULA_rec.attribute15
791     ,       p_FORMULA_rec.attribute2
792     ,       p_FORMULA_rec.attribute3
793     ,       p_FORMULA_rec.attribute4
794     ,       p_FORMULA_rec.attribute5
795     ,       p_FORMULA_rec.attribute6
796     ,       p_FORMULA_rec.attribute7
797     ,       p_FORMULA_rec.attribute8
798     ,       p_FORMULA_rec.attribute9
799     ,       p_FORMULA_rec.context
800     ,       p_FORMULA_rec.created_by
801     ,       p_FORMULA_rec.creation_date
802     ,       p_FORMULA_rec.end_date_active
803     ,       p_FORMULA_rec.formula
804     ,       p_FORMULA_rec.last_updated_by
805     ,       p_FORMULA_rec.last_update_date
806     ,       p_FORMULA_rec.last_update_login
807     ,       p_FORMULA_rec.price_formula_id
808     ,       p_FORMULA_rec.start_date_active
809     );
810 
811     INSERT  INTO QP_PRICE_FORMULAS_TL
812     (       CREATED_BY
813     ,       CREATION_DATE
814     ,       DESCRIPTION
815     ,       LANGUAGE
816     ,       LAST_UPDATED_BY
817     ,       LAST_UPDATE_DATE
818     ,       LAST_UPDATE_LOGIN
819     , 	  NAME
820     ,	  PRICE_FORMULA_ID
821     ,       SOURCE_LANG
822     )
823     SELECT  p_FORMULA_rec.created_by
824     ,       p_FORMULA_rec.creation_date
825     ,       p_FORMULA_rec.description
826     ,       L.LANGUAGE_CODE
827     ,       p_FORMULA_rec.last_updated_by
828     ,       p_FORMULA_rec.last_update_date
829     ,       p_FORMULA_rec.last_update_login
830     ,       p_FORMULA_rec.name
831     ,       p_FORMULA_rec.price_formula_id
832     ,       userenv('LANG')
833     FROM    FND_LANGUAGES L
834     WHERE   L.INSTALLED_FLAG IN ('I', 'B')
835     AND NOT EXISTS (SELECT NULL
836 			     FROM   QP_PRICE_FORMULAS_TL T
837 				WHERE  T.PRICE_FORMULA_ID = p_FORMULA_rec.price_formula_id
838 				AND    T.LANGUAGE         = L.LANGUAGE_CODE);
839 
840 oe_debug_pub.add('Leaving proc Insert_Row in Formula Util Pkg');
841 EXCEPTION
842 
843     WHEN OTHERS THEN
844 
845         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
846         THEN
847             OE_MSG_PUB.Add_Exc_Msg
848             (   G_PKG_NAME
849             ,   'Insert_Row'
850             );
851         END IF;
852 
853         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
854 
855 END Insert_Row;
856 
857 --  Procedure Delete_Row
858 
859 PROCEDURE Delete_Row
860 (   p_price_formula_id              IN  NUMBER
861 )
862 IS
863 BEGIN
864 
865 oe_debug_pub.add('Entering proc Delete_Row in Formula Util Pkg');
866     DELETE  FROM QP_PRICE_FORMULAS_TL
867     WHERE   PRICE_FORMULA_ID = p_price_formula_id;
868 
869     DELETE  FROM QP_PRICE_FORMULAS_B
870     WHERE   PRICE_FORMULA_ID = p_price_formula_id;
871 oe_debug_pub.add('Leaving proc Delete_Row in Formula Util Pkg');
872 
873 EXCEPTION
874 
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             ,   'Delete_Row'
882             );
883         END IF;
884 
885         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
886 
887 END Delete_Row;
888 
889 --  Function Query_Row
890 
891 FUNCTION Query_Row
892 (   p_price_formula_id              IN  NUMBER
893 ) RETURN QP_Price_Formula_PUB.Formula_Rec_Type
894 IS
895 l_FORMULA_rec                 QP_Price_Formula_PUB.Formula_Rec_Type;
896 BEGIN
897 
898 oe_debug_pub.add('Entering proc Query_Row in Formula Util Pkg');
899     SELECT  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     ,       FORMULA
919     ,       LAST_UPDATED_BY
920     ,       LAST_UPDATE_DATE
921     ,       LAST_UPDATE_LOGIN
922     ,       PRICE_FORMULA_ID
923     ,       START_DATE_ACTIVE
924     INTO    l_FORMULA_rec.attribute1
925     ,       l_FORMULA_rec.attribute10
926     ,       l_FORMULA_rec.attribute11
927     ,       l_FORMULA_rec.attribute12
928     ,       l_FORMULA_rec.attribute13
929     ,       l_FORMULA_rec.attribute14
930     ,       l_FORMULA_rec.attribute15
931     ,       l_FORMULA_rec.attribute2
932     ,       l_FORMULA_rec.attribute3
933     ,       l_FORMULA_rec.attribute4
934     ,       l_FORMULA_rec.attribute5
935     ,       l_FORMULA_rec.attribute6
936     ,       l_FORMULA_rec.attribute7
937     ,       l_FORMULA_rec.attribute8
938     ,       l_FORMULA_rec.attribute9
939     ,       l_FORMULA_rec.context
940     ,       l_FORMULA_rec.created_by
941     ,       l_FORMULA_rec.creation_date
942     ,       l_FORMULA_rec.end_date_active
943     ,       l_FORMULA_rec.formula
944     ,       l_FORMULA_rec.last_updated_by
945     ,       l_FORMULA_rec.last_update_date
946     ,       l_FORMULA_rec.last_update_login
947     ,       l_FORMULA_rec.price_formula_id
948     ,       l_FORMULA_rec.start_date_active
949     FROM    QP_PRICE_FORMULAS_B
950     WHERE   PRICE_FORMULA_ID = p_price_formula_id
951     ;
952 
953     SELECT  DESCRIPTION
954     ,       NAME
955     INTO    l_FORMULA_rec.description
956     ,       l_FORMULA_rec.name
957     FROM    QP_PRICE_FORMULAS_TL
958     WHERE   PRICE_FORMULA_ID = p_price_formula_id
959     AND     LANGUAGE = userenv('LANG');
960 
961 oe_debug_pub.add('Leaving proc Query_Row in Formula Util Pkg');
962     RETURN l_FORMULA_rec;
963 
964 EXCEPTION
965 
966     WHEN OTHERS THEN
967 
968         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
969         THEN
970             OE_MSG_PUB.Add_Exc_Msg
971             (   G_PKG_NAME
972             ,   'Query_Row'
973             );
974         END IF;
975 
976         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
977 
978 END Query_Row;
979 
980 --  Procedure       lock_Row
981 --
982 
983 PROCEDURE Lock_Row
984 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
985 ,   p_FORMULA_rec                   IN  QP_Price_Formula_PUB.Formula_Rec_Type
986 ,   x_FORMULA_rec                   OUT NOCOPY /* file.sql.39 change */ QP_Price_Formula_PUB.Formula_Rec_Type
987 )
988 IS
989 l_FORMULA_rec                 QP_Price_Formula_PUB.Formula_Rec_Type;
990 BEGIN
991 
992 oe_debug_pub.add('Entering proc Lock_Row in Formula Util Pkg');
993     SELECT  ATTRIBUTE1
994     ,       ATTRIBUTE10
995     ,       ATTRIBUTE11
996     ,       ATTRIBUTE12
997     ,       ATTRIBUTE13
998     ,       ATTRIBUTE14
999     ,       ATTRIBUTE15
1000     ,       ATTRIBUTE2
1001     ,       ATTRIBUTE3
1002     ,       ATTRIBUTE4
1003     ,       ATTRIBUTE5
1004     ,       ATTRIBUTE6
1005     ,       ATTRIBUTE7
1006     ,       ATTRIBUTE8
1007     ,       ATTRIBUTE9
1008     ,       CONTEXT
1009     ,       CREATED_BY
1010     ,       CREATION_DATE
1011     ,       END_DATE_ACTIVE
1012     ,       FORMULA
1013     ,       LAST_UPDATED_BY
1014     ,       LAST_UPDATE_DATE
1015     ,       LAST_UPDATE_LOGIN
1016     ,       PRICE_FORMULA_ID
1017     ,       START_DATE_ACTIVE
1018     INTO    l_FORMULA_rec.attribute1
1019     ,       l_FORMULA_rec.attribute10
1020     ,       l_FORMULA_rec.attribute11
1021     ,       l_FORMULA_rec.attribute12
1022     ,       l_FORMULA_rec.attribute13
1023     ,       l_FORMULA_rec.attribute14
1024     ,       l_FORMULA_rec.attribute15
1025     ,       l_FORMULA_rec.attribute2
1026     ,       l_FORMULA_rec.attribute3
1027     ,       l_FORMULA_rec.attribute4
1028     ,       l_FORMULA_rec.attribute5
1029     ,       l_FORMULA_rec.attribute6
1030     ,       l_FORMULA_rec.attribute7
1031     ,       l_FORMULA_rec.attribute8
1032     ,       l_FORMULA_rec.attribute9
1033     ,       l_FORMULA_rec.context
1034     ,       l_FORMULA_rec.created_by
1035     ,       l_FORMULA_rec.creation_date
1036     ,       l_FORMULA_rec.end_date_active
1037     ,       l_FORMULA_rec.formula
1038     ,       l_FORMULA_rec.last_updated_by
1039     ,       l_FORMULA_rec.last_update_date
1040     ,       l_FORMULA_rec.last_update_login
1041     ,       l_FORMULA_rec.price_formula_id
1042     ,       l_FORMULA_rec.start_date_active
1043     FROM    QP_PRICE_FORMULAS_B
1044     WHERE   PRICE_FORMULA_ID = p_FORMULA_rec.price_formula_id
1045         FOR UPDATE NOWAIT;
1046 
1047     --  Row locked. Compare IN attributes to DB attributes.
1048 
1049     IF  QP_GLOBALS.Equal(p_FORMULA_rec.attribute1,
1050                          l_FORMULA_rec.attribute1)
1051     AND QP_GLOBALS.Equal(p_FORMULA_rec.attribute10,
1052                          l_FORMULA_rec.attribute10)
1053     AND QP_GLOBALS.Equal(p_FORMULA_rec.attribute11,
1054                          l_FORMULA_rec.attribute11)
1055     AND QP_GLOBALS.Equal(p_FORMULA_rec.attribute12,
1056                          l_FORMULA_rec.attribute12)
1057     AND QP_GLOBALS.Equal(p_FORMULA_rec.attribute13,
1058                          l_FORMULA_rec.attribute13)
1059     AND QP_GLOBALS.Equal(p_FORMULA_rec.attribute14,
1060                          l_FORMULA_rec.attribute14)
1061     AND QP_GLOBALS.Equal(p_FORMULA_rec.attribute15,
1062                          l_FORMULA_rec.attribute15)
1063     AND QP_GLOBALS.Equal(p_FORMULA_rec.attribute2,
1064                          l_FORMULA_rec.attribute2)
1065     AND QP_GLOBALS.Equal(p_FORMULA_rec.attribute3,
1066                          l_FORMULA_rec.attribute3)
1067     AND QP_GLOBALS.Equal(p_FORMULA_rec.attribute4,
1068                          l_FORMULA_rec.attribute4)
1069     AND QP_GLOBALS.Equal(p_FORMULA_rec.attribute5,
1070                          l_FORMULA_rec.attribute5)
1071     AND QP_GLOBALS.Equal(p_FORMULA_rec.attribute6,
1072                          l_FORMULA_rec.attribute6)
1073     AND QP_GLOBALS.Equal(p_FORMULA_rec.attribute7,
1074                          l_FORMULA_rec.attribute7)
1075     AND QP_GLOBALS.Equal(p_FORMULA_rec.attribute8,
1076                          l_FORMULA_rec.attribute8)
1077     AND QP_GLOBALS.Equal(p_FORMULA_rec.attribute9,
1078                          l_FORMULA_rec.attribute9)
1079     AND QP_GLOBALS.Equal(p_FORMULA_rec.context,
1080                          l_FORMULA_rec.context)
1081     AND QP_GLOBALS.Equal(p_FORMULA_rec.created_by,
1082                          l_FORMULA_rec.created_by)
1083     AND QP_GLOBALS.Equal(p_FORMULA_rec.creation_date,
1084                          l_FORMULA_rec.creation_date)
1085     AND QP_GLOBALS.Equal(p_FORMULA_rec.end_date_active,
1086                          l_FORMULA_rec.end_date_active)
1087     AND QP_GLOBALS.Equal(p_FORMULA_rec.formula,
1088                          l_FORMULA_rec.formula)
1089     AND QP_GLOBALS.Equal(p_FORMULA_rec.last_updated_by,
1090                          l_FORMULA_rec.last_updated_by)
1091     AND QP_GLOBALS.Equal(p_FORMULA_rec.last_update_date,
1092                          l_FORMULA_rec.last_update_date)
1093     AND QP_GLOBALS.Equal(p_FORMULA_rec.last_update_login,
1094                          l_FORMULA_rec.last_update_login)
1095     AND QP_GLOBALS.Equal(p_FORMULA_rec.price_formula_id,
1096                          l_FORMULA_rec.price_formula_id)
1097     AND QP_GLOBALS.Equal(p_FORMULA_rec.start_date_active,
1098                          l_FORMULA_rec.start_date_active)
1099     THEN
1100 
1101         --  Row has not changed. Set out parameter.
1102 
1103         x_FORMULA_rec                  := l_FORMULA_rec;
1104 
1105         --  Set return status
1106 
1107         x_return_status                := FND_API.G_RET_STS_SUCCESS;
1108         x_FORMULA_rec.return_status    := FND_API.G_RET_STS_SUCCESS;
1109 
1110     ELSE
1111 
1112         --  Row has changed by another user.
1113 
1114         x_return_status                := FND_API.G_RET_STS_ERROR;
1115         x_FORMULA_rec.return_status    := FND_API.G_RET_STS_ERROR;
1116 
1117         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1118         THEN
1119 
1120             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_CHANGED');
1121             OE_MSG_PUB.Add;
1122 
1123         END IF;
1124 
1125     END IF;
1126 
1127 oe_debug_pub.add('Leaving proc Lock_Row in Formula Util Pkg');
1128 EXCEPTION
1129 
1130     WHEN NO_DATA_FOUND THEN
1131 
1132         x_return_status                := FND_API.G_RET_STS_ERROR;
1133         x_FORMULA_rec.return_status    := FND_API.G_RET_STS_ERROR;
1134 
1135         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1136         THEN
1137 
1138             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_DELETED');
1139             OE_MSG_PUB.Add;
1140 
1141         END IF;
1142     WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
1143 
1144         x_return_status                := FND_API.G_RET_STS_ERROR;
1145         x_FORMULA_rec.return_status    := FND_API.G_RET_STS_ERROR;
1146 
1147         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1148         THEN
1149 
1150             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_ALREADY_LOCKED');
1151             OE_MSG_PUB.Add;
1152 
1153         END IF;
1154     WHEN OTHERS THEN
1155 
1156         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
1157         x_FORMULA_rec.return_status    := FND_API.G_RET_STS_UNEXP_ERROR;
1158 
1159         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1160         THEN
1161             OE_MSG_PUB.Add_Exc_Msg
1162             (   G_PKG_NAME
1163             ,   'Lock_Row'
1164             );
1165         END IF;
1166 
1167 END Lock_Row;
1168 
1169 --  Function Get_Values
1170 
1171 FUNCTION Get_Values
1172 (   p_FORMULA_rec                   IN  QP_Price_Formula_PUB.Formula_Rec_Type
1173 ,   p_old_FORMULA_rec               IN  QP_Price_Formula_PUB.Formula_Rec_Type :=
1174                                         QP_Price_Formula_PUB.G_MISS_FORMULA_REC
1175 ) RETURN QP_Price_Formula_PUB.Formula_Val_Rec_Type
1176 IS
1177 l_FORMULA_val_rec             QP_Price_Formula_PUB.Formula_Val_Rec_Type;
1178 BEGIN
1179 
1180 oe_debug_pub.add('Entering proc Get_Values in Formula Util Pkg');
1181     IF p_FORMULA_rec.price_formula_id IS NOT NULL AND
1182         p_FORMULA_rec.price_formula_id <> FND_API.G_MISS_NUM AND
1183         NOT QP_GLOBALS.Equal(p_FORMULA_rec.price_formula_id,
1184         p_old_FORMULA_rec.price_formula_id)
1185     THEN
1186         l_FORMULA_val_rec.price_formula := QP_Id_To_Value.Price_Formula
1187         (   p_price_formula_id            => p_FORMULA_rec.price_formula_id
1188         );
1189     END IF;
1190 
1191 oe_debug_pub.add('Leaving proc Get_Values in Formula Util Pkg');
1192     RETURN l_FORMULA_val_rec;
1193 
1194 END Get_Values;
1195 
1196 --  Function Get_Ids
1197 
1198 FUNCTION Get_Ids
1199 (   p_FORMULA_rec                   IN  QP_Price_Formula_PUB.Formula_Rec_Type
1200 ,   p_FORMULA_val_rec               IN  QP_Price_Formula_PUB.Formula_Val_Rec_Type
1201 ) RETURN QP_Price_Formula_PUB.Formula_Rec_Type
1202 IS
1203 l_FORMULA_rec                 QP_Price_Formula_PUB.Formula_Rec_Type;
1204 BEGIN
1205 
1206 oe_debug_pub.add('Entering proc Get_Ids in Formula Util Pkg');
1207     --  initialize  return_status.
1208 
1209     l_FORMULA_rec.return_status := FND_API.G_RET_STS_SUCCESS;
1210 
1211     --  initialize l_FORMULA_rec.
1212 
1213     l_FORMULA_rec := p_FORMULA_rec;
1214 
1215     IF  p_FORMULA_val_rec.price_formula <> FND_API.G_MISS_CHAR
1216     THEN
1217 
1218         IF p_FORMULA_rec.price_formula_id <> FND_API.G_MISS_NUM THEN
1219 
1220             l_FORMULA_rec.price_formula_id := p_FORMULA_rec.price_formula_id;
1221 
1222             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1223             THEN
1224 
1225                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1226                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','price_formula');
1227                 OE_MSG_PUB.Add;
1228 
1229             END IF;
1230 
1231         ELSE
1232 
1233             l_FORMULA_rec.price_formula_id := QP_Value_To_Id.price_formula
1234             (   p_price_formula               => p_FORMULA_val_rec.price_formula
1235             );
1236 
1237             IF l_FORMULA_rec.price_formula_id = FND_API.G_MISS_NUM THEN
1238                 l_FORMULA_rec.return_status := FND_API.G_RET_STS_ERROR;
1239             END IF;
1240 
1241         END IF;
1242 
1243     END IF;
1244 
1245 
1246 oe_debug_pub.add('Leaving proc Get_Ids in Formula Util Pkg');
1247     RETURN l_FORMULA_rec;
1248 
1249 END Get_Ids;
1250 
1251 END QP_Formula_Util;