DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_CREATE_ACCT_RPT_PVT

Source


1 PACKAGE BODY XLA_CREATE_ACCT_RPT_PVT  AS
2 -- $Header: xlaaprpt.pkb 120.16 2011/01/20 14:23:41 sgullape ship $
3 /*===========================================================================+
4 |  Copyright (c) 2003 Oracle Corporation BelmFont, California, USA           |
5 |                          ALL rights reserved.                              |
6 +============================================================================+
7 | FILENAME                                                                   |
8 |                                                                            |
9 |                                                                            |
10 | PACKAGE NAME                                                               |
11 |     XLA_CREATE_ACCT_RPT_PVT                                                |
12 |                                                                            |
13 | DESCRIPTION                                                                |
14 |     Package body. This provides XML extract for Create Accounting Report.  |
15 |                                                                            |
16 | HISTORY                                                                    |
17 |     01/27/2006  V. Swapna       Created                                    |
18 |     03/27/2006  V. Swapna       Modify the filter for zero amount lines    |
19 |                                 and add the initialization routine for the |
20 |                                 trace messages to appear in the fnd_log.   |
21 |     08/24/2006  Ejaz Sayyed     bug#5417847 change in condition to pick the|
22 |                                 negative amt lines and drop zero amt lines |
23 |                                 i.e.debit/credit <> 0 for p_zero_amt_filter|
24 |     02/16/2009  N. K. Surana    Instead of function calling new PROCEDURE  |
25 |                                 xla_report_utility_pkg.get_transaction_id  |
26 +===========================================================================*/
27 
28 --=============================================================================
29 --               *********** Local Trace Routine **********
30 --=============================================================================
31 C_LEVEL_STATEMENT     CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
32 C_LEVEL_PROCEDURE     CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
33 C_LEVEL_EVENT         CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
34 C_LEVEL_EXCEPTION     CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
35 C_LEVEL_ERROR         CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
36 C_LEVEL_UNEXPECTED    CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
37 
38 C_LEVEL_LOG_DISABLED  CONSTANT NUMBER := 99;
39 C_DEFAULT_MODULE      CONSTANT VARCHAR2(240):= 'xla.plsql.XLA_CREATE_ACCT_RPT_PVT ';
40 
41 g_log_level           NUMBER;
42 g_log_enabled         BOOLEAN;
43 
44 
45 PROCEDURE trace
46        (p_msg                        IN VARCHAR2
47        ,p_level                      IN NUMBER
48        ,p_module                     IN VARCHAR2) IS
49 BEGIN
50    IF (p_msg IS NULL AND p_level >= g_log_level) THEN
51       fnd_log.message(p_level, NVL(p_module,C_DEFAULT_MODULE));
52    ELSIF p_level >= g_log_level THEN
53       fnd_log.string(p_level, NVL(p_module,C_DEFAULT_MODULE), p_msg);
54    END IF;
55 
56 EXCEPTION
57    WHEN xla_exceptions_pkg.application_exception THEN
58       RAISE;
59    WHEN OTHERS THEN
60       xla_exceptions_pkg.raise_message
61          (p_location   => 'XLA_CREATE_ACCT_RPT_PVT.trace');
62 END trace;
63 
64 --=============================================================================
65 --                   ******* Print Log File **********
66 --=============================================================================
67 PROCEDURE print_logfile(p_msg  IN  VARCHAR2) IS
68 BEGIN
69 
70    fnd_file.put_line(fnd_file.log,p_msg);
71 
72 EXCEPTION
73    WHEN xla_exceptions_pkg.application_exception THEN
74       RAISE;
75    WHEN OTHERS THEN
76       xla_exceptions_pkg.raise_message
77          (p_location   => 'XLA_CREATE_ACCT_RPT_PVT.print_logfile');
78 END print_logfile;
79 
80 
81 --=============================================================================
82 --          *********** public procedures and functions **********
83 --=============================================================================
84 --=============================================================================
85 --
86 --
87 --
88 --    BeforeReport
89 --
90 --
91 --
92 --=============================================================================
93 
94 FUNCTION BeforeReport RETURN BOOLEAN IS
95 
96 l_errbuf                  VARCHAR2(2000);
97 l_accounting_batch_id     NUMBER;
98 l_request_id              NUMBER;
99 l_event_source_info       xla_events_pub_pkg.t_event_source_info;
100 l_log_module              VARCHAR2(240);
101 l_fnd_debug_status	  VARCHAR2(255);
102 BEGIN
103 
104   -- Get the FND: Debug Log Status
105   -- Bug No : 11063454
106    SELECT decode(fnd_profile.value('AFLOG_ENABLED'), 'Y', 'Yes', 'No') INTO l_fnd_debug_status FROM dual;
107 
108    print_logfile(to_char(sysdate,'DD-MON-YYYY HH24:MI:SS')||' - FND: Debug Log Enabled : '|| l_fnd_debug_status);
109 
110    print_logfile(to_char(sysdate,'DD-MON-YYYY HH24:MI:SS')||
111                                  ' - Beginning of the Report');
112   -- Get the user id
113 
114      SELECT fnd_profile.value('USER_ID') INTO p_user_id FROM dual;
115   --
116   -- Get the Request id of the concurrent program
117   --
118    IF (C_LEVEL_STATEMENT >= g_log_level) THEN
119        trace('P_CONC_REQUEST_ID = '|| P_CONC_REQUEST_ID,C_LEVEL_STATEMENT,l_log_module);
120        trace('P_USER_ID = '|| p_user_id,C_LEVEL_STATEMENT,l_log_module);
121    END IF;
122 
123    IF P_CONC_REQUEST_ID IS NOT NULL THEN
124       RETURN(TRUE);
125    END IF;
126 
127    P_CONC_REQUEST_ID := fnd_global.conc_request_id();
128 
129    P_REQUEST_ID := NVL(P_REQUEST_ID, P_CONC_REQUEST_ID);
130 
131    IF (C_LEVEL_STATEMENT >= g_log_level) THEN
132       trace('P_REQUEST_ID = '|| P_REQUEST_ID ,C_LEVEL_STATEMENT,l_log_module);
133       trace('P_CONC_REQUEST_ID = '|| P_CONC_REQUEST_ID ,C_LEVEL_STATEMENT,l_log_module);
134       trace('P_ENTITY_ID = '|| P_REQUEST_ID ,C_LEVEL_STATEMENT,l_log_module);
135       trace('P_END_DATE = '|| P_END_DATE ,C_LEVEL_STATEMENT,l_log_module);
136    END IF;
137 
138    IF (P_REQUEST_ID = P_CONC_REQUEST_ID) THEN
139 
140       IF P_ENTITY_ID IS NULL THEN
141          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
142            trace('Calling xla_accounting_pub_pkg.accounting_program_batch'
143                  ,C_LEVEL_STATEMENT
144                  ,l_log_module);
145          END IF;
146 
147          xla_accounting_pub_pkg.accounting_program_batch
148             (p_source_application_id   => P_SOURCE_APPLICATION_ID
149             ,p_application_id          => P_APPLICATION_ID
150             ,p_ledger_id               => P_LEDGER_ID
151             ,p_process_category        => P_PROCESS_CATEGORY_CODE
152             ,p_end_date                => P_END_DATE
153             ,p_accounting_flag         => P_CREATE_ACCOUNTING_FLAG
154             ,p_accounting_mode         => P_ACCOUNTING_MODE
155             ,p_error_only_flag         => P_ERRORS_ONLY_FLAG
156             ,p_transfer_flag           => P_TRANSFER_TO_GL_FLAG
157             ,p_gl_posting_flag         => P_POST_IN_GL_FLAG
158             ,p_gl_batch_name           => P_GL_BATCH_NAME
159             ,p_valuation_method        => P_VALUATION_METHOD_CODE
160             ,p_security_id_int_1       => P_SECURITY_INT_1
161             ,p_security_id_int_2       => P_SECURITY_INT_2
162             ,p_security_id_int_3       => P_SECURITY_INT_3
163             ,p_security_id_char_1      => P_SECURITY_CHAR_1
164             ,p_security_id_char_2      => P_SECURITY_CHAR_2
165             ,p_security_id_char_3      => P_SECURITY_CHAR_3
166             ,p_accounting_batch_id     => l_accounting_batch_id
167             ,p_errbuf                  => l_errbuf
168             ,p_retcode                 => C_ACCT_PROG_RETURN_CODE);
169 
170        ELSE
171 
172           IF (C_LEVEL_STATEMENT >= g_log_level) THEN
173            trace('Calling xla_accounting_pub_pkg.accounting_program_document'
174                  ,C_LEVEL_STATEMENT
175                  ,l_log_module);
176           END IF;
177 
178           l_event_source_info.application_id := P_APPLICATION_ID;
179           xla_accounting_pkg.accounting_program_document
180                  (p_application_id             => P_APPLICATION_ID
181                  ,p_entity_id                  => P_ENTITY_ID
182                  ,p_accounting_flag            => P_CREATE_ACCOUNTING_FLAG
183                  ,p_accounting_mode            => P_ACCOUNTING_MODE
184                  ,p_gl_posting_flag            => P_POST_IN_GL_FLAG
185                  ,p_offline_flag               => 'Y'
186                  ,p_accounting_batch_id        => l_accounting_batch_id
187                  ,p_errbuf                     => l_errbuf
188                  ,p_retcode                    => C_ACCT_PROG_RETURN_CODE);
189 
190       END IF;
191    END IF;
192 
193    IF (C_LEVEL_STATEMENT >= g_log_level) THEN
194            trace('l_accounting_batch_id = '||l_accounting_batch_id ,C_LEVEL_STATEMENT ,l_log_module);
195            trace('l_errbuf = '||l_errbuf ,C_LEVEL_STATEMENT ,l_log_module);
196            trace('C_ACCT_PROG_RETURN_CODE = '||C_ACCT_PROG_RETURN_CODE ,C_LEVEL_STATEMENT ,l_log_module);
197    END IF;
198 
199 
200    FOR j IN 1..xla_transfer_pkg.g_arr_group_id.COUNT
201       LOOP
202          IF j=1 THEN
203 	    p_group_id_str := TO_CHAR(xla_transfer_pkg.g_arr_group_id(j));
204 	 ELSE
205 	    p_group_id_str := p_group_id_str||','|| TO_CHAR(xla_transfer_pkg.g_arr_group_id(j));
206          END IF;
207    END LOOP;
208 
209   --
210   -- Get The User Transaction identifiers
211   --
212   IF p_include_user_trx_id_flag ='Y' AND P_REPORT_STYLE in ('D','S') THEN --bug 9903723
213      /* p_trx_identifiers :=
214         xla_report_utility_pkg.get_transaction_id(p_application_id
215                                                   ,p_ledger_id);  */  --Removed for bug 7580995
216 
217              xla_report_utility_pkg.get_transaction_id
218             (p_resp_application_id  => p_application_id
219             ,p_ledger_id            => p_ledger_id
220             ,p_trx_identifiers_1    => p_trx_identifiers_1
221             ,p_trx_identifiers_2    => p_trx_identifiers_2
222             ,p_trx_identifiers_3    => p_trx_identifiers_3
223             ,p_trx_identifiers_4    => p_trx_identifiers_4
224             ,p_trx_identifiers_5    => p_trx_identifiers_5);  --Added for bug 7580995
225 
226   ELSE
227    --p_trx_identifiers    := ' , NULL ';      --Removed for bug 7580995
228      p_trx_identifiers_1  := ',NULL  USERIDS '; --Added for bug 7580995
229   END IF;
230    --
231    -- Event Filter for Summary mode
232    --
233 
234    IF P_REPORT_STYLE = 'S' THEN
235       P_EVENT_FILTER := ' AND EVT.PROCESS_STATUS_CODE IN (''E'',''I'',''R'') ';
236    END IF;
237 
238    --
239    -- Filter for Zero Amount lines and Entries. Bugs 4339457 and 5100304
240    --
241    IF p_include_zero_amount_lines = 'N' THEN
242       p_zero_amt_filter :=
243          p_zero_amt_filter
244                  ||' AND (NVL(ael.accounted_dr,0) <> 0 OR NVL(ael.accounted_cr,0) <> 0)
245                      AND NVL(aeh.zero_amount_flag,''N'') = ''N''';
246    END IF;
247 
248    P_REQ_ID := P_REQUEST_ID;
249 
250    IF p_application_id IS NOT NULL THEN
251       p_application_query := '
252           SELECT application_id                   application_id
253                 ,application_name                 application_name
254                 ,:p_req_id                        request_id
255             FROM fnd_application_tl
256            WHERE language                = USERENV(''LANG'')
257              AND application_id          = :p_application_id';
258    ELSE
259       p_application_query := '
260           SELECT fat.application_id                application_id
261                 ,fat.application_name              application_name
262                 ,:p_req_id                         request_id
263             FROM fnd_application_tl      fat
264            WHERE fat.language            = USERENV(''LANG'')
265              AND EXISTS
266                     (SELECT 1
267                        FROM xla_events
268                       WHERE application_id          = fat.application_id
269                         AND request_id              = :p_req_id)';
270    END IF;
271 
272 
273   IF (C_LEVEL_STATEMENT >= g_log_level) THEN
274            trace('End of BeforeReport '
275                  ,C_LEVEL_STATEMENT
276                  ,l_log_module);
277   END IF;
278 
279   RETURN(TRUE);
280 
281 EXCEPTION
282 WHEN OTHERS THEN
283    xla_exceptions_pkg.raise_message
284       (p_location  => 'xla_create_acct_rpt_pvt.BeforeReport ');
285 END;
286 
287 
288 --=============================================================================
289 --
290 --
291 --
292 --    AfterReport
293 --
294 --
295 --
296 --=============================================================================
297 
298 FUNCTION AfterReport RETURN BOOLEAN IS
299 l_temp         BOOLEAN;
300 l_log_module   VARCHAR2(240);
301 BEGIN
302 
303  IF (C_LEVEL_STATEMENT >= g_log_level) THEN
304    trace('BEGIN of AfterReport' ,C_LEVEL_STATEMENT ,l_log_module);
305    trace('C_ACCT_PROG_RETURN_CODE = '||C_ACCT_PROG_RETURN_CODE,C_LEVEL_STATEMENT ,l_log_module);
306  END IF;
307 
308   IF C_ACCT_PROG_RETURN_CODE = 0 THEN
309         NULL;
310   ELSIF C_ACCT_PROG_RETURN_CODE = 1 THEN
311         l_temp := fnd_concurrent.set_completion_status
312                      (status    => 'WARNING'
313                      ,message   => NULL);
314   ELSE
315         l_temp := fnd_concurrent.set_completion_status
316                      (status    => 'ERROR'
317                      ,message   => NULL);
318   END IF;
319 
320 
321   IF (C_LEVEL_STATEMENT >= g_log_level) THEN
322      trace('END of AfterReport'
323            ,C_LEVEL_STATEMENT
324            ,l_log_module);
325   END IF;
326   print_logfile(to_char(sysdate,'DD-MON-YYYY HH24:MI:SS')|| ' - End of the Report');
327   RETURN (TRUE);
328 
329 EXCEPTION
330 WHEN OTHERS THEN
331    xla_exceptions_pkg.raise_message
332         (p_location   => 'xla_create_acct_rpt_pvt.AfterReport');
333 
334 END;
335 
336 --=============================================================================
337 --          *********** Initialization routine **********
338 --=============================================================================
339 
340 --=============================================================================
341 --
342 --
343 --
344 --
345 --
346 -- Following code is executed when the package body is referenced for the first
347 -- time
348 --
349 --
350 --
351 --
352 --
353 --
354 --
355 --
356 --=============================================================================
357 
358 BEGIN
359    g_log_level      := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
360    g_log_enabled    := fnd_log.test
361                           (log_level  => g_log_level
362                           ,MODULE     => C_DEFAULT_MODULE);
363 
364    IF NOT g_log_enabled  THEN
365       g_log_level := C_LEVEL_LOG_DISABLED;
366    END IF;
367 
368 
369 END XLA_CREATE_ACCT_RPT_PVT  ;