DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_AGREEMENT_UTIL

Source


1 PACKAGE BODY OE_Agreement_Util AS
2 /* $Header: OEXUAGRB.pls 120.2 2005/12/14 16:17:38 shulin noship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'OE_Agreement_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_Agreement_rec                 IN            OE_Pricing_Cont_PUB.Agreement_Rec_Type
13 ,   p_old_Agreement_rec             IN            OE_Pricing_Cont_PUB.Agreement_Rec_Type :=
14                                                   OE_Pricing_Cont_PUB.G_MISS_AGREEMENT_REC
15 ,   x_Agreement_rec                 OUT NOCOPY /* file.sql.39 change */ OE_Pricing_Cont_PUB.Agreement_Rec_Type
16 )
17 IS
18 BEGIN
19 
20     oe_debug_pub.add('Entering OE_Agreement_Util.Clear_Dependent_Attr');
21 
22     --  Load out record
23 
24     x_Agreement_rec := p_Agreement_rec;
25 
26     --  If attr_id is missing compare old and new records and for
27     --  every changed attribute clear its dependent fields.
28 
29     IF p_attr_id = FND_API.G_MISS_NUM THEN
30 
31         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.accounting_rule_id,p_old_Agreement_rec.accounting_rule_id)
32         THEN
33             NULL;
34         END IF;
35 
36         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.agreement_contact_id,p_old_Agreement_rec.agreement_contact_id)
37         THEN
38             NULL;
39         END IF;
40 
41         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.agreement_id,p_old_Agreement_rec.agreement_id)
42         THEN
43             NULL;
44         END IF;
45 
46         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.agreement_num,p_old_Agreement_rec.agreement_num)
47         THEN
48             NULL;
49         END IF;
50 
51         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.agreement_type_code,p_old_Agreement_rec.agreement_type_code)
52         THEN
53             NULL;
54         END IF;
55 
56         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute1,p_old_Agreement_rec.attribute1)
57         THEN
58             NULL;
59         END IF;
60 
61         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute10,p_old_Agreement_rec.attribute10)
62         THEN
63             NULL;
64         END IF;
65 
66         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute11,p_old_Agreement_rec.attribute11)
67         THEN
68             NULL;
69         END IF;
70 
71         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute12,p_old_Agreement_rec.attribute12)
72         THEN
73             NULL;
74         END IF;
75 
76         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute13,p_old_Agreement_rec.attribute13)
77         THEN
78             NULL;
79         END IF;
80 
81         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute14,p_old_Agreement_rec.attribute14)
82         THEN
83             NULL;
84         END IF;
85 
86         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute15,p_old_Agreement_rec.attribute15)
87         THEN
88             NULL;
89         END IF;
90 
91         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute2,p_old_Agreement_rec.attribute2)
92         THEN
93             NULL;
94         END IF;
95 
96         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute3,p_old_Agreement_rec.attribute3)
97         THEN
98             NULL;
99         END IF;
100 
101         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute4,p_old_Agreement_rec.attribute4)
102         THEN
103             NULL;
104         END IF;
105 
106         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute5,p_old_Agreement_rec.attribute5)
107         THEN
108             NULL;
109         END IF;
110 
111         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute6,p_old_Agreement_rec.attribute6)
112         THEN
113             NULL;
114         END IF;
115 
116         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute7,p_old_Agreement_rec.attribute7)
117         THEN
118             NULL;
119         END IF;
120 
121         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute8,p_old_Agreement_rec.attribute8)
122         THEN
123             NULL;
124         END IF;
125 
126         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute9,p_old_Agreement_rec.attribute9)
127         THEN
128             NULL;
129         END IF;
130 
131         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.context,p_old_Agreement_rec.context)
132         THEN
133             NULL;
134         END IF;
135 
136         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.created_by,p_old_Agreement_rec.created_by)
137         THEN
138             NULL;
139         END IF;
140 
141         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.creation_date,p_old_Agreement_rec.creation_date)
142         THEN
143             NULL;
144         END IF;
145 
146         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.sold_to_org_id,p_old_Agreement_rec.sold_to_org_id)
147         THEN
148             NULL;
149         END IF;
150 
151         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.end_date_active,p_old_Agreement_rec.end_date_active)
152         THEN
153             NULL;
154         END IF;
155 
156         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.freight_terms_code,p_old_Agreement_rec.freight_terms_code)
157         THEN
158             NULL;
159         END IF;
160 
161         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.invoice_contact_id,p_old_Agreement_rec.invoice_contact_id)
162         THEN
163             NULL;
164         END IF;
165 
166         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.invoice_to_org_id,p_old_Agreement_rec.invoice_to_org_id)
167         THEN
168             NULL;
169         END IF;
170 
171         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.invoicing_rule_id,p_old_Agreement_rec.invoicing_rule_id)
172         THEN
173             NULL;
174         END IF;
175 
176         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.last_updated_by,p_old_Agreement_rec.last_updated_by)
177         THEN
178             NULL;
179         END IF;
180 
181         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.last_update_date,p_old_Agreement_rec.last_update_date)
182         THEN
183             NULL;
184         END IF;
185 
186         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.last_update_login,p_old_Agreement_rec.last_update_login)
187         THEN
188             NULL;
189         END IF;
190 
191         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.name,p_old_Agreement_rec.name)
192         THEN
193             NULL;
194         END IF;
195 
196         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.override_arule_flag,p_old_Agreement_rec.override_arule_flag)
197         THEN
198             NULL;
199         END IF;
200 
201         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.override_irule_flag,p_old_Agreement_rec.override_irule_flag)
202         THEN
203             NULL;
204         END IF;
205 
206         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.price_list_id,p_old_Agreement_rec.price_list_id)
207         THEN
208             NULL;
209         END IF;
210 
211         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.purchase_order_num,p_old_Agreement_rec.purchase_order_num)
212         THEN
213             NULL;
214         END IF;
215 
216         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.revision,p_old_Agreement_rec.revision)
217         THEN
218             NULL;
219         END IF;
220 
221         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.revision_date,p_old_Agreement_rec.revision_date)
222         THEN
223             NULL;
224         END IF;
225 
226         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.revision_reason_code,p_old_Agreement_rec.revision_reason_code)
227         THEN
228             NULL;
229         END IF;
230 
231         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.salesrep_id,p_old_Agreement_rec.salesrep_id)
232         THEN
233             NULL;
234         END IF;
235 
236         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.ship_method_code,p_old_Agreement_rec.ship_method_code)
237         THEN
238             NULL;
239         END IF;
240 
241         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.signature_date,p_old_Agreement_rec.signature_date)
242         THEN
243             NULL;
244         END IF;
245 
246         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.start_date_active,p_old_Agreement_rec.start_date_active)
247         THEN
248             NULL;
249         END IF;
250 
251         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.term_id,p_old_Agreement_rec.term_id)
252         THEN
253             NULL;
254         END IF;
255 
256         --Begin code added by rchellam for OKC
257         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.agreement_source_code,p_old_Agreement_rec.agreement_source_code)
258         THEN
259             NULL;
260         END IF;
261 
262         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.orig_system_agr_id,p_old_Agreement_rec.orig_system_agr_id)
263         THEN
264             NULL;
265         END IF;
266         --End code added by rchellam for OKC
267 
268         -- Added for bug#4029589
269         IF NOT OE_GLOBALS.Equal(p_Agreement_rec.invoice_to_customer_id,p_old_Agreement_rec.invoice_to_customer_id)
270         THEN
271             NULL;
272         END IF;
273 
274     ELSIF p_attr_id = G_ACCOUNTING_RULE THEN
275         NULL;
276     ELSIF p_attr_id = G_AGREEMENT_CONTACT THEN
277         NULL;
278     ELSIF p_attr_id = G_AGREEMENT THEN
279         NULL;
280     ELSIF p_attr_id = G_AGREEMENT_NUM THEN
281         NULL;
285         NULL;
282     ELSIF p_attr_id = G_AGREEMENT_TYPE THEN
283         NULL;
284     ELSIF p_attr_id = G_ATTRIBUTE1 THEN
286     ELSIF p_attr_id = G_ATTRIBUTE10 THEN
287         NULL;
288     ELSIF p_attr_id = G_ATTRIBUTE11 THEN
289         NULL;
290     ELSIF p_attr_id = G_ATTRIBUTE12 THEN
291         NULL;
292     ELSIF p_attr_id = G_ATTRIBUTE13 THEN
293         NULL;
294     ELSIF p_attr_id = G_ATTRIBUTE14 THEN
295         NULL;
296     ELSIF p_attr_id = G_ATTRIBUTE15 THEN
297         NULL;
298     ELSIF p_attr_id = G_ATTRIBUTE2 THEN
299         NULL;
300     ELSIF p_attr_id = G_ATTRIBUTE3 THEN
301         NULL;
302     ELSIF p_attr_id = G_ATTRIBUTE4 THEN
303         NULL;
304     ELSIF p_attr_id = G_ATTRIBUTE5 THEN
305         NULL;
306     ELSIF p_attr_id = G_ATTRIBUTE6 THEN
307         NULL;
308     ELSIF p_attr_id = G_ATTRIBUTE7 THEN
309         NULL;
310     ELSIF p_attr_id = G_ATTRIBUTE8 THEN
311         NULL;
312     ELSIF p_attr_id = G_ATTRIBUTE9 THEN
313         NULL;
314     ELSIF p_attr_id = G_CONTEXT THEN
315         NULL;
316     ELSIF p_attr_id = G_CREATED_BY THEN
317         NULL;
318     ELSIF p_attr_id = G_CREATION_DATE THEN
319         NULL;
320     ELSIF p_attr_id = G_CUSTOMER THEN
321         NULL;
322     ELSIF p_attr_id = G_END_DATE_ACTIVE THEN
323         NULL;
324     ELSIF p_attr_id = G_FREIGHT_TERMS THEN
325         NULL;
326     ELSIF p_attr_id = G_INVOICE_CONTACT THEN
327         NULL;
328     ELSIF p_attr_id = G_INVOICE_TO_SITE_USE THEN
329         NULL;
330     ELSIF p_attr_id = G_INVOICING_RULE THEN
331         NULL;
332     ELSIF p_attr_id = G_LAST_UPDATED_BY THEN
333         NULL;
334     ELSIF p_attr_id = G_LAST_UPDATE_DATE THEN
335         NULL;
336     ELSIF p_attr_id = G_LAST_UPDATE_LOGIN THEN
337         NULL;
338     ELSIF p_attr_id = G_NAME THEN
339         NULL;
340     ELSIF p_attr_id = G_OVERRIDE_ARULE THEN
341         NULL;
342     ELSIF p_attr_id = G_OVERRIDE_IRULE THEN
343         NULL;
344     ELSIF p_attr_id = G_PRICE_LIST THEN
345         NULL;
346     ELSIF p_attr_id = G_PURCHASE_ORDER_NUM THEN
347         NULL;
348     ELSIF p_attr_id = G_REVISION THEN
349         NULL;
350     ELSIF p_attr_id = G_REVISION_DATE THEN
351         NULL;
352     ELSIF p_attr_id = G_REVISION_REASON THEN
353         NULL;
354     ELSIF p_attr_id = G_SALESREP THEN
355         NULL;
356     ELSIF p_attr_id = G_SHIP_METHOD THEN
357         NULL;
358     ELSIF p_attr_id = G_SIGNATURE_DATE THEN
359         NULL;
360     ELSIF p_attr_id = G_START_DATE_ACTIVE THEN
361         NULL;
362     ELSIF p_attr_id = G_TERM THEN
363         NULL;
364     --Begin code added by rchellam for OKC
365     ELSIF p_attr_id = G_AGREEMENT_SOURCE THEN
366         NULL;
367     ELSIF p_attr_id = G_ORIG_SYSTEM_AGR THEN
368         NULL;
369     --End code added by rchellam for OKC
370     ELSIF p_attr_id = G_INVOICE_TO_CUSTOMER_ID THEN -- Added for bug#4029589
371         NULL;
372     END IF;
373 
374     oe_debug_pub.add('Exiting OE_Agreement_Util.Clear_Dependent_Attr');
375 
376 END Clear_Dependent_Attr;
377 
378 --  Procedure Apply_Attribute_Changes
379 
380 PROCEDURE Apply_Attribute_Changes
381 (   p_Agreement_rec                 IN            OE_Pricing_Cont_PUB.Agreement_Rec_Type
382 ,   p_old_Agreement_rec             IN            OE_Pricing_Cont_PUB.Agreement_Rec_Type :=
383                                                   OE_Pricing_Cont_PUB.G_MISS_AGREEMENT_REC
384 ,   x_Agreement_rec                 OUT NOCOPY /* file.sql.39 change */ OE_Pricing_Cont_PUB.Agreement_Rec_Type
385 )
386 IS
387 BEGIN
388 
389     oe_debug_pub.add('Entering OE_Agreement_Util.Apply_Attribute_Changes');
390 
391     --  Load out record
392 
393     x_Agreement_rec := p_Agreement_rec;
394 
395     -- Performance-related change
396     IF p_Agreement_rec.sold_to_org_id IS NULL OR
397 	  p_Agreement_rec.sold_to_org_id = FND_API.G_MISS_NUM THEN
398 	 x_Agreement_rec.sold_to_org_id := -1;
399     END IF;
400 
401     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.accounting_rule_id,p_old_Agreement_rec.accounting_rule_id)
402     THEN
403         NULL;
404     END IF;
405 
406     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.agreement_contact_id,p_old_Agreement_rec.agreement_contact_id)
407     THEN
408         NULL;
409     END IF;
410 
411     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.agreement_id,p_old_Agreement_rec.agreement_id)
412     THEN
413         NULL;
414     END IF;
415 
416     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.agreement_num,p_old_Agreement_rec.agreement_num)
417     THEN
418         NULL;
419     END IF;
420 
421     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.agreement_type_code,p_old_Agreement_rec.agreement_type_code)
422     THEN
423         NULL;
424     END IF;
425 
426     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute1,p_old_Agreement_rec.attribute1)
427     THEN
428         NULL;
429     END IF;
430 
431     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute10,p_old_Agreement_rec.attribute10)
432     THEN
433         NULL;
434     END IF;
435 
436     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute11,p_old_Agreement_rec.attribute11)
437     THEN
438         NULL;
439     END IF;
440 
441     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute12,p_old_Agreement_rec.attribute12)
442     THEN
443         NULL;
444     END IF;
445 
446     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute13,p_old_Agreement_rec.attribute13)
447     THEN
448         NULL;
452     THEN
449     END IF;
450 
451     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute14,p_old_Agreement_rec.attribute14)
453         NULL;
454     END IF;
455 
456     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute15,p_old_Agreement_rec.attribute15)
457     THEN
458         NULL;
459     END IF;
460 
461     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute2,p_old_Agreement_rec.attribute2)
462     THEN
463         NULL;
464     END IF;
465 
466     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute3,p_old_Agreement_rec.attribute3)
467     THEN
468         NULL;
469     END IF;
470 
471     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute4,p_old_Agreement_rec.attribute4)
472     THEN
473         NULL;
474     END IF;
475 
476     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute5,p_old_Agreement_rec.attribute5)
477     THEN
478         NULL;
479     END IF;
480 
481     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute6,p_old_Agreement_rec.attribute6)
482     THEN
483         NULL;
484     END IF;
485 
486     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute7,p_old_Agreement_rec.attribute7)
487     THEN
488         NULL;
489     END IF;
490 
491     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute8,p_old_Agreement_rec.attribute8)
492     THEN
493         NULL;
494     END IF;
495 
496     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.attribute9,p_old_Agreement_rec.attribute9)
497     THEN
498         NULL;
499     END IF;
500 
501     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.context,p_old_Agreement_rec.context)
502     THEN
503         NULL;
504     END IF;
505 
506     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.created_by,p_old_Agreement_rec.created_by)
507     THEN
508         NULL;
509     END IF;
510 
511     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.creation_date,p_old_Agreement_rec.creation_date)
512     THEN
513         NULL;
514     END IF;
515 
516     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.sold_to_org_id,p_old_Agreement_rec.sold_to_org_id)
517     THEN
518         NULL;
519     END IF;
520 
521     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.end_date_active,p_old_Agreement_rec.end_date_active)
522     THEN
523         NULL;
524     END IF;
525 
526     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.freight_terms_code,p_old_Agreement_rec.freight_terms_code)
527     THEN
528         NULL;
529     END IF;
530 
531     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.invoice_contact_id,p_old_Agreement_rec.invoice_contact_id)
532     THEN
533         NULL;
534     END IF;
535 
536     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.invoice_to_org_id,p_old_Agreement_rec.invoice_to_org_id)
537     THEN
538         NULL;
539     END IF;
540 
541     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.invoicing_rule_id,p_old_Agreement_rec.invoicing_rule_id)
542     THEN
543         NULL;
544     END IF;
545 
546     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.last_updated_by,p_old_Agreement_rec.last_updated_by)
547     THEN
548         NULL;
549     END IF;
550 
551     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.last_update_date,p_old_Agreement_rec.last_update_date)
552     THEN
553         NULL;
554     END IF;
555 
556     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.last_update_login,p_old_Agreement_rec.last_update_login)
557     THEN
558         NULL;
559     END IF;
560 
561     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.name,p_old_Agreement_rec.name)
562     THEN
563         NULL;
564     END IF;
565 
566     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.override_arule_flag,p_old_Agreement_rec.override_arule_flag)
567     THEN
568         NULL;
569     END IF;
570 
571     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.override_irule_flag,p_old_Agreement_rec.override_irule_flag)
572     THEN
573         NULL;
574     END IF;
575 
576     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.price_list_id,p_old_Agreement_rec.price_list_id)
577     THEN
578         NULL;
579     END IF;
580 
581     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.purchase_order_num,p_old_Agreement_rec.purchase_order_num)
582     THEN
583         NULL;
584     END IF;
585 
586     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.revision,p_old_Agreement_rec.revision)
587     THEN
588         NULL;
589     END IF;
590 
591     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.revision_date,p_old_Agreement_rec.revision_date)
592     THEN
593         NULL;
594     END IF;
595 
596     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.revision_reason_code,p_old_Agreement_rec.revision_reason_code)
597     THEN
598         NULL;
599     END IF;
600 
601     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.salesrep_id,p_old_Agreement_rec.salesrep_id)
602     THEN
603         NULL;
604     END IF;
605 
606     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.ship_method_code,p_old_Agreement_rec.ship_method_code)
607     THEN
608         NULL;
609     END IF;
610 
611     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.signature_date,p_old_Agreement_rec.signature_date)
612     THEN
613         NULL;
614     END IF;
615 
616     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.start_date_active,p_old_Agreement_rec.start_date_active)
617     THEN
618         NULL;
619     END IF;
620 
621     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.term_id,p_old_Agreement_rec.term_id)
622     THEN
623         NULL;
624     END IF;
625 
629         NULL;
626     --Begin code added by rchellam for OKC
627     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.agreement_source_code,p_old_Agreement_rec.agreement_source_code)
628     THEN
630     END IF;
631 
632     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.orig_system_agr_id,p_old_Agreement_rec.orig_system_agr_id)
633     THEN
634         NULL;
635     END IF;
636     --End code added by rchellam for OKC
637 
638     -- Added for bug#4029589
639     IF NOT OE_GLOBALS.Equal(p_Agreement_rec.invoice_to_customer_id,p_old_Agreement_rec.invoice_to_customer_id)
640     THEN
641         NULL;
642     END IF;
643     oe_debug_pub.add('Exiting OE_Agreement_Util.Apply_Attribute_Changes');
644 
645 END Apply_Attribute_Changes;
646 
647 --  Function Complete_Record
648 
649 FUNCTION Complete_Record
650 (   p_Agreement_rec                 IN  OE_Pricing_Cont_PUB.Agreement_Rec_Type
651 ,   p_old_Agreement_rec             IN  OE_Pricing_Cont_PUB.Agreement_Rec_Type
652 ) RETURN OE_Pricing_Cont_PUB.Agreement_Rec_Type
653 IS
654 l_Agreement_rec               OE_Pricing_Cont_PUB.Agreement_Rec_Type := p_Agreement_rec;
655 BEGIN
656 
657     oe_debug_pub.add('Entering OE_Agreement_Util.Complete_Record');
658 
659     IF l_Agreement_rec.accounting_rule_id = FND_API.G_MISS_NUM THEN
660         l_Agreement_rec.accounting_rule_id := p_old_Agreement_rec.accounting_rule_id;
661     END IF;
662 
663     IF l_Agreement_rec.agreement_contact_id = FND_API.G_MISS_NUM THEN
664         l_Agreement_rec.agreement_contact_id := p_old_Agreement_rec.agreement_contact_id;
665     END IF;
666 
667     IF l_Agreement_rec.agreement_id = FND_API.G_MISS_NUM THEN
668         l_Agreement_rec.agreement_id := p_old_Agreement_rec.agreement_id;
669     END IF;
670 
671     IF l_Agreement_rec.agreement_num = FND_API.G_MISS_CHAR THEN
672         l_Agreement_rec.agreement_num := p_old_Agreement_rec.agreement_num;
673     END IF;
674 
675     IF l_Agreement_rec.agreement_type_code = FND_API.G_MISS_CHAR THEN
676         l_Agreement_rec.agreement_type_code := p_old_Agreement_rec.agreement_type_code;
677     END IF;
678 
679     IF l_Agreement_rec.attribute1 = FND_API.G_MISS_CHAR THEN
680         l_Agreement_rec.attribute1 := p_old_Agreement_rec.attribute1;
681     END IF;
682 
683     IF l_Agreement_rec.attribute10 = FND_API.G_MISS_CHAR THEN
684         l_Agreement_rec.attribute10 := p_old_Agreement_rec.attribute10;
685     END IF;
686 
687     IF l_Agreement_rec.attribute11 = FND_API.G_MISS_CHAR THEN
688         l_Agreement_rec.attribute11 := p_old_Agreement_rec.attribute11;
689     END IF;
690 
691     IF l_Agreement_rec.attribute12 = FND_API.G_MISS_CHAR THEN
692         l_Agreement_rec.attribute12 := p_old_Agreement_rec.attribute12;
693     END IF;
694 
695     IF l_Agreement_rec.attribute13 = FND_API.G_MISS_CHAR THEN
696         l_Agreement_rec.attribute13 := p_old_Agreement_rec.attribute13;
697     END IF;
698 
699     IF l_Agreement_rec.attribute14 = FND_API.G_MISS_CHAR THEN
700         l_Agreement_rec.attribute14 := p_old_Agreement_rec.attribute14;
701     END IF;
702 
703     IF l_Agreement_rec.attribute15 = FND_API.G_MISS_CHAR THEN
704         l_Agreement_rec.attribute15 := p_old_Agreement_rec.attribute15;
705     END IF;
706 
707     IF l_Agreement_rec.attribute2 = FND_API.G_MISS_CHAR THEN
708         l_Agreement_rec.attribute2 := p_old_Agreement_rec.attribute2;
709     END IF;
710 
711     IF l_Agreement_rec.attribute3 = FND_API.G_MISS_CHAR THEN
712         l_Agreement_rec.attribute3 := p_old_Agreement_rec.attribute3;
713     END IF;
714 
715     IF l_Agreement_rec.attribute4 = FND_API.G_MISS_CHAR THEN
716         l_Agreement_rec.attribute4 := p_old_Agreement_rec.attribute4;
717     END IF;
718 
719     IF l_Agreement_rec.attribute5 = FND_API.G_MISS_CHAR THEN
720         l_Agreement_rec.attribute5 := p_old_Agreement_rec.attribute5;
721     END IF;
722 
723     IF l_Agreement_rec.attribute6 = FND_API.G_MISS_CHAR THEN
724         l_Agreement_rec.attribute6 := p_old_Agreement_rec.attribute6;
725     END IF;
726 
727     IF l_Agreement_rec.attribute7 = FND_API.G_MISS_CHAR THEN
728         l_Agreement_rec.attribute7 := p_old_Agreement_rec.attribute7;
729     END IF;
730 
731     IF l_Agreement_rec.attribute8 = FND_API.G_MISS_CHAR THEN
732         l_Agreement_rec.attribute8 := p_old_Agreement_rec.attribute8;
733     END IF;
734 
735     IF l_Agreement_rec.attribute9 = FND_API.G_MISS_CHAR THEN
736         l_Agreement_rec.attribute9 := p_old_Agreement_rec.attribute9;
737     END IF;
738 
739     IF l_Agreement_rec.context = FND_API.G_MISS_CHAR THEN
740         l_Agreement_rec.context := p_old_Agreement_rec.context;
741     END IF;
742 
743     IF l_Agreement_rec.created_by = FND_API.G_MISS_NUM THEN
744         l_Agreement_rec.created_by := p_old_Agreement_rec.created_by;
745     END IF;
746 
747     IF l_Agreement_rec.creation_date = FND_API.G_MISS_DATE THEN
748         l_Agreement_rec.creation_date := p_old_Agreement_rec.creation_date;
749     END IF;
750 
751     IF l_Agreement_rec.sold_to_org_id = FND_API.G_MISS_NUM THEN
752         l_Agreement_rec.sold_to_org_id := p_old_Agreement_rec.sold_to_org_id;
753     END IF;
754 
755     IF l_Agreement_rec.end_date_active = FND_API.G_MISS_DATE THEN
756         l_Agreement_rec.end_date_active := p_old_Agreement_rec.end_date_active;
757     END IF;
758 
759     IF l_Agreement_rec.freight_terms_code = FND_API.G_MISS_CHAR THEN
760         l_Agreement_rec.freight_terms_code := p_old_Agreement_rec.freight_terms_code;
761     END IF;
762 
766 
763     IF l_Agreement_rec.invoice_contact_id = FND_API.G_MISS_NUM THEN
764         l_Agreement_rec.invoice_contact_id := p_old_Agreement_rec.invoice_contact_id;
765     END IF;
767     IF l_Agreement_rec.invoice_to_org_id = FND_API.G_MISS_NUM THEN
768         l_Agreement_rec.invoice_to_org_id := p_old_Agreement_rec.invoice_to_org_id;
769     END IF;
770 
771     IF l_Agreement_rec.invoicing_rule_id = FND_API.G_MISS_NUM THEN
772         l_Agreement_rec.invoicing_rule_id := p_old_Agreement_rec.invoicing_rule_id;
773     END IF;
774 
775     IF l_Agreement_rec.last_updated_by = FND_API.G_MISS_NUM THEN
776         l_Agreement_rec.last_updated_by := p_old_Agreement_rec.last_updated_by;
777     END IF;
778 
779     IF l_Agreement_rec.last_update_date = FND_API.G_MISS_DATE THEN
780         l_Agreement_rec.last_update_date := p_old_Agreement_rec.last_update_date;
781     END IF;
782 
783     IF l_Agreement_rec.last_update_login = FND_API.G_MISS_NUM THEN
784         l_Agreement_rec.last_update_login := p_old_Agreement_rec.last_update_login;
785     END IF;
786 
787     IF l_Agreement_rec.name = FND_API.G_MISS_CHAR THEN
788         l_Agreement_rec.name := p_old_Agreement_rec.name;
789     END IF;
790 
791     IF l_Agreement_rec.override_arule_flag = FND_API.G_MISS_CHAR THEN
792         l_Agreement_rec.override_arule_flag := p_old_Agreement_rec.override_arule_flag;
793     END IF;
794 
795     IF l_Agreement_rec.override_irule_flag = FND_API.G_MISS_CHAR THEN
796         l_Agreement_rec.override_irule_flag := p_old_Agreement_rec.override_irule_flag;
797     END IF;
798 
799     IF l_Agreement_rec.price_list_id = FND_API.G_MISS_NUM THEN
800         l_Agreement_rec.price_list_id := p_old_Agreement_rec.price_list_id;
801     END IF;
802 
803     IF l_Agreement_rec.purchase_order_num = FND_API.G_MISS_CHAR THEN
804         l_Agreement_rec.purchase_order_num := p_old_Agreement_rec.purchase_order_num;
805     END IF;
806 
807     IF l_Agreement_rec.revision = FND_API.G_MISS_CHAR THEN
808         l_Agreement_rec.revision := p_old_Agreement_rec.revision;
809     END IF;
810 
811     IF l_Agreement_rec.revision_date = FND_API.G_MISS_DATE THEN
812         l_Agreement_rec.revision_date := p_old_Agreement_rec.revision_date;
813     END IF;
814 
815     IF l_Agreement_rec.revision_reason_code = FND_API.G_MISS_CHAR THEN
816         l_Agreement_rec.revision_reason_code := p_old_Agreement_rec.revision_reason_code;
817     END IF;
818 
819     IF l_Agreement_rec.salesrep_id = FND_API.G_MISS_NUM THEN
820         l_Agreement_rec.salesrep_id := p_old_Agreement_rec.salesrep_id;
821     END IF;
822 
823     IF l_Agreement_rec.ship_method_code = FND_API.G_MISS_CHAR THEN
824         l_Agreement_rec.ship_method_code := p_old_Agreement_rec.ship_method_code;
825     END IF;
826 
827     IF l_Agreement_rec.signature_date = FND_API.G_MISS_DATE THEN
828         l_Agreement_rec.signature_date := p_old_Agreement_rec.signature_date;
829     END IF;
830 
831     IF l_Agreement_rec.start_date_active = FND_API.G_MISS_DATE THEN
832         l_Agreement_rec.start_date_active := p_old_Agreement_rec.start_date_active;
833     END IF;
834 
835     IF l_Agreement_rec.term_id = FND_API.G_MISS_NUM THEN
836         l_Agreement_rec.term_id := p_old_Agreement_rec.term_id;
837     END IF;
838 
839     --Begin code added by rchellam for OKC
840     IF l_Agreement_rec.agreement_source_code = FND_API.G_MISS_CHAR THEN
841         l_Agreement_rec.agreement_source_code := p_old_Agreement_rec.agreement_source_code;
842     END IF;
843 
844     IF l_Agreement_rec.orig_system_agr_id = FND_API.G_MISS_NUM THEN
845         l_Agreement_rec.orig_system_agr_id := p_old_Agreement_rec.orig_system_agr_id;
846     END IF;
847     --End code added by rchellam for OKC
848 
849     -- Added for bug#4029589
850     IF l_Agreement_rec.invoice_to_customer_id = FND_API.G_MISS_NUM THEN
851         l_Agreement_rec.invoice_to_customer_id := p_old_Agreement_rec.invoice_to_customer_id;
852     END IF;
853 
854     oe_debug_pub.add('Exiting OE_Agreement_Util.Complete_Record');
855 
856     RETURN l_Agreement_rec;
857 
858 END Complete_Record;
859 
860 --  Function Convert_Miss_To_Null
861 
862 FUNCTION Convert_Miss_To_Null
863 (   p_Agreement_rec                 IN  OE_Pricing_Cont_PUB.Agreement_Rec_Type
864 ) RETURN OE_Pricing_Cont_PUB.Agreement_Rec_Type
865 IS
866 l_Agreement_rec               OE_Pricing_Cont_PUB.Agreement_Rec_Type := p_Agreement_rec;
867 BEGIN
868 
869     oe_debug_pub.add('Entering OE_Agreement_Util.Convert_Miss_To_Null');
870 
871     IF l_Agreement_rec.accounting_rule_id = FND_API.G_MISS_NUM THEN
872         l_Agreement_rec.accounting_rule_id := NULL;
873     END IF;
874 
875     IF l_Agreement_rec.agreement_contact_id = FND_API.G_MISS_NUM THEN
876         l_Agreement_rec.agreement_contact_id := NULL;
877     END IF;
878 
879     IF l_Agreement_rec.agreement_id = FND_API.G_MISS_NUM THEN
880         l_Agreement_rec.agreement_id := NULL;
881     END IF;
882 
883     IF l_Agreement_rec.agreement_num = FND_API.G_MISS_CHAR THEN
884         l_Agreement_rec.agreement_num := NULL;
885     END IF;
886 
887     IF l_Agreement_rec.agreement_type_code = FND_API.G_MISS_CHAR THEN
888         l_Agreement_rec.agreement_type_code := NULL;
889     END IF;
890 
891     IF l_Agreement_rec.attribute1 = FND_API.G_MISS_CHAR THEN
892         l_Agreement_rec.attribute1 := NULL;
893     END IF;
894 
895     IF l_Agreement_rec.attribute10 = FND_API.G_MISS_CHAR THEN
896         l_Agreement_rec.attribute10 := NULL;
897     END IF;
898 
902 
899     IF l_Agreement_rec.attribute11 = FND_API.G_MISS_CHAR THEN
900         l_Agreement_rec.attribute11 := NULL;
901     END IF;
903     IF l_Agreement_rec.attribute12 = FND_API.G_MISS_CHAR THEN
904         l_Agreement_rec.attribute12 := NULL;
905     END IF;
906 
907     IF l_Agreement_rec.attribute13 = FND_API.G_MISS_CHAR THEN
908         l_Agreement_rec.attribute13 := NULL;
909     END IF;
910 
911     IF l_Agreement_rec.attribute14 = FND_API.G_MISS_CHAR THEN
912         l_Agreement_rec.attribute14 := NULL;
913     END IF;
914 
915     IF l_Agreement_rec.attribute15 = FND_API.G_MISS_CHAR THEN
916         l_Agreement_rec.attribute15 := NULL;
917     END IF;
918 
919     IF l_Agreement_rec.attribute2 = FND_API.G_MISS_CHAR THEN
920         l_Agreement_rec.attribute2 := NULL;
921     END IF;
922 
923     IF l_Agreement_rec.attribute3 = FND_API.G_MISS_CHAR THEN
924         l_Agreement_rec.attribute3 := NULL;
925     END IF;
926 
927     IF l_Agreement_rec.attribute4 = FND_API.G_MISS_CHAR THEN
928         l_Agreement_rec.attribute4 := NULL;
929     END IF;
930 
931     IF l_Agreement_rec.attribute5 = FND_API.G_MISS_CHAR THEN
932         l_Agreement_rec.attribute5 := NULL;
933     END IF;
934 
935     IF l_Agreement_rec.attribute6 = FND_API.G_MISS_CHAR THEN
936         l_Agreement_rec.attribute6 := NULL;
937     END IF;
938 
939     IF l_Agreement_rec.attribute7 = FND_API.G_MISS_CHAR THEN
940         l_Agreement_rec.attribute7 := NULL;
941     END IF;
942 
943     IF l_Agreement_rec.attribute8 = FND_API.G_MISS_CHAR THEN
944         l_Agreement_rec.attribute8 := NULL;
945     END IF;
946 
947     IF l_Agreement_rec.attribute9 = FND_API.G_MISS_CHAR THEN
948         l_Agreement_rec.attribute9 := NULL;
949     END IF;
950 
951     IF l_Agreement_rec.context = FND_API.G_MISS_CHAR THEN
952         l_Agreement_rec.context := NULL;
953     END IF;
954 
955     IF l_Agreement_rec.created_by = FND_API.G_MISS_NUM THEN
956         l_Agreement_rec.created_by := NULL;
957     END IF;
958 
959     IF l_Agreement_rec.creation_date = FND_API.G_MISS_DATE THEN
960         l_Agreement_rec.creation_date := NULL;
961     END IF;
962 
963     IF l_Agreement_rec.sold_to_org_id = FND_API.G_MISS_NUM THEN
964         l_Agreement_rec.sold_to_org_id := NULL;
965     END IF;
966 
967     IF l_Agreement_rec.end_date_active = FND_API.G_MISS_DATE THEN
968         l_Agreement_rec.end_date_active := NULL;
969     END IF;
970 
971     IF l_Agreement_rec.freight_terms_code = FND_API.G_MISS_CHAR THEN
972         l_Agreement_rec.freight_terms_code := NULL;
973     END IF;
974 
975     IF l_Agreement_rec.invoice_contact_id = FND_API.G_MISS_NUM THEN
976         l_Agreement_rec.invoice_contact_id := NULL;
977     END IF;
978 
979     IF l_Agreement_rec.invoice_to_org_id = FND_API.G_MISS_NUM THEN
980         l_Agreement_rec.invoice_to_org_id := NULL;
981     END IF;
982 
983     IF l_Agreement_rec.invoicing_rule_id = FND_API.G_MISS_NUM THEN
984         l_Agreement_rec.invoicing_rule_id := NULL;
985     END IF;
986 
987     IF l_Agreement_rec.last_updated_by = FND_API.G_MISS_NUM THEN
988         l_Agreement_rec.last_updated_by := NULL;
989     END IF;
990 
991     IF l_Agreement_rec.last_update_date = FND_API.G_MISS_DATE THEN
992         l_Agreement_rec.last_update_date := NULL;
993     END IF;
994 
995     IF l_Agreement_rec.last_update_login = FND_API.G_MISS_NUM THEN
996         l_Agreement_rec.last_update_login := NULL;
997     END IF;
998 
999     IF l_Agreement_rec.name = FND_API.G_MISS_CHAR THEN
1000         l_Agreement_rec.name := NULL;
1001     END IF;
1002 
1003     IF l_Agreement_rec.override_arule_flag = FND_API.G_MISS_CHAR THEN
1004         l_Agreement_rec.override_arule_flag := NULL;
1005     END IF;
1006 
1007     IF l_Agreement_rec.override_irule_flag = FND_API.G_MISS_CHAR THEN
1008         l_Agreement_rec.override_irule_flag := NULL;
1009     END IF;
1010 
1011     IF l_Agreement_rec.price_list_id = FND_API.G_MISS_NUM THEN
1012         l_Agreement_rec.price_list_id := NULL;
1013     END IF;
1014 
1015     IF l_Agreement_rec.purchase_order_num = FND_API.G_MISS_CHAR THEN
1016         l_Agreement_rec.purchase_order_num := NULL;
1017     END IF;
1018 
1019     IF l_Agreement_rec.revision = FND_API.G_MISS_CHAR THEN
1020         l_Agreement_rec.revision := NULL;
1021     END IF;
1022 
1023     IF l_Agreement_rec.revision_date = FND_API.G_MISS_DATE THEN
1024         l_Agreement_rec.revision_date := NULL;
1025     END IF;
1026 
1027     IF l_Agreement_rec.revision_reason_code = FND_API.G_MISS_CHAR THEN
1028         l_Agreement_rec.revision_reason_code := NULL;
1029     END IF;
1030 
1031     IF l_Agreement_rec.salesrep_id = FND_API.G_MISS_NUM THEN
1032         l_Agreement_rec.salesrep_id := NULL;
1033     END IF;
1034 
1035     IF l_Agreement_rec.ship_method_code = FND_API.G_MISS_CHAR THEN
1036         l_Agreement_rec.ship_method_code := NULL;
1037     END IF;
1038 
1039     IF l_Agreement_rec.signature_date = FND_API.G_MISS_DATE THEN
1040         l_Agreement_rec.signature_date := NULL;
1041     END IF;
1042 
1043     IF l_Agreement_rec.start_date_active = FND_API.G_MISS_DATE THEN
1044         l_Agreement_rec.start_date_active := NULL;
1045     END IF;
1046 
1047     IF l_Agreement_rec.term_id = FND_API.G_MISS_NUM THEN
1048         l_Agreement_rec.term_id := NULL;
1049     END IF;
1050 
1051     --Begin code added by rchellam for OKC
1052     IF l_Agreement_rec.agreement_source_code = FND_API.G_MISS_CHAR THEN
1053         l_Agreement_rec.agreement_source_code := NULL;
1054     END IF;
1055 
1059     --End code added by rchellam for OKC
1056     IF l_Agreement_rec.orig_system_agr_id = FND_API.G_MISS_NUM THEN
1057         l_Agreement_rec.orig_system_agr_id := NULL;
1058     END IF;
1060 
1061     -- Added for bug#4029589
1062     IF l_Agreement_rec.invoice_to_customer_id = FND_API.G_MISS_NUM THEN
1063         l_Agreement_rec.invoice_to_customer_id := NULL;
1064     END IF;
1065 
1066     RETURN l_Agreement_rec;
1067 
1068     oe_debug_pub.add('Exiting OE_Agreement_Util.Convert_Miss_To_Null');
1069 
1070 END Convert_Miss_To_Null;
1071 
1072 --  Procedure Update_Row
1073 
1074 PROCEDURE Update_Row
1075 (   p_Agreement_rec                 IN  OE_Pricing_Cont_PUB.Agreement_Rec_Type
1076 )
1077 IS
1078 BEGIN
1079 
1080     oe_debug_pub.add('Entering OE_Agreement_Util.Update_Row');
1081 
1082   IF QP_security.check_function( p_function_name => QP_Security.G_FUNCTION_UPDATE,
1083                                  p_instance_type => QP_Security.G_AGREEMENT_OBJECT,
1084                                  p_instance_pk1  => p_Agreement_rec.price_list_id) <> 'F' THEN
1085 
1086     OE_AGREEMENTS_PKG.UPDATE_ROW (
1087            	p_Agreement_rec.agreement_id
1088 		 ,	p_Agreement_rec.tp_attribute2
1089 		 ,	p_Agreement_rec.tp_attribute3
1090 		 ,	p_Agreement_rec.tp_attribute4
1091 		 ,	p_Agreement_rec.tp_attribute5
1092 		 ,	p_Agreement_rec.tp_attribute6
1093 		 ,	p_Agreement_rec.tp_attribute7
1094 		 ,	p_Agreement_rec.tp_attribute8
1095 		 ,	p_Agreement_rec.tp_attribute9
1096 		 ,	p_Agreement_rec.tp_attribute10
1097 		 ,	p_Agreement_rec.tp_attribute11
1098 		 ,	p_Agreement_rec.tp_attribute12
1099 		 ,	p_Agreement_rec.tp_attribute13
1100 		 ,	p_Agreement_rec.tp_attribute14
1101 		 ,	p_Agreement_rec.tp_attribute15
1102 		 ,	p_Agreement_rec.tp_attribute_category
1103 		 ,	p_Agreement_rec.agreement_type_code
1104 		 ,	p_Agreement_rec.price_list_id
1105 		 ,	p_Agreement_rec.term_id
1106 		 ,	p_agreement_rec.override_irule_flag
1107 		 ,	p_Agreement_rec.override_arule_flag
1108 		 ,	p_Agreement_rec.signature_date
1109 		 ,	p_Agreement_rec.agreement_num
1110 		 ,	p_Agreement_rec.tp_attribute1
1111 		 ,	p_Agreement_rec.attribute12
1112 		 ,	p_Agreement_rec.attribute13
1113 		 ,	p_Agreement_rec.attribute14
1114 		 ,	p_Agreement_rec.attribute15
1115 		 ,	p_Agreement_rec.attribute11
1116 		 ,	p_Agreement_rec.attribute9
1117 		 ,	p_Agreement_rec.attribute10
1118 		 ,	p_Agreement_rec.revision
1119 		 ,	p_Agreement_rec.revision_date
1120 		 ,	p_Agreement_rec.revision_reason_code
1121 		 ,	p_Agreement_rec.freight_terms_code
1122 		 ,	p_Agreement_rec.ship_method_code
1123 		 ,	p_Agreement_rec.invoicing_rule_id
1124 		 ,	p_Agreement_rec.accounting_rule_id
1125 		 ,	p_Agreement_rec.sold_to_org_id
1126 		 ,	p_Agreement_rec.purchase_order_num
1127 		 ,	p_Agreement_rec.invoice_contact_id
1128 		 ,	p_Agreement_rec.agreement_contact_id
1129 		 ,	p_Agreement_rec.invoice_to_org_id
1130 		 ,	p_Agreement_rec.salesrep_id
1131 		 ,	p_Agreement_rec.start_date_active
1132 		 ,	p_Agreement_rec.end_date_active
1133 		 ,	p_Agreement_rec.comments
1134 		 ,	p_Agreement_rec.context
1135 		 ,	p_Agreement_rec.attribute1
1136 		 ,	p_Agreement_rec.attribute2
1137 		 ,	p_Agreement_rec.attribute3
1138 		 ,	p_Agreement_rec.attribute4
1139 		 ,	p_Agreement_rec.attribute5
1140 		 ,	p_Agreement_rec.attribute6
1141 		 ,	p_Agreement_rec.attribute7
1142 		 ,	p_Agreement_rec.attribute8
1143 		 ,	p_Agreement_rec.name
1144 		 ,	p_Agreement_rec.last_update_date
1145 		 ,	p_Agreement_rec.last_updated_by
1146 		 ,	p_Agreement_rec.last_update_login
1147 		 ,	p_Agreement_rec.agreement_source_code --added by
1148 		 ,	p_Agreement_rec.orig_system_agr_id --rchellam for OKC
1149      ,	p_Agreement_rec.invoice_to_customer_id -- Added for bug#4029589
1150     );
1151 
1152   ELSE
1153 
1154     fnd_message.set_name('QP', 'QP_NO_PRIVILEGE');
1155     fnd_message.set_token('PRICING_OBJECT', 'Agreement');
1156     oe_msg_pub.Add;
1157 
1158   END IF;
1159 
1160 
1161 /*
1162     UPDATE  OE_AGREEMENTS
1163     SET     ACCOUNTING_RULE_ID             = p_Agreement_rec.accounting_rule_id
1164     ,       AGREEMENT_CONTACT_ID           = p_Agreement_rec.agreement_contact_id
1165     ,       AGREEMENT_ID                   = p_Agreement_rec.agreement_id
1166     ,       AGREEMENT_NUM                  = p_Agreement_rec.agreement_num
1167     ,       AGREEMENT_TYPE_CODE            = p_Agreement_rec.agreement_type_code
1168     ,       ATTRIBUTE1                     = p_Agreement_rec.attribute1
1169     ,       ATTRIBUTE10                    = p_Agreement_rec.attribute10
1170     ,       ATTRIBUTE11                    = p_Agreement_rec.attribute11
1171     ,       ATTRIBUTE12                    = p_Agreement_rec.attribute12
1172     ,       ATTRIBUTE13                    = p_Agreement_rec.attribute13
1173     ,       ATTRIBUTE14                    = p_Agreement_rec.attribute14
1174     ,       ATTRIBUTE15                    = p_Agreement_rec.attribute15
1175     ,       ATTRIBUTE2                     = p_Agreement_rec.attribute2
1176     ,       ATTRIBUTE3                     = p_Agreement_rec.attribute3
1177     ,       ATTRIBUTE4                     = p_Agreement_rec.attribute4
1178     ,       ATTRIBUTE5                     = p_Agreement_rec.attribute5
1179     ,       ATTRIBUTE6                     = p_Agreement_rec.attribute6
1180     ,       ATTRIBUTE7                     = p_Agreement_rec.attribute7
1181     ,       ATTRIBUTE8                     = p_Agreement_rec.attribute8
1182     ,       ATTRIBUTE9                     = p_Agreement_rec.attribute9
1183     ,       CONTEXT                        = p_Agreement_rec.context
1184     ,       CREATED_BY                     = p_Agreement_rec.created_by
1185     ,       CREATION_DATE                  = p_Agreement_rec.creation_date
1186     ,       SOLD_TO_ORG_ID                    = p_Agreement_rec.sold_to_org_id
1187     ,       END_DATE_ACTIVE                = p_Agreement_rec.end_date_active
1188     ,       FREIGHT_TERMS_CODE             = p_Agreement_rec.freight_terms_code
1189     ,       INVOICE_CONTACT_ID             = p_Agreement_rec.invoice_contact_id
1190     ,       invoice_to_org_id         = p_Agreement_rec.invoice_to_org_id
1191     ,       INVOICING_RULE_ID              = p_Agreement_rec.invoicing_rule_id
1192     ,       LAST_UPDATED_BY                = p_Agreement_rec.last_updated_by
1193     ,       LAST_UPDATE_DATE               = p_Agreement_rec.last_update_date
1194     ,       LAST_UPDATE_LOGIN              = p_Agreement_rec.last_update_login
1195     ,       NAME                           = p_Agreement_rec.name
1196     ,       OVERRIDE_ARULE_FLAG            = p_Agreement_rec.override_arule_flag
1197     ,       OVERRIDE_IRULE_FLAG            = p_Agreement_rec.override_irule_flag
1198     ,       PRICE_LIST_ID                  = p_Agreement_rec.price_list_id
1199     ,       PURCHASE_ORDER_NUM             = p_Agreement_rec.purchase_order_num
1200     ,       REVISION                       = p_Agreement_rec.revision
1201     ,       REVISION_DATE                  = p_Agreement_rec.revision_date
1202     ,       REVISION_REASON_CODE           = p_Agreement_rec.revision_reason_code
1203     ,       SALESREP_ID                    = p_Agreement_rec.salesrep_id
1204     ,       SHIP_METHOD_CODE               = p_Agreement_rec.ship_method_code
1205     ,       SIGNATURE_DATE                 = p_Agreement_rec.signature_date
1206     ,       START_DATE_ACTIVE              = p_Agreement_rec.start_date_active
1207     ,       TERM_ID                        = p_Agreement_rec.term_id
1208     WHERE   AGREEMENT_ID = p_Agreement_rec.agreement_id
1209     ;
1210 */
1211     oe_debug_pub.add('Exiting OE_Agreement_Util.Update_Row');
1212 
1213 EXCEPTION
1214 
1215     WHEN OTHERS THEN
1216 
1217         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1218         THEN
1219             OE_MSG_PUB.Add_Exc_Msg
1220             (   G_PKG_NAME
1221             ,   'Update_Row'
1222             );
1223         END IF;
1224 
1225         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1226 
1227 END Update_Row;
1228 
1229 --  Procedure Insert_Row
1230 
1231 PROCEDURE Insert_Row
1232 (   p_Agreement_rec                 IN  OE_Pricing_Cont_PUB.Agreement_Rec_Type
1233 )
1234 IS
1235 x_row_id VARCHAR2(240);
1236 x_result VARCHAR2(1);
1237 BEGIN
1238 
1239     oe_debug_pub.add('Entering OE_Agreement_Util.Insert_Row');
1240 --
1241 
1242    OE_AGREEMENTS_PKG.INSERT_ROW ( x_row_id
1243     ,       p_Agreement_rec.agreement_id
1244     ,       p_Agreement_rec.tp_attribute2
1245     ,       p_Agreement_rec.tp_attribute3
1246     ,       p_Agreement_rec.tp_attribute4
1247     ,       p_Agreement_rec.tp_attribute5
1248     ,       p_Agreement_rec.tp_attribute6
1249     ,       p_Agreement_rec.tp_attribute7
1250     ,       p_Agreement_rec.tp_attribute8
1251     ,       p_Agreement_rec.tp_attribute9
1252     ,       p_Agreement_rec.tp_attribute10
1253     ,       p_Agreement_rec.tp_attribute11
1254     ,       p_Agreement_rec.tp_attribute12
1255     ,       p_Agreement_rec.tp_attribute13
1256     ,       p_Agreement_rec.tp_attribute14
1257     ,       p_Agreement_rec.tp_attribute15
1258     ,       p_Agreement_rec.tp_attribute_category
1259     ,       p_Agreement_rec.agreement_type_code
1260     ,       p_Agreement_rec.price_list_id
1261     ,       p_Agreement_rec.term_id
1262     ,       p_Agreement_rec.override_irule_flag
1263     ,       p_Agreement_rec.override_arule_flag
1264     ,       p_Agreement_rec.signature_date
1265     ,       p_Agreement_rec.agreement_num
1266     ,       p_Agreement_rec.tp_attribute1
1267     ,       p_Agreement_rec.attribute12
1268     ,       p_Agreement_rec.attribute13
1269     ,       p_Agreement_rec.attribute14
1270     ,       p_Agreement_rec.attribute15
1271     ,       p_Agreement_rec.attribute11
1272     ,       p_Agreement_rec.attribute9
1273     ,       p_Agreement_rec.attribute10
1274     ,       p_Agreement_rec.revision
1275     ,       p_Agreement_rec.revision_date
1276     ,       p_Agreement_rec.revision_reason_code
1277     ,       p_Agreement_rec.freight_terms_code
1278     ,       p_Agreement_rec.ship_method_code
1279     ,       p_Agreement_rec.invoicing_rule_id
1280     ,	    p_Agreement_rec.accounting_rule_id
1281     ,       p_Agreement_rec.sold_to_org_id
1282     ,       p_Agreement_rec.purchase_order_num
1283     ,       p_Agreement_rec.invoice_contact_id
1284     ,       p_Agreement_rec.agreement_contact_id
1285     ,       p_Agreement_rec.invoice_to_org_id
1286     ,       p_Agreement_rec.salesrep_id
1287     ,       p_Agreement_rec.start_date_active
1288     ,       p_Agreement_rec.end_date_active
1289     ,       p_Agreement_rec.comments
1290     ,       p_Agreement_rec.context
1291     ,       p_Agreement_rec.attribute1
1292     ,       p_Agreement_rec.attribute2
1293     ,       p_Agreement_rec.attribute3
1294     ,       p_Agreement_rec.attribute4
1295     ,       p_Agreement_rec.attribute5
1296     ,       p_Agreement_rec.attribute6
1297     ,       p_Agreement_rec.attribute7
1298     ,       p_Agreement_rec.attribute8
1299     ,       p_Agreement_rec.name
1300     ,       p_Agreement_rec.creation_date
1301     ,       p_Agreement_rec.created_by
1302     ,       p_Agreement_rec.last_update_date
1303     ,       p_Agreement_rec.last_updated_by
1304     ,       p_Agreement_rec.last_update_login
1305     ,       p_Agreement_rec.agreement_source_code --added by rchellam for OKC
1306     ,       p_Agreement_rec.orig_system_agr_id --added by rchellam for OKC
1307     ,	    p_Agreement_rec.invoice_to_customer_id -- Added for bug#4029589
1308     );
1309 
1310 
1311 -- Code commented :: using new package
1312 /*
1313     INSERT  INTO OE_AGREEMENTS
1314     (       ACCOUNTING_RULE_ID
1315     ,       AGREEMENT_CONTACT_ID
1316     ,       AGREEMENT_ID
1317     ,       AGREEMENT_NUM
1318     ,       AGREEMENT_TYPE_CODE
1319     ,       ATTRIBUTE1
1320     ,       ATTRIBUTE10
1321     ,       ATTRIBUTE11
1322     ,       ATTRIBUTE12
1323     ,       ATTRIBUTE13
1324     ,       ATTRIBUTE14
1325     ,       ATTRIBUTE15
1326     ,       ATTRIBUTE2
1327     ,       ATTRIBUTE3
1328     ,       ATTRIBUTE4
1329     ,       ATTRIBUTE5
1330     ,       ATTRIBUTE6
1331     ,       ATTRIBUTE7
1332     ,       ATTRIBUTE8
1333     ,       ATTRIBUTE9
1334     ,       CONTEXT
1335     ,       CREATED_BY
1336     ,       CREATION_DATE
1337     ,       SOLD_TO_ORG_ID
1338     ,       END_DATE_ACTIVE
1339     ,       FREIGHT_TERMS_CODE
1340     ,       INVOICE_CONTACT_ID
1341     ,       invoice_to_org_id
1342     ,       INVOICING_RULE_ID
1343     ,       LAST_UPDATED_BY
1344     ,       LAST_UPDATE_DATE
1345     ,       LAST_UPDATE_LOGIN
1346     ,       NAME
1347     ,       OVERRIDE_ARULE_FLAG
1348     ,       OVERRIDE_IRULE_FLAG
1349     ,       PRICE_LIST_ID
1350     ,       PURCHASE_ORDER_NUM
1351     ,       REVISION
1352     ,       REVISION_DATE
1353     ,       REVISION_REASON_CODE
1354     ,       SALESREP_ID
1355     ,       SHIP_METHOD_CODE
1356     ,       SIGNATURE_DATE
1357     ,       START_DATE_ACTIVE
1358     ,       TERM_ID
1359     )
1360     VALUES
1361     (       p_Agreement_rec.accounting_rule_id
1362     ,       p_Agreement_rec.agreement_contact_id
1363     ,       p_Agreement_rec.agreement_id
1364     ,       p_Agreement_rec.agreement_num
1365     ,       p_Agreement_rec.agreement_type_code
1366     ,       p_Agreement_rec.attribute1
1367     ,       p_Agreement_rec.attribute10
1368     ,       p_Agreement_rec.attribute11
1369     ,       p_Agreement_rec.attribute12
1370     ,       p_Agreement_rec.attribute13
1371     ,       p_Agreement_rec.attribute14
1372     ,       p_Agreement_rec.attribute15
1373     ,       p_Agreement_rec.attribute2
1374     ,       p_Agreement_rec.attribute3
1375     ,       p_Agreement_rec.attribute4
1376     ,       p_Agreement_rec.attribute5
1377     ,       p_Agreement_rec.attribute6
1378     ,       p_Agreement_rec.attribute7
1382     ,       p_Agreement_rec.created_by
1379     ,       p_Agreement_rec.attribute8
1380     ,       p_Agreement_rec.attribute9
1381     ,       p_Agreement_rec.context
1383     ,       p_Agreement_rec.creation_date
1384     ,       p_Agreement_rec.sold_to_org_id
1385     ,       p_Agreement_rec.end_date_active
1386     ,       p_Agreement_rec.freight_terms_code
1387     ,       p_Agreement_rec.invoice_contact_id
1388     ,       p_Agreement_rec.invoice_to_org_id
1389     ,       p_Agreement_rec.invoicing_rule_id
1390     ,       p_Agreement_rec.last_updated_by
1391     ,       p_Agreement_rec.last_update_date
1392     ,       p_Agreement_rec.last_update_login
1393     ,       p_Agreement_rec.name
1394     ,       p_Agreement_rec.override_arule_flag
1395     ,       p_Agreement_rec.override_irule_flag
1396     ,       p_Agreement_rec.price_list_id
1397     ,       p_Agreement_rec.purchase_order_num
1398     ,       p_Agreement_rec.revision
1399     ,       p_Agreement_rec.revision_date
1400     ,       p_Agreement_rec.revision_reason_code
1401     ,       p_Agreement_rec.salesrep_id
1402     ,       p_Agreement_rec.ship_method_code
1403     ,       p_Agreement_rec.signature_date
1404     ,       p_Agreement_rec.start_date_active
1405     ,       p_Agreement_rec.term_id
1406     );
1407 */
1408 
1409     oe_debug_pub.add('Entering OE_Agreement_Util.Insert_Row');
1410 
1411 EXCEPTION
1412 
1413     WHEN OTHERS THEN
1414 
1415         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1416         THEN
1417             OE_MSG_PUB.Add_Exc_Msg
1418             (   G_PKG_NAME
1419             ,   'Insert_Row'
1420             );
1421         END IF;
1422 
1423         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1424 
1425 END Insert_Row;
1426 
1427 --  Procedure Delete_Row
1428 
1429 PROCEDURE Delete_Row
1430 (
1431     x_return_status                OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1432 ,   p_agreement_id                  IN  NUMBER
1433 ,   p_Price_List_Exists_Flag        IN  BOOLEAN
1434 ,   p_Agreement_Delete_Flag         IN BOOLEAN
1435 ,   p_Agreement_Lines_Delete_Flag         IN BOOLEAN
1436 )
1437 IS
1438   l_Price_List_id NUMBER;
1439   l_list_type_code varchar2(10);
1440   CURSOR get_line_id( p_Price_List_id NUMBER )  is
1441 		SELECT list_line_id
1442 		FROM QP_LIST_LINES
1443 		WHERE LIST_HEADER_ID = p_Price_List_id;
1444 
1445 
1446 BEGIN
1447 
1448     oe_debug_pub.add('Entering OE_Agreement_Util.Delete_Row');
1449 /*    IF (p_Price_List_Exists_Flag) THEN
1450       oe_debug_pub.add('p_Price_List_Exists_Flag :');
1451 
1452     --oe_debug_pub.add('p_Price_List_Exists_Flag :'||to_char(p_Price_List_Exists_Flag));
1453     End If;
1454     If (p_Agreement_Delete_Flag) Then
1455     oe_debug_pub.add('p_Agreement_Delete_Flag :');
1456 
1457 -- oe_debug_pub.add('p_Agreement_Delete_Flag :'|| to_char(p_Agreement_Delete_Flag));
1458    End If;
1459 
1460      If (p_Agreement_Lines_Delete_Flag) Then
1461      oe_debug_pub.add('p_Agreement_Lines_Delete_Flag :');
1462      End If;
1463 */
1464 --     oe_debug_pub.add('p_Agreement_Lines_Delete_Flag :'||to_char(p_Agreement_Lines_Delete_Flag));
1465 -- Added for 2321498
1466    SELECT price_list_id, q.list_type_code into
1467         l_Price_List_id, l_list_type_code
1468         from oe_agreements_b, qp_list_headers q
1469         where agreement_id = p_agreement_id And
1470               price_list_id = q.list_header_id;
1471 
1472 
1473 
1474 -- Commented the following code as price List shouldn't be deleted as per Bug2321498
1475 
1476 /*
1477     if ( p_Price_List_Exists_Flag ) then
1478 
1479  	 If this flag is TRUE then Delete Price List
1480 
1481      SELECT price_list_id into
1482 	l_Price_List_id
1483 	from oe_agreements_b
1484 	where agreement_id = p_agreement_id;
1485 
1486      if l_Price_List_id is NOT NULL THEN
1487 
1488 	 Deletes the Price List Header
1489 
1490 		 oe_debug_pub.add(' OE_Agreement_Util: Deleting price list for the Agreement');
1491      	QP_Price_List_Util.Delete_Row( l_Price_List_id );
1492 */
1493 
1494 	/* Delete from qp_qualifiers table */
1495 /* This code has been moved so that qualifier should be deleted only
1496   if Agreement is deleted. Bug 2321498
1497 
1498 		DELETE FROM QP_QUALIFIERS
1499 		where list_header_id = l_Price_List_id
1500 		and qualifier_attr_value = p_agreement_id;
1501 
1502 	end if;
1503 
1504 	end if;
1505 
1506 */
1507  -- Delete Agreement only when the agreement is not associated with
1508  -- an order or order line
1509 
1510 	if  ( p_Agreement_Delete_Flag  ) and
1511 	    ( p_Agreement_Lines_Delete_Flag) then
1512 
1513                -- Bug 2321498: delete qualifier
1514                      Begin
1515                            If l_list_type_code = 'AGR' Then
1516                               DELETE FROM QP_QUALIFIERS
1517                             where list_header_id = l_Price_List_id
1518                             and qualifier_attr_value = p_agreement_id;
1519                            End If;
1520                            Exception
1521                              When No_data_Found Then
1522                             oe_debug_pub.add('No Qualifiers found',4);
1523                       End;
1524 
1525 		oe_dEbug_pub.add('Deleting Agreement because agreement is not associated with an order or order line');
1526 
1527    			OE_AGREEMENTS_PKG.DELETE_ROW( p_agreement_id );
1528                   x_return_status                := FND_API.G_RET_STS_SUCCESS;
1529 	else
1530 		oe_debug_pub.add('Did not delete agreement');
1531                  x_return_status                := FND_API.G_RET_STS_ERROR;
1532 	 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR) THEN
1533 		FND_MESSAGE.SET_NAME('QP','QP_AGREEMENT_DELETE');
1534 		oe_msg_pub.Add;
1535    --             x_return_status                := FND_API.G_RET_STS_ERROR;
1536               --  RAISE FND_API.G_EXC_ERROR;
1537                   /* Bug 2321498 */
1538 	 END IF;
1539 
1540 	end if;
1541 
1542 
1543     oe_debug_pub.add('Exiting OE_Agreement_Util.Delete_Row');
1544 
1545 EXCEPTION
1546      WHEN FND_API.G_EXC_ERROR THEN
1547           RAISE FND_API.G_EXC_ERROR;
1548 	WHEN no_data_found then
1549 		NULL;
1550      WHEN OTHERS THEN
1551 
1552         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1553         THEN
1554             OE_MSG_PUB.Add_Exc_Msg
1555             (   G_PKG_NAME
1556             ,   'Delete_Row'
1557             );
1558         END IF;
1559 
1560         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1561 
1562 END Delete_Row;
1563 
1564 --  Function Query_Row
1565 
1566 FUNCTION Query_Row
1567 (   p_agreement_id                  IN  NUMBER
1568 ) RETURN OE_Pricing_Cont_PUB.Agreement_Rec_Type
1569 IS
1570 BEGIN
1571 
1572     oe_debug_pub.add('Entering OE_Agreement_Util.Query_Row');
1573 
1574     RETURN Query_Rows
1575         (   p_agreement_id                => p_agreement_id
1576         )(1);
1577 
1578     oe_debug_pub.add('Exiting OE_Agreement_Util.Query_Row');
1579 
1580 END Query_Row;
1581 
1582 --  Function Query_Rows
1583 
1584 --
1585 
1586 FUNCTION Query_Rows
1587 (   p_agreement_id                  IN  NUMBER :=
1588                                         FND_API.G_MISS_NUM
1589 ,   p_pricing_contract_id           IN  NUMBER :=
1590                                         FND_API.G_MISS_NUM
1591 ) RETURN OE_Pricing_Cont_PUB.Agreement_Tbl_Type
1592 IS
1593 l_Agreement_rec               OE_Pricing_Cont_PUB.Agreement_Rec_Type;
1594 l_Agreement_tbl               OE_Pricing_Cont_PUB.Agreement_Tbl_Type;
1595 
1596 CURSOR l_Agreement_csr IS
1597     SELECT  ACCOUNTING_RULE_ID
1598     ,       AGREEMENT_CONTACT_ID
1599     ,       AGREEMENT_ID
1600     ,       AGREEMENT_NUM
1601     ,       AGREEMENT_TYPE_CODE
1602     ,       ATTRIBUTE1
1603     ,       ATTRIBUTE10
1604     ,       ATTRIBUTE11
1605     ,       ATTRIBUTE12
1606     ,       ATTRIBUTE13
1607     ,       ATTRIBUTE14
1608     ,       ATTRIBUTE15
1609     ,       ATTRIBUTE2
1610     ,       ATTRIBUTE3
1611     ,       ATTRIBUTE4
1612     ,       ATTRIBUTE5
1613     ,       ATTRIBUTE6
1614     ,       ATTRIBUTE7
1615     ,       ATTRIBUTE8
1616     ,       ATTRIBUTE9
1617     ,       CONTEXT
1618     ,       CREATED_BY
1619     ,       CREATION_DATE
1620     ,       sold_to_org_id
1621     ,       END_DATE_ACTIVE
1622     ,       FREIGHT_TERMS_CODE
1623     ,       INVOICE_CONTACT_ID
1624     ,       invoice_to_org_id
1625     ,       INVOICING_RULE_ID
1626     ,       LAST_UPDATED_BY
1627     ,       LAST_UPDATE_DATE
1628     ,       LAST_UPDATE_LOGIN
1629     ,       NAME
1630     ,       OVERRIDE_ARULE_FLAG
1631     ,       OVERRIDE_IRULE_FLAG
1632     ,       PRICE_LIST_ID
1633     ,       PURCHASE_ORDER_NUM
1634     ,       REVISION
1635     ,       REVISION_DATE
1636     ,       REVISION_REASON_CODE
1637     ,       SALESREP_ID
1638     ,       SHIP_METHOD_CODE
1639     ,       SIGNATURE_DATE
1640     ,       START_DATE_ACTIVE
1641     ,       TERM_ID
1642     ,       AGREEMENT_SOURCE_CODE
1643     ,       ORIG_SYSTEM_AGR_ID
1644     ,       INVOICE_TO_CUSTOMER_ID -- Added for bug#4029589
1645     FROM    OE_AGREEMENTS
1646     WHERE ( AGREEMENT_ID = p_agreement_id
1647     )
1648     ;
1649 
1650 BEGIN
1651 
1652     IF
1653     (p_agreement_id IS NOT NULL
1654      AND
1655      p_agreement_id <> FND_API.G_MISS_NUM)
1656     AND
1657     (p_pricing_contract_id IS NOT NULL
1658      AND
1659      p_pricing_contract_id <> FND_API.G_MISS_NUM)
1660     THEN
1661             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1662             THEN
1663                 OE_MSG_PUB.Add_Exc_Msg
1664                 (   G_PKG_NAME
1665                 ,   'Query Rows'
1666                 ,   'Keys are mutually exclusive: agreement_id = '|| p_agreement_id || ', pricing_contract_id = '|| p_pricing_contract_id
1667                 );
1668             END IF;
1669 
1670         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1671 
1672     END IF;
1673 
1674 
1675     --  Loop over fetched records
1676 
1677     FOR l_implicit_rec IN l_Agreement_csr LOOP
1678 
1679         l_Agreement_rec.accounting_rule_id := l_implicit_rec.ACCOUNTING_RULE_ID;
1680         l_Agreement_rec.agreement_contact_id := l_implicit_rec.AGREEMENT_CONTACT_ID;
1681         l_Agreement_rec.agreement_id   := l_implicit_rec.AGREEMENT_ID;
1682         l_Agreement_rec.agreement_num  := l_implicit_rec.AGREEMENT_NUM;
1683         l_Agreement_rec.agreement_type_code := l_implicit_rec.AGREEMENT_TYPE_CODE;
1684         l_Agreement_rec.attribute1     := l_implicit_rec.ATTRIBUTE1;
1685         l_Agreement_rec.attribute10    := l_implicit_rec.ATTRIBUTE10;
1686         l_Agreement_rec.attribute11    := l_implicit_rec.ATTRIBUTE11;
1687         l_Agreement_rec.attribute12    := l_implicit_rec.ATTRIBUTE12;
1688         l_Agreement_rec.attribute13    := l_implicit_rec.ATTRIBUTE13;
1689         l_Agreement_rec.attribute14    := l_implicit_rec.ATTRIBUTE14;
1690         l_Agreement_rec.attribute15    := l_implicit_rec.ATTRIBUTE15;
1691         l_Agreement_rec.attribute2     := l_implicit_rec.ATTRIBUTE2;
1692         l_Agreement_rec.attribute3     := l_implicit_rec.ATTRIBUTE3;
1693         l_Agreement_rec.attribute4     := l_implicit_rec.ATTRIBUTE4;
1694         l_Agreement_rec.attribute5     := l_implicit_rec.ATTRIBUTE5;
1695         l_Agreement_rec.attribute6     := l_implicit_rec.ATTRIBUTE6;
1696         l_Agreement_rec.attribute7     := l_implicit_rec.ATTRIBUTE7;
1697         l_Agreement_rec.attribute8     := l_implicit_rec.ATTRIBUTE8;
1698         l_Agreement_rec.attribute9     := l_implicit_rec.ATTRIBUTE9;
1699         l_Agreement_rec.context        := l_implicit_rec.CONTEXT;
1700         l_Agreement_rec.created_by     := l_implicit_rec.CREATED_BY;
1701         l_Agreement_rec.creation_date  := l_implicit_rec.CREATION_DATE;
1702         l_Agreement_rec.sold_to_org_id    := l_implicit_rec.SOLD_TO_ORG_ID;
1703         l_Agreement_rec.end_date_active := l_implicit_rec.END_DATE_ACTIVE;
1704         l_Agreement_rec.freight_terms_code := l_implicit_rec.FREIGHT_TERMS_CODE;
1705         l_Agreement_rec.invoice_contact_id := l_implicit_rec.INVOICE_CONTACT_ID;
1706         l_Agreement_rec.invoice_to_org_id := l_implicit_rec.invoice_to_org_id;
1707         l_Agreement_rec.invoicing_rule_id := l_implicit_rec.INVOICING_RULE_ID;
1708         l_Agreement_rec.last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
1709         l_Agreement_rec.last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
1710         l_Agreement_rec.last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
1711         l_Agreement_rec.name           := l_implicit_rec.NAME;
1712         l_Agreement_rec.override_arule_flag := l_implicit_rec.OVERRIDE_ARULE_FLAG;
1713         l_Agreement_rec.override_irule_flag := l_implicit_rec.OVERRIDE_IRULE_FLAG;
1714         l_Agreement_rec.price_list_id  := l_implicit_rec.PRICE_LIST_ID;
1715         l_Agreement_rec.purchase_order_num := l_implicit_rec.PURCHASE_ORDER_NUM;
1716         l_Agreement_rec.revision       := l_implicit_rec.REVISION;
1717         l_Agreement_rec.revision_date  := l_implicit_rec.REVISION_DATE;
1718         l_Agreement_rec.revision_reason_code := l_implicit_rec.REVISION_REASON_CODE;
1719         l_Agreement_rec.salesrep_id    := l_implicit_rec.SALESREP_ID;
1720         l_Agreement_rec.ship_method_code := l_implicit_rec.SHIP_METHOD_CODE;
1721         l_Agreement_rec.signature_date := l_implicit_rec.SIGNATURE_DATE;
1722         l_Agreement_rec.start_date_active := l_implicit_rec.START_DATE_ACTIVE;
1723         l_Agreement_rec.term_id        := l_implicit_rec.TERM_ID;
1724         --Begin code added by rchellam for OKC
1725         l_Agreement_rec.agreement_source_code := l_implicit_rec.AGREEMENT_SOURCE_CODE;
1726         l_Agreement_rec.orig_system_agr_id := l_implicit_rec.ORIG_SYSTEM_AGR_ID;
1727         --End code added by rchellam for OKC
1728 
1729 	-- Added for bug#4029589
1730         l_Agreement_rec.invoice_to_customer_id := l_implicit_rec.INVOICE_TO_CUSTOMER_ID;
1731 
1732         l_Agreement_tbl(l_Agreement_tbl.COUNT + 1) := l_Agreement_rec;
1733 
1734     END LOOP;
1735 
1736 
1737     --  PK sent and no rows found
1738 
1739     IF
1740     (p_agreement_id IS NOT NULL
1741      AND
1742      p_agreement_id <> FND_API.G_MISS_NUM)
1743     AND
1744     (l_Agreement_tbl.COUNT = 0)
1745     THEN
1746         RAISE NO_DATA_FOUND;
1747     END IF;
1748 
1749 
1750     --  Return fetched table
1751 
1752     RETURN l_Agreement_tbl;
1753 
1754 EXCEPTION
1755 
1756     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1757 
1758         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1759 
1760     WHEN OTHERS THEN
1761 
1762         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1763         THEN
1764             OE_MSG_PUB.Add_Exc_Msg
1765             (   G_PKG_NAME
1766             ,   'Query_Rows'
1767             );
1768         END IF;
1769 
1770         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1771 
1772 END Query_Rows;
1773 
1774 --  Procedure       lock_Row
1775 --
1776 
1777 PROCEDURE Lock_Row
1778 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1779 ,   p_Agreement_rec              IN            OE_Pricing_Cont_PUB.Agreement_Rec_Type
1780 ,   x_Agreement_rec              OUT NOCOPY /* file.sql.39 change */ OE_Pricing_Cont_PUB.Agreement_Rec_Type
1781 )
1782 IS
1783 l_Agreement_rec               OE_Pricing_Cont_PUB.Agreement_Rec_Type;
1784 BEGIN
1785 
1786     oe_debug_pub.add('Entering OE_Agreement_Util.Lock_Row');
1787 
1788     OE_AGREEMENTS_PKG.UPDATE_ROW (
1789            	p_Agreement_rec.agreement_id
1790 		 ,	p_Agreement_rec.tp_attribute2
1791 		 ,	p_Agreement_rec.tp_attribute3
1792 		 ,	p_Agreement_rec.tp_attribute4
1793 		 ,	p_Agreement_rec.tp_attribute5
1794 		 ,	p_Agreement_rec.tp_attribute6
1795 		 ,	p_Agreement_rec.tp_attribute7
1796 		 ,	p_Agreement_rec.tp_attribute8
1797 		 ,	p_Agreement_rec.tp_attribute9
1798 		 ,	p_Agreement_rec.tp_attribute10
1799 		 ,	p_Agreement_rec.tp_attribute11
1800 		 ,	p_Agreement_rec.tp_attribute12
1801 		 ,	p_Agreement_rec.tp_attribute13
1802 		 ,	p_Agreement_rec.tp_attribute14
1803 		 ,	p_Agreement_rec.tp_attribute15
1804 		 ,	p_Agreement_rec.tp_attribute_category
1805 		 ,	p_Agreement_rec.agreement_type_code
1806 		 ,	p_Agreement_rec.price_list_id
1807 		 ,	p_Agreement_rec.term_id
1808 		 ,	p_agreement_rec.override_irule_flag
1809 		 ,	p_Agreement_rec.override_arule_flag
1810 		 ,	p_Agreement_rec.signature_date
1811 		 ,	p_Agreement_rec.agreement_num
1812 		 ,	p_Agreement_rec.tp_attribute1
1813 		 ,	p_Agreement_rec.attribute12
1814 		 ,	p_Agreement_rec.attribute13
1815 		 ,	p_Agreement_rec.attribute14
1816 		 ,	p_Agreement_rec.attribute15
1817 		 ,	p_Agreement_rec.attribute11
1818 		 ,	p_Agreement_rec.attribute9
1819 		 ,	p_Agreement_rec.attribute10
1820 		 ,	p_Agreement_rec.revision
1821 		 ,	p_Agreement_rec.revision_date
1822 		 ,	p_Agreement_rec.revision_reason_code
1823 		 ,	p_Agreement_rec.freight_terms_code
1824 		 ,	p_Agreement_rec.ship_method_code
1825 		 ,	p_Agreement_rec.invoicing_rule_id
1826 		 ,	p_Agreement_rec.accounting_rule_id
1830 		 ,	p_Agreement_rec.agreement_contact_id
1827 		 ,	p_Agreement_rec.sold_to_org_id
1828 		 ,	p_Agreement_rec.purchase_order_num
1829 		 ,	p_Agreement_rec.invoice_contact_id
1831 		 ,	p_Agreement_rec.invoice_to_org_id
1832 		 ,	p_Agreement_rec.salesrep_id
1833 		 ,	p_Agreement_rec.start_date_active
1834 		 ,	p_Agreement_rec.end_date_active
1835 		 ,	p_Agreement_rec.comments
1836 		 ,	p_Agreement_rec.context
1837 		 ,	p_Agreement_rec.attribute1
1838 		 ,	p_Agreement_rec.attribute2
1839 		 ,	p_Agreement_rec.attribute3
1840 		 ,	p_Agreement_rec.attribute4
1841 		 ,	p_Agreement_rec.attribute5
1842 		 ,	p_Agreement_rec.attribute6
1843 		 ,	p_Agreement_rec.attribute7
1844 		 ,	p_Agreement_rec.attribute8
1845 		 ,	p_Agreement_rec.name
1846 		 ,	p_Agreement_rec.last_update_date
1847 		 ,	p_Agreement_rec.last_updated_by
1848 		 ,	p_Agreement_rec.last_update_login
1849 		 ,	p_Agreement_rec.agreement_source_code --added by
1850 		 ,	p_Agreement_rec.orig_system_agr_id --rchellam for OKC
1851 		 ,	p_Agreement_rec.invoice_to_customer_id -- Added for bug#4029589
1852     );
1853 
1854 -- below code commented
1855 /*
1856     SELECT  ACCOUNTING_RULE_ID
1857     ,       AGREEMENT_CONTACT_ID
1858     ,       AGREEMENT_ID
1859     ,       AGREEMENT_NUM
1860     ,       AGREEMENT_TYPE_CODE
1861     ,       ATTRIBUTE1
1862     ,       ATTRIBUTE10
1863     ,       ATTRIBUTE11
1864     ,       ATTRIBUTE12
1865     ,       ATTRIBUTE13
1866     ,       ATTRIBUTE14
1867     ,       ATTRIBUTE15
1868     ,       ATTRIBUTE2
1869     ,       ATTRIBUTE3
1870     ,       ATTRIBUTE4
1871     ,       ATTRIBUTE5
1872     ,       ATTRIBUTE6
1873     ,       ATTRIBUTE7
1874     ,       ATTRIBUTE8
1875     ,       ATTRIBUTE9
1876     ,       CONTEXT
1877     ,       CREATED_BY
1878     ,       CREATION_DATE
1879     ,       sold_to_org_id
1880     ,       END_DATE_ACTIVE
1881     ,       FREIGHT_TERMS_CODE
1882     ,       INVOICE_CONTACT_ID
1883     ,       invoice_to_org_id
1884     ,       INVOICING_RULE_ID
1885     ,       LAST_UPDATED_BY
1886     ,       LAST_UPDATE_DATE
1887     ,       LAST_UPDATE_LOGIN
1888     ,       NAME
1889     ,       OVERRIDE_ARULE_FLAG
1890     ,       OVERRIDE_IRULE_FLAG
1891     ,       PRICE_LIST_ID
1892     ,       PURCHASE_ORDER_NUM
1893     ,       REVISION
1894     ,       REVISION_DATE
1895     ,       REVISION_REASON_CODE
1896     ,       SALESREP_ID
1897     ,       SHIP_METHOD_CODE
1898     ,       SIGNATURE_DATE
1899     ,       START_DATE_ACTIVE
1900     ,       TERM_ID
1901     INTO    l_Agreement_rec.accounting_rule_id
1902     ,       l_Agreement_rec.agreement_contact_id
1903     ,       l_Agreement_rec.agreement_id
1904     ,       l_Agreement_rec.agreement_num
1905     ,       l_Agreement_rec.agreement_type_code
1906     ,       l_Agreement_rec.attribute1
1907     ,       l_Agreement_rec.attribute10
1908     ,       l_Agreement_rec.attribute11
1909     ,       l_Agreement_rec.attribute12
1910     ,       l_Agreement_rec.attribute13
1911     ,       l_Agreement_rec.attribute14
1912     ,       l_Agreement_rec.attribute15
1913     ,       l_Agreement_rec.attribute2
1914     ,       l_Agreement_rec.attribute3
1915     ,       l_Agreement_rec.attribute4
1916     ,       l_Agreement_rec.attribute5
1917     ,       l_Agreement_rec.attribute6
1918     ,       l_Agreement_rec.attribute7
1919     ,       l_Agreement_rec.attribute8
1920     ,       l_Agreement_rec.attribute9
1921     ,       l_Agreement_rec.context
1922     ,       l_Agreement_rec.created_by
1923     ,       l_Agreement_rec.creation_date
1924     ,       l_Agreement_rec.sold_to_org_id
1925     ,       l_Agreement_rec.end_date_active
1926     ,       l_Agreement_rec.freight_terms_code
1927     ,       l_Agreement_rec.invoice_contact_id
1928     ,       l_Agreement_rec.invoice_to_org_id
1929     ,       l_Agreement_rec.invoicing_rule_id
1930     ,       l_Agreement_rec.last_updated_by
1931     ,       l_Agreement_rec.last_update_date
1932     ,       l_Agreement_rec.last_update_login
1933     ,       l_Agreement_rec.name
1934     ,       l_Agreement_rec.override_arule_flag
1935     ,       l_Agreement_rec.override_irule_flag
1936     ,       l_Agreement_rec.price_list_id
1937     ,       l_Agreement_rec.purchase_order_num
1938     ,       l_Agreement_rec.revision
1939     ,       l_Agreement_rec.revision_date
1940     ,       l_Agreement_rec.revision_reason_code
1941     ,       l_Agreement_rec.salesrep_id
1942     ,       l_Agreement_rec.ship_method_code
1943     ,       l_Agreement_rec.signature_date
1944     ,       l_Agreement_rec.start_date_active
1945     ,       l_Agreement_rec.term_id
1946     FROM    OE_AGREEMENTS
1947     WHERE   AGREEMENT_ID = p_Agreement_rec.agreement_id
1948         FOR UPDATE NOWAIT;
1949 */
1950     --  Row locked. Compare IN attributes to DB attributes.
1951 
1952     IF  (   (l_Agreement_rec.accounting_rule_id =
1953              p_Agreement_rec.accounting_rule_id) OR
1954             ((p_Agreement_rec.accounting_rule_id = FND_API.G_MISS_NUM) OR
1955             (   (l_Agreement_rec.accounting_rule_id IS NULL) AND
1956                 (p_Agreement_rec.accounting_rule_id IS NULL))))
1957     AND (   (l_Agreement_rec.agreement_contact_id =
1958              p_Agreement_rec.agreement_contact_id) OR
1959             ((p_Agreement_rec.agreement_contact_id = FND_API.G_MISS_NUM) OR
1960             (   (l_Agreement_rec.agreement_contact_id IS NULL) AND
1961                 (p_Agreement_rec.agreement_contact_id IS NULL))))
1962     AND (   (l_Agreement_rec.agreement_id =
1963              p_Agreement_rec.agreement_id) OR
1964             ((p_Agreement_rec.agreement_id = FND_API.G_MISS_NUM) OR
1965             (   (l_Agreement_rec.agreement_id IS NULL) AND
1966                 (p_Agreement_rec.agreement_id IS NULL))))
1970             (   (l_Agreement_rec.agreement_num IS NULL) AND
1967     AND (   (l_Agreement_rec.agreement_num =
1968              p_Agreement_rec.agreement_num) OR
1969             ((p_Agreement_rec.agreement_num = FND_API.G_MISS_CHAR) OR
1971                 (p_Agreement_rec.agreement_num IS NULL))))
1972     AND (   (l_Agreement_rec.agreement_type_code =
1973              p_Agreement_rec.agreement_type_code) OR
1974             ((p_Agreement_rec.agreement_type_code = FND_API.G_MISS_CHAR) OR
1975             (   (l_Agreement_rec.agreement_type_code IS NULL) AND
1976                 (p_Agreement_rec.agreement_type_code IS NULL))))
1977     AND (   (l_Agreement_rec.attribute1 =
1978              p_Agreement_rec.attribute1) OR
1979             ((p_Agreement_rec.attribute1 = FND_API.G_MISS_CHAR) OR
1980             (   (l_Agreement_rec.attribute1 IS NULL) AND
1981                 (p_Agreement_rec.attribute1 IS NULL))))
1982     AND (   (l_Agreement_rec.attribute10 =
1983              p_Agreement_rec.attribute10) OR
1984             ((p_Agreement_rec.attribute10 = FND_API.G_MISS_CHAR) OR
1985             (   (l_Agreement_rec.attribute10 IS NULL) AND
1986                 (p_Agreement_rec.attribute10 IS NULL))))
1987     AND (   (l_Agreement_rec.attribute11 =
1988              p_Agreement_rec.attribute11) OR
1989             ((p_Agreement_rec.attribute11 = FND_API.G_MISS_CHAR) OR
1990             (   (l_Agreement_rec.attribute11 IS NULL) AND
1991                 (p_Agreement_rec.attribute11 IS NULL))))
1992     AND (   (l_Agreement_rec.attribute12 =
1993              p_Agreement_rec.attribute12) OR
1994             ((p_Agreement_rec.attribute12 = FND_API.G_MISS_CHAR) OR
1995             (   (l_Agreement_rec.attribute12 IS NULL) AND
1996                 (p_Agreement_rec.attribute12 IS NULL))))
1997     AND (   (l_Agreement_rec.attribute13 =
1998              p_Agreement_rec.attribute13) OR
1999             ((p_Agreement_rec.attribute13 = FND_API.G_MISS_CHAR) OR
2000             (   (l_Agreement_rec.attribute13 IS NULL) AND
2001                 (p_Agreement_rec.attribute13 IS NULL))))
2002     AND (   (l_Agreement_rec.attribute14 =
2003              p_Agreement_rec.attribute14) OR
2004             ((p_Agreement_rec.attribute14 = FND_API.G_MISS_CHAR) OR
2005             (   (l_Agreement_rec.attribute14 IS NULL) AND
2006                 (p_Agreement_rec.attribute14 IS NULL))))
2007     AND (   (l_Agreement_rec.attribute15 =
2008              p_Agreement_rec.attribute15) OR
2009             ((p_Agreement_rec.attribute15 = FND_API.G_MISS_CHAR) OR
2010             (   (l_Agreement_rec.attribute15 IS NULL) AND
2011                 (p_Agreement_rec.attribute15 IS NULL))))
2012     AND (   (l_Agreement_rec.attribute2 =
2013              p_Agreement_rec.attribute2) OR
2014             ((p_Agreement_rec.attribute2 = FND_API.G_MISS_CHAR) OR
2015             (   (l_Agreement_rec.attribute2 IS NULL) AND
2016                 (p_Agreement_rec.attribute2 IS NULL))))
2017     AND (   (l_Agreement_rec.attribute3 =
2018              p_Agreement_rec.attribute3) OR
2019             ((p_Agreement_rec.attribute3 = FND_API.G_MISS_CHAR) OR
2020             (   (l_Agreement_rec.attribute3 IS NULL) AND
2021                 (p_Agreement_rec.attribute3 IS NULL))))
2022     AND (   (l_Agreement_rec.attribute4 =
2023              p_Agreement_rec.attribute4) OR
2024             ((p_Agreement_rec.attribute4 = FND_API.G_MISS_CHAR) OR
2025             (   (l_Agreement_rec.attribute4 IS NULL) AND
2026                 (p_Agreement_rec.attribute4 IS NULL))))
2027     AND (   (l_Agreement_rec.attribute5 =
2028              p_Agreement_rec.attribute5) OR
2029             ((p_Agreement_rec.attribute5 = FND_API.G_MISS_CHAR) OR
2030             (   (l_Agreement_rec.attribute5 IS NULL) AND
2031                 (p_Agreement_rec.attribute5 IS NULL))))
2032     AND (   (l_Agreement_rec.attribute6 =
2033              p_Agreement_rec.attribute6) OR
2034             ((p_Agreement_rec.attribute6 = FND_API.G_MISS_CHAR) OR
2035             (   (l_Agreement_rec.attribute6 IS NULL) AND
2036                 (p_Agreement_rec.attribute6 IS NULL))))
2037     AND (   (l_Agreement_rec.attribute7 =
2038              p_Agreement_rec.attribute7) OR
2039             ((p_Agreement_rec.attribute7 = FND_API.G_MISS_CHAR) OR
2040             (   (l_Agreement_rec.attribute7 IS NULL) AND
2041                 (p_Agreement_rec.attribute7 IS NULL))))
2042     AND (   (l_Agreement_rec.attribute8 =
2043              p_Agreement_rec.attribute8) OR
2044             ((p_Agreement_rec.attribute8 = FND_API.G_MISS_CHAR) OR
2045             (   (l_Agreement_rec.attribute8 IS NULL) AND
2046                 (p_Agreement_rec.attribute8 IS NULL))))
2047     AND (   (l_Agreement_rec.attribute9 =
2048              p_Agreement_rec.attribute9) OR
2049             ((p_Agreement_rec.attribute9 = FND_API.G_MISS_CHAR) OR
2050             (   (l_Agreement_rec.attribute9 IS NULL) AND
2051                 (p_Agreement_rec.attribute9 IS NULL))))
2052     AND (   (l_Agreement_rec.context =
2053              p_Agreement_rec.context) OR
2054             ((p_Agreement_rec.context = FND_API.G_MISS_CHAR) OR
2055             (   (l_Agreement_rec.context IS NULL) AND
2056                 (p_Agreement_rec.context IS NULL))))
2057     AND (   (l_Agreement_rec.created_by =
2058              p_Agreement_rec.created_by) OR
2059             ((p_Agreement_rec.created_by = FND_API.G_MISS_NUM) OR
2060             (   (l_Agreement_rec.created_by IS NULL) AND
2061                 (p_Agreement_rec.created_by IS NULL))))
2062     AND (   (l_Agreement_rec.creation_date =
2063              p_Agreement_rec.creation_date) OR
2064             ((p_Agreement_rec.creation_date = FND_API.G_MISS_DATE) OR
2065             (   (l_Agreement_rec.creation_date IS NULL) AND
2066                 (p_Agreement_rec.creation_date IS NULL))))
2067     AND (   (l_Agreement_rec.sold_to_org_id =
2068              p_Agreement_rec.sold_to_org_id) OR
2069             ((p_Agreement_rec.sold_to_org_id = FND_API.G_MISS_NUM) OR
2070             (   (l_Agreement_rec.sold_to_org_id IS NULL) AND
2071                 (p_Agreement_rec.sold_to_org_id IS NULL))))
2075             (   (l_Agreement_rec.end_date_active IS NULL) AND
2072     AND (   (l_Agreement_rec.end_date_active =
2073              p_Agreement_rec.end_date_active) OR
2074             ((p_Agreement_rec.end_date_active = FND_API.G_MISS_DATE) OR
2076                 (p_Agreement_rec.end_date_active IS NULL))))
2077     AND (   (l_Agreement_rec.freight_terms_code =
2078              p_Agreement_rec.freight_terms_code) OR
2079             ((p_Agreement_rec.freight_terms_code = FND_API.G_MISS_CHAR) OR
2080             (   (l_Agreement_rec.freight_terms_code IS NULL) AND
2081                 (p_Agreement_rec.freight_terms_code IS NULL))))
2082     AND (   (l_Agreement_rec.invoice_contact_id =
2083              p_Agreement_rec.invoice_contact_id) OR
2084             ((p_Agreement_rec.invoice_contact_id = FND_API.G_MISS_NUM) OR
2085             (   (l_Agreement_rec.invoice_contact_id IS NULL) AND
2086                 (p_Agreement_rec.invoice_contact_id IS NULL))))
2087     AND (   (l_Agreement_rec.invoice_to_org_id =
2088              p_Agreement_rec.invoice_to_org_id) OR
2089             ((p_Agreement_rec.invoice_to_org_id = FND_API.G_MISS_NUM) OR
2090             (   (l_Agreement_rec.invoice_to_org_id IS NULL) AND
2091                 (p_Agreement_rec.invoice_to_org_id IS NULL))))
2092     AND (   (l_Agreement_rec.invoicing_rule_id =
2093              p_Agreement_rec.invoicing_rule_id) OR
2094             ((p_Agreement_rec.invoicing_rule_id = FND_API.G_MISS_NUM) OR
2095             (   (l_Agreement_rec.invoicing_rule_id IS NULL) AND
2096                 (p_Agreement_rec.invoicing_rule_id IS NULL))))
2097     AND (   (l_Agreement_rec.last_updated_by =
2098              p_Agreement_rec.last_updated_by) OR
2099             ((p_Agreement_rec.last_updated_by = FND_API.G_MISS_NUM) OR
2100             (   (l_Agreement_rec.last_updated_by IS NULL) AND
2101                 (p_Agreement_rec.last_updated_by IS NULL))))
2102     AND (   (l_Agreement_rec.last_update_date =
2103              p_Agreement_rec.last_update_date) OR
2104             ((p_Agreement_rec.last_update_date = FND_API.G_MISS_DATE) OR
2105             (   (l_Agreement_rec.last_update_date IS NULL) AND
2106                 (p_Agreement_rec.last_update_date IS NULL))))
2107     AND (   (l_Agreement_rec.last_update_login =
2108              p_Agreement_rec.last_update_login) OR
2109             ((p_Agreement_rec.last_update_login = FND_API.G_MISS_NUM) OR
2110             (   (l_Agreement_rec.last_update_login IS NULL) AND
2111                 (p_Agreement_rec.last_update_login IS NULL))))
2112     AND (   (l_Agreement_rec.name =
2113              p_Agreement_rec.name) OR
2114             ((p_Agreement_rec.name = FND_API.G_MISS_CHAR) OR
2115             (   (l_Agreement_rec.name IS NULL) AND
2116                 (p_Agreement_rec.name IS NULL))))
2117     AND (   (l_Agreement_rec.override_arule_flag =
2118              p_Agreement_rec.override_arule_flag) OR
2119             ((p_Agreement_rec.override_arule_flag = FND_API.G_MISS_CHAR) OR
2120             (   (l_Agreement_rec.override_arule_flag IS NULL) AND
2121                 (p_Agreement_rec.override_arule_flag IS NULL))))
2122     AND (   (l_Agreement_rec.override_irule_flag =
2123              p_Agreement_rec.override_irule_flag) OR
2124             ((p_Agreement_rec.override_irule_flag = FND_API.G_MISS_CHAR) OR
2125             (   (l_Agreement_rec.override_irule_flag IS NULL) AND
2126                 (p_Agreement_rec.override_irule_flag IS NULL))))
2127     AND (   (l_Agreement_rec.price_list_id =
2128              p_Agreement_rec.price_list_id) OR
2129             ((p_Agreement_rec.price_list_id = FND_API.G_MISS_NUM) OR
2130             (   (l_Agreement_rec.price_list_id IS NULL) AND
2131                 (p_Agreement_rec.price_list_id IS NULL))))
2132     AND (   (l_Agreement_rec.purchase_order_num =
2133              p_Agreement_rec.purchase_order_num) OR
2134             ((p_Agreement_rec.purchase_order_num = FND_API.G_MISS_CHAR) OR
2135             (   (l_Agreement_rec.purchase_order_num IS NULL) AND
2136                 (p_Agreement_rec.purchase_order_num IS NULL))))
2137     AND (   (l_Agreement_rec.revision =
2138              p_Agreement_rec.revision) OR
2139             ((p_Agreement_rec.revision = FND_API.G_MISS_CHAR) OR
2140             (   (l_Agreement_rec.revision IS NULL) AND
2141                 (p_Agreement_rec.revision IS NULL))))
2142     AND (   (l_Agreement_rec.revision_date =
2143              p_Agreement_rec.revision_date) OR
2144             ((p_Agreement_rec.revision_date = FND_API.G_MISS_DATE) OR
2145             (   (l_Agreement_rec.revision_date IS NULL) AND
2146                 (p_Agreement_rec.revision_date IS NULL))))
2147     AND (   (l_Agreement_rec.revision_reason_code =
2148              p_Agreement_rec.revision_reason_code) OR
2149             ((p_Agreement_rec.revision_reason_code = FND_API.G_MISS_CHAR) OR
2150             (   (l_Agreement_rec.revision_reason_code IS NULL) AND
2151                 (p_Agreement_rec.revision_reason_code IS NULL))))
2152     AND (   (l_Agreement_rec.salesrep_id =
2153              p_Agreement_rec.salesrep_id) OR
2154             ((p_Agreement_rec.salesrep_id = FND_API.G_MISS_NUM) OR
2155             (   (l_Agreement_rec.salesrep_id IS NULL) AND
2156                 (p_Agreement_rec.salesrep_id IS NULL))))
2157     AND (   (l_Agreement_rec.ship_method_code =
2158              p_Agreement_rec.ship_method_code) OR
2159             ((p_Agreement_rec.ship_method_code = FND_API.G_MISS_CHAR) OR
2160             (   (l_Agreement_rec.ship_method_code IS NULL) AND
2161                 (p_Agreement_rec.ship_method_code IS NULL))))
2162     AND (   (l_Agreement_rec.signature_date =
2163              p_Agreement_rec.signature_date) OR
2164             ((p_Agreement_rec.signature_date = FND_API.G_MISS_DATE) OR
2165             (   (l_Agreement_rec.signature_date IS NULL) AND
2166                 (p_Agreement_rec.signature_date IS NULL))))
2167     AND (   (l_Agreement_rec.start_date_active =
2168              p_Agreement_rec.start_date_active) OR
2169             ((p_Agreement_rec.start_date_active = FND_API.G_MISS_DATE) OR
2170             (   (l_Agreement_rec.start_date_active IS NULL) AND
2171                 (p_Agreement_rec.start_date_active IS NULL))))
2172     AND (   (l_Agreement_rec.term_id =
2173              p_Agreement_rec.term_id) OR
2174             ((p_Agreement_rec.term_id = FND_API.G_MISS_NUM) OR
2175             (   (l_Agreement_rec.term_id IS NULL) AND
2176                 (p_Agreement_rec.term_id IS NULL))))
2177     --Begin code added by rchellam for OKC
2178     AND (   (l_Agreement_rec.agreement_source_code =
2179              p_Agreement_rec.agreement_source_code) OR
2180             ((p_Agreement_rec.agreement_source_code = FND_API.G_MISS_CHAR) OR
2181             (   (l_Agreement_rec.agreement_source_code IS NULL) AND
2182                 (p_Agreement_rec.agreement_source_code IS NULL))))
2183     AND (   (l_Agreement_rec.orig_system_agr_id =
2184              p_Agreement_rec.orig_system_agr_id) OR
2185             ((p_Agreement_rec.orig_system_agr_id = FND_API.G_MISS_NUM) OR
2186             (   (l_Agreement_rec.orig_system_agr_id IS NULL) AND
2187                 (p_Agreement_rec.orig_system_agr_id IS NULL))))
2188     --End code added by rchellam for OKC
2189         -- Added for bug#4029589
2190     AND (   (l_Agreement_rec.invoice_to_customer_id =
2191              p_Agreement_rec.invoice_to_customer_id) OR
2192             ((p_Agreement_rec.invoice_to_customer_id = FND_API.G_MISS_NUM) OR
2193             (   (l_Agreement_rec.invoice_to_customer_id IS NULL) AND
2194                 (p_Agreement_rec.invoice_to_customer_id IS NULL))))
2195     THEN
2196 
2197         --  Row has not changed. Set out parameter.
2198 
2199         x_Agreement_rec                := l_Agreement_rec;
2200 
2201         --  Set return status
2202 
2203         x_return_status                := FND_API.G_RET_STS_SUCCESS;
2204         x_Agreement_rec.return_status  := FND_API.G_RET_STS_SUCCESS;
2205 
2206     ELSE
2207 
2208         --  Row has changed by another user.
2209 
2210         x_return_status                := FND_API.G_RET_STS_ERROR;
2211         x_Agreement_rec.return_status  := FND_API.G_RET_STS_ERROR;
2212 
2213         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
2214         THEN
2215 
2216             FND_MESSAGE.SET_NAME('OE','OE_LOCK_ROW_CHANGED');
2217             OE_MSG_PUB.Add;
2218 
2219         END IF;
2220 
2221     END IF;
2222 
2223     oe_debug_pub.add('Entering OE_Agreement_Util.Lock_Row');
2224 
2225 EXCEPTION
2226 
2227     WHEN NO_DATA_FOUND THEN
2228 
2229         x_return_status                := FND_API.G_RET_STS_ERROR;
2230         x_Agreement_rec.return_status  := FND_API.G_RET_STS_ERROR;
2231 
2232         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
2233         THEN
2234 
2235             FND_MESSAGE.SET_NAME('OE','OE_LOCK_ROW_DELETED');
2236             OE_MSG_PUB.Add;
2237 
2238         END IF;
2239     WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
2240 
2241         x_return_status                := FND_API.G_RET_STS_ERROR;
2242         x_Agreement_rec.return_status  := FND_API.G_RET_STS_ERROR;
2243 
2244         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
2245         THEN
2246 
2247             FND_MESSAGE.SET_NAME('OE','OE_LOCK_ROW_ALREADY_LOCKED');
2248             OE_MSG_PUB.Add;
2249 
2250         END IF;
2251     WHEN OTHERS THEN
2252 
2253         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
2254         x_Agreement_rec.return_status  := FND_API.G_RET_STS_UNEXP_ERROR;
2255 
2256         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2257         THEN
2258             OE_MSG_PUB.Add_Exc_Msg
2259             (   G_PKG_NAME
2260             ,   'Lock_Row'
2261             );
2262         END IF;
2263 
2264 END Lock_Row;
2265 
2266 --  Function Get_Values
2267 
2268 FUNCTION Get_Values
2269 (   p_Agreement_rec                 IN  OE_Pricing_Cont_PUB.Agreement_Rec_Type
2270 ,   p_old_Agreement_rec             IN  OE_Pricing_Cont_PUB.Agreement_Rec_Type :=
2271                                         OE_Pricing_Cont_PUB.G_MISS_AGREEMENT_REC
2272 ) RETURN OE_Pricing_Cont_PUB.Agreement_Val_Rec_Type
2273 IS
2274 l_Agreement_val_rec           OE_Pricing_Cont_PUB.Agreement_Val_Rec_Type;
2275 BEGIN
2276 
2277     oe_debug_pub.add('Entering OE_Agreement_Util.Get_Values');
2278 
2279     IF p_Agreement_rec.accounting_rule_id IS NOT NULL AND
2280         p_Agreement_rec.accounting_rule_id <> FND_API.G_MISS_NUM AND
2281         NOT OE_GLOBALS.Equal(p_Agreement_rec.accounting_rule_id,
2282         p_old_Agreement_rec.accounting_rule_id)
2283     THEN
2284         l_Agreement_val_rec.accounting_rule := QP_Id_To_Value.Accounting_Rule
2285         (   p_accounting_rule_id          => p_Agreement_rec.accounting_rule_id
2286         );
2287     END IF;
2288 
2289     IF p_Agreement_rec.agreement_contact_id IS NOT NULL AND
2290         p_Agreement_rec.agreement_contact_id <> FND_API.G_MISS_NUM AND
2291         NOT OE_GLOBALS.Equal(p_Agreement_rec.agreement_contact_id,
2292         p_old_Agreement_rec.agreement_contact_id)
2293     THEN
2294         l_Agreement_val_rec.agreement_contact := QP_Id_To_Value.Agreement_Contact
2295         (   p_agreement_contact_id        => p_Agreement_rec.agreement_contact_id
2296         );
2297     END IF;
2298 
2299 /*changes made by spgopal for 'AGR' fix 08/10/00*/
2300 /*
2301     IF p_Agreement_rec.agreement_id IS NOT NULL AND
2302         p_Agreement_rec.agreement_id <> FND_API.G_MISS_NUM AND
2303         NOT OE_GLOBALS.Equal(p_Agreement_rec.agreement_id,
2304         p_old_Agreement_rec.agreement_id)
2305     THEN
2306         l_Agreement_val_rec.agreement := QP_Id_To_Value.Agreement
2307         (   p_agreement_id                => p_Agreement_rec.agreement_id
2308         );
2309     END IF;
2310     */
2311 
2312     IF p_Agreement_rec.agreement_type_code IS NOT NULL AND
2313         p_Agreement_rec.agreement_type_code <> FND_API.G_MISS_CHAR AND
2314         NOT OE_GLOBALS.Equal(p_Agreement_rec.agreement_type_code,
2315         p_old_Agreement_rec.agreement_type_code)
2316     THEN
2317         l_Agreement_val_rec.agreement_type := QP_Id_To_Value.Agreement_Type
2318         (   p_agreement_type_code         => p_Agreement_rec.agreement_type_code
2319         );
2320     END IF;
2321 
2322     IF p_Agreement_rec.sold_to_org_id IS NOT NULL AND
2323         p_Agreement_rec.sold_to_org_id <> FND_API.G_MISS_NUM AND
2324         NOT OE_GLOBALS.Equal(p_Agreement_rec.sold_to_org_id,
2325         p_old_Agreement_rec.sold_to_org_id)
2326     THEN
2327         l_Agreement_val_rec.customer := QP_Id_To_Value.Customer
2328         (   p_sold_to_org_id                 => p_Agreement_rec.sold_to_org_id
2329         );
2330     END IF;
2331 
2332     IF p_Agreement_rec.freight_terms_code IS NOT NULL AND
2333         p_Agreement_rec.freight_terms_code <> FND_API.G_MISS_CHAR AND
2334         NOT OE_GLOBALS.Equal(p_Agreement_rec.freight_terms_code,
2335         p_old_Agreement_rec.freight_terms_code)
2336     THEN
2337         l_Agreement_val_rec.freight_terms := QP_Id_To_Value.Freight_Terms
2338         (   p_freight_terms_code          => p_Agreement_rec.freight_terms_code
2339         );
2340     END IF;
2341 
2342     IF p_Agreement_rec.invoice_contact_id IS NOT NULL AND
2343         p_Agreement_rec.invoice_contact_id <> FND_API.G_MISS_NUM AND
2344         NOT OE_GLOBALS.Equal(p_Agreement_rec.invoice_contact_id,
2345         p_old_Agreement_rec.invoice_contact_id)
2346     THEN
2347         l_Agreement_val_rec.invoice_contact := QP_Id_To_Value.Invoice_Contact
2348         (   p_invoice_contact_id          => p_Agreement_rec.invoice_contact_id
2349         );
2350     END IF;
2351 
2352     IF p_Agreement_rec.invoice_to_org_id IS NOT NULL AND
2353         p_Agreement_rec.invoice_to_org_id <> FND_API.G_MISS_NUM AND
2354         NOT OE_GLOBALS.Equal(p_Agreement_rec.invoice_to_org_id,
2355         p_old_Agreement_rec.invoice_to_org_id)
2356     THEN
2357         l_Agreement_val_rec.invoice_to_site_use := QP_Id_To_Value.Invoice_To_Site_Use
2358         (   p_invoice_to_org_id      => p_Agreement_rec.invoice_to_org_id
2359         );
2360     END IF;
2361 
2362     IF p_Agreement_rec.invoicing_rule_id IS NOT NULL AND
2363         p_Agreement_rec.invoicing_rule_id <> FND_API.G_MISS_NUM AND
2364         NOT OE_GLOBALS.Equal(p_Agreement_rec.invoicing_rule_id,
2365         p_old_Agreement_rec.invoicing_rule_id)
2366     THEN
2367         l_Agreement_val_rec.invoicing_rule := QP_Id_To_Value.Invoicing_Rule
2368         (   p_invoicing_rule_id           => p_Agreement_rec.invoicing_rule_id
2369         );
2370     END IF;
2371 
2372     IF p_Agreement_rec.override_arule_flag IS NOT NULL AND
2373         p_Agreement_rec.override_arule_flag <> FND_API.G_MISS_CHAR AND
2374         NOT OE_GLOBALS.Equal(p_Agreement_rec.override_arule_flag,
2375         p_old_Agreement_rec.override_arule_flag)
2376     THEN
2377         l_Agreement_val_rec.override_arule := QP_Id_To_Value.Override_Arule
2378         (   p_override_arule_flag         => p_Agreement_rec.override_arule_flag
2379         );
2380     END IF;
2381 
2382     IF p_Agreement_rec.override_irule_flag IS NOT NULL AND
2383         p_Agreement_rec.override_irule_flag <> FND_API.G_MISS_CHAR AND
2384         NOT OE_GLOBALS.Equal(p_Agreement_rec.override_irule_flag,
2385         p_old_Agreement_rec.override_irule_flag)
2386     THEN
2387         l_Agreement_val_rec.override_irule := QP_Id_To_Value.Override_Irule
2388         (   p_override_irule_flag         => p_Agreement_rec.override_irule_flag
2389         );
2390     END IF;
2391 
2392     IF p_Agreement_rec.price_list_id IS NOT NULL AND
2393         p_Agreement_rec.price_list_id <> FND_API.G_MISS_NUM AND
2394         NOT OE_GLOBALS.Equal(p_Agreement_rec.price_list_id,
2395         p_old_Agreement_rec.price_list_id)
2396     THEN
2397         l_Agreement_val_rec.price_list := QP_Id_To_Value.Price_List
2398         (   p_price_list_id               => p_Agreement_rec.price_list_id
2399         );
2400     END IF;
2401 
2402     IF p_Agreement_rec.revision_reason_code IS NOT NULL AND
2403         p_Agreement_rec.revision_reason_code <> FND_API.G_MISS_CHAR AND
2404         NOT OE_GLOBALS.Equal(p_Agreement_rec.revision_reason_code,
2405         p_old_Agreement_rec.revision_reason_code)
2406     THEN
2407         l_Agreement_val_rec.revision_reason := QP_Id_To_Value.Revision_Reason
2408         (   p_revision_reason_code        => p_Agreement_rec.revision_reason_code
2409         );
2410     END IF;
2411 
2412     IF p_Agreement_rec.salesrep_id IS NOT NULL AND
2413         p_Agreement_rec.salesrep_id <> FND_API.G_MISS_NUM AND
2414         NOT OE_GLOBALS.Equal(p_Agreement_rec.salesrep_id,
2415         p_old_Agreement_rec.salesrep_id)
2416     THEN
2417         l_Agreement_val_rec.salesrep := QP_Id_To_Value.Salesrep
2418         (   p_salesrep_id                 => p_Agreement_rec.salesrep_id
2419         );
2420     END IF;
2421 
2422     IF p_Agreement_rec.ship_method_code IS NOT NULL AND
2423         p_Agreement_rec.ship_method_code <> FND_API.G_MISS_CHAR AND
2424         NOT OE_GLOBALS.Equal(p_Agreement_rec.ship_method_code,
2425         p_old_Agreement_rec.ship_method_code)
2426     THEN
2427         l_Agreement_val_rec.ship_method := QP_Id_To_Value.Ship_Method
2428         (   p_ship_method_code            => p_Agreement_rec.ship_method_code
2429         );
2430     END IF;
2431 
2432     IF p_Agreement_rec.term_id IS NOT NULL AND
2433         p_Agreement_rec.term_id <> FND_API.G_MISS_NUM AND
2434         NOT OE_GLOBALS.Equal(p_Agreement_rec.term_id,
2435         p_old_Agreement_rec.term_id)
2436     THEN
2437         l_Agreement_val_rec.term := QP_Id_To_Value.Term
2438         (   p_term_id                     => p_Agreement_rec.term_id
2439         );
2440     END IF;
2441 
2442     --Begin code added by rchellam for OKC
2443     IF p_Agreement_rec.agreement_source_code IS NOT NULL AND
2444         p_Agreement_rec.agreement_source_code <> FND_API.G_MISS_CHAR AND
2445         NOT OE_GLOBALS.Equal(p_Agreement_rec.agreement_source_code,
2446         p_old_Agreement_rec.agreement_source_code)
2447     THEN
2448         l_Agreement_val_rec.agreement_source := QP_Id_To_Value.Agreement_Source
2449         (   p_agreement_source_code     => p_Agreement_rec.agreement_source_code
2450         );
2451     END IF;
2452     --End code added by rchellam for OKC
2453 
2454     RETURN l_Agreement_val_rec;
2455 
2456     oe_debug_pub.add('Exiting OE_Agreement_Util.Get_Values');
2457 
2458 END Get_Values;
2459 
2460 --  Function Get_Ids
2461 
2462 FUNCTION Get_Ids
2463 (   p_Agreement_rec                 IN  OE_Pricing_Cont_PUB.Agreement_Rec_Type
2464 ,   p_Agreement_val_rec             IN  OE_Pricing_Cont_PUB.Agreement_Val_Rec_Type
2465 ) RETURN OE_Pricing_Cont_PUB.Agreement_Rec_Type
2466 IS
2467 l_Agreement_rec               OE_Pricing_Cont_PUB.Agreement_Rec_Type;
2468 BEGIN
2469 
2470     oe_debug_pub.add('Entering OE_Agreement_Util.Get_Ids');
2471 
2472     --  initialize  return_status.
2473 
2474     l_Agreement_rec.return_status := FND_API.G_RET_STS_SUCCESS;
2475 
2476     --  initialize l_Agreement_rec.
2477 
2478     l_Agreement_rec := p_Agreement_rec;
2479 
2480     IF  p_Agreement_val_rec.accounting_rule <> FND_API.G_MISS_CHAR
2481     THEN
2482 
2483         IF p_Agreement_rec.accounting_rule_id <> FND_API.G_MISS_NUM THEN
2484 
2485             l_Agreement_rec.accounting_rule_id := p_Agreement_rec.accounting_rule_id;
2486 
2487             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2488             THEN
2489 
2490                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2491                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','accounting_rule');
2492                 OE_MSG_PUB.Add;
2493 
2494             END IF;
2495 
2496         ELSE
2497 
2498             l_Agreement_rec.accounting_rule_id := QP_Value_To_Id.accounting_rule
2499             (   p_accounting_rule             => p_Agreement_val_rec.accounting_rule
2500             );
2501 
2502             IF l_Agreement_rec.accounting_rule_id = FND_API.G_MISS_NUM THEN
2503                 l_Agreement_rec.return_status := FND_API.G_RET_STS_ERROR;
2504             END IF;
2505 
2506         END IF;
2507 
2508     END IF;
2509 
2510     IF  p_Agreement_val_rec.agreement_contact <> FND_API.G_MISS_CHAR
2511     THEN
2512 
2513         IF p_Agreement_rec.agreement_contact_id <> FND_API.G_MISS_NUM THEN
2514 
2515             l_Agreement_rec.agreement_contact_id := p_Agreement_rec.agreement_contact_id;
2516 
2517             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2518             THEN
2519 
2520                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2521                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','agreement_contact');
2522                 OE_MSG_PUB.Add;
2523 
2524             END IF;
2525 
2526         ELSE
2527 
2528             l_Agreement_rec.agreement_contact_id := QP_Value_To_Id.agreement_contact
2529             (   p_agreement_contact           => p_Agreement_val_rec.agreement_contact
2530             );
2531 
2532             IF l_Agreement_rec.agreement_contact_id = FND_API.G_MISS_NUM THEN
2533                 l_Agreement_rec.return_status := FND_API.G_RET_STS_ERROR;
2534             END IF;
2535 
2536         END IF;
2537 
2538     END IF;
2539 
2540     IF  p_Agreement_val_rec.agreement <> FND_API.G_MISS_CHAR
2541     THEN
2542 
2543         IF p_Agreement_rec.agreement_id <> FND_API.G_MISS_NUM THEN
2544 
2545             l_Agreement_rec.agreement_id := p_Agreement_rec.agreement_id;
2546 
2547             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2548             THEN
2549 
2550                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2551                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','agreement');
2552                 OE_MSG_PUB.Add;
2553 
2554             END IF;
2555 
2556         ELSE
2557 
2558             l_Agreement_rec.agreement_id := QP_Value_To_Id.agreement
2559             (   p_agreement                   => p_Agreement_val_rec.agreement
2560             );
2561 
2562             IF l_Agreement_rec.agreement_id = FND_API.G_MISS_NUM THEN
2563                 l_Agreement_rec.return_status := FND_API.G_RET_STS_ERROR;
2564             END IF;
2565 
2566         END IF;
2567 
2568     END IF;
2569 
2570     IF  p_Agreement_val_rec.agreement_type <> FND_API.G_MISS_CHAR
2571     THEN
2572 
2573         IF p_Agreement_rec.agreement_type_code <> FND_API.G_MISS_CHAR THEN
2574 
2575             l_Agreement_rec.agreement_type_code := p_Agreement_rec.agreement_type_code;
2576 
2577             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2578             THEN
2579 
2580                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2581                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','agreement_type');
2582                 OE_MSG_PUB.Add;
2583 
2584             END IF;
2585 
2586         ELSE
2587 
2588             l_Agreement_rec.agreement_type_code := QP_Value_To_Id.agreement_type
2589             (   p_agreement_type              => p_Agreement_val_rec.agreement_type
2590             );
2591 
2592             IF l_Agreement_rec.agreement_type_code = FND_API.G_MISS_CHAR THEN
2593                 l_Agreement_rec.return_status := FND_API.G_RET_STS_ERROR;
2594             END IF;
2595 
2596         END IF;
2597 
2598     END IF;
2599 
2600     IF  p_Agreement_val_rec.customer <> FND_API.G_MISS_CHAR
2601     THEN
2602 
2603         IF p_Agreement_rec.sold_to_org_id <> FND_API.G_MISS_NUM THEN
2604 
2605             l_Agreement_rec.sold_to_org_id := p_Agreement_rec.sold_to_org_id;
2606 
2607             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2608             THEN
2609 
2610                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2611                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','customer');
2612                 OE_MSG_PUB.Add;
2613 
2614             END IF;
2615 
2616         ELSE
2617 
2618             l_Agreement_rec.sold_to_org_id := QP_Value_To_Id.customer
2619             (   p_customer                    => p_Agreement_val_rec.customer
2620             );
2621 
2622             IF l_Agreement_rec.sold_to_org_id = FND_API.G_MISS_NUM THEN
2623                 l_Agreement_rec.return_status := FND_API.G_RET_STS_ERROR;
2624             END IF;
2625 
2626         END IF;
2627 
2628     END IF;
2629 
2630     IF  p_Agreement_val_rec.freight_terms <> FND_API.G_MISS_CHAR
2631     THEN
2632 
2633         IF p_Agreement_rec.freight_terms_code <> FND_API.G_MISS_CHAR THEN
2634 
2635             l_Agreement_rec.freight_terms_code := p_Agreement_rec.freight_terms_code;
2636 
2637             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2638             THEN
2639 
2640                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2641                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','freight_terms');
2642                 OE_MSG_PUB.Add;
2643 
2644             END IF;
2645 
2646         ELSE
2647 
2648             l_Agreement_rec.freight_terms_code := QP_Value_To_Id.freight_terms
2649             (   p_freight_terms               => p_Agreement_val_rec.freight_terms
2650             );
2651 
2652             IF l_Agreement_rec.freight_terms_code = FND_API.G_MISS_CHAR THEN
2653                 l_Agreement_rec.return_status := FND_API.G_RET_STS_ERROR;
2654             END IF;
2655 
2656         END IF;
2657 
2658     END IF;
2659 
2660     IF  p_Agreement_val_rec.invoice_contact <> FND_API.G_MISS_CHAR
2661     THEN
2662 
2663         IF p_Agreement_rec.invoice_contact_id <> FND_API.G_MISS_NUM THEN
2664 
2665             l_Agreement_rec.invoice_contact_id := p_Agreement_rec.invoice_contact_id;
2666 
2667             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2668             THEN
2669 
2670                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2671                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','invoice_contact');
2672                 OE_MSG_PUB.Add;
2673 
2674             END IF;
2675 
2676         ELSE
2677 
2678             l_Agreement_rec.invoice_contact_id := QP_Value_To_Id.invoice_contact
2679             (   p_invoice_contact             => p_Agreement_val_rec.invoice_contact
2680             );
2681 
2682             IF l_Agreement_rec.invoice_contact_id = FND_API.G_MISS_NUM THEN
2683                 l_Agreement_rec.return_status := FND_API.G_RET_STS_ERROR;
2684             END IF;
2685 
2686         END IF;
2687 
2688     END IF;
2689 
2690     IF  p_Agreement_val_rec.invoice_to_site_use <> FND_API.G_MISS_CHAR
2691     THEN
2692 
2693         IF p_Agreement_rec.invoice_to_org_id <> FND_API.G_MISS_NUM THEN
2694 
2695             l_Agreement_rec.invoice_to_org_id := p_Agreement_rec.invoice_to_org_id;
2696 
2697             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2698             THEN
2699 
2700                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2701                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','invoice_to_site_use');
2702                 OE_MSG_PUB.Add;
2703 
2704             END IF;
2705 
2706         ELSE
2707 
2708             l_Agreement_rec.invoice_to_org_id := QP_Value_To_Id.invoice_to_site_use
2709             (   p_invoice_to_site_use         => p_Agreement_val_rec.invoice_to_site_use
2710             );
2711 
2712             IF l_Agreement_rec.invoice_to_org_id = FND_API.G_MISS_NUM THEN
2713                 l_Agreement_rec.return_status := FND_API.G_RET_STS_ERROR;
2714             END IF;
2715 
2716         END IF;
2717 
2718     END IF;
2719 
2720     IF  p_Agreement_val_rec.invoicing_rule <> FND_API.G_MISS_CHAR
2721     THEN
2722 
2723         IF p_Agreement_rec.invoicing_rule_id <> FND_API.G_MISS_NUM THEN
2724 
2725             l_Agreement_rec.invoicing_rule_id := p_Agreement_rec.invoicing_rule_id;
2726 
2727             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2728             THEN
2729 
2730                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2731                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','invoicing_rule');
2732                 OE_MSG_PUB.Add;
2733 
2734             END IF;
2735 
2736         ELSE
2737 
2738             l_Agreement_rec.invoicing_rule_id := QP_Value_To_Id.invoicing_rule
2739             (   p_invoicing_rule              => p_Agreement_val_rec.invoicing_rule
2740             );
2741 
2742             IF l_Agreement_rec.invoicing_rule_id = FND_API.G_MISS_NUM THEN
2743                 l_Agreement_rec.return_status := FND_API.G_RET_STS_ERROR;
2744             END IF;
2745 
2746         END IF;
2747 
2748     END IF;
2749 
2750     IF  p_Agreement_val_rec.override_arule <> FND_API.G_MISS_CHAR
2751     THEN
2752 
2753         IF p_Agreement_rec.override_arule_flag <> FND_API.G_MISS_CHAR THEN
2754 
2755             l_Agreement_rec.override_arule_flag := p_Agreement_rec.override_arule_flag;
2756 
2757             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2758             THEN
2759 
2760                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2761                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','override_arule');
2762                 OE_MSG_PUB.Add;
2763 
2764             END IF;
2765 
2766         ELSE
2767 
2768             l_Agreement_rec.override_arule_flag := QP_Value_To_Id.override_arule
2769             (   p_override_arule              => p_Agreement_val_rec.override_arule
2770             );
2771 
2772             IF l_Agreement_rec.override_arule_flag = FND_API.G_MISS_CHAR THEN
2773                 l_Agreement_rec.return_status := FND_API.G_RET_STS_ERROR;
2774             END IF;
2775 
2776         END IF;
2777 
2778     END IF;
2779 
2780     IF  p_Agreement_val_rec.override_irule <> FND_API.G_MISS_CHAR
2781     THEN
2782 
2783         IF p_Agreement_rec.override_irule_flag <> FND_API.G_MISS_CHAR THEN
2784 
2785             l_Agreement_rec.override_irule_flag := p_Agreement_rec.override_irule_flag;
2786 
2787             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2788             THEN
2789 
2790                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2791                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','override_irule');
2792                 OE_MSG_PUB.Add;
2793 
2794             END IF;
2795 
2796         ELSE
2797 
2798             l_Agreement_rec.override_irule_flag := QP_Value_To_Id.override_irule
2799             (   p_override_irule              => p_Agreement_val_rec.override_irule
2800             );
2801 
2802             IF l_Agreement_rec.override_irule_flag = FND_API.G_MISS_CHAR THEN
2803                 l_Agreement_rec.return_status := FND_API.G_RET_STS_ERROR;
2804             END IF;
2805 
2806         END IF;
2807 
2808     END IF;
2809 
2810     IF  p_Agreement_val_rec.price_list <> FND_API.G_MISS_CHAR
2811     THEN
2812 
2813         IF p_Agreement_rec.price_list_id <> FND_API.G_MISS_NUM THEN
2814 
2815             l_Agreement_rec.price_list_id := p_Agreement_rec.price_list_id;
2816 
2817             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2818             THEN
2819 
2820                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2821                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','price_list');
2822                 OE_MSG_PUB.Add;
2823 
2824             END IF;
2825 
2826         ELSE
2827 
2828             l_Agreement_rec.price_list_id := QP_Value_To_Id.price_list
2829             (   p_price_list                  => p_Agreement_val_rec.price_list
2830             );
2831 
2832             IF l_Agreement_rec.price_list_id = FND_API.G_MISS_NUM THEN
2833                 l_Agreement_rec.return_status := FND_API.G_RET_STS_ERROR;
2834             END IF;
2835 
2836         END IF;
2837 
2838     END IF;
2839 
2840     IF  p_Agreement_val_rec.revision_reason <> FND_API.G_MISS_CHAR
2841     THEN
2842 
2843         IF p_Agreement_rec.revision_reason_code <> FND_API.G_MISS_CHAR THEN
2844 
2845             l_Agreement_rec.revision_reason_code := p_Agreement_rec.revision_reason_code;
2846 
2847             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2848             THEN
2849 
2850                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2851                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','revision_reason');
2852                 OE_MSG_PUB.Add;
2853 
2854             END IF;
2855 
2856         ELSE
2857 
2858             l_Agreement_rec.revision_reason_code := QP_Value_To_Id.revision_reason
2859             (   p_revision_reason             => p_Agreement_val_rec.revision_reason
2860             );
2861 
2862             IF l_Agreement_rec.revision_reason_code = FND_API.G_MISS_CHAR THEN
2863                 l_Agreement_rec.return_status := FND_API.G_RET_STS_ERROR;
2864             END IF;
2865 
2866         END IF;
2867 
2868     END IF;
2869 
2870     IF  p_Agreement_val_rec.salesrep <> FND_API.G_MISS_CHAR
2871     THEN
2872 
2873         IF p_Agreement_rec.salesrep_id <> FND_API.G_MISS_NUM THEN
2874 
2875             l_Agreement_rec.salesrep_id := p_Agreement_rec.salesrep_id;
2876 
2877             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2878             THEN
2879 
2880                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2881                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','salesrep');
2882                 OE_MSG_PUB.Add;
2883 
2884             END IF;
2885 
2886         ELSE
2887 
2888             l_Agreement_rec.salesrep_id := QP_Value_To_Id.salesrep
2889             (   p_salesrep                    => p_Agreement_val_rec.salesrep
2890             );
2891 
2892             IF l_Agreement_rec.salesrep_id = FND_API.G_MISS_NUM THEN
2893                 l_Agreement_rec.return_status := FND_API.G_RET_STS_ERROR;
2894             END IF;
2895 
2896         END IF;
2897 
2898     END IF;
2899 
2900     IF  p_Agreement_val_rec.ship_method <> FND_API.G_MISS_CHAR
2901     THEN
2902 
2903         IF p_Agreement_rec.ship_method_code <> FND_API.G_MISS_CHAR THEN
2904 
2905             l_Agreement_rec.ship_method_code := p_Agreement_rec.ship_method_code;
2906 
2907             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2908             THEN
2909 
2910                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2911                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','ship_method');
2912                 OE_MSG_PUB.Add;
2913 
2914             END IF;
2915 
2916         ELSE
2917 
2918             l_Agreement_rec.ship_method_code := QP_Value_To_Id.ship_method
2919             (   p_ship_method                 => p_Agreement_val_rec.ship_method
2920             );
2921 
2922             IF l_Agreement_rec.ship_method_code = FND_API.G_MISS_CHAR THEN
2923                 l_Agreement_rec.return_status := FND_API.G_RET_STS_ERROR;
2924             END IF;
2925 
2926         END IF;
2927 
2928     END IF;
2929 
2930     IF  p_Agreement_val_rec.term <> FND_API.G_MISS_CHAR
2931     THEN
2932 
2933         IF p_Agreement_rec.term_id <> FND_API.G_MISS_NUM THEN
2934 
2935             l_Agreement_rec.term_id := p_Agreement_rec.term_id;
2936 
2937             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2938             THEN
2939 
2940                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2941                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','term');
2942                 OE_MSG_PUB.Add;
2943 
2944             END IF;
2945 
2946         ELSE
2947 
2948             l_Agreement_rec.term_id := QP_Value_To_Id.term
2949             (   p_term                        => p_Agreement_val_rec.term
2950             );
2951 
2952             IF l_Agreement_rec.term_id = FND_API.G_MISS_NUM THEN
2953                 l_Agreement_rec.return_status := FND_API.G_RET_STS_ERROR;
2954             END IF;
2955 
2956         END IF;
2957 
2958     END IF;
2959 
2960     --Begin code added by rchellam for OKC
2961     IF  p_Agreement_val_rec.agreement_source <> FND_API.G_MISS_CHAR
2962     THEN
2963 
2964         IF p_Agreement_rec.agreement_source_code <> FND_API.G_MISS_CHAR THEN
2965 
2966             l_Agreement_rec.agreement_source_code := p_Agreement_rec.agreement_source_code;
2967 
2968             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2969             THEN
2970 
2971                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
2972                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','agreement_source');
2973                 OE_MSG_PUB.Add;
2974 
2975             END IF;
2976 
2977         ELSE
2978 
2979             l_Agreement_rec.agreement_source_code := QP_Value_To_Id.agreement_source
2980             (   p_agreement_source  => p_Agreement_val_rec.agreement_source
2981             );
2982 
2983             IF l_Agreement_rec.agreement_source_code = FND_API.G_MISS_CHAR THEN
2984                 l_Agreement_rec.return_status := FND_API.G_RET_STS_ERROR;
2985             END IF;
2986 
2987         END IF;
2988 
2989     END IF;
2990     --End code added by rchellam for OKC
2991 
2992     RETURN l_Agreement_rec;
2993 
2994     oe_debug_pub.add('Exiting OE_Agreement_Util.Get_Ids');
2995 
2996 END Get_Ids;
2997 
2998 END OE_Agreement_Util;