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