DBA Data[Home] [Help]

PACKAGE BODY: APPS.MTL_DEFAULT_CATEGORY_SETS_PKG

Source


1 PACKAGE BODY MTL_DEFAULT_CATEGORY_SETS_PKG AS
2 /* $Header: INVDCSTB.pls 120.1 2005/06/29 06:01:14 appldev noship $  */
3 
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'EGO_DEF_FUNCTIONA_AREA_PKG';
5 
6 
7  FUNCTION val_inventory_cat_set(P_Category_Set_Id NUMBER)   RETURN NUMBER;
8  FUNCTION val_purchasing_cat_set(P_Category_Set_Id NUMBER)  RETURN NUMBER;
9  FUNCTION val_planning_cat_set(P_Category_Set_Id NUMBER)    RETURN NUMBER;
10  FUNCTION val_costing_cat_set(P_Category_Set_Id NUMBER)     RETURN NUMBER;
11  FUNCTION val_eng_cat_set(P_Category_Set_Id NUMBER)         RETURN NUMBER;
12  FUNCTION val_order_entry_cat_set(P_Category_Set_Id NUMBER) RETURN NUMBER;
13 -- FUNCTION val_Product_Line_cat_set(P_Category_Set_Id NUMBER)RETURN NUMBER;
14  FUNCTION val_Product_reporting_Cat_Set(P_Category_Set_Id NUMBER) RETURN NUMBER;
15  FUNCTION val_Asset_Management_Cat_Set(P_Category_Set_Id NUMBER)  RETURN NUMBER;
16  FUNCTION val_Service_Cat_Set(P_Category_Set_Id NUMBER)     RETURN  NUMBER;
17  FUNCTION val_Contracts_Cat_Set(P_Category_Set_Id NUMBER)   RETURN  NUMBER;
18  FUNCTION val_UCCNet_Cat_Set(P_Category_Set_Id NUMBER) RETURN  NUMBER; -- added for bug : 3953009
19  FUNCTION val_UCCNet_GPC_Cat_Set(P_Category_Set_Id NUMBER) RETURN  NUMBER;
20 -- FUNCTION Check_Mult_Assign_Flag RETURN  VARCHAR2;
21 
22 --**********************************************************************
23 -- Functional Validations before updating MTL_DEFAULT_CATEGORY_SETS
24 --**********************************************************************
25 
26    PROCEDURE validate_all_cat_sets(P_Functional_area_id NUMBER,
27                                    P_Category_Set_Id NUMBER,
28                                    X_Msg_Name OUT NOCOPY VARCHAR2)
29    IS
30       rc      Number;
31    BEGIN
32 
33       IF ( P_functional_area_id = 1 ) Then
34          rc := val_inventory_cat_set(P_Category_Set_Id);
35       elsif ( P_functional_area_id = 2 ) Then
36          rc := val_purchasing_cat_set(P_Category_Set_Id);
37       elsif ( P_functional_area_id = 3 ) Then
38          rc := val_planning_cat_set(P_Category_Set_Id);
39       elsif ( P_functional_area_id = 5 ) Then
40          rc := val_costing_cat_set(P_Category_Set_Id);
41       elsif ( P_functional_area_id = 6 ) Then
42          rc := val_eng_cat_set(P_Category_Set_Id);
43       elsif ( P_functional_area_id = 7 ) Then
44          rc := val_order_entry_cat_set(P_Category_Set_Id);
45    --   elsif ( :deflt_cat_set.functional_area_id = 8 ) Then
46    --      rc := val_Product_Line_cat_set(P_Category_Set_Id);
47       ELSIF ( P_functional_area_id = 9 ) THEN
48          rc := val_Asset_Management_Cat_Set(P_Category_Set_Id);
49       ELSIF ( P_functional_area_id = 4 ) THEN
50          rc := val_Service_Cat_Set(P_Category_Set_Id);
51       ELSIF ( P_functional_area_id = 10 ) THEN
52          rc := val_Contracts_Cat_Set(P_Category_Set_Id);
53       ELSIF ( P_functional_area_id = 11 ) THEN
54          rc := val_Product_reporting_Cat_Set(P_Category_Set_Id);
55       ELSIF (P_functional_area_id = 12 ) THEN
56          rc :=val_UCCNet_Cat_Set(P_Category_Set_Id);--Bug:4082162
57       ELSIF (P_functional_area_id = 21 ) THEN
58          rc :=val_UCCNet_GPC_Cat_Set(P_Category_Set_Id);
59       END IF;
60 
61       IF (rc = -2) THEN
62            if ( P_functional_area_id = 2) THEN
63              X_msg_Name := 'INV_CAT_PO_REFER';
64            elsif ( P_functional_area_id = 5) THEN
65              X_msg_Name := 'INV_CAT_CST_REFER';
66            end if;
67       END IF;
68 
69      IF ( rc = -1 ) THEN
70    /*
71        if ( P_functional_area_id = 8 ) THEN
72          FND_MESSAGE.SET_NAME('INV', 'INV_PL_DEF_CAT_SET_WARN');
73          if ( NOT FND_MESSAGE.Warn ) then
74             :deflt_cat_set.category_set_id := :parameter.PL_DEF_CAT_SET_ID;
75 
76             select CATEGORY_SET_NAME, DESCRIPTION
77             into   :deflt_cat_set.category_set_name, :deflt_cat_set.category_set_description
78             from  MTL_CATEGORY_SETS_VL
79             where CATEGORY_SET_ID = :deflt_cat_set.category_set_id;
80 
81             set_record_property(:system.cursor_record, 'DEFLT_CAT_SET', STATUS, QUERY_STATUS);
82          end if;
83        else */
84             if ( P_functional_area_id = 11 ) THEN
85               X_msg_Name :=  'INV_PR_DEF_CAT_SET_WARN';
86             else
87               X_msg_Name :=  'INV_ASSIGN_ITEM_TO_CS';
88             end if;
89    --    end if;
90 
91      END IF;
92 
93    EXCEPTION
94      WHEN OTHERS THEN
95        X_msg_Name :=  'INV_UNHANDLED_EXCEPTION';
96 
97    END validate_all_cat_sets;
98 
99 
100 /* Function validating category set name for Inventory Function */
101 
102    FUNCTION val_inventory_cat_set(P_Category_Set_Id NUMBER) RETURN NUMBER
103    IS
104       buffer      VARCHAR2(1);
105    Begin
106 
107      Select 'X'
108      Into buffer
109      FROM dual
110      WHERE EXISTS (
111      SELECT 'X'
112      From MTL_SYSTEM_ITEMS_B Item
113      Where  Item.INVENTORY_ITEM_FLAG = 'Y'
114      And    NOT EXISTS
115        ( Select 'X'
116          From  MTL_ITEM_CATEGORIES Cat
117          Where Cat.INVENTORY_ITEM_ID = Item.INVENTORY_ITEM_ID
118          And   Cat.ORGANIZATION_ID   = Item.ORGANIZATION_ID
119          And   Cat.CATEGORY_SET_ID   = P_Category_Set_Id
120        )
121      );
122 
123      return -1;
124 
125    EXCEPTION
126 
127       WHEN NO_DATA_FOUND THEN
128          return 0;
129 
130    END val_inventory_cat_set;
131 
132    /* Function validating category set name for Purchasing Function */
133 
134    FUNCTION val_purchasing_cat_set(P_Category_Set_Id NUMBER) RETURN  NUMBER
135    IS
136       buffer      VARCHAR2(1);
137       Old_Cat_value        NUMBER;
138       Old_Structure_id     NUMBER;
139       New_Structure_id     NUMBER;
140       Po_Count             NUMBER  := 0;
141       Sql_Stmt             Number  := 0;
142    Begin
143 
144      Sql_Stmt := 1;
145      Select STRUCTURE_ID
146      Into   Old_Structure_id
147      From   MTL_CATEGORY_SETS_B
148      WHERE  CATEGORY_SET_ID = (select category_set_id
149                                From   MTL_DEFAULT_CATEGORY_SETS
150                                Where  FUNCTIONAL_AREA_ID = 2);
151 
152      Sql_Stmt := 3;
153      Select STRUCTURE_ID
154      Into   New_Structure_id
155      From   MTL_CATEGORY_SETS_B
156      WHERE  CATEGORY_SET_ID = P_Category_Set_Id;
157 
158      If New_Structure_id <> Old_Structure_Id Then
159            Select count(*)
160            Into   Po_Count
161            From   Po_Line_Types_b
162            where  category_id is NOT NULL
163            and rownum < 2;
164 
165            If (Po_Count = 0) then
166              Select count(*)
167              Into   Po_Count
168              From   PO_REQEXPRESS_LINES_ALL
169              where  category_id is NOT NULL
170              and rownum < 2;
171 
172              If (Po_Count = 0) then
173                Select count(*)
174                Into   Po_Count
175                From   PO_AGENTS
176                where  category_id is NOT NULL
177                and rownum < 2;
178 
179                If (Po_Count = 0) then
180                  Select count(*)
181                  Into   Po_Count
182                  From   PO_APPROVED_SUPPLIER_LIST
183                  where  category_id is NOT NULL
184                  and rownum < 2;
185 
186                  If (Po_Count = 0) then
187                    Select count(*)
188                    Into   Po_Count
189                    From   PO_ASL_ATTRIBUTES
190                    where  category_id is NOT NULL
191                    and rownum < 2;
192 
193                    If (Po_Count = 0) then
194                      Select count(*)
195                      Into   Po_Count
196                      From   PO_REQUISITION_LINES_ALL
197                      where  category_id is NOT NULL
198                      and rownum < 2;
199 
200                      If (Po_Count = 0) then
201                        Select count(*)
202                        Into   Po_Count
203                        From   PO_LINES_ALL
204                        where  category_id is NOT NULL
205                        and rownum < 2;
206 
207                        If (Po_Count = 0) then
208                          Select count(*)
209                          Into   Po_Count
210                          From   RCV_SHIPMENT_LINES
211                          where  category_id is NOT NULL
212                          and rownum < 2;
213                        END IF;
214                      END IF;
215                    END IF;
216                  END IF;
217                END IF;
218              END IF;
219            END IF;
220      END IF;
221 
222      If Po_count <> 0 then
223        return -2;
224      End if;
225 
226      Sql_Stmt := 4;
227      Select DISTINCT 'X'
228      Into buffer
229      From MTL_SYSTEM_ITEMS_B Item
230      Where  ( Item.PURCHASING_ITEM_FLAG = 'Y' OR
231               Item.INTERNAL_ORDER_FLAG = 'Y' )
232      And    NOT EXISTS
233        ( Select 'X'
234          From  MTL_ITEM_CATEGORIES Cat
235          Where Cat.INVENTORY_ITEM_ID = Item.INVENTORY_ITEM_ID
236          And   Cat.ORGANIZATION_ID   = Item.ORGANIZATION_ID
237          And   Cat.CATEGORY_SET_ID   = P_Category_Set_Id
238        );
239 
240      return -1;
241 
242    EXCEPTION
243 
244       WHEN NO_DATA_FOUND THEN
245         If (Sql_Stmt = 4) then
246          return 0;
247         Else
248          return -1;
249         End if;
250       WHEN OTHERS THEN
251          return -1;
252    END val_purchasing_cat_set;
253 
254 
255 /*  Function validating category set name for Planning Function */
256 
257    FUNCTION val_planning_cat_set(P_Category_Set_Id NUMBER) RETURN  NUMBER
258    IS
259       buffer      VARCHAR2(1);
260    Begin
261 
262      Select 'X'
263      Into buffer
264      FROM dual
265      WHERE EXISTS (
266      SELECT 'X'
267      From MTL_SYSTEM_ITEMS_B Item
268      Where  Item.MRP_PLANNING_CODE <> 6
269      And    NOT EXISTS
270        ( Select 'X'
271          From  MTL_ITEM_CATEGORIES Cat
272          Where Cat.INVENTORY_ITEM_ID = Item.INVENTORY_ITEM_ID
273          And   Cat.ORGANIZATION_ID   = Item.ORGANIZATION_ID
274          And   Cat.CATEGORY_SET_ID   = P_Category_Set_Id
275        )
276      );
277 
278      return -1;
279 
280    EXCEPTION
281 
282       WHEN NO_DATA_FOUND THEN
283          return 0;
284 
285    END val_planning_cat_set;
286 
287 
288 /* Function validating category set name for Costing Function */
289    FUNCTION val_costing_cat_set(P_Category_Set_Id NUMBER) RETURN  NUMBER
290    IS
291       buffer     VARCHAR2(1);
292       Old_Cat_value      NUMBER;
293       Old_Structure_id   NUMBER;
294       New_Structure_id   NUMBER;
295       co_Count           NUMBER  := 0;
296       Sql_Stmt           NUMBER  := 0;
297 
298       l_dyn_sql          VARCHAR2(500);
299       source_cursor      INTEGER;
300       ignore             INTEGER;
301 
302    Begin
303 
304      Sql_Stmt := 1;
305      Select STRUCTURE_ID
306      Into   Old_Structure_id
307      From   MTL_CATEGORY_SETS_B
308      WHERE  CATEGORY_SET_ID = (select category_set_id
309                                 From   MTL_DEFAULT_CATEGORY_SETS
310                                 Where  FUNCTIONAL_AREA_ID = 5);
311 
312      Sql_Stmt := 3;
313      Select STRUCTURE_ID
314      Into   New_Structure_id
315      From   MTL_CATEGORY_SETS_B
316      WHERE  CATEGORY_SET_ID = P_Category_Set_Id;
317 
318 
319      If New_Structure_id <> Old_Structure_Id Then
320           Select count(*)
321           Into   co_Count
322           From   Po_Line_Types_b
323           where  category_id is NOT NULL
324           and rownum < 2;
325 
329              From   CST_AP_VARIANCE_BATCHES
326           If (co_Count = 0) then
327              Select count(*)
328              Into   co_Count
330              where  category_id is NOT NULL
331              and rownum < 2;
332 
333              If (co_Count = 0) then
334                Select count(*)
335                Into   co_Count
336                From   CST_COST_TYPE_HISTORY
337                where  category_id is NOT NULL
338                and rownum < 2;
339 
340                If (co_Count = 0) then
341                  Select count(*)
342                  Into   co_Count
343                  From   CST_COST_UPDATES
344                  where  category_id is NOT NULL
345                  and rownum < 2;
346 
347                  If (co_Count = 0) then
348                   Select count(*)
349                   Into   co_Count
350                   From   CST_ITEM_OVERHEAD_DEFAULTS
351                   where  category_id is NOT NULL
352                   and rownum < 2;
353 
354                   If (co_Count = 0) then
355                     Select count(*)
356                     Into   co_Count
357                     From   CST_ITEM_OVERHEAD_DEFAULTS_EFC
358                     where  category_id is NOT NULL
359                     and rownum < 2;
360 
361                     If (co_Count = 0) then
362 
363                        IF INV_ITEM_UTIL.Object_Exists(p_object_type => 'SYNONYM'
364                                                      ,p_object_name => 'CST_MATERIAL_OVHD_RULES') ='Y'
365                        THEN
366                           source_cursor := dbms_sql.open_cursor;
367                           l_dyn_sql     := ' Select count(*)                      '||
368                                            ' From   CST_MATERIAL_OVHD_RULES       '||
369                                            ' where  category_id is NOT NULL       '||
370                                            ' and rownum < 2';
371                           DBMS_SQL.PARSE(source_cursor,l_dyn_sql,1);
372                           DBMS_SQL.DEFINE_COLUMN(source_cursor, 1, co_Count);
373                           ignore := DBMS_SQL.EXECUTE(source_cursor);
374                           IF DBMS_SQL.FETCH_ROWS(source_cursor)>0 THEN
375                              DBMS_SQL.COLUMN_VALUE(source_cursor, 1, co_Count);
376                           END IF;
377                           DBMS_SQL.CLOSE_CURSOR(source_cursor);
378                        END IF;
379                     If (co_Count = 0) then
380                          Select count(*)
381                          Into   co_Count
382                          From   CST_SC_ROLLUP_HISTORY
383                          where  category_id is NOT NULL
384                          and rownum < 2;
385                        END IF;
386                      END IF;
387                    END IF;
388                  END IF;
389                END IF;
390              END IF;
391            END IF;
392      END IF;
393 
394      If co_Count <> 0 then
395        return -2;
396      End if;
397 
398      Sql_Stmt := 4;
399      Select DISTINCT 'X'
400      Into buffer
401      From MTL_SYSTEM_ITEMS_B Item
402      Where  Item.COSTING_ENABLED_FLAG = 'Y'
403      And    NOT EXISTS
404        ( Select 'X'
405          From  MTL_ITEM_CATEGORIES Cat
406          Where Cat.INVENTORY_ITEM_ID = Item.INVENTORY_ITEM_ID
407          And   Cat.ORGANIZATION_ID   = Item.ORGANIZATION_ID
408          And   Cat.CATEGORY_SET_ID   = P_Category_Set_Id
409       );
410 
411      return -1;
412 
413    EXCEPTION
414 
415       WHEN NO_DATA_FOUND THEN
416         If (Sql_Stmt = 4) then
417          return 0;
418         Else
419          return -1;
420         End if;
421       WHEN OTHERS THEN
422          return -1;
423 
424    END val_costing_cat_set;
425 
426 /* Function validating category set name for Engineering Function */
427 
428    FUNCTION val_eng_cat_set(P_Category_Set_Id NUMBER) RETURN  NUMBER
429    IS
430       buffer VARCHAR2(1);
431    Begin
432 
433      Select 'X'
434      Into buffer
435      FROM dual
436      WHERE EXISTS (
437      SELECT 'X'
438      From MTL_SYSTEM_ITEMS_B Item
439      Where  Item.ENG_ITEM_FLAG = 'Y'
440      And    NOT EXISTS
441        ( Select 'X'
442          From  MTL_ITEM_CATEGORIES Cat
443          Where Cat.INVENTORY_ITEM_ID = Item.INVENTORY_ITEM_ID
447      );
444          And   Cat.ORGANIZATION_ID   = Item.ORGANIZATION_ID
445          And   Cat.CATEGORY_SET_ID   = P_Category_Set_Id
446        )
448 
449      return -1;
450 
451    EXCEPTION
452 
453       WHEN NO_DATA_FOUND THEN
454          return 0;
455 
456    END val_eng_cat_set;
457 
458 
459 /* Function validating category set name for Order Entry Function */
460 
461    FUNCTION val_order_entry_cat_set(P_Category_Set_Id NUMBER) RETURN  NUMBER
462    IS
463       buffer VARCHAR2(1);
464    Begin
465 
466      Select 'X'
467      Into buffer
468      FROM dual
469      WHERE EXISTS (
470      SELECT 'X'
471      From MTL_SYSTEM_ITEMS_B Item
472      Where  Item.CUSTOMER_ORDER_FLAG = 'Y'
473      And    NOT EXISTS
474        ( Select 'X'
475          From  MTL_ITEM_CATEGORIES Cat
476          Where Cat.INVENTORY_ITEM_ID = Item.INVENTORY_ITEM_ID
477          And   Cat.ORGANIZATION_ID   = Item.ORGANIZATION_ID
478          And   Cat.CATEGORY_SET_ID   = P_Category_Set_Id
479        )
480      );
484    EXCEPTION
481 
482      return -1;
483 
485 
486       WHEN NO_DATA_FOUND THEN
487          return 0;
488 
489    END val_order_entry_cat_set;
490 
491 /* function validating category set name for Product_Line function
492 
493 FUNCTION val_Product_Line_cat_set(P_Category_Set_Id NUMBER) RETURN  NUMBER
494 IS
495 BEGIN
496 
497    if ( :parameter.PL_DEF_CAT_SET_ID != P_Category_Set_Id ) then
498       return -1;
499    else
500       return 0;
501    end if;
502 
503    RETURN NULL;
504 
505 END val_Product_Line_cat_set;*/
506 
507 
508 /* FUNCTION validating category set name for Asset Management function */
509 
510    FUNCTION val_Asset_Management_Cat_Set(P_Category_Set_Id NUMBER) RETURN  NUMBER
511    IS
512       l_count      NUMBER;
513    BEGIN
514 
515       SELECT  DECODE( COUNT(*), 0, 0, -1 )
516         INTO  l_count
517       FROM  MTL_SYSTEM_ITEMS_B  Item
518       WHERE
519          Item.EAM_ITEM_TYPE IS NOT NULL
520          AND  NOT EXISTS
521               ( SELECT 'X'
522                 FROM  MTL_ITEM_CATEGORIES  Cat
523                 WHERE
524                         Cat.INVENTORY_ITEM_ID = Item.INVENTORY_ITEM_ID
525                    AND  Cat.ORGANIZATION_ID   = Item.ORGANIZATION_ID
526                    AND  Cat.CATEGORY_SET_ID   = P_Category_Set_Id
527               );
528 
529       RETURN (l_count);
530 
531    END val_Asset_Management_Cat_Set;
532 
533 /* Function validating category set name for Service Function */
534 
535    FUNCTION val_Service_Cat_Set(P_Category_Set_Id NUMBER) RETURN  NUMBER
536    IS
537       l_count      NUMBER;
538    BEGIN
539 
540       SELECT  DECODE( COUNT(*), 0, 0, -1 )
541         INTO  l_count
542       FROM  MTL_SYSTEM_ITEMS_B  Item
543       WHERE
544          Item.CONTRACT_ITEM_TYPE_CODE IN ('SERVICE', 'WARRANTY')
545          AND  NOT EXISTS
546               ( SELECT 'X'
547                 FROM  MTL_ITEM_CATEGORIES  Cat
548                 WHERE
549                         Cat.INVENTORY_ITEM_ID = Item.INVENTORY_ITEM_ID
550                    AND  Cat.ORGANIZATION_ID   = Item.ORGANIZATION_ID
551                    AND  Cat.CATEGORY_SET_ID   = P_Category_Set_Id
552               );
553 
554       RETURN (l_count);
555 
556    END val_Service_Cat_Set;
557 
558 /* Function validating category set name for Contracts Function */
559    FUNCTION val_Contracts_Cat_Set(P_Category_Set_Id NUMBER) RETURN  NUMBER
560    IS
561       l_count      NUMBER;
562    BEGIN
563 
564       SELECT DECODE( COUNT(*), 0, 0, -1 )
565         INTO l_count
566       FROM  MTL_SYSTEM_ITEMS_B  Item
567       WHERE
568          Item.CONTRACT_ITEM_TYPE_CODE IN ('SERVICE', 'WARRANTY', 'SUBSCRIPTION', 'USAGE')
569          AND  NOT EXISTS
570               ( SELECT 'X'
571                 FROM  MTL_ITEM_CATEGORIES  Cat
572                 WHERE
573                         Cat.INVENTORY_ITEM_ID = Item.INVENTORY_ITEM_ID
574                    AND  Cat.ORGANIZATION_ID   = Item.ORGANIZATION_ID
575                    AND  Cat.CATEGORY_SET_ID   = P_Category_Set_Id
576               );
577 
578       RETURN (l_count);
579 
580    END val_Contracts_Cat_Set;
581 
582 /* Private Function validating category set name for Product Reporting/DBI Function */
583 
587    Begin
584    FUNCTION val_Product_reporting_Cat_Set(P_Category_Set_Id NUMBER) RETURN  NUMBER
585    IS
586       buffer      VARCHAR2(1);
588 
589      Select 'X'
590      Into buffer
591      FROM dual
592      WHERE EXISTS (
593      SELECT 'X'
594      From MTL_SYSTEM_ITEMS_B Item
595      Where  ( Item.CUSTOMER_ORDER_FLAG = 'Y' OR
596               Item.INTERNAL_ORDER_FLAG = 'Y' )
597      And    NOT EXISTS
598        ( Select 'X'
599          From  MTL_ITEM_CATEGORIES Cat
600          Where Cat.INVENTORY_ITEM_ID = Item.INVENTORY_ITEM_ID
601          And   Cat.ORGANIZATION_ID   = Item.ORGANIZATION_ID
602          And   Cat.CATEGORY_SET_ID   = P_Category_Set_Id
603        )
604      );
605      return -1;
606    EXCEPTION
607 
608       WHEN NO_DATA_FOUND THEN
609          return 0;
610 
611    END val_Product_reporting_Cat_Set;
612 
613 
614 /* Private Function validating Category Set for UCCNet */
615 --Bug:4082162 User can change the default category set (catalog) to new default catalog
616 -- ONLY if all the items belongs to current category set are already assigned to
617 -- new category set(Catalog).
618   FUNCTION val_UCCNet_Cat_Set(P_Category_Set_Id NUMBER)
619   RETURN  NUMBER
620   IS
621       buffer      VARCHAR2(1);
622   Begin
623 
624         Select 'X'
625         Into buffer
626         From    MTL_ITEM_CATEGORIES Cat,
627                 MTL_DEFAULT_CATEGORY_SETS DefCat
628         Where DefCat.FUNCTIONAL_AREA_ID   = 12
629           And DefCat.CATEGORY_SET_ID  = Cat.CATEGORY_SET_ID
630           And NOT EXISTS
631                ( Select 'X'
632                    From  MTL_ITEM_CATEGORIES Cat1
633                   Where   Cat1.INVENTORY_ITEM_ID = Cat.INVENTORY_ITEM_ID
634                     And   Cat1.ORGANIZATION_ID   = Cat.ORGANIZATION_ID
635                     And   Cat1.CATEGORY_SET_ID   = P_Category_Set_Id
636                 )
637           And rownum=1;
638         return -1;
639         EXCEPTION
640 
641         WHEN NO_DATA_FOUND THEN
642                 return 0;
643   End val_UCCNet_Cat_Set;
644 
645 /* Private Function validating Category Set for UCCNet GPC Catalog */
646 --User can change the default category set (catalog) to new default catalog
647 -- ONLY if all the items belongs to current category set are already assigned to
648 -- new category set(Catalog).
649   FUNCTION val_UCCNet_GPC_Cat_Set(P_Category_Set_Id NUMBER)
650   RETURN  NUMBER
651   IS
652       buffer      VARCHAR2(1);
653   Begin
654 
655         Select 'X'
656         Into buffer
657         From    MTL_ITEM_CATEGORIES Cat,
658                 MTL_DEFAULT_CATEGORY_SETS DefCat
659         Where DefCat.FUNCTIONAL_AREA_ID   = 21
660           And DefCat.CATEGORY_SET_ID  = Cat.CATEGORY_SET_ID
661           And NOT EXISTS
662                ( Select 'X'
663                    From  MTL_ITEM_CATEGORIES Cat1
664                   Where   Cat1.INVENTORY_ITEM_ID = Cat.INVENTORY_ITEM_ID
665                     And   Cat1.ORGANIZATION_ID   = Cat.ORGANIZATION_ID
666                     And   Cat1.CATEGORY_SET_ID   = P_Category_Set_Id
667                 )
668           And rownum=1;
669         return -1;
670         EXCEPTION
671 
672         WHEN NO_DATA_FOUND THEN
673                 return 0;
674   End val_UCCNet_GPC_Cat_Set;
675 
676 
677 END MTL_DEFAULT_CATEGORY_SETS_PKG;