DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_DEFAULT_AGREEMENT

Source


1 PACKAGE BODY OE_Default_Agreement AS
2 /* $Header: OEXDAGRB.pls 120.3 2005/12/14 15:57:40 shulin ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'OE_Default_Agreement';
7 
8 --  Package global used within the package.
9 
10 g_Agreement_rec               OE_Pricing_Cont_PUB.Agreement_Rec_Type;
11 
12 --  Get functions.
13 
14 FUNCTION Get_Accounting_Rule
15 RETURN NUMBER
16 IS
17 BEGIN
18 
19     RETURN NULL;
20 
21 END Get_Accounting_Rule;
22 
23 FUNCTION Get_Agreement_Contact
24 RETURN NUMBER
25 IS
26 BEGIN
27 
28     RETURN NULL;
29 
30 END Get_Agreement_Contact;
31 
32 FUNCTION Get_Agreement
33 RETURN NUMBER
34 IS
35 	l_Agreement_Id	NUMBER := NULL;
36 BEGIN
37 
38     oe_debug_pub.add('Entering OE_Default_Agreement.Get_Agreement');
39 
40     select oe_agreements_s.nextval into l_Agreement_Id
41     from dual;
42 
43     oe_debug_pub.add('Exiting OE_Default_Agreement.Get_Agreement, agreement_id: '||to_char(l_Agreement_Id));
44 
45     RETURN l_Agreement_Id;
46 
47 EXCEPTION
48 
49    WHEN OTHERS THEN
50 
51       IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
52         THEN
53          OE_MSG_PUB.Add_Exc_Msg
54            (    G_PKG_NAME          ,
55                 'Get_Agreement'
56             );
57       END IF;
58 
59       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
60 
61 END Get_Agreement;
62 
63 FUNCTION Get_Agreement_Num
64 RETURN VARCHAR2
65 IS
66 BEGIN
67 
68     RETURN NULL;
69 
70 END Get_Agreement_Num;
71 
72 FUNCTION Get_Agreement_Type
73 RETURN VARCHAR2
74 IS
75 BEGIN
76 
77     RETURN NULL;
78 
79 END Get_Agreement_Type;
80 
81 FUNCTION Get_Customer
82 RETURN NUMBER
83 IS
84 BEGIN
85 
86     RETURN NULL;
87 
88 END Get_Customer;
89 
90 FUNCTION Get_End_Date_Active
91 RETURN DATE
92 IS
93 BEGIN
94 
95     /* Changed the following for bug 1524336.
96        End date should be defaulted as NULL
97        RETURN add_months(SYSDATE, 24); */
98 
99    RETURN NULL;
100 
101 END Get_End_Date_Active;
102 
103 FUNCTION Get_Freight_Terms
104 RETURN VARCHAR2
105 IS
106 BEGIN
107 
108     RETURN NULL;
109 
110 END Get_Freight_Terms;
111 
112 FUNCTION Get_Invoice_Contact
113 RETURN NUMBER
114 IS
115 BEGIN
116 
117     RETURN NULL;
118 
119 END Get_Invoice_Contact;
120 
121 FUNCTION Get_Invoice_To_Site_Use
122 RETURN NUMBER
123 IS
124 BEGIN
125 
126     RETURN NULL;
127 
128 END Get_Invoice_To_Site_Use;
129 
130 FUNCTION Get_Invoicing_Rule
131 RETURN NUMBER
132 IS
133 BEGIN
134 
135     RETURN NULL;
136 
137 END Get_Invoicing_Rule;
138 
139 FUNCTION Get_Name
140 RETURN VARCHAR2
141 IS
142 BEGIN
143 
144     RETURN NULL;
145 
146 END Get_Name;
147 
148 FUNCTION Get_Override_Arule
149 RETURN VARCHAR2
150 IS
151 BEGIN
152 
153     RETURN 'Y';
154 
155 END Get_Override_Arule;
156 
157 FUNCTION Get_Override_Irule
158 RETURN VARCHAR2
159 IS
160 BEGIN
161 
162     RETURN 'Y';
163 
164 END Get_Override_Irule;
165 
166 FUNCTION Get_Price_List
167 RETURN NUMBER
168 IS
169 BEGIN
170 
171     RETURN NULL;
172 
173 END Get_Price_List;
174 
175 FUNCTION Get_Purchase_Order_Num
176 RETURN VARCHAR2
177 IS
178 BEGIN
179 
180     RETURN NULL;
181 
182 END Get_Purchase_Order_Num;
183 
184 FUNCTION Get_Revision
185 RETURN VARCHAR2
186 IS
187 BEGIN
188 
189     RETURN '1';
190 
191 END Get_Revision;
192 
193 FUNCTION Get_Revision_Date
194 RETURN DATE
195 IS
196 BEGIN
197 
198     RETURN SYSDATE;
199 
200 END Get_Revision_Date;
201 
202 FUNCTION Get_Revision_Reason
203 RETURN VARCHAR2
204 IS
205 BEGIN
206 
207     RETURN NULL;
208 
209 END Get_Revision_Reason;
210 
211 FUNCTION Get_Salesrep
212 RETURN NUMBER
213 IS
214 BEGIN
215 
216     RETURN NULL;
217 
218 END Get_Salesrep;
219 
220 FUNCTION Get_Ship_Method
221 RETURN VARCHAR2
222 IS
223 BEGIN
224 
225     RETURN NULL;
226 
227 END Get_Ship_Method;
228 
229 FUNCTION Get_Signature_Date
230 RETURN DATE
231 IS
232 BEGIN
233 
234     RETURN SYSDATE;
235 
236 END Get_Signature_Date;
237 
238 FUNCTION Get_Start_Date_Active
239 RETURN DATE
240 IS
241 BEGIN
242 
243     RETURN SYSDATE;
244 
245 END Get_Start_Date_Active;
246 
247 FUNCTION Get_Term
248 RETURN NUMBER
249 IS
250 BEGIN
251 
252     RETURN NULL;
253 
254 END Get_Term;
255 
256 --Begin code added by rchellam for OKC
257 FUNCTION Get_Agreement_Source
258 RETURN VARCHAR2
259 IS
260 BEGIN
261 
262   RETURN 'PAGR';
263 
264 END Get_Agreement_Source;
265 
266 FUNCTION Get_Orig_System_Agr
267 RETURN NUMBER
268 IS
269 BEGIN
270 
271  RETURN NULL;
272 
273 END Get_Orig_System_Agr;
274 --End code added by rchellam for OKC
275 
276 -- Added for bug#4029589
277 FUNCTION Get_Invoice_To_Customer_Id
278 RETURN NUMBER
279 IS
280 BEGIN
281 
282  RETURN NULL;
283 
284 END Get_Invoice_To_Customer_Id;
285 
286 PROCEDURE Get_Flex_Agreement
287 IS
288 BEGIN
289 
290     --  In the future call Flex APIs for defaults
291 
292     IF g_Agreement_rec.attribute1 = FND_API.G_MISS_CHAR THEN
293         g_Agreement_rec.attribute1     := NULL;
294     END IF;
295 
296     IF g_Agreement_rec.attribute10 = FND_API.G_MISS_CHAR THEN
297         g_Agreement_rec.attribute10    := NULL;
298     END IF;
299 
300     IF g_Agreement_rec.attribute11 = FND_API.G_MISS_CHAR THEN
301         g_Agreement_rec.attribute11    := NULL;
302     END IF;
303 
304     IF g_Agreement_rec.attribute12 = FND_API.G_MISS_CHAR THEN
305         g_Agreement_rec.attribute12    := NULL;
306     END IF;
307 
308     IF g_Agreement_rec.attribute13 = FND_API.G_MISS_CHAR THEN
309         g_Agreement_rec.attribute13    := NULL;
310     END IF;
311 
312     IF g_Agreement_rec.attribute14 = FND_API.G_MISS_CHAR THEN
313         g_Agreement_rec.attribute14    := NULL;
314     END IF;
315 
316     IF g_Agreement_rec.attribute15 = FND_API.G_MISS_CHAR THEN
317         g_Agreement_rec.attribute15    := NULL;
318     END IF;
319 
320     IF g_Agreement_rec.attribute2 = FND_API.G_MISS_CHAR THEN
321         g_Agreement_rec.attribute2     := NULL;
322     END IF;
323 
324     IF g_Agreement_rec.attribute3 = FND_API.G_MISS_CHAR THEN
325         g_Agreement_rec.attribute3     := NULL;
326     END IF;
327 
328     IF g_Agreement_rec.attribute4 = FND_API.G_MISS_CHAR THEN
329         g_Agreement_rec.attribute4     := NULL;
330     END IF;
331 
332     IF g_Agreement_rec.attribute5 = FND_API.G_MISS_CHAR THEN
333         g_Agreement_rec.attribute5     := NULL;
334     END IF;
335 
336     IF g_Agreement_rec.attribute6 = FND_API.G_MISS_CHAR THEN
337         g_Agreement_rec.attribute6     := NULL;
338     END IF;
339 
340     IF g_Agreement_rec.attribute7 = FND_API.G_MISS_CHAR THEN
341         g_Agreement_rec.attribute7     := NULL;
342     END IF;
343 
344     IF g_Agreement_rec.attribute8 = FND_API.G_MISS_CHAR THEN
345         g_Agreement_rec.attribute8     := NULL;
346     END IF;
347 
348     IF g_Agreement_rec.attribute9 = FND_API.G_MISS_CHAR THEN
349         g_Agreement_rec.attribute9     := NULL;
350     END IF;
351 
352     IF g_Agreement_rec.context = FND_API.G_MISS_CHAR THEN
353         g_Agreement_rec.context        := NULL;
354     END IF;
355 
356 END Get_Flex_Agreement;
357 
358 --  Procedure Attributes
359 
360 PROCEDURE Attributes
361 (   p_Agreement_rec                 IN  OE_Pricing_Cont_PUB.Agreement_Rec_Type :=
362                                         OE_Pricing_Cont_PUB.G_MISS_AGREEMENT_REC
363 ,   p_iteration                     IN  NUMBER := 1
364 ,   x_Agreement_rec                 OUT NOCOPY /* file.sql.39 change */ OE_Pricing_Cont_PUB.Agreement_Rec_Type
365 )
366 IS
367 l_Agreement_rec		OE_Pricing_Cont_PUB.Agreement_Rec_Type; --[prarasto]
368 BEGIN
369 
370     oe_debug_pub.add('Entering OE_Default_Agreement.Attributes');
371 
372     --  Check number of iterations.
373 
374     IF p_iteration > OE_GLOBALS.G_MAX_DEF_ITERATIONS THEN
375 
376         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
377         THEN
378 
379             FND_MESSAGE.SET_NAME('OE','OE_DEF_MAX_ITERATION');
380             OE_MSG_PUB.Add;
381 
382         END IF;
383 
384         RAISE FND_API.G_EXC_ERROR;
385 
386     END IF;
387 
388     --  Initialize g_Agreement_rec
389 
390     g_Agreement_rec := p_Agreement_rec;
391 
392     --  Default missing attributes.
393 
394     IF g_Agreement_rec.accounting_rule_id = FND_API.G_MISS_NUM THEN
395 
396         g_Agreement_rec.accounting_rule_id := Get_Accounting_Rule;
397 
398         IF g_Agreement_rec.accounting_rule_id IS NOT NULL THEN
399 
400             IF OE_Validate_Attr.Accounting_Rule(g_Agreement_rec.accounting_rule_id)
401             THEN
402 
403 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
404 
405                 OE_Agreement_Util.Clear_Dependent_Attr
406                 (   p_attr_id                     => OE_Agreement_Util.G_ACCOUNTING_RULE
407                 ,   p_Agreement_rec               => l_Agreement_rec
408                 ,   x_Agreement_rec               => g_Agreement_rec
409                 );
410             ELSE
411                 g_Agreement_rec.accounting_rule_id := NULL;
412             END IF;
413 
414         END IF;
415 
416     END IF;
417 
418     IF g_Agreement_rec.agreement_contact_id = FND_API.G_MISS_NUM THEN
419 
420         g_Agreement_rec.agreement_contact_id := Get_Agreement_Contact;
421 
422         IF g_Agreement_rec.agreement_contact_id IS NOT NULL THEN
423 
424             IF OE_Validate_Attr.Agreement_Contact(g_Agreement_rec.agreement_contact_id)
425             THEN
426 
427 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
428 
429                 OE_Agreement_Util.Clear_Dependent_Attr
430                 (   p_attr_id                     => OE_Agreement_Util.G_AGREEMENT_CONTACT
431                 ,   p_Agreement_rec               => l_Agreement_rec
432                 ,   x_Agreement_rec               => g_Agreement_rec
433                 );
434             ELSE
435                 g_Agreement_rec.agreement_contact_id := NULL;
436             END IF;
437 
438         END IF;
439 
440     END IF;
441 
442     IF g_Agreement_rec.agreement_id = FND_API.G_MISS_NUM THEN
443 
444         g_Agreement_rec.agreement_id := Get_Agreement;
445 
446         IF g_Agreement_rec.agreement_id IS NOT NULL THEN
447 
448             IF OE_Validate_Attr.Agreement(g_Agreement_rec.agreement_id)
449             THEN
450 
451 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
452 
453                 OE_Agreement_Util.Clear_Dependent_Attr
454                 (   p_attr_id                     => OE_Agreement_Util.G_AGREEMENT
455                 ,   p_Agreement_rec               => l_Agreement_rec
456                 ,   x_Agreement_rec               => g_Agreement_rec
457                 );
458             ELSE
459                 g_Agreement_rec.agreement_id := NULL;
460             END IF;
461 
462         END IF;
463 
464     END IF;
465 
466     IF g_Agreement_rec.agreement_num = FND_API.G_MISS_CHAR THEN
467 
468         g_Agreement_rec.agreement_num := Get_Agreement_Num;
469 
470         IF g_Agreement_rec.agreement_num IS NOT NULL THEN
471 
472             IF OE_Validate_Attr.Agreement_Num(g_Agreement_rec.agreement_num)
473             THEN
474 
475 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
476 
477                 OE_Agreement_Util.Clear_Dependent_Attr
478                 (   p_attr_id                     => OE_Agreement_Util.G_AGREEMENT_NUM
479                 ,   p_Agreement_rec               => l_Agreement_rec
480                 ,   x_Agreement_rec               => g_Agreement_rec
481                 );
482             ELSE
483                 g_Agreement_rec.agreement_num := NULL;
484             END IF;
485 
486         END IF;
487 
488     END IF;
489 
490     IF g_Agreement_rec.agreement_type_code = FND_API.G_MISS_CHAR THEN
491 
492         g_Agreement_rec.agreement_type_code := Get_Agreement_Type;
493 
494         IF g_Agreement_rec.agreement_type_code IS NOT NULL THEN
495 
496             IF OE_Validate_Attr.Agreement_Type(g_Agreement_rec.agreement_type_code)
497             THEN
498 
499 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
500 
501                 OE_Agreement_Util.Clear_Dependent_Attr
502                 (   p_attr_id                     => OE_Agreement_Util.G_AGREEMENT_TYPE
503                 ,   p_Agreement_rec               => l_Agreement_rec
504                 ,   x_Agreement_rec               => g_Agreement_rec
505                 );
506             ELSE
507                 g_Agreement_rec.agreement_type_code := NULL;
508             END IF;
509 
510         END IF;
511 
512     END IF;
513 --
514 
515     IF g_Agreement_rec.sold_to_org_id = FND_API.G_MISS_NUM THEN
516 
517         g_Agreement_rec.sold_to_org_id := Get_Customer;
518 
519         IF g_Agreement_rec.sold_to_org_id IS NOT NULL THEN
520 
521             IF OE_Validate_Attr.Customer(g_Agreement_rec.sold_to_org_id)
522             THEN
523 
524 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
525 
526                 OE_Agreement_Util.Clear_Dependent_Attr
527                 (   p_attr_id                     => OE_Agreement_Util.G_CUSTOMER
528                 ,   p_Agreement_rec               => l_Agreement_rec
529                 ,   x_Agreement_rec               => g_Agreement_rec
530                 );
531             ELSE
532                 g_Agreement_rec.sold_to_org_id := NULL;
533             END IF;
534 
535         END IF;
536 
537     END IF;
538 
539 --
540 /*
541     IF g_Agreement_rec.customer_id = FND_API.G_MISS_NUM THEN
542 
543         g_Agreement_rec.customer_id := Get_Customer;
544 
545         IF g_Agreement_rec.customer_id IS NOT NULL THEN
546 
547             IF OE_Validate_Attr.Customer(g_Agreement_rec.customer_id)
548             THEN
549 
550 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
551 
552                 OE_Agreement_Util.Clear_Dependent_Attr
553                 (   p_attr_id                     => OE_Agreement_Util.G_CUSTOMER
554                 ,   p_Agreement_rec               => l_Agreement_rec
558                 g_Agreement_rec.customer_id := NULL;
555                 ,   x_Agreement_rec               => g_Agreement_rec
556                 );
557             ELSE
559             END IF;
560 
561         END IF;
562 
563     END IF;
564 */
565 
566     IF g_Agreement_rec.end_date_active = FND_API.G_MISS_DATE THEN
567 
568         g_Agreement_rec.end_date_active := Get_End_Date_Active;
569 
570         IF g_Agreement_rec.end_date_active IS NOT NULL THEN
571 
572             IF OE_Validate_Attr.End_Date_Active(g_Agreement_rec.end_date_active)
573             THEN
574 
575 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
576 
577                 OE_Agreement_Util.Clear_Dependent_Attr
578                 (   p_attr_id                     => OE_Agreement_Util.G_END_DATE_ACTIVE
579                 ,   p_Agreement_rec               => l_Agreement_rec
580                 ,   x_Agreement_rec               => g_Agreement_rec
581                 );
582             ELSE
583                 g_Agreement_rec.end_date_active := NULL;
584             END IF;
585 
586         END IF;
587 
588     END IF;
589 
590     IF g_Agreement_rec.freight_terms_code = FND_API.G_MISS_CHAR THEN
591 
592         g_Agreement_rec.freight_terms_code := Get_Freight_Terms;
593 
594         IF g_Agreement_rec.freight_terms_code IS NOT NULL THEN
595 
596             IF OE_Validate_Attr.Freight_Terms(g_Agreement_rec.freight_terms_code)
597             THEN
598 
599 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
600 
601                 OE_Agreement_Util.Clear_Dependent_Attr
602                 (   p_attr_id                     => OE_Agreement_Util.G_FREIGHT_TERMS
603                 ,   p_Agreement_rec               => l_Agreement_rec
604                 ,   x_Agreement_rec               => g_Agreement_rec
605                 );
606             ELSE
607                 g_Agreement_rec.freight_terms_code := NULL;
608             END IF;
609 
610         END IF;
611 
612     END IF;
613 
614     IF g_Agreement_rec.invoice_contact_id = FND_API.G_MISS_NUM THEN
615 
616         g_Agreement_rec.invoice_contact_id := Get_Invoice_Contact;
617 
618         IF g_Agreement_rec.invoice_contact_id IS NOT NULL THEN
619 
620             IF OE_Validate_Attr.Invoice_Contact(g_Agreement_rec.invoice_contact_id)
621             THEN
622 
623 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
624 
625                 OE_Agreement_Util.Clear_Dependent_Attr
626                 (   p_attr_id                     => OE_Agreement_Util.G_INVOICE_CONTACT
627                 ,   p_Agreement_rec               => l_Agreement_rec
628                 ,   x_Agreement_rec               => g_Agreement_rec
629                 );
630             ELSE
631                 g_Agreement_rec.invoice_contact_id := NULL;
632             END IF;
633 
634         END IF;
635 
636     END IF;
637 
638 /*    IF g_Agreement_rec.invoice_to_site_use_id = FND_API.G_MISS_NUM THEN */
639     IF g_Agreement_rec.invoice_to_org_id = FND_API.G_MISS_NUM THEN
640 
641 /*        g_Agreement_rec.invoice_to_site_use_id := Get_Invoice_To_Site_Use; */
642         g_Agreement_rec.invoice_to_org_id := Get_Invoice_To_Site_Use;
643 
644 /*        IF g_Agreement_rec.invoice_to_site_use_id IS NOT NULL THEN */
645         IF g_Agreement_rec.invoice_to_org_id IS NOT NULL THEN
646 
647             IF OE_Validate_Attr.Invoice_To_Site_Use(g_Agreement_rec.invoice_to_org_id)
648 
649 /*            IF OE_Validate_Attr.Invoice_To_Site_Use(g_Agreement_rec.invoice_to_site_use_id) */
650             THEN
651 
652 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
653 
654                 OE_Agreement_Util.Clear_Dependent_Attr
655                 (   p_attr_id                     => OE_Agreement_Util.G_INVOICE_TO_SITE_USE
656                 ,   p_Agreement_rec               => l_Agreement_rec
657                 ,   x_Agreement_rec               => g_Agreement_rec
658                 );
659             ELSE
660 /*                g_Agreement_rec.invoice_to_site_use_id := NULL; */
661                 g_Agreement_rec.invoice_to_org_id := NULL;
662             END IF;
663 
664         END IF;
665 
666     END IF;
667 
668     IF g_Agreement_rec.invoicing_rule_id = FND_API.G_MISS_NUM THEN
669 
670         g_Agreement_rec.invoicing_rule_id := Get_Invoicing_Rule;
671 
672         IF g_Agreement_rec.invoicing_rule_id IS NOT NULL THEN
673 
674             IF OE_Validate_Attr.Invoicing_Rule(g_Agreement_rec.invoicing_rule_id)
675             THEN
676 
677 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
678 
679                 OE_Agreement_Util.Clear_Dependent_Attr
680                 (   p_attr_id                     => OE_Agreement_Util.G_INVOICING_RULE
681                 ,   p_Agreement_rec               => l_Agreement_rec
682                 ,   x_Agreement_rec               => g_Agreement_rec
683                 );
684             ELSE
685                 g_Agreement_rec.invoicing_rule_id := NULL;
686             END IF;
687 
688         END IF;
689 
690     END IF;
691 
692     IF g_Agreement_rec.name = FND_API.G_MISS_CHAR THEN
693 
694         g_Agreement_rec.name := Get_Name;
698             IF OE_Validate_Attr.Name(g_Agreement_rec.name)
695 
696         IF g_Agreement_rec.name IS NOT NULL THEN
697 
699             THEN
700 
701 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
702 
703                 OE_Agreement_Util.Clear_Dependent_Attr
704                 (   p_attr_id                     => OE_Agreement_Util.G_NAME
705                 ,   p_Agreement_rec               => l_Agreement_rec
706                 ,   x_Agreement_rec               => g_Agreement_rec
707                 );
708             ELSE
709                 g_Agreement_rec.name := NULL;
710             END IF;
711 
712         END IF;
713 
714     END IF;
715 
716     IF g_Agreement_rec.override_arule_flag = FND_API.G_MISS_CHAR THEN
717 
718         g_Agreement_rec.override_arule_flag := Get_Override_Arule;
719 
720         IF g_Agreement_rec.override_arule_flag IS NOT NULL THEN
721 
722             IF OE_Validate_Attr.Override_Arule(g_Agreement_rec.override_arule_flag)
723             THEN
724 
725 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
726 
727                 OE_Agreement_Util.Clear_Dependent_Attr
728                 (   p_attr_id                     => OE_Agreement_Util.G_OVERRIDE_ARULE
729                 ,   p_Agreement_rec               => l_Agreement_rec
730                 ,   x_Agreement_rec               => g_Agreement_rec
731                 );
732             ELSE
733                 g_Agreement_rec.override_arule_flag := NULL;
734             END IF;
735 
736         END IF;
737 
738     END IF;
739 
740     IF g_Agreement_rec.override_irule_flag = FND_API.G_MISS_CHAR THEN
741 
742         g_Agreement_rec.override_irule_flag := Get_Override_Irule;
743 
744         IF g_Agreement_rec.override_irule_flag IS NOT NULL THEN
745 
746             IF OE_Validate_Attr.Override_Irule(g_Agreement_rec.override_irule_flag)
747             THEN
748 
749 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
750 
751                 OE_Agreement_Util.Clear_Dependent_Attr
752                 (   p_attr_id                     => OE_Agreement_Util.G_OVERRIDE_IRULE
753                 ,   p_Agreement_rec               => l_Agreement_rec
754                 ,   x_Agreement_rec               => g_Agreement_rec
755                 );
756             ELSE
757                 g_Agreement_rec.override_irule_flag := NULL;
758             END IF;
759 
760         END IF;
761 
762     END IF;
763 
764     IF g_Agreement_rec.price_list_id = FND_API.G_MISS_NUM THEN
765 
766         g_Agreement_rec.price_list_id := Get_Price_List;
767 
768         IF g_Agreement_rec.price_list_id IS NOT NULL THEN
769 
770             IF OE_Validate_Attr.Price_List(g_Agreement_rec.price_list_id)
771             THEN
772 
773 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
774 
775                 OE_Agreement_Util.Clear_Dependent_Attr
776                 (   p_attr_id                     => OE_Agreement_Util.G_PRICE_LIST
777                 ,   p_Agreement_rec               => l_Agreement_rec
778                 ,   x_Agreement_rec               => g_Agreement_rec
779                 );
780             ELSE
781                 g_Agreement_rec.price_list_id := NULL;
782             END IF;
783 
784         END IF;
785 
786     END IF;
787 
788     IF g_Agreement_rec.purchase_order_num = FND_API.G_MISS_CHAR THEN
789 
790         g_Agreement_rec.purchase_order_num := Get_Purchase_Order_Num;
791 
792         IF g_Agreement_rec.purchase_order_num IS NOT NULL THEN
793 
794             IF OE_Validate_Attr.Purchase_Order_Num(g_Agreement_rec.purchase_order_num)
795             THEN
796 
797 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
798 
799                 OE_Agreement_Util.Clear_Dependent_Attr
800                 (   p_attr_id                     => OE_Agreement_Util.G_PURCHASE_ORDER_NUM
801                 ,   p_Agreement_rec               => l_Agreement_rec
802                 ,   x_Agreement_rec               => g_Agreement_rec
803                 );
804             ELSE
805                 g_Agreement_rec.purchase_order_num := NULL;
806             END IF;
807 
808         END IF;
809 
810     END IF;
811 
812     IF g_Agreement_rec.revision = FND_API.G_MISS_CHAR THEN
813 
814         g_Agreement_rec.revision := Get_Revision;
815 
816         IF g_Agreement_rec.revision IS NOT NULL THEN
817 
818             IF OE_Validate_Attr.Revision(g_Agreement_rec.revision)
819             THEN
820 
821 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
822 
823                 OE_Agreement_Util.Clear_Dependent_Attr
824                 (   p_attr_id                     => OE_Agreement_Util.G_REVISION
825                 ,   p_Agreement_rec               => l_Agreement_rec
826                 ,   x_Agreement_rec               => g_Agreement_rec
827                 );
828             ELSE
829                 g_Agreement_rec.revision := NULL;
830             END IF;
831 
832         END IF;
833 
834     END IF;
835 
836     IF g_Agreement_rec.revision_date = FND_API.G_MISS_DATE THEN
837 
841 
838         g_Agreement_rec.revision_date := Get_Revision_Date;
839 
840         IF g_Agreement_rec.revision_date IS NOT NULL THEN
842             IF OE_Validate_Attr.Revision_Date(g_Agreement_rec.revision_date)
843             THEN
844 
845 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
846 
847                 OE_Agreement_Util.Clear_Dependent_Attr
848                 (   p_attr_id                     => OE_Agreement_Util.G_REVISION_DATE
849                 ,   p_Agreement_rec               => l_Agreement_rec
850                 ,   x_Agreement_rec               => g_Agreement_rec
851                 );
852             ELSE
853                 g_Agreement_rec.revision_date := NULL;
854             END IF;
855 
856         END IF;
857 
858     END IF;
859 
860     IF g_Agreement_rec.revision_reason_code = FND_API.G_MISS_CHAR THEN
861 
862         g_Agreement_rec.revision_reason_code := Get_Revision_Reason;
863 
864         IF g_Agreement_rec.revision_reason_code IS NOT NULL THEN
865 
866             IF OE_Validate_Attr.Revision_Reason(g_Agreement_rec.revision_reason_code)
867             THEN
868 
869 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
870 
871                 OE_Agreement_Util.Clear_Dependent_Attr
872                 (   p_attr_id                     => OE_Agreement_Util.G_REVISION_REASON
873                 ,   p_Agreement_rec               => l_Agreement_rec
874                 ,   x_Agreement_rec               => g_Agreement_rec
875                 );
876             ELSE
877                 g_Agreement_rec.revision_reason_code := NULL;
878             END IF;
879 
880         END IF;
881 
882     END IF;
883 
884     IF g_Agreement_rec.salesrep_id = FND_API.G_MISS_NUM THEN
885 
886         g_Agreement_rec.salesrep_id := Get_Salesrep;
887 
888         IF g_Agreement_rec.salesrep_id IS NOT NULL THEN
889 
890             IF OE_Validate_Attr.Salesrep(g_Agreement_rec.salesrep_id)
891             THEN
892 
893 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
894 
895                 OE_Agreement_Util.Clear_Dependent_Attr
896                 (   p_attr_id                     => OE_Agreement_Util.G_SALESREP
897                 ,   p_Agreement_rec               => l_Agreement_rec
898                 ,   x_Agreement_rec               => g_Agreement_rec
899                 );
900             ELSE
901                 g_Agreement_rec.salesrep_id := NULL;
902             END IF;
903 
904         END IF;
905 
906     END IF;
907 
908     IF g_Agreement_rec.ship_method_code = FND_API.G_MISS_CHAR THEN
909 
910         g_Agreement_rec.ship_method_code := Get_Ship_Method;
911 
912         IF g_Agreement_rec.ship_method_code IS NOT NULL THEN
913 
914             IF OE_Validate_Attr.Ship_Method(g_Agreement_rec.ship_method_code)
915             THEN
916 
917 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
918 
919                 OE_Agreement_Util.Clear_Dependent_Attr
920                 (   p_attr_id                     => OE_Agreement_Util.G_SHIP_METHOD
921                 ,   p_Agreement_rec               => l_Agreement_rec
922                 ,   x_Agreement_rec               => g_Agreement_rec
923                 );
924             ELSE
925                 g_Agreement_rec.ship_method_code := NULL;
926             END IF;
927 
928         END IF;
929 
930     END IF;
931 
932     IF g_Agreement_rec.signature_date = FND_API.G_MISS_DATE THEN
933 
934         g_Agreement_rec.signature_date := Get_Signature_Date;
935 
936         IF g_Agreement_rec.signature_date IS NOT NULL THEN
937 
938             IF OE_Validate_Attr.Signature_Date(g_Agreement_rec.signature_date)
939             THEN
940 
941 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
942 
943                 OE_Agreement_Util.Clear_Dependent_Attr
944                 (   p_attr_id                     => OE_Agreement_Util.G_SIGNATURE_DATE
945                 ,   p_Agreement_rec               => l_Agreement_rec
946                 ,   x_Agreement_rec               => g_Agreement_rec
947                 );
948             ELSE
949                 g_Agreement_rec.signature_date := NULL;
950             END IF;
951 
952         END IF;
953 
954     END IF;
955 
956     IF g_Agreement_rec.start_date_active = FND_API.G_MISS_DATE THEN
957 
958         g_Agreement_rec.start_date_active := Get_Start_Date_Active;
959 
960         IF g_Agreement_rec.start_date_active IS NOT NULL THEN
961 
962             IF OE_Validate_Attr.Start_Date_Active(g_Agreement_rec.start_date_active)
963             THEN
964 
965 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
966 
967                 OE_Agreement_Util.Clear_Dependent_Attr
968                 (   p_attr_id                     => OE_Agreement_Util.G_START_DATE_ACTIVE
969                 ,   p_Agreement_rec               => l_Agreement_rec
970                 ,   x_Agreement_rec               => g_Agreement_rec
971                 );
972             ELSE
976         END IF;
973                 g_Agreement_rec.start_date_active := NULL;
974             END IF;
975 
977 
978     END IF;
979 
980     IF g_Agreement_rec.term_id = FND_API.G_MISS_NUM THEN
981 
982         g_Agreement_rec.term_id := Get_Term;
983 
984         IF g_Agreement_rec.term_id IS NOT NULL THEN
985 
986             IF OE_Validate_Attr.Term(g_Agreement_rec.term_id)
987             THEN
988 
989 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
990 
991                 OE_Agreement_Util.Clear_Dependent_Attr
992                 (   p_attr_id                     => OE_Agreement_Util.G_TERM
993                 ,   p_Agreement_rec               => l_Agreement_rec
994                 ,   x_Agreement_rec               => g_Agreement_rec
995                 );
996             ELSE
997                 g_Agreement_rec.term_id := NULL;
998             END IF;
999 
1000         END IF;
1001 
1002     END IF;
1003 
1004     --Begin code added by rchellam for OKC
1005     IF g_Agreement_rec.agreement_source_code = FND_API.G_MISS_CHAR THEN
1006 
1007         g_Agreement_rec.agreement_source_code := Get_Agreement_Source;
1008 
1009         IF g_Agreement_rec.agreement_source_code IS NOT NULL THEN
1010 
1011             IF OE_Validate_Attr.Agreement_Source(g_Agreement_rec.agreement_source_code)
1012             THEN
1013 
1014 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
1015 
1016                 OE_Agreement_Util.Clear_Dependent_Attr
1017                 (   p_attr_id                     => OE_Agreement_Util.G_AGREEMENT_SOURCE
1018                 ,   p_Agreement_rec               => l_Agreement_rec
1019                 ,   x_Agreement_rec               => g_Agreement_rec
1020                 );
1021             ELSE
1022                 g_Agreement_rec.agreement_source_code := NULL;
1023             END IF;
1024 
1025         END IF;
1026 
1027     END IF;
1028 
1029     IF g_Agreement_rec.orig_system_agr_id = FND_API.G_MISS_NUM THEN
1030 
1031         g_Agreement_rec.orig_system_agr_id := Get_Orig_System_Agr;
1032 
1033         IF g_Agreement_rec.orig_system_agr_id IS NOT NULL THEN
1034 
1035             IF OE_Validate_Attr.Orig_System_Agr(g_Agreement_rec.orig_system_agr_id)
1036             THEN
1037 
1038 	        l_Agreement_rec := g_Agreement_rec; --[prarasto]
1039 
1040                 OE_Agreement_Util.Clear_Dependent_Attr
1041                 (   p_attr_id                     => OE_Agreement_Util.G_ORIG_SYSTEM_AGR
1042                 ,   p_Agreement_rec               => l_Agreement_rec
1043                 ,   x_Agreement_rec               => g_Agreement_rec
1044                 );
1045             ELSE
1046                 g_Agreement_rec.orig_system_agr_id := NULL;
1047             END IF;
1048 
1049         END IF;
1050 
1051     END IF;
1052     --End code added by rchellam for OKC
1053 
1054     IF g_Agreement_rec.attribute1 = FND_API.G_MISS_CHAR
1055     OR  g_Agreement_rec.attribute10 = FND_API.G_MISS_CHAR
1056     OR  g_Agreement_rec.attribute11 = FND_API.G_MISS_CHAR
1057     OR  g_Agreement_rec.attribute12 = FND_API.G_MISS_CHAR
1058     OR  g_Agreement_rec.attribute13 = FND_API.G_MISS_CHAR
1059     OR  g_Agreement_rec.attribute14 = FND_API.G_MISS_CHAR
1060     OR  g_Agreement_rec.attribute15 = FND_API.G_MISS_CHAR
1061     OR  g_Agreement_rec.attribute2 = FND_API.G_MISS_CHAR
1062     OR  g_Agreement_rec.attribute3 = FND_API.G_MISS_CHAR
1063     OR  g_Agreement_rec.attribute4 = FND_API.G_MISS_CHAR
1064     OR  g_Agreement_rec.attribute5 = FND_API.G_MISS_CHAR
1065     OR  g_Agreement_rec.attribute6 = FND_API.G_MISS_CHAR
1066     OR  g_Agreement_rec.attribute7 = FND_API.G_MISS_CHAR
1067     OR  g_Agreement_rec.attribute8 = FND_API.G_MISS_CHAR
1068     OR  g_Agreement_rec.attribute9 = FND_API.G_MISS_CHAR
1069     OR  g_Agreement_rec.context = FND_API.G_MISS_CHAR
1070     THEN
1071 
1072         Get_Flex_Agreement;
1073 
1074     END IF;
1075 
1076     IF g_Agreement_rec.created_by = FND_API.G_MISS_NUM THEN
1077 
1078         g_Agreement_rec.created_by := NULL;
1079 
1080     END IF;
1081 
1082     IF g_Agreement_rec.creation_date = FND_API.G_MISS_DATE THEN
1083 
1084         g_Agreement_rec.creation_date := NULL;
1085 
1086     END IF;
1087 
1088     IF g_Agreement_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1089 
1090         g_Agreement_rec.last_updated_by := NULL;
1091 
1092     END IF;
1093 
1094     IF g_Agreement_rec.last_update_date = FND_API.G_MISS_DATE THEN
1095 
1096         g_Agreement_rec.last_update_date := NULL;
1097 
1098     END IF;
1099 
1100     IF g_Agreement_rec.last_update_login = FND_API.G_MISS_NUM THEN
1101 
1102         g_Agreement_rec.last_update_login := NULL;
1103 
1104     END IF;
1105 
1106     --  Redefault if there are any missing attributes.
1107 
1108     IF  g_Agreement_rec.accounting_rule_id = FND_API.G_MISS_NUM
1109     OR  g_Agreement_rec.agreement_contact_id = FND_API.G_MISS_NUM
1110     OR  g_Agreement_rec.agreement_id = FND_API.G_MISS_NUM
1111     OR  g_Agreement_rec.agreement_num = FND_API.G_MISS_CHAR
1112     OR  g_Agreement_rec.agreement_type_code = FND_API.G_MISS_CHAR
1113     OR  g_Agreement_rec.attribute1 = FND_API.G_MISS_CHAR
1114     OR  g_Agreement_rec.attribute10 = FND_API.G_MISS_CHAR
1115     OR  g_Agreement_rec.attribute11 = FND_API.G_MISS_CHAR
1116     OR  g_Agreement_rec.attribute12 = FND_API.G_MISS_CHAR
1117     OR  g_Agreement_rec.attribute13 = FND_API.G_MISS_CHAR
1118     OR  g_Agreement_rec.attribute14 = FND_API.G_MISS_CHAR
1119     OR  g_Agreement_rec.attribute15 = FND_API.G_MISS_CHAR
1120     OR  g_Agreement_rec.attribute2 = FND_API.G_MISS_CHAR
1121     OR  g_Agreement_rec.attribute3 = FND_API.G_MISS_CHAR
1122     OR  g_Agreement_rec.attribute4 = FND_API.G_MISS_CHAR
1123     OR  g_Agreement_rec.attribute5 = FND_API.G_MISS_CHAR
1124     OR  g_Agreement_rec.attribute6 = FND_API.G_MISS_CHAR
1125     OR  g_Agreement_rec.attribute7 = FND_API.G_MISS_CHAR
1126     OR  g_Agreement_rec.attribute8 = FND_API.G_MISS_CHAR
1127     OR  g_Agreement_rec.attribute9 = FND_API.G_MISS_CHAR
1128     OR  g_Agreement_rec.context = FND_API.G_MISS_CHAR
1129     OR  g_Agreement_rec.created_by = FND_API.G_MISS_NUM
1130     OR  g_Agreement_rec.creation_date = FND_API.G_MISS_DATE
1131 /*    OR  g_Agreement_rec.customer_id = FND_API.G_MISS_NUM */
1132     OR  g_Agreement_rec.sold_to_org_id = FND_API.G_MISS_NUM
1133     OR  g_Agreement_rec.end_date_active = FND_API.G_MISS_DATE
1134     OR  g_Agreement_rec.freight_terms_code = FND_API.G_MISS_CHAR
1135     OR  g_Agreement_rec.invoice_contact_id = FND_API.G_MISS_NUM
1136  /*   OR  g_Agreement_rec.invoice_to_site_use_id = FND_API.G_MISS_NUM */
1137     OR  g_Agreement_rec.invoice_to_org_id = FND_API.G_MISS_NUM
1138     OR  g_Agreement_rec.invoicing_rule_id = FND_API.G_MISS_NUM
1139     OR  g_Agreement_rec.last_updated_by = FND_API.G_MISS_NUM
1140     OR  g_Agreement_rec.last_update_date = FND_API.G_MISS_DATE
1141     OR  g_Agreement_rec.last_update_login = FND_API.G_MISS_NUM
1142     OR  g_Agreement_rec.name = FND_API.G_MISS_CHAR
1143     OR  g_Agreement_rec.override_arule_flag = FND_API.G_MISS_CHAR
1144     OR  g_Agreement_rec.override_irule_flag = FND_API.G_MISS_CHAR
1145     OR  g_Agreement_rec.price_list_id = FND_API.G_MISS_NUM
1146     OR  g_Agreement_rec.purchase_order_num = FND_API.G_MISS_CHAR
1147     OR  g_Agreement_rec.revision = FND_API.G_MISS_CHAR
1148     OR  g_Agreement_rec.revision_date = FND_API.G_MISS_DATE
1149     OR  g_Agreement_rec.revision_reason_code = FND_API.G_MISS_CHAR
1150     OR  g_Agreement_rec.salesrep_id = FND_API.G_MISS_NUM
1151     OR  g_Agreement_rec.ship_method_code = FND_API.G_MISS_CHAR
1152     OR  g_Agreement_rec.signature_date = FND_API.G_MISS_DATE
1153     OR  g_Agreement_rec.start_date_active = FND_API.G_MISS_DATE
1154     OR  g_Agreement_rec.term_id = FND_API.G_MISS_NUM
1155     --begin code  added by rchellam for OKC
1156     OR  g_Agreement_rec.agreement_source_code = FND_API.G_MISS_CHAR
1157     OR  g_Agreement_rec.orig_system_agr_id = FND_API.G_MISS_NUM
1158     --end code  added by rchellam for OKC
1159     THEN
1160 
1161         OE_Default_Agreement.Attributes
1162         (   p_Agreement_rec               => g_Agreement_rec
1163         ,   p_iteration                   => p_iteration + 1
1164         ,   x_Agreement_rec               => x_Agreement_rec
1165         );
1166 
1167     ELSE
1168 
1169         --  Done defaulting attributes
1170 
1171         x_Agreement_rec := g_Agreement_rec;
1172 
1173     END IF;
1174 
1175     oe_debug_pub.add('Exiting OE_Default_Agreement.Attributes');
1176 
1177 END Attributes;
1178 
1179 END OE_Default_Agreement;