[Home] [Help]
PACKAGE BODY: APPS.BOM_CSTRINVR_XMLP_PKG
Source
1 PACKAGE BODY BOM_CSTRINVR_XMLP_PKG AS
2 /* $Header: CSTRINVRB.pls 120.1.12020000.2 2012/07/11 13:16:28 vkatakam ship $ */
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_CSTRINVR_XMLP_PKG >> ' || TO_CHAR(SYSDATE
10 ,'Dy Mon DD HH24:MI:SS YYYY'))*/NULL;
11 RETURN (TRUE);
12 END AFTERREPORT;
13 FUNCTION BEFOREREPORT RETURN BOOLEAN IS
14 BEGIN
15 DECLARE
16 L_FCN_CURRENCY VARCHAR2(15);
17 L_REPORT_NAME VARCHAR2(80);
18 SQL_STMT_NUM VARCHAR2(5);
19 L_EXP_SUB NUMBER := P_EXP_SUB;
20 L_MSG_COUNT NUMBER;
21 L_MSG_DATA VARCHAR2(8000);
22 L_RETURN_STATUS VARCHAR2(1);
23 L_AS_OF_DATE VARCHAR2(30);
24 L_COST NUMBER;
25 WMS_ORG_COUNT NUMBER;
26 PJM_ORG_COUNT NUMBER;
27 L_CALCULATE_INTRANSIT NUMBER;
28 L_CST_INV_VAL EXCEPTION;
29 BEGIN
30 EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_NUMERIC_CHARACTERS=''.,''';
31 SQL_STMT_NUM := '0: ';
32 P_EXCHANGE_RATE := FND_NUMBER.CANONICAL_TO_NUMBER(P_EXCHANGE_RATE_CHAR);
33 SQL_STMT_NUM := '1: ';
34 IF P_VIEW_COST <> 1 THEN
35 FND_MESSAGE.SET_NAME('null'
36 ,'null');
37 /*SRW.USER_EXIT('FND MESSAGE_DISPLAY')*/NULL;
38 /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
39 END IF;
40 SQL_STMT_NUM := '3: ';
41 SELECT
42 O.ORGANIZATION_NAME,
43 MP.COST_ORGANIZATION_ID,
44 SOB.CURRENCY_CODE,
45 NVL(EXTENDED_PRECISION
46 ,PRECISION),
47 NVL(FC.PRECISION
48 ,0),
49 NVL(MINIMUM_ACCOUNTABLE_UNIT
50 ,POWER(10
51 ,NVL(-PRECISION
52 ,0))),
53 MCS.CATEGORY_SET_NAME,
54 DEFAULT_COST_TYPE_ID,
55 COST_TYPE,
56 LU2.MEANING,
57 USERENV('SESSIONID')
58 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
59 FROM
60 ORG_ORGANIZATION_DEFINITIONS O,
61 MTL_PARAMETERS MP,
62 GL_SETS_OF_BOOKS SOB,
63 FND_CURRENCIES FC,
64 MTL_CATEGORY_SETS MCS,
65 CST_COST_TYPES,
66 MFG_LOOKUPS LU2
67 WHERE FC.CURRENCY_CODE = P_CURRENCY_CODE
68 AND O.ORGANIZATION_ID = P_ORG_ID
69 AND MP.ORGANIZATION_ID = P_ORG_ID
70 AND SOB.SET_OF_BOOKS_ID = O.SET_OF_BOOKS_ID
71 AND MCS.CATEGORY_SET_ID = P_CATEGORY_SET
72 AND COST_TYPE_ID = P_COST_TYPE_ID
73 AND LU2.LOOKUP_TYPE = 'CST_BICR_DETAIL_OPTION'
74 AND LU2.LOOKUP_CODE = P_RPT_OPTION;
75 BEGIN
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 ,'CSTRSAVR'
104 ,'BOM_CSTRINVR_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 := '4: ';
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 := '5: ';
120 IF P_SORT_OPTION = 3 THEN
121 /*SRW.SET_MAXROW('Q_IC_MAIN'
122 ,0)*/NULL;
123 ELSE
124 /*SRW.SET_MAXROW('Q_SI_SUBINV'
125 ,0)*/NULL;
126 /*SRW.SET_MAXROW('Q_SI_MAIN'
127 ,0)*/NULL;
128 END IF;
129 BEGIN
130
131 /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
132 EXCEPTION
133 WHEN OTHERS THEN
134 /*SRW.MESSAGE(999
135 ,'FND SRWINIT >X')*/NULL;
136 RAISE;
137 END;
138 BEGIN
139 NULL;
140 EXCEPTION
141 WHEN OTHERS THEN
142 /*SRW.MESSAGE(999
143 ,'FND FLEXSQL(MCAT) >X')*/NULL;
144 RAISE;
145 END;
146 BEGIN
147 NULL;
148 EXCEPTION
149 WHEN OTHERS THEN
150 /*SRW.MESSAGE(999
151 ,'FND FLEXSQL(MSTK) >X')*/NULL;
152 RAISE;
153 END;
154 SQL_STMT_NUM := '6: ';
155 CST_INVENTORY_PUB.CALCULATE_INVENTORYVALUE(P_API_VERSION => 1.0
156 ,P_INIT_MSG_LIST => CST_UTILITY_PUB.GET_TRUE
157 ,P_ORGANIZATION_ID => P_ORG_ID
158 ,P_ONHAND_VALUE => 1
159 ,P_INTRANSIT_VALUE => 1
160 ,P_RECEIVING_VALUE => 0
161 ,P_VALUATION_DATE => TO_DATE(P_AS_OF_DATE
162 ,'YYYY/MM/DD HH24:MI:SS')
163 ,P_COST_TYPE_ID => P_COST_TYPE_ID
164 ,P_ITEM_FROM => P_ITEM_FROM
165 ,P_ITEM_TO => P_ITEM_TO
166 ,P_CATEGORY_SET_ID => P_CATEGORY_SET
167 ,P_CATEGORY_FROM => P_CAT_FROM
168 ,P_CATEGORY_TO => P_CAT_TO
169 ,P_COST_GROUP_FROM => NULL
170 ,P_COST_GROUP_TO => NULL
171 ,P_SUBINVENTORY_FROM => P_SUBINV_FROM
172 ,P_SUBINVENTORY_TO => P_SUBINV_TO
173 ,P_QTY_BY_REVISION => P_ITEM_REVISION
174 ,P_ZERO_COST_ONLY => P_ZERO_COST
175 ,P_ZERO_QTY => P_ZERO_QTY
176 ,P_EXPENSE_ITEM => P_EXP_ITEM
177 ,P_EXPENSE_SUB => L_EXP_SUB
178 ,P_UNVALUED_TXNS => P_UNCOSTED_TXN
179 ,P_RECEIPT => 1
180 ,P_SHIPMENT => 1
181 ,X_RETURN_STATUS => L_RETURN_STATUS
182 ,X_MSG_COUNT => L_MSG_COUNT
183 ,X_MSG_DATA => L_MSG_DATA);
184 IF L_RETURN_STATUS <> CST_UTILITY_PUB.GET_RET_STS_SUCCESS THEN
185 RAISE L_CST_INV_VAL;
186 END IF;
187 FND_MSG_PUB.COUNT_AND_GET(P_ENCODED => CST_UTILITY_PUB.GET_FALSE
188 ,P_COUNT => L_MSG_COUNT
189 ,P_DATA => L_MSG_DATA);
190 IF (L_MSG_COUNT > 0) THEN
191 FOR i IN 1 .. L_MSG_COUNT LOOP
192 L_MSG_DATA := FND_MSG_PUB.GET(I
193 ,CST_UTILITY_PUB.GET_FALSE);
194 FND_FILE.PUT_LINE(CST_UTILITY_PUB.GET_LOG
195 ,I || '-' || L_MSG_DATA);
196 END LOOP;
197 END IF;
198 SELECT
199 TO_CHAR(TO_DATE(P_AS_OF_DATE
200 ,'YYYY/MM/DD HH24:MI:SS')
201 ,'DD-MON-YYYY HH24:MI:SS')
202 INTO L_AS_OF_DATE
203 FROM
204 DUAL;
205 P_AS_OF_DATE1 := L_AS_OF_DATE;
206 /*SRW.MESSAGE(0
207 ,'BOM_CSTRINVR_XMLP_PKG << ' || TO_CHAR(SYSDATE
208 ,'Dy Mon FmDD HH24:MI:SS YYYY'))*/NULL;
209 EXCEPTION
210 WHEN OTHERS THEN
211 /*SRW.MESSAGE(999
212 ,SQL_STMT_NUM || SQLERRM)*/NULL;
213 /*SRW.MESSAGE(999
214 ,'BOM_CSTRINVR_XMLP_PKG >X ' || TO_CHAR(SYSDATE
215 ,'Dy Mon FmDD HH24:MI:SS YYYY'))*/NULL;
216 FND_MSG_PUB.COUNT_AND_GET(P_ENCODED => CST_UTILITY_PUB.GET_FALSE
217 ,P_COUNT => L_MSG_COUNT
218 ,P_DATA => L_MSG_DATA);
219 IF (L_MSG_COUNT > 0) THEN
220 FOR i IN 1 .. L_MSG_COUNT LOOP
221 L_MSG_DATA := FND_MSG_PUB.GET(I
222 ,CST_UTILITY_PUB.GET_FALSE);
223 /*SRW.MESSAGE(999
224 ,I || ': ' || L_MSG_DATA)*/NULL;
225 END LOOP;
226 END IF;
227 /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
228 END;
229 RETURN (TRUE);
230 END BEFOREREPORT;
231 FUNCTION IC_ROWCOUNTFORMULA(IC_QUANTITY IN NUMBER) RETURN NUMBER IS
232 BEGIN
233 IF P_ZERO_QTY = 1 AND P_NEG_QTY = 1 AND IC_QUANTITY <= 0 THEN
234 RETURN (1);
235 ELSIF P_ZERO_QTY = 2 AND P_NEG_QTY = 1 AND IC_QUANTITY < 0 THEN
236 RETURN (1);
237 ELSIF P_ZERO_QTY = 2 AND P_NEG_QTY = 2 AND IC_QUANTITY <> 0 THEN
238 RETURN (1);
239 ELSIF P_ZERO_QTY = 1 AND P_NEG_QTY = 2 THEN
240 RETURN (1);
241 ELSE
242 RETURN (0);
243 END IF;
244 RETURN NULL;
245 END IC_ROWCOUNTFORMULA;
246 FUNCTION IC_TOTAL1FORMULA(IC_QUANTITY IN NUMBER
247 ,IC_TOTAL IN NUMBER) RETURN NUMBER IS
248 BEGIN
249 IF P_NEG_QTY = 1 AND IC_QUANTITY > 0 THEN
250 RETURN (0);
251 ELSE
252 RETURN (IC_TOTAL);
253 END IF;
254 RETURN NULL;
255 END IC_TOTAL1FORMULA;
256 FUNCTION SI_TOTAL1FORMULA(SI_QUANTITY IN NUMBER
257 ,SI_TOTAL IN NUMBER) RETURN NUMBER IS
258 BEGIN
259 IF P_NEG_QTY = 1 AND SI_QUANTITY > 0 THEN
260 RETURN (0);
261 ELSE
262 RETURN (SI_TOTAL);
263 END IF;
264 RETURN NULL;
265 END SI_TOTAL1FORMULA;
266 FUNCTION SI_ROWCOUNTFORMULA(SI_QUANTITY IN NUMBER) RETURN NUMBER IS
267 BEGIN
268 IF P_ZERO_QTY = 1 AND P_NEG_QTY = 1 AND SI_QUANTITY <= 0 THEN
269 RETURN (1);
270 ELSIF P_ZERO_QTY = 1 AND P_NEG_QTY = 2 THEN
271 RETURN (1);
272 ELSIF P_ZERO_QTY = 2 AND P_NEG_QTY = 1 AND SI_QUANTITY < 0 THEN
273 RETURN (1);
274 ELSIF P_ZERO_QTY = 2 AND P_NEG_QTY = 2 AND SI_QUANTITY <> 0 THEN
275 RETURN (1);
276 ELSE
277 RETURN (0);
278 END IF;
279 RETURN NULL;
280 END SI_ROWCOUNTFORMULA;
281 FUNCTION SI_MATL1FORMULA(SI_QUANTITY IN NUMBER
282 ,SI_MATL IN NUMBER) RETURN NUMBER IS
283 BEGIN
284 IF P_NEG_QTY = 1 AND SI_QUANTITY > 0 THEN
285 RETURN (0);
286 ELSE
287 RETURN (SI_MATL);
288 END IF;
289 RETURN NULL;
290 END SI_MATL1FORMULA;
291 FUNCTION SI_MOVH1FORMULA(SI_QUANTITY IN NUMBER
292 ,SI_MOVH IN NUMBER) RETURN NUMBER IS
293 BEGIN
294 IF P_NEG_QTY = 1 AND SI_QUANTITY > 0 THEN
295 RETURN (0);
296 ELSE
297 RETURN (SI_MOVH);
298 END IF;
299 RETURN NULL;
300 END SI_MOVH1FORMULA;
301 FUNCTION SI_RES1FORMULA(SI_QUANTITY IN NUMBER
302 ,SI_RES IN NUMBER) RETURN NUMBER IS
303 BEGIN
304 IF P_NEG_QTY = 1 AND SI_QUANTITY > 0 THEN
305 RETURN (0);
306 ELSE
307 RETURN (SI_RES);
308 END IF;
309 RETURN NULL;
310 END SI_RES1FORMULA;
311 FUNCTION SI_OSP1FORMULA(SI_QUANTITY IN NUMBER
312 ,SI_OSP IN NUMBER) RETURN NUMBER IS
313 BEGIN
314 IF P_NEG_QTY = 1 AND SI_QUANTITY > 0 THEN
315 RETURN (0);
316 ELSE
317 RETURN (SI_OSP);
318 END IF;
319 RETURN NULL;
320 END SI_OSP1FORMULA;
321 FUNCTION SI_OVHD1FORMULA(SI_QUANTITY IN NUMBER
322 ,SI_OVHD IN NUMBER) RETURN NUMBER IS
323 BEGIN
324 IF P_NEG_QTY = 1 AND SI_QUANTITY > 0 THEN
325 RETURN (0);
326 ELSE
327 RETURN (SI_OVHD);
328 END IF;
329 RETURN NULL;
330 END SI_OVHD1FORMULA;
331 FUNCTION IC_ORDERFORMULA(IC_CATEGORY IN VARCHAR2
332 ,IC_CATEGORY_SEGMENT IN VARCHAR2
333 ,IC_CAT_PSEG IN VARCHAR2) RETURN VARCHAR2 IS
334 BEGIN
335 /*SRW.REFERENCE(IC_CATEGORY)*/NULL;
336 /*SRW.REFERENCE(IC_CATEGORY_SEGMENT)*/NULL;
337 /*SRW.REFERENCE(IC_CAT_PSEG)*/NULL;
338 IF P_SORT_OPTION = 2 THEN
339 RETURN (IC_CAT_PSEG);
340 ELSE
341 RETURN ('Item Sort');
342 END IF;
343 RETURN NULL;
344 END IC_ORDERFORMULA;
345 FUNCTION IC_ITEM_PSEGFORMULA(IC_ITEM_NUMBER IN VARCHAR2
346 ,IC_ITEM_SEGMENT IN VARCHAR2
347 ,IC_ITEM_PSEG IN VARCHAR2) RETURN VARCHAR2 IS
348 BEGIN
349 /*SRW.REFERENCE(IC_ITEM_NUMBER)*/NULL;
350 /*SRW.REFERENCE(IC_ITEM_SEGMENT)*/NULL;
351 RETURN (IC_ITEM_PSEG);
352 END IC_ITEM_PSEGFORMULA;
353 FUNCTION IC_CAT_PSEGFORMULA(IC_CATEGORY IN VARCHAR2
354 ,IC_CATEGORY_SEGMENT IN VARCHAR2
355 ,IC_CAT_PSEG IN VARCHAR2) RETURN VARCHAR2 IS
356 BEGIN
357 /*SRW.REFERENCE(IC_CATEGORY)*/NULL;
358 /*SRW.REFERENCE(IC_CATEGORY_SEGMENT)*/NULL;
359 RETURN (IC_CAT_PSEG);
360 END IC_CAT_PSEGFORMULA;
361 FUNCTION SI_ITEM_PSEGFORMULA(SI_ITEM_NUMBER IN VARCHAR2
362 ,SI_ITEM_SEGMENT IN VARCHAR2
363 ,SI_ITEM_PSEG IN VARCHAR2) RETURN VARCHAR2 IS
364 BEGIN
365 /*SRW.REFERENCE(SI_ITEM_NUMBER)*/NULL;
366 /*SRW.REFERENCE(SI_ITEM_SEGMENT)*/NULL;
367 RETURN (SI_ITEM_PSEG);
368 END SI_ITEM_PSEGFORMULA;
369 FUNCTION BEFOREPFORM RETURN BOOLEAN IS
370 BEGIN
371 RETURN (TRUE);
372 END BEFOREPFORM;
373 FUNCTION IC_QUANTITY1FORMULA(IC_QUANTITY IN NUMBER) RETURN NUMBER IS
374 BEGIN
375 IF P_NEG_QTY = 1 AND IC_QUANTITY > 0 THEN
376 RETURN (0);
377 ELSE
378 RETURN (IC_QUANTITY);
379 END IF;
380 RETURN NULL;
381 END IC_QUANTITY1FORMULA;
382 FUNCTION SI_SI_TOTALFORMULA(SI_SI_MATL IN NUMBER
383 ,SI_SI_MOVH IN NUMBER
384 ,SI_SI_RES IN NUMBER
385 ,SI_SI_OSP IN NUMBER
386 ,SI_SI_OVHD IN NUMBER) RETURN NUMBER IS
387 SI_SI_TOTAL NUMBER;
388 BEGIN
389 SI_SI_TOTAL := (SI_SI_MATL + SI_SI_MOVH + SI_SI_RES + SI_SI_OSP + SI_SI_OVHD);
390 SI_SI_TOTAL := STANDARD.ROUND(SI_SI_TOTAL / ROUND_UNIT) * ROUND_UNIT;
391 RETURN SI_SI_TOTAL;
392 END SI_SI_TOTALFORMULA;
393 FUNCTION SI_REP_TOTALFORMULA(SI_REP_MATL IN NUMBER
394 ,SI_REP_MOVH IN NUMBER
395 ,SI_REP_RES IN NUMBER
396 ,SI_REP_OSP IN NUMBER
397 ,SI_REP_OVHD IN NUMBER) RETURN NUMBER IS
398 SI_REP_TOTAL NUMBER;
399 BEGIN
400 SI_REP_TOTAL := (SI_REP_MATL + SI_REP_MOVH + SI_REP_RES + SI_REP_OSP + SI_REP_OVHD);
401 SI_REP_TOTAL := ROUND(SI_REP_TOTAL / ROUND_UNIT) * ROUND_UNIT;
402 RETURN SI_REP_TOTAL;
403 END SI_REP_TOTALFORMULA;
404 FUNCTION IC_ITEM_TOTAL_RFORMULA(IC_ITEM_TOTAL IN NUMBER) RETURN NUMBER IS
405 IC_ITEM_TOTAL_R NUMBER;
406 BEGIN
407 IC_ITEM_TOTAL_R := STANDARD.ROUND(IC_ITEM_TOTAL / ROUND_UNIT
408 ,0) * ROUND_UNIT;
409 RETURN IC_ITEM_TOTAL_R;
410 END IC_ITEM_TOTAL_RFORMULA;
411 FUNCTION IC_TOTAL_RFORMULA(IC_TOTAL IN NUMBER) RETURN NUMBER IS
412 IC_TOTAL_R NUMBER;
413 BEGIN
414 IC_TOTAL_R := STANDARD.ROUND(IC_TOTAL / ROUND_UNIT ,0) * ROUND_UNIT;
415 RETURN IC_TOTAL_R;
416 END IC_TOTAL_RFORMULA;
417 FUNCTION IC_REP_TOTAL_RFORMULA(IC_REP_TOTAL IN NUMBER) RETURN NUMBER IS
418 IC_REP_TOTAL_R NUMBER;
419 BEGIN
420 IC_REP_TOTAL_R := ROUND(IC_REP_TOTAL / ROUND_UNIT) * ROUND_UNIT;
421 RETURN IC_REP_TOTAL_R;
422 END IC_REP_TOTAL_RFORMULA;
423 FUNCTION IC_CAT_TOTAL_RFORMULA(IC_CAT_TOTAL IN NUMBER) RETURN NUMBER IS
424 IC_CAT_TOTAL_R NUMBER;
425 BEGIN
426 IC_CAT_TOTAL_R := ROUND(IC_CAT_TOTAL / ROUND_UNIT) * ROUND_UNIT;
427 RETURN IC_CAT_TOTAL_R;
428 END IC_CAT_TOTAL_RFORMULA;
429 FUNCTION SI_TOTAL_RFORMULA(SI_TOTAL IN NUMBER) RETURN NUMBER IS
430 SI_TOTAL_R NUMBER;
431 BEGIN
432 SI_TOTAL_R := ROUND(SI_TOTAL / ROUND_UNIT) * ROUND_UNIT;
433 RETURN SI_TOTAL_R;
434 END SI_TOTAL_RFORMULA;
435 FUNCTION SI_SI_MATL_RFORMULA(SI_SI_MATL IN NUMBER) RETURN NUMBER IS
436 SI_SI_MATL_R NUMBER;
437 BEGIN
438 SI_SI_MATL_R := STANDARD.ROUND(SI_SI_MATL / ROUND_UNIT) * ROUND_UNIT;
439 RETURN SI_SI_MATL_R;
440 END SI_SI_MATL_RFORMULA;
441 FUNCTION SI_SI_MOVH_RFORMULA(SI_SI_MOVH IN NUMBER) RETURN NUMBER IS
442 SI_SI_MOVH_R NUMBER;
443 BEGIN
444 SI_SI_MOVH_R := ROUND(SI_SI_MOVH / ROUND_UNIT) * ROUND_UNIT;
445 RETURN SI_SI_MOVH_R;
446 END SI_SI_MOVH_RFORMULA;
447 FUNCTION SI_SI_OVHD_RFORMULA(SI_SI_OVHD IN NUMBER) RETURN NUMBER IS
448 SI_SI_OVHD_R NUMBER;
449 BEGIN
450 SI_SI_OVHD_R := ROUND(SI_SI_OVHD / ROUND_UNIT) * ROUND_UNIT;
451 RETURN SI_SI_OVHD_R;
452 END SI_SI_OVHD_RFORMULA;
453 FUNCTION SI_SI_RES_RFORMULA(SI_SI_RES IN NUMBER) RETURN NUMBER IS
454 SI_SI_RES_R NUMBER;
455 BEGIN
456 SI_SI_RES_R := ROUND(SI_SI_RES / ROUND_UNIT) * ROUND_UNIT;
457 RETURN SI_SI_RES_R;
458 END SI_SI_RES_RFORMULA;
459 FUNCTION SI_SI_OSP_RFORMULA(SI_SI_OSP IN NUMBER) RETURN NUMBER IS
460 SI_SI_OSP_R NUMBER;
461 BEGIN
462 SI_SI_OSP_R := ROUND(SI_SI_OSP / ROUND_UNIT) * ROUND_UNIT;
463 RETURN SI_SI_OSP_R;
464 END SI_SI_OSP_RFORMULA;
465 FUNCTION P_REPORT_NAMEVALIDTRIGGER RETURN BOOLEAN IS
466 BEGIN
467 RETURN (TRUE);
468 END P_REPORT_NAMEVALIDTRIGGER;
469 FUNCTION AFTERPFORM RETURN BOOLEAN IS
470 BEGIN
471 IF (P_SUBINV_FROM IS NULL AND P_SUBINV_TO IS NULL) THEN
472 P_SUB_INV_SEC := '(1=1)';
473 ELSIF (P_SUBINV_FROM IS NOT NULL AND P_SUBINV_TO IS NULL) THEN
474 P_SUB_INV_SEC := 'SEC.SECONDARY_INVENTORY_NAME >= :P_SUBINV_FROM';
475 ELSIF (P_SUBINV_FROM IS NULL AND P_SUBINV_TO IS NOT NULL) THEN
476 P_SUB_INV_SEC := 'SEC.SECONDARY_INVENTORY_NAME <= :P_SUBINV_TO';
477 ELSE
478 P_SUB_INV_SEC := 'SEC.SECONDARY_INVENTORY_NAME BETWEEN
479 :P_SUBINV_FROM AND :P_SUBINV_TO';
480 END IF;
481 IF (P_ZERO_QTY = 1 AND P_SUBINV_FROM IS NULL AND P_SUBINV_TO IS NULL) THEN
482 P_SUBINV_WHERE := 'SEC.ORGANIZATION_ID (+) = CIQT.ORGANIZATION_ID
483 AND SEC.SECONDARY_INVENTORY_NAME(+) = CIQT.SUBINVENTORY_CODE';
484 ELSE
485 P_SUBINV_WHERE := 'SEC.ORGANIZATION_ID(+) = CIQT.ORGANIZATION_ID
486 AND SEC.SECONDARY_INVENTORY_NAME(+) = CIQT.SUBINVENTORY_CODE';
487 END IF;
488 RETURN (TRUE);
489 END AFTERPFORM;
490 FUNCTION IC_UNIT_COST1FORMULA(IC_ITEM_QTY IN NUMBER
491 ,IC_ITEM_TOTAL IN NUMBER
492 ,IC_UNIT_COST IN NUMBER) RETURN NUMBER IS
493 BEGIN
494 IF (IC_ITEM_QTY <> 0) THEN
495 RETURN ROUND((IC_ITEM_TOTAL / IC_ITEM_QTY)
496 ,P_EXT_PREC);
497 ELSE
498 RETURN (IC_UNIT_COST);
499 END IF;
500 END IC_UNIT_COST1FORMULA;
501 END BOM_CSTRINVR_XMLP_PKG;
502