DBA Data[Home] [Help]

PACKAGE BODY: APPS.BOM_CSTRSCCR_XMLP_PKG

Source


1 PACKAGE BODY BOM_CSTRSCCR_XMLP_PKG AS
2 /* $Header: CSTRSCCRB.pls 120.0 2007/12/24 10:17:29 dwkrishn noship $ */
3   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4     L_STMT_NUM NUMBER(15);
5     O_ERROR_CODE NUMBER(15);
6     O_ERROR_MSG VARCHAR2(2000);
7     L_EXCLUDE_UNIMP_ECO NUMBER(15);
8     L_EXCLUDE_ENG NUMBER(15);
9     L_TIMESTAMP DATE;
10     L_RERUN_FLAG NUMBER(15);
11     L_STR_POS NUMBER(15);
12     L_ORGANIZATION_ID NUMBER(15);
13     CONC_STATUS BOOLEAN;
14     L_USER_ID NUMBER(15) := -1;
15     L_LOGIN_ID NUMBER(15) := -1;
16     L_REQUEST_ID NUMBER(15) := -1;
17     L_PROG_APPL_ID NUMBER(15) := -1;
18     L_PROG_ID NUMBER(15) := -1;
19     L_ROWS_UNEXPLODED NUMBER(15);
20     L_NO_BOM_ORG VARCHAR2(4);
21     L_NO_ALT_ORG VARCHAR2(4);
22     L_SNAPSHOT_DESIGNATOR VARCHAR2(20);
23     CURSOR NO_BOM_ORGS IS
24       SELECT
25         DISTINCT
26         CSLLC.ORGANIZATION_ID
27       FROM
28         CST_SC_LOW_LEVEL_CODES CSLLC
29       WHERE CSLLC.ROLLUP_ID = P_ROLLUP_ID
30         AND not exists (
31         SELECT
32           'x'
33         FROM
34           BOM_PARAMETERS BP
35         WHERE CSLLC.ORGANIZATION_ID = BP.ORGANIZATION_ID );
36     CURSOR NO_ALT_ORGS(I_SNAPSHOT_DESIGNATOR IN VARCHAR2) IS
37       SELECT
38         DISTINCT
39         CSLLC.ORGANIZATION_ID
40       FROM
41         CST_SC_LOW_LEVEL_CODES CSLLC
42       WHERE CSLLC.ROLLUP_ID = P_ROLLUP_ID
43         AND not exists (
44         SELECT
45           'Alternate designator exists'
46         FROM
47           BOM_ALTERNATE_DESIGNATORS BAD
48         WHERE BAD.ORGANIZATION_ID = CSLLC.ORGANIZATION_ID
49           AND BAD.ALTERNATE_DESIGNATOR_CODE = I_SNAPSHOT_DESIGNATOR );
50     CURSOR LOOP_ROWS(I_ROLLUP_ID IN NUMBER) IS
51       SELECT
52         CSBE.ASSEMBLY_ITEM_ID,
53         CSBE.ASSEMBLY_ORGANIZATION_ID,
54         CSBE.COMPONENT_ITEM_ID,
55         CSBE.COMPONENT_ORGANIZATION_ID
56       FROM
57         CST_SC_BOM_EXPLOSION CSBE
58       WHERE CSBE.ROLLUP_ID = I_ROLLUP_ID
59         AND CSBE.DELETED_FLAG <> 'Y';
60   BEGIN
61   LP_CATEGORY_SET_ID:=P_CATEGORY_SET_ID;
62   LP_REPORT_LEVEL:=P_REPORT_LEVEL;
63   LP_EXPLOSION_LEVEL:=P_EXPLOSION_LEVEL;
64   LP_RANGE_TYPE:=P_RANGE_TYPE;
65   LP_ASSIGNMENT_SET_ID:=P_ASSIGNMENT_SET_ID;
66   LP_BUY_COST_TYPE_ID:=P_BUY_COST_TYPE_ID;
67   LP_DESCRIPTION:=P_DESCRIPTION;
68   LP_REVISION_DATE:=P_REVISION_DATE;
69   QTY_PRECISION:=bom_common_xmlp_pkg.get_precision(P_qty_precision);
70     IF (P_ALT_BOM_DESG IS NOT NULL) THEN
71       SELECT
72         DISPLAY_NAME
73       INTO P_ALT_BOM_DESG_DSP
74       FROM
75         BOM_ALTERNATE_DESIGNATORS_VL
76       WHERE ORGANIZATION_ID = NVL(P_ORGANIZATION_ID
77          ,P_DEFAULT_ORG_ID)
78         AND ALTERNATE_DESIGNATOR_CODE = P_ALT_BOM_DESG;
79     END IF;
80     IF (P_ALT_RTG_DESG IS NOT NULL) THEN
81       SELECT
82         DISPLAY_NAME
83       INTO P_ALT_RTG_DESG_DSP
84       FROM
85         BOM_ALTERNATE_DESIGNATORS_VL
86       WHERE ORGANIZATION_ID = NVL(P_ORGANIZATION_ID
87          ,P_DEFAULT_ORG_ID)
88         AND ALTERNATE_DESIGNATOR_CODE = P_ALT_RTG_DESG;
89     END IF;
90     L_STMT_NUM := 10;
91     IF P_CONC_REQUEST_ID IS NOT NULL THEN
92       SELECT
93         NVL(MIN(REQUESTED_BY)
94            ,-1),
95         NVL(MIN(CONC_LOGIN_ID)
96            ,-1),
97         NVL(MIN(REQUEST_ID)
98            ,-1),
99         NVL(MIN(PROGRAM_APPLICATION_ID)
100            ,-1),
101         NVL(MIN(CONCURRENT_PROGRAM_ID)
102            ,-1)
103       INTO L_USER_ID,L_LOGIN_ID,L_REQUEST_ID,L_PROG_APPL_ID,L_PROG_ID
104       FROM
105         FND_CONCURRENT_REQUESTS
106       WHERE REQUEST_ID = P_CONC_REQUEST_ID;
107     END IF;
108     BEGIN
109       P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
110       /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
111     EXCEPTION
112       WHEN OTHERS THEN
113         /*SRW.MESSAGE(999
114                    ,'FND SRWINIT >X')*/NULL;
115         RAISE;
116     END;
117     L_STMT_NUM := 20;
118     L_STMT_NUM := 25;
119     SELECT
120       MIN(TO_CHAR(MCV.CATEGORY_ID))
121     INTO P_CATEGORY_ID
122     FROM
123       MTL_CATEGORIES_KFV MCV,
124       MTL_CATEGORY_SETS MCS
125     WHERE SUBSTRB(MCV.CONCATENATED_SEGMENTS
126            ,1
127            ,2000) = P_CATEGORY_ID
128       AND MCS.CATEGORY_SET_ID = LP_CATEGORY_SET_ID
129       AND MCV.STRUCTURE_ID = MCS.STRUCTURE_ID;
130     L_STMT_NUM := 26;
131     SELECT
132       NVL(FND_PROFILE.VALUE('CST_RU_PHANTOM_MATERIAL')
133          ,1)
134     INTO P_PHANTOM_MAT
135     FROM
136       DUAL;
137     L_STMT_NUM := 30;
138     IF P_ROLLUP_ID IS NOT NULL THEN
139       L_RERUN_FLAG := 1;
140       L_STMT_NUM := 40;
141       SELECT
142         ROLLUP_ID,
143         DESCRIPTION,
144         COST_TYPE_ID,
145         BUY_COST_TYPE_ID,
146         ORGANIZATION_ID,
147         ASSIGNMENT_SET_ID,
148         CONVERSION_TYPE,
149         LP_REPORT_LEVEL,
150         EXPLOSION_LEVEL,
151         ROLLUP_OPTION_TYPE,
152         1,
153         RANGE_TYPE,
154         TO_CHAR(REVISION_DATE
155                ,'YYYY/MM/DD HH24:MI:SS'),
156         INC_UNIMP_ECN_FLAG,
157         ENG_BILL_FLAG,
158         QTY_PRECISION,
159         ITEM_ID,
160         CATEGORY_SET_ID,
161         TO_CHAR(CATEGORY_ID),
162         ALT_BOM_DESG,
163         ALT_RTG_DESG
164       INTO P_ROLLUP_ID,LP_DESCRIPTION,P_COST_TYPE_ID,LP_BUY_COST_TYPE_ID,P_ORGANIZATION_ID
165       ,LP_ASSIGNMENT_SET_ID,P_CONVERSION_TYPE,LP_REPORT_LEVEL,LP_EXPLOSION_LEVEL
166       ,P_ROLLUP_OPTION_TYPE,P_REPORT_OPTION_TYPE,LP_RANGE_TYPE,LP_REVISION_DATE,P_INC_UNIMP_ECN_FLAG,P_ENG_BILL_FLAG,P_QTY_PRECISION,P_ITEM_ID,LP_CATEGORY_SET_ID,P_CATEGORY_ID,P_ALT_BOM_DESG,P_ALT_RTG_DESG
167       FROM
168         CST_SC_ROLLUP_HISTORY CSRH
169       WHERE CSRH.ROLLUP_ID = P_ROLLUP_ID;
170     ELSE
171       L_RERUN_FLAG := 2;
172       L_STMT_NUM := 50;
173       SELECT
174         CST_LISTS_S.NEXTVAL
175       INTO P_ROLLUP_ID
176       FROM
177         DUAL;
178       L_STMT_NUM := 60;
179       IF (P_REPORT_OPTION_TYPE <> -1) THEN
180         INSERT INTO CST_SC_ROLLUP_HISTORY
181           (ROLLUP_ID
182           ,DESCRIPTION
183           ,COST_TYPE_ID
184           ,BUY_COST_TYPE_ID
185           ,ORGANIZATION_ID
186           ,ASSIGNMENT_SET_ID
187           ,CONVERSION_TYPE
188           ,REPORT_LEVEL
189           ,EXPLOSION_LEVEL
190           ,ROLLUP_OPTION_TYPE
191           ,REPORT_OPTION_TYPE
192           ,RANGE_TYPE
193           ,REVISION_DATE
194           ,INC_UNIMP_ECN_FLAG
195           ,ENG_BILL_FLAG
196           ,QTY_PRECISION
197           ,ITEM_ID
198           ,CATEGORY_SET_ID
199           ,CATEGORY_ID
200           ,ALT_BOM_DESG
201           ,ALT_RTG_DESG
202           ,LAST_UPDATE_DATE
203           ,LAST_UPDATED_BY
204           ,LAST_UPDATE_LOGIN
205           ,CREATION_DATE
206           ,CREATED_BY
207           ,REQUEST_ID
208           ,PROGRAM_APPLICATION_ID
209           ,PROGRAM_ID
210           ,PROGRAM_UPDATE_DATE)
211         VALUES   (P_ROLLUP_ID
212           ,LP_DESCRIPTION
213           ,P_COST_TYPE_ID
214           ,LP_BUY_COST_TYPE_ID
215           ,P_ORGANIZATION_ID
216           ,LP_ASSIGNMENT_SET_ID
217           ,P_CONVERSION_TYPE
218           ,LP_REPORT_LEVEL
219           ,LP_EXPLOSION_LEVEL
220           ,P_ROLLUP_OPTION_TYPE
221           ,P_REPORT_OPTION_TYPE
222           ,LP_RANGE_TYPE
223           ,TO_DATE(LP_REVISION_DATE
224                  ,'YYYY/MM/DD HH24:MI:SS')
225           ,P_INC_UNIMP_ECN_FLAG
226           ,P_ENG_BILL_FLAG
227           ,P_QTY_PRECISION
228           ,P_ITEM_ID
229           ,LP_CATEGORY_SET_ID
230           ,TO_NUMBER(P_CATEGORY_ID)
231           ,P_ALT_BOM_DESG
232           ,P_ALT_RTG_DESG
233           ,SYSDATE
234           ,L_USER_ID
235           ,L_LOGIN_ID
236           ,SYSDATE
237           ,L_USER_ID
238           ,L_REQUEST_ID
239           ,L_PROG_APPL_ID
240           ,L_PROG_ID
241           ,SYSDATE);
242       END IF;
243     END IF;
244     IF (P_REPORT_OPTION_TYPE = -1 AND P_ITEM_FROM IS NULL AND P_ITEM_TO IS NULL AND (P_CATEGORY_FROM IS NOT NULL OR P_CATEGORY_TO IS NOT NULL)) THEN
245       LP_RANGE_TYPE := 5;
246     END IF;
247     L_STMT_NUM := 62;
248     SELECT
249       DEFAULT_COST_TYPE_ID,
250       ORGANIZATION_ID
251     INTO P_DEFAULT_COST_TYPE_ID,L_ORGANIZATION_ID
252     FROM
253       CST_COST_TYPES
254     WHERE COST_TYPE_ID = P_COST_TYPE_ID;
255     IF (LP_ASSIGNMENT_SET_ID IS NOT NULL AND L_ORGANIZATION_ID IS NOT NULL) THEN
256       /*SRW.MESSAGE(0
257                  ,FND_MESSAGE.GET_STRING('BOM'
258                                        ,'CST_SC_ASSIGN_SET_COST_TYPE'))*/NULL;
259       CONC_STATUS := FND_CONCURRENT.SET_COMPLETION_STATUS('ERROR'
260                                                          ,FND_MESSAGE.GET_STRING('BOM'
261                                                                                ,'CST_SC_ASSIGN_SET_COST_TYPE'));
262       RETURN FALSE;
263     END IF;
264     L_STMT_NUM := 63;
265     IF LP_BUY_COST_TYPE_ID IS NULL THEN
266       SELECT
267         PRIMARY_COST_METHOD
268       INTO LP_BUY_COST_TYPE_ID
269       FROM
270         MTL_PARAMETERS
271       WHERE ORGANIZATION_ID = NVL(P_ORGANIZATION_ID
272          ,P_DEFAULT_ORG_ID);
273     END IF;
274     L_STMT_NUM := 70;
275     IF P_REPORT_OPTION_TYPE = 2 THEN
276       /*SRW.SET_MAXROW('Q_ASSEMBLY'
277                     ,0)*/NULL;
278       /*SRW.SET_MAXROW('Q_COMPONENTS'
279                     ,0)*/NULL;
280       /*SRW.SET_MAXROW('Q_COSTS'
281                     ,0)*/NULL;
282       /*SRW.SET_MAXROW('Q_SR_RCV'
283                     ,0)*/NULL;
284       /*SRW.SET_MAXROW('Q_SR_SRC'
285                     ,0)*/NULL;
286       /*SRW.SET_MAXROW('Q_SUMMARY'
287                     ,0)*/NULL;
288       LP_REPORT_LEVEL := NULL;
289     END IF;
290     L_STMT_NUM := 80;
291     IF LP_CATEGORY_SET_ID IS NULL THEN
292       SELECT
293         CATEGORY_SET_ID
294       INTO LP_CATEGORY_SET_ID
295       FROM
296         MTL_DEFAULT_CATEGORY_SETS MDCS
297       WHERE MDCS.FUNCTIONAL_AREA_ID = 5;
298     END IF;
299     L_STMT_NUM := 90;
300     IF LP_REVISION_DATE IS NULL THEN
301       SELECT
302         TO_CHAR(SYSDATE
303                ,'YYYY/MM/DD HH24:MI:ss')
304       INTO LP_REVISION_DATE
305       FROM
306         DUAL;
307     END IF;
308     L_STMT_NUM := 100;
309     SELECT
310       CCT1.COST_TYPE,
311       DECODE(LP_ASSIGNMENT_SET_ID
312             ,NULL
313             ,' '
314             ,CCT2.COST_TYPE),
315       GDCT.USER_CONVERSION_TYPE
316     INTO P_COST_TYPE_NAME,P_BUY_COST_TYPE_NAME,P_CONVERSION_TYPE_NAME
317     FROM
318       CST_COST_TYPES CCT1,
319       CST_COST_TYPES CCT2,
320       GL_DAILY_CONVERSION_TYPES GDCT
321     WHERE CCT1.COST_TYPE_ID = P_COST_TYPE_ID
322       AND CCT2.COST_TYPE_ID = LP_BUY_COST_TYPE_ID
323       AND GDCT.CONVERSION_TYPE = P_CONVERSION_TYPE;
324     L_STMT_NUM := 110;
325     IF LP_ASSIGNMENT_SET_ID IS NOT NULL THEN
326       SELECT
327         MAS.ASSIGNMENT_SET_NAME
328       INTO P_ASSIGNMENT_SET_NAME
329       FROM
330         MRP_ASSIGNMENT_SETS MAS
331       WHERE MAS.ASSIGNMENT_SET_ID = LP_ASSIGNMENT_SET_ID;
332     END IF;
333     L_STMT_NUM := 120;
334     IF TO_NUMBER(P_CATEGORY_ID) IS NOT NULL THEN
335       SELECT
336         SUBSTRB(MCV.CONCATENATED_SEGMENTS
337                ,1
338                ,2000)
339       INTO P_CATEGORY_NAME
340       FROM
341         MTL_CATEGORIES_KFV MCV
342       WHERE CATEGORY_ID = TO_NUMBER(P_CATEGORY_ID);
343       P_CATEGORY_FROM := P_CATEGORY_NAME;
344       P_CATEGORY_TO := P_CATEGORY_NAME;
345     END IF;
346     IF P_ITEM_ID IS NOT NULL THEN
347       L_STMT_NUM := 130;
348       SELECT
349         SUBSTRB(CONCATENATED_SEGMENTS
350                ,1
351                ,2000)
352       INTO P_ITEM_NAME
353       FROM
354         MTL_SYSTEM_ITEMS_KFV MSIV
355       WHERE MSIV.INVENTORY_ITEM_ID = P_ITEM_ID
356         AND MSIV.ORGANIZATION_ID = NVL(P_ORGANIZATION_ID
357          ,P_DEFAULT_ORG_ID);
358     END IF;
359     L_STMT_NUM := 140;
360     IF LP_REPORT_LEVEL IS NOT NULL THEN
361       LP_REPORT_LEVEL := LP_REPORT_LEVEL + 1;
362     END IF;
363     IF NVL(P_ROLLUP_OPTION_TYPE
364        ,2) = 2 THEN
365       LP_EXPLOSION_LEVEL := NULL;
366     ELSIF LP_REPORT_LEVEL IS NOT NULL AND LP_REPORT_LEVEL > LP_EXPLOSION_LEVEL + 1 THEN
367       LP_REPORT_LEVEL := LP_EXPLOSION_LEVEL + 1;
368     END IF;
369     L_STMT_NUM := 150;
370     IF L_RERUN_FLAG = 1 THEN
371       L_STMT_NUM := 160;
372       CSTPSCEX.SNAPSHOT_SC_BOM_STRUCTURES(P_ROLLUP_ID
373                                          ,P_COST_TYPE_ID
374                                          ,LP_REPORT_LEVEL
375                                          ,TO_DATE(LP_REVISION_DATE
376                                                 ,'YYYY/MM/DD HH24:MI:SS')
377                                          ,L_USER_ID
378                                          ,L_LOGIN_ID
379                                          ,L_REQUEST_ID
380                                          ,L_PROG_ID
381                                          ,L_PROG_APPL_ID
382                                          ,O_ERROR_CODE
383                                          ,O_ERROR_MSG
384                                          ,P_REPORT_TYPE_TYPE);
385     ELSE
386       /*SRW.MESSAGE(0
387                  ,'rollup_id = ' || P_ROLLUP_ID)*/NULL;
388       L_STMT_NUM := 170;
389       IF (LP_RANGE_TYPE = 2 AND P_ITEM_ID IS NOT NULL) THEN
390         L_STMT_NUM := 110;
391         INSERT INTO CST_SC_LISTS
392           (ROLLUP_ID
393           ,INVENTORY_ITEM_ID
394           ,ORGANIZATION_ID
395           ,LAST_UPDATE_DATE
396           ,LAST_UPDATED_BY
397           ,CREATION_DATE
398           ,CREATED_BY
399           ,LAST_UPDATE_LOGIN
400           ,REQUEST_ID
401           ,PROGRAM_APPLICATION_ID
402           ,PROGRAM_ID
403           ,PROGRAM_UPDATE_DATE)
404           SELECT
405             DISTINCT
406             P_ROLLUP_ID,
407             MSI.INVENTORY_ITEM_ID,
408             MSI.ORGANIZATION_ID,
409             sysdate,
410             L_USER_ID,
411             sysdate,
412             L_USER_ID,
413             L_LOGIN_ID,
414             L_REQUEST_ID,
415             L_PROG_APPL_ID,
416             L_PROG_ID,
417             sysdate
418           FROM
419             MTL_SYSTEM_ITEMS MSI,
420             BOM_PARAMETERS BP,
421             CST_ITEM_COSTS CIC,
422             MTL_PARAMETERS MP
423           WHERE MSI.ORGANIZATION_ID = NVL(P_ORGANIZATION_ID
424              ,MSI.ORGANIZATION_ID)
425             AND MSI.INVENTORY_ITEM_ID = P_ITEM_ID
426             AND MSI.COSTING_ENABLED_FLAG = 'Y'
427             AND MP.ORGANIZATION_ID = MSI.ORGANIZATION_ID
428             AND CIC.ORGANIZATION_ID = MSI.ORGANIZATION_ID
429             AND CIC.INVENTORY_ITEM_ID = P_ITEM_ID
430             AND ( CIC.COST_TYPE_ID = P_COST_TYPE_ID
431           OR ( CIC.COST_TYPE_ID = P_DEFAULT_COST_TYPE_ID
432             AND not exists (
433             SELECT
434               'X'
435             FROM
436               CST_ITEM_COSTS CIC2
437             WHERE CIC2.ORGANIZATION_ID = CIC.ORGANIZATION_ID
438               AND CIC2.INVENTORY_ITEM_ID = CIC.INVENTORY_ITEM_ID
439               AND CIC2.COST_TYPE_ID = P_COST_TYPE_ID ) )
440           OR ( CIC.COST_TYPE_ID = MP.PRIMARY_COST_METHOD
441             AND not exists (
442             SELECT
443               'X'
444             FROM
445               CST_ITEM_COSTS CIC3
446             WHERE CIC3.ORGANIZATION_ID = CIC.ORGANIZATION_ID
447               AND CIC3.INVENTORY_ITEM_ID = CIC.INVENTORY_ITEM_ID
448               AND CIC3.COST_TYPE_ID IN ( P_COST_TYPE_ID , P_DEFAULT_COST_TYPE_ID ) ) ) )
449             AND CIC.BASED_ON_ROLLUP_FLAG = 1
450             AND BP.organization_id (+) = MSI.ORGANIZATION_ID
451             AND nvl(MSI.INVENTORY_ITEM_STATUS_CODE,
452               'NOT_' || BP.bom_delete_status_code (+)) <> BP.bom_delete_status_code (+);
453       ELSIF (LP_RANGE_TYPE = 5) THEN
454         L_STMT_NUM := 180;
455         INSERT INTO CST_SC_LISTS
456           (ROLLUP_ID
457           ,INVENTORY_ITEM_ID
458           ,ORGANIZATION_ID
459           ,LAST_UPDATE_DATE
460           ,LAST_UPDATED_BY
461           ,CREATION_DATE
462           ,CREATED_BY
463           ,LAST_UPDATE_LOGIN
464           ,REQUEST_ID
465           ,PROGRAM_APPLICATION_ID
466           ,PROGRAM_ID
467           ,PROGRAM_UPDATE_DATE)
468           SELECT
469             P_ROLLUP_ID,
470             MIC.INVENTORY_ITEM_ID,
471             MIC.ORGANIZATION_ID,
472             sysdate,
473             L_USER_ID,
474             sysdate,
475             L_USER_ID,
476             L_LOGIN_ID,
477             L_REQUEST_ID,
478             L_PROG_APPL_ID,
479             L_PROG_ID,
480             sysdate
481           FROM
482             MTL_ITEM_CATEGORIES MIC,
483             MTL_SYSTEM_ITEMS MSI,
484             BOM_PARAMETERS BP,
485             MTL_CATEGORIES_KFV MCV,
486             CST_ITEM_COSTS CIC,
487             MTL_PARAMETERS MP
488           WHERE P_ORGANIZATION_ID is not null
489             AND MIC.ORGANIZATION_ID = P_ORGANIZATION_ID
490             AND MIC.CATEGORY_SET_ID = LP_CATEGORY_SET_ID
491             AND MIC.CATEGORY_ID = MCV.CATEGORY_ID
492             AND MCV.CONCATENATED_SEGMENTS >= DECODE(P_CATEGORY_FROM
493                 ,NULL
494                 ,MCV.CONCATENATED_SEGMENTS
495                 ,P_CATEGORY_FROM)
496             AND MCV.CONCATENATED_SEGMENTS <= DECODE(P_CATEGORY_TO
497                 ,NULL
498                 ,MCV.CONCATENATED_SEGMENTS
499                 ,P_CATEGORY_TO)
500             AND MSI.INVENTORY_ITEM_ID = MIC.INVENTORY_ITEM_ID
501             AND MSI.ORGANIZATION_ID = MIC.ORGANIZATION_ID
502             AND MSI.COSTING_ENABLED_FLAG = 'Y'
503             AND MP.ORGANIZATION_ID = P_ORGANIZATION_ID
504             AND CIC.ORGANIZATION_ID = P_ORGANIZATION_ID
505             AND CIC.INVENTORY_ITEM_ID = MSI.INVENTORY_ITEM_ID
506             AND ( CIC.COST_TYPE_ID = P_COST_TYPE_ID
507           OR ( CIC.COST_TYPE_ID = P_DEFAULT_COST_TYPE_ID
508             AND not exists (
509             SELECT
510               'X'
511             FROM
512               CST_ITEM_COSTS CIC2
513             WHERE CIC2.ORGANIZATION_ID = P_ORGANIZATION_ID
514               AND CIC2.INVENTORY_ITEM_ID = CIC.INVENTORY_ITEM_ID
515               AND CIC2.COST_TYPE_ID = P_COST_TYPE_ID ) )
516           OR ( CIC.COST_TYPE_ID = MP.PRIMARY_COST_METHOD
517             AND not exists (
518             SELECT
519               'X'
520             FROM
521               CST_ITEM_COSTS CIC3
522             WHERE CIC3.ORGANIZATION_ID = P_ORGANIZATION_ID
523               AND CIC3.INVENTORY_ITEM_ID = CIC.INVENTORY_ITEM_ID
524               AND CIC3.COST_TYPE_ID IN ( P_COST_TYPE_ID , P_DEFAULT_COST_TYPE_ID ) ) ) )
525             AND CIC.BASED_ON_ROLLUP_FLAG = 1
526             AND BP.organization_id (+) = MSI.ORGANIZATION_ID
527             AND nvl(MSI.INVENTORY_ITEM_STATUS_CODE,
528               'NOT_' || BP.bom_delete_status_code (+)) <> BP.bom_delete_status_code (+)
529           UNION
530           SELECT
531             P_ROLLUP_ID,
532             MIC.INVENTORY_ITEM_ID,
533             MIC.ORGANIZATION_ID,
534             sysdate,
535             L_USER_ID,
536             sysdate,
537             L_USER_ID,
538             L_LOGIN_ID,
539             L_REQUEST_ID,
540             L_PROG_APPL_ID,
541             L_PROG_ID,
542             sysdate
543           FROM
544             MTL_ITEM_CATEGORIES MIC,
545             MTL_SYSTEM_ITEMS MSI,
546             BOM_PARAMETERS BP,
547             MTL_CATEGORIES_KFV MCV,
548             CST_ITEM_COSTS CIC,
549             MTL_PARAMETERS MP
550           WHERE P_ORGANIZATION_ID is null
551             AND MIC.CATEGORY_SET_ID = LP_CATEGORY_SET_ID
552             AND MIC.CATEGORY_ID = MCV.CATEGORY_ID
553             AND MCV.CONCATENATED_SEGMENTS >= DECODE(P_CATEGORY_FROM
554                 ,NULL
555                 ,MCV.CONCATENATED_SEGMENTS
556                 ,P_CATEGORY_FROM)
557             AND MCV.CONCATENATED_SEGMENTS <= DECODE(P_CATEGORY_TO
558                 ,NULL
559                 ,MCV.CONCATENATED_SEGMENTS
560                 ,P_CATEGORY_TO)
561             AND MSI.INVENTORY_ITEM_ID = MIC.INVENTORY_ITEM_ID
562             AND MSI.ORGANIZATION_ID = MIC.ORGANIZATION_ID
563             AND MSI.COSTING_ENABLED_FLAG = 'Y'
564             AND MP.ORGANIZATION_ID = MIC.ORGANIZATION_ID
565             AND CIC.ORGANIZATION_ID = MIC.ORGANIZATION_ID
566             AND CIC.INVENTORY_ITEM_ID = MIC.INVENTORY_ITEM_ID
567             AND ( CIC.COST_TYPE_ID = P_COST_TYPE_ID
568           OR ( CIC.COST_TYPE_ID = P_DEFAULT_COST_TYPE_ID
569             AND not exists (
570             SELECT
571               'X'
572             FROM
573               CST_ITEM_COSTS CIC2
574             WHERE CIC2.ORGANIZATION_ID = CIC.ORGANIZATION_ID
575               AND CIC2.INVENTORY_ITEM_ID = CIC.INVENTORY_ITEM_ID
576               AND CIC2.COST_TYPE_ID = P_COST_TYPE_ID ) )
577           OR ( CIC.COST_TYPE_ID = MP.PRIMARY_COST_METHOD
578             AND not exists (
579             SELECT
580               'X'
581             FROM
582               CST_ITEM_COSTS CIC3
583             WHERE CIC3.ORGANIZATION_ID = CIC.ORGANIZATION_ID
584               AND CIC3.INVENTORY_ITEM_ID = CIC.INVENTORY_ITEM_ID
585               AND CIC3.COST_TYPE_ID IN ( P_COST_TYPE_ID , P_DEFAULT_COST_TYPE_ID ) ) ) )
586             AND CIC.BASED_ON_ROLLUP_FLAG = 1
587             AND BP.organization_id (+) = MSI.ORGANIZATION_ID
588             AND nvl(MSI.INVENTORY_ITEM_STATUS_CODE,
589               'NOT_' || BP.bom_delete_status_code (+)) <> BP.bom_delete_status_code (+);
590       ELSE
591         L_STMT_NUM := 190;
592         INSERT INTO CST_SC_LISTS
593           (ROLLUP_ID
594           ,INVENTORY_ITEM_ID
595           ,ORGANIZATION_ID
596           ,LAST_UPDATE_DATE
597           ,LAST_UPDATED_BY
598           ,CREATION_DATE
599           ,CREATED_BY
600           ,LAST_UPDATE_LOGIN
601           ,REQUEST_ID
602           ,PROGRAM_APPLICATION_ID
603           ,PROGRAM_ID
604           ,PROGRAM_UPDATE_DATE)
605           SELECT
606             P_ROLLUP_ID,
607             MSI.INVENTORY_ITEM_ID,
608             MSI.ORGANIZATION_ID,
609             sysdate,
610             L_USER_ID,
611             sysdate,
612             L_USER_ID,
613             L_LOGIN_ID,
614             L_REQUEST_ID,
615             L_PROG_APPL_ID,
616             L_PROG_ID,
617             sysdate
618           FROM
619             MTL_SYSTEM_ITEMS_KFV MSI,
620             BOM_PARAMETERS BP,
621             CST_ITEM_COSTS CIC,
622             MTL_PARAMETERS MP
623           WHERE P_ORGANIZATION_ID is not null
624             AND MSI.ORGANIZATION_ID = P_ORGANIZATION_ID
625             AND MSI.CONCATENATED_SEGMENTS >= DECODE(P_ITEM_FROM
626                 ,NULL
627                 ,MSI.CONCATENATED_SEGMENTS
628                 ,P_ITEM_FROM)
629             AND MSI.CONCATENATED_SEGMENTS <= DECODE(P_ITEM_TO
630                 ,NULL
631                 ,MSI.CONCATENATED_SEGMENTS
632                 ,P_ITEM_TO)
633             AND MSI.COSTING_ENABLED_FLAG = 'Y'
634             AND MP.ORGANIZATION_ID = P_ORGANIZATION_ID
635             AND CIC.INVENTORY_ITEM_ID = MSI.INVENTORY_ITEM_ID
636             AND CIC.ORGANIZATION_ID = MSI.ORGANIZATION_ID
637             AND ( CIC.COST_TYPE_ID = P_COST_TYPE_ID
638           OR ( CIC.COST_TYPE_ID = P_DEFAULT_COST_TYPE_ID
639             AND not exists (
640             SELECT
641               'X'
642             FROM
643               CST_ITEM_COSTS CIC2
644             WHERE CIC2.ORGANIZATION_ID = CIC.ORGANIZATION_ID
645               AND CIC2.INVENTORY_ITEM_ID = CIC.INVENTORY_ITEM_ID
646               AND CIC2.COST_TYPE_ID = P_COST_TYPE_ID ) )
647           OR ( CIC.COST_TYPE_ID = MP.PRIMARY_COST_METHOD
648             AND not exists (
649             SELECT
650               'X'
651             FROM
652               CST_ITEM_COSTS CIC3
653             WHERE CIC3.ORGANIZATION_ID = CIC.ORGANIZATION_ID
654               AND CIC3.INVENTORY_ITEM_ID = CIC.INVENTORY_ITEM_ID
655               AND CIC3.COST_TYPE_ID IN ( P_COST_TYPE_ID , P_DEFAULT_COST_TYPE_ID ) ) ) )
656             AND CIC.BASED_ON_ROLLUP_FLAG = 1
657             AND NVL(CIC.ITEM_COST
658              ,0) = DECODE(LP_RANGE_TYPE
659                 ,4
660                 ,0
661                 ,NVL(CIC.ITEM_COST
662                    ,0))
663             AND BP.organization_id (+) = MSI.ORGANIZATION_ID
664             AND nvl(MSI.INVENTORY_ITEM_STATUS_CODE,
665               'NOT_' || BP.bom_delete_status_code (+)) <> BP.bom_delete_status_code (+)
666           UNION
667           SELECT
668             P_ROLLUP_ID,
669             MSI.INVENTORY_ITEM_ID,
670             MSI.ORGANIZATION_ID,
671             sysdate,
672             L_USER_ID,
673             sysdate,
674             L_USER_ID,
675             L_LOGIN_ID,
676             L_REQUEST_ID,
677             L_PROG_APPL_ID,
678             L_PROG_ID,
679             sysdate
680           FROM
681             MTL_SYSTEM_ITEMS_KFV MSI,
682             BOM_PARAMETERS BP,
683             CST_ITEM_COSTS CIC,
684             MTL_PARAMETERS MP
685           WHERE P_ORGANIZATION_ID is null
686             AND MSI.CONCATENATED_SEGMENTS >= DECODE(P_ITEM_FROM
687                 ,NULL
688                 ,MSI.CONCATENATED_SEGMENTS
689                 ,P_ITEM_FROM)
690             AND MSI.CONCATENATED_SEGMENTS <= DECODE(P_ITEM_TO
691                 ,NULL
692                 ,MSI.CONCATENATED_SEGMENTS
693                 ,P_ITEM_TO)
694             AND MSI.COSTING_ENABLED_FLAG = 'Y'
695             AND MP.ORGANIZATION_ID = MSI.ORGANIZATION_ID
696             AND CIC.INVENTORY_ITEM_ID = MSI.INVENTORY_ITEM_ID
697             AND CIC.ORGANIZATION_ID = MSI.ORGANIZATION_ID
698             AND ( CIC.COST_TYPE_ID = P_COST_TYPE_ID
699           OR ( CIC.COST_TYPE_ID = P_DEFAULT_COST_TYPE_ID
700             AND not exists (
701             SELECT
702               'X'
703             FROM
704               CST_ITEM_COSTS CIC2
705             WHERE CIC2.ORGANIZATION_ID = CIC.ORGANIZATION_ID
706               AND CIC2.INVENTORY_ITEM_ID = CIC.INVENTORY_ITEM_ID
707               AND CIC2.COST_TYPE_ID = P_COST_TYPE_ID ) )
708           OR ( CIC.COST_TYPE_ID = MP.PRIMARY_COST_METHOD
709             AND not exists (
710             SELECT
711               'X'
712             FROM
713               CST_ITEM_COSTS CIC3
714             WHERE CIC3.ORGANIZATION_ID = CIC.ORGANIZATION_ID
715               AND CIC3.INVENTORY_ITEM_ID = CIC.INVENTORY_ITEM_ID
716               AND CIC3.COST_TYPE_ID IN ( P_COST_TYPE_ID , P_DEFAULT_COST_TYPE_ID ) ) ) )
717             AND CIC.BASED_ON_ROLLUP_FLAG = 1
718             AND NVL(CIC.ITEM_COST
719              ,0) = DECODE(LP_RANGE_TYPE
720                 ,4
721                 ,0
722                 ,NVL(CIC.ITEM_COST
723                    ,0))
724             AND BP.organization_id (+) = MSI.ORGANIZATION_ID
725             AND nvl(MSI.INVENTORY_ITEM_STATUS_CODE,
726               'NOT_' || BP.bom_delete_status_code (+)) <> BP.bom_delete_status_code (+);
727       END IF;
728       L_STMT_NUM := 200;
729       IF NVL(P_INC_UNIMP_ECN_FLAG
730          ,2) = 1 THEN
731         L_EXCLUDE_UNIMP_ECO := 2;
732       ELSE
733         L_EXCLUDE_UNIMP_ECO := 1;
734       END IF;
735       L_STMT_NUM := 210;
736       IF NVL(P_ENG_BILL_FLAG
737          ,2) = 1 THEN
738         L_EXCLUDE_ENG := 2;
739       ELSE
740         L_EXCLUDE_ENG := 1;
741       END IF;
742       L_STMT_NUM := 210;
743       IF (P_LOT_SIZE_OPTION IS NOT NULL) THEN
744         SELECT
745           MEANING
746         INTO P_LOT_SIZE_OPTION_NAME
747         FROM
748           MFG_LOOKUPS
749         WHERE LOOKUP_TYPE = 'CST_SC_LOT_OPTION'
750           AND LOOKUP_CODE = P_LOT_SIZE_OPTION;
751       END IF;
752       L_STMT_NUM := 220;
753       SELECT
754         sysdate
755       INTO L_TIMESTAMP
756       FROM
757         DUAL;
758       /*SRW.MESSAGE(0
759                  ,'Before CSTPSCEX.supply_chain_rollup ' || TO_CHAR(L_TIMESTAMP
760                         ,'YYYY/MM/DD HH24:MI:SS'))*/NULL;
761       L_STMT_NUM := 230;
762       CSTPSCEX.SUPPLY_CHAIN_ROLLUP(P_ROLLUP_ID
763                                   ,LP_EXPLOSION_LEVEL
764                                   ,LP_REPORT_LEVEL
765                                   ,LP_ASSIGNMENT_SET_ID
766                                   ,P_CONVERSION_TYPE
767                                   ,P_COST_TYPE_ID
768                                   ,LP_BUY_COST_TYPE_ID
769                                   ,TO_DATE(LP_REVISION_DATE
770                                          ,'YYYY/MM/DD HH24:MI:SS')
771                                   ,L_EXCLUDE_UNIMP_ECO
772                                   ,L_EXCLUDE_ENG
773                                   ,P_ALT_BOM_DESG
774                                   ,P_ALT_RTG_DESG
775                                   ,P_LOCK_FLAG
776                                   ,L_USER_ID
777                                   ,L_LOGIN_ID
778                                   ,L_REQUEST_ID
779                                   ,L_PROG_ID
780                                   ,L_PROG_APPL_ID
781                                   ,O_ERROR_CODE
782                                   ,O_ERROR_MSG
783                                   ,P_LOT_SIZE_OPTION
784                                   ,P_LOT_SIZE_SETTING
785                                   ,P_REPORT_OPTION_TYPE
786                                   ,P_REPORT_TYPE_TYPE
787                                   ,P_BUY_COST_DETAIL);
788       L_STMT_NUM := 240;
789       SELECT
790         sysdate
791       INTO L_TIMESTAMP
792       FROM
793         DUAL;
794       /*SRW.MESSAGE(0
795                  ,'After CSTPSCEX.supply_chain_rollup ' || TO_CHAR(L_TIMESTAMP
796                         ,'YYYY/MM/DD HH24:MI:SS'))*/NULL;
797       L_STMT_NUM := 250;
798       SELECT
799         count(*)
800       INTO L_ROWS_UNEXPLODED
801       FROM
802         CST_SC_BOM_EXPLOSION CSBE
803       WHERE CSBE.ROLLUP_ID = P_ROLLUP_ID
804         AND CSBE.DELETED_FLAG <> 'Y';
805       L_STMT_NUM := 260;
806       IF L_ROWS_UNEXPLODED = 0 THEN
807         /*SRW.MESSAGE(0
808                    ,'No loop found')*/NULL;
809       ELSE
810         /*SRW.MESSAGE(0
811                    ,'Loop found: ' || L_ROWS_UNEXPLODED || ' rows unexploded')*/NULL;
812         FOR cur IN LOOP_ROWS(p_rollup_id) LOOP
813           /*SRW.MESSAGE(0
814                      ,'Assmbly Item ' || CUR.ASSEMBLY_ITEM_ID || ' Org ' || CUR.ASSEMBLY_ORGANIZATION_ID || ' Component Item ' || CUR.COMPONENT_ITEM_ID || ' Org ' || CUR.COMPONENT_ORGANIZATION_ID)*/NULL;
815         END LOOP;
816       END IF;
817     END IF;
818     L_STMT_NUM := 270;
819     SELECT
820       count(SOB.CURRENCY_CODE)
821     INTO P_NUM_CURRENCIES
822     FROM
823       CST_SC_LOW_LEVEL_CODES CSLLC,
824       HR_ORGANIZATION_INFORMATION HOI,
825       GL_LEDGERS SOB
826     WHERE CSLLC.ROLLUP_ID = P_ROLLUP_ID
827       AND HOI.ORGANIZATION_ID = CSLLC.ORGANIZATION_ID
828       AND HOI.ORG_INFORMATION_CONTEXT = 'Acounting Information'
829       AND SOB.LEDGER_ID = HOI.ORG_INFORMATION1;
830     L_STMT_NUM := 272;
831     SELECT
832       ALTERNATE_BOM_DESIGNATOR
833     INTO L_SNAPSHOT_DESIGNATOR
834     FROM
835       CST_COST_TYPES
836     WHERE COST_TYPE_ID = P_COST_TYPE_ID;
837     IF L_SNAPSHOT_DESIGNATOR IS NOT NULL THEN
838       FOR orgs IN NO_ALT_ORGS(l_snapshot_designator) LOOP
839         SELECT
840           ORGANIZATION_CODE
841         INTO L_NO_ALT_ORG
842         FROM
843           MTL_PARAMETERS
844         WHERE ORGANIZATION_ID = ORGS.ORGANIZATION_ID;
845         /*SRW.MESSAGE(0
846                    ,'Alternate ' || L_SNAPSHOT_DESIGNATOR || ' is not defined in organziation ' || L_NO_ALT_ORG)*/NULL;
847       END LOOP;
848     END IF;
849     L_STMT_NUM := 275;
850     FOR orgs IN NO_BOM_ORGS LOOP
851       SELECT
852         ORGANIZATION_CODE
853       INTO L_NO_BOM_ORG
854       FROM
855         MTL_PARAMETERS
856       WHERE ORGANIZATION_ID = ORGS.ORGANIZATION_ID;
857       /*SRW.MESSAGE(0
858                  ,'Org: ' || L_NO_BOM_ORG || '. ')*/NULL;
859     END LOOP;
860     IF O_ERROR_CODE = 8888 THEN
861       /*SRW.MESSAGE(0
862                  ,'Alternate Designaor can not be NULL for the specified Cost Type  ')*/NULL;
863     END IF;
864     L_STMT_NUM := 280;
865     IF O_ERROR_CODE <> 0 THEN
866       L_STR_POS := 0;
867       WHILE L_STR_POS < LENGTHB(O_ERROR_MSG) LOOP
868 
869         /*SRW.MESSAGE(0
870                    ,SUBSTRB(O_ERROR_MSG
871                           ,L_STR_POS + 1
872                           ,L_STR_POS + 180))*/NULL;
873         L_STR_POS := L_STR_POS + 180;
874       END LOOP;
875       ROLLBACK;
876       RETURN FALSE;
877     ELSE
878       RETURN TRUE;
879     END IF;
880   EXCEPTION
881     WHEN OTHERS THEN
882       /*SRW.MESSAGE('2001'
883                  ,L_STMT_NUM || ' ' || SUBSTRB(SQLERRM
884                         ,1
885                         ,180))*/NULL;
886       ROLLBACK;
887       RETURN (FALSE);
888   END BEFOREREPORT;
889 
890   FUNCTION CF_S_DIFFERENCEFORMULA(S_FROZEN_VALUE IN NUMBER
891                                  ,S_REPORT_VALUE IN NUMBER) RETURN NUMBER IS
892   BEGIN
893     RETURN (S_FROZEN_VALUE - S_REPORT_VALUE);
894   END CF_S_DIFFERENCEFORMULA;
895 
896   FUNCTION CF_S_PERCENTFORMULA(S_FROZEN_VALUE IN NUMBER
897                               ,S_REPORT_VALUE IN NUMBER
898                               ,CF_S_DIFFERENCE IN NUMBER) RETURN NUMBER IS
899   BEGIN
900     IF (S_FROZEN_VALUE = 0 OR S_REPORT_VALUE = 0) THEN
901       RETURN (0);
902     ELSE
903       IF CF_S_DIFFERENCE > 0.0 THEN
904         RETURN (ROUND(100 * CF_S_DIFFERENCE / S_REPORT_VALUE
905                     ,1));
906       ELSE
907         RETURN (ROUND(100 * CF_S_DIFFERENCE / S_FROZEN_VALUE
908                     ,1));
909       END IF;
910     END IF;
911   END CF_S_PERCENTFORMULA;
912 
913   FUNCTION CF_S_S_SRC_TOTALFORMULA(S_S_PERCENT IN NUMBER
914                                   ,S_S_EFFECTIVE_ITEM_COST IN NUMBER) RETURN NUMBER IS
915   BEGIN
916     IF NVL(S_S_PERCENT
917        ,0) = 0 THEN
918       RETURN 0;
919     END IF;
920     RETURN NVL(S_S_EFFECTIVE_ITEM_COST
921               ,0) / (S_S_PERCENT / 100);
922   END CF_S_S_SRC_TOTALFORMULA;
923 
924   FUNCTION CF_S_R_USER_DEFINED_COSTFORMUL(S_R_ITEM_COST IN NUMBER
925                                          ,CS_SUM_EFFECTIVE_COST IN NUMBER) RETURN NUMBER IS
926   BEGIN
927     RETURN NVL(S_R_ITEM_COST
928               ,0) - NVL(CS_SUM_EFFECTIVE_COST
929               ,0);
930   END CF_S_R_USER_DEFINED_COSTFORMUL;
931 
932   FUNCTION CF_S_S_PERCENT_COSTFORMULA(S_R_ITEM_COST IN NUMBER
933                                      ,S_S_EFFECTIVE_ITEM_COST IN NUMBER) RETURN NUMBER IS
934   BEGIN
935     IF S_R_ITEM_COST = 0 THEN
936       RETURN 0;
937     END IF;
938     RETURN S_S_EFFECTIVE_ITEM_COST / S_R_ITEM_COST * 100;
939   END CF_S_S_PERCENT_COSTFORMULA;
940 
941   FUNCTION CF_S_R_USER_DEFINED_PERCENTFOR(S_R_ITEM_COST IN NUMBER
942                                          ,CF_S_R_USER_DEFINED_COST IN NUMBER) RETURN NUMBER IS
943   BEGIN
944     IF S_R_ITEM_COST = 0 THEN
945       RETURN 0;
946     END IF;
947     RETURN CF_S_R_USER_DEFINED_COST / S_R_ITEM_COST * 100;
948   END CF_S_R_USER_DEFINED_PERCENTFOR;
949 
950   FUNCTION CF_SUM_EXT_COSTFORMULA0009(CS_SUM_COMP_EXT_COST IN NUMBER
951                                      ,CS_SUM_RES_EXT_COST IN NUMBER) RETURN NUMBER IS
952   BEGIN
953     RETURN NVL(CS_SUM_COMP_EXT_COST
954               ,0) + NVL(CS_SUM_RES_EXT_COST
955               ,0);
956   END CF_SUM_EXT_COSTFORMULA0009;
957 
958   FUNCTION CF_S_SUM_PERCENTFORMULA0011(CS_S_SUM_DIFFERENCE IN NUMBER) RETURN NUMBER IS
959   BEGIN
960     IF CS_S_SUM_DIFFERENCE = 0 THEN
961       RETURN 0;
962     END IF;
963     RETURN 100;
964   END CF_S_SUM_PERCENTFORMULA0011;
965 
966   FUNCTION AFTERREPORT RETURN BOOLEAN IS
967     L_DEFAULT_MATL_OVHD NUMBER(15);
968     L_ORGANIZATION_CODE VARCHAR2(3);
969     CONC_STATUS BOOLEAN;
970     RETURN_STATUS NUMBER := 1;
971     CURSOR NO_DEF_OVHD_ORGS IS
972       SELECT
973         DISTINCT
974         ORGANIZATION_ID
975       FROM
976         CST_SC_LOW_LEVEL_CODES
977       WHERE ROLLUP_ID = P_ROLLUP_ID;
978   BEGIN
979     FOR organizations IN NO_DEF_OVHD_ORGS LOOP
980       SELECT
981         NVL(DEFAULT_MATL_OVHD_COST_ID
982            ,0),
983         ORGANIZATION_CODE
984       INTO L_DEFAULT_MATL_OVHD,L_ORGANIZATION_CODE
985       FROM
986         MTL_PARAMETERS
987       WHERE ORGANIZATION_ID = ORGANIZATIONS.ORGANIZATION_ID;
988       IF (L_DEFAULT_MATL_OVHD = 0) THEN
989         FND_MESSAGE.SET_NAME('BOM'
990                             ,'CST_SC_DEF_MATL_OVHD_SUBELEM');
991         FND_MESSAGE.SET_TOKEN('ORGANIZATION_CODE'
992                              ,L_ORGANIZATION_CODE);
993         /*SRW.MESSAGE(0
994                    ,FND_MESSAGE.GET)*/NULL;
995       END IF;
996     END LOOP;
997     IF (P_REPORT_OPTION_TYPE <> 3) THEN
998       COMMIT;
999     ELSE
1000       ROLLBACK;
1001     END IF;
1002     /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
1003     RETURN (TRUE);
1004   END AFTERREPORT;
1005 
1006   FUNCTION AFTERPFORM RETURN BOOLEAN IS
1007   BEGIN
1008     RETURN (TRUE);
1009   END AFTERPFORM;
1010 
1011 END BOM_CSTRSCCR_XMLP_PKG;
1012 
1013