DBA Data[Home] [Help]

PACKAGE BODY: APPS.BOM_CSTRIRVW_XMLP_PKG

Source


1 PACKAGE BODY BOM_CSTRIRVW_XMLP_PKG AS
2 /* $Header: CSTRIRVWB.pls 120.1 2008/01/06 07:33:12 nchinnam noship $ */
3   FUNCTION AFTERREPORT RETURN BOOLEAN IS
4   BEGIN
5     /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
6     EXECUTE IMMEDIATE
7       'ROLLBACK';
8     /*SRW.MESSAGE(0
9                ,'BOM_CSTRIRVW_XMLP_PKG >>     ' || TO_CHAR(SYSDATE
10                       ,'Dy Mon DD HH24:MI:SS YYYY'))*/NULL;
11     RETURN (TRUE);
12   END AFTERREPORT;
13 
14   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
15   BEGIN
16     DECLARE
17       L_FCN_CURRENCY VARCHAR2(15);
18       L_REPORT_NAME VARCHAR2(80);
19       SQL_STMT_NUM VARCHAR2(5);
20       L_EXP_SUB NUMBER := P_EXP_SUB;
21       L_MSG_COUNT NUMBER;
22       L_MSG_DATA VARCHAR2(8000);
23       L_RETURN_STATUS VARCHAR2(1);
24       L_AS_OF_DATE VARCHAR2(30);
25       L_CST_INV_VAL EXCEPTION;
26     BEGIN
27       SQL_STMT_NUM := '0: ';
28       P_EXCHANGE_RATE := FND_NUMBER.CANONICAL_TO_NUMBER(P_EXCHANGE_RATE_CHAR);
29       --added as fix
30       qty_precision:=bom_common_xmlp_pkg.get_precision(P_qty_precision);
31 
32       SQL_STMT_NUM := '2: ';
33       IF P_VIEW_COST <> 1 THEN
34         FND_MESSAGE.SET_NAME('null'
35                             ,'null');
36         /*SRW.USER_EXIT('FND MESSAGE_DISPLAY')*/NULL;
37         /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
38       END IF;
39       SQL_STMT_NUM := '4: ';
40       SELECT
41         O.ORGANIZATION_NAME,
42         MP.COST_ORGANIZATION_ID,
43         SOB.CURRENCY_CODE,
44         NVL(EXTENDED_PRECISION
45            ,PRECISION),
46         NVL(FC.PRECISION
47            ,0),
48         NVL(MINIMUM_ACCOUNTABLE_UNIT
49            ,POWER(10
50                 ,NVL(-PRECISION
51                    ,0))),
52         MCS.CATEGORY_SET_NAME,
53         DEFAULT_COST_TYPE_ID,
54         COST_TYPE,
55         LU2.MEANING,
56         USERENV('SESSIONID')
57       INTO P_ORGANIZATION,P_COST_ORG_ID,L_FCN_CURRENCY,P_EXT_PREC,P_PRECISION,ROUND_UNIT,P_CAT_SET_NAME,P_DEF_COST_TYPE,P_COST_TYPE,P_DETAIL_LEVEL,P_SESSIONID
58       FROM
59         ORG_ORGANIZATION_DEFINITIONS O,
60         MTL_PARAMETERS MP,
61         GL_SETS_OF_BOOKS SOB,
62         FND_CURRENCIES FC,
63         MTL_CATEGORY_SETS MCS,
64         CST_COST_TYPES,
65         MFG_LOOKUPS LU2
66       WHERE FC.CURRENCY_CODE = P_CURRENCY_CODE
67         AND O.ORGANIZATION_ID = P_ORG_ID
68         AND MP.ORGANIZATION_ID = P_ORG_ID
69         AND SOB.SET_OF_BOOKS_ID = O.SET_OF_BOOKS_ID
70         AND MCS.CATEGORY_SET_ID = P_CATEGORY_SET
71         AND COST_TYPE_ID = P_COST_TYPE_ID
72         AND LU2.LOOKUP_TYPE = 'CST_BICR_DETAIL_OPTION'
73         AND LU2.LOOKUP_CODE = P_RPT_OPTION;
74       BEGIN
75       qty_precision1:=bom_common_xmlp_pkg.get_precision(P_EXT_PREC);
76         SELECT
77           MEANING
78         INTO P_SORT_BY
79         FROM
80           MFG_LOOKUPS
81         WHERE LOOKUP_TYPE = 'CST_ITEM_REPORT_SORT'
82           AND LOOKUP_CODE = P_SORT_OPTION;
83 	   P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
84         IF P_CONC_REQUEST_ID > 0 THEN
85           SELECT
86             USER_CONCURRENT_PROGRAM_NAME
87           INTO P_REPORT_NAME
88           FROM
89             FND_CONCURRENT_PROGRAMS_VL P,
90             FND_CONCURRENT_REQUESTS R
91           WHERE R.REQUEST_ID = P_CONC_REQUEST_ID
92             AND P.APPLICATION_ID = R.PROGRAM_APPLICATION_ID
93             AND P.CONCURRENT_PROGRAM_ID = R.CONCURRENT_PROGRAM_ID;
94         ELSE
95           SELECT
96             USER_CONCURRENT_PROGRAM_NAME
97           INTO P_REPORT_NAME
98           FROM
99             FND_CONCURRENT_PROGRAMS_VL P
100           WHERE P.APPLICATION_ID = 702
101             AND P.CONCURRENT_PROGRAM_NAME = DECODE(P_SORT_OPTION
102                 ,4
103                 ,'CSTRCGVW'
104                 ,'BOM_CSTRIRVW_XMLP_PKG');
105         END IF;
106       EXCEPTION
107         WHEN NO_DATA_FOUND THEN
108           NULL;
109         WHEN OTHERS THEN
110           RAISE;
111       END;
112       SQL_STMT_NUM := '8: ';
113       IF L_FCN_CURRENCY = P_CURRENCY_CODE THEN
114         P_CURRENCY_DSP := P_CURRENCY_CODE;
115       ELSE
116         P_CURRENCY_DSP := P_CURRENCY_CODE || ' @ ' || TO_CHAR(ROUND(1 / P_EXCHANGE_RATE
117                                        ,5)) || L_FCN_CURRENCY;
118       END IF;
119       SQL_STMT_NUM := '9: ';
120       IF P_SORT_OPTION = 4 THEN
121         /*SRW.SET_MAXROW('Q_IC_MAIN'
122                       ,0)*/NULL;
123         /*SRW.SET_MAXROW('Q_CG_COSTGROUP'
124                       ,0)*/NULL;
125         /*SRW.SET_MAXROW('Q_CG_MAIN'
126                       ,0)*/NULL;
127         L_EXP_SUB := 2;
128       ELSIF P_SORT_OPTION = 8 THEN
129         /*SRW.SET_MAXROW('Q_IC_MAIN'
130                       ,0)*/NULL;
131       ELSE
132         /*SRW.SET_MAXROW('Q_CG_COSTGROUP'
133                       ,0)*/NULL;
134         /*SRW.SET_MAXROW('Q_CG_MAIN'
135                       ,0)*/NULL;
136       END IF;
137       BEGIN
138 
139         /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
140       EXCEPTION
141         WHEN OTHERS THEN
142           /*SRW.MESSAGE(999
143                      ,'FND SRWINIT >X')*/NULL;
144           RAISE;
145       END;
146       BEGIN
147         NULL;
148       EXCEPTION
149         WHEN OTHERS THEN
150           /*SRW.MESSAGE(999
151                      ,'FND FLEXSQL(MCAT) >X')*/NULL;
152           RAISE;
153       END;
154       BEGIN
155         NULL;
156       EXCEPTION
157         WHEN OTHERS THEN
158           /*SRW.MESSAGE(999
159                      ,'FND FLEXSQL(MSTK) >X')*/NULL;
160           RAISE;
161       END;
162       SQL_STMT_NUM := '10: ';
163       CST_INVENTORY_PUB.CALCULATE_INVENTORYVALUE(P_API_VERSION => 1.0
164                                                 ,P_INIT_MSG_LIST => CST_UTILITY_PUB.GET_TRUE
165                                                 ,P_ORGANIZATION_ID => P_ORG_ID
166                                                 ,P_ONHAND_VALUE => 1
167                                                 ,P_INTRANSIT_VALUE => 1
168                                                 ,P_RECEIVING_VALUE => 0
169                                                 ,P_VALUATION_DATE => TO_DATE(P_AS_OF_DATE
170                                                        ,'YYYY/MM/DD HH24:MI:SS')
171                                                 ,P_COST_TYPE_ID => P_COST_TYPE_ID
172                                                 ,P_ITEM_FROM => P_ITEM_FROM
173                                                 ,P_ITEM_TO => P_ITEM_TO
174                                                 ,P_CATEGORY_SET_ID => P_CATEGORY_SET
175                                                 ,P_CATEGORY_FROM => P_CAT_FROM
176                                                 ,P_CATEGORY_TO => P_CAT_TO
177                                                 ,P_COST_GROUP_FROM => P_CG_FROM
178                                                 ,P_COST_GROUP_TO => P_CG_TO
179                                                 ,P_SUBINVENTORY_FROM => NULL
180                                                 ,P_SUBINVENTORY_TO => NULL
181                                                 ,P_QTY_BY_REVISION => P_ITEM_REVISION
182                                                 ,P_ZERO_COST_ONLY => P_ZERO_COST
183                                                 ,P_ZERO_QTY => P_ZERO_QTY
184                                                 ,P_EXPENSE_ITEM => P_EXP_ITEM
185                                                 ,P_EXPENSE_SUB => L_EXP_SUB
186                                                 ,P_UNVALUED_TXNS => P_UNCOSTED_TXN
187                                                 ,P_RECEIPT => 1
188                                                 ,P_SHIPMENT => 1
189                                                 ,X_RETURN_STATUS => L_RETURN_STATUS
190                                                 ,X_MSG_COUNT => L_MSG_COUNT
191                                                 ,X_MSG_DATA => L_MSG_DATA);
192       IF L_RETURN_STATUS <> CST_UTILITY_PUB.GET_RET_STS_SUCCESS THEN
193         RAISE L_CST_INV_VAL;
194       END IF;
195       FND_MSG_PUB.COUNT_AND_GET(P_ENCODED => CST_UTILITY_PUB.GET_FALSE
196                                ,P_COUNT => L_MSG_COUNT
197                                ,P_DATA => L_MSG_DATA);
198       IF (L_MSG_COUNT > 0) THEN
199         FOR i IN 1 .. L_MSG_COUNT LOOP
200           L_MSG_DATA := FND_MSG_PUB.GET(I
201                                        ,CST_UTILITY_PUB.GET_FALSE);
202           FND_FILE.PUT_LINE(CST_UTILITY_PUB.GET_LOG
203                            ,I || '-' || L_MSG_DATA);
204         END LOOP;
205       END IF;
206       SELECT
207         TO_CHAR(TO_DATE(P_AS_OF_DATE
208                        ,'YYYY/MM/DD HH24:MI:SS')
209                ,'DD-MON-YYYY HH24:MI:SS')
210       INTO L_AS_OF_DATE
211       FROM
212         DUAL;
213 --      P_AS_OF_DATE := L_AS_OF_DATE;
214       P_AS_OF_DATE1 := L_AS_OF_DATE;
215       /*SRW.MESSAGE(0
216                  ,'BOM_CSTRIRVW_XMLP_PKG <<     ' || TO_CHAR(SYSDATE
217                         ,'Dy Mon FmDD HH24:MI:SS YYYY'))*/NULL;
218     EXCEPTION
219       WHEN OTHERS THEN
220         /*SRW.MESSAGE(999
221                    ,SQL_STMT_NUM || SQLERRM)*/NULL;
222         /*SRW.MESSAGE(999
223                    ,'BOM_CSTRIRVW_XMLP_PKG >X     ' || TO_CHAR(SYSDATE
224                           ,'Dy Mon FmDD HH24:MI:SS YYYY'))*/NULL;
225         FND_MSG_PUB.COUNT_AND_GET(P_ENCODED => CST_UTILITY_PUB.GET_FALSE
226                                  ,P_COUNT => L_MSG_COUNT
227                                  ,P_DATA => L_MSG_DATA);
228         IF (L_MSG_COUNT > 0) THEN
229           FOR i IN 1 .. L_MSG_COUNT LOOP
230             L_MSG_DATA := FND_MSG_PUB.GET(I
231                                          ,CST_UTILITY_PUB.GET_FALSE);
232             /*SRW.MESSAGE(999
233                        ,I || ': ' || L_MSG_DATA)*/NULL;
234           END LOOP;
235         END IF;
236         /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
237     END;
238     RETURN (TRUE);
239   END BEFOREREPORT;
240 
241   FUNCTION IC_ROWCOUNTFORMULA(IC_QUANTITY IN NUMBER) RETURN NUMBER IS
242   BEGIN
243     IF P_ZERO_QTY = 1 AND P_NEG_QTY = 1 AND IC_QUANTITY <= 0 THEN
244       RETURN (1);
245     ELSIF P_ZERO_QTY = 2 AND P_NEG_QTY = 1 AND IC_QUANTITY < 0 THEN
246       RETURN (1);
247     ELSIF P_ZERO_QTY = 2 AND P_NEG_QTY = 2 AND IC_QUANTITY <> 0 THEN
248       RETURN (1);
249     ELSIF P_ZERO_QTY = 1 AND P_NEG_QTY = 2 THEN
250       RETURN (1);
251     ELSE
252       RETURN (0);
253     END IF;
254     RETURN NULL;
255   END IC_ROWCOUNTFORMULA;
256 
257   FUNCTION IC_TOTAL1FORMULA(IC_QUANTITY IN NUMBER
258                            ,IC_TOTAL IN NUMBER) RETURN NUMBER IS
259   BEGIN
260     IF P_NEG_QTY = 1 AND IC_QUANTITY > 0 THEN
261       RETURN (0);
262     ELSE
263       RETURN (IC_TOTAL);
264     END IF;
265     RETURN NULL;
266   END IC_TOTAL1FORMULA;
267 
268   FUNCTION CG_TOTAL1FORMULA(CG_QUANTITY IN NUMBER
269                            ,CG_TOTAL IN NUMBER) RETURN NUMBER IS
270   BEGIN
271     IF P_NEG_QTY = 1 AND CG_QUANTITY > 0 THEN
272       RETURN (0);
273     ELSE
274       RETURN (CG_TOTAL);
275     END IF;
276     RETURN NULL;
277   END CG_TOTAL1FORMULA;
278 
279   FUNCTION CG_ROWCOUNTFORMULA(CG_QUANTITY IN NUMBER) RETURN NUMBER IS
280   BEGIN
281     IF P_ZERO_QTY = 1 AND P_NEG_QTY = 1 AND CG_QUANTITY <= 0 THEN
282       RETURN (1);
283     ELSIF P_ZERO_QTY = 1 AND P_NEG_QTY = 2 THEN
284       RETURN (1);
285     ELSIF P_ZERO_QTY = 2 AND P_NEG_QTY = 1 AND CG_QUANTITY < 0 THEN
286       RETURN (1);
287     ELSIF P_ZERO_QTY = 2 AND P_NEG_QTY = 2 AND CG_QUANTITY <> 0 THEN
291     END IF;
288       RETURN (1);
289     ELSE
290       RETURN (0);
292     RETURN NULL;
293   END CG_ROWCOUNTFORMULA;
294 
295   FUNCTION CG_MATL1FORMULA(CG_QUANTITY IN NUMBER
296                           ,CG_MATL IN NUMBER) RETURN NUMBER IS
297   BEGIN
298     IF P_NEG_QTY = 1 AND CG_QUANTITY > 0 THEN
299       RETURN (0);
300     ELSE
301       RETURN (CG_MATL);
302     END IF;
303     RETURN NULL;
304   END CG_MATL1FORMULA;
305 
306   FUNCTION CG_MOVH1FORMULA(CG_QUANTITY IN NUMBER
307                           ,CG_MOVH IN NUMBER) RETURN NUMBER IS
308   BEGIN
309     IF P_NEG_QTY = 1 AND CG_QUANTITY > 0 THEN
310       RETURN (0);
311     ELSE
312       RETURN (CG_MOVH);
313     END IF;
314     RETURN NULL;
315   END CG_MOVH1FORMULA;
316 
317   FUNCTION CG_RES1FORMULA(CG_QUANTITY IN NUMBER
318                          ,CG_RES IN NUMBER) RETURN NUMBER IS
319   BEGIN
320     IF P_NEG_QTY = 1 AND CG_QUANTITY > 0 THEN
321       RETURN (0);
322     ELSE
323       RETURN (CG_RES);
324     END IF;
325     RETURN NULL;
326   END CG_RES1FORMULA;
327 
328   FUNCTION CG_OSP1FORMULA(CG_QUANTITY IN NUMBER
329                          ,CG_OSP IN NUMBER) RETURN NUMBER IS
330   BEGIN
331     IF P_NEG_QTY = 1 AND CG_QUANTITY > 0 THEN
332       RETURN (0);
333     ELSE
334       RETURN (CG_OSP);
335     END IF;
336     RETURN NULL;
337   END CG_OSP1FORMULA;
338 
339   FUNCTION CG_OVHD1FORMULA(CG_QUANTITY IN NUMBER
340                           ,CG_OVHD IN NUMBER) RETURN NUMBER IS
341   BEGIN
342     IF P_NEG_QTY = 1 AND CG_QUANTITY > 0 THEN
343       RETURN (0);
344     ELSE
345       RETURN (CG_OVHD);
346     END IF;
347     RETURN NULL;
348   END CG_OVHD1FORMULA;
349 
350   FUNCTION IC_ORDERFORMULA(IC_CATEGORY IN VARCHAR2
351                           ,IC_CATEGORY_SEGMENT IN VARCHAR2
352                           ,IC_CAT_PSEG IN VARCHAR2) RETURN VARCHAR2 IS
353   BEGIN
354     /*SRW.REFERENCE(IC_CATEGORY)*/NULL;
355     /*SRW.REFERENCE(IC_CATEGORY_SEGMENT)*/NULL;
356     /*SRW.REFERENCE(IC_CAT_PSEG)*/NULL;
357     IF P_SORT_OPTION = 2 THEN
358       RETURN (IC_CAT_PSEG);
359     ELSE
360       RETURN ('Item Sort');
361     END IF;
362     RETURN NULL;
363   END IC_ORDERFORMULA;
364 
365   FUNCTION IC_ITEM_PSEGFORMULA(IC_ITEM_NUMBER IN VARCHAR2
366                               ,IC_ITEM_SEGMENT IN VARCHAR2
367                               ,IC_ITEM_PSEG IN VARCHAR2) RETURN VARCHAR2 IS
368   BEGIN
369     /*SRW.REFERENCE(IC_ITEM_NUMBER)*/NULL;
370     /*SRW.REFERENCE(IC_ITEM_SEGMENT)*/NULL;
371     RETURN (IC_ITEM_PSEG);
372   END IC_ITEM_PSEGFORMULA;
373 
374   FUNCTION IC_CAT_PSEGFORMULA(IC_CATEGORY IN VARCHAR2
375                              ,IC_CATEGORY_SEGMENT IN VARCHAR2
376                              ,IC_CAT_PSEG IN VARCHAR2) RETURN VARCHAR2 IS
377   BEGIN
378     /*SRW.REFERENCE(IC_CATEGORY)*/NULL;
379     /*SRW.REFERENCE(IC_CATEGORY_SEGMENT)*/NULL;
380     RETURN (IC_CAT_PSEG);
381   END IC_CAT_PSEGFORMULA;
382 
383   FUNCTION CG_ITEM_PSEGFORMULA(CG_ITEM_NUMBER IN VARCHAR2
384                               ,CG_ITEM_SEGMENT IN VARCHAR2
385                               ,CG_ITEM_PSEG IN VARCHAR2) RETURN VARCHAR2 IS
386   BEGIN
387     /*SRW.REFERENCE(CG_ITEM_NUMBER)*/NULL;
388     /*SRW.REFERENCE(CG_ITEM_SEGMENT)*/NULL;
389     RETURN (CG_ITEM_PSEG);
390   END CG_ITEM_PSEGFORMULA;
391 
392   FUNCTION IC_QUANTITY1FORMULA(IC_QUANTITY IN NUMBER) RETURN NUMBER IS
393   BEGIN
394     IF P_NEG_QTY = 1 AND IC_QUANTITY > 0 THEN
395       RETURN (0);
396     ELSE
397       RETURN (IC_QUANTITY);
398     END IF;
399     RETURN NULL;
400   END IC_QUANTITY1FORMULA;
401 
402   FUNCTION CG_CG_TOTALFORMULA(CG_CG_MATL IN NUMBER
403                              ,CG_CG_MOVH IN NUMBER
404                              ,CG_CG_RES IN NUMBER
405                              ,CG_CG_OSP IN NUMBER
406                              ,CG_CG_OVHD IN NUMBER) RETURN NUMBER IS
407     CG_CG_TOTAL NUMBER;
408   BEGIN
409     CG_CG_TOTAL := (CG_CG_MATL + CG_CG_MOVH + CG_CG_RES + CG_CG_OSP + CG_CG_OVHD);
410     CG_CG_TOTAL := STANDARD.ROUND(CG_CG_TOTAL / ROUND_UNIT) * ROUND_UNIT;
411     RETURN CG_CG_TOTAL;
412   END CG_CG_TOTALFORMULA;
413 
414   FUNCTION CG_REP_TOTALFORMULA(CG_REP_MATL IN NUMBER
415                               ,CG_REP_MOVH IN NUMBER
416                               ,CG_REP_RES IN NUMBER
417                               ,CG_REP_OSP IN NUMBER
418                               ,CG_REP_OVHD IN NUMBER) RETURN NUMBER IS
419     CG_REP_TOTAL NUMBER;
420   BEGIN
421     CG_REP_TOTAL := (CG_REP_MATL + CG_REP_MOVH + CG_REP_RES + CG_REP_OSP + CG_REP_OVHD);
422     CG_REP_TOTAL := ROUND(CG_REP_TOTAL / ROUND_UNIT) * ROUND_UNIT;
423     RETURN CG_REP_TOTAL;
424   END CG_REP_TOTALFORMULA;
425 
426   FUNCTION IC_ITEM_TOTAL_RFORMULA(IC_ITEM_TOTAL IN NUMBER) RETURN NUMBER IS
427     IC_ITEM_TOTAL_R NUMBER;
428   BEGIN
429     IC_ITEM_TOTAL_R := STANDARD.ROUND(IC_ITEM_TOTAL / ROUND_UNIT
430                                      ,0) * ROUND_UNIT;
431     RETURN IC_ITEM_TOTAL_R;
432   END IC_ITEM_TOTAL_RFORMULA;
433 
434   FUNCTION IC_TOTAL_RFORMULA(IC_TOTAL IN NUMBER) RETURN NUMBER IS
435     IC_TOTAL_R NUMBER;
436   BEGIN
437     IC_TOTAL_R := STANDARD.ROUND(IC_TOTAL / ROUND_UNIT,0) * ROUND_UNIT;
438     RETURN IC_TOTAL_R;
439   END IC_TOTAL_RFORMULA;
440 
441   FUNCTION IC_REP_TOTAL_RFORMULA(IC_REP_TOTAL IN NUMBER) RETURN NUMBER IS
442     IC_REP_TOTAL_R NUMBER;
443   BEGIN
444     IC_REP_TOTAL_R := ROUND(IC_REP_TOTAL / ROUND_UNIT) * ROUND_UNIT;
445     RETURN IC_REP_TOTAL_R;
446   END IC_REP_TOTAL_RFORMULA;
447 
448   FUNCTION IC_CAT_TOTAL_RFORMULA(IC_CAT_TOTAL IN NUMBER) RETURN NUMBER IS
449     IC_CAT_TOTAL_R NUMBER;
450   BEGIN
451     IC_CAT_TOTAL_R := ROUND(IC_CAT_TOTAL / ROUND_UNIT) * ROUND_UNIT;
452     RETURN IC_CAT_TOTAL_R;
453   END IC_CAT_TOTAL_RFORMULA;
454 
455   FUNCTION CG_TOTAL_RFORMULA(CG_TOTAL IN NUMBER) RETURN NUMBER IS
456     CG_TOTAL_R NUMBER;
457   BEGIN
458     CG_TOTAL_R := ROUND(CG_TOTAL / ROUND_UNIT) * ROUND_UNIT;
459     RETURN CG_TOTAL_R;
460   END CG_TOTAL_RFORMULA;
461 
462   FUNCTION CG_CG_MATL_RFORMULA(CG_CG_MATL IN NUMBER) RETURN NUMBER IS
463     CG_CG_MATL_R NUMBER;
464   BEGIN
465     CG_CG_MATL_R := STANDARD.ROUND(CG_CG_MATL / ROUND_UNIT) * ROUND_UNIT;
466     RETURN CG_CG_MATL_R;
467   END CG_CG_MATL_RFORMULA;
468 
469   FUNCTION CG_CG_MOVH_RFORMULA(CG_CG_MOVH IN NUMBER) RETURN NUMBER IS
470     CG_CG_MOVH_R NUMBER;
471   BEGIN
472     CG_CG_MOVH_R := ROUND(CG_CG_MOVH / ROUND_UNIT) * ROUND_UNIT;
473     RETURN CG_CG_MOVH_R;
474   END CG_CG_MOVH_RFORMULA;
475 
476   FUNCTION CG_CG_OVHD_RFORMULA(CG_CG_OVHD IN NUMBER) RETURN NUMBER IS
477     CG_CG_OVHD_R NUMBER;
478   BEGIN
479     CG_CG_OVHD_R := ROUND(CG_CG_OVHD / ROUND_UNIT) * ROUND_UNIT;
480     RETURN CG_CG_OVHD_R;
481   END CG_CG_OVHD_RFORMULA;
482 
483   FUNCTION CG_CG_RES_RFORMULA(CG_CG_RES IN NUMBER) RETURN NUMBER IS
484     CG_CG_RES_R NUMBER;
485   BEGIN
486     CG_CG_RES_R := ROUND(CG_CG_RES / ROUND_UNIT) * ROUND_UNIT;
487     RETURN CG_CG_RES_R;
488   END CG_CG_RES_RFORMULA;
489 
490   FUNCTION CG_CG_OSP_RFORMULA(CG_CG_OSP IN NUMBER) RETURN NUMBER IS
491     CG_CG_OSP_R NUMBER;
492   BEGIN
493     CG_CG_OSP_R := ROUND(CG_CG_OSP / ROUND_UNIT) * ROUND_UNIT;
494     RETURN CG_CG_OSP_R;
495   END CG_CG_OSP_RFORMULA;
496 
497   FUNCTION P_REPORT_NAMEVALIDTRIGGER RETURN BOOLEAN IS
498   BEGIN
499     RETURN (TRUE);
500   END P_REPORT_NAMEVALIDTRIGGER;
501 
502   FUNCTION IC_UNIT_COST1FORMULA(IC_ITEM_QTY IN NUMBER
503                                ,IC_ITEM_TOTAL IN NUMBER
504                                ,IC_UNIT_COST IN NUMBER) RETURN NUMBER IS
505   BEGIN
506     IF (IC_ITEM_QTY <> 0) THEN
507       RETURN ROUND((IC_ITEM_TOTAL / IC_ITEM_QTY)
508                   ,P_EXT_PREC);
509     ELSE
510       RETURN (IC_UNIT_COST);
511     END IF;
512   END IC_UNIT_COST1FORMULA;
513 
514 END BOM_CSTRIRVW_XMLP_PKG;
515