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 2007/12/25 11:01:56 dwkrishn noship $ */
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           IF P_OE_OR_OM = 'OE' THEN
398             BEGIN
399               SELECT
400                 LINE_NUMBER
401               INTO L_SOURCE_LINE_NUMBER
402               FROM
403                 SO_LINES_ALL
404               WHERE LINE_ID = C_ORDER_LINE_ID
405                 AND ROWNUM < 2;
406             EXCEPTION
407               WHEN NO_DATA_FOUND THEN
408                 L_SOURCE_LINE_NUMBER := NULL;
409             END;
410           ELSE
411             BEGIN
412               SELECT
413                 LINE_NUMBER
414               INTO L_SOURCE_LINE_NUMBER
415               FROM
416                 OE_ORDER_LINES_ALL
417               WHERE LINE_ID = C_ORDER_LINE_ID
418                 AND ROWNUM < 2;
419             EXCEPTION
420               WHEN NO_DATA_FOUND THEN
421                 L_SOURCE_LINE_NUMBER := NULL;
422             END;
423           END IF;
424         ELSIF C_DOCUMENT_SOURCE_TYPE = 'IO' THEN
425           IF C_MOVEMENT_TYPE in ('A','AA') THEN
426             BEGIN
427               SELECT
428                 LINE_NUM
429               INTO L_SOURCE_LINE_NUMBER
430               FROM
431                 PO_REQUISITION_LINES_ALL
432               WHERE REQUISITION_LINE_ID = C_REQUISITION_LINE_ID
433                 AND ROWNUM < 2;
434             EXCEPTION
435               WHEN NO_DATA_FOUND THEN
436                 L_SOURCE_LINE_NUMBER := NULL;
437             END;
438           ELSE
439             IF P_OE_OR_OM = 'OE' THEN
440               BEGIN
441                 SELECT
442                   LINE_NUMBER
443                 INTO L_SOURCE_LINE_NUMBER
444                 FROM
445                   SO_LINES_ALL
446                 WHERE LINE_ID = C_ORDER_LINE_ID
447                   AND ROWNUM < 2;
448               EXCEPTION
449                 WHEN NO_DATA_FOUND THEN
450                   L_SOURCE_LINE_NUMBER := NULL;
451               END;
452             ELSE
453               BEGIN
454                 SELECT
455                   LINE_NUMBER
456                 INTO L_SOURCE_LINE_NUMBER
457                 FROM
458                   OE_ORDER_LINES_ALL
459                 WHERE LINE_ID = C_ORDER_LINE_ID
460                   AND ROWNUM < 2;
461               EXCEPTION
462                 WHEN NO_DATA_FOUND THEN
463                   L_SOURCE_LINE_NUMBER := NULL;
464               END;
465             END IF;
466           END IF;
467         ELSE
468           L_SOURCE_LINE_NUMBER := NULL;
469         END IF;
470       ELSE
471         L_SOURCE_LINE_NUMBER := NULL;
472       END IF;
473       RETURN (L_SOURCE_LINE_NUMBER);
474     END;
475     RETURN NULL;
476   END CF_SOURCE_LINE_NUMBERFORMULA;
477 
478   FUNCTION CF_SOURCE_NUMBERFORMULA(C_DOCUMENT_SOURCE_TYPE IN VARCHAR2
479                                   ,C_DOCUMENT_REFERENCE IN VARCHAR2
480                                   ,C_PO_HEADER_ID IN NUMBER
481                                   ,C_ORDER_HEADER_ID IN NUMBER
482                                   ,C_MOVEMENT_TYPE IN VARCHAR2
483                                   ,C_REQUISITION_HEADER_ID IN NUMBER
484                                   ,C_MTL_TRANSACTION_ID IN NUMBER) RETURN VARCHAR2 IS
485   BEGIN
486     DECLARE
487       L_SOURCE_NUMBER VARCHAR2(50);
488     BEGIN
489       IF P_REPORT_OPTION = 'S/D' THEN
490         IF C_DOCUMENT_SOURCE_TYPE = 'MISC' THEN
491           L_SOURCE_NUMBER := C_DOCUMENT_REFERENCE;
492         ELSIF C_DOCUMENT_SOURCE_TYPE in ('PO','RTV') THEN
493           BEGIN
494             SELECT
495               SEGMENT1
496             INTO L_SOURCE_NUMBER
497             FROM
498               PO_HEADERS_ALL
499             WHERE PO_HEADER_ID = C_PO_HEADER_ID
500               AND ROWNUM < 2;
501           EXCEPTION
502             WHEN NO_DATA_FOUND THEN
503               L_SOURCE_NUMBER := NULL;
504           END;
505         ELSIF C_DOCUMENT_SOURCE_TYPE in ('SO','RMA') THEN
506           IF P_OE_OR_OM = 'OE' THEN
507             BEGIN
508               SELECT
509                 ORDER_NUMBER
510               INTO L_SOURCE_NUMBER
511               FROM
512                 SO_HEADERS_ALL
513               WHERE HEADER_ID = C_ORDER_HEADER_ID
514                 AND ROWNUM < 2;
515             EXCEPTION
516               WHEN NO_DATA_FOUND THEN
517                 L_SOURCE_NUMBER := NULL;
518             END;
519           ELSE
520             BEGIN
521               SELECT
522                 ORDER_NUMBER
523               INTO L_SOURCE_NUMBER
524               FROM
525                 OE_ORDER_HEADERS_ALL
526               WHERE HEADER_ID = C_ORDER_HEADER_ID
527                 AND ROWNUM < 2;
528             EXCEPTION
529               WHEN NO_DATA_FOUND THEN
530                 L_SOURCE_NUMBER := NULL;
531             END;
532           END IF;
533         ELSIF C_DOCUMENT_SOURCE_TYPE = 'IO' THEN
534           IF C_MOVEMENT_TYPE in ('A','AA') THEN
535             BEGIN
536               SELECT
537                 SEGMENT1
538               INTO L_SOURCE_NUMBER
539               FROM
540                 PO_REQUISITION_HEADERS_ALL
541               WHERE REQUISITION_HEADER_ID = C_REQUISITION_HEADER_ID
542                 AND ROWNUM < 2;
543             EXCEPTION
544               WHEN NO_DATA_FOUND THEN
545                 L_SOURCE_NUMBER := NULL;
546             END;
547           ELSE
548             IF P_OE_OR_OM = 'OE' THEN
549               BEGIN
550                 SELECT
551                   ORDER_NUMBER
552                 INTO L_SOURCE_NUMBER
553                 FROM
554                   SO_HEADERS_ALL
555                 WHERE HEADER_ID = C_ORDER_HEADER_ID
556                   AND ROWNUM < 2;
557               EXCEPTION
558                 WHEN NO_DATA_FOUND THEN
559                   L_SOURCE_NUMBER := NULL;
560               END;
561             ELSE
562               BEGIN
563                 SELECT
564                   ORDER_NUMBER
565                 INTO L_SOURCE_NUMBER
566                 FROM
567                   OE_ORDER_HEADERS_ALL
568                 WHERE HEADER_ID = C_ORDER_HEADER_ID
569                   AND ROWNUM < 2;
570               EXCEPTION
571                 WHEN NO_DATA_FOUND THEN
572                   L_SOURCE_NUMBER := NULL;
573               END;
574             END IF;
575           END IF;
576         ELSIF C_DOCUMENT_SOURCE_TYPE = 'INV' THEN
577           L_SOURCE_NUMBER := TO_CHAR(C_MTL_TRANSACTION_ID);
578         ELSE
579           L_SOURCE_NUMBER := NULL;
580         END IF;
581       ELSE
582         L_SOURCE_NUMBER := NULL;
583       END IF;
584       RETURN (L_SOURCE_NUMBER);
585     END;
586     RETURN NULL;
587   END CF_SOURCE_NUMBERFORMULA;
588 
589   FUNCTION CF_TRADER_NAMEFORMULA(C_DOCUMENT_SOURCE_TYPE IN VARCHAR2
590                                 ,C_CUSTOMER_NAME IN VARCHAR2
591                                 ,C_SHIP_TO_CUSTOMER_ID IN NUMBER
592                                 ,C_VENDOR_NAME IN VARCHAR2
593                                 ,C_FROM_ORGANIZATION_ID IN NUMBER
594                                 ,C_TO_ORGANIZATION_ID IN NUMBER
595                                 ,C_TRANSACTING_FROM_ORG IN VARCHAR2
596                                 ,C_TRANSACTING_TO_ORG IN VARCHAR2) RETURN VARCHAR2 IS
597   BEGIN
598     DECLARE
599       L_TRADER_NAME VARCHAR2(240);
600     BEGIN
601       IF P_REPORT_OPTION = 'S/D' THEN
602         IF C_DOCUMENT_SOURCE_TYPE in ('SO','RMA') THEN
603           IF C_CUSTOMER_NAME IS NOT NULL THEN
604             L_TRADER_NAME := C_CUSTOMER_NAME;
605           ELSE
606             IF C_SHIP_TO_CUSTOMER_ID IS NOT NULL THEN
607               BEGIN
608                 SELECT
609                   HP.PARTY_NAME
610                 INTO L_TRADER_NAME
611                 FROM
612                   HZ_PARTIES HP,
613                   HZ_CUST_ACCOUNTS HCA
614                 WHERE HP.PARTY_ID = HCA.PARTY_ID
615                   AND HCA.CUST_ACCOUNT_ID = C_SHIP_TO_CUSTOMER_ID;
616               EXCEPTION
617                 WHEN NO_DATA_FOUND THEN
618                   L_TRADER_NAME := NULL;
619               END;
620             ELSE
621               L_TRADER_NAME := NULL;
622             END IF;
623           END IF;
624         ELSIF C_DOCUMENT_SOURCE_TYPE in ('PO','RTV') THEN
625           L_TRADER_NAME := C_VENDOR_NAME;
626         ELSIF C_DOCUMENT_SOURCE_TYPE in ('IO','INV') THEN
627           IF P_MOVEMENT_TYPE in ('A','AA') THEN
628             IF C_FROM_ORGANIZATION_ID IS NOT NULL THEN
629               BEGIN
630                 SELECT
631                   NAME
632                 INTO L_TRADER_NAME
633                 FROM
634                   HR_ORGANIZATION_UNITS
635                 WHERE ORGANIZATION_ID = C_FROM_ORGANIZATION_ID
636                   AND ROWNUM < 2;
637               EXCEPTION
638                 WHEN NO_DATA_FOUND THEN
639                   L_TRADER_NAME := NULL;
640               END;
641             ELSE
642               L_TRADER_NAME := NULL;
643             END IF;
644           ELSE
645             IF C_TO_ORGANIZATION_ID IS NOT NULL THEN
646               BEGIN
647                 SELECT
648                   NAME
649                 INTO L_TRADER_NAME
650                 FROM
651                   HR_ORGANIZATION_UNITS
652                 WHERE ORGANIZATION_ID = C_TO_ORGANIZATION_ID
653                   AND ROWNUM < 2;
654               EXCEPTION
655                 WHEN NO_DATA_FOUND THEN
656                   L_TRADER_NAME := NULL;
657               END;
658             ELSE
659               L_TRADER_NAME := NULL;
660             END IF;
661           END IF;
662         ELSIF C_DOCUMENT_SOURCE_TYPE = 'MISC' THEN
663           IF C_CUSTOMER_NAME IS NOT NULL THEN
664             L_TRADER_NAME := C_CUSTOMER_NAME;
665           ELSIF C_VENDOR_NAME IS NOT NULL THEN
666             L_TRADER_NAME := C_VENDOR_NAME;
667           ELSIF C_TRANSACTING_FROM_ORG IS NOT NULL THEN
668             L_TRADER_NAME := C_TRANSACTING_FROM_ORG;
669           ELSIF C_TRANSACTING_TO_ORG IS NOT NULL THEN
670             L_TRADER_NAME := C_TRANSACTING_TO_ORG;
671           ELSE
672             L_TRADER_NAME := NULL;
673           END IF;
674         ELSE
675           L_TRADER_NAME := NULL;
676         END IF;
677       ELSE
678         L_TRADER_NAME := NULL;
679       END IF;
680       RETURN (L_TRADER_NAME);
681     END;
682     RETURN NULL;
683   END CF_TRADER_NAMEFORMULA;
684 
685   FUNCTION CF_TRADER_NUMBERFORMULA(C_DOCUMENT_SOURCE_TYPE IN VARCHAR2
686                                   ,C_CUSTOMER_NUMBER IN VARCHAR2
687                                   ,C_SHIP_TO_CUSTOMER_ID IN NUMBER
688                                   ,C_VENDOR_NUMBER IN VARCHAR2
689                                   ,C_TRANSACTING_FROM_ORG IN VARCHAR2
690                                   ,C_TRANSACTING_TO_ORG IN VARCHAR2) RETURN VARCHAR2 IS
691   BEGIN
692     DECLARE
693       L_TRADER_NUMBER VARCHAR2(50);
694     BEGIN
695       IF P_REPORT_OPTION = 'S/D' THEN
696         IF C_DOCUMENT_SOURCE_TYPE in ('SO','RMA') THEN
697           IF C_CUSTOMER_NUMBER IS NOT NULL THEN
698             L_TRADER_NUMBER := C_CUSTOMER_NUMBER;
699           ELSE
700             IF C_SHIP_TO_CUSTOMER_ID IS NOT NULL THEN
701               BEGIN
702                 SELECT
703                   HCA.ACCOUNT_NUMBER
704                 INTO L_TRADER_NUMBER
705                 FROM
706                   HZ_PARTIES HP,
707                   HZ_CUST_ACCOUNTS HCA
708                 WHERE HP.PARTY_ID = HCA.PARTY_ID
709                   AND HCA.CUST_ACCOUNT_ID = C_SHIP_TO_CUSTOMER_ID;
710               EXCEPTION
711                 WHEN NO_DATA_FOUND THEN
712                   L_TRADER_NUMBER := NULL;
713               END;
714             ELSE
715               L_TRADER_NUMBER := NULL;
716             END IF;
717           END IF;
718         ELSIF C_DOCUMENT_SOURCE_TYPE in ('PO','RTV') THEN
719           L_TRADER_NUMBER := C_VENDOR_NUMBER;
720         ELSIF C_DOCUMENT_SOURCE_TYPE in ('IO','INV') THEN
721           L_TRADER_NUMBER := NULL;
722         ELSIF C_DOCUMENT_SOURCE_TYPE = 'MISC' THEN
723           IF C_CUSTOMER_NUMBER IS NOT NULL THEN
724             L_TRADER_NUMBER := C_CUSTOMER_NUMBER;
725           ELSIF C_VENDOR_NUMBER IS NOT NULL THEN
726             L_TRADER_NUMBER := C_VENDOR_NUMBER;
727           ELSIF C_TRANSACTING_FROM_ORG IS NOT NULL THEN
728             L_TRADER_NUMBER := NULL;
729           ELSIF C_TRANSACTING_TO_ORG IS NOT NULL THEN
730             L_TRADER_NUMBER := NULL;
731           ELSE
732             L_TRADER_NUMBER := NULL;
733           END IF;
734         ELSE
735           L_TRADER_NUMBER := NULL;
736         END IF;
737       ELSE
738         L_TRADER_NUMBER := NULL;
739       END IF;
740       RETURN (L_TRADER_NUMBER);
741     END;
742     RETURN NULL;
743   END CF_TRADER_NUMBERFORMULA;
744 
745   FUNCTION CF_TRADER_SITEFORMULA(C_DOCUMENT_SOURCE_TYPE IN VARCHAR2
746                                 ,C_CUSTOMER_LOCATION IN VARCHAR2
747                                 ,C_SHIP_TO_SITE_USE_ID IN NUMBER
748                                 ,C_VENDOR_SITE IN VARCHAR2
749                                 ,C_CUSTOMER_NAME IN VARCHAR2
750                                 ,C_VENDOR_NAME IN VARCHAR2
751                                 ,C_TRANSACTING_FROM_ORG IN VARCHAR2
752                                 ,C_TRANSACTING_TO_ORG IN VARCHAR2) RETURN VARCHAR2 IS
753   BEGIN
754     DECLARE
755       L_TRADER_SITE VARCHAR2(50);
756     BEGIN
757       IF P_REPORT_OPTION = 'S/D' THEN
758         IF C_DOCUMENT_SOURCE_TYPE in ('SO','RMA') THEN
759           IF C_CUSTOMER_LOCATION IS NOT NULL THEN
760             L_TRADER_SITE := C_CUSTOMER_LOCATION;
761           ELSIF C_SHIP_TO_SITE_USE_ID IS NOT NULL THEN
762             BEGIN
763               SELECT
764                 LOCATION
765               INTO L_TRADER_SITE
766               FROM
767                 HZ_CUST_SITE_USES_ALL
768               WHERE SITE_USE_ID = C_SHIP_TO_SITE_USE_ID;
769             EXCEPTION
770               WHEN NO_DATA_FOUND THEN
771                 L_TRADER_SITE := NULL;
772             END;
773           ELSE
774             L_TRADER_SITE := NULL;
775           END IF;
776         ELSIF C_DOCUMENT_SOURCE_TYPE in ('PO','RTV') THEN
777           L_TRADER_SITE := C_VENDOR_SITE;
778         ELSIF C_DOCUMENT_SOURCE_TYPE in ('IO','INV') THEN
779           L_TRADER_SITE := NULL;
780         ELSIF C_DOCUMENT_SOURCE_TYPE = 'MISC' THEN
781           IF C_CUSTOMER_NAME IS NOT NULL THEN
782             L_TRADER_SITE := C_CUSTOMER_LOCATION;
783           ELSIF C_VENDOR_NAME IS NOT NULL THEN
784             L_TRADER_SITE := C_VENDOR_SITE;
785           ELSIF C_TRANSACTING_FROM_ORG IS NOT NULL THEN
786             L_TRADER_SITE := NULL;
787           ELSIF C_TRANSACTING_TO_ORG IS NOT NULL THEN
788             L_TRADER_SITE := NULL;
789           ELSE
790             L_TRADER_SITE := NULL;
791           END IF;
792         ELSE
793           L_TRADER_SITE := NULL;
794         END IF;
795       ELSE
796         L_TRADER_SITE := NULL;
797       END IF;
798       RETURN (L_TRADER_SITE);
799     END;
800     RETURN NULL;
801   END CF_TRADER_SITEFORMULA;
802 
803   FUNCTION CF_TRADER_TYPEFORMULA(C_DOCUMENT_SOURCE_TYPE IN VARCHAR2
804                                 ,C_CUSTOMER_NAME IN VARCHAR2
805                                 ,C_VENDOR_NAME IN VARCHAR2
806                                 ,C_TRANSACTING_FROM_ORG IN VARCHAR2
807                                 ,C_TRANSACTING_TO_ORG IN VARCHAR2) RETURN VARCHAR2 IS
808   BEGIN
809     DECLARE
810       L_TRADER_TYPE VARCHAR2(20);
811     BEGIN
812       IF P_REPORT_OPTION = 'S/D' THEN
813         IF C_DOCUMENT_SOURCE_TYPE in ('SO','RMA') THEN
814           L_TRADER_TYPE := 'Customer';
815         ELSIF C_DOCUMENT_SOURCE_TYPE in ('PO','RTV') THEN
816           L_TRADER_TYPE := 'Vendor';
817         ELSIF C_DOCUMENT_SOURCE_TYPE in ('IO','INV') THEN
818           L_TRADER_TYPE := 'Organization';
819         ELSIF C_DOCUMENT_SOURCE_TYPE = 'MISC' THEN
820           IF C_CUSTOMER_NAME IS NOT NULL THEN
821             L_TRADER_TYPE := 'Customer';
822           ELSIF C_VENDOR_NAME IS NOT NULL THEN
823             L_TRADER_TYPE := 'Vendor';
824           ELSIF C_TRANSACTING_FROM_ORG IS NOT NULL OR C_TRANSACTING_TO_ORG IS NOT NULL THEN
825             L_TRADER_TYPE := 'Organization';
826           ELSE
827             L_TRADER_TYPE := NULL;
828           END IF;
829         ELSE
830           L_TRADER_TYPE := NULL;
831         END IF;
832       ELSE
833         L_TRADER_TYPE := NULL;
834       END IF;
835       RETURN (L_TRADER_TYPE);
836     END;
837     RETURN NULL;
838   END CF_TRADER_TYPEFORMULA;
839 
840   FUNCTION AFTERREPORT(CS_NO_COUNT IN NUMBER) RETURN BOOLEAN IS
841   BEGIN
842     IF P_REPORT_OPTION = 'O/S' THEN
843       IF CS_NO_COUNT <> 0 THEN
844         UPDATE
845           MTL_MOVEMENT_STATISTICS
846         SET
847           MOVEMENT_STATUS = 'F'
848           ,REPORT_REFERENCE = TO_CHAR(P_LEGAL_ENTITY_ID) || P_ZONE_CODE || P_PERIOD_NAME || P_USAGE_TYPE || P_STAT_TYPE || P_MOVEMENT_TYPE
849         WHERE ENTITY_ORG_ID = P_LEGAL_ENTITY_ID
850           AND ZONE_CODE = P_ZONE_CODE
851           AND PERIOD_NAME = P_PERIOD_NAME
852           AND USAGE_TYPE = P_USAGE_TYPE
853           AND STAT_TYPE = P_STAT_TYPE
854           AND MOVEMENT_TYPE = P_MOVEMENT_TYPE
855           AND MOVEMENT_STATUS = 'V';
856       END IF;
857       COMMIT;
858     END IF;
859     BEGIN
860       /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
861     EXCEPTION
862       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
863         /*SRW.MESSAGE(1
864                    ,'Failed in srwexit')*/NULL;
865     END;
866     RETURN (TRUE);
867   END AFTERREPORT;
868 
869   FUNCTION CF_PARENT_MVT_QUANTITYFORMULA(CS_ALTERNATE_QUANTITY IN VARCHAR2
870                                         ,CS_TRANSACTION_QUANTITY IN VARCHAR2) RETURN NUMBER IS
871   BEGIN
872     IF CS_ALTERNATE_QUANTITY IS NULL THEN
873       RETURN (CS_TRANSACTION_QUANTITY);
874     ELSE
875       RETURN (CS_ALTERNATE_QUANTITY);
876     END IF;
877   END CF_PARENT_MVT_QUANTITYFORMULA;
878 
879   FUNCTION CF_PARENT_MVT_UOMFORMULA(C_ALTERNATE_UOM_CODE IN VARCHAR2
880                                    ,C_TRANSACTION_UOM_CODE IN VARCHAR2) RETURN CHAR IS
881   BEGIN
882     IF C_ALTERNATE_UOM_CODE IS NULL THEN
883       RETURN (C_TRANSACTION_UOM_CODE);
884     ELSE
885       RETURN (C_ALTERNATE_UOM_CODE);
886     END IF;
887   END CF_PARENT_MVT_UOMFORMULA;
888 
889   FUNCTION CF_STATISTICAL_VALUE_RFORMUL(CS_STATISTICAL_VALUE IN VARCHAR2) RETURN NUMBER IS
890     L_STAT_VALUE NUMBER;
891   BEGIN
892     L_STAT_VALUE := INV_MGD_MVT_UTILS_PKG.ROUND_NUMBER(P_NUMBER => CS_STATISTICAL_VALUE
893                                                       ,P_PRECISION => P_REP_PRECISION
894                                                       ,P_ROUNDING_METHOD => P_REP_ROUNDING);
895     RETURN (L_STAT_VALUE);
896   END CF_STATISTICAL_VALUE_RFORMUL;
897 
898   FUNCTION CF_TRANSACTION_VALUE_RFORMUL(CS_TRANSACTION_VALUE IN VARCHAR2) RETURN NUMBER IS
899     L_TRANS_VALUE NUMBER;
900   BEGIN
901     L_TRANS_VALUE := INV_MGD_MVT_UTILS_PKG.ROUND_NUMBER(P_NUMBER => CS_TRANSACTION_VALUE
902                                                        ,P_PRECISION => P_REP_PRECISION
903                                                        ,P_ROUNDING_METHOD => P_REP_ROUNDING);
904     RETURN (L_TRANS_VALUE);
905   END CF_TRANSACTION_VALUE_RFORMUL;
906 
907   FUNCTION CF_INVOICE_LINE_EXT_VAL_RFORMU(CS_INVOICE_VALUE IN VARCHAR2
908                                          ,CF_PRECISION_TRX IN NUMBER) RETURN NUMBER IS
909   BEGIN
910     RETURN (ROUND(CS_INVOICE_VALUE
911                 ,CF_PRECISION_TRX));
912   END CF_INVOICE_LINE_EXT_VAL_RFORMU;
913 
914   FUNCTION CF_DOCUMENT_LINE_EXT_VAL_RFORM(CS_DOC_VALUE IN VARCHAR2
915                                          ,CF_PRECISION_TRX IN NUMBER) RETURN NUMBER IS
916   BEGIN
917     RETURN (ROUND(CS_DOC_VALUE
918                 ,CF_PRECISION_TRX));
919   END CF_DOCUMENT_LINE_EXT_VAL_RFORM;
920 
921   FUNCTION CF_REPORT_TRANSACTION_VAL_RFOR(CS_REPORT_TRANSACTION_VAL IN NUMBER) RETURN NUMBER IS
922     L_REP_TRANS_VALUE NUMBER;
923   BEGIN
924     L_REP_TRANS_VALUE := INV_MGD_MVT_UTILS_PKG.ROUND_NUMBER(P_NUMBER => CS_REPORT_TRANSACTION_VAL
925                                                            ,P_PRECISION => P_REP_PRECISION
926                                                            ,P_ROUNDING_METHOD => P_REP_ROUNDING);
927     RETURN (L_REP_TRANS_VALUE);
928   END CF_REPORT_TRANSACTION_VAL_RFOR;
929 
930   FUNCTION CF_REPORT_STATISTICAL_VAL_RFOR(CS_REPORT_STATISTICAL_VAL IN NUMBER) RETURN NUMBER IS
931     L_REP_STAT_VALUE NUMBER;
932   BEGIN
933     L_REP_STAT_VALUE := INV_MGD_MVT_UTILS_PKG.ROUND_NUMBER(P_NUMBER => CS_REPORT_STATISTICAL_VAL
934                                                           ,P_PRECISION => P_REP_PRECISION
935                                                           ,P_ROUNDING_METHOD => P_REP_ROUNDING);
936     RETURN (L_REP_STAT_VALUE);
937   END CF_REPORT_STATISTICAL_VAL_RFOR;
938 
939   FUNCTION CF_OUTSIDE_VALUE_RFORMULA(CS_OUTSIDE_VALUE IN VARCHAR2
940                                     ,CF_PRECISION_TRX IN NUMBER) RETURN NUMBER IS
941   BEGIN
942     RETURN (ROUND(CS_OUTSIDE_VALUE
943                 ,CF_PRECISION_TRX));
944   END CF_OUTSIDE_VALUE_RFORMULA;
945 
946   FUNCTION AFTERPFORM RETURN BOOLEAN IS
947   BEGIN
948     P_OE_OR_OM := OE_INSTALL.GET_ACTIVE_PRODUCT;
949     RETURN (TRUE);
950   END AFTERPFORM;
951 
952   FUNCTION CF_PRECISION_TRXFORMULA(C_MOVEMENT_CURRENCY_CODE IN VARCHAR2) RETURN NUMBER IS
953     L_PRECISION_TRX NUMBER;
954   BEGIN
955     SELECT
956       PRECISION
957     INTO L_PRECISION_TRX
958     FROM
959       FND_CURRENCIES
960     WHERE CURRENCY_CODE = C_MOVEMENT_CURRENCY_CODE;
961     RETURN L_PRECISION_TRX;
962   END CF_PRECISION_TRXFORMULA;
963 
964   FUNCTION CF_RELEASE_NUMBERFORMULA(C_RCV_TRANSACTION_ID IN NUMBER) RETURN NUMBER IS
965   BEGIN
966     DECLARE
967       L_PO_RELEASE_ID NUMBER;
968       L_RELEASE_NUM NUMBER;
969     BEGIN
970       IF C_RCV_TRANSACTION_ID IS NOT NULL THEN
971         BEGIN
972           SELECT
973             PO_RELEASE_ID
974           INTO L_PO_RELEASE_ID
975           FROM
976             RCV_TRANSACTIONS
977           WHERE TRANSACTION_ID = C_RCV_TRANSACTION_ID;
978         EXCEPTION
979           WHEN NO_DATA_FOUND THEN
980             L_RELEASE_NUM := NULL;
981             RETURN (L_RELEASE_NUM);
982         END;
983         IF L_PO_RELEASE_ID IS NOT NULL THEN
984           SELECT
985             RELEASE_NUM
986           INTO L_RELEASE_NUM
987           FROM
988             PO_RELEASES_ALL
989           WHERE PO_RELEASE_ID = L_PO_RELEASE_ID;
990         END IF;
991       ELSE
992         L_RELEASE_NUM := NULL;
993       END IF;
994       RETURN (L_RELEASE_NUM);
995     EXCEPTION
996       WHEN OTHERS THEN
997         /*SRW.MESSAGE(100
998                    ,'Failed in CF_RELEASE_NUMBER ')*/NULL;
999     END;
1000     RETURN NULL;
1001   END CF_RELEASE_NUMBERFORMULA;
1002 
1003   FUNCTION CP_REQUESTED_BY_P RETURN VARCHAR2 IS
1004   BEGIN
1005     RETURN CP_REQUESTED_BY;
1006   END CP_REQUESTED_BY_P;
1007 
1008   FUNCTION CP_APPLICATION_P RETURN VARCHAR2 IS
1009   BEGIN
1010     RETURN CP_APPLICATION;
1011   END CP_APPLICATION_P;
1012 
1013   FUNCTION CP_RESPONSIBILITY_P RETURN VARCHAR2 IS
1014   BEGIN
1015     RETURN CP_RESPONSIBILITY;
1016   END CP_RESPONSIBILITY_P;
1017 
1018   FUNCTION CP_REQUEST_TIME_P RETURN VARCHAR2 IS
1019   BEGIN
1020     RETURN CP_REQUEST_TIME;
1021   END CP_REQUEST_TIME_P;
1022 
1023   FUNCTION CP_LEGAL_ENTITY_NAME_P RETURN VARCHAR2 IS
1024   BEGIN
1025     RETURN CP_LEGAL_ENTITY_NAME;
1026   END CP_LEGAL_ENTITY_NAME_P;
1027 
1028   FUNCTION CP_ENTITY_ADDRESS_LINE_1_P RETURN VARCHAR2 IS
1029   BEGIN
1030     RETURN CP_ENTITY_ADDRESS_LINE_1;
1031   END CP_ENTITY_ADDRESS_LINE_1_P;
1032 
1033   FUNCTION CP_ENTITY_ADDRESS_LINE_2_P RETURN VARCHAR2 IS
1034   BEGIN
1035     RETURN CP_ENTITY_ADDRESS_LINE_2;
1036   END CP_ENTITY_ADDRESS_LINE_2_P;
1037 
1038   FUNCTION CP_ENTITY_ADDRESS_LINE_3_P RETURN VARCHAR2 IS
1039   BEGIN
1040     RETURN CP_ENTITY_ADDRESS_LINE_3;
1041   END CP_ENTITY_ADDRESS_LINE_3_P;
1042 
1043   FUNCTION CP_TELEPHONE_NUMBER_1_P RETURN VARCHAR2 IS
1044   BEGIN
1045     RETURN CP_TELEPHONE_NUMBER_1;
1046   END CP_TELEPHONE_NUMBER_1_P;
1047 
1048   FUNCTION CP_TELEPHONE_NUMBER_2_P RETURN VARCHAR2 IS
1049   BEGIN
1050     RETURN CP_TELEPHONE_NUMBER_2;
1051   END CP_TELEPHONE_NUMBER_2_P;
1052 
1053   FUNCTION CP_CONTACT_PERSON_NAME_P RETURN VARCHAR2 IS
1054   BEGIN
1055     RETURN CP_CONTACT_PERSON_NAME;
1056   END CP_CONTACT_PERSON_NAME_P;
1057 
1058   FUNCTION CP_VAT_REGISTRATION_NUMBER_P RETURN VARCHAR2 IS
1059   BEGIN
1060     RETURN CP_VAT_REGISTRATION_NUMBER;
1061   END CP_VAT_REGISTRATION_NUMBER_P;
1062 
1063   FUNCTION CP_SET_OF_BOOKS_NAME_P RETURN VARCHAR2 IS
1064   BEGIN
1065     RETURN CP_SET_OF_BOOKS_NAME;
1066   END CP_SET_OF_BOOKS_NAME_P;
1067 
1068   FUNCTION CP_TAX_OFFICE_NAME_P RETURN VARCHAR2 IS
1069   BEGIN
1070     RETURN CP_TAX_OFFICE_NAME;
1071   END CP_TAX_OFFICE_NAME_P;
1072 
1073   FUNCTION CP_TAX_OFFICE_ADDRESS_LINE_1_P RETURN VARCHAR2 IS
1074   BEGIN
1075     RETURN CP_TAX_OFFICE_ADDRESS_LINE_1;
1076   END CP_TAX_OFFICE_ADDRESS_LINE_1_P;
1077 
1078   FUNCTION CP_TAX_OFFICE_ADDRESS_LINE_2_P RETURN VARCHAR2 IS
1079   BEGIN
1080     RETURN CP_TAX_OFFICE_ADDRESS_LINE_2;
1081   END CP_TAX_OFFICE_ADDRESS_LINE_2_P;
1082 
1083   FUNCTION CP_TAX_OFFICE_ADDRESS_LINE_3_P RETURN VARCHAR2 IS
1084   BEGIN
1085     RETURN CP_TAX_OFFICE_ADDRESS_LINE_3;
1086   END CP_TAX_OFFICE_ADDRESS_LINE_3_P;
1087 
1088   FUNCTION CP_START_DATE_P RETURN DATE IS
1089   BEGIN
1090     RETURN CP_START_DATE;
1091   END CP_START_DATE_P;
1092 
1093   FUNCTION CP_END_DATE_P RETURN DATE IS
1094   BEGIN
1095     RETURN CP_END_DATE;
1096   END CP_END_DATE_P;
1097 
1098   FUNCTION CP_STANDARD_UOM_P RETURN VARCHAR2 IS
1099   BEGIN
1100     RETURN CP_STANDARD_UOM;
1101   END CP_STANDARD_UOM_P;
1102 
1103   FUNCTION CP_SYSDATE_P RETURN VARCHAR2 IS
1104   BEGIN
1105     RETURN CP_SYSDATE;
1106   END CP_SYSDATE_P;
1107 
1108   FUNCTION CP_EXT_PRECISION_FUNC_P RETURN NUMBER IS
1109   BEGIN
1110     RETURN CP_EXT_PRECISION_FUNC;
1111   END CP_EXT_PRECISION_FUNC_P;
1112 
1113   FUNCTION CP_ZONE_NAME_COV_P RETURN VARCHAR2 IS
1114   BEGIN
1115     RETURN CP_ZONE_NAME_COV;
1116   END CP_ZONE_NAME_COV_P;
1117 
1118   FUNCTION CP_MV_TYPE_COV_P RETURN VARCHAR2 IS
1119   BEGIN
1120     RETURN CP_MV_TYPE_COV;
1121   END CP_MV_TYPE_COV_P;
1122 
1123   FUNCTION CP_REP_OPTION_COV_P RETURN VARCHAR2 IS
1124   BEGIN
1125     RETURN CP_REP_OPTION_COV;
1126   END CP_REP_OPTION_COV_P;
1127 
1128   FUNCTION CP_USAGE_TYPE_COV_P RETURN VARCHAR2 IS
1129   BEGIN
1130     RETURN CP_USAGE_TYPE_COV;
1131   END CP_USAGE_TYPE_COV_P;
1132 
1133   FUNCTION CP_STAT_TYPE_COV_P RETURN VARCHAR2 IS
1134   BEGIN
1135     RETURN CP_STAT_TYPE_COV;
1136   END CP_STAT_TYPE_COV_P;
1137 
1138   FUNCTION CP_PRECISION_FUNC_P RETURN NUMBER IS
1139   BEGIN
1140     RETURN CP_PRECISION_FUNC;
1141   END CP_PRECISION_FUNC_P;
1142 
1143   FUNCTION CP_REPORT_TITLE_P RETURN VARCHAR2 IS
1144   BEGIN
1145     RETURN CP_REPORT_TITLE;
1146   END CP_REPORT_TITLE_P;
1147 
1148  FUNCTION BEFOREREPORT RETURN BOOLEAN IS
1149   BEGIN
1150 QTY_PRECISION:= inv_common_xmlp_pkg.get_precision(P_QUANTITY_PRECISION);
1151 	/*
1152 	BEGIN
1153 	SRW.USER_EXIT('FND SRWINIT');
1154 	EXCEPTION
1155 	  WHEN SRW.USER_EXIT_FAILURE THEN
1156 	    SRW.Message(10,'Failed in SRWINIT');
1157 	RAISE;
1158 	END;
1159 	*/
1160 
1161 	-------------------------------------------------
1162 	--Convert exchange rate from char to number
1163 	-------------------------------------------------
1164 	BEGIN
1165 	p_conc_request_id := FND_GLOBAL.CONC_REQUEST_ID;
1166 	  P_EXCHANGE_RATE := fnd_number.canonical_to_number(P_EXCHANGE_RATE_CHAR);
1167 	END;
1168 
1169 
1170 	-------------------------------------------------
1171 	--if report option is official summary, check if
1172 	--movement status is verified
1173 	-------------------------------------------------
1174 	BEGIN
1175 	DECLARE
1176 	  l_invalid_status          EXCEPTION;
1177 	  l_nnverified_status_count NUMBER;
1178 	  l_message                 VARCHAR2(2000);
1179 	BEGIN
1180 	  IF p_report_option = 'O/S'
1181 	  THEN
1182 	    SELECT
1183 	      COUNT(*)
1184 	    INTO
1185 	      l_nnverified_status_count
1186 	    FROM
1187 	      MTL_MOVEMENT_STATISTICS mms
1188 	    WHERE mms.entity_org_id = p_legal_entity_id
1189 	      AND mms.zone_code = p_zone_code
1190 	      AND mms.period_name = p_period_name
1191 	      AND mms.usage_type = p_usage_type
1192 	      AND mms.stat_type = p_stat_type
1193 	      AND mms.movement_type = p_movement_type
1194 	      AND movement_status = 'O';
1195 	    IF l_nnverified_status_count > 0
1196 	    THEN
1197 	     RAISE l_invalid_status;
1198 	    END IF;
1199 	  END IF;
1200 	EXCEPTION
1201 	  WHEN l_invalid_status THEN
1202 	    FND_MESSAGE.SET_NAME('INV', 'INV_MGD_MVT_STAT_INVALID_STS');
1203 	    l_message := FND_MESSAGE.Get;
1204 	    --SRW.Message(1, l_message);
1205 	    RAISE;
1206 	  WHEN OTHERS THEN
1207 	    --SRW.Message(31, 'Failed in check movement status');
1208 	    null;
1209 	END;
1210 
1211 	END;
1212 
1213 
1214 
1215 	-------------------------------------------------
1216 	-- Initialization for Request By, Request time --
1217 	-- Responsibility and Application              --
1218 	-------------------------------------------------
1219 	BEGIN
1220 	SELECT
1221 	    frv.responsibility_name
1222 	  , TO_CHAR(fcr.request_date, 'YYYY/MM/DD HH24:MI:SS')
1223 	  , fav.application_name
1224 	  , fu.user_name
1225 	  INTO
1226 	    cp_responsibility
1227 	  , cp_request_time
1228 	  , cp_application
1229 	  , cp_requested_by
1230 	  FROM
1231 	    fnd_concurrent_requests fcr
1232 	  , fnd_responsibility_vl frv
1233 	  , fnd_application_vl fav
1234 	  , fnd_user fu
1235 	  WHERE fcr.request_id = p_conc_request_id
1236 	    AND fcr.responsibility_application_id = frv.application_id
1237 	    AND fcr.responsibility_id = frv.responsibility_id
1238 	    AND frv.application_id = fav.application_id
1239 	    AND fu.user_id = fcr.requested_by;
1240 	EXCEPTION
1241 	  WHEN OTHERS THEN
1242 	  --  SRW.Message(31, 'Failed Request By and Request time Init.');
1243 	  null;
1244 	END;
1245 
1246 	--------------------------------------------------
1247 	--Change sysdate formatting
1248 	--------------------------------------------------
1249 	SELECT
1250 	  TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI')
1251 	INTO
1252 	  CP_SYSDATE
1253 	FROM
1254 	  DUAL;
1255 
1256 
1257 	--------------------------------------
1258 	-- Initialization for Set of Books  --
1259 	-- and Legal Entity                 --
1260 	--------------------------------------
1261 	BEGIN
1262 	  --Get VAT number
1263 	  CP_VAT_REGISTRATION_NUMBER :=
1264 	  INV_MGD_MVT_UTILS_PKG.Get_Org_VAT_Number
1265 	  ( p_entity_org_id => p_legal_entity_id
1266 	  , p_date          => sysdate);
1267 
1268 	  --Get other values
1269 	SELECT
1270 	  gllv.legal_entity_name,      hl.address_line_1,
1271 	  hl.address_line_2,           hl.address_line_3,
1272 	  hl.telephone_number_1,       hl.telephone_number_2,
1273 	  ppf.full_name,              -- hle.vat_registration_number,
1274 	  gllv.ledger_name
1275 	INTO
1276 	  CP_LEGAL_ENTITY_NAME,       CP_ENTITY_ADDRESS_LINE_1,
1277 	  CP_ENTITY_ADDRESS_LINE_2,   CP_ENTITY_ADDRESS_LINE_3,
1278 	  CP_TELEPHONE_NUMBER_1,      CP_TELEPHONE_NUMBER_2,
1279 	  CP_CONTACT_PERSON_NAME,     --CP_VAT_REGISTRATION_NUMBER,
1280 	  CP_SET_OF_BOOKS_NAME
1281 	FROM
1282 	  hr_locations_no_join hl,
1283 	  per_people_f ppf,
1284 	  gl_ledger_le_v gllv
1285 	WHERE gllv.legal_entity_id = P_LEGAL_ENTITY_ID
1286 	  AND gllv.ledger_category_code = 'PRIMARY'
1287 	  AND gllv.location_id = hl.location_id
1288 	  AND hl.designated_receiver_id = ppf.person_id(+)
1289 	  AND rownum < 2;
1290 
1291 	EXCEPTION
1292 	  WHEN OTHERS THEN
1293 	  --  SRW.Message(31, 'Failed in Set_of_books and Legal_Entity Init.');
1294 	  null;
1295 
1296 	END;
1297 
1298 
1299 	----------------------------------------
1300 	-- Initialize currency precision for
1301 	-- functional currency and transaction
1302 	-- currency
1303 	----------------------------------------
1304 	BEGIN
1305 	SELECT
1306 	  nvl(fc.extended_precision,1)
1307 	, nvl(fc.precision,1)
1308 	INTO
1309 	  CP_EXT_PRECISION_FUNC
1310 	, CP_PRECISION_FUNC
1311 	FROM
1312 	  fnd_currencies fc
1313 	WHERE fc.currency_code = P_CURRENCY_CODE
1314 	  AND rownum < 2;
1315 
1316 	EXCEPTION
1317 	  WHEN OTHERS THEN
1318 	  --  SRW.Message(31, 'Failed in currency precision.');
1319 	 null;
1320 	END;
1321 
1322 
1323 	----------------------------------------
1324 	-- Initialization for Tax information --
1325 	----------------------------------------
1326 	BEGIN
1327 	DECLARE
1328 	l_location_id NUMBER;
1329 	BEGIN
1330 	  SELECT
1331 	    tax_office_name
1332 	  , weight_uom_code
1333 	  , tax_office_location_id
1334 	  INTO
1335 	    CP_TAX_OFFICE_NAME
1336 	  , CP_STANDARD_UOM
1337 	  , l_location_id
1338 	  FROM
1339 	    mtl_stat_type_usages
1340 	  WHERE legal_entity_id = P_LEGAL_ENTITY_ID
1341 	    AND zone_code = P_ZONE_CODE
1342 	    AND stat_type = P_STAT_TYPE
1343 	    AND usage_type = P_USAGE_TYPE;
1344 
1345 	  BEGIN
1346 	    SELECT
1347 	      address_line_1
1348 	    , address_line_2
1349 	    , address_line_3
1350 	    INTO
1351 	      CP_TAX_OFFICE_ADDRESS_LINE_1
1352 	    , CP_TAX_OFFICE_ADDRESS_LINE_2
1353 	    , CP_TAX_OFFICE_ADDRESS_LINE_3
1354 	    FROM
1355 	      hr_locations_no_join
1356 	    WHERE location_id = l_location_id;
1357 
1358 	    EXCEPTION
1359 	      WHEN NO_DATA_FOUND THEN
1360 		BEGIN
1361 		  SELECT
1362 		    address1
1363 		  , address2
1364 		  , address3
1365 		  INTO
1366 		    CP_TAX_OFFICE_ADDRESS_LINE_1
1367 		  , CP_TAX_OFFICE_ADDRESS_LINE_2
1368 		  , CP_TAX_OFFICE_ADDRESS_LINE_3
1369 		  FROM
1370 		    hz_locations
1371 		  WHERE location_id = l_location_id;
1372 
1373 		  EXCEPTION
1374 		    WHEN OTHERS THEN
1375 		    --  SRW.Message(31, 'Failed in Tax Office Init');
1376 		    null;
1377 		END;
1378 
1379 	      WHEN OTHERS THEN
1380 		--SRW.Message(31, 'Failed in Tax Office Init');
1381 		null;
1382 	  END;
1383 	END;
1384 	END;
1385 
1386 
1387 	------------------------------------------------
1388 	-- Initialization for Start Date, End Date of --
1389 	-- one period                                 --
1390 	------------------------------------------------
1391 	BEGIN
1392 	  SELECT
1393 	    start_date
1394 	  , end_date
1395 	  INTO
1396 	    CP_start_date
1397 	  , CP_end_date
1398 	  FROM
1399 	    GL_PERIODS
1400 	  WHERE period_name = P_period_name
1401 	    AND rownum < 2;
1402 
1403 	EXCEPTION
1404 	    WHEN OTHERS THEN
1405 	--    SRW.Message(31, 'Failed in start_date and end_date Init');
1406 		null;
1407 	END;
1408 
1409 
1410 	/*
1411 	Fix bug 2230047, get commodity code from mtl_movement_statistics table directly
1412 	not use flexfield anymore
1413 	------------------------------------------------
1414 	-- Initialization for Commodity Structure id  --
1415 	-- of one Legal Entity                        --
1416 	------------------------------------------------
1417 	BEGIN
1418 	SELECT
1419 	 mcs.structure_id
1420 	INTO
1421 	 PLEX_COMMODITY_STRUCT_NUM
1422 	FROM
1423 	 mtl_stat_type_usages mstu
1424 	,mtl_category_sets mcs
1425 	WHERE mstu.legal_entity_id = P_LEGAL_ENTITY_ID
1426 	  AND mstu.zone_code = P_ZONE_CODE
1427 	  AND mstu.category_set_id = mcs.category_set_id
1428 	  AND rownum < 2;
1429 	EXCEPTION
1430 	  WHEN OTHERS THEN
1431 	   SRW.Message(31, 'Failed in conversion Init');
1432 	END;
1433 	*/
1434 	------------------------
1435 	-- Flexfield for ITEM --
1436 	------------------------
1437 	/*
1438 	BEGIN
1439 	SRW.USER_EXIT('FND FLEXSQL CODE="MSTK" NUM="PLEX_ITEM_STRUCT_NUM" APPL_SHORT_NAME="INV"
1440 		       OUTPUT="PLEX_ITEM_FLEX"
1441 		       MODE="SELECT"
1442 		       DISPLAY="ALL"
1443 		       TABLEALIAS="MSI"');
1444 	EXCEPTION
1445 	  WHEN SRW.USER_EXIT_FAILURE THEN
1446 	    SRW.Message(60,'Failed in ITEM Flexfield');
1447 	   WHEN OTHERS THEN
1448 	    SRW.Message(31, 'Failed in ITEM Flexfield');
1449 	END;
1450 	*/
1451 	/*
1452 	Fix bug 2230047, get commodity code from mtl_movement_statistics table directly
1453 	not use flexfield anymore
1454 	----------------------------------
1455 	-- Flexfield for COMMODITY_CODE --
1456 	----------------------------------
1457 	BEGIN
1458 	SRW.USER_EXIT('FND FLEXSQL CODE="MCAT"
1459 		       NUM="PLEX_COMMODITY_STRUCT_NUM"
1460 		       APPL_SHORT_NAME="INV"
1461 		       OUTPUT="PLEX_COMMODITY_FLEX"
1462 		       MODE="SELECT"
1463 		       DISPLAY="ALL"
1464 		       TABLEALIAS="MC"');
1465 	EXCEPTION
1466 	  WHEN SRW.USER_EXIT_FAILURE THEN
1467 	    SRW.Message(70,'Failed in COMMODITY_CODE Flexfield');
1468 	  WHEN OTHERS THEN
1469 	    SRW.Message(31, 'Failed in COMMODITY_CODE Flexfield ');
1470 	END;
1471 
1472 	BEGIN
1473 	SRW.USER_EXIT('FND FLEXSQL CODE="MCAT"
1474 		       NUM="PLEX_COMMODITY_STRUCT_NUM"
1475 		       APPL_SHORT_NAME="INV"
1476 		       OUTPUT="PLEX_COMMODITY_ORDER_BY"
1477 		       MODE="ORDER BY"
1478 		       DISPLAY="ALL"
1479 		       TABLEALIAS="MC"');
1480 	EXCEPTION
1481 	  WHEN SRW.USER_EXIT_FAILURE THEN
1482 	    SRW.Message(70,'Failed in COMMODITY_CODE Flexfield');
1483 	  WHEN OTHERS THEN
1484 	    SRW.Message(31, 'Failed in COMMODITY_CODE Flexfield');
1485 	END;
1486 	*/
1487 	-------------------------------------------
1488 	-- Populate report parameter placeholders
1489 	-- Displayed on cover page
1490 	-------------------------------------------
1491 	BEGIN
1492 	SELECT zone_display_name
1493 	  INTO cp_zone_name_cov
1494 	  FROM mtl_economic_zones_vl
1495 	 WHERE zone_code = p_zone_code
1496 	   AND rownum<2;
1497 
1498 	SELECT meaning
1499 	  INTO cp_rep_option_cov
1500 	  FROM fnd_lookup_values
1501 	 WHERE lookup_type = 'INTRASTAT_REPORT_OPTION'
1502 	   AND lookup_code = p_report_option
1503 	   AND enabled_flag = 'Y'
1504 	   AND language = userenv('LANG')
1505 	   AND rownum<2;
1506 
1507 	SELECT meaning
1508 	  INTO cp_mv_type_cov
1509 	  FROM fnd_lookups
1510 	 WHERE lookup_type = 'MVT_MOVEMENT_TYPE'
1511 	   AND lookup_code = p_movement_type
1512 	   AND enabled_flag = 'Y'
1513 	   AND rownum<2;
1514 
1515 	SELECT meaning
1516 	  INTO cp_usage_type_cov
1517 	  FROM fnd_lookups
1518 	 WHERE lookup_type = 'MVT_USAGE_TYPES'
1519 	   AND lookup_code = p_usage_type
1520 	   AND enabled_flag = 'Y'
1521 	   AND rownum<2;
1522 
1523 	SELECT meaning
1524 	  INTO cp_stat_type_cov
1525 	  FROM fnd_lookups
1526 	 WHERE lookup_type = 'MVT_STAT_TYPES'
1527 	   AND lookup_code = p_stat_type
1528 	   AND enabled_flag = 'Y'
1529 	   AND rownum<2;
1530 
1531 
1532 	EXCEPTION
1533 	  WHEN OTHERS THEN
1534 	--    SRW.Message(31, 'Failed cover page parameters initialization.');
1535 		null;
1536 	END;
1537 
1538 	-------------------------------------------
1539 	-- Populate p_mvt_id_where, used in main
1540 	-- query
1541 	-------------------------------------------
1542 	BEGIN
1543 	  IF P_MOVEMENT_TYPE IN ('A', 'D')
1544 	  THEN
1545 	    P_MVT_ID_WHERE := 'and mms.parent_movement_id = mms.movement_id';
1546 	  ELSE
1547 	    P_MVT_ID_WHERE :='and movement_id = (select min(movement_id)
1548 			       from mtl_movement_statistics
1549 			       where parent_movement_id = mms.parent_movement_id
1550 			       and movement_type = '''||P_MOVEMENT_TYPE||''' group by mms.parent_movement_id)';
1551 
1552 	  END IF;
1553 	END;
1554 	--srw.message(01,'in bef rep');
1555 
1556 	--------------------------------------------------------
1557 	--Populate reporting precision and rounding method
1558 	--from setup form. Can not create place holder in May-06
1559 	--somehow, so create user parameters to hold the value
1560 	--Fix bug 5203245
1561 	--------------------------------------------------------
1562 	BEGIN
1563 	  INV_MGD_MVT_UTILS_PKG.Get_Weight_Precision
1564 	      (p_legal_entity_id   => p_legal_entity_id
1565 	      , p_zone_code        => p_zone_code
1566 	      , p_usage_type       => p_usage_type
1567 	      , p_stat_type        => p_stat_type
1568 	      , x_weight_precision => p_rep_precision
1569 	      , x_rep_rounding     => p_rep_rounding);
1570 
1571 	  IF p_amount_display = 'W'
1572 	  THEN
1573 	    p_rep_precision := 0;
1574 	  ELSE
1575 	    --same as before, report according to currency precision
1576 	    p_rep_precision := cp_precision_func;
1577 	  END IF;
1578 
1579 	END;
1580 
1581 	RETURN (TRUE);
1582 END BEFOREREPORT;
1583 END INV_INVSTMVT_XMLP_PKG;
1584