DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_PRICE_BREAK_UTIL

Source


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