[Home] [Help]
PACKAGE BODY: APPS.GME_GMEBCHYV_XMLP_PKG
Source
1 PACKAGE BODY GME_GMEBCHYV_XMLP_PKG AS
2 /* $Header: GMEBCHYVB.pls 120.0 2007/12/24 12:44:26 nchinnam noship $ */
3 FUNCTION CF_ACCTG_COST2FORMULA(CF_UOM IN VARCHAR2
4 ,ITEMUM IN VARCHAR2
5 ,DITEMID IN NUMBER
6 ,CF_ACTUAL_QTY_UM IN NUMBER) RETURN NUMBER IS
7 COST NUMBER;
8 V_QTY NUMBER;
9 MESSAGE_IND NUMBER;
10 MESSAGE_TEXT VARCHAR2(2000);
11 BEGIN
12 IF CF_UOM <> ITEMUM THEN
13 V_QTY := INV_CONVERT.INV_UM_CONVERT(ITEM_ID => DITEMID
14 ,PRECISION => 5
15 ,FROM_QUANTITY => NVL(CF_ACTUAL_QTY_UM
16 ,0)
17 ,FROM_UNIT => CF_UOM
18 ,TO_UNIT => ITEMUM
19 ,FROM_NAME => NULL
20 ,TO_NAME => NULL);
21 ELSE
22 V_QTY := NVL(CF_ACTUAL_QTY_UM
23 ,0);
24 END IF;
25 COST := V_QTY * CP_ITEM_COST;
26 RETURN (COST);
27 EXCEPTION
28 WHEN OTHERS THEN
29 GME_COMMON_PVT.COUNT_AND_GET(P_ENCODED => 'F'
30 ,X_DATA => MESSAGE_TEXT
31 ,X_COUNT => MESSAGE_IND);
32 /*SRW.MESSAGE(100
33 ,'Error in UOM Conversion ' || MESSAGE_TEXT)*/NULL;
34 /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
35 END CF_ACCTG_COST2FORMULA;
36
37 FUNCTION CF_QUANTITY_VARIANCE(CF_ACTUAL_QTY_UM IN NUMBER
38 ,CF_PLAN_QTY_ITEMUM IN NUMBER) RETURN NUMBER IS
39 V_RET_VAL NUMBER;
40 BEGIN
41 V_RET_VAL := (NVL(CF_ACTUAL_QTY_UM
42 ,0) - NVL(CF_PLAN_QTY_ITEMUM
43 ,0));
44 RETURN V_RET_VAL;
45 END CF_QUANTITY_VARIANCE;
46
47 FUNCTION CF_VALUE_VARIANCE(CF_ACCTG_COST2 IN NUMBER
48 ,CF_ACCTNG_COST1 IN NUMBER) RETURN NUMBER IS
49 BEGIN
50 RETURN (NVL(CF_ACCTG_COST2
51 ,0) - NVL(CF_ACCTNG_COST1
52 ,0));
53 END CF_VALUE_VARIANCE;
54
55 FUNCTION CF_VARIANCE_PCT(CF_PLAN_QTY_ITEMUM IN NUMBER
56 ,CF_QUANTITY_VARIANCE IN NUMBER) RETURN NUMBER IS
57 TEMPFIELD NUMBER;
58 BEGIN
59 IF ((CF_PLAN_QTY_ITEMUM = 0) OR CF_PLAN_QTY_ITEMUM IS NULL) THEN
60 IF CF_QUANTITY_VARIANCE = 0 THEN
61 TEMPFIELD := 0;
62 ELSE
63 TEMPFIELD := 100;
64 END IF;
65 ELSE
66 TEMPFIELD := (CF_QUANTITY_VARIANCE / CF_PLAN_QTY_ITEMUM) * 100;
67 END IF;
68 RETURN (TEMPFIELD);
69 END CF_VARIANCE_PCT;
70
71 FUNCTION CF_FORMULA_QTY(RECIPE_VALIDITY_RULE_ID IN NUMBER
72 ,BATCH_ID IN NUMBER) RETURN NUMBER IS
73 PLANQTY NUMBER;
74 ITEMUM VARCHAR2(4);
75 ORGID NUMBER;
76 BEGIN
77 IF RECIPE_VALIDITY_RULE_ID IS NOT NULL THEN
78 SELECT
79 PLAN_QTY,
80 DTL_UM
81 INTO PLANQTY,ITEMUM
82 FROM
83 GME_MATERIAL_DETAILS PMD
84 WHERE PMD.LINE_TYPE = 1
85 AND PMD.BATCH_ID = cf_formula_qty.BATCH_ID
86 AND INVENTORY_ITEM_ID = (
87 SELECT
88 INVENTORY_ITEM_ID
89 FROM
90 GMD_RECIPE_VALIDITY_RULES
91 WHERE RECIPE_VALIDITY_RULE_ID = cf_formula_qty.RECIPE_VALIDITY_RULE_ID )
92 AND ORGANIZATION_ID = P_ORG_ID;
93 ELSE
94 SELECT
95 PLAN_QTY,
96 DTL_UM
97 INTO PLANQTY,ITEMUM
98 FROM
99 GME_MATERIAL_DETAILS PMD
100 WHERE PMD.LINE_TYPE = 1
101 AND PMD.LINE_NO = 1
102 AND PMD.BATCH_ID = cf_formula_qty.BATCH_ID
103 AND ORGANIZATION_ID = P_ORG_ID;
104 END IF;
105 BATCHUM := ITEMUM;
106 RETURN (PLANQTY);
107 RETURN NULL;
108 EXCEPTION
109 WHEN OTHERS THEN
110 BATCHUM := NULL;
111 RETURN (NULL);
112 END CF_FORMULA_QTY;
113
114 FUNCTION CF_BATCHRANGEFORMULA RETURN VARCHAR2 IS
115 BEGIN
116 /*SRW.REFERENCE(CP_BATCHRANGE)*/NULL;
117 IF FROMBATCH IS NOT NULL AND TOBATCH IS NOT NULL AND LPAD(FROMBATCH
118 ,32
119 ,'0') = LPAD(TOBATCH
120 ,32
121 ,'0') THEN
122 CP_BATCHRANGE := ' and Lpad(h.batch_no,32,''0'') = ' || '''' || LPAD(FROMBATCH
123 ,32
124 ,'0') || '''';
125 ELSIF FROMBATCH IS NOT NULL AND TOBATCH IS NOT NULL THEN
126 CP_BATCHRANGE := ' and Lpad(h.batch_no,32,''0'') between ' || '''' || LPAD(FROMBATCH
127 ,32
128 ,'0') || '''' || ' and ' || '''' || LPAD(TOBATCH
129 ,32
130 ,'0') || '''';
131 ELSIF FROMBATCH IS NULL AND TOBATCH IS NULL THEN
132 CP_BATCHRANGE := ' ';
133 ELSIF FROMBATCH IS NOT NULL AND TOBATCH IS NULL THEN
134 CP_BATCHRANGE := 'and Lpad(h.batch_no,32,''0'') >= ' || '''' || LPAD(FROMBATCH
135 ,32
136 ,'0') || '''';
137 ELSIF FROMBATCH IS NULL AND TOBATCH IS NOT NULL THEN
138 CP_BATCHRANGE := 'and Lpad(h.batch_no,32,''0'') <= ' || '''' || LPAD(TOBATCH
139 ,32
140 ,'0') || '''';
141 END IF;
142 RETURN NULL;
143 END CF_BATCHRANGEFORMULA;
144
145 FUNCTION CF_DATERANGEFORMULA RETURN VARCHAR2 IS
146 BEGIN
147 /*SRW.REFERENCE(CP_DATERANGE)*/NULL;
148 RETURN NULL;
149 END CF_DATERANGEFORMULA;
150
151 FUNCTION CF_ITEM_RANGE RETURN VARCHAR2 IS
152 BEGIN
153 /*SRW.REFERENCE(CP_ITEMRANGE)*/NULL;
154 IF FROMITEM IS NOT NULL AND TOITEM IS NOT NULL AND FROMITEM = TOITEM THEN
155 CP_ITEMRANGE := ' and im.concatenated_segments = ' || '''' || FROMITEM || '''';
156 ELSIF FROMITEM IS NOT NULL AND TOITEM IS NOT NULL THEN
157 CP_ITEMRANGE := ' and im.concatenated_segments between ' || '''' || FROMITEM || ''' and ' || '''' || TOITEM || '''';
158 ELSIF FROMITEM IS NULL AND TOITEM IS NULL THEN
159 CP_ITEMRANGE := ' ';
160 ELSIF FROMITEM IS NOT NULL AND TOITEM IS NULL THEN
161 CP_ITEMRANGE := 'and im.concatenated_segments >= ' || '''' || FROMITEM || '''';
162 ELSIF FROMITEM IS NULL AND TOITEM IS NOT NULL THEN
163 CP_ITEMRANGE := 'and im.concatenated_segments <= ' || '''' || TOITEM || '''';
164 END IF;
165 RETURN NULL;
166 END CF_ITEM_RANGE;
167
168 FUNCTION CF_PLAN_QTY_ITEMUMFORMULA(FORMULALINE_ID IN NUMBER
169 ,RECIPE_VALIDITY_RULE_ID IN NUMBER
170 ,FORMULA_ID IN NUMBER
171 ,BATCH_ID IN NUMBER) RETURN NUMBER IS
172 X_ITEM_ID NUMBER(10);
173 P_SCALE_TAB GMD_COMMON_SCALE.SCALE_TAB;
174 X_SCALE_TAB GMD_COMMON_SCALE.SCALE_TAB;
175 X_RETURN_STATUS VARCHAR2(1);
176 MESSAGE_IND NUMBER;
177 MESSAGE_TEXT VARCHAR2(2000);
178 CURSOR CUR_FORMULA_EXISTS IS
179 SELECT
180 COUNT(1)
181 FROM
182 FND_DUAL
183 WHERE EXISTS (
184 SELECT
185 FORMULALINE_ID
186 FROM
187 GME_SCALE_DETAIL
188 WHERE FORMULALINE_ID = cf_plan_qty_itemumformula.FORMULALINE_ID );
189 CURSOR CUR_MATL_QTY IS
190 SELECT
191 QTY
192 FROM
193 GME_SCALE_DETAIL
194 WHERE FORMULALINE_ID = cf_plan_qty_itemumformula.FORMULALINE_ID;
195 CURSOR CUR_PRIMARY_PROD IS
196 SELECT
197 INVENTORY_ITEM_ID
198 FROM
199 GMD_RECIPE_VALIDITY_RULES
200 WHERE RECIPE_VALIDITY_RULE_ID = cf_plan_qty_itemumformula.RECIPE_VALIDITY_RULE_ID;
201 CURSOR CUR_ITEM_UM(V_ITEM_ID IN NUMBER) IS
202 SELECT
203 PRIMARY_UOM_CODE
204 FROM
205 MTL_SYSTEM_ITEMS_B
206 WHERE ORGANIZATION_ID = P_ORG_ID
207 AND INVENTORY_ITEM_ID = V_ITEM_ID;
208 CURSOR CUR_FORM_DTL IS
209 SELECT
210 QTY,
211 DETAIL_UOM
212 FROM
213 FM_MATL_DTL
214 WHERE FORMULA_ID = cf_plan_qty_itemumformula.FORMULA_ID
215 AND ORGANIZATION_ID = P_ORG_ID
216 AND INVENTORY_ITEM_ID = X_ITEM_ID
217 AND LINE_TYPE = 1;
218 CURSOR CUR_BATCH_DTL IS
219 SELECT
220 PLAN_QTY,
221 DTL_UM
222 FROM
223 GME_MATERIAL_DETAILS
224 WHERE BATCH_ID = cf_plan_qty_itemumformula.BATCH_ID
225 AND INVENTORY_ITEM_ID = X_ITEM_ID
226 AND LINE_TYPE = 1;
227 CURSOR CUR_PLAN_QTY IS
228 SELECT
229 QTY
230 FROM
231 GME_SCALE_DETAIL
232 WHERE FORMULALINE_ID = cf_plan_qty_itemumformula.FORMULALINE_ID;
233 CURSOR CUR_SCRAP_FACTOR IS
234 SELECT
235 SCRAP_FACTOR
236 FROM
237 FM_MATL_DTL
238 WHERE FORMULALINE_ID = cf_plan_qty_itemumformula.FORMULALINE_ID
239 AND FORMULA_ID = cf_plan_qty_itemumformula.FORMULA_ID
240 AND LINE_TYPE = - 1;
241 CURSOR CUR_GET_FORMULA_DETAILS IS
242 SELECT
243 FORMULALINE_ID,
244 QTY,
245 DETAIL_UOM,
246 SCALE_TYPE,
247 LINE_TYPE,
248 INVENTORY_ITEM_ID,
249 SCALE_MULTIPLE,
250 SCALE_ROUNDING_VARIANCE,
251 ROUNDING_DIRECTION,
252 CONTRIBUTE_YIELD_IND
253 FROM
254 FM_MATL_DTL
255 WHERE FORMULA_ID = cf_plan_qty_itemumformula.FORMULA_ID;
256 X_TRANS_QTY NUMBER := 0;
257 X_COUNT NUMBER(5);
258 X_ITEM_UM VARCHAR2(4);
259 X_QTY NUMBER;
260 X_DTL_UM VARCHAR2(4);
261 X_CONV_QTY_FORM NUMBER;
262 X_CONV_QTY_BATCH NUMBER;
263 X_SCALE_FACTOR NUMBER;
264 X_SCRAP_FACTOR NUMBER;
265 X_RVAR NUMBER(5);
266 I NUMBER;
267 pragma autonomous_transaction;
268 BEGIN
269 IF FORMULALINE_ID > 0 THEN
270 OPEN CUR_FORMULA_EXISTS;
271 FETCH CUR_FORMULA_EXISTS
272 INTO X_COUNT;
273 CLOSE CUR_FORMULA_EXISTS;
274 IF X_COUNT = 0 THEN
275 OPEN CUR_PRIMARY_PROD;
276 FETCH CUR_PRIMARY_PROD
277 INTO X_ITEM_ID;
278 CLOSE CUR_PRIMARY_PROD;
279 OPEN CUR_ITEM_UM(X_ITEM_ID);
280 FETCH CUR_ITEM_UM
281 INTO X_ITEM_UM;
282 CLOSE CUR_ITEM_UM;
283 OPEN CUR_FORM_DTL;
284 FETCH CUR_FORM_DTL
285 INTO X_QTY,X_DTL_UM;
286 CLOSE CUR_FORM_DTL;
287 IF X_DTL_UM <> X_ITEM_UM THEN
288 BEGIN
289 X_CONV_QTY_FORM := INV_CONVERT.INV_UM_CONVERT(ITEM_ID => X_ITEM_ID
290 ,PRECISION => 5
291 ,FROM_QUANTITY => X_QTY
292 ,FROM_UNIT => X_DTL_UM
293 ,TO_UNIT => X_ITEM_UM
294 ,FROM_NAME => NULL
295 ,TO_NAME => NULL);
296 EXCEPTION
297 WHEN OTHERS THEN
298 GME_COMMON_PVT.COUNT_AND_GET(P_ENCODED => 'F'
299 ,X_DATA => MESSAGE_TEXT
300 ,X_COUNT => MESSAGE_IND);
301 /*SRW.MESSAGE(100
302 ,'Error in UOM Conversion ' || MESSAGE_TEXT)*/NULL;
303 /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
304 END;
305 ELSE
306 X_CONV_QTY_FORM := X_QTY;
307 END IF;
308 OPEN CUR_BATCH_DTL;
309 FETCH CUR_BATCH_DTL
310 INTO X_QTY,X_DTL_UM;
311 CLOSE CUR_BATCH_DTL;
312 IF X_DTL_UM <> X_ITEM_UM THEN
313 BEGIN
314 X_CONV_QTY_BATCH := INV_CONVERT.INV_UM_CONVERT(ITEM_ID => X_ITEM_ID
315 ,PRECISION => 5
316 ,FROM_QUANTITY => X_QTY
317 ,FROM_UNIT => X_DTL_UM
318 ,TO_UNIT => X_ITEM_UM
319 ,FROM_NAME => NULL
320 ,TO_NAME => NULL);
321 EXCEPTION
322 WHEN OTHERS THEN
323 GME_COMMON_PVT.COUNT_AND_GET(P_ENCODED => 'F'
324 ,X_DATA => MESSAGE_TEXT
325 ,X_COUNT => MESSAGE_IND);
326 /*SRW.MESSAGE(100
327 ,'Error in UOM Conversion ' || MESSAGE_TEXT)*/NULL;
328 /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
329 END;
330 ELSE
331 X_CONV_QTY_BATCH := X_QTY;
332 END IF;
333 IF X_CONV_QTY_FORM > 0 THEN
334 X_SCALE_FACTOR := X_CONV_QTY_BATCH / X_CONV_QTY_FORM;
335 ELSE
336 X_SCALE_FACTOR := 0;
337 END IF;
338 I := 1;
339 FOR fm_rec IN CUR_GET_FORMULA_DETAILS LOOP
340 P_SCALE_TAB(I).LINE_NO := FM_REC.FORMULALINE_ID;
341 P_SCALE_TAB(I).LINE_TYPE := FM_REC.LINE_TYPE;
342 P_SCALE_TAB(I).INVENTORY_ITEM_ID := FM_REC.INVENTORY_ITEM_ID;
343 P_SCALE_TAB(I).QTY := FM_REC.QTY;
344 P_SCALE_TAB(I).DETAIL_UOM := FM_REC.DETAIL_UOM;
345 P_SCALE_TAB(I).SCALE_TYPE := FM_REC.SCALE_TYPE;
346 P_SCALE_TAB(I).SCALE_MULTIPLE := FM_REC.SCALE_MULTIPLE;
347 P_SCALE_TAB(I).SCALE_ROUNDING_VARIANCE := FM_REC.SCALE_ROUNDING_VARIANCE;
348 P_SCALE_TAB(I).ROUNDING_DIRECTION := FM_REC.ROUNDING_DIRECTION;
349 P_SCALE_TAB(I).CONTRIBUTE_YIELD_IND := FM_REC.CONTRIBUTE_YIELD_IND;
350 I := I + 1;
351 END LOOP;
352 GMD_COMMON_SCALE.SCALE(P_SCALE_TAB
353 ,P_ORG_ID
354 ,X_SCALE_FACTOR
355 ,'OUTPUTS'
356 ,X_SCALE_TAB
357 ,X_RETURN_STATUS);
358 IF X_RETURN_STATUS = 'S' THEN
359 FOR i IN 1 .. X_SCALE_TAB.COUNT LOOP
360 INSERT INTO GME_SCALE_DETAIL(FORMULALINE_ID,LINE_TYPE,ITEM_ID,QTY,ITEM_UM,SCALE_TYPE,CONV_QTY)
361 VALUES (X_SCALE_TAB(I).LINE_NO
362 , X_SCALE_TAB(I).LINE_TYPE
363 ,X_SCALE_TAB(I).INVENTORY_ITEM_ID
364 , X_SCALE_TAB(I).QTY
365 , X_SCALE_TAB(I).DETAIL_UOM
366 , X_SCALE_TAB(I).SCALE_TYPE
367 , X_SCALE_TAB(I).QTY);
368 END LOOP;
369 commit;
370 END IF;
371 END IF;
372 OPEN CUR_PLAN_QTY;
373 FETCH CUR_PLAN_QTY
374 INTO X_TRANS_QTY;
375 CLOSE CUR_PLAN_QTY;
376 OPEN CUR_SCRAP_FACTOR;
377 FETCH CUR_SCRAP_FACTOR
378 INTO X_SCRAP_FACTOR;
379 CLOSE CUR_SCRAP_FACTOR;
380 IF X_SCRAP_FACTOR > 0 THEN
381 X_TRANS_QTY := X_TRANS_QTY * (1 + X_SCRAP_FACTOR);
382 END IF;
383 ELSE
384 RETURN (0);
385 END IF;
386 RETURN (X_TRANS_QTY);
387 RETURN NULL;
388 EXCEPTION
389 WHEN OTHERS THEN
390 RETURN (0);
391 END CF_PLAN_QTY_ITEMUMFORMULA;
392
393 FUNCTION CF_ACTUAL_QTY_UMFORMULA(MD_BATCHUM IN VARCHAR2
394 ,MD_FORMUM IN VARCHAR2
395 ,AQTY IN NUMBER
396 ,ITEM_ID IN NUMBER) RETURN NUMBER IS
397 V_ACTUAL_QTY_ITEMUM NUMBER;
398 V_RETVAL NUMBER;
399 BEGIN
400 IF (MD_BATCHUM <> MD_FORMUM OR NVL(AQTY
401 ,0) <> 0) THEN
402 V_ACTUAL_QTY_ITEMUM := 0;
403 V_ACTUAL_QTY_ITEMUM := INV_CONVERT.INV_UM_CONVERT(ITEM_ID => cf_actual_qty_umformula.ITEM_ID
404 ,PRECISION => 5
405 ,FROM_QUANTITY => NVL(AQTY
406 ,0)
407 ,FROM_UNIT => MD_BATCHUM
408 ,TO_UNIT => MD_FORMUM
409 ,FROM_NAME => NULL
410 ,TO_NAME => NULL);
411 RETURN V_ACTUAL_QTY_ITEMUM;
412 ELSE
413 RETURN NVL(AQTY
414 ,0);
415 END IF;
416 RETURN NULL;
417 END CF_ACTUAL_QTY_UMFORMULA;
418
419 FUNCTION BEFOREREPORT RETURN BOOLEAN IS
420 CO_CODE VARCHAR2(4);
421 BEGIN
422 P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
423 /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
424 DELETE FROM GME_SCALE_DETAIL;
425 RETURN (TRUE);
426 RETURN NULL;
427 EXCEPTION
428 WHEN OTHERS THEN
429 RETURN (TRUE);
430 END BEFOREREPORT;
431
432 FUNCTION CF_ACCTNG_COST1FORMULA(DITEMID IN NUMBER
433 ,ACTUAL_CMPLT_DATE IN DATE
434 ,CF_UOM IN VARCHAR2
435 ,ITEMUM IN VARCHAR2
436 ,CF_PLAN_QTY_ITEMUM IN NUMBER) RETURN NUMBER IS
437 BEGIN
438 DECLARE
439 V_COST_BASIS NUMBER(1);
440 V_COST NUMBER;
441 V_GL_COST_MTHD VARCHAR2(4);
442 V_CO_CODE VARCHAR2(4);
443 V_RET_VAL NUMBER;
444 V_COST_MTHD VARCHAR2(1) := NULL;
445 V_CMPNTCLS_ID NUMBER := NULL;
446 V_ANALYSIS_CODE VARCHAR2(1) := NULL;
447 V_RETREIVE_IND NUMBER := NULL;
448 V_COST_CMPNTCLS_ID NUMBER;
449 V_COST_ANALYSIS_CODE VARCHAR2(1) := NULL;
450 V_ACCTG_COST NUMBER;
451 V_STND VARCHAR2(4) := 'STND';
452 COST NUMBER;
453 X_NUM_ROWS NUMBER;
454 V_QTY NUMBER;
455 MESSAGE_IND NUMBER;
456 MESSAGE_TEXT VARCHAR2(2000);
457 L_RETURN_STATUS VARCHAR2(4);
458 L_MSG_COUNT NUMBER;
459 L_MSG_DATA VARCHAR2(2000);
460 BEGIN
461 V_RET_VAL := GMF_CMCOMMON.GET_PROCESS_ITEM_COST(P_API_VERSION => 1.0
462 ,P_INIT_MSG_LIST => 'T'
463 ,P_ORGANIZATION_ID => P_ORG_ID
464 ,P_INVENTORY_ITEM_ID => DITEMID
465 ,P_TRANSACTION_DATE => TRUNC(ACTUAL_CMPLT_DATE)
466 ,P_DETAIL_FLAG => 1
467 ,P_COST_METHOD => V_GL_COST_MTHD
468 ,P_COST_COMPONENT_CLASS_ID => V_CMPNTCLS_ID
469 ,P_COST_ANALYSIS_CODE => V_ANALYSIS_CODE
470 ,X_TOTAL_COST => V_ACCTG_COST
471 ,X_NO_OF_ROWS => X_NUM_ROWS
472 ,X_RETURN_STATUS => L_RETURN_STATUS
473 ,X_MSG_COUNT => L_MSG_COUNT
474 ,X_MSG_DATA => L_MSG_DATA);
475 IF V_RET_VAL = 1 THEN
476 V_COST := V_ACCTG_COST;
477 ELSE
478 V_COST := 0;
479 END IF;
480 BEGIN
481 IF CF_UOM <> ITEMUM THEN
482 V_QTY := INV_CONVERT.INV_UM_CONVERT(ITEM_ID => DITEMID
483 ,PRECISION => 5
484 ,FROM_QUANTITY => NVL(CF_PLAN_QTY_ITEMUM
485 ,0)
486 ,FROM_UNIT => CF_UOM
487 ,TO_UNIT => ITEMUM
488 ,FROM_NAME => NULL
489 ,TO_NAME => NULL);
490 ELSE
491 V_QTY := NVL(CF_PLAN_QTY_ITEMUM
492 ,0);
493 END IF;
494 EXCEPTION
495 WHEN OTHERS THEN
496 GME_COMMON_PVT.COUNT_AND_GET(P_ENCODED => 'F'
497 ,X_DATA => MESSAGE_TEXT
498 ,X_COUNT => MESSAGE_IND);
499 /*SRW.MESSAGE(100
500 ,'Error in UOM Conversion ' || MESSAGE_TEXT)*/NULL;
501 /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
502 END;
503 COST := V_QTY * V_COST;
504 CP_ITEM_COST := V_COST;
505 RETURN (COST);
506 EXCEPTION
507 WHEN OTHERS THEN
508 RETURN NULL;
509 END;
510 RETURN NULL;
511 END CF_ACCTNG_COST1FORMULA;
512
513 FUNCTION CF_DELETE_TRANSFORMULA RETURN NUMBER IS
514 pragma autonomous_transaction;
515 BEGIN
516 DELETE FROM GME_SCALE_DETAIL;
517 commit;
518 RETURN (1);
519 END CF_DELETE_TRANSFORMULA;
520
521 FUNCTION AFTERREPORT RETURN BOOLEAN IS
522 BEGIN
523 DELETE FROM GME_SCALE_DETAIL;
524 /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
525 RETURN (TRUE);
526 END AFTERREPORT;
527
528 PROCEDURE HEADER IS
529 BEGIN
530 NULL;
531 END HEADER;
532
533 FUNCTION CF_UOMFORMULA(MD_FORMUM IN VARCHAR2
534 ,MD_BATCHUM IN VARCHAR2) RETURN CHAR IS
535 BEGIN
536 IF MD_FORMUM = ' ' THEN
537 RETURN MD_BATCHUM;
538 ELSE
539 RETURN MD_FORMUM;
540 END IF;
541 END CF_UOMFORMULA;
542
543 FUNCTION CF_CONTEXT_ORGFORMULA RETURN VARCHAR2 IS
544 CURSOR C_GET_ORG IS
545 SELECT
546 ORGANIZATION_CODE
547 FROM
548 MTL_PARAMETERS
549 WHERE ORGANIZATION_ID = P_ORG_ID;
550 L_ORG VARCHAR2(6);
551 BEGIN
552 OPEN C_GET_ORG;
553 FETCH C_GET_ORG
554 INTO L_ORG;
555 CLOSE C_GET_ORG;
556 L_ORG := '(' || L_ORG || ')';
557 RETURN L_ORG;
558 END CF_CONTEXT_ORGFORMULA;
559
560 FUNCTION BATCHUM_P RETURN VARCHAR2 IS
561 BEGIN
562 RETURN BATCHUM;
563 END BATCHUM_P;
564
565 FUNCTION CP_ITEM_COST_P RETURN NUMBER IS
566 BEGIN
567 RETURN CP_ITEM_COST;
568 END CP_ITEM_COST_P;
569
570 FUNCTION CP_BATCHRANGE_P RETURN VARCHAR2 IS
571 BEGIN
572 RETURN CP_BATCHRANGE;
573 END CP_BATCHRANGE_P;
574
575 FUNCTION CP_DATERANGE_P RETURN VARCHAR2 IS
576 BEGIN
577 RETURN CP_DATERANGE;
578 END CP_DATERANGE_P;
579
580 FUNCTION CP_ITEMRANGE_P RETURN VARCHAR2 IS
581 BEGIN
582 RETURN CP_ITEMRANGE;
583 END CP_ITEMRANGE_P;
584
585 END GME_GMEBCHYV_XMLP_PKG;
586
587