DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_DEFAULT_PRICE_LIST

Source


1 PACKAGE BODY QP_Default_Price_List AS
2 /* $Header: QPXDPLHB.pls 120.7 2005/09/27 12:32:53 spgopal ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'QP_Default_Price_List';
7 
8 --  Package global used within the package.
9 
10 g_PRICE_LIST_rec              QP_Price_List_PUB.Price_List_Rec_Type;
11 
12 --  Get functions.
13 
14 FUNCTION Get_Automatic
15 RETURN VARCHAR2
16 IS
17 BEGIN
18 
19    oe_debug_pub.add('entering automatic');
20 
21   oe_debug_pub.add('exiting automatic');
22 
23     RETURN 'Y';
24 
25 END Get_Automatic;
26 
27 FUNCTION Get_Comments
28 RETURN VARCHAR2
29 IS
30 BEGIN
31 
32     RETURN NULL;
33 
34 END Get_Comments;
35 
36 FUNCTION Get_Name
37 RETURN VARCHAR2
38 IS
39 BEGIN
40 
41     RETURN NULL;
42 
43 END Get_Name;
44 
45 FUNCTION Get_Description
46 RETURN VARCHAR2
47 IS
48 BEGIN
49 
50     RETURN NULL;
51 
52 END Get_Description;
53 
54 FUNCTION Get_Currency
55 RETURN VARCHAR2
56 IS
57 l_set_of_books_id VARCHAR2(255) := '';
58 l_currency_code VARCHAR2(15) := '';
59 l_org_id NUMBER;
60 BEGIN
61 
62   oe_debug_Pub.add('entering currency');
63 
64      --added for moac to call Oe_sys_params only if org_id is not null
65      l_org_id := QP_UTIL.get_org_id;
66      IF l_org_id IS NOT NULL THEN
67        l_set_of_books_id := oe_sys_parameters.value('SET_OF_BOOKS_ID', l_org_id);
68      ELSE
69        l_set_of_books_id := null;
70      END IF;--if l_org_id
71 
75    INTO l_currency_code
72   IF l_set_of_books_id is not null THEN
73 
74    SELECT CURRENCY_CODE
76    FROM GL_SETS_OF_BOOKS
77    WHERE SET_OF_BOOKS_ID = l_set_of_books_id;
78 
79   END IF;
80 
81   oe_debug_Pub.add('exiting currency');
82 
83   RETURN l_currency_code;
84 
85   EXCEPTION
86 
87      WHEN NO_DATA_FOUND THEN RETURN NULL;
88 
89      WHEN OTHERS THEN
90 
91        IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
92         THEN
93          OE_MSG_PUB.Add_Exc_Msg
94            (    G_PKG_NAME          ,
95                 'Get_Currency'
96             );
97       END IF;
98 
99       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
100 
101 
102 
103 END Get_Currency;
104 
105 FUNCTION Get_Discount_Lines
106 RETURN VARCHAR2
107 IS
108 BEGIN
109 
110     RETURN 'N';
111 
112 END Get_Discount_Lines;
113 
114 FUNCTION Get_End_Date_Active
115 RETURN DATE
116 IS
117 BEGIN
118 
119     RETURN NULL;
120 
121 END Get_End_Date_Active;
122 
123 FUNCTION Get_Freight_Terms
124 RETURN VARCHAR2
125 IS
126 BEGIN
127 
128     RETURN NULL;
129 
130 END Get_Freight_Terms;
131 
132 FUNCTION Get_Gsa_Indicator
133 RETURN VARCHAR2
134 IS
135 BEGIN
136 
137     RETURN NULL;
138 
139 END Get_Gsa_Indicator;
140 
141 FUNCTION Get_Version
142 RETURN VARCHAR2
143 IS
144 BEGIN
145 
146     RETURN '1';
147 
148 END Get_Version;
149 
150 FUNCTION Get_List_Header
151 RETURN NUMBER
152 IS
153    l_list_header_id	NUMBER := NULL;
154 BEGIN
155 
156     oe_debug_pub.add('Entering QP_Default_Price_List.Get_Price_List');
157 
158     select qp_list_headers_b_s.nextval into l_list_header_id
159     from dual;
160 
161     oe_debug_pub.add('Exiting QP_Default_Price_List.Get_Price_List');
162     RETURN l_list_header_id;
163 
164 EXCEPTION
165 
166    WHEN OTHERS THEN
167 
168       IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
169         THEN
170          OE_MSG_PUB.Add_Exc_Msg
171            (    G_PKG_NAME          ,
172                 'Get_Price_List'
173             );
174       END IF;
175 
176       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
177 
178 
179 
180 END Get_List_Header;
181 
182 FUNCTION Get_List_Type
183 RETURN VARCHAR2
184 IS
185 BEGIN
186 
187     RETURN 'PRL';
188 
189 END Get_List_Type;
190 
191 FUNCTION Get_Prorate
192 RETURN VARCHAR2
193 IS
194 BEGIN
195 
196     RETURN NULL;
197 
198 END Get_Prorate;
199 
200 FUNCTION Get_Active_Flag
201 RETURN VARCHAR2
202 IS
203 BEGIN
204     RETURN 'Y';
205 END Get_Active_Flag;
206 
207 -- mkarya for bug 1944882
208 FUNCTION Get_Mobile_Download
209 RETURN VARCHAR2
210 IS
211 BEGIN
212     RETURN 'N';
213 END Get_Mobile_Download;
214 
215 -- Pricing Security gtippire
216 FUNCTION Get_Global_Flag
217 RETURN VARCHAR2
218 IS
219 BEGIN
220     RETURN 'Y';
221 END Get_Global_Flag;
222 
223 -- Multi-Currency SunilPandey
224 FUNCTION Get_Currency_Header
225 RETURN VARCHAR2
226 IS
227   l_currency_header_id  number;
228 BEGIN
229   -- bug 2302661, if multi-currency is installed and public api do not pass the currency_header_id
230   -- then find the currency header id for currency code and rounding factor. If currency_header_id
231   -- is not found then create it.
232   if nvl(fnd_profile.value('QP_MULTI_CURRENCY_INSTALLED'), 'N') = 'Y'
233   --added for moac now defaulted currency_code can be null
234   --when the default org_id is not set as the OM setofbooks will be null
235   --and qp_currency_lists_b.base_currency_code is a notnull column
236   --and the insert below will fail
237   and g_PRICE_LIST_rec.currency_code IS NOT NULL then
238      BEGIN
239         select currency_header_id
240           into l_currency_header_id
241           from qp_currency_lists_vl
242          where base_currency_code = g_PRICE_LIST_rec.currency_code
243            and BASE_ROUNDING_FACTOR = g_PRICE_LIST_rec.rounding_factor
244            and name like 'Generated Currency Conversion For%'
245            and rownum < 2;
246 
247          return l_currency_header_id;
248       EXCEPTION
249         when no_data_found then
250             declare
251                ll_currency_header_id  number;
252             begin
253 		 -- Get next currency_header_id
254                  SELECT QP_CURRENCY_LISTS_B_S.NEXTVAL
255                  INTO   ll_currency_header_id
256                  FROM   dual;
257 
258                  -- Insert one record into qp_currency_lists
259                  INSERT  INTO QP_CURRENCY_LISTS_B
260                  (       ATTRIBUTE1
261                  ,       ATTRIBUTE10
262                  ,       ATTRIBUTE11
263                  ,       ATTRIBUTE12
264                  ,       ATTRIBUTE13
265                  ,       ATTRIBUTE14
266                  ,       ATTRIBUTE15
267                  ,       ATTRIBUTE2
268                  ,       ATTRIBUTE3
269                  ,       ATTRIBUTE4
273                  ,       ATTRIBUTE8
270                  ,       ATTRIBUTE5
271                  ,       ATTRIBUTE6
272                  ,       ATTRIBUTE7
274                  ,       ATTRIBUTE9
275                  ,       BASE_CURRENCY_CODE
276                  ,       CONTEXT
277                  ,       CREATED_BY
278                  ,       CREATION_DATE
279                  ,       CURRENCY_HEADER_ID
280                  ,       LAST_UPDATED_BY
281                  ,       LAST_UPDATE_DATE
282                  ,       LAST_UPDATE_LOGIN
283                  ,       PROGRAM_APPLICATION_ID
284                  ,       PROGRAM_ID
285                  ,       PROGRAM_UPDATE_DATE
286                  ,       REQUEST_ID
287                  )
288                  VALUES
289                  (       null			-- attribute1
290                  ,       null			-- attribute10
291                  ,       null			-- attribute11
292                  ,       null			-- attribute12
293                  ,       null			-- attribute13
294                  ,       null			-- attribute14
295                  ,       null			-- attribute15
296                  ,       null			-- attribute2
297                  ,       null			-- attribute3
298                  ,       null			-- attribute4
299                  ,       null			-- attribute5
300                  ,       null			-- attribute6
301                  ,       null			-- attribute7
302                  ,       null			-- attribute8
303                  ,       null			-- attribute9
304     	         ,       g_price_list_rec.CURRENCY_CODE 	-- base_currency_code
305                  ,       null			-- context
306                  ,       FND_GLOBAL.USER_ID	-- created_by
307                  ,       SYSDATE		-- creation_date
308                  ,       ll_CURRENCY_HEADER_ID  --currency_header_id
309                  ,       FND_GLOBAL.USER_ID	-- last_updated_by
310                  ,       SYSDATE		-- last_update_date
311                  ,       FND_GLOBAL.LOGIN_ID	-- last_update_login
312                  ,       FND_GLOBAL.PROG_APPL_ID -- program_application_id
313                  ,       FND_GLOBAL.CONC_PROGRAM_ID -- program_id
314                  ,       SYSDATE		    -- program_update_date
315                  ,       FND_GLOBAL.CONC_REQUEST_ID -- request_id
316                  );
317 
318                  -- Insert into qp_currency_details
319 
320                  INSERT  INTO QP_CURRENCY_DETAILS
321      		 (       ATTRIBUTE1
322     		 ,       ATTRIBUTE10
323     		 ,       ATTRIBUTE11
324     		 ,       ATTRIBUTE12
325                  ,       ATTRIBUTE13
326                  ,       ATTRIBUTE14
327                  ,       ATTRIBUTE15
328                  ,       ATTRIBUTE2
329                  ,       ATTRIBUTE3
330                  ,       ATTRIBUTE4
331                  ,       ATTRIBUTE5
332                  ,       ATTRIBUTE6
333                  ,       ATTRIBUTE7
334                  ,       ATTRIBUTE8
335                  ,       ATTRIBUTE9
336                  ,       CONTEXT
337                  ,       CONVERSION_DATE
338                  ,       CONVERSION_DATE_TYPE
339                  ,       CONVERSION_TYPE
340                  ,       CREATED_BY
341                  ,       CREATION_DATE
342                  ,       CURRENCY_DETAIL_ID
343                  ,       CURRENCY_HEADER_ID
344                  ,       END_DATE_ACTIVE
345                  ,       FIXED_VALUE
346                  ,       LAST_UPDATED_BY
347                  ,       LAST_UPDATE_DATE
348                  ,       LAST_UPDATE_LOGIN
349                  ,       MARKUP_FORMULA_ID
350                  ,       MARKUP_OPERATOR
351                  ,       MARKUP_VALUE
352                  ,       PRICE_FORMULA_ID
353                  ,       PROGRAM_APPLICATION_ID
354                  ,       PROGRAM_ID
355                  ,       PROGRAM_UPDATE_DATE
356                  ,       REQUEST_ID
357                  ,       SELLING_ROUNDING_FACTOR
358                  ,       START_DATE_ACTIVE
359                  ,       TO_CURRENCY_CODE
360                  )
361                  VALUES
362                  (       null         		-- attribute1
363                  ,       null         		-- attribute10
364                  ,       null         		-- attribute11
365                  ,       null         		-- attribute12
366                  ,       null         		-- attribute13
367                  ,       null         		-- attribute14
368                  ,       null         		-- attribute15
369                  ,       null         		-- attribute2
370                  ,       null         		-- attribute3
371                  ,       null         		-- attribute4
372                  ,       null         		-- attribute5
373                  ,       null         		-- attribute6
374                  ,       null         		-- attribute7
375                  ,       null        		-- attribute8
376                  ,       null         		-- attribute9
377                  ,       null         		-- context
378                  ,       null         		-- conversion_date
379                  ,       null         		-- conversion_date_type
380                  ,       null         		-- conversion_type
381                  ,       FND_GLOBAL.USER_ID	-- created_by
382                  ,       SYSDATE      		-- creation_date
383                  ,       QP_CURRENCY_DETAILS_S.nextval  -- currency_detail_id
387                  ,       FND_GLOBAL.USER_ID	-- last_updated_by
384                  ,       ll_CURRENCY_HEADER_ID	-- currency_header_id
385                  ,       null         		-- end_date_active
386                  ,       null         		-- fixed_value
388                  ,       SYSDATE       		-- last_update_date
389                  ,       FND_GLOBAL.LOGIN_ID    -- last_update_login
390                  ,       null	      		-- base_markup_formula_id
391                  ,       null         		-- base_markup_operator
392                  ,       null         		-- base_markup_value
393                  ,       null         		-- price_formula_id
394                  ,       FND_GLOBAL.PROG_APPL_ID    -- program_application_id
395                  ,       FND_GLOBAL.CONC_PROGRAM_ID -- program_id
396                  ,       SYSDATE                    -- program_update_date
397                  ,       FND_GLOBAL.CONC_REQUEST_ID -- request_id
398                  ,       g_price_list_rec.ROUNDING_FACTOR 	-- base_rounding_factor
399                  ,       null         		-- start_date_active
400                  ,       g_price_list_rec.CURRENCY_CODE     -- base_currency_code
401                  );
402 
403 
404                  -- Insert into qp_currency_lists_tl
405                  INSERT INTO QP_CURRENCY_LISTS_TL
406                  (       CURRENCY_HEADER_ID
407                  , 	 NAME
408                  , 	 DESCRIPTION
409                  , 	 CREATION_DATE
410                  , 	 CREATED_BY
411                  ,       LAST_UPDATE_DATE
412                  ,       LAST_UPDATED_BY
413                  ,       LAST_UPDATE_LOGIN
414                  ,       LANGUAGE
415                  ,       SOURCE_LANG
416                  )
417                  select
418                          ll_currency_header_id	--CURRENCY_HEADER_ID
419     	         ,      'Generated Currency Conversion For '|| g_price_list_rec.currency_code||' '||ll_currency_header_id -- NAME
420                  ,      'Generated Currency Conversion For '|| g_price_list_rec.currency_code||' '||ll_currency_header_id -- DESCRIPTION
421                  , 	 SYSDATE		-- CREATION_DATE
422                  , 	 FND_GLOBAL.USER_ID	-- CREATED_BY
423                  , 	 SYSDATE		-- LAST_UPDATE_DATE
424                  , 	 FND_GLOBAL.USER_ID	-- LAST_UPDATED_BY
425                  , 	 FND_GLOBAL.LOGIN_ID	-- LAST_UPDATE_LOGIN
426                  , 	 L.LANGUAGE_CODE	-- LANGUAGE
427                  ,       userenv('LANG')	-- SOURCE_LANG
428                  from    fnd_languages l
429                  where   l.installed_flag IN ('I','B');
430 
431                 return ll_currency_header_id;
432              end;
433 
434         when others then
435             IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
436              THEN
437               OE_MSG_PUB.Add_Exc_Msg
438                 (    G_PKG_NAME          ,
439                      'Get_Currency_Header'
440                  );
441            END IF;
442 
443            RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
444 
445       END;
446   else
447     RETURN NULL;
448   end if;
449 END Get_Currency_Header;
450 
451 -- Attribute Manager Giri
452 FUNCTION Get_Pte
453 RETURN VARCHAR2
454 IS
455 l_pte_code            VARCHAR2(30);
456 BEGIN
457     FND_PROFILE.GET('QP_PRICING_TRANSACTION_ENTITY', l_pte_code);
458 
459     IF l_pte_code IS NULL THEN
460       l_pte_code := 'ORDFUL';
461     END IF;
462     RETURN l_pte_code;
463 END Get_Pte;
464 
465 FUNCTION Get_Rounding_Factor
466 RETURN NUMBER
467 IS
468 l_unit_precision_type varchar2(255) := '';
469 l_precision number := 0;
470 l_extended_precision number := 0;
471 
472 BEGIN
473 
474    oe_debug_pub.add('entering get_rounding_factor');
475 
476   l_unit_precision_type :=
477               FND_PROFILE.VALUE('QP_UNIT_PRICE_PRECISION_TYPE');
478 
479     SELECT -1*PRECISION,
480            -1*EXTENDED_PRECISION
481     INTO   l_precision,
482            l_extended_precision
483     FROM   FND_CURRENCIES
484    WHERE   CURRENCY_CODE = G_PRICE_LIST_REC.CURRENCY_CODE;
485 
486   IF l_unit_precision_type = 'STANDARD' THEN
487    oe_debug_pub.add('exiting get_rounding_factor');
488    return l_precision;
489   ELSE
490 	return l_extended_precision;
491   END IF;
492 
493    EXCEPTION
494 
495      WHEN NO_DATA_FOUND THEN RETURN NULL;
496 
497      WHEN OTHERS THEN
498 
499        IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
500         THEN
501          OE_MSG_PUB.Add_Exc_Msg
502            (    G_PKG_NAME          ,
503                 'Get_Rounding_Factor'
504             );
505       END IF;
506 
507       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
508 
509 END Get_Rounding_Factor;
510 
511 FUNCTION Get_Ship_Method
512 RETURN VARCHAR2
513 IS
514 BEGIN
515 
516     RETURN NULL;
517 
518 END Get_Ship_Method;
519 
520 FUNCTION Get_Start_Date_Active
521 RETURN DATE
522 IS
523 l_sysdate date;
524 BEGIN
525 
526    oe_debug_pub.add('entering start date active');
527    SELECT TRUNC(SYSDATE)
528    INTO l_sysdate
529    FROM DUAL;
530 
531    oe_debug_pub.add('exiting start date active');
532 
533     RETURN l_sysdate;
534 
535   EXCEPTION
536 
537      WHEN NO_DATA_FOUND THEN RETURN NULL;
538 
539      WHEN OTHERS THEN
540 
544            (    G_PKG_NAME          ,
541        IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
542         THEN
543          OE_MSG_PUB.Add_Exc_Msg
545                 'Get_Start_Date_Active'
546             );
547       END IF;
548 
549       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
550 
551 END Get_Start_Date_Active;
552 
553 FUNCTION Get_Terms
554 RETURN NUMBER
555 IS
556 BEGIN
557 
558     RETURN NULL;
559 
560 END Get_Terms;
561 
562 --Blanket Sales Order
563 FUNCTION Get_List_Source_Code
564 RETURN VARCHAR2
565 IS BEGIN
566 
567     RETURN NULL;
568 
569 END Get_List_Source_Code;
570 
571 --Blanket Sales Order
572 FUNCTION Get_Orig_System_Header_Ref
573 RETURN VARCHAR2
574 IS BEGIN
575 
576     RETURN NULL;
577 
578 END Get_Orig_System_Header_Ref;
579 
580 -- Blanket Pricing
581 FUNCTION Get_Source_System_Code
582 RETURN VARCHAR2
583 IS
584 l_source_system_code VARCHAR2(30);
585 BEGIN
586 
587     FND_PROFILE.GET('QP_SOURCE_SYSTEM_CODE',l_source_system_code);
588     RETURN l_source_system_code;
589 
590 END Get_Source_System_Code;
591 
592 FUNCTION Get_Shareable_Flag
593 RETURN VARCHAR2
594 IS BEGIN
595 
596     RETURN NULL;
597 
598 END Get_Shareable_Flag;
599 
600 FUNCTION Get_Sold_To_Org_Id
601 RETURN VARCHAR2
602 IS BEGIN
603 
604     RETURN NULL;
605 
606 END Get_Sold_To_Org_Id;
607 
608 
609 FUNCTION Get_Locked_From_List_Header_Id
610 RETURN NUMBER
611 IS BEGIN
612 
613     RETURN NULL;
614 
615 END Get_Locked_From_List_Header_Id;
616 
617 --added for MOAC
618 FUNCTION Get_Org_Id
619 RETURN NUMBER
620 IS BEGIN
621 
622     RETURN QP_UTIL.Get_Org_Id;
623 
624 END Get_Org_Id;
625 
626 PROCEDURE Get_Flex_Price_List
627 IS
628 BEGIN
629 
630     --  In the future call Flex APIs for defaults
631 
632     IF g_PRICE_LIST_rec.attribute1 = FND_API.G_MISS_CHAR THEN
633         g_PRICE_LIST_rec.attribute1    := NULL;
634     END IF;
635 
636     IF g_PRICE_LIST_rec.attribute10 = FND_API.G_MISS_CHAR THEN
637         g_PRICE_LIST_rec.attribute10   := NULL;
638     END IF;
639 
640     IF g_PRICE_LIST_rec.attribute11 = FND_API.G_MISS_CHAR THEN
641         g_PRICE_LIST_rec.attribute11   := NULL;
642     END IF;
643 
644     IF g_PRICE_LIST_rec.attribute12 = FND_API.G_MISS_CHAR THEN
645         g_PRICE_LIST_rec.attribute12   := NULL;
646     END IF;
647 
648     IF g_PRICE_LIST_rec.attribute13 = FND_API.G_MISS_CHAR THEN
649         g_PRICE_LIST_rec.attribute13   := NULL;
650     END IF;
651 
652     IF g_PRICE_LIST_rec.attribute14 = FND_API.G_MISS_CHAR THEN
653         g_PRICE_LIST_rec.attribute14   := NULL;
654     END IF;
655 
656     IF g_PRICE_LIST_rec.attribute15 = FND_API.G_MISS_CHAR THEN
657         g_PRICE_LIST_rec.attribute15   := NULL;
658     END IF;
659 
660     IF g_PRICE_LIST_rec.attribute2 = FND_API.G_MISS_CHAR THEN
661         g_PRICE_LIST_rec.attribute2    := NULL;
662     END IF;
663 
664     IF g_PRICE_LIST_rec.attribute3 = FND_API.G_MISS_CHAR THEN
665         g_PRICE_LIST_rec.attribute3    := NULL;
666     END IF;
667 
668     IF g_PRICE_LIST_rec.attribute4 = FND_API.G_MISS_CHAR THEN
669         g_PRICE_LIST_rec.attribute4    := NULL;
670     END IF;
671 
672     IF g_PRICE_LIST_rec.attribute5 = FND_API.G_MISS_CHAR THEN
673         g_PRICE_LIST_rec.attribute5    := NULL;
674     END IF;
675 
676     IF g_PRICE_LIST_rec.attribute6 = FND_API.G_MISS_CHAR THEN
677         g_PRICE_LIST_rec.attribute6    := NULL;
678     END IF;
679 
680     IF g_PRICE_LIST_rec.attribute7 = FND_API.G_MISS_CHAR THEN
681         g_PRICE_LIST_rec.attribute7    := NULL;
682     END IF;
683 
684     IF g_PRICE_LIST_rec.attribute8 = FND_API.G_MISS_CHAR THEN
685         g_PRICE_LIST_rec.attribute8    := NULL;
686     END IF;
687 
688     IF g_PRICE_LIST_rec.attribute9 = FND_API.G_MISS_CHAR THEN
689         g_PRICE_LIST_rec.attribute9    := NULL;
690     END IF;
691 
692     IF g_PRICE_LIST_rec.context = FND_API.G_MISS_CHAR THEN
693         g_PRICE_LIST_rec.context       := NULL;
694     END IF;
695 
696 END Get_Flex_Price_List;
697 
698 --  Procedure Attributes
699 
700 PROCEDURE Attributes
701 (   p_PRICE_LIST_rec                IN  QP_Price_List_PUB.Price_List_Rec_Type :=
702                                         QP_Price_List_PUB.G_MISS_PRICE_LIST_REC
703 ,   p_iteration                     IN  NUMBER := 1
704 ,   x_PRICE_LIST_rec                OUT NOCOPY /* file.sql.39 change */ QP_Price_List_PUB.Price_List_Rec_Type
705 )
706 IS
707 g_p_PRICE_LIST_rec         QP_Price_List_PUB.Price_List_Rec_Type;
708 BEGIN
709 
710     oe_debug_pub.add('entering attributes');
711 
712     --  Check number of iterations.
713 
714     IF p_iteration > QP_GLOBALS.G_MAX_DEF_ITERATIONS THEN
715 
716         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
717         THEN
718 
719             FND_MESSAGE.SET_NAME('QP','OE_DEF_MAX_ITERATION');
720             oe_msg_pub.Add;
721 
722         END IF;
723 
724         RAISE FND_API.G_EXC_ERROR;
725 
726     END IF;
727 
731 
728     --  Initialize g_PRICE_LIST_rec
729 
730     g_PRICE_LIST_rec := p_PRICE_LIST_rec;
732     --  Default missing attributes.
733 
734     IF g_PRICE_LIST_rec.automatic_flag = FND_API.G_MISS_CHAR THEN
735 
736         g_PRICE_LIST_rec.automatic_flag := Get_Automatic;
737 
738         IF g_PRICE_LIST_rec.automatic_flag IS NOT NULL THEN
739 
740             IF QP_Validate.Automatic(g_PRICE_LIST_rec.automatic_flag)
741             THEN
742                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
743                 QP_Price_List_Util.Clear_Dependent_Attr
744                 (   p_attr_id                     => QP_Price_List_Util.G_AUTOMATIC
745                 ,   p_PRICE_LIST_rec              => g_p_PRICE_LIST_rec
746                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
747                 );
748             ELSE
749                 g_PRICE_LIST_rec.automatic_flag := NULL;
750             END IF;
751 
752         END IF;
753 
754     END IF;
755 
756     IF g_PRICE_LIST_rec.comments = FND_API.G_MISS_CHAR THEN
757 
758         g_PRICE_LIST_rec.comments := Get_Comments;
759 
760         IF g_PRICE_LIST_rec.comments IS NOT NULL THEN
761 
762             IF QP_Validate.Comments(g_PRICE_LIST_rec.comments)
763             THEN
764                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
765                 QP_Price_List_Util.Clear_Dependent_Attr
766                 (   p_attr_id                     => QP_Price_List_Util.G_COMMENTS
767                 ,   p_PRICE_LIST_rec              => g_p_PRICE_LIST_rec
768                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
769                 );
770             ELSE
771                 g_PRICE_LIST_rec.comments := NULL;
772             END IF;
773 
774         END IF;
775 
776     END IF;
777 
778     IF g_PRICE_LIST_rec.currency_code = FND_API.G_MISS_CHAR THEN
779 
780         g_PRICE_LIST_rec.currency_code := Get_Currency;
781 
782         IF g_PRICE_LIST_rec.currency_code IS NOT NULL THEN
783 
784             IF QP_Validate.Currency(g_PRICE_LIST_rec.currency_code)
785             THEN
786                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
787                 QP_Price_List_Util.Clear_Dependent_Attr
788                 (   p_attr_id                     => QP_Price_List_Util.G_CURRENCY
789                 ,   p_PRICE_LIST_rec              => g_p_PRICE_LIST_rec
790                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
791                 );
792             ELSE
793                 g_PRICE_LIST_rec.currency_code := NULL;
794             END IF;
795 
796         END IF;
797 
798     END IF;
799 
800     IF g_PRICE_LIST_rec.discount_lines_flag = FND_API.G_MISS_CHAR THEN
801 
802         g_PRICE_LIST_rec.discount_lines_flag := Get_Discount_Lines;
803 
804         IF g_PRICE_LIST_rec.discount_lines_flag IS NOT NULL THEN
805 
806             IF QP_Validate.Discount_Lines(g_PRICE_LIST_rec.discount_lines_flag)
807             THEN
808                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
809                 QP_Price_List_Util.Clear_Dependent_Attr
810                 (   p_attr_id                     => QP_Price_List_Util.G_DISCOUNT_LINES
811                 ,   p_PRICE_LIST_rec              => g_p_PRICE_LIST_rec
812                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
813                 );
814             ELSE
815                 g_PRICE_LIST_rec.discount_lines_flag := NULL;
816             END IF;
817 
818         END IF;
819 
820     END IF;
821 
822     IF g_PRICE_LIST_rec.end_date_active = FND_API.G_MISS_DATE THEN
823 
824         g_PRICE_LIST_rec.end_date_active := Get_End_Date_Active;
825 
826         IF g_PRICE_LIST_rec.end_date_active IS NOT NULL THEN
827 
828             IF QP_Validate.End_Date_Active(g_PRICE_LIST_rec.end_date_active)
829             THEN
830                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
831                 QP_Price_List_Util.Clear_Dependent_Attr
832                 (   p_attr_id                     => QP_Price_List_Util.G_END_DATE_ACTIVE
833                 ,   p_PRICE_LIST_rec              => g_p_PRICE_LIST_rec
834                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
835                 );
836             ELSE
837                 g_PRICE_LIST_rec.end_date_active := NULL;
838             END IF;
839 
840         END IF;
841 
842     END IF;
843 
844     IF g_PRICE_LIST_rec.freight_terms_code = FND_API.G_MISS_CHAR THEN
845 
846         g_PRICE_LIST_rec.freight_terms_code := Get_Freight_Terms;
847 
848         IF g_PRICE_LIST_rec.freight_terms_code IS NOT NULL THEN
849 
850             IF QP_Validate.Freight_Terms(g_PRICE_LIST_rec.freight_terms_code)
851             THEN
852                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
853                 QP_Price_List_Util.Clear_Dependent_Attr
854                 (   p_attr_id                     => QP_Price_List_Util.G_FREIGHT_TERMS
855                 ,   p_PRICE_LIST_rec              => g_p_PRICE_LIST_rec
856                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
857                 );
858             ELSE
859                 g_PRICE_LIST_rec.freight_terms_code := NULL;
860             END IF;
861 
862         END IF;
863 
864     END IF;
865 
866     IF g_PRICE_LIST_rec.gsa_indicator = FND_API.G_MISS_CHAR THEN
867 
868         g_PRICE_LIST_rec.gsa_indicator := Get_Gsa_Indicator;
869 
873             THEN
870         IF g_PRICE_LIST_rec.gsa_indicator IS NOT NULL THEN
871 
872             IF QP_Validate.Gsa_Indicator(g_PRICE_LIST_rec.gsa_indicator)
874                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
875                 QP_Price_List_Util.Clear_Dependent_Attr
876                 (   p_attr_id                     => QP_Price_List_Util.G_GSA_INDICATOR
877                 ,   p_PRICE_LIST_rec              => g_p_PRICE_LIST_rec
878                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
879                 );
880             ELSE
881                 g_PRICE_LIST_rec.gsa_indicator := NULL;
882             END IF;
883 
884         END IF;
885 
886     END IF;
887 
888 IF g_PRICE_LIST_rec.active_flag = FND_API.G_MISS_CHAR THEN
889      g_PRICE_LIST_rec.active_flag := Get_Active_Flag;
890 	  IF g_PRICE_LIST_rec.active_flag IS NOT NULL THEN
891 		IF QP_Validate.active(g_PRICE_LIST_rec.active_flag)
892 		THEN
893                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
894 		   QP_Price_List_Util.Clear_Dependent_Attr
895 			(p_attr_id              => QP_Price_list_Util.G_ACTIVE_FLAG,
896 			 p_PRICE_LIST_rec       => g_p_PRICE_LIST_rec,
897 			 x_PRICE_LIST_rec       => g_PRICE_LIST_rec);
898           ELSE
899 		   g_PRICE_LIST_rec.active_flag := NULL;
900           END IF;
901         END IF;
902 END IF;
903 
904 -- mkarya for bug 1944882
905 IF g_PRICE_LIST_rec.mobile_download = FND_API.G_MISS_CHAR THEN
906      g_PRICE_LIST_rec.mobile_download := Get_Mobile_Download;
907 	  IF g_PRICE_LIST_rec.mobile_download IS NOT NULL THEN
908 		IF QP_Validate.mobile_download(g_PRICE_LIST_rec.mobile_download)
909 		THEN
910                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
911 		   QP_Price_List_Util.Clear_Dependent_Attr
912 			(p_attr_id              => QP_Price_list_Util.G_MOBILE_DOWNLOAD,
913 			 p_PRICE_LIST_rec       => g_p_PRICE_LIST_rec,
914 			 x_PRICE_LIST_rec       => g_PRICE_LIST_rec);
915           ELSE
916 		   g_PRICE_LIST_rec.mobile_download := NULL;
917           END IF;
918         END IF;
919 END IF;
920 
921 -- Pricing Security gtippire
922 IF g_PRICE_LIST_rec.global_flag = FND_API.G_MISS_CHAR THEN
923      g_PRICE_LIST_rec.global_flag := Get_Global_Flag;
924 	  IF g_PRICE_LIST_rec.global_flag IS NOT NULL THEN
925 		IF QP_Validate.global_flag(g_PRICE_LIST_rec.global_flag)
926 		THEN
927                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
928 		   QP_Price_List_Util.Clear_Dependent_Attr
929 			(p_attr_id              => QP_Price_list_Util.G_GLOBAL_FLAG,
930 			 p_PRICE_LIST_rec       => g_p_PRICE_LIST_rec,
931 			 x_PRICE_LIST_rec       => g_PRICE_LIST_rec);
932           ELSE
933 		   g_PRICE_LIST_rec.global_flag := NULL;
934           END IF;
935         END IF;
936 END IF;
937 
938 
939 -- Attributes Manager Giri
940 IF g_PRICE_LIST_rec.pte_code = FND_API.G_MISS_CHAR THEN
941      g_PRICE_LIST_rec.pte_code := Get_Pte;
942 	  IF g_PRICE_LIST_rec.pte_code IS NOT NULL THEN
943 		IF QP_Validate.pte(g_PRICE_LIST_rec.pte_code)
944 		THEN
945                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
946 		   QP_Price_List_Util.Clear_Dependent_Attr
947 			(p_attr_id              => QP_Price_list_Util.G_PTE,
948 			 p_PRICE_LIST_rec       => g_p_PRICE_LIST_rec,
949 			 x_PRICE_LIST_rec       => g_PRICE_LIST_rec);
950           ELSE
951 		   g_PRICE_LIST_rec.pte_code := NULL;
952           END IF;
953         END IF;
954 END IF;
955 
956 
957     IF g_PRICE_LIST_rec.name = FND_API.G_MISS_CHAR THEN
958 
959         g_PRICE_LIST_rec.name := Get_Name;
960 
961         IF g_PRICE_LIST_rec.name IS NOT NULL THEN
962 
963             IF QP_Validate.Name(g_PRICE_LIST_rec.name)
964             THEN
965                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
966                 QP_Price_List_Util.Clear_Dependent_Attr
967                 (   p_attr_id                     => QP_Price_List_Util.G_NAME
968                 ,   p_PRICE_LIST_rec              => g_p_PRICE_LIST_rec
969                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
970                 );
971             ELSE
972                 g_PRICE_LIST_rec.name := NULL;
973             END IF;
974 
975         END IF;
976 
977     END IF;
978 
979     IF g_PRICE_LIST_rec.description = FND_API.G_MISS_CHAR THEN
980 
981         g_PRICE_LIST_rec.description := Get_Description;
982 
983         IF g_PRICE_LIST_rec.description IS NOT NULL THEN
984 
985             IF QP_Validate.Description(g_PRICE_LIST_rec.description)
986             THEN
987                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
988                 QP_Price_List_Util.Clear_Dependent_Attr
989                 (   p_attr_id                     => QP_Price_List_Util.G_DESCRIPTION
990                 ,   p_PRICE_LIST_rec              => g_p_PRICE_LIST_rec
991                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
992                 );
993             ELSE
994                 g_PRICE_LIST_rec.description := NULL;
995             END IF;
996 
997         END IF;
998 
999     END IF;
1000 
1001     IF g_PRICE_LIST_rec.list_header_id = FND_API.G_MISS_NUM THEN
1002 
1003         g_PRICE_LIST_rec.list_header_id := Get_List_Header;
1004 
1005         IF g_PRICE_LIST_rec.list_header_id IS NOT NULL THEN
1006 
1007             IF QP_Validate.List_Header(g_PRICE_LIST_rec.list_header_id)
1008             THEN
1009                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
1010                 QP_Price_List_Util.Clear_Dependent_Attr
1014                 );
1011                 (   p_attr_id                     => QP_Price_List_Util.G_LIST_HEADER
1012                 ,   p_PRICE_LIST_rec              => g_p_PRICE_LIST_rec
1013                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
1015             ELSE
1016                 g_PRICE_LIST_rec.list_header_id := NULL;
1017             END IF;
1018 
1019         END IF;
1020 
1021     END IF;
1022 
1023     IF g_PRICE_LIST_rec.list_type_code = FND_API.G_MISS_CHAR THEN
1024 
1025         g_PRICE_LIST_rec.list_type_code := Get_List_Type;
1026 
1027         IF g_PRICE_LIST_rec.list_type_code IS NOT NULL THEN
1028 
1029             IF QP_Validate.List_Type(g_PRICE_LIST_rec.list_type_code)
1030             THEN
1031                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
1032                 QP_Price_List_Util.Clear_Dependent_Attr
1033                 (   p_attr_id                     => QP_Price_List_Util.G_LIST_TYPE
1034                 ,   p_PRICE_LIST_rec              => g_p_PRICE_LIST_rec
1035                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
1036                 );
1037             ELSE
1038                 g_PRICE_LIST_rec.list_type_code := NULL;
1039             END IF;
1040 
1041         END IF;
1042 
1043     END IF;
1044 
1045     IF g_PRICE_LIST_rec.version_no = FND_API.G_MISS_CHAR THEN
1046 
1047         g_PRICE_LIST_rec.version_no := Get_Version;
1048 
1049         IF g_PRICE_LIST_rec.version_no IS NOT NULL THEN
1050 
1051             IF QP_Validate.Version(g_PRICE_LIST_rec.version_no)
1052             THEN
1053                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
1054                 QP_Price_List_Util.Clear_Dependent_Attr
1055                 (   p_attr_id                     => QP_Price_List_Util.G_VERSION_NO
1056                 ,   p_PRICE_LIST_rec              => g_p_PRICE_LIST_rec
1057                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
1058                 );
1059             ELSE
1060                 g_PRICE_LIST_rec.version_no := NULL;
1061             END IF;
1062 
1063         END IF;
1064 
1065     END IF;
1066 
1067     IF g_PRICE_LIST_rec.prorate_flag = FND_API.G_MISS_CHAR THEN
1068 
1069         g_PRICE_LIST_rec.prorate_flag := Get_Prorate;
1070 
1071         IF g_PRICE_LIST_rec.prorate_flag IS NOT NULL THEN
1072 
1073             IF QP_Validate.Prorate(g_PRICE_LIST_rec.prorate_flag)
1074             THEN
1075                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
1076                 QP_Price_List_Util.Clear_Dependent_Attr
1077                 (   p_attr_id                     => QP_Price_List_Util.G_PRORATE
1078                 ,   p_PRICE_LIST_rec              => g_p_PRICE_LIST_rec
1079                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
1080                 );
1081             ELSE
1082                 g_PRICE_LIST_rec.prorate_flag := NULL;
1083             END IF;
1084 
1085         END IF;
1086 
1087     END IF;
1088 
1089     IF g_PRICE_LIST_rec.rounding_factor = FND_API.G_MISS_NUM THEN
1090 
1091         g_PRICE_LIST_rec.rounding_factor := Get_Rounding_Factor;
1092 
1093         IF g_PRICE_LIST_rec.rounding_factor IS NOT NULL THEN
1094 
1095             IF QP_Validate.Rounding_Factor(g_PRICE_LIST_rec.rounding_factor)
1096             THEN
1097                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
1098                 QP_Price_List_Util.Clear_Dependent_Attr
1099                 (   p_attr_id                     => QP_Price_List_Util.G_ROUNDING_FACTOR
1100                 ,   p_PRICE_LIST_rec              => g_p_PRICE_LIST_rec
1101                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
1102                 );
1103             ELSE
1104                 g_PRICE_LIST_rec.rounding_factor := NULL;
1105             END IF;
1106 
1107         END IF;
1108 
1109     END IF;
1110 
1111 -- Multi-Currency SunilPandey
1112 IF g_PRICE_LIST_rec.currency_header_id = FND_API.G_MISS_NUM THEN
1113      g_PRICE_LIST_rec.currency_header_id := Get_Currency_Header;
1114 	  IF g_PRICE_LIST_rec.currency_header_id IS NOT NULL THEN
1115 		IF QP_Validate.currency_header(g_PRICE_LIST_rec.currency_header_id)
1116 		THEN
1117                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
1118 		   QP_Price_List_Util.Clear_Dependent_Attr
1119 			(p_attr_id              => QP_Price_list_Util.G_CURRENCY_HEADER,
1120 			 p_PRICE_LIST_rec       => g_p_PRICE_LIST_rec,
1121 			 x_PRICE_LIST_rec       => g_PRICE_LIST_rec);
1122           ELSE
1123 		   g_PRICE_LIST_rec.currency_header_id := NULL;
1124           END IF;
1125         END IF;
1126 END IF;
1127 
1128     IF g_PRICE_LIST_rec.ship_method_code = FND_API.G_MISS_CHAR THEN
1129 
1130         g_PRICE_LIST_rec.ship_method_code := Get_Ship_Method;
1131 
1132         IF g_PRICE_LIST_rec.ship_method_code IS NOT NULL THEN
1133 
1134             IF QP_Validate.Ship_Method(g_PRICE_LIST_rec.ship_method_code)
1135             THEN
1136                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
1137                 QP_Price_List_Util.Clear_Dependent_Attr
1138                 (   p_attr_id                     => QP_Price_List_Util.G_SHIP_METHOD
1139                 ,   p_PRICE_LIST_rec              => g_p_PRICE_LIST_rec
1140                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
1141                 );
1142             ELSE
1143                 g_PRICE_LIST_rec.ship_method_code := NULL;
1144             END IF;
1145 
1146         END IF;
1147 
1148     END IF;
1149 
1150     IF g_PRICE_LIST_rec.start_date_active = FND_API.G_MISS_DATE THEN
1151 
1152         g_PRICE_LIST_rec.start_date_active := Get_Start_Date_Active;
1153 
1157 		oe_debug_pub.add('start date active is not null');
1154 	  /*
1155         IF g_PRICE_LIST_rec.start_date_active IS NOT NULL THEN
1156 
1158 
1159             IF QP_Validate.Start_Date_Active(g_PRICE_LIST_rec.start_date_active)
1160             THEN
1161               oe_debug_pub.add('valid start date');
1162                 QP_Price_List_Util.Clear_Dependent_Attr
1163                 (   p_attr_id                     => QP_Price_List_Util.G_START_DATE_ACTIVE
1164                 ,   p_PRICE_LIST_rec              => g_PRICE_LIST_rec
1165                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
1166                 );
1167             ELSE
1168 			oe_debug_pub.add('setting start date to be null');
1169                 g_PRICE_LIST_rec.start_date_active := NULL;
1170             END IF;
1171 
1172         END IF;
1173 	    */
1174 
1175     END IF;
1176 
1177     IF g_PRICE_LIST_rec.terms_id = FND_API.G_MISS_NUM THEN
1178 
1179 	oe_debug_pub.add('defaulting terms id');
1180         g_PRICE_LIST_rec.terms_id := Get_Terms;
1181 
1182         IF g_PRICE_LIST_rec.terms_id IS NOT NULL THEN
1183 
1184             IF QP_Validate.Terms(g_PRICE_LIST_rec.terms_id)
1185             THEN
1186                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
1187                 QP_Price_List_Util.Clear_Dependent_Attr
1188                 (   p_attr_id                     => QP_Price_List_Util.G_TERMS
1189                 ,   p_PRICE_LIST_rec              => g_p_PRICE_LIST_rec
1190                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
1191                 );
1192             ELSE
1193                 g_PRICE_LIST_rec.terms_id := NULL;
1194             END IF;
1195 
1196         END IF;
1197 	   oe_debug_pub.add('defaulted terms id');
1198 
1199     END IF;
1200 
1201 --Blanket Sales Order
1202     IF g_PRICE_LIST_rec.list_source_code = FND_API.G_MISS_CHAR THEN
1203 
1204        g_PRICE_LIST_REC.list_source_code := Get_List_Source_Code;
1205 
1206        IF g_PRICE_LIST_REC.list_source_code IS NOT NULL THEN
1207 
1208            IF QP_Validate.List_Source_Code(g_PRICE_LIST_rec.list_source_code) THEN
1209                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
1210 	        QP_Price_List_Util.Clear_Dependent_Attr
1211                 (   p_attr_id                     => QP_Price_List_Util.G_LIST_SOURCE
1212                 ,   p_PRICE_LIST_rec              => g_p_PRICE_LIST_rec
1213                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
1214                 );
1215             ELSE
1216                         oe_debug_pub.add('setting list_source_code and orig_system_header_ref to be null');
1217                 g_PRICE_LIST_rec.list_source_code := NULL;
1218             END IF;
1219 
1220         END IF;
1221     END IF;
1222 
1223 
1224 --Blanket Sales Order
1225     IF g_PRICE_LIST_rec.orig_system_header_ref = FND_API.G_MISS_CHAR THEN
1226 
1227        g_PRICE_LIST_REC.orig_system_header_ref := Get_Orig_System_Header_ref;
1228 
1229       /* IF g_PRICE_LIST_REC.orig_system_header_ref IS NOT NULL THEN
1230 
1231            IF QP_Validate.List_Source_Code(g_PRICE_LIST_rec.list_source_code) THEN
1232 	        QP_Price_List_Util.Clear_Dependent_Attr
1233                 (   p_attr_id                     => QP_Price_List_Util.G_LIST_SOURCE
1234                 ,   p_PRICE_LIST_rec              => g_PRICE_LIST_rec
1235                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
1236                 );
1237             ELSE
1238                         oe_debug_pub.add('setting list_source_code and orig_system_header_ref to be null');
1239                 g_PRICE_LIST_rec.list_source_code := NULL;
1240             END IF;
1241 
1242         END IF;
1243      */
1244    END IF;
1245 
1246 --Blanket pricing
1247     IF g_PRICE_LIST_rec.source_system_code = FND_API.G_MISS_CHAR THEN
1248 
1249        g_PRICE_LIST_REC.source_system_code := Get_Source_System_Code;
1250 
1251        IF g_PRICE_LIST_REC.source_system_code IS NOT NULL THEN
1252 
1253            IF QP_Validate.Source_System(g_PRICE_LIST_rec.source_system_code) THEN
1254                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
1255 	        QP_Price_List_Util.Clear_Dependent_Attr
1256                 (   p_attr_id                     => QP_Price_List_Util.G_SOURCE_SYSTEM_CODE
1257                 ,   p_PRICE_LIST_rec              => g_p_PRICE_LIST_rec
1258                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
1259                 );
1260             ELSE
1261                 oe_debug_pub.add('setting source_system_code to be null');
1262                 g_PRICE_LIST_rec.source_system_code := NULL;
1263             END IF;
1264 
1265         END IF;
1266     END IF;
1267 
1268     IF g_PRICE_LIST_rec.shareable_flag = FND_API.G_MISS_CHAR THEN
1269 
1270        g_PRICE_LIST_REC.shareable_flag := Get_Shareable_Flag;
1271 
1272        IF g_PRICE_LIST_REC.shareable_flag IS NOT NULL THEN
1273 
1274            IF QP_Validate.Shareable_Flag(g_PRICE_LIST_rec.shareable_flag) THEN
1275                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
1276 	        QP_Price_List_Util.Clear_Dependent_Attr
1277                 (   p_attr_id                     => QP_Price_List_Util.G_SHAREABLE_FLAG
1278                 ,   p_PRICE_LIST_rec              => g_p_PRICE_LIST_rec
1279                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
1280                 );
1281             ELSE
1282                 oe_debug_pub.add('setting shareable_flag to be null');
1283                 g_PRICE_LIST_rec.shareable_flag := NULL;
1284             END IF;
1285 
1286         END IF;
1287     END IF;
1288 
1289 
1290     IF g_PRICE_LIST_rec.sold_to_org_id = FND_API.G_MISS_NUM THEN
1294        IF g_PRICE_LIST_REC.sold_to_org_id IS NOT NULL THEN
1291 
1292        g_PRICE_LIST_REC.sold_to_org_id := Get_Sold_To_Org_Id;
1293 
1295 
1296            IF QP_Validate.Sold_To_Org_Id(g_PRICE_LIST_rec.sold_to_org_id) THEN
1297                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
1298 	        QP_Price_List_Util.Clear_Dependent_Attr
1299                 (   p_attr_id                     => QP_Price_List_Util.G_SOLD_TO_ORG_ID
1300                 ,   p_PRICE_LIST_rec              => g_p_PRICE_LIST_rec
1301                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
1302                 );
1303             ELSE
1304                 oe_debug_pub.add('setting sold_to_org_id to be null');
1305                 g_PRICE_LIST_rec.sold_to_org_id := NULL;
1306             END IF;
1307 
1308         END IF;
1309     END IF;
1310 
1311     IF g_PRICE_LIST_rec.locked_from_list_header_id = FND_API.G_MISS_NUM THEN
1312 
1313        g_PRICE_LIST_REC.locked_from_list_header_id := Get_Locked_From_List_Header_Id;
1314 
1315        IF g_PRICE_LIST_REC.locked_from_list_header_id IS NOT NULL THEN
1316 
1317            IF QP_Validate.Locked_From_list_Header_Id(g_PRICE_LIST_rec.locked_from_list_header_id) THEN
1318                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
1319                 QP_Price_List_Util.Clear_Dependent_Attr
1320                 (   p_attr_id    => QP_Price_List_Util.G_LOCKED_FROM_LIST_HEADER
1321                 ,   p_PRICE_LIST_rec   => g_p_PRICE_LIST_rec
1322                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
1323                 );
1324             ELSE
1325               oe_debug_pub.add('setting locked_from_list_header_id to be null');
1326               g_PRICE_LIST_rec.locked_from_list_header_id := NULL;
1327             END IF;
1328 
1329         END IF;
1330     END IF;
1331 
1332     --added for MOAC
1333     IF g_PRICE_LIST_rec.org_id = FND_API.G_MISS_NUM THEN
1334 
1335       IF g_PRICE_LIST_rec.global_flag = 'N' THEN
1336        --global_flag defaulting happens before org_id defaulting
1337        g_PRICE_LIST_REC.org_id := Get_Org_Id;
1338       ELSE
1339        g_PRICE_LIST_REC.org_id := null;
1340       END IF;
1341 
1342 
1343        IF g_PRICE_LIST_REC.org_id IS NOT NULL THEN
1344 
1345            IF QP_Validate.Org_id(g_PRICE_LIST_rec.org_id) THEN
1346                 g_p_PRICE_LIST_rec := g_PRICE_LIST_rec;
1347                 QP_Price_List_Util.Clear_Dependent_Attr
1348                 (   p_attr_id    => QP_Price_List_Util.G_ORG_ID
1349                 ,   p_PRICE_LIST_rec   => g_p_PRICE_LIST_rec
1350                 ,   x_PRICE_LIST_rec              => g_PRICE_LIST_rec
1351                 );
1352             ELSE
1353               oe_debug_pub.add('setting ORG_ID to be null');
1354               g_PRICE_LIST_rec.org_id := NULL;
1355             END IF;
1356 
1357         END IF;
1358     END IF;
1359 
1360     IF g_PRICE_LIST_rec.attribute1 = FND_API.G_MISS_CHAR
1361     OR  g_PRICE_LIST_rec.attribute10 = FND_API.G_MISS_CHAR
1362     OR  g_PRICE_LIST_rec.attribute11 = FND_API.G_MISS_CHAR
1363     OR  g_PRICE_LIST_rec.attribute12 = FND_API.G_MISS_CHAR
1364     OR  g_PRICE_LIST_rec.attribute13 = FND_API.G_MISS_CHAR
1365     OR  g_PRICE_LIST_rec.attribute14 = FND_API.G_MISS_CHAR
1366     OR  g_PRICE_LIST_rec.attribute15 = FND_API.G_MISS_CHAR
1367     OR  g_PRICE_LIST_rec.attribute2 = FND_API.G_MISS_CHAR
1368     OR  g_PRICE_LIST_rec.attribute3 = FND_API.G_MISS_CHAR
1369     OR  g_PRICE_LIST_rec.attribute4 = FND_API.G_MISS_CHAR
1370     OR  g_PRICE_LIST_rec.attribute5 = FND_API.G_MISS_CHAR
1371     OR  g_PRICE_LIST_rec.attribute6 = FND_API.G_MISS_CHAR
1372     OR  g_PRICE_LIST_rec.attribute7 = FND_API.G_MISS_CHAR
1373     OR  g_PRICE_LIST_rec.attribute8 = FND_API.G_MISS_CHAR
1374     OR  g_PRICE_LIST_rec.attribute9 = FND_API.G_MISS_CHAR
1375     OR  g_PRICE_LIST_rec.context = FND_API.G_MISS_CHAR
1376     THEN
1377 
1378 	  oe_debug_Pub.add('getting flex field info');
1379 
1380         Get_Flex_Price_List;
1381 	   oe_debug_Pub.add('after getting flex field');
1382 
1383     END IF;
1384 
1385     IF g_PRICE_LIST_rec.created_by = FND_API.G_MISS_NUM THEN
1386 
1387         g_PRICE_LIST_rec.created_by := NULL;
1388 
1389     END IF;
1390 
1391     IF g_PRICE_LIST_rec.creation_date = FND_API.G_MISS_DATE THEN
1392 
1393         g_PRICE_LIST_rec.creation_date := NULL;
1394 
1395     END IF;
1396 
1397     IF g_PRICE_LIST_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1398 
1399         g_PRICE_LIST_rec.last_updated_by := NULL;
1400 
1401     END IF;
1402 
1403     IF g_PRICE_LIST_rec.last_update_date = FND_API.G_MISS_DATE THEN
1404 
1405         g_PRICE_LIST_rec.last_update_date := NULL;
1406 
1407     END IF;
1408 
1409     IF g_PRICE_LIST_rec.last_update_login = FND_API.G_MISS_NUM THEN
1410 
1411         g_PRICE_LIST_rec.last_update_login := NULL;
1412 
1413     END IF;
1414 
1415     IF g_PRICE_LIST_rec.program_application_id = FND_API.G_MISS_NUM THEN
1416 
1417         g_PRICE_LIST_rec.program_application_id := NULL;
1418 
1419     END IF;
1420 
1421     IF g_PRICE_LIST_rec.program_id = FND_API.G_MISS_NUM THEN
1422 
1423         g_PRICE_LIST_rec.program_id := NULL;
1424 
1425     END IF;
1426 
1427     IF g_PRICE_LIST_rec.program_update_date = FND_API.G_MISS_DATE THEN
1428 
1429         g_PRICE_LIST_rec.program_update_date := NULL;
1430 
1431     END IF;
1432 
1433     IF g_PRICE_LIST_rec.request_id = FND_API.G_MISS_NUM THEN
1434 
1435         g_PRICE_LIST_rec.request_id := NULL;
1436 
1437     END IF;
1438 
1439     --  Redefault if there are any missing attributes.
1440 
1441     IF  g_PRICE_LIST_rec.attribute1 = FND_API.G_MISS_CHAR
1442     OR  g_PRICE_LIST_rec.attribute10 = FND_API.G_MISS_CHAR
1443     OR  g_PRICE_LIST_rec.attribute11 = FND_API.G_MISS_CHAR
1444     OR  g_PRICE_LIST_rec.attribute12 = FND_API.G_MISS_CHAR
1445     OR  g_PRICE_LIST_rec.attribute13 = FND_API.G_MISS_CHAR
1446     OR  g_PRICE_LIST_rec.attribute14 = FND_API.G_MISS_CHAR
1447     OR  g_PRICE_LIST_rec.attribute15 = FND_API.G_MISS_CHAR
1448     OR  g_PRICE_LIST_rec.attribute2 = FND_API.G_MISS_CHAR
1449     OR  g_PRICE_LIST_rec.attribute3 = FND_API.G_MISS_CHAR
1450     OR  g_PRICE_LIST_rec.attribute4 = FND_API.G_MISS_CHAR
1451     OR  g_PRICE_LIST_rec.attribute5 = FND_API.G_MISS_CHAR
1452     OR  g_PRICE_LIST_rec.attribute6 = FND_API.G_MISS_CHAR
1453     OR  g_PRICE_LIST_rec.attribute7 = FND_API.G_MISS_CHAR
1454     OR  g_PRICE_LIST_rec.attribute8 = FND_API.G_MISS_CHAR
1455     OR  g_PRICE_LIST_rec.attribute9 = FND_API.G_MISS_CHAR
1456     OR  g_PRICE_LIST_rec.automatic_flag = FND_API.G_MISS_CHAR
1457     OR  g_PRICE_LIST_rec.comments = FND_API.G_MISS_CHAR
1458     OR  g_PRICE_LIST_rec.context = FND_API.G_MISS_CHAR
1459     OR  g_PRICE_LIST_rec.created_by = FND_API.G_MISS_NUM
1460     OR  g_PRICE_LIST_rec.creation_date = FND_API.G_MISS_DATE
1461     OR  g_PRICE_LIST_rec.currency_code = FND_API.G_MISS_CHAR
1462     OR  g_PRICE_LIST_rec.discount_lines_flag = FND_API.G_MISS_CHAR
1463     OR  g_PRICE_LIST_rec.end_date_active = FND_API.G_MISS_DATE
1464     OR  g_PRICE_LIST_rec.freight_terms_code = FND_API.G_MISS_CHAR
1465     OR  g_PRICE_LIST_rec.gsa_indicator = FND_API.G_MISS_CHAR
1466     OR  g_PRICE_LIST_rec.last_updated_by = FND_API.G_MISS_NUM
1467     OR  g_PRICE_LIST_rec.last_update_date = FND_API.G_MISS_DATE
1468     OR  g_PRICE_LIST_rec.last_update_login = FND_API.G_MISS_NUM
1469     OR  g_PRICE_LIST_rec.list_header_id = FND_API.G_MISS_NUM
1470     OR  g_PRICE_LIST_rec.list_type_code = FND_API.G_MISS_CHAR
1471     OR  g_PRICE_LIST_rec.version_no = FND_API.G_MISS_CHAR
1472     OR  g_PRICE_LIST_rec.program_application_id = FND_API.G_MISS_NUM
1473     OR  g_PRICE_LIST_rec.program_id = FND_API.G_MISS_NUM
1474     OR  g_PRICE_LIST_rec.program_update_date = FND_API.G_MISS_DATE
1475     OR  g_PRICE_LIST_rec.prorate_flag = FND_API.G_MISS_CHAR
1476     OR  g_PRICE_LIST_rec.request_id = FND_API.G_MISS_NUM
1477     OR  g_PRICE_LIST_rec.rounding_factor = FND_API.G_MISS_NUM
1478     OR  g_PRICE_LIST_rec.ship_method_code = FND_API.G_MISS_CHAR
1479     OR  g_PRICE_LIST_rec.start_date_active = FND_API.G_MISS_DATE
1480     OR  g_PRICE_LIST_rec.terms_id = FND_API.G_MISS_NUM
1481     THEN
1482 
1483 	  oe_debug_pub.add('redefault attributes 1');
1484 
1485         QP_Default_Price_List.Attributes
1486         (   p_PRICE_LIST_rec              => g_PRICE_LIST_rec
1487         ,   p_iteration                   => p_iteration + 1
1488         ,   x_PRICE_LIST_rec              => x_PRICE_LIST_rec
1489         );
1490 
1491 	   oe_debug_pub.add('redefault attributes 2');
1492 
1493     ELSE
1494 
1495         --  Done defaulting attributes
1496 
1497         x_PRICE_LIST_rec := g_PRICE_LIST_rec;
1498 
1499     END IF;
1500 
1501     oe_debug_pub.add('exiting attributes');
1502 
1503 END Attributes;
1504 
1505 END QP_Default_Price_List;