DBA Data[Home] [Help]

PACKAGE BODY: APPS.INV_INVSTMVT_XMLP_PKG

Source


1 PACKAGE BODY INV_INVSTMVT_XMLP_PKG AS
2 /* $Header: INVSTMVTB.pls 120.1.12020000.2 2013/02/18 07:42:49 abhissri ship $ */
3   FUNCTION CF_PARENT_MVT_TERR_CODEFORMULA(C_DISPATCH_TERR_EU_CODE IN VARCHAR2
4                                          ,C_DESTINATION_TERR_EU_CODE IN VARCHAR2) RETURN VARCHAR2 IS
5   BEGIN
6     IF P_MOVEMENT_TYPE = 'A' OR P_MOVEMENT_TYPE = 'AA' THEN
7       RETURN (C_DISPATCH_TERR_EU_CODE);
8     ELSIF P_MOVEMENT_TYPE = 'D' OR P_MOVEMENT_TYPE = 'DA' THEN
9       RETURN (C_DESTINATION_TERR_EU_CODE);
10     ELSE
11       RETURN (NULL);
12     END IF;
13     RETURN NULL;
14   END CF_PARENT_MVT_TERR_CODEFORMULA;
15 
16   PROCEDURE FORMAT_QUANTITY(P_PRECISION IN NUMBER) IS
17   BEGIN
18     /* SRW.ATTR.MASK := SRW.FORMATMASK_ATTR;
19     IF P_PRECISION = 0 THEN
20       --SRW.ATTR.FORMATMASK := '-NNN,NNN,NNN,NN0';
21     ELSIF P_PRECISION = 1 THEN
22       --SRW.ATTR.FORMATMASK := '-NNN,NNN,NNN,NN0.0';
23     ELSIF P_PRECISION = 2 THEN
24       --SRW.ATTR.FORMATMASK := '-NNN,NNN,NNN,NN0.00';
25     ELSIF P_PRECISION = 3 THEN
26       --SRW.ATTR.FORMATMASK := '-NN,NNN,NNN,NN0.000';
27     ELSIF P_PRECISION = 4 THEN
28       --SRW.ATTR.FORMATMASK := '-N,NNN,NNN,NN0.0000';
29     ELSIF P_PRECISION = 5 THEN
30       --SRW.ATTR.FORMATMASK := '-NNN,NNN,NN0.00000';
31     ELSIF P_PRECISION = 6 THEN
32       --SRW.ATTR.FORMATMASK := '-NN,NNN,NN0.000000';
33     ELSIF P_PRECISION = 7 THEN
34       --SRW.ATTR.FORMATMASK := '-NNNNNNNNNNN0';
35     ELSIF P_PRECISION = 8 THEN
36       --SRW.ATTR.FORMATMASK := '-NNNNNNNNNNN0.0';
37     ELSIF P_PRECISION = 9 THEN
38       --SRW.ATTR.FORMATMASK := '-NNNNNNNNNN0.00';
39     ELSIF P_PRECISION = 10 THEN
40       --SRW.ATTR.FORMATMASK := '-NNNNNNNNNN0.000';
41     ELSIF P_PRECISION = 11 THEN
42 --      SRW.ATTR.FORMATMASK := '-NNNNNNNNN0.0000';
43     ELSIF P_PRECISION = 12 THEN
44   --    SRW.ATTR.FORMATMASK := '-NNNNNNNN0.00000';
45     ELSIF P_PRECISION = 13 THEN
46     --  SRW.ATTR.FORMATMASK := '-NNNNNNN0.000000';
47     ELSE
48 --      SRW.ATTR.FORMATMASK := '-NNN,NNN,NNN,NN0.00';
49     END IF;
50     */
51     /*SRW.SET_ATTR(0
52                 ,SRW.ATTR)*/NULL;
53   END FORMAT_QUANTITY;
54 
55   FUNCTION CF_COMMODITY_FIELDFORMULA RETURN VARCHAR2 IS
56   BEGIN
57     RETURN (NULL);
58   END CF_COMMODITY_FIELDFORMULA;
59 
60   FUNCTION CF_1FORMULA RETURN VARCHAR2 IS
61   BEGIN
62     IF ((P_REPORT_OPTION = 'S/S' OR P_REPORT_OPTION = 'O/S') AND P_MOVEMENT_TYPE = 'A') THEN
63       CP_REPORT_TITLE := 'Arrival Movement Statistics Summary';
64     ELSIF (P_REPORT_OPTION = 'S/D' AND P_MOVEMENT_TYPE = 'A') THEN
65       CP_REPORT_TITLE := ' Arrival Movement Statistics Detail';
66     ELSIF ((P_REPORT_OPTION = 'S/S' OR P_REPORT_OPTION = 'O/S') AND P_MOVEMENT_TYPE = 'AA') THEN
67       CP_REPORT_TITLE := 'Arrival Adjustment Movement Statistics Summary';
68     ELSIF (P_REPORT_OPTION = 'S/D' AND P_MOVEMENT_TYPE = 'AA') THEN
69       CP_REPORT_TITLE := 'Arrival Adjustment Movement Statistics Detail';
70     ELSIF ((P_REPORT_OPTION = 'S/S' OR P_REPORT_OPTION = 'O/S') AND P_MOVEMENT_TYPE = 'D') THEN
71       CP_REPORT_TITLE := 'Dispatch Movement Statistics Summary';
72     ELSIF (P_REPORT_OPTION = 'S/D' AND P_MOVEMENT_TYPE = 'D') THEN
73       CP_REPORT_TITLE := 'Dispatch Movement Statistics Detail';
74     ELSIF ((P_REPORT_OPTION = 'S/S' OR P_REPORT_OPTION = 'O/S') AND P_MOVEMENT_TYPE = 'DA') THEN
75       CP_REPORT_TITLE := 'Dispatch Adjustment Movement Statistics Summary';
76     ELSIF (P_REPORT_OPTION = 'S/D' AND P_MOVEMENT_TYPE = 'DA') THEN
77       CP_REPORT_TITLE := 'Dispatch Adjustment Movement Statistics Detail';
78     END IF;
79     RETURN NULL;
80   END CF_1FORMULA;
81 
82   FUNCTION CF_INVOICEFORMULA(C_DOCUMENT_SOURCE_TYPE IN VARCHAR2
83                             ,C_INVOICE_REFERENCE IN VARCHAR2
84                             ,C_INVOICE_ID IN NUMBER
85                             ,C_MOVEMENT_TYPE IN VARCHAR2) RETURN CHAR IS
86   BEGIN
87     DECLARE
88       L_INVOICE VARCHAR2(50);
89     BEGIN
90       IF P_REPORT_OPTION = 'S/D' THEN
91         IF C_DOCUMENT_SOURCE_TYPE = 'MISC' THEN
92           L_INVOICE := C_INVOICE_REFERENCE;
93         ELSIF C_DOCUMENT_SOURCE_TYPE in ('PO','RTV') AND C_INVOICE_ID IS NOT NULL THEN
94           BEGIN
95             SELECT
96               INVOICE_NUM
97             INTO L_INVOICE
98             FROM
99               AP_INVOICES_ALL
100             WHERE INVOICE_ID = C_INVOICE_ID
101               AND ROWNUM < 2;
102           EXCEPTION
103             WHEN NO_DATA_FOUND THEN
104               L_INVOICE := NULL;
105           END;
106         ELSIF C_DOCUMENT_SOURCE_TYPE in ('SO','RMA') AND C_INVOICE_ID IS NOT NULL THEN
107           BEGIN
108             SELECT
109               TRX_NUMBER
110             INTO L_INVOICE
111             FROM
112               RA_CUSTOMER_TRX_ALL
113             WHERE CUSTOMER_TRX_ID = C_INVOICE_ID
114               AND ROWNUM < 2;
115           EXCEPTION
116             WHEN NO_DATA_FOUND THEN
117               IF C_MOVEMENT_TYPE = 'A' THEN
118                 BEGIN
119                   SELECT
120                     INVOICE_NUM
121                   INTO L_INVOICE
122                   FROM
123                     AP_INVOICES_ALL
124                   WHERE INVOICE_ID = C_INVOICE_ID
125                     AND ROWNUM < 2;
126                 EXCEPTION
127                   WHEN OTHERS THEN
128                     L_INVOICE := NULL;
129                 END;
130               ELSE
131                 L_INVOICE := NULL;
132               END IF;
133           END;
134         ELSE
135           L_INVOICE := NULL;
136         END IF;
137       ELSE
138         L_INVOICE := NULL;
139       END IF;
140       RETURN (L_INVOICE);
141     END;
142     RETURN NULL;
143   END CF_INVOICEFORMULA;
144 
145   FUNCTION CF_INVOICE_BATCHFORMULA(C_DOCUMENT_SOURCE_TYPE IN VARCHAR2
146                                   ,C_INVOICE_BATCH_REFERENCE IN VARCHAR2
147                                   ,C_INVOICE_BATCH_ID IN NUMBER) RETURN CHAR IS
148   BEGIN
149     DECLARE
150       L_INVOICE_BATCH VARCHAR2(50);
151     BEGIN
152       IF P_REPORT_OPTION = 'S/D' THEN
153         IF C_DOCUMENT_SOURCE_TYPE = 'MISC' THEN
154           L_INVOICE_BATCH := C_INVOICE_BATCH_REFERENCE;
155         ELSIF C_DOCUMENT_SOURCE_TYPE in ('PO','RTV') AND C_INVOICE_BATCH_ID IS NOT NULL THEN
156           BEGIN
157             SELECT
158               BATCH_NAME
159             INTO L_INVOICE_BATCH
160             FROM
161               AP_BATCHES_ALL
162             WHERE BATCH_ID = C_INVOICE_BATCH_ID
163               AND ROWNUM < 2;
164           EXCEPTION
165             WHEN NO_DATA_FOUND THEN
166               L_INVOICE_BATCH := NULL;
167           END;
168         ELSIF C_DOCUMENT_SOURCE_TYPE in ('SO','RMA') AND C_INVOICE_BATCH_ID IS NOT NULL THEN
169           BEGIN
170             SELECT
171               NAME
172             INTO L_INVOICE_BATCH
173             FROM
174               RA_BATCHES_ALL
175             WHERE BATCH_ID = C_INVOICE_BATCH_ID
176               AND ROWNUM < 2;
177           EXCEPTION
178             WHEN NO_DATA_FOUND THEN
179               L_INVOICE_BATCH := NULL;
180           END;
181         ELSE
182           L_INVOICE_BATCH := NULL;
183         END IF;
184       ELSE
185         L_INVOICE_BATCH := NULL;
186       END IF;
187       RETURN (L_INVOICE_BATCH);
188     END;
189     RETURN NULL;
190   END CF_INVOICE_BATCHFORMULA;
191 
192   FUNCTION CF_INVOICE_LINEFORMULA(C_DOCUMENT_SOURCE_TYPE IN VARCHAR2
193                                  ,C_INVOICE_LINE_REFERENCE IN VARCHAR2
194                                  ,C_MOVEMENT_TYPE IN VARCHAR2
195                                  ,C_DISTRIBUTION_LINE_NUMBER IN NUMBER
196                                  ,C_CUSTOMER_TRX_LINE_ID IN NUMBER) RETURN CHAR IS
197   BEGIN
198     DECLARE
199       L_INVOICE_LINE VARCHAR2(50);
200     BEGIN
201       IF P_REPORT_OPTION = 'S/D' THEN
202         IF C_DOCUMENT_SOURCE_TYPE = 'MISC' THEN
203           L_INVOICE_LINE := C_INVOICE_LINE_REFERENCE;
204         ELSIF (C_DOCUMENT_SOURCE_TYPE in ('PO','RTV') OR (C_DOCUMENT_SOURCE_TYPE = 'SO' AND C_MOVEMENT_TYPE = 'A')) THEN
205           L_INVOICE_LINE := C_DISTRIBUTION_LINE_NUMBER;
206         ELSIF C_DOCUMENT_SOURCE_TYPE in ('SO','RMA') THEN
207           BEGIN
208             SELECT
209               LINE_NUMBER
210             INTO L_INVOICE_LINE
211             FROM
212               RA_CUSTOMER_TRX_LINES_ALL
213             WHERE CUSTOMER_TRX_LINE_ID = C_CUSTOMER_TRX_LINE_ID
214               AND ROWNUM < 2;
215           EXCEPTION
216             WHEN NO_DATA_FOUND THEN
217               L_INVOICE_LINE := NULL;
218           END;
219         ELSE
220           L_INVOICE_LINE := NULL;
221         END IF;
222       ELSE
223         L_INVOICE_LINE := NULL;
224       END IF;
225       RETURN (L_INVOICE_LINE);
226     END;
227     RETURN NULL;
228   END CF_INVOICE_LINEFORMULA;
229 
230   FUNCTION CF_INVOICE_UOM_CODEFORMULA(C_CUSTOMER_TRX_LINE_ID IN NUMBER
231                                      ,C_TRANSACTION_UOM_CODE IN VARCHAR2) RETURN VARCHAR2 IS
232   BEGIN
233     DECLARE
234       L_INVOICE_UOM_CODE VARCHAR2(3);
235     BEGIN
236       IF P_REPORT_OPTION = 'S/D' THEN
237         IF C_CUSTOMER_TRX_LINE_ID IS NOT NULL THEN
238           BEGIN
239             SELECT
240               UOM_CODE
241             INTO L_INVOICE_UOM_CODE
242             FROM
243               RA_CUSTOMER_TRX_LINES_ALL
244             WHERE CUSTOMER_TRX_LINE_ID = C_CUSTOMER_TRX_LINE_ID;
245           EXCEPTION
246             WHEN NO_DATA_FOUND THEN
247               L_INVOICE_UOM_CODE := NULL;
248           END;
249         ELSE
250           L_INVOICE_UOM_CODE := C_TRANSACTION_UOM_CODE;
251         END IF;
252       ELSE
253         L_INVOICE_UOM_CODE := NULL;
254       END IF;
255       RETURN (L_INVOICE_UOM_CODE);
256     END;
257     RETURN NULL;
258   END CF_INVOICE_UOM_CODEFORMULA;
259 
260   FUNCTION CF_RECEIPT_NUMBERFORMULA(C_DOCUMENT_SOURCE_TYPE IN VARCHAR2
261                                    ,C_RECEIPT_REFERENCE IN VARCHAR2
262                                    ,C_PICK_SLIP_REFERENCE IN VARCHAR2
263                                    ,C_SHIPMENT_HEADER_ID IN NUMBER
264                                    ,C_SHIPMENT_REFERENCE IN VARCHAR2) RETURN VARCHAR2 IS
265   BEGIN
266     DECLARE
267       L_RECEIPT_NUMBER VARCHAR2(50);
268     BEGIN
269       IF P_REPORT_OPTION = 'S/D' THEN
270         IF C_DOCUMENT_SOURCE_TYPE = 'MISC' THEN
271           IF P_MOVEMENT_TYPE = 'A' OR P_MOVEMENT_TYPE = 'AA' THEN
272             L_RECEIPT_NUMBER := C_RECEIPT_REFERENCE;
273           ELSE
274             L_RECEIPT_NUMBER := C_PICK_SLIP_REFERENCE;
275           END IF;
276         ELSIF C_DOCUMENT_SOURCE_TYPE in ('PO','RTV','RMA') AND C_SHIPMENT_HEADER_ID IS NOT NULL THEN
277           BEGIN
278             SELECT
279               RECEIPT_NUM
280             INTO L_RECEIPT_NUMBER
281             FROM
282               RCV_SHIPMENT_HEADERS
283             WHERE SHIPMENT_HEADER_ID = C_SHIPMENT_HEADER_ID
284               AND ROWNUM < 2;
285           EXCEPTION
286             WHEN NO_DATA_FOUND THEN
287               L_RECEIPT_NUMBER := NULL;
288           END;
289         ELSIF C_DOCUMENT_SOURCE_TYPE = 'SO' THEN
290           L_RECEIPT_NUMBER := C_SHIPMENT_REFERENCE;
291         ELSE
292           L_RECEIPT_NUMBER := NULL;
293         END IF;
294       ELSE
295         L_RECEIPT_NUMBER := NULL;
296       END IF;
297       RETURN (L_RECEIPT_NUMBER);
298     END;
299     RETURN NULL;
300   END CF_RECEIPT_NUMBERFORMULA;
301 
302   FUNCTION CF_SHIPMENT_LINEFORMULA(C_DOCUMENT_SOURCE_TYPE IN VARCHAR2
303                                   ,C_SHIPMENT_LINE_REFERENCE IN VARCHAR2
304                                   ,C_SHIPMENT_LINE_ID IN NUMBER) RETURN VARCHAR2 IS
305   BEGIN
306     DECLARE
307       L_SHIPMENT_LINE VARCHAR2(30);
308     BEGIN
309       IF P_REPORT_OPTION = 'S/D' THEN
310         IF C_DOCUMENT_SOURCE_TYPE = 'MISC' THEN
311           L_SHIPMENT_LINE := C_SHIPMENT_LINE_REFERENCE;
312         ELSIF C_DOCUMENT_SOURCE_TYPE in ('PO','RTV') THEN
313           BEGIN
314             SELECT
315               LINE_NUM
316             INTO L_SHIPMENT_LINE
317             FROM
318               RCV_SHIPMENT_LINES
319             WHERE SHIPMENT_LINE_ID = C_SHIPMENT_LINE_ID
320               AND ROWNUM < 2;
321           EXCEPTION
322             WHEN NO_DATA_FOUND THEN
323               L_SHIPMENT_LINE := NULL;
324           END;
325         ELSE
326           L_SHIPMENT_LINE := NULL;
327         END IF;
328       ELSE
329         L_SHIPMENT_LINE := NULL;
330       END IF;
331       RETURN (L_SHIPMENT_LINE);
332     END;
333     RETURN NULL;
334   END CF_SHIPMENT_LINEFORMULA;
335 
336   FUNCTION CF_SHIPMENT_NUMBERFORMULA(C_DOCUMENT_SOURCE_TYPE IN VARCHAR2
337                                     ,C_SHIPMENT_REFERENCE IN VARCHAR2
338                                     ,C_PO_LINE_LOCATION_ID IN NUMBER) RETURN VARCHAR2 IS
339   BEGIN
340     DECLARE
341       L_SHIPMENT_NUMBER VARCHAR2(50);
342     BEGIN
343       IF P_REPORT_OPTION = 'S/D' THEN
344         IF C_DOCUMENT_SOURCE_TYPE = 'MISC' THEN
345           L_SHIPMENT_NUMBER := C_SHIPMENT_REFERENCE;
346         ELSIF C_DOCUMENT_SOURCE_TYPE in ('PO','RTV') THEN
347           BEGIN
348             SELECT
349               SHIPMENT_NUM
350             INTO L_SHIPMENT_NUMBER
351             FROM
352               PO_LINE_LOCATIONS_ALL
353             WHERE LINE_LOCATION_ID = C_PO_LINE_LOCATION_ID
354               AND ROWNUM < 2;
355           EXCEPTION
356             WHEN NO_DATA_FOUND THEN
357               L_SHIPMENT_NUMBER := NULL;
358           END;
359         ELSE
360           L_SHIPMENT_NUMBER := NULL;
361         END IF;
362       ELSE
363         L_SHIPMENT_NUMBER := NULL;
364       END IF;
365       RETURN (L_SHIPMENT_NUMBER);
366     END;
367     RETURN NULL;
368   END CF_SHIPMENT_NUMBERFORMULA;
369 
370   FUNCTION CF_SOURCE_LINE_NUMBERFORMULA(C_DOCUMENT_SOURCE_TYPE IN VARCHAR2
371                                        ,C_DOCUMENT_LINE_REFERENCE IN VARCHAR2
372                                        ,C_PO_LINE_ID IN NUMBER
373                                        ,C_ORDER_LINE_ID IN NUMBER
374                                        ,C_MOVEMENT_TYPE IN VARCHAR2
375                                        ,C_REQUISITION_LINE_ID IN NUMBER) RETURN VARCHAR2 IS
376   BEGIN
377     DECLARE
378       L_SOURCE_LINE_NUMBER VARCHAR2(30);
379     BEGIN
380       IF P_REPORT_OPTION = 'S/D' THEN
381         IF C_DOCUMENT_SOURCE_TYPE = 'MISC' THEN
382           L_SOURCE_LINE_NUMBER := C_DOCUMENT_LINE_REFERENCE;
383         ELSIF C_DOCUMENT_SOURCE_TYPE in ('PO','RTV') THEN
384           BEGIN
385             SELECT
386               LINE_NUM
387             INTO L_SOURCE_LINE_NUMBER
388             FROM
389               PO_LINES_ALL
390             WHERE PO_LINE_ID = C_PO_LINE_ID
391               AND ROWNUM < 2;
392           EXCEPTION
393             WHEN NO_DATA_FOUND THEN
394               L_SOURCE_LINE_NUMBER := NULL;
395           END;
396         ELSIF C_DOCUMENT_SOURCE_TYPE in ('SO','RMA') THEN
397 --        Bugfix 16214456: OE Schema will be obsoleted now.
398 --          IF P_OE_OR_OM = 'OE' THEN
399 --            BEGIN
400 --              SELECT
401 --                LINE_NUMBER
402 --              INTO L_SOURCE_LINE_NUMBER
403 --              FROM
404 --                SO_LINES_ALL
405 --              WHERE LINE_ID = C_ORDER_LINE_ID
406 --                AND ROWNUM < 2;
407 --            EXCEPTION
408 --              WHEN NO_DATA_FOUND THEN
409 --                L_SOURCE_LINE_NUMBER := NULL;
410 --            END;
411 --          ELSE
412             BEGIN
413               SELECT
414                 LINE_NUMBER
415               INTO L_SOURCE_LINE_NUMBER
416               FROM
417                 OE_ORDER_LINES_ALL
418               WHERE LINE_ID = C_ORDER_LINE_ID
419                 AND ROWNUM < 2;
420             EXCEPTION
421               WHEN NO_DATA_FOUND THEN
422                 L_SOURCE_LINE_NUMBER := NULL;
423             END;
424 --          END IF;
425         ELSIF C_DOCUMENT_SOURCE_TYPE = 'IO' THEN
426           IF C_MOVEMENT_TYPE in ('A','AA') THEN
427             BEGIN
428               SELECT
429                 LINE_NUM
430               INTO L_SOURCE_LINE_NUMBER
431               FROM
432                 PO_REQUISITION_LINES_ALL
433               WHERE REQUISITION_LINE_ID = C_REQUISITION_LINE_ID
434                 AND ROWNUM < 2;
435             EXCEPTION
436               WHEN NO_DATA_FOUND THEN
437                 L_SOURCE_LINE_NUMBER := NULL;
438             END;
439           ELSE
440 --        Bugfix 16214456: OE Schema will be obsoleted now.
441 --            IF P_OE_OR_OM = 'OE' THEN
442 --              BEGIN
443 --                SELECT
444 --                  LINE_NUMBER
445 --                INTO L_SOURCE_LINE_NUMBER
446 --                FROM
447 --                  SO_LINES_ALL
448 --                WHERE LINE_ID = C_ORDER_LINE_ID
449 --                  AND ROWNUM < 2;
450 --              EXCEPTION
451 --                WHEN NO_DATA_FOUND THEN
452 --                  L_SOURCE_LINE_NUMBER := NULL;
453 --              END;
454 --            ELSE
455               BEGIN
456                 SELECT
457                   LINE_NUMBER
458                 INTO L_SOURCE_LINE_NUMBER
459                 FROM
460                   OE_ORDER_LINES_ALL
461                 WHERE LINE_ID = C_ORDER_LINE_ID
462                   AND ROWNUM < 2;
463               EXCEPTION
464                 WHEN NO_DATA_FOUND THEN
465                   L_SOURCE_LINE_NUMBER := NULL;
466               END;
467 --            END IF;
468           END IF;
469         ELSE
470           L_SOURCE_LINE_NUMBER := NULL;
471         END IF;
472       ELSE
473         L_SOURCE_LINE_NUMBER := NULL;
474       END IF;
475       RETURN (L_SOURCE_LINE_NUMBER);
476     END;
477     RETURN NULL;
478   END CF_SOURCE_LINE_NUMBERFORMULA;
479 
480   FUNCTION CF_SOURCE_NUMBERFORMULA(C_DOCUMENT_SOURCE_TYPE IN VARCHAR2
481                                   ,C_DOCUMENT_REFERENCE IN VARCHAR2
482                                   ,C_PO_HEADER_ID IN NUMBER
483                                   ,C_ORDER_HEADER_ID IN NUMBER
484                                   ,C_MOVEMENT_TYPE IN VARCHAR2
485                                   ,C_REQUISITION_HEADER_ID IN NUMBER
486                                   ,C_MTL_TRANSACTION_ID IN NUMBER) RETURN VARCHAR2 IS
487   BEGIN
488     DECLARE
489       L_SOURCE_NUMBER VARCHAR2(50);
490     BEGIN
491       IF P_REPORT_OPTION = 'S/D' THEN
492         IF C_DOCUMENT_SOURCE_TYPE = 'MISC' THEN
493           L_SOURCE_NUMBER := C_DOCUMENT_REFERENCE;
494         ELSIF C_DOCUMENT_SOURCE_TYPE in ('PO','RTV') THEN
495           BEGIN
496             SELECT
497               SEGMENT1
498             INTO L_SOURCE_NUMBER
499             FROM
500               PO_HEADERS_ALL
501             WHERE PO_HEADER_ID = C_PO_HEADER_ID
502               AND ROWNUM < 2;
503           EXCEPTION
504             WHEN NO_DATA_FOUND THEN
505               L_SOURCE_NUMBER := NULL;
506           END;
507         ELSIF C_DOCUMENT_SOURCE_TYPE in ('SO','RMA') THEN
508 --        Bugfix 16214456: OE Schema will be obsoleted now.
509 --          IF P_OE_OR_OM = 'OE' THEN
510 --            BEGIN
511 --              SELECT
512 --                ORDER_NUMBER
513 --              INTO L_SOURCE_NUMBER
514 --              FROM
515 --                SO_HEADERS_ALL
516 --              WHERE HEADER_ID = C_ORDER_HEADER_ID
517 --                AND ROWNUM < 2;
518 --            EXCEPTION
519 --              WHEN NO_DATA_FOUND THEN
520 --                L_SOURCE_NUMBER := NULL;
521 --            END;
522 --          ELSE
523             BEGIN
524               SELECT
525                 ORDER_NUMBER
526               INTO L_SOURCE_NUMBER
527               FROM
528                 OE_ORDER_HEADERS_ALL
529               WHERE HEADER_ID = C_ORDER_HEADER_ID
530                 AND ROWNUM < 2;
531             EXCEPTION
532               WHEN NO_DATA_FOUND THEN
533                 L_SOURCE_NUMBER := NULL;
534             END;
535 --          END IF;
536         ELSIF C_DOCUMENT_SOURCE_TYPE = 'IO' THEN
537           IF C_MOVEMENT_TYPE in ('A','AA') THEN
538             BEGIN
539               SELECT
540                 SEGMENT1
541               INTO L_SOURCE_NUMBER
542               FROM
543                 PO_REQUISITION_HEADERS_ALL
544               WHERE REQUISITION_HEADER_ID = C_REQUISITION_HEADER_ID
545                 AND ROWNUM < 2;
546             EXCEPTION
547               WHEN NO_DATA_FOUND THEN
548                 L_SOURCE_NUMBER := NULL;
549             END;
550           ELSE
551 --        Bugfix 16214456: OE Schema will be obsoleted now.
552 --            IF P_OE_OR_OM = 'OE' THEN
553 --              BEGIN
554 --                SELECT
555 --                  ORDER_NUMBER
556 --                INTO L_SOURCE_NUMBER
557 --                FROM
558 --                  SO_HEADERS_ALL
559 --                WHERE HEADER_ID = C_ORDER_HEADER_ID
560 --                  AND ROWNUM < 2;
561 --              EXCEPTION
562 --                WHEN NO_DATA_FOUND THEN
563 --                  L_SOURCE_NUMBER := NULL;
564 --              END;
565 --            ELSE
566               BEGIN
567                 SELECT
568                   ORDER_NUMBER
569                 INTO L_SOURCE_NUMBER
570                 FROM
571                   OE_ORDER_HEADERS_ALL
572                 WHERE HEADER_ID = C_ORDER_HEADER_ID
573                   AND ROWNUM < 2;
574               EXCEPTION
575                 WHEN NO_DATA_FOUND THEN
576                   L_SOURCE_NUMBER := NULL;
577               END;
578 --            END IF;
579           END IF;
580         ELSIF C_DOCUMENT_SOURCE_TYPE = 'INV' THEN
581           L_SOURCE_NUMBER := TO_CHAR(C_MTL_TRANSACTION_ID);
582         ELSE
583           L_SOURCE_NUMBER := NULL;
584         END IF;
585       ELSE
586         L_SOURCE_NUMBER := NULL;
587       END IF;
588       RETURN (L_SOURCE_NUMBER);
589     END;
590     RETURN NULL;
591   END CF_SOURCE_NUMBERFORMULA;
592 
593   FUNCTION CF_TRADER_NAMEFORMULA(C_DOCUMENT_SOURCE_TYPE IN VARCHAR2
594                                 ,C_CUSTOMER_NAME IN VARCHAR2
595                                 ,C_SHIP_TO_CUSTOMER_ID IN NUMBER
596                                 ,C_VENDOR_NAME IN VARCHAR2
597                                 ,C_FROM_ORGANIZATION_ID IN NUMBER
598                                 ,C_TO_ORGANIZATION_ID IN NUMBER
599                                 ,C_TRANSACTING_FROM_ORG IN VARCHAR2
600                                 ,C_TRANSACTING_TO_ORG IN VARCHAR2) RETURN VARCHAR2 IS
601   BEGIN
602     DECLARE
603       L_TRADER_NAME VARCHAR2(240);
604     BEGIN
605       IF P_REPORT_OPTION = 'S/D' THEN
606         IF C_DOCUMENT_SOURCE_TYPE in ('SO','RMA') THEN
607           IF C_CUSTOMER_NAME IS NOT NULL THEN
608             L_TRADER_NAME := C_CUSTOMER_NAME;
609           ELSE
610             IF C_SHIP_TO_CUSTOMER_ID IS NOT NULL THEN
611               BEGIN
612                 SELECT
613                   HP.PARTY_NAME
614                 INTO L_TRADER_NAME
615                 FROM
616                   HZ_PARTIES HP,
617                   HZ_CUST_ACCOUNTS HCA
618                 WHERE HP.PARTY_ID = HCA.PARTY_ID
619                   AND HCA.CUST_ACCOUNT_ID = C_SHIP_TO_CUSTOMER_ID;
620               EXCEPTION
621                 WHEN NO_DATA_FOUND THEN
622                   L_TRADER_NAME := NULL;
623               END;
624             ELSE
625               L_TRADER_NAME := NULL;
626             END IF;
627           END IF;
628         ELSIF C_DOCUMENT_SOURCE_TYPE in ('PO','RTV') THEN
629           L_TRADER_NAME := C_VENDOR_NAME;
630         ELSIF C_DOCUMENT_SOURCE_TYPE in ('IO','INV') THEN
631           IF P_MOVEMENT_TYPE in ('A','AA') THEN
632             IF C_FROM_ORGANIZATION_ID IS NOT NULL THEN
633               BEGIN
634                 SELECT
635                   NAME
636                 INTO L_TRADER_NAME
637                 FROM
638                   HR_ORGANIZATION_UNITS
639                 WHERE ORGANIZATION_ID = C_FROM_ORGANIZATION_ID
640                   AND ROWNUM < 2;
641               EXCEPTION
642                 WHEN NO_DATA_FOUND THEN
643                   L_TRADER_NAME := NULL;
644               END;
645             ELSE
646               L_TRADER_NAME := NULL;
647             END IF;
648           ELSE
649             IF C_TO_ORGANIZATION_ID IS NOT NULL THEN
650               BEGIN
651                 SELECT
652                   NAME
653                 INTO L_TRADER_NAME
654                 FROM
655                   HR_ORGANIZATION_UNITS
656                 WHERE ORGANIZATION_ID = C_TO_ORGANIZATION_ID
657                   AND ROWNUM < 2;
658               EXCEPTION
659                 WHEN NO_DATA_FOUND THEN
660                   L_TRADER_NAME := NULL;
661               END;
662             ELSE
663               L_TRADER_NAME := NULL;
664             END IF;
665           END IF;
666         ELSIF C_DOCUMENT_SOURCE_TYPE = 'MISC' THEN
667           IF C_CUSTOMER_NAME IS NOT NULL THEN
668             L_TRADER_NAME := C_CUSTOMER_NAME;
669           ELSIF C_VENDOR_NAME IS NOT NULL THEN
670             L_TRADER_NAME := C_VENDOR_NAME;
671           ELSIF C_TRANSACTING_FROM_ORG IS NOT NULL THEN
672             L_TRADER_NAME := C_TRANSACTING_FROM_ORG;
673           ELSIF C_TRANSACTING_TO_ORG IS NOT NULL THEN
674             L_TRADER_NAME := C_TRANSACTING_TO_ORG;
675           ELSE
676             L_TRADER_NAME := NULL;
677           END IF;
678         ELSE
679           L_TRADER_NAME := NULL;
680         END IF;
681       ELSE
682         L_TRADER_NAME := NULL;
683       END IF;
684       RETURN (L_TRADER_NAME);
685     END;
686     RETURN NULL;
687   END CF_TRADER_NAMEFORMULA;
688 
689   FUNCTION CF_TRADER_NUMBERFORMULA(C_DOCUMENT_SOURCE_TYPE IN VARCHAR2
690                                   ,C_CUSTOMER_NUMBER IN VARCHAR2
691                                   ,C_SHIP_TO_CUSTOMER_ID IN NUMBER
692                                   ,C_VENDOR_NUMBER IN VARCHAR2
693                                   ,C_TRANSACTING_FROM_ORG IN VARCHAR2
694                                   ,C_TRANSACTING_TO_ORG IN VARCHAR2) RETURN VARCHAR2 IS
695   BEGIN
696     DECLARE
697       L_TRADER_NUMBER VARCHAR2(50);
698     BEGIN
699       IF P_REPORT_OPTION = 'S/D' THEN
700         IF C_DOCUMENT_SOURCE_TYPE in ('SO','RMA') THEN
701           IF C_CUSTOMER_NUMBER IS NOT NULL THEN
702             L_TRADER_NUMBER := C_CUSTOMER_NUMBER;
703           ELSE
704             IF C_SHIP_TO_CUSTOMER_ID IS NOT NULL THEN
705               BEGIN
706                 SELECT
707                   HCA.ACCOUNT_NUMBER
708                 INTO L_TRADER_NUMBER
709                 FROM
710                   HZ_PARTIES HP,
711                   HZ_CUST_ACCOUNTS HCA
712                 WHERE HP.PARTY_ID = HCA.PARTY_ID
713                   AND HCA.CUST_ACCOUNT_ID = C_SHIP_TO_CUSTOMER_ID;
714               EXCEPTION
715                 WHEN NO_DATA_FOUND THEN
716                   L_TRADER_NUMBER := NULL;
717               END;
718             ELSE
719               L_TRADER_NUMBER := NULL;
720             END IF;
721           END IF;
722         ELSIF C_DOCUMENT_SOURCE_TYPE in ('PO','RTV') THEN
723           L_TRADER_NUMBER := C_VENDOR_NUMBER;
724         ELSIF C_DOCUMENT_SOURCE_TYPE in ('IO','INV') THEN
725           L_TRADER_NUMBER := NULL;
726         ELSIF C_DOCUMENT_SOURCE_TYPE = 'MISC' THEN
727           IF C_CUSTOMER_NUMBER IS NOT NULL THEN
728             L_TRADER_NUMBER := C_CUSTOMER_NUMBER;
729           ELSIF C_VENDOR_NUMBER IS NOT NULL THEN
730             L_TRADER_NUMBER := C_VENDOR_NUMBER;
731           ELSIF C_TRANSACTING_FROM_ORG IS NOT NULL THEN
732             L_TRADER_NUMBER := NULL;
733           ELSIF C_TRANSACTING_TO_ORG IS NOT NULL THEN
734             L_TRADER_NUMBER := NULL;
735           ELSE
736             L_TRADER_NUMBER := NULL;
737           END IF;
738         ELSE
739           L_TRADER_NUMBER := NULL;
740         END IF;
741       ELSE
742         L_TRADER_NUMBER := NULL;
743       END IF;
744       RETURN (L_TRADER_NUMBER);
745     END;
746     RETURN NULL;
747   END CF_TRADER_NUMBERFORMULA;
748 
749   FUNCTION CF_TRADER_SITEFORMULA(C_DOCUMENT_SOURCE_TYPE IN VARCHAR2
750                                 ,C_CUSTOMER_LOCATION IN VARCHAR2
751                                 ,C_SHIP_TO_SITE_USE_ID IN NUMBER
752                                 ,C_VENDOR_SITE IN VARCHAR2
753                                 ,C_CUSTOMER_NAME IN VARCHAR2
754                                 ,C_VENDOR_NAME IN VARCHAR2
755                                 ,C_TRANSACTING_FROM_ORG IN VARCHAR2
756                                 ,C_TRANSACTING_TO_ORG IN VARCHAR2) RETURN VARCHAR2 IS
757   BEGIN
758     DECLARE
759       L_TRADER_SITE VARCHAR2(50);
760     BEGIN
761       IF P_REPORT_OPTION = 'S/D' THEN
762         IF C_DOCUMENT_SOURCE_TYPE in ('SO','RMA') THEN
763           IF C_CUSTOMER_LOCATION IS NOT NULL THEN
764             L_TRADER_SITE := C_CUSTOMER_LOCATION;
765           ELSIF C_SHIP_TO_SITE_USE_ID IS NOT NULL THEN
766             BEGIN
767               SELECT
768                 LOCATION
769               INTO L_TRADER_SITE
770               FROM
771                 HZ_CUST_SITE_USES_ALL
772               WHERE SITE_USE_ID = C_SHIP_TO_SITE_USE_ID;
773             EXCEPTION
774               WHEN NO_DATA_FOUND THEN
775                 L_TRADER_SITE := NULL;
776             END;
777           ELSE
778             L_TRADER_SITE := NULL;
779           END IF;
780         ELSIF C_DOCUMENT_SOURCE_TYPE in ('PO','RTV') THEN
781           L_TRADER_SITE := C_VENDOR_SITE;
782         ELSIF C_DOCUMENT_SOURCE_TYPE in ('IO','INV') THEN
783           L_TRADER_SITE := NULL;
784         ELSIF C_DOCUMENT_SOURCE_TYPE = 'MISC' THEN
785           IF C_CUSTOMER_NAME IS NOT NULL THEN
786             L_TRADER_SITE := C_CUSTOMER_LOCATION;
787           ELSIF C_VENDOR_NAME IS NOT NULL THEN
788             L_TRADER_SITE := C_VENDOR_SITE;
789           ELSIF C_TRANSACTING_FROM_ORG IS NOT NULL THEN
790             L_TRADER_SITE := NULL;
791           ELSIF C_TRANSACTING_TO_ORG IS NOT NULL THEN
792             L_TRADER_SITE := NULL;
793           ELSE
794             L_TRADER_SITE := NULL;
795           END IF;
796         ELSE
797           L_TRADER_SITE := NULL;
798         END IF;
799       ELSE
800         L_TRADER_SITE := NULL;
801       END IF;
802       RETURN (L_TRADER_SITE);
803     END;
804     RETURN NULL;
805   END CF_TRADER_SITEFORMULA;
806 
807   FUNCTION CF_TRADER_TYPEFORMULA(C_DOCUMENT_SOURCE_TYPE IN VARCHAR2
808                                 ,C_CUSTOMER_NAME IN VARCHAR2
809                                 ,C_VENDOR_NAME IN VARCHAR2
810                                 ,C_TRANSACTING_FROM_ORG IN VARCHAR2
811                                 ,C_TRANSACTING_TO_ORG IN VARCHAR2) RETURN VARCHAR2 IS
812   BEGIN
813     DECLARE
814       L_TRADER_TYPE VARCHAR2(20);
815     BEGIN
816       IF P_REPORT_OPTION = 'S/D' THEN
817         IF C_DOCUMENT_SOURCE_TYPE in ('SO','RMA') THEN
818           L_TRADER_TYPE := 'Customer';
819         ELSIF C_DOCUMENT_SOURCE_TYPE in ('PO','RTV') THEN
820           L_TRADER_TYPE := 'Vendor';
821         ELSIF C_DOCUMENT_SOURCE_TYPE in ('IO','INV') THEN
822           L_TRADER_TYPE := 'Organization';
823         ELSIF C_DOCUMENT_SOURCE_TYPE = 'MISC' THEN
824           IF C_CUSTOMER_NAME IS NOT NULL THEN
825             L_TRADER_TYPE := 'Customer';
826           ELSIF C_VENDOR_NAME IS NOT NULL THEN
827             L_TRADER_TYPE := 'Vendor';
828           ELSIF C_TRANSACTING_FROM_ORG IS NOT NULL OR C_TRANSACTING_TO_ORG IS NOT NULL THEN
829             L_TRADER_TYPE := 'Organization';
830           ELSE
831             L_TRADER_TYPE := NULL;
832           END IF;
833         ELSE
834           L_TRADER_TYPE := NULL;
835         END IF;
836       ELSE
837         L_TRADER_TYPE := NULL;
838       END IF;
839       RETURN (L_TRADER_TYPE);
840     END;
841     RETURN NULL;
842   END CF_TRADER_TYPEFORMULA;
843 
844   FUNCTION AFTERREPORT(CS_NO_COUNT IN NUMBER) RETURN BOOLEAN IS
845   BEGIN
846     IF P_REPORT_OPTION = 'O/S' THEN
847       IF CS_NO_COUNT <> 0 THEN
848         UPDATE
849           MTL_MOVEMENT_STATISTICS
850         SET
851           MOVEMENT_STATUS = 'F'
852           ,REPORT_REFERENCE = TO_CHAR(P_LEGAL_ENTITY_ID) || P_ZONE_CODE || P_PERIOD_NAME || P_USAGE_TYPE || P_STAT_TYPE || P_MOVEMENT_TYPE
853         WHERE ENTITY_ORG_ID = P_LEGAL_ENTITY_ID
854           AND ZONE_CODE = P_ZONE_CODE
855           AND PERIOD_NAME = P_PERIOD_NAME
856           AND USAGE_TYPE = P_USAGE_TYPE
857           AND STAT_TYPE = P_STAT_TYPE
858           AND MOVEMENT_TYPE = P_MOVEMENT_TYPE
859           AND MOVEMENT_STATUS = 'V';
860       END IF;
861       COMMIT;
862     END IF;
863     BEGIN
864       /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
865     EXCEPTION
866       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
867         /*SRW.MESSAGE(1
868                    ,'Failed in srwexit')*/NULL;
869     END;
870     RETURN (TRUE);
871   END AFTERREPORT;
872 
873   FUNCTION CF_PARENT_MVT_QUANTITYFORMULA(CS_ALTERNATE_QUANTITY IN VARCHAR2
874                                         ,CS_TRANSACTION_QUANTITY IN VARCHAR2) RETURN NUMBER IS
875   BEGIN
876     IF CS_ALTERNATE_QUANTITY IS NULL THEN
877       RETURN (CS_TRANSACTION_QUANTITY);
878     ELSE
879       RETURN (CS_ALTERNATE_QUANTITY);
880     END IF;
881   END CF_PARENT_MVT_QUANTITYFORMULA;
882 
883   FUNCTION CF_PARENT_MVT_UOMFORMULA(C_ALTERNATE_UOM_CODE IN VARCHAR2
884                                    ,C_TRANSACTION_UOM_CODE IN VARCHAR2) RETURN CHAR IS
885   BEGIN
886     IF C_ALTERNATE_UOM_CODE IS NULL THEN
887       RETURN (C_TRANSACTION_UOM_CODE);
888     ELSE
889       RETURN (C_ALTERNATE_UOM_CODE);
890     END IF;
891   END CF_PARENT_MVT_UOMFORMULA;
892 
893   FUNCTION CF_STATISTICAL_VALUE_RFORMUL(CS_STATISTICAL_VALUE IN VARCHAR2) RETURN NUMBER IS
894     L_STAT_VALUE NUMBER;
895   BEGIN
896     L_STAT_VALUE := INV_MGD_MVT_UTILS_PKG.ROUND_NUMBER(P_NUMBER => CS_STATISTICAL_VALUE
897                                                       ,P_PRECISION => P_REP_PRECISION
898                                                       ,P_ROUNDING_METHOD => P_REP_ROUNDING);
899     RETURN (L_STAT_VALUE);
900   END CF_STATISTICAL_VALUE_RFORMUL;
901 
902   FUNCTION CF_TRANSACTION_VALUE_RFORMUL(CS_TRANSACTION_VALUE IN VARCHAR2) RETURN NUMBER IS
903     L_TRANS_VALUE NUMBER;
904   BEGIN
905     L_TRANS_VALUE := INV_MGD_MVT_UTILS_PKG.ROUND_NUMBER(P_NUMBER => CS_TRANSACTION_VALUE
906                                                        ,P_PRECISION => P_REP_PRECISION
907                                                        ,P_ROUNDING_METHOD => P_REP_ROUNDING);
908     RETURN (L_TRANS_VALUE);
909   END CF_TRANSACTION_VALUE_RFORMUL;
910 
911   FUNCTION CF_INVOICE_LINE_EXT_VAL_RFORMU(CS_INVOICE_VALUE IN VARCHAR2
912                                          ,CF_PRECISION_TRX IN NUMBER) RETURN NUMBER IS
913   BEGIN
914     RETURN (ROUND(CS_INVOICE_VALUE
915                 ,CF_PRECISION_TRX));
916   END CF_INVOICE_LINE_EXT_VAL_RFORMU;
917 
918   FUNCTION CF_DOCUMENT_LINE_EXT_VAL_RFORM(CS_DOC_VALUE IN VARCHAR2
919                                          ,CF_PRECISION_TRX IN NUMBER) RETURN NUMBER IS
920   BEGIN
921     RETURN (ROUND(CS_DOC_VALUE
922                 ,CF_PRECISION_TRX));
923   END CF_DOCUMENT_LINE_EXT_VAL_RFORM;
924 
925   FUNCTION CF_REPORT_TRANSACTION_VAL_RFOR(CS_REPORT_TRANSACTION_VAL IN NUMBER) RETURN NUMBER IS
926     L_REP_TRANS_VALUE NUMBER;
927   BEGIN
928     L_REP_TRANS_VALUE := INV_MGD_MVT_UTILS_PKG.ROUND_NUMBER(P_NUMBER => CS_REPORT_TRANSACTION_VAL
929                                                            ,P_PRECISION => P_REP_PRECISION
930                                                            ,P_ROUNDING_METHOD => P_REP_ROUNDING);
931     RETURN (L_REP_TRANS_VALUE);
932   END CF_REPORT_TRANSACTION_VAL_RFOR;
933 
934   FUNCTION CF_REPORT_STATISTICAL_VAL_RFOR(CS_REPORT_STATISTICAL_VAL IN NUMBER) RETURN NUMBER IS
935     L_REP_STAT_VALUE NUMBER;
936   BEGIN
937     L_REP_STAT_VALUE := INV_MGD_MVT_UTILS_PKG.ROUND_NUMBER(P_NUMBER => CS_REPORT_STATISTICAL_VAL
938                                                           ,P_PRECISION => P_REP_PRECISION
939                                                           ,P_ROUNDING_METHOD => P_REP_ROUNDING);
940     RETURN (L_REP_STAT_VALUE);
941   END CF_REPORT_STATISTICAL_VAL_RFOR;
942 
943   FUNCTION CF_OUTSIDE_VALUE_RFORMULA(CS_OUTSIDE_VALUE IN VARCHAR2
944                                     ,CF_PRECISION_TRX IN NUMBER) RETURN NUMBER IS
945   BEGIN
946     RETURN (ROUND(CS_OUTSIDE_VALUE
947                 ,CF_PRECISION_TRX));
948   END CF_OUTSIDE_VALUE_RFORMULA;
949 
950   FUNCTION AFTERPFORM RETURN BOOLEAN IS
951   BEGIN
952     --Bugfix 16214456: OE schema is getting obsoleted. Hard coding to ONT.
953     --P_OE_OR_OM := OE_INSTALL.GET_ACTIVE_PRODUCT;
954     P_OE_OR_OM := 'ONT';
955     RETURN (TRUE);
956   END AFTERPFORM;
957 
958   FUNCTION CF_PRECISION_TRXFORMULA(C_MOVEMENT_CURRENCY_CODE IN VARCHAR2) RETURN NUMBER IS
959     L_PRECISION_TRX NUMBER;
960   BEGIN
961     SELECT
962       PRECISION
963     INTO L_PRECISION_TRX
964     FROM
965       FND_CURRENCIES
966     WHERE CURRENCY_CODE = C_MOVEMENT_CURRENCY_CODE;
967     RETURN L_PRECISION_TRX;
968   END CF_PRECISION_TRXFORMULA;
969 
970   FUNCTION CF_RELEASE_NUMBERFORMULA(C_RCV_TRANSACTION_ID IN NUMBER) RETURN NUMBER IS
971   BEGIN
972     DECLARE
973       L_PO_RELEASE_ID NUMBER;
974       L_RELEASE_NUM NUMBER;
975     BEGIN
976       IF C_RCV_TRANSACTION_ID IS NOT NULL THEN
977         BEGIN
978           SELECT
979             PO_RELEASE_ID
980           INTO L_PO_RELEASE_ID
981           FROM
982             RCV_TRANSACTIONS
983           WHERE TRANSACTION_ID = C_RCV_TRANSACTION_ID;
984         EXCEPTION
985           WHEN NO_DATA_FOUND THEN
986             L_RELEASE_NUM := NULL;
987             RETURN (L_RELEASE_NUM);
988         END;
989         IF L_PO_RELEASE_ID IS NOT NULL THEN
990           SELECT
991             RELEASE_NUM
992           INTO L_RELEASE_NUM
993           FROM
994             PO_RELEASES_ALL
995           WHERE PO_RELEASE_ID = L_PO_RELEASE_ID;
996         END IF;
997       ELSE
998         L_RELEASE_NUM := NULL;
999       END IF;
1000       RETURN (L_RELEASE_NUM);
1001     EXCEPTION
1002       WHEN OTHERS THEN
1003         /*SRW.MESSAGE(100
1004                    ,'Failed in CF_RELEASE_NUMBER ')*/NULL;
1005     END;
1006     RETURN NULL;
1007   END CF_RELEASE_NUMBERFORMULA;
1008 
1009   FUNCTION CP_REQUESTED_BY_P RETURN VARCHAR2 IS
1010   BEGIN
1011     RETURN CP_REQUESTED_BY;
1012   END CP_REQUESTED_BY_P;
1013 
1014   FUNCTION CP_APPLICATION_P RETURN VARCHAR2 IS
1015   BEGIN
1016     RETURN CP_APPLICATION;
1017   END CP_APPLICATION_P;
1018 
1019   FUNCTION CP_RESPONSIBILITY_P RETURN VARCHAR2 IS
1020   BEGIN
1021     RETURN CP_RESPONSIBILITY;
1022   END CP_RESPONSIBILITY_P;
1023 
1024   FUNCTION CP_REQUEST_TIME_P RETURN VARCHAR2 IS
1025   BEGIN
1026     RETURN CP_REQUEST_TIME;
1027   END CP_REQUEST_TIME_P;
1028 
1029   FUNCTION CP_LEGAL_ENTITY_NAME_P RETURN VARCHAR2 IS
1030   BEGIN
1031     RETURN CP_LEGAL_ENTITY_NAME;
1032   END CP_LEGAL_ENTITY_NAME_P;
1033 
1034   FUNCTION CP_ENTITY_ADDRESS_LINE_1_P RETURN VARCHAR2 IS
1035   BEGIN
1036     RETURN CP_ENTITY_ADDRESS_LINE_1;
1037   END CP_ENTITY_ADDRESS_LINE_1_P;
1038 
1039   FUNCTION CP_ENTITY_ADDRESS_LINE_2_P RETURN VARCHAR2 IS
1040   BEGIN
1041     RETURN CP_ENTITY_ADDRESS_LINE_2;
1042   END CP_ENTITY_ADDRESS_LINE_2_P;
1043 
1044   FUNCTION CP_ENTITY_ADDRESS_LINE_3_P RETURN VARCHAR2 IS
1045   BEGIN
1046     RETURN CP_ENTITY_ADDRESS_LINE_3;
1047   END CP_ENTITY_ADDRESS_LINE_3_P;
1048 
1049   FUNCTION CP_TELEPHONE_NUMBER_1_P RETURN VARCHAR2 IS
1050   BEGIN
1051     RETURN CP_TELEPHONE_NUMBER_1;
1052   END CP_TELEPHONE_NUMBER_1_P;
1053 
1054   FUNCTION CP_TELEPHONE_NUMBER_2_P RETURN VARCHAR2 IS
1055   BEGIN
1056     RETURN CP_TELEPHONE_NUMBER_2;
1057   END CP_TELEPHONE_NUMBER_2_P;
1058 
1059   FUNCTION CP_CONTACT_PERSON_NAME_P RETURN VARCHAR2 IS
1060   BEGIN
1061     RETURN CP_CONTACT_PERSON_NAME;
1062   END CP_CONTACT_PERSON_NAME_P;
1063 
1064   FUNCTION CP_VAT_REGISTRATION_NUMBER_P RETURN VARCHAR2 IS
1065   BEGIN
1066     RETURN CP_VAT_REGISTRATION_NUMBER;
1067   END CP_VAT_REGISTRATION_NUMBER_P;
1068 
1069   FUNCTION CP_SET_OF_BOOKS_NAME_P RETURN VARCHAR2 IS
1070   BEGIN
1071     RETURN CP_SET_OF_BOOKS_NAME;
1072   END CP_SET_OF_BOOKS_NAME_P;
1073 
1074   FUNCTION CP_TAX_OFFICE_NAME_P RETURN VARCHAR2 IS
1075   BEGIN
1076     RETURN CP_TAX_OFFICE_NAME;
1077   END CP_TAX_OFFICE_NAME_P;
1078 
1079   FUNCTION CP_TAX_OFFICE_ADDRESS_LINE_1_P RETURN VARCHAR2 IS
1080   BEGIN
1081     RETURN CP_TAX_OFFICE_ADDRESS_LINE_1;
1082   END CP_TAX_OFFICE_ADDRESS_LINE_1_P;
1083 
1084   FUNCTION CP_TAX_OFFICE_ADDRESS_LINE_2_P RETURN VARCHAR2 IS
1085   BEGIN
1086     RETURN CP_TAX_OFFICE_ADDRESS_LINE_2;
1087   END CP_TAX_OFFICE_ADDRESS_LINE_2_P;
1088 
1089   FUNCTION CP_TAX_OFFICE_ADDRESS_LINE_3_P RETURN VARCHAR2 IS
1090   BEGIN
1091     RETURN CP_TAX_OFFICE_ADDRESS_LINE_3;
1092   END CP_TAX_OFFICE_ADDRESS_LINE_3_P;
1093 
1094   FUNCTION CP_START_DATE_P RETURN DATE IS
1095   BEGIN
1096     RETURN CP_START_DATE;
1097   END CP_START_DATE_P;
1098 
1099   FUNCTION CP_END_DATE_P RETURN DATE IS
1100   BEGIN
1101     RETURN CP_END_DATE;
1102   END CP_END_DATE_P;
1103 
1104   FUNCTION CP_STANDARD_UOM_P RETURN VARCHAR2 IS
1105   BEGIN
1106     RETURN CP_STANDARD_UOM;
1107   END CP_STANDARD_UOM_P;
1108 
1109   FUNCTION CP_SYSDATE_P RETURN VARCHAR2 IS
1110   BEGIN
1111     RETURN CP_SYSDATE;
1112   END CP_SYSDATE_P;
1113 
1114   FUNCTION CP_EXT_PRECISION_FUNC_P RETURN NUMBER IS
1115   BEGIN
1116     RETURN CP_EXT_PRECISION_FUNC;
1117   END CP_EXT_PRECISION_FUNC_P;
1118 
1119   FUNCTION CP_ZONE_NAME_COV_P RETURN VARCHAR2 IS
1120   BEGIN
1121     RETURN CP_ZONE_NAME_COV;
1122   END CP_ZONE_NAME_COV_P;
1123 
1124   FUNCTION CP_MV_TYPE_COV_P RETURN VARCHAR2 IS
1125   BEGIN
1126     RETURN CP_MV_TYPE_COV;
1127   END CP_MV_TYPE_COV_P;
1128 
1129   FUNCTION CP_REP_OPTION_COV_P RETURN VARCHAR2 IS
1130   BEGIN
1131     RETURN CP_REP_OPTION_COV;
1132   END CP_REP_OPTION_COV_P;
1133 
1134   FUNCTION CP_USAGE_TYPE_COV_P RETURN VARCHAR2 IS
1135   BEGIN
1136     RETURN CP_USAGE_TYPE_COV;
1137   END CP_USAGE_TYPE_COV_P;
1138 
1139   FUNCTION CP_STAT_TYPE_COV_P RETURN VARCHAR2 IS
1140   BEGIN
1141     RETURN CP_STAT_TYPE_COV;
1142   END CP_STAT_TYPE_COV_P;
1143 
1144   FUNCTION CP_PRECISION_FUNC_P RETURN NUMBER IS
1145   BEGIN
1146     RETURN CP_PRECISION_FUNC;
1147   END CP_PRECISION_FUNC_P;
1148 
1149   FUNCTION CP_REPORT_TITLE_P RETURN VARCHAR2 IS
1150   BEGIN
1151     RETURN CP_REPORT_TITLE;
1152   END CP_REPORT_TITLE_P;
1153 
1154  FUNCTION BEFOREREPORT RETURN BOOLEAN IS
1155   BEGIN
1156 QTY_PRECISION:= inv_common_xmlp_pkg.get_precision(P_QUANTITY_PRECISION);
1157 	/*
1158 	BEGIN
1159 	SRW.USER_EXIT('FND SRWINIT');
1160 	EXCEPTION
1161 	  WHEN SRW.USER_EXIT_FAILURE THEN
1162 	    SRW.Message(10,'Failed in SRWINIT');
1163 	RAISE;
1164 	END;
1165 	*/
1166 
1167 	-------------------------------------------------
1168 	--Convert exchange rate from char to number
1169 	-------------------------------------------------
1170 	BEGIN
1171 	p_conc_request_id := FND_GLOBAL.CONC_REQUEST_ID;
1172 	  P_EXCHANGE_RATE := fnd_number.canonical_to_number(P_EXCHANGE_RATE_CHAR);
1173 	END;
1174 
1175 
1176 	-------------------------------------------------
1177 	--if report option is official summary, check if
1178 	--movement status is verified
1179 	-------------------------------------------------
1180 	BEGIN
1181 	DECLARE
1182 	  l_invalid_status          EXCEPTION;
1183 	  l_nnverified_status_count NUMBER;
1184 	  l_message                 VARCHAR2(2000);
1185 	BEGIN
1186 	  IF p_report_option = 'O/S'
1187 	  THEN
1188 	    SELECT
1189 	      COUNT(*)
1190 	    INTO
1191 	      l_nnverified_status_count
1192 	    FROM
1193 	      MTL_MOVEMENT_STATISTICS mms
1194 	    WHERE mms.entity_org_id = p_legal_entity_id
1195 	      AND mms.zone_code = p_zone_code
1196 	      AND mms.period_name = p_period_name
1197 	      AND mms.usage_type = p_usage_type
1198 	      AND mms.stat_type = p_stat_type
1199 	      AND mms.movement_type = p_movement_type
1200 	      AND movement_status = 'O';
1201 	    IF l_nnverified_status_count > 0
1202 	    THEN
1203 	     RAISE l_invalid_status;
1204 	    END IF;
1205 	  END IF;
1206 	EXCEPTION
1207 	  WHEN l_invalid_status THEN
1208 	    FND_MESSAGE.SET_NAME('INV', 'INV_MGD_MVT_STAT_INVALID_STS');
1209 	    l_message := FND_MESSAGE.Get;
1210 	    --SRW.Message(1, l_message);
1211 	    RAISE;
1212 	  WHEN OTHERS THEN
1213 	    --SRW.Message(31, 'Failed in check movement status');
1214 	    null;
1215 	END;
1216 
1217 	END;
1218 
1219 
1220 
1221 	-------------------------------------------------
1222 	-- Initialization for Request By, Request time --
1223 	-- Responsibility and Application              --
1224 	-------------------------------------------------
1225 	BEGIN
1226 	SELECT
1227 	    frv.responsibility_name
1228 	  , TO_CHAR(fcr.request_date, 'YYYY/MM/DD HH24:MI:SS')
1229 	  , fav.application_name
1230 	  , fu.user_name
1231 	  INTO
1232 	    cp_responsibility
1233 	  , cp_request_time
1234 	  , cp_application
1235 	  , cp_requested_by
1236 	  FROM
1237 	    fnd_concurrent_requests fcr
1238 	  , fnd_responsibility_vl frv
1239 	  , fnd_application_vl fav
1240 	  , fnd_user fu
1241 	  WHERE fcr.request_id = p_conc_request_id
1242 	    AND fcr.responsibility_application_id = frv.application_id
1243 	    AND fcr.responsibility_id = frv.responsibility_id
1244 	    AND frv.application_id = fav.application_id
1245 	    AND fu.user_id = fcr.requested_by;
1246 	EXCEPTION
1247 	  WHEN OTHERS THEN
1248 	  --  SRW.Message(31, 'Failed Request By and Request time Init.');
1249 	  null;
1250 	END;
1251 
1252 	--------------------------------------------------
1253 	--Change sysdate formatting
1254 	--------------------------------------------------
1255 	SELECT
1256 	  TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI')
1257 	INTO
1258 	  CP_SYSDATE
1259 	FROM
1260 	  DUAL;
1261 
1262 
1263 	--------------------------------------
1264 	-- Initialization for Set of Books  --
1265 	-- and Legal Entity                 --
1266 	--------------------------------------
1267 	BEGIN
1268 	  --Get VAT number
1269 	  CP_VAT_REGISTRATION_NUMBER :=
1270 	  INV_MGD_MVT_UTILS_PKG.Get_Org_VAT_Number
1271 	  ( p_entity_org_id => p_legal_entity_id
1272 	  , p_date          => sysdate);
1273 
1274 	  --Get other values
1275 	SELECT
1276 	  gllv.legal_entity_name,      hl.address_line_1,
1277 	  hl.address_line_2,           hl.address_line_3,
1278 	  hl.telephone_number_1,       hl.telephone_number_2,
1279 	  ppf.full_name,              -- hle.vat_registration_number,
1280 	  gllv.ledger_name
1281 	INTO
1282 	  CP_LEGAL_ENTITY_NAME,       CP_ENTITY_ADDRESS_LINE_1,
1283 	  CP_ENTITY_ADDRESS_LINE_2,   CP_ENTITY_ADDRESS_LINE_3,
1284 	  CP_TELEPHONE_NUMBER_1,      CP_TELEPHONE_NUMBER_2,
1285 	  CP_CONTACT_PERSON_NAME,     --CP_VAT_REGISTRATION_NUMBER,
1286 	  CP_SET_OF_BOOKS_NAME
1287 	FROM
1288 	  hr_locations_no_join hl,
1289 	  per_people_f ppf,
1290 	  gl_ledger_le_v gllv
1291 	WHERE gllv.legal_entity_id = P_LEGAL_ENTITY_ID
1292 	  AND gllv.ledger_category_code = 'PRIMARY'
1293 	  AND gllv.location_id = hl.location_id
1294 	  AND hl.designated_receiver_id = ppf.person_id(+)
1295 	  AND rownum < 2;
1296 
1297 	EXCEPTION
1298 	  WHEN OTHERS THEN
1299 	  --  SRW.Message(31, 'Failed in Set_of_books and Legal_Entity Init.');
1300 	  null;
1301 
1302 	END;
1303 
1304 
1305 	----------------------------------------
1306 	-- Initialize currency precision for
1307 	-- functional currency and transaction
1308 	-- currency
1309 	----------------------------------------
1310 	BEGIN
1311 	SELECT
1312 	  nvl(fc.extended_precision,1)
1313 	, nvl(fc.precision,1)
1314 	INTO
1315 	  CP_EXT_PRECISION_FUNC
1316 	, CP_PRECISION_FUNC
1317 	FROM
1318 	  fnd_currencies fc
1319 	WHERE fc.currency_code = P_CURRENCY_CODE
1320 	  AND rownum < 2;
1321 
1322 	EXCEPTION
1323 	  WHEN OTHERS THEN
1324 	  --  SRW.Message(31, 'Failed in currency precision.');
1325 	 null;
1326 	END;
1327 
1328 
1329 	----------------------------------------
1330 	-- Initialization for Tax information --
1331 	----------------------------------------
1332 	BEGIN
1333 	DECLARE
1334 	l_location_id NUMBER;
1335 	BEGIN
1336 	  SELECT
1337 	    tax_office_name
1338 	  , weight_uom_code
1339 	  , tax_office_location_id
1340 	  INTO
1341 	    CP_TAX_OFFICE_NAME
1342 	  , CP_STANDARD_UOM
1343 	  , l_location_id
1344 	  FROM
1345 	    mtl_stat_type_usages
1346 	  WHERE legal_entity_id = P_LEGAL_ENTITY_ID
1347 	    AND zone_code = P_ZONE_CODE
1348 	    AND stat_type = P_STAT_TYPE
1349 	    AND usage_type = P_USAGE_TYPE;
1350 
1351 	  BEGIN
1352 	    SELECT
1353 	      address_line_1
1354 	    , address_line_2
1355 	    , address_line_3
1356 	    INTO
1357 	      CP_TAX_OFFICE_ADDRESS_LINE_1
1358 	    , CP_TAX_OFFICE_ADDRESS_LINE_2
1359 	    , CP_TAX_OFFICE_ADDRESS_LINE_3
1360 	    FROM
1361 	      hr_locations_no_join
1362 	    WHERE location_id = l_location_id;
1363 
1364 	    EXCEPTION
1365 	      WHEN NO_DATA_FOUND THEN
1366 		BEGIN
1367 		  SELECT
1368 		    address1
1369 		  , address2
1370 		  , address3
1371 		  INTO
1372 		    CP_TAX_OFFICE_ADDRESS_LINE_1
1373 		  , CP_TAX_OFFICE_ADDRESS_LINE_2
1374 		  , CP_TAX_OFFICE_ADDRESS_LINE_3
1375 		  FROM
1376 		    hz_locations
1377 		  WHERE location_id = l_location_id;
1378 
1379 		  EXCEPTION
1380 		    WHEN OTHERS THEN
1381 		    --  SRW.Message(31, 'Failed in Tax Office Init');
1382 		    null;
1383 		END;
1384 
1385 	      WHEN OTHERS THEN
1386 		--SRW.Message(31, 'Failed in Tax Office Init');
1387 		null;
1388 	  END;
1389 	END;
1390 	END;
1391 
1392 
1393 	------------------------------------------------
1394 	-- Initialization for Start Date, End Date of --
1395 	-- one period                                 --
1396 	------------------------------------------------
1397 	BEGIN
1398 	  SELECT
1399 	    start_date
1400 	  , end_date
1401 	  INTO
1402 	    CP_start_date
1403 	  , CP_end_date
1404 	  FROM
1405 	    GL_PERIODS
1406 	  WHERE period_name = P_period_name
1407 	    AND rownum < 2;
1408 
1409 	EXCEPTION
1410 	    WHEN OTHERS THEN
1411 	--    SRW.Message(31, 'Failed in start_date and end_date Init');
1412 		null;
1413 	END;
1414 
1415 
1416 	/*
1417 	Fix bug 2230047, get commodity code from mtl_movement_statistics table directly
1418 	not use flexfield anymore
1419 	------------------------------------------------
1420 	-- Initialization for Commodity Structure id  --
1421 	-- of one Legal Entity                        --
1422 	------------------------------------------------
1423 	BEGIN
1424 	SELECT
1425 	 mcs.structure_id
1426 	INTO
1427 	 PLEX_COMMODITY_STRUCT_NUM
1428 	FROM
1429 	 mtl_stat_type_usages mstu
1430 	,mtl_category_sets mcs
1431 	WHERE mstu.legal_entity_id = P_LEGAL_ENTITY_ID
1432 	  AND mstu.zone_code = P_ZONE_CODE
1433 	  AND mstu.category_set_id = mcs.category_set_id
1434 	  AND rownum < 2;
1435 	EXCEPTION
1436 	  WHEN OTHERS THEN
1437 	   SRW.Message(31, 'Failed in conversion Init');
1438 	END;
1439 	*/
1440 	------------------------
1441 	-- Flexfield for ITEM --
1442 	------------------------
1443 	/*
1444 	BEGIN
1445 	SRW.USER_EXIT('FND FLEXSQL CODE="MSTK" NUM="PLEX_ITEM_STRUCT_NUM" APPL_SHORT_NAME="INV"
1446 		       OUTPUT="PLEX_ITEM_FLEX"
1447 		       MODE="SELECT"
1448 		       DISPLAY="ALL"
1449 		       TABLEALIAS="MSI"');
1450 	EXCEPTION
1451 	  WHEN SRW.USER_EXIT_FAILURE THEN
1452 	    SRW.Message(60,'Failed in ITEM Flexfield');
1453 	   WHEN OTHERS THEN
1454 	    SRW.Message(31, 'Failed in ITEM Flexfield');
1455 	END;
1456 	*/
1457 	/*
1458 	Fix bug 2230047, get commodity code from mtl_movement_statistics table directly
1459 	not use flexfield anymore
1460 	----------------------------------
1461 	-- Flexfield for COMMODITY_CODE --
1462 	----------------------------------
1463 	BEGIN
1464 	SRW.USER_EXIT('FND FLEXSQL CODE="MCAT"
1465 		       NUM="PLEX_COMMODITY_STRUCT_NUM"
1466 		       APPL_SHORT_NAME="INV"
1467 		       OUTPUT="PLEX_COMMODITY_FLEX"
1468 		       MODE="SELECT"
1469 		       DISPLAY="ALL"
1470 		       TABLEALIAS="MC"');
1471 	EXCEPTION
1472 	  WHEN SRW.USER_EXIT_FAILURE THEN
1473 	    SRW.Message(70,'Failed in COMMODITY_CODE Flexfield');
1474 	  WHEN OTHERS THEN
1475 	    SRW.Message(31, 'Failed in COMMODITY_CODE Flexfield ');
1476 	END;
1477 
1478 	BEGIN
1479 	SRW.USER_EXIT('FND FLEXSQL CODE="MCAT"
1480 		       NUM="PLEX_COMMODITY_STRUCT_NUM"
1481 		       APPL_SHORT_NAME="INV"
1482 		       OUTPUT="PLEX_COMMODITY_ORDER_BY"
1483 		       MODE="ORDER BY"
1484 		       DISPLAY="ALL"
1485 		       TABLEALIAS="MC"');
1486 	EXCEPTION
1487 	  WHEN SRW.USER_EXIT_FAILURE THEN
1488 	    SRW.Message(70,'Failed in COMMODITY_CODE Flexfield');
1489 	  WHEN OTHERS THEN
1490 	    SRW.Message(31, 'Failed in COMMODITY_CODE Flexfield');
1491 	END;
1492 	*/
1493 	-------------------------------------------
1494 	-- Populate report parameter placeholders
1495 	-- Displayed on cover page
1496 	-------------------------------------------
1497 	BEGIN
1498 	SELECT zone_display_name
1499 	  INTO cp_zone_name_cov
1500 	  FROM mtl_economic_zones_vl
1501 	 WHERE zone_code = p_zone_code
1502 	   AND rownum<2;
1503 
1504 	SELECT meaning
1505 	  INTO cp_rep_option_cov
1506 	  FROM fnd_lookup_values
1507 	 WHERE lookup_type = 'INTRASTAT_REPORT_OPTION'
1508 	   AND lookup_code = p_report_option
1509 	   AND enabled_flag = 'Y'
1510 	   AND language = userenv('LANG')
1511 	   AND rownum<2;
1512 
1513 	SELECT meaning
1514 	  INTO cp_mv_type_cov
1515 	  FROM fnd_lookups
1516 	 WHERE lookup_type = 'MVT_MOVEMENT_TYPE'
1517 	   AND lookup_code = p_movement_type
1518 	   AND enabled_flag = 'Y'
1519 	   AND rownum<2;
1520 
1521 	SELECT meaning
1522 	  INTO cp_usage_type_cov
1523 	  FROM fnd_lookups
1524 	 WHERE lookup_type = 'MVT_USAGE_TYPES'
1525 	   AND lookup_code = p_usage_type
1526 	   AND enabled_flag = 'Y'
1527 	   AND rownum<2;
1528 
1529 	SELECT meaning
1530 	  INTO cp_stat_type_cov
1531 	  FROM fnd_lookups
1532 	 WHERE lookup_type = 'MVT_STAT_TYPES'
1533 	   AND lookup_code = p_stat_type
1534 	   AND enabled_flag = 'Y'
1535 	   AND rownum<2;
1536 
1537 
1538 	EXCEPTION
1539 	  WHEN OTHERS THEN
1540 	--    SRW.Message(31, 'Failed cover page parameters initialization.');
1541 		null;
1542 	END;
1543 
1544 	-------------------------------------------
1545 	-- Populate p_mvt_id_where, used in main
1546 	-- query
1547 	-------------------------------------------
1548 	BEGIN
1549 	  IF P_MOVEMENT_TYPE IN ('A', 'D')
1550 	  THEN
1551 	    P_MVT_ID_WHERE := 'and mms.parent_movement_id = mms.movement_id';
1552 	  ELSE
1553 	    P_MVT_ID_WHERE :='and movement_id = (select min(movement_id)
1554 			       from mtl_movement_statistics
1555 			       where parent_movement_id = mms.parent_movement_id
1556 			       and movement_type = '''||P_MOVEMENT_TYPE||''' group by mms.parent_movement_id)';
1557 
1558 	  END IF;
1559 	END;
1560 	--srw.message(01,'in bef rep');
1561 
1562 	--------------------------------------------------------
1563 	--Populate reporting precision and rounding method
1564 	--from setup form. Can not create place holder in May-06
1565 	--somehow, so create user parameters to hold the value
1566 	--Fix bug 5203245
1567 	--------------------------------------------------------
1568 	BEGIN
1569 	  INV_MGD_MVT_UTILS_PKG.Get_Weight_Precision
1570 	      (p_legal_entity_id   => p_legal_entity_id
1571 	      , p_zone_code        => p_zone_code
1572 	      , p_usage_type       => p_usage_type
1573 	      , p_stat_type        => p_stat_type
1574 	      , x_weight_precision => p_rep_precision
1575 	      , x_rep_rounding     => p_rep_rounding);
1576 
1577 	  IF p_amount_display = 'W'
1578 	  THEN
1579 	    p_rep_precision := 0;
1580 	  ELSE
1581 	    --same as before, report according to currency precision
1582 	    p_rep_precision := cp_precision_func;
1583 	  END IF;
1584 
1585 	END;
1586 
1587 	RETURN (TRUE);
1588 END BEFOREREPORT;
1589 END INV_INVSTMVT_XMLP_PKG;
1590