[Home] [Help]
PACKAGE BODY: APPS.XLA_AE_LINES_PKG
Source
1 PACKAGE BODY xla_ae_lines_pkg AS
2 /* $Header: xlajelns.pkb 120.197.12010000.7 2008/11/13 10:00:46 shrakuma ship $ */
3 /*===========================================================================+
4 | Copyright (c) 2001-2002 Oracle Corporation |
5 | Redwood Shores, CA, USA |
6 | All rights reserved. |
7 +============================================================================+
8 | PACKAGE NAME |
9 | XLA_AE_LINES_PKG |
10 | |
11 | DESCRIPTION |
12 | |
13 | |
14 | HISTORY |
15 | 20-NOV-2002 K.Boussema Created |
16 | 08-JAN-2003 K.Boussema Changed xla_temp_journal_entries by |
17 | xla_journal_entries_temp |
18 | 10-JAN-2003 K.Boussema Removed gl_sl_link_id column from temp table |
19 | Added 'dbdrv' command |
20 | 11-MAR-2003 K.Boussema Made changes for the new bulk approach of the|
21 | accounting engine |
22 | 19-MAR-2003 K.Boussema Added distribution_id_num_1..5 columns |
23 | 03-APR-2003 K.Boussema Included Analytical criteria feature |
24 | 19-APR-2003 K.Boussema Included Error messages |
25 | 06-MAI-2003 K.Boussema Modified to fix bug 2936066(Unbalanced JE) |
26 | 13-MAI-2003 K.Boussema Renamed temporary tables xla_je_lines_gt by |
27 | xla_ae_lines_gt, xla_je_headers_gt by |
28 | xla_ae_headers_gt |
29 | Renamed in xla_distribution_links the column |
30 | base_amount by ledger_amount |
31 | 20-MAI-2003 K.Boussema Added a Token to XLA_AP_CANNOT_INSERT_JE |
32 | message |
33 | 27-MAI-2003 K.Boussema Renamed code_combination_status by |
34 | code_combination_status_flag |
35 | Renamed base_amount by ledger_amount |
36 | 30-MAI-2003 K.Boussema Renamed EXCHANGE_RATE_DATE by EXCHANGE_DATE |
37 | bug 2979525 |
38 | 17-JUL-2003 K.Boussema Reviewd the code |
39 | 21-JUL-2003 K.Boussema Changed reversal options from 'S' and 'R' to |
40 | 'SIGN' and 'SIDE' |
41 | 24-JUL-2003 K.Boussema Updated the error messages |
42 | 10-SEP-2003 K.Boussema Changed to fix bug3095206:Accounting Reversal|
43 | 19-SEP-2003 K.Boussema Code changed to include reversed_ae_header_id|
44 | and reversed_line_num, see bug 3143095 |
45 | 30-SEP-2003 K.Boussema Added a validation for Accounting reversal |
46 | 03-OCT-2003 K.Boussema Fixed standard accounting reversal,bug3174532|
47 | Changed description width to 1996 |
48 | 06-OCT-2003 K.Boussema Reviewed the StandardAccountingReversal() pg,|
49 | bug 3175581 |
50 | 16-OCT-2003 K.Boussema Fixed the issue when the entered and |
51 | accounted amounts are reversed. |
52 | 22-OCT-2003 K.Boussema Changed to capture the Merge Matching Lines |
53 | preference for Accounting Reversal from JLT |
54 | 29-OCT-2003 K.Boussema Reviewed to fix bug 3222733 |
55 | 04-NOV-2003 K.Boussema Added TransactionReversal_2, LineReversal_2 |
56 | 13-NOV-2003 K.Boussema Changed to store Accounting and transaction |
57 | coa ids defined in Account Derivation rules |
58 | 21-NOV-2003 K.Boussema Added SetEnteredAmount to fix bug 3233610 |
59 | 25-NOV-2003 Shishir Joshi Made changers for accounting reversal. |
60 | Merged procedures StandardAccountingReversal |
61 | and LineReversal_2. |
62 | Merged procedures TransactionReversal and |
63 | TransactionReversal_2. |
64 | 05-DEC-2003 K.Boussema Changed the code to fix bug3289875 |
65 | 12-DEC-2003 K.Boussema Renamed target_coa_id in xla_ae_lines_gt |
66 | by ccid_coa_id |
67 | 18-DEC-2003 K.Boussema Changed to fix bug 3042840,3307761,3268940 |
68 | 3310291 and 3320689 |
69 | 07-JAN-2003 K.Boussema Changed to populate switch_side_flag column |
70 | 19-JAN-2004 K.Boussema Removed the validation of Third party |
71 | 20-JAN-2004 K.Boussema Updated the message error XLA_AP_COA_INVALID |
72 | and Reviewed the validation of PARTY_TYPE |
73 | 05-FEB-2004 S.Singhania Changes based on bug 3419803. |
74 | - correct column names are used |
75 | TAX_LINE_REF_ID, TAX_SUMMARY_LINE_REF_ID,|
76 | TAX_REC_NREC_DIST_REF_ID |
77 | - reference to the column is removed. |
78 | TAX_REC_NREC_SUMMARY_DIST_REF |
79 | - Aaccounting attribute codes are modified |
80 | - variables storing the column value |
81 | TAX_REC_NREC_SUMMARY_DIST_REF are removed|
82 | 17-FEB-2004 K.Boussema Revised SetDebitCreditAmounts to fix issue |
83 | reported in bug 3438418 |
84 | Made changes for the FND_LOG. |
85 | 11-MAR-2004 K.Boussema Reviewed StandardAccountingReversal and |
86 | TransactionReversal |
87 | Removed the validations of accounting class |
88 | and the party type |
89 | 22-MAR-2004 K.Boussema Added a parameter p_module to the TRACE calls|
90 | and the procedure. |
91 | 04-MAY-2004 K.Boussema Bug 3531441: updated call to message |
92 | XLA_AP_NO_LEDGER_AMOUNT |
93 | 11-MAY-2004 K.Boussema Removed the call to XLA trace routine from |
94 | trace() procedure |
95 | 17-MAY-2004 W.Shen Changes for attribute enhancement project |
96 | Change to InsertLines, |
97 | StandardAccountingReversal |
98 | move TransactionReversal toxla_ae_headers_pkg |
99 | accounting_reversal is no longer used |
100 | 26-MAY-2004 W.Shen remove debug code. |
101 | 17-JUN-2004 K.Boussema Removed the population with null the |
102 | conversion rate and the conversion type |
103 | when entered entered currency code = ledger|
104 | currency code, bug 3592650 |
105 | 18-JUN-2004 K.Boussema Fixed GSCC warning |
106 | 27-JUN-2004 W.Shen Fix the validation links(ValidateLinks, |
107 | ValidateRevLinks bug 3787453 |
108 | 22-Sep-2004 S.Singhania Made changes for the bulk peroformance. It |
109 | has changed the code at number of places. |
110 | 03-Nov-2004 S.Singhania Bug 3984919. Fixed the technical problem in |
111 | AccountingReversal. |
112 | Also modified the insert statments in |
113 | AccountingRevesal to use amounts from |
114 | xla_distribution_links instead of amounts |
115 | from xla_ae_lines table. |
116 | 09-MAR-2005 W.Shen Ledger Currency Project. |
117 | 14-Mar-2005 K.Boussema Changed for ADR-enhancements. |
118 | 28-Mar-2005 A.Wan Changed for Business Flow. |
119 | 20-Apr-2005 W. Shen replace column document_rounding_amount by |
120 | doc_rounding_acctd_amt |
121 | 25-Apr-2005 S.singhania Bug 4257522. Issue fixed with the transaction |
122 | reversls. |
123 | 19-MAI-2005 K.Boussema Reviewed set_segment to fix bug4304098 |
124 | 25-MAY-2005 W.Chan fix bug4384869 - BusinessFlowSameEntries |
125 | 1-Jul-2005 W. Shen Bug 4243728, 4444730 . |
126 | set entered_cr/dr side based on |
127 | unrounded_accounted_amount if entered is 0 |
128 | (mainly for gain/loss line) |
129 | calculate rounded amount sole based on |
130 | the calculate_amts_flag. |
131 | set calculate_amts_flag correctly. |
132 | 11-Jul-2005 A.Wan 4262811 - MPA project |
133 | 12-Jul-2005 W. Chan Bug 4478604 - Fixed business flow for sec |
134 | ledg ALC ledg. Fixed accounted amount calc |
135 | for business flow. |
136 | 9-Sep-2005 W. Shen Bug 4596489, msg XLA_AP_NO_LEDGER_AMOUNT |
137 | has moved one token |
138 | 22-Sep-2005 S.Singhania Bug 4544725. Implemented Business Flows and |
139 | Reversals for Non-Upgraded JEs. |
140 | 26-Sep-2005 W. Shen Bug 4628603. reset g_transaction_accounts |
141 | after insertion so no duplicated rows will |
142 | be inserted. |
143 | removed the header_num in AccountingReversal|
144 | since it may cause unique index violated |
145 | 12-Oct-2005 A.Wan 4656703 - bflow prior entry amt incorrect |
146 | 18-Oct-2005 V. Kumar Removed code for Analytical Criteria |
147 | 7-Nov-2005 W.Shen 4655713 - bflow same entry does not work |
148 | 17-Nov-2005 W.Shen 4727011 - unique index violated |
149 | In accountingreversal, when inserting header|
150 | for lines that do not have header yet, the |
151 | join condition of header_num is not correct |
152 | add nvl for join of header_num since it |
153 | could be null |
154 | 22-Dec-2005 W.Chan 4903255 - Prior Entry Bflow changes |
155 | 1) Exclude reversal from prior entry |
156 | 2) Allow multiple prior entries |
157 | 22-Dec-2005 A.Wan 4669308 - AccountingReversal - for MPA/Accrual |
158 | reversal. |
159 | 3-Jan-2006 W. Chan Bug 4924492 - Populate budget version id for |
160 | accounting reversal |
161 | 4-Jan-2006 A. Govil Bug 4922099 - Handle Federal Non-upgraded |
162 | entries. |
163 | 7-Jan-2006 W. Chan Bug 4930297 - BflowPriorEntries error cursor |
164 | not work if bflow app id is null |
165 | 20-Jan-2006 W.Chan 4946123 - BC changes for prior entry |
166 | 27-Jan-2005 A.Wan 5001981 - Same entry exclude lines with |
167 | PRIOR_ENTRY business flow method. |
168 | 27-Jan-2006 A.Wan 4913967 - performance change for |
169 | BusinessFlowSameEntries. |
170 | 27-Jan-2006 V.Kumar 4963125 Added hint and join based on appl_id |
171 | in AccountingReversal. |
172 | 27-Jan-2006 A.Wan 4655713 - to set proper status for SameEntry. |
173 | 31-Jan-2006 A.Wan 4963422 - set header_num to 0 in acct reversal|
174 | 01-Feb-2006 A.Wan 4655713b - modify BusinessFlowPriorEntries and |
175 | BusinessFlowSameEntries to inherit |
176 | ae_lines_gt detail for bflow entries|
177 | for MPA and Accrual Reversal lines. |
178 | 10-Feb-2006 A.Wan 5019460 - could not reverse prior entries. |
179 | 13-Feb-2006 V.Kumar 4955764 Populating Accounting_date in |
180 | xla_ae_lines_gt |
181 | 14-Feb-2006 A.Wan 4967526 - copy following for Third Party info |
182 | in BusinessFlowPriorEntries: |
183 | - merge_code_combination_id |
184 | - merge_party_id |
185 | - merge_party_site_id |
186 | 20-Feb-2006 A.Wan 4913967 - remove redundant GROUP BY in |
187 | BusinessFlowSameEntries. |
188 | 28-Feb-2006 A.Wan 5068675 - undo fix on 20-Feb for bug 4913967 |
189 | 01-Mar-2006 A.Wan 5055878 - Accounting reversal does not handle |
190 | reversal method of SIGN. |
191 | 07-Mar-2006 A.Wan 4693816 - do not assign PARTY_TYPE is size is |
192 | more than 1. |
193 | 08-Mar-2006 V.Kumar Modified procedure SetNewLines and added new |
194 | procedure SetNullLine |
195 | 13-Mar-2006 A.Wan 5086984 - modify MPA/Accrual reversal in |
196 | AccountingReversal for performance. |
197 | 27-Mar-2006 A.Wan 5108415 - modify Accounting reversal for |
198 | peformance fix. |
199 | 15-Apr-2006 A.Wan 5132302 - add Applied To Amount for Gain/Loss |
200 | 25-Apr-2006 A.Wan 5183946 - line acct reversal error for Accrual |
201 | Reversal. |
202 | 09-May-2006 V.Kumar 5194849 Modified procedure SetAcctReversalAttrs|
203 | to populate GL_date for Reversal Acct |
204 | 09-May-2006 A.Wan 5204178 - cannot find PE for sec ledger if |
205 | valuation method is Yes. |
206 | 19-May-2006 V.Kumar 5229264 Modified procedure SetTrxReversalAttrs |
207 | 11-May-2006 A.Wan 5189664 - reversal line not stamped with |
208 | date from reversal event. |
209 | 09-May-2006 A.Wan 5162408 - invalid value for acct attribute. |
210 | 22-Jun-2006 W.Shen 5294631, 5259776 - put gain/loss amount on dr |
211 | side as well so reversal can handle |
212 | also, add ccid mapping for g/l lines |
213 | 22-Jun-2006 A.Wan 5100860 - make sure to assign a value to |
214 | HEADER_NUM in InsertLines. |
215 | 28-Jul-2006 A.Wan 5357406 - prior entry performance fix |
216 | 01-Aug-2006 A.Wan 5412560 - line reversal for MPA/AccRev. |
217 | 17-Aug-2006 A.Wan 5443083 - delete zero amt same entry in ALC |
218 | and secondary ledger. |
219 | 23-Aug-2006 A.Wan 5486053 - add HINT to same entry |
220 | 25-Aug-2006 A.Wan 5479652 - modify condition in line reversal. |
221 | 01-SEP-2006 A.Wan 5163338 - raise error when CCID is -1 |
222 | 20-NOV-2006 A.Wan 5666366 - do not execute MPA-prior entry SQL |
223 | if there are no MPA in this run. |
224 | 26-jan-2007 A.Wan 5845547 - upgrade fail for not upgraded bflow |
225 | and reversal transactions. Add |
226 | upgrade party attributes. |
227 | 14-Dec-2007 V.Swapna 6648062 - Populate xla_ae_lines_gt with |
228 | the values passed in override acctd |
229 | amts accounting attribute and use |
230 | it in business flow procedure |
231 | 31-Dec-2007 V. Swapna 5339999 - Changes to BusinessFlowPriorEntries |
232 | for Historic upgrade of secondary/alc|
233 | 25-Jan-2007 S.Sawhney 6658161,6727907 --merged branchline fixes onto mainline |
234 | 05-Nov-2007 KARAMAKR 7485529 - merged branchline fixes onto mainline|
235 | 06-Nov-2008 VGOPISET 7337288 - AccountingReversal is changed to |
236 | consider the SWITCH_SIDE option of |
237 | Reversal Event rather than value of |
238 | Original Event |
239 +===========================================================================*/
240 --
241 --+==========================================================================+
242 --| |
243 --| |
244 --| CONSTANT |
245 --| |
246 --| |
247 --+==========================================================================+
248 --
249 C_MAXROWS CONSTANT NATURAL := 1000;
250 C_BULK_LIMIT CONSTANT NUMBER := 5000;
251 --
252 --
253 -- Accounting entry type code
254 --
255 C_STANDARD CONSTANT VARCHAR2(30) := 'STANDARD';
256 C_INVALID_STATUS CONSTANT VARCHAR2(1) := 'I';
257 C_DRAFT_STATUS CONSTANT VARCHAR2(1) := 'D';
258 C_FINAL_STATUS CONSTANT VARCHAR2(1) := 'F';
259
260 -- ccid status
261 C_CREATED CONSTANT VARCHAR2(30) := 'CREATED';
262 C_PROCESSING CONSTANT VARCHAR2(30) := 'PROCESSING';
263 C_NOT_PROCESSED CONSTANT VARCHAR2(30) := 'NOT_PROCESSED';
264 C_INVALID CONSTANT VARCHAR2(30) := 'INVALID';
265
266 C_MAP_CCID CONSTANT VARCHAR2(30) := 'MAP_CCID';
267 C_MAP_QUALIFIER CONSTANT VARCHAR2(30) := 'MAP_QUALIFIER';
268 C_MAP_SEGMENT CONSTANT VARCHAR2(30) := 'MAP_SEGMENT';
269
270 --
271 C_ACTUAL CONSTANT VARCHAR2(1) := 'A';
272 C_BUDGET CONSTANT VARCHAR2(1) := 'B';
273 C_ENCUMBRANCE CONSTANT VARCHAR2(1) := 'E';
274 --
275 C_DEBIT CONSTANT VARCHAR2(1) := 'D';
276 C_CREDIT CONSTANT VARCHAR2(1) := 'C';
277 --
278 C_SWITCH CONSTANT VARCHAR2(1) := 'Y';
279 C_NO_SWITCH CONSTANT VARCHAR2(1) := 'N';
280 --
281 C_ALL CONSTANT VARCHAR2(1) := 'A';
282 C_SAME_SIDE CONSTANT VARCHAR2(1) := 'W';
283 C_NO_MERGE CONSTANT VARCHAR2(1) := 'N';
284 --
285 -- 4669308
286 C_NO_REVERSAL CONSTANT VARCHAR2(20) := 'NO_MPA_REVERSAL';
287 --+==========================================================================+
288 --| |
289 --| |
290 --| GLobal structure For Accounting Reversal |
291 --| |
292 --| |
293 --+==========================================================================+
294
295 --
296 TYPE t_rec_reverse_line IS RECORD (
297 --
298 ae_header_id NUMBER,
299 line_num NUMBER,
300 accounting_class VARCHAR2(30),
301 --
302 ccid NUMBER,
303 --
304 gl_transfer_mode VARCHAR2(1),
305 acct_entry_type_code VARCHAR2(1),
306 merge_duplicate_code VARCHAR2(1),
307 --
308 entered_amount NUMBER,
309 ledger_amount NUMBER,
310 entered_dr NUMBER,
311 entered_cr NUMBER,
312 accounted_dr NUMBER,
313 accounted_cr NUMBER,
314 currency_code VARCHAR2(15),
315 curr_conversion_date DATE,
316 curr_conversion_rate NUMBER,
317 curr_conversion_type VARCHAR2(30),
318 description VARCHAR2(1996),
319 --
320 -- line descriptions
321 --
322 party_id NUMBER,
323 party_site_id NUMBER,
324 party_type_code VARCHAR2(1),
325 --
326 statistical_amount NUMBER,
327 ussgl_transaction VARCHAR2(30),
328 --
329 jgzz_recon_ref VARCHAR2(240),
330 --
331 distribution_id_char_1 VARCHAR2(240),
332 distribution_id_char_2 VARCHAR2(240),
333 distribution_id_char_3 VARCHAR2(240),
334 distribution_id_char_4 VARCHAR2(240),
335 distribution_id_char_5 VARCHAR2(240),
336 distribution_id_num_1 NUMBER,
337 distribution_id_num_2 NUMBER,
338 distribution_id_num_3 NUMBER,
339 distribution_id_num_4 NUMBER,
340 distribution_id_num_5 NUMBER,
341 sys_distribution_type VARCHAR2(30),
342 --
343 rev_distrib_id_char_1 VARCHAR2(240),
344 rev_distrib_id_char_2 VARCHAR2(240),
345 rev_distrib_id_char_3 VARCHAR2(240),
346 rev_distrib_id_char_4 VARCHAR2(240),
347 rev_distrib_id_char_5 VARCHAR2(240),
348 rev_distrib_id_num_1 NUMBER,
349 rev_distrib_id_num_2 NUMBER,
350 rev_distrib_id_num_3 NUMBER,
351 rev_distrib_id_num_4 NUMBER,
352 rev_distrib_id_num_5 NUMBER,
353 rev_sys_distribution_type VARCHAR2(30),
354 --
355 acc_reversal_option VARCHAR2(1),
356 reversal_credit_ccid NUMBER,
357 reversal_debit_ccid NUMBER,
358 --
359 mpa_option VARCHAR2(30), -- 4262811
360 mpa_start_date DATE, -- 4262811
361 mpa_end_date DATE, -- 4262811
362 -- Removed for 4262811 MPA
363 -- deferred_indicator VARCHAR2(1),
364 -- deferred_start_date DATE,
365 -- deferred_end_date DATE,
366 -- deferred_no_period NUMBER,
367 -- deferred_period_type VARCHAR2(1),
368 --
369 tax_line_ref NUMBER,
370 tax_summary_line_ref NUMBER,
371 tax_rec_nrec_dist_ref NUMBER
372 --
373 );
374
375 --
376 -- cache accounting line type information
377 --
378 --g_accounting_line
379 TYPE t_rec_accounting_line IS RECORD (
380 component_type VARCHAR2(30)
381 , accounting_line_code VARCHAR2(30)
382 , accounting_line_type_code VARCHAR2(1)
383 , accounting_line_appl_id INTEGER
384 , amb_context_code VARCHAR2(30)
385 , entity_code VARCHAR2(30)
386 , event_class_code VARCHAR2(30)
387 )
388 ;
389
390 --g_transaction_accounts
391 TYPE t_rec_transaction_accounts IS RECORD (
392 array_line_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num,
393 array_ae_header_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num,
394 array_temp_line_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num,
395 array_code_combination_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num,
396 array_segment XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L,
397 array_from_segment_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V15L,
398 array_to_segment_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V15L,
399 array_processing_status_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L,
400 array_side_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L
401 )
402 ;
403
404 --+==========================================================================+
405 --| |
406 --| |
407 --| GLobal variables |
408 --| |
409 --| |
410 --+==========================================================================+
411
412 g_reverse_lines t_rec_reverse_line;
413 g_application_id INTEGER;
414 g_accounting_line t_rec_accounting_line;
415 g_transaction_accounts t_rec_transaction_accounts;
416
417 --+==========================================================================+
418 --| |
419 --| |
420 --| GLobal variables For Business Flow - 4219869 |
421 --| |
422 --| |
423 --+==========================================================================+
424 --
425 g_num_bflow_prior_entries INTEGER;
426 g_num_bflow_same_entries INTEGER;
427 C_METHOD_PRIOR CONSTANT VARCHAR2(30) := 'PRIOR_ENTRY';
428 C_METHOD_SAME CONSTANT VARCHAR2(30) := 'SAME_ENTRY';
429 C_DUMMY_PRIOR CONSTANT VARCHAR2(10) := 'DUMMY_BFPE';
430 C_DUMMY_SAME CONSTANT VARCHAR2(10) := 'DUMMY_BFSE';
431 C_MPA_PRIOR_ENTRY CONSTANT VARCHAR2(30) := 'MPA_PRIOR_ENTRY'; -- 4655713b
432 C_MPA_SAME_ENTRY CONSTANT VARCHAR2(30) := 'MPA_SAME_ENTRY'; -- 4655713b
433 C_CHAR CONSTANT VARCHAR2(1) := fnd_global.local_chr(12);
434 C_NUM CONSTANT NUMBER := 9.99E125;
435
436 --====================================================================
437 --
438 --
439 --
440 --
441 --
442 -- FND_LOG trace
443 --
444 --
445 --
446 --
447 --
448 --
449 --
450 --
451 --
452 --
453 --
454 --
455 --
456 --
457 --
458 --
459 --======================================================================
460 --
461 --=============================================================================
462 -- *********** Local Trace Routine **********
463 --=============================================================================
464
465 C_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
466 C_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
467 C_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
468 C_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
469 C_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
470 C_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
471
472 C_LEVEL_LOG_DISABLED CONSTANT NUMBER := 99;
473 C_DEFAULT_MODULE CONSTANT VARCHAR2(240) := 'xla.plsql.XLA_AE_LINES_PKG';
474
475 g_log_level NUMBER;
476 g_log_enabled BOOLEAN;
477
478 PROCEDURE trace
479 (p_msg IN VARCHAR2
480 ,p_level IN NUMBER
481 ,p_module IN VARCHAR2) IS
482 BEGIN
483 IF (p_msg IS NULL AND p_level >= g_log_level) THEN
484 fnd_log.message(p_level, p_module);
485 ELSIF p_level >= g_log_level THEN
486 fnd_log.string(p_level, p_module, p_msg);
487 END IF;
488
489 EXCEPTION
490 WHEN xla_exceptions_pkg.application_exception THEN
491 RAISE;
492 WHEN OTHERS THEN
493 xla_exceptions_pkg.raise_message
494 (p_location => 'XLA_AE_LINES_PKG.trace');
495 END trace;
496
497 --=============================================================================
498 -- ******* Print Log File **********
499 --=============================================================================
500 PROCEDURE print_logfile(p_msg IN VARCHAR2) IS
501 BEGIN
502
503 fnd_file.put_line(fnd_file.log,p_msg);
504
505 EXCEPTION
506 WHEN xla_exceptions_pkg.application_exception THEN
507 RAISE;
508 WHEN OTHERS THEN
509 xla_exceptions_pkg.raise_message
510 (p_location => 'xla_ae_lines_pkg.print_logfile');
511 END print_logfile;
512 --
513 --====================================================================
514 --
515 --
516 --
517 --
518 -- Forward declaration of local routines
519 --
520 --
521 --
522 --
523 --======================================================================
524 --
525
526 --
527 PROCEDURE ValidateLinks
528 ;
529
530 --
531 --4219869 : making this a public function for Business Flow
532 --PROCEDURE SetDebitCreditAmounts
533 --;
534 --
535 --
536
537 FUNCTION ValidateRevLinks
538 RETURN BOOLEAN
539 ;
540
541 --===================================================================
542 --
543 --
544 --
545 --
546 --
547 -- STANDARD ACCOUNTING PROCESS
548 --
549 --
550 --
551 --
552 --
553 --
554 --
555 --
556 --
557 --
558 --
559 --
560 --
561 --
562 --
563 --
564 --=====================================================================
565 --
566
567 --====================================================================
568 --
569 --
570 --
571 --
572 --
573 -- PRIVATE procedures and functions
574 --
575 --
576 --
577 --
578 --
579 --
580 --
581 --
582 --
583 --
584 --
585 --
586 --
587 --
588 --
589 --
590 --======================================================================
591 --
592 /*======================================================================+
593 | |
594 | Private Procedure |
595 | |
596 | |
597 +======================================================================*/
598 PROCEDURE ValidateLinks
599 IS
600 l_log_module VARCHAR2(240);
601 l_temp NUMBER;
602 BEGIN
603 --
604 IF g_log_enabled THEN
605 l_log_module := C_DEFAULT_MODULE||'.ValidateLinks';
606 END IF;
607 --
608 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
609 trace
610 (p_msg => 'BEGIN of ValidateLinks'
611 ,p_level => C_LEVEL_PROCEDURE
612 ,p_module => l_log_module);
613
614 END IF;
615
616 -- We need check: 1. distribution_id_1 must be assigned
617 -- 2. distribution_id_2..5 must be assigned in order, that means
618 -- if id_3 is assigned, then 2 must be assigned.
619 -- if id_4 is assigned, then 2 and 3 must be assigned.
620 -- if id_5 is assigned, then 2, 3 and 4 must be assigned.
621 -- We are using generate a number, l_temp
622 -- 1*decode(id5 is assigned, 1, 0)+
623 -- 2*decode(id4 is assigned, 1, 0)+
624 -- 4*decode(id3 is assigned, 1, 0)+
625 -- 8*decode(id2 is assigned, 1, 0)
626 -- The valid case, l_temp can only be
627 -- 0 -- no one is assigned
628 -- 8 -- id2 is assigned
629 -- 12 -- id2 and id3 are assigned
630 -- 14 -- id2 , id3 and id4 are assigned
631 -- 15 -- all are assigned
632
633
634 IF g_rec_lines.array_distribution_id_char_5(g_LineNumber) IS NULL AND
635 g_rec_lines.array_distribution_id_num_5(g_LineNumber) IS NULL THEN
636 l_temp := 0;
637 ELSE
638 l_temp := 1;
639 END IF;
640 IF g_rec_lines.array_distribution_id_char_4(g_LineNumber) IS NOT NULL OR
641 g_rec_lines.array_distribution_id_num_4(g_LineNumber) IS NOT NULL THEN
642 l_temp := 2+l_temp;
643 END IF;
644 IF g_rec_lines.array_distribution_id_char_3(g_LineNumber) IS NOT NULL OR
645 g_rec_lines.array_distribution_id_num_3(g_LineNumber) IS NOT NULL THEN
646 l_temp := 4+l_temp;
647 END IF;
648 IF g_rec_lines.array_distribution_id_char_2(g_LineNumber) IS NOT NULL OR
649 g_rec_lines.array_distribution_id_num_2(g_LineNumber) IS NOT NULL THEN
650 l_temp := 8+l_temp;
651 END IF;
652 IF (g_rec_lines.array_distribution_id_char_1(g_LineNumber) IS NULL AND
653 g_rec_lines.array_distribution_id_num_1(g_LineNumber) IS NULL) OR
654 l_temp not in (0, 8, 12, 14, 15) THEN
655
656 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
657 xla_accounting_err_pkg.build_message
658 (p_appli_s_name => 'XLA'
659 ,p_msg_name => 'XLA_AP_NO_DIST_LINK_ID'
660 ,p_token_1 => 'LINE_NUMBER'
661 ,p_value_1 => g_ExtractLine
662 ,p_token_2 => 'LINE_TYPE_NAME'
663 ,p_value_2 => xla_ae_sources_pkg.GetComponentName (
664 g_accounting_line.component_type
665 , g_accounting_line.accounting_line_code
666 , g_accounting_line.accounting_line_type_code
667 , g_accounting_line.accounting_line_appl_id
668 , g_accounting_line.amb_context_code
669 , g_accounting_line.entity_code
670 , g_accounting_line.event_class_code
671 )
672 ,p_token_3 => 'OWNER'
673 ,p_value_3 => xla_lookups_pkg.get_meaning(
674 'XLA_OWNER_TYPE'
675 , g_rec_lines.array_accounting_line_type(g_LineNumber)
676 )
677 ,p_token_4 => 'PRODUCT_NAME'
678 ,p_value_4 => xla_ae_journal_entry_pkg.g_cache_event.application_name
679 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
680 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
681 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
682 ,p_ae_header_id => NULL --p_ae_header_id
683 );
684
685 IF (C_LEVEL_ERROR >= g_log_level) THEN
686 trace
687 (p_msg => 'ERROR: XLA_AP_NO_DIST_LINK_ID'
688 ,p_level => C_LEVEL_ERROR
689 ,p_module => l_log_module);
690 END IF;
691 END IF;
692
693 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
694
695 trace
696 (p_msg => 'END of ValidateLinks'
697 ,p_level => C_LEVEL_PROCEDURE
698 ,p_module => l_log_module);
699
700 END IF;
701
702 EXCEPTION
703 WHEN xla_exceptions_pkg.application_exception THEN
704 RAISE;
705 WHEN OTHERS THEN
706 xla_exceptions_pkg.raise_message
707 (p_location => 'xla_ae_lines_pkg.ValidateLinks');
708 --
709 END ValidateLinks;
710 --
711 --
712 /*======================================================================+
713 | |
714 | Private Procedure |
715 | SetDebitCreditAmounts |
716 | |
717 +======================================================================*/
718 PROCEDURE SetDebitCreditAmounts
719 IS
720 l_log_module VARCHAR2(240);
721 BEGIN
722 --
723 IF g_log_enabled THEN
724 l_log_module := C_DEFAULT_MODULE||'.SetDebitCreditAmounts';
725 END IF;
726 --
727 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
728 trace
729 (p_msg => 'BEGIN of SetDebitCreditAmounts'
730 ,p_level => C_LEVEL_PROCEDURE
731 ,p_module => l_log_module);
732
733 END IF;
734
735 IF(nvl(g_override_acctd_amt_flag, 'N') = 'Y') THEN
736 g_rec_lines.array_calculate_acctd_flag(g_LineNumber) := 'N';
737 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
738 trace
739 (p_msg => 'set amts flag to N '
740 ,p_level => C_LEVEL_STATEMENT
741 ,p_module => l_log_module);
742 END IF;
743
744 END IF;
745 /*
746 1. for alc enabled apps
747 primary ledger, the calculate amts flag will be set as user set in the forms
748 secondary ledger, if the currency is same as primary, the calculate amts flag will be
749 set as user set in the forms
750 if not same, the calculate amts flag will be set to 'Y'
751 for ALC, the calculate amts flag will be set to 'Y'
752 2. For alc not enabled apps:
753 primaryledger, the flag set as user set in the form
754 secondary, same as the alc_enabled_apps
755 ALC, the calculate amts flag is set to 'N'
756 */
757
758 IF((XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code = 'SECONDARY' or
759 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code = 'ALC') and
760 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y') THEN
761 g_rec_lines.array_calculate_acctd_flag(g_LineNumber) := 'Y';
762 g_rec_lines.array_calculate_g_l_flag(g_LineNumber) := 'Y';
763 ELSIF(XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code = 'ALC' and
764 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='N') THEN
765 g_rec_lines.array_calculate_acctd_flag(g_LineNumber) := 'N';
766 g_rec_lines.array_calculate_g_l_flag(g_LineNumber) := 'N';
767 END IF;
768
769 -- for performance bug 5394727, set the currency to ledger currency
770 -- since we need ledger currency later when set the currency code
771 -- for these gain/loss lines.
772 IF (g_rec_lines.array_natural_side_code(g_LineNumber) = 'G'
773 AND (nvl(g_rec_lines.array_calculate_g_l_flag(g_LineNumber), 'N') = 'Y')) THEN
774 g_rec_lines.array_currency_code(g_LineNumber)
775 := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.currency_code;
776 END IF;
777
778 IF (nvl(g_rec_lines.array_calculate_acctd_flag(g_LineNumber), 'N')= 'N' AND
779 g_rec_lines.array_natural_side_code(g_LineNumber) <> 'G') OR
780 (nvl(g_rec_lines.array_calculate_g_l_flag(g_LineNumber), 'N')='N' AND
781 g_rec_lines.array_natural_side_code(g_LineNumber) = 'G') THEN
782
783 IF g_rec_lines.array_ledger_amount(g_LineNumber) is null THEN
784 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
785 xla_accounting_err_pkg.build_message
786 (p_appli_s_name => 'XLA'
787 ,p_msg_name => 'XLA_AP_NO_LEDGER_AMOUNT'
788 ,p_token_1 => 'LINE_NUMBER'
789 ,p_value_1 => g_ExtractLine
790 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
791 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
792 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
793 END IF;
794 --ELSE
795 -- g_rec_lines.array_ledger_amount(g_LineNumber) := null;
796 END IF;
797
798 --
799 -- SetEnteredAmount
800 -- change for business flow, if business flow, won't set the entered_amount
801 -- since at this time the final entered currency code is not decided yet.
802 IF NVL(g_rec_lines.array_currency_code(g_LineNumber),
803 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.currency_code) =
804 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.currency_code
805 AND g_rec_lines.array_natural_side_code(g_LineNumber) <> 'G'
806 AND nvl(g_rec_lines.array_gain_or_loss_flag(g_LineNumber), 'N') <> 'Y'
807 AND nvl(g_rec_lines.array_reversal_code(g_LineNumber), 'DUMMY') <> C_DUMMY_PRIOR
808 THEN
809
810 IF nvl(g_rec_lines.array_calculate_acctd_flag(g_LineNumber), 'N')= 'N' THEN
811 g_rec_lines.array_entered_amount(g_LineNumber) := nvl(g_rec_lines.array_ledger_amount(g_LineNumber), g_rec_lines.array_entered_amount(g_LineNumber));
812 ELSE
813 --ledger currency proj, assign the entered amount to ledger amount instead
814 g_rec_lines.array_ledger_amount(g_LineNumber) := g_rec_lines.array_entered_amount(g_LineNumber);
815 END IF;
816 --=======================================
817 -- bug 2988192, removed by bug 3592650
818 --=======================================
819 g_rec_lines.array_curr_conversion_rate(g_LineNumber):= null;
820 g_rec_lines.array_curr_conversion_type(g_LineNumber):= null;
821 --
822 END IF;
823 --
824 -- bug 5259353
825 IF(g_rec_lines.array_natural_side_code(g_LineNumber) = 'G' or
826 g_rec_lines.array_gain_or_loss_flag(g_LineNumber) = 'Y') THEN
827 g_rec_lines.array_entered_amount(g_LineNumber) := 0;
828 END IF;
829
830
831 IF(g_rec_lines.array_natural_side_code(g_LineNumber) <> 'G'
832 AND nvl(g_rec_lines.array_gain_or_loss_flag(g_LineNumber), 'N') <> 'Y'
833 AND nvl(g_rec_lines.array_reversal_code(g_LineNumber), 'DUMMY') <> C_DUMMY_PRIOR) THEN
834 IF g_rec_lines.array_entered_amount(g_LineNumber) is null THEN
835 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
836 xla_accounting_err_pkg.build_message
837 (p_appli_s_name => 'XLA'
838 ,p_msg_name => 'XLA_AP_NO_ENTERED_AMOUNT'
839 ,p_token_1 => 'LINE_NUMBER'
840 ,p_value_1 => g_ExtractLine
841 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
842 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
843 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
844 ELSIF (nvl(g_rec_lines.array_calculate_acctd_flag(g_LineNumber), 'N')= 'N'
845 AND ((sign(g_rec_lines.array_entered_amount(g_LineNumber)) > 0 and
846 sign(g_rec_lines.array_ledger_amount(g_LineNumber))<0) or
847 (sign(g_rec_lines.array_entered_amount(g_LineNumber)) < 0 and
848 sign(g_rec_lines.array_ledger_amount(g_LineNumber))>0))
849 ) THEN
850 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
851 xla_accounting_err_pkg.build_message
852 (p_appli_s_name => 'XLA'
853 ,p_msg_name => 'XLA_AP_DIFFERENT_SIGN_AMOUNTS'
854 ,p_token_1 => 'LINE_NUMBER'
855 ,p_value_1 => g_ExtractLine
856 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
857 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
858 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
859 END IF;
860 END IF;
861
862 --
863 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
864 trace
865 (p_msg => 'Entered Amount = '||g_rec_lines.array_entered_amount(g_LineNumber)
866 ,p_level => C_LEVEL_STATEMENT
867 ,p_module => l_log_module);
868
869 trace
870 (p_msg => 'Ledger Amount = '||g_rec_lines.array_ledger_amount(g_LineNumber)
871 ,p_level => C_LEVEL_STATEMENT
872 ,p_module => l_log_module);
873 END IF;
874 --
875 IF g_rec_lines.array_switch_side_flag(g_LineNumber) = C_SWITCH AND
876 ( g_rec_lines.array_ledger_amount(g_LineNumber) < 0 OR
877 ( g_rec_lines.array_ledger_amount(g_LineNumber) = 0 AND
878 g_rec_lines.array_entered_amount(g_LineNumber) < 0 )
879 )
880 THEN
881
882 --switch side
883
884 CASE g_rec_lines.array_natural_side_code(g_LineNumber)
885
886 WHEN C_DEBIT THEN
887 -- store amount in credit side
888 g_rec_lines.array_accounted_cr(g_LineNumber) := ABS(g_rec_lines.array_ledger_amount(g_LineNumber)) ;
889 g_rec_lines.array_accounted_dr(g_LineNumber) := NULL;
890 --
891 g_rec_lines.array_entered_cr(g_LineNumber) := ABS(g_rec_lines.array_entered_amount(g_LineNumber)) ;
892 g_rec_lines.array_entered_dr(g_LineNumber) := NULL;
893
894 WHEN C_CREDIT THEN
895 -- store amount in debit side
896 g_rec_lines.array_accounted_dr(g_LineNumber) := ABS(g_rec_lines.array_ledger_amount(g_LineNumber)) ;
897 g_rec_lines.array_accounted_cr(g_LineNumber) := NULL;
898 --
899 g_rec_lines.array_entered_dr(g_LineNumber) := ABS(g_rec_lines.array_entered_amount(g_LineNumber)) ;
900 g_rec_lines.array_entered_cr(g_LineNumber) := NULL;
901
902 ELSE null;
903
904 END CASE;
905
906 ELSE
907
908 -- no switch
909
910 CASE g_rec_lines.array_natural_side_code(g_LineNumber)
911
912 WHEN C_DEBIT THEN
913 -- store amount in debit side
914 g_rec_lines.array_accounted_dr(g_LineNumber) := g_rec_lines.array_ledger_amount(g_LineNumber) ;
915 g_rec_lines.array_accounted_cr(g_LineNumber) := NULL;
916 --
917 g_rec_lines.array_entered_dr(g_LineNumber) := g_rec_lines.array_entered_amount(g_LineNumber) ;
918 g_rec_lines.array_entered_cr(g_LineNumber) := NULL;
919
920 WHEN C_CREDIT THEN
921 -- store amount in credit side
922 g_rec_lines.array_accounted_cr(g_LineNumber) := g_rec_lines.array_ledger_amount(g_LineNumber) ;
923 g_rec_lines.array_accounted_dr(g_LineNumber) := NULL;
924 --
925 g_rec_lines.array_entered_cr(g_LineNumber) := g_rec_lines.array_entered_amount(g_LineNumber) ;
926 g_rec_lines.array_entered_dr(g_LineNumber) := NULL;
927
928 ELSE null;
929
930 END CASE;
931 END IF;
932 --
933 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
934
935 trace
936 (p_msg => 'Entered_DR = '||g_rec_lines.array_entered_dr(g_LineNumber)
937 ,p_level => C_LEVEL_STATEMENT
938 ,p_module => l_log_module);
939
940 trace
941 (p_msg => 'Entered_CR = '||g_rec_lines.array_entered_cr(g_LineNumber)
942 ,p_level => C_LEVEL_STATEMENT
943 ,p_module => l_log_module);
944
945 trace
946 (p_msg => 'Accounted_DR = '||g_rec_lines.array_accounted_dr(g_LineNumber)
947 ,p_level => C_LEVEL_STATEMENT
948 ,p_module => l_log_module);
949
950 trace
951 (p_msg => 'Accounted_CR = '||g_rec_lines.array_accounted_cr(g_LineNumber)
952 ,p_level => C_LEVEL_STATEMENT
953 ,p_module => l_log_module);
954 END IF;
955 --
956 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
957 trace
958 (p_msg => 'END of SetDebitCreditAmounts'
959 ,p_level => C_LEVEL_PROCEDURE
960 ,p_module => l_log_module);
961
962 END IF;
963 EXCEPTION
964 WHEN xla_exceptions_pkg.application_exception THEN
965 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
966 RAISE;
967 WHEN OTHERS THEN
968 xla_exceptions_pkg.raise_message
969 (p_location => 'XLA_AE_LINES_PKG.SetDebitCreditAmounts');
970 --
971 END SetDebitCreditAmounts;
972 --
973 --====================================================================
974 --
975 --
976 --
977 --
978 --
979 -- PUBLIC procedures and functions
980 --
981 --
982 --
983 --
984 --
985 --
986 --
987 --
988 --
989 --
990 --
991 --
992 --
993 --
994 --
995 --
996 --======================================================================
997 --
998 /*======================================================================+
999 | |
1000 | PUBLIC Procedure |
1001 | InitLines : Reset temporary journal line pl/sql structures |
1002 | |
1003 +======================================================================*/
1004 PROCEDURE InitLines
1005 --
1006 IS
1007 --
1008 l_null_lines t_rec_lines;
1009 l_null_rev_line t_rec_reverse_line;
1010 l_null_trans_accounts t_rec_transaction_accounts;
1011 l_log_module VARCHAR2(240);
1012 --
1013 BEGIN
1014 IF g_log_enabled THEN
1015 l_log_module := C_DEFAULT_MODULE||'.InitLines';
1016 END IF;
1017 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1018 trace
1019 (p_msg => 'BEGIN of InitLines'
1020 ,p_level => C_LEVEL_PROCEDURE
1021 ,p_module => l_log_module);
1022
1023 END IF;
1024
1025 g_rec_lines := l_null_lines;
1026 g_transaction_accounts := l_null_trans_accounts;
1027 g_reverse_lines := l_null_rev_line;
1028 g_LineNumber := 0;
1029 g_ExtractLine := 0;
1030 g_ActualLineNum := 0;
1031 g_BudgetLineNum := 0;
1032 g_EncumbLineNum := 0;
1033
1034
1035 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1036 trace
1037 (p_msg => 'END of InitLines'
1038 ,p_level => C_LEVEL_PROCEDURE
1039 ,p_module => l_log_module);
1040
1041 END IF;
1042 EXCEPTION
1043 WHEN xla_exceptions_pkg.application_exception THEN
1044 RAISE;
1045 WHEN OTHERS THEN
1046 xla_exceptions_pkg.raise_message
1047 (p_location => 'XLA_AE_LINES_PKG.InitLines');
1048 --
1049 END InitLines;
1050 --
1051 --
1052 /*======================================================================+
1053 | |
1054 | PUBLIC Procedure |
1055 | |
1056 | |
1057 +======================================================================*/
1058 PROCEDURE SetExtractLine(p_extract_line IN NUMBER)
1059 IS
1060 l_log_module VARCHAR2(240);
1061 BEGIN
1062 --
1063 IF g_log_enabled THEN
1064 l_log_module := C_DEFAULT_MODULE||'.SetExtractLine';
1065 END IF;
1066 --
1067 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1068 trace
1069 (p_msg => 'BEGIN of SetExtractLine'
1070 ,p_level => C_LEVEL_PROCEDURE
1071 ,p_module => l_log_module);
1072
1073 END IF;
1074
1075 IF (C_LEVEL_EVENT >= g_log_level) THEN
1076
1077 trace
1078 (p_msg => 'Extract line number = '||p_extract_line
1079 ,p_level => C_LEVEL_EVENT
1080 ,p_module => l_log_module);
1081
1082 END IF;
1083
1084 g_ExtractLine := p_extract_line;
1085
1086 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1087
1088 trace
1089 (p_msg => 'END of SetExtractLine'
1090 ,p_level => C_LEVEL_PROCEDURE
1091 ,p_module => l_log_module);
1092
1093 END IF;
1094
1095 EXCEPTION
1096 WHEN xla_exceptions_pkg.application_exception THEN
1097 g_ExtractLine := null;
1098 RAISE;
1099 WHEN OTHERS THEN
1100 xla_exceptions_pkg.raise_message
1101 (p_location => 'XLA_AE_LINES_PKG.SetExtractLine');
1102 --
1103 END SetExtractLine;
1104 --
1105 /*======================================================================+
1106 | |
1107 | Public Procedure |
1108 | |
1109 | |
1110 +======================================================================*/
1111 --
1112 PROCEDURE SetNullLine
1113 IS
1114 l_log_module VARCHAR2(240);
1115 BEGIN
1116 --
1117 IF g_log_enabled THEN
1118 l_log_module := C_DEFAULT_MODULE||'.SetNullLine';
1119 END IF;
1120 --
1121 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1122 trace
1123 (p_msg => 'BEGIN of SetNullLine'
1124 ,p_level => C_LEVEL_PROCEDURE
1125 ,p_module => l_log_module);
1126
1127 END IF;
1128 FOR Idx IN 1 .. C_BULK_LIMIT LOOP
1129 --
1130 -- init new line
1131 --
1132 g_null_lines.array_ae_header_id(Idx) := NULL;
1133 -- g_null_lines.array_line_num(Idx) := NULL;
1134 g_null_lines.array_accounting_class(Idx) := NULL;
1135 g_null_lines.array_rounding_class(Idx) := NULL;
1136 g_null_lines.array_doc_rounding_level(Idx) := NULL;
1137 g_null_lines.array_gain_or_loss_ref(Idx) := NULL;
1138 g_null_lines.array_event_class_code(Idx) := NULL;
1139 g_null_lines.array_event_type_code(Idx) := NULL;
1140 g_null_lines.array_line_defn_owner_code(Idx) := NULL;
1141 g_null_lines.array_line_defn_code(Idx) := NULL;
1142 g_null_lines.array_accounting_line_code(Idx) := NULL;
1143 g_null_lines.array_accounting_line_type(Idx) := NULL;
1144 g_null_lines.array_calculate_acctd_flag(Idx) := NULL;
1145 g_null_lines.array_calculate_g_l_flag(Idx) := NULL;
1146 g_null_lines.array_gain_or_loss_flag(Idx) := NULL;
1147 --
1148 -- line flexfield accounts
1149 --
1150 g_null_lines.array_ccid_flag(Idx) := C_INVALID;
1151 g_null_lines.array_ccid(Idx) := NULL;
1152 --
1153 g_null_lines.array_accounting_coa_id(Idx) := NULL;
1154 g_null_lines.array_transaction_coa_id(Idx) := NULL;
1155 g_null_lines.array_sl_coa_mapping_name(Idx) := NULL;
1156 --
1157 g_null_lines.array_segment1(Idx) := NULL;
1158 g_null_lines.array_segment2(Idx) := NULL;
1159 g_null_lines.array_segment3(Idx) := NULL;
1160 g_null_lines.array_segment4(Idx) := NULL;
1161 g_null_lines.array_segment5(Idx) := NULL;
1162 g_null_lines.array_segment6(Idx) := NULL;
1163 g_null_lines.array_segment7(Idx) := NULL;
1164 g_null_lines.array_segment8(Idx) := NULL;
1165 g_null_lines.array_segment9(Idx) := NULL;
1166 g_null_lines.array_segment10(Idx) := NULL;
1167 g_null_lines.array_segment11(Idx) := NULL;
1168 g_null_lines.array_segment12(Idx) := NULL;
1169 g_null_lines.array_segment13(Idx) := NULL;
1170 g_null_lines.array_segment14(Idx) := NULL;
1171 g_null_lines.array_segment15(Idx) := NULL;
1172 g_null_lines.array_segment16(Idx) := NULL;
1173 g_null_lines.array_segment17(Idx) := NULL;
1174 g_null_lines.array_segment18(Idx) := NULL;
1175 g_null_lines.array_segment19(Idx) := NULL;
1176 g_null_lines.array_segment20(Idx) := NULL;
1177 g_null_lines.array_segment21(Idx) := NULL;
1178 g_null_lines.array_segment22(Idx) := NULL;
1179 g_null_lines.array_segment23(Idx) := NULL;
1180 g_null_lines.array_segment24(Idx) := NULL;
1181 g_null_lines.array_segment25(Idx) := NULL;
1182 g_null_lines.array_segment26(Idx) := NULL;
1183 g_null_lines.array_segment27(Idx) := NULL;
1184 g_null_lines.array_segment28(Idx) := NULL;
1185 g_null_lines.array_segment29(Idx) := NULL;
1186 g_null_lines.array_segment30(Idx) := NULL;
1187 --
1188 g_null_lines.alt_array_ccid_flag(Idx) := C_INVALID;
1189 g_null_lines.alt_array_ccid(Idx) := NULL;
1190 g_null_lines.alt_array_segment1(Idx) := NULL;
1191 g_null_lines.alt_array_segment2(Idx) := NULL;
1192 g_null_lines.alt_array_segment3(Idx) := NULL;
1193 g_null_lines.alt_array_segment4(Idx) := NULL;
1194 g_null_lines.alt_array_segment5(Idx) := NULL;
1195 g_null_lines.alt_array_segment6(Idx) := NULL;
1196 g_null_lines.alt_array_segment7(Idx) := NULL;
1197 g_null_lines.alt_array_segment8(Idx) := NULL;
1198 g_null_lines.alt_array_segment9(Idx) := NULL;
1199 g_null_lines.alt_array_segment10(Idx) := NULL;
1200 g_null_lines.alt_array_segment11(Idx) := NULL;
1201 g_null_lines.alt_array_segment12(Idx) := NULL;
1202 g_null_lines.alt_array_segment13(Idx) := NULL;
1203 g_null_lines.alt_array_segment14(Idx) := NULL;
1204 g_null_lines.alt_array_segment15(Idx) := NULL;
1205 g_null_lines.alt_array_segment16(Idx) := NULL;
1206 g_null_lines.alt_array_segment17(Idx) := NULL;
1207 g_null_lines.alt_array_segment18(Idx) := NULL;
1208 g_null_lines.alt_array_segment19(Idx) := NULL;
1209 g_null_lines.alt_array_segment20(Idx) := NULL;
1210 g_null_lines.alt_array_segment21(Idx) := NULL;
1211 g_null_lines.alt_array_segment22(Idx) := NULL;
1212 g_null_lines.alt_array_segment23(Idx) := NULL;
1213 g_null_lines.alt_array_segment24(Idx) := NULL;
1214 g_null_lines.alt_array_segment25(Idx) := NULL;
1215 g_null_lines.alt_array_segment26(Idx) := NULL;
1216 g_null_lines.alt_array_segment27(Idx) := NULL;
1217 g_null_lines.alt_array_segment28(Idx) := NULL;
1218 g_null_lines.alt_array_segment29(Idx) := NULL;
1219 g_null_lines.alt_array_segment30(Idx) := NULL;
1220 --
1221 -- Option lines
1222 --
1223 g_null_lines.array_gl_transfer_mode(Idx) := NULL;
1224 g_null_lines.array_natural_side_code(Idx) := NULL;
1225 g_null_lines.array_acct_entry_type_code(Idx) := NULL;
1226 g_null_lines.array_switch_side_flag(Idx) := NULL;
1227 g_null_lines.array_merge_duplicate_code(Idx) := NULL;
1228 --
1229 -- line amounts
1230 --
1231 g_null_lines.array_entered_amount(Idx) := NULL;
1232 g_null_lines.array_ledger_amount(Idx) := NULL;
1233 g_null_lines.array_entered_dr(Idx) := NULL;
1234 g_null_lines.array_entered_cr(Idx) := NULL;
1235 g_null_lines.array_accounted_dr(Idx) := NULL;
1236 g_null_lines.array_accounted_cr(Idx) := NULL;
1237 g_null_lines.array_currency_code(Idx) := NULL;
1238 g_null_lines.array_currency_mau(Idx) := NULL;
1239 g_null_lines.array_curr_conversion_date(Idx) := NULL;
1240 g_null_lines.array_curr_conversion_rate(Idx) := NULL;
1241 g_null_lines.array_curr_conversion_type(Idx) := NULL;
1242 g_null_lines.array_description(Idx) := NULL;
1243 --
1244 -- line descriptions
1245 --
1246 g_null_lines.array_party_id(Idx) := NULL;
1247 g_null_lines.array_party_site_id(Idx) := NULL;
1248 g_null_lines.array_party_type_code(Idx) := NULL;
1249 --
1250 g_null_lines.array_statistical_amount(Idx) := NULL;
1251 g_null_lines.array_ussgl_transaction(Idx) := NULL;
1252 --
1253 g_null_lines.array_jgzz_recon_ref(Idx) := NULL;
1254 --
1255 -- distribution links
1256 --
1257 g_null_lines.array_distribution_id_char_1(Idx) := NULL;
1258 g_null_lines.array_distribution_id_char_2(Idx) := NULL;
1259 g_null_lines.array_distribution_id_char_3(Idx) := NULL;
1260 g_null_lines.array_distribution_id_char_4(Idx) := NULL;
1261 g_null_lines.array_distribution_id_char_5(Idx) := NULL;
1262 g_null_lines.array_distribution_id_num_1(Idx) := NULL;
1263 g_null_lines.array_distribution_id_num_2(Idx) := NULL;
1264 g_null_lines.array_distribution_id_num_3(Idx) := NULL;
1265 g_null_lines.array_distribution_id_num_4(Idx) := NULL;
1266 g_null_lines.array_distribution_id_num_5(Idx) := NULL;
1267 g_null_lines.array_sys_distribution_type(Idx) := NULL;
1268 --
1269 -- reverse distribution links
1270 --
1271 g_null_lines.array_rev_dist_id_char_1(Idx) := NULL;
1272 g_null_lines.array_rev_dist_id_char_2(Idx) := NULL;
1273 g_null_lines.array_rev_dist_id_char_3(Idx) := NULL;
1274 g_null_lines.array_rev_dist_id_char_4(Idx) := NULL;
1275 g_null_lines.array_rev_dist_id_char_5(Idx) := NULL;
1276 g_null_lines.array_rev_dist_id_num_1(Idx) := NULL;
1277 g_null_lines.array_rev_dist_id_num_2(Idx) := NULL;
1278 g_null_lines.array_rev_dist_id_num_3(Idx) := NULL;
1279 g_null_lines.array_rev_dist_id_num_4(Idx) := NULL;
1280 g_null_lines.array_rev_dist_id_num_5(Idx) := NULL;
1281 g_null_lines.array_rev_dist_type(Idx) := NULL;
1282
1283 -- 4262811 MPA
1284 g_null_lines.array_header_num(Idx) := NULL;
1285 g_null_lines.array_mpa_acc_entry_flag(Idx) := 'N';
1286 g_null_lines.array_mpa_option(Idx) := NULL;
1287 g_null_lines.array_mpa_start_date(Idx) := NULL;
1288 g_null_lines.array_mpa_end_date(Idx) := NULL;
1289 --
1290 -- deferred info - replace by MPA
1291 --
1292 -- g_null_lines.array_deferred_indicator(Idx) := NULL;
1293 -- g_null_lines.array_deferred_start_date(Idx) := NULL;
1294 -- g_null_lines.array_deferred_end_date(Idx) := NULL;
1295 -- g_null_lines.array_deferred_no_period(Idx) := NULL;
1296 -- g_null_lines.array_deferred_period_type(Idx) := NULL;
1297 --
1298 -- reversal info
1299 --
1300 g_null_lines.array_acc_reversal_option(Idx) := NULL;
1301 --
1302 -- tax info
1303 --
1304 g_null_lines.array_tax_line_ref(Idx) := NULL;
1305 g_null_lines.array_tax_summary_line_ref(Idx) := NULL;
1306 g_null_lines.array_tax_rec_nrec_dist_ref(Idx) := NULL;
1307 --
1308 -- Analytical Criteria
1309 --
1310 g_null_lines.array_anc_balance_flag(Idx) := NULL;
1311 g_null_lines.array_anc_id_1(Idx) := NULL;
1312 g_null_lines.array_anc_id_2(Idx) := NULL;
1313 g_null_lines.array_anc_id_3(Idx) := NULL;
1314 g_null_lines.array_anc_id_4(Idx) := NULL;
1315 g_null_lines.array_anc_id_5(Idx) := NULL;
1316 g_null_lines.array_anc_id_6(Idx) := NULL;
1317 g_null_lines.array_anc_id_7(Idx) := NULL;
1318 g_null_lines.array_anc_id_8(Idx) := NULL;
1319 g_null_lines.array_anc_id_9(Idx) := NULL;
1320 g_null_lines.array_anc_id_10(Idx) := NULL;
1321 g_null_lines.array_anc_id_11(Idx) := NULL;
1322 g_null_lines.array_anc_id_12(Idx) := NULL;
1323 g_null_lines.array_anc_id_13(Idx) := NULL;
1324 g_null_lines.array_anc_id_14(Idx) := NULL;
1325 g_null_lines.array_anc_id_15(Idx) := NULL;
1326 g_null_lines.array_anc_id_16(Idx) := NULL;
1327 g_null_lines.array_anc_id_17(Idx) := NULL;
1328 g_null_lines.array_anc_id_18(Idx) := NULL;
1329 g_null_lines.array_anc_id_19(Idx) := NULL;
1330 g_null_lines.array_anc_id_20(Idx) := NULL;
1331 g_null_lines.array_anc_id_21(Idx) := NULL;
1332 g_null_lines.array_anc_id_22(Idx) := NULL;
1333 g_null_lines.array_anc_id_23(Idx) := NULL;
1334 g_null_lines.array_anc_id_24(Idx) := NULL;
1335 g_null_lines.array_anc_id_25(Idx) := NULL;
1336 g_null_lines.array_anc_id_26(Idx) := NULL;
1337 g_null_lines.array_anc_id_27(Idx) := NULL;
1338 g_null_lines.array_anc_id_28(Idx) := NULL;
1339 g_null_lines.array_anc_id_29(Idx) := NULL;
1340 g_null_lines.array_anc_id_30(Idx) := NULL;
1341 g_null_lines.array_anc_id_31(Idx) := NULL;
1342 g_null_lines.array_anc_id_32(Idx) := NULL;
1343 g_null_lines.array_anc_id_33(Idx) := NULL;
1344 g_null_lines.array_anc_id_34(Idx) := NULL;
1345 g_null_lines.array_anc_id_35(Idx) := NULL;
1346 g_null_lines.array_anc_id_36(Idx) := NULL;
1347 g_null_lines.array_anc_id_37(Idx) := NULL;
1348 g_null_lines.array_anc_id_38(Idx) := NULL;
1349 g_null_lines.array_anc_id_39(Idx) := NULL;
1350 g_null_lines.array_anc_id_40(Idx) := NULL;
1351 g_null_lines.array_anc_id_41(Idx) := NULL;
1352 g_null_lines.array_anc_id_42(Idx) := NULL;
1353 g_null_lines.array_anc_id_43(Idx) := NULL;
1354 g_null_lines.array_anc_id_44(Idx) := NULL;
1355 g_null_lines.array_anc_id_45(Idx) := NULL;
1356 g_null_lines.array_anc_id_46(Idx) := NULL;
1357 g_null_lines.array_anc_id_47(Idx) := NULL;
1358 g_null_lines.array_anc_id_48(Idx) := NULL;
1359 g_null_lines.array_anc_id_49(Idx) := NULL;
1360 g_null_lines.array_anc_id_50(Idx) := NULL;
1361 g_null_lines.array_anc_id_51(Idx) := NULL;
1362 g_null_lines.array_anc_id_52(Idx) := NULL;
1363 g_null_lines.array_anc_id_53(Idx) := NULL;
1364 g_null_lines.array_anc_id_54(Idx) := NULL;
1365 g_null_lines.array_anc_id_55(Idx) := NULL;
1366 g_null_lines.array_anc_id_56(Idx) := NULL;
1367 g_null_lines.array_anc_id_57(Idx) := NULL;
1368 g_null_lines.array_anc_id_58(Idx) := NULL;
1369 g_null_lines.array_anc_id_59(Idx) := NULL;
1370 g_null_lines.array_anc_id_60(Idx) := NULL;
1371 g_null_lines.array_anc_id_61(Idx) := NULL;
1372 g_null_lines.array_anc_id_62(Idx) := NULL;
1373 g_null_lines.array_anc_id_63(Idx) := NULL;
1374 g_null_lines.array_anc_id_64(Idx) := NULL;
1375 g_null_lines.array_anc_id_65(Idx) := NULL;
1376 g_null_lines.array_anc_id_66(Idx) := NULL;
1377 g_null_lines.array_anc_id_67(Idx) := NULL;
1378 g_null_lines.array_anc_id_68(Idx) := NULL;
1379 g_null_lines.array_anc_id_69(Idx) := NULL;
1380 g_null_lines.array_anc_id_70(Idx) := NULL;
1381 g_null_lines.array_anc_id_71(Idx) := NULL;
1382 g_null_lines.array_anc_id_72(Idx) := NULL;
1383 g_null_lines.array_anc_id_73(Idx) := NULL;
1384 g_null_lines.array_anc_id_74(Idx) := NULL;
1385 g_null_lines.array_anc_id_75(Idx) := NULL;
1386 g_null_lines.array_anc_id_76(Idx) := NULL;
1387 g_null_lines.array_anc_id_77(Idx) := NULL;
1388 g_null_lines.array_anc_id_78(Idx) := NULL;
1389 g_null_lines.array_anc_id_79(Idx) := NULL;
1390 g_null_lines.array_anc_id_80(Idx) := NULL;
1391 g_null_lines.array_anc_id_81(Idx) := NULL;
1392 g_null_lines.array_anc_id_82(Idx) := NULL;
1393 g_null_lines.array_anc_id_83(Idx) := NULL;
1394 g_null_lines.array_anc_id_84(Idx) := NULL;
1395 g_null_lines.array_anc_id_85(Idx) := NULL;
1396 g_null_lines.array_anc_id_86(Idx) := NULL;
1397 g_null_lines.array_anc_id_87(Idx) := NULL;
1398 g_null_lines.array_anc_id_88(Idx) := NULL;
1399 g_null_lines.array_anc_id_89(Idx) := NULL;
1400 g_null_lines.array_anc_id_90(Idx) := NULL;
1401 g_null_lines.array_anc_id_91(Idx) := NULL;
1402 g_null_lines.array_anc_id_92(Idx) := NULL;
1403 g_null_lines.array_anc_id_93(Idx) := NULL;
1404 g_null_lines.array_anc_id_94(Idx) := NULL;
1405 g_null_lines.array_anc_id_95(Idx) := NULL;
1406 g_null_lines.array_anc_id_96(Idx) := NULL;
1407 g_null_lines.array_anc_id_97(Idx) := NULL;
1408 g_null_lines.array_anc_id_98(Idx) := NULL;
1409 g_null_lines.array_anc_id_99(Idx) := NULL;
1410 g_null_lines.array_anc_id_100(Idx) := NULL;
1411 --
1412 g_null_lines.array_event_number(Idx) := NULL;
1413 g_null_lines.array_entity_id(Idx) := NULL;
1414 g_null_lines.array_reversal_code(Idx) := NULL;
1415 --------------------------------------------------------------------------
1416 -- 4262811 - Initialised to prevent element at index[x] does not exist error
1417 g_null_lines.array_balance_type_code(Idx) := NULL;
1418 g_null_lines.array_ledger_id(Idx) := NULL;
1419 g_null_lines.array_override_acctd_amt_flag(Idx) := NULL;
1420 --------------------------------------------------------------------------
1421 g_null_lines.array_encumbrance_type_id(Idx) := NULL;
1422 --
1423 --------------------------------------
1424 -- 4219869
1425 -- Business Flow Applied To Attributes
1426 --------------------------------------
1427 g_null_lines.array_business_method_code(Idx) := NULL;
1428 g_null_lines.array_business_class_code(Idx) := NULL;
1429 g_null_lines.array_inherit_desc_flag(Idx) := 'N';
1430 g_null_lines.array_bflow_application_id(Idx) := NULL;
1431
1432 g_null_lines.array_bflow_entity_code(Idx) := NULL;
1433 g_null_lines.array_bflow_source_id_num_1(Idx) := NULL;
1434 g_null_lines.array_bflow_source_id_num_2(Idx) := NULL;
1435 g_null_lines.array_bflow_source_id_num_3(Idx) := NULL;
1436 g_null_lines.array_bflow_source_id_num_4(Idx) := NULL;
1437 g_null_lines.array_bflow_source_id_char_1(Idx) := NULL;
1438 g_null_lines.array_bflow_source_id_char_2(Idx) := NULL;
1439 g_null_lines.array_bflow_source_id_char_3(Idx) := NULL;
1440 g_null_lines.array_bflow_source_id_char_4(Idx) := NULL;
1441
1442 g_null_lines.array_bflow_distribution_type(Idx):= NULL;
1443 g_null_lines.array_bflow_dist_id_num_1(Idx) := NULL;
1444 g_null_lines.array_bflow_dist_id_num_2(Idx) := NULL;
1445 g_null_lines.array_bflow_dist_id_num_3(Idx) := NULL;
1446 g_null_lines.array_bflow_dist_id_num_4(Idx) := NULL;
1447 g_null_lines.array_bflow_dist_id_num_5(Idx) := NULL;
1448 g_null_lines.array_bflow_dist_id_char_1(Idx) := NULL;
1449 g_null_lines.array_bflow_dist_id_char_2(Idx) := NULL;
1450 g_null_lines.array_bflow_dist_id_char_3(Idx) := NULL;
1451 g_null_lines.array_bflow_dist_id_char_4(Idx) := NULL;
1452 g_null_lines.array_bflow_dist_id_char_5(Idx) := NULL;
1453
1454 g_null_lines.array_bflow_applied_to_amt(Idx) := NULL; -- 5132302
1455 --
1456 --
1457 -- Upgrade Attributes
1458 --
1459
1460
1461 g_null_lines.array_actual_upg_option(Idx) := NULL;
1462 g_null_lines.array_actual_upg_dr_ccid(Idx) := NULL;
1463 g_null_lines.array_actual_upg_cr_ccid(Idx) := NULL;
1464 g_null_lines.array_actual_upg_dr_ent_amt(Idx) := NULL;
1465 g_null_lines.array_actual_upg_cr_ent_amt(Idx) := NULL;
1466 g_null_lines.array_actual_upg_dr_ent_curr(Idx) := NULL;
1467 g_null_lines.array_actual_upg_cr_ent_curr(Idx) := NULL;
1468 g_null_lines.array_actual_upg_dr_ledger_amt(Idx) := NULL;
1469 g_null_lines.array_actual_upg_cr_ledger_amt(Idx) := NULL;
1470 g_null_lines.array_actual_upg_dr_acct_class(Idx) := NULL;
1471 g_null_lines.array_actual_upg_cr_acct_class(Idx) := NULL;
1472 g_null_lines.array_actual_upg_dr_xrate(Idx) := NULL;
1473 g_null_lines.array_actual_upg_dr_xrate_type(Idx) := NULL;
1474 g_null_lines.array_actual_upg_dr_xdate(Idx) := NULL;
1475 g_null_lines.array_actual_upg_cr_xrate(Idx) := NULL;
1476 g_null_lines.array_actual_upg_cr_xrate_type(Idx) := NULL;
1477 g_null_lines.array_actual_upg_cr_xdate(Idx) := NULL;
1478 g_null_lines.array_enc_upg_option(Idx) := NULL;
1479 g_null_lines.array_enc_upg_dr_ccid(Idx) := NULL;
1480 g_null_lines.array_enc_upg_cr_ccid(Idx) := NULL;
1481 g_null_lines.array_upg_dr_enc_type_id(Idx) := NULL;
1482 g_null_lines.array_upg_cr_enc_type_id(Idx) := NULL;
1483 g_null_lines.array_enc_upg_dr_ent_amt(Idx) := NULL;
1484 g_null_lines.array_enc_upg_cr_ent_amt(Idx) := NULL;
1485 g_null_lines.array_enc_upg_dr_ent_curr(Idx) := NULL;
1486 g_null_lines.array_enc_upg_cr_ent_curr(Idx) := NULL;
1487 g_null_lines.array_enc_upg_dr_ledger_amt(Idx) := NULL;
1488 g_null_lines.array_enc_upg_cr_ledger_amt(Idx) := NULL;
1489 g_null_lines.array_enc_upg_dr_acct_class(Idx) := NULL;
1490 g_null_lines.array_enc_upg_cr_acct_class(Idx) := NULL;
1491 -- 5845547
1492 g_null_lines.array_upg_party_type_code(Idx) := NULL;
1493 g_null_lines.array_upg_party_id(Idx) := NULL;
1494 g_null_lines.array_upg_party_site_id(Idx) := NULL;
1495 --
1496 --
1497 -- Allocation Attributes
1498 --
1499 g_null_lines.array_alloct_application_id(Idx) := NULL;
1500
1501 g_null_lines.array_alloct_entity_code(Idx) := NULL;
1502 g_null_lines.array_alloct_source_id_num_1(Idx) := NULL;
1503 g_null_lines.array_alloct_source_id_num_2(Idx) := NULL;
1504 g_null_lines.array_alloct_source_id_num_3(Idx) := NULL;
1505 g_null_lines.array_alloct_source_id_num_4(Idx) := NULL;
1506 g_null_lines.array_alloct_source_id_char_1(Idx) := NULL;
1507 g_null_lines.array_alloct_source_id_char_2(Idx) := NULL;
1508 g_null_lines.array_alloct_source_id_char_3(Idx) := NULL;
1509 g_null_lines.array_alloct_source_id_char_4(Idx) := NULL;
1510
1511 g_null_lines.array_alloct_distribution_type(Idx):= NULL;
1512 g_null_lines.array_alloct_dist_id_num_1(Idx) := NULL;
1513 g_null_lines.array_alloct_dist_id_num_2(Idx) := NULL;
1514 g_null_lines.array_alloct_dist_id_num_3(Idx) := NULL;
1515 g_null_lines.array_alloct_dist_id_num_4(Idx) := NULL;
1516 g_null_lines.array_alloct_dist_id_num_5(Idx) := NULL;
1517 g_null_lines.array_alloct_dist_id_char_1(Idx) := NULL;
1518 g_null_lines.array_alloct_dist_id_char_2(Idx) := NULL;
1519 g_null_lines.array_alloct_dist_id_char_3(Idx) := NULL;
1520 g_null_lines.array_alloct_dist_id_char_4(Idx) := NULL;
1521 g_null_lines.array_alloct_dist_id_char_5(Idx) := NULL;
1522
1523 --
1524 -- bug 4955764
1525 --
1526 g_null_lines.array_gl_date(Idx) := NULL;
1527
1528
1529 --
1530 END LOOP;
1531 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1532 trace
1533 (p_msg => 'END of SetNullLine'
1534 ,p_level => C_LEVEL_PROCEDURE
1535 ,p_module => l_log_module);
1536 END IF;
1537 EXCEPTION
1538 WHEN xla_exceptions_pkg.application_exception THEN
1539 RAISE;
1540 WHEN OTHERS THEN
1541 xla_exceptions_pkg.raise_message
1542 (p_location => 'XLA_AE_LINES_PKG.SetNullLine');
1543 --
1544 END SetNullLine;
1545 --
1546 /*======================================================================+
1547 | |
1548 | Public Procedure |
1549 | |
1550 | |
1551 +======================================================================*/
1552 PROCEDURE SetNewLine
1553 IS
1554 l_log_module VARCHAR2(240);
1555 l_result BOOLEAN;
1556 BEGIN
1557 --
1558 IF g_log_enabled THEN
1559 l_log_module := C_DEFAULT_MODULE||'.SetNewLine';
1560 END IF;
1561 --
1562 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1563 trace
1564 (p_msg => 'BEGIN of SetNewLine'
1565 ,p_level => C_LEVEL_PROCEDURE
1566 ,p_module => l_log_module);
1567
1568 END IF;
1569
1570 IF NVL(g_LineNumber,0) = 0 THEN
1571 g_rec_lines := g_null_lines;
1572
1573 ELSIF g_LineNumber = C_BULK_LIMIT THEN
1574 --
1575 -- insert headers into xla_ae_lines_gt table
1576 --
1577 l_result := xla_ae_lines_pkg.InsertLines;
1578 g_LineNumber := 0;
1579 g_rec_lines := g_null_lines;
1580
1581 END IF;
1582
1583 g_LineNumber := NVL(g_LineNumber ,0) + 1;
1584 g_override_acctd_amt_flag :='N';
1585 g_temp_line_num := NVL(g_temp_line_num ,0) + 1;
1586
1587 --
1588 -- following sets the temp line number
1589 --
1590 g_rec_lines.array_line_num(g_LineNumber) := g_temp_line_num;
1591 --
1592 -- following sets the extract line number
1593 --
1594 g_rec_lines.array_extract_line_num(g_LineNumber) := g_ExtractLine;
1595
1596 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1597 trace
1598 (p_msg => 'END of SetNewLine'
1599 ,p_level => C_LEVEL_PROCEDURE
1600 ,p_module => l_log_module);
1601 END IF;
1602 EXCEPTION
1603 WHEN xla_exceptions_pkg.application_exception THEN
1604 RAISE;
1605 WHEN OTHERS THEN
1606 xla_exceptions_pkg.raise_message
1607 (p_location => 'XLA_AE_LINES_PKG.SetNewLine');
1608 --
1609 END SetNewLine;
1610 --
1611 --
1612 /*======================================================================+
1613 | |
1614 | Public Procedure |
1615 | |
1616 | |
1617 +======================================================================*/
1618 PROCEDURE SetAcctLineType(
1619 p_component_type IN VARCHAR2
1620 , p_event_type_code IN VARCHAR2
1621 , p_line_definition_owner_code IN VARCHAR2
1622 , p_line_definition_code IN VARCHAR2
1623 , p_accounting_line_code IN VARCHAR2
1624 , p_accounting_line_type_code IN VARCHAR2
1625 , p_accounting_line_appl_id IN INTEGER
1626 , p_amb_context_code IN VARCHAR2
1627 , p_entity_code IN VARCHAR2
1628 , p_event_class_code IN VARCHAR2
1629 )
1630 IS
1631 l_log_module VARCHAR2(240);
1632 BEGIN
1633 --
1634 IF g_log_enabled THEN
1635 l_log_module := C_DEFAULT_MODULE||'.SetAcctLineType';
1636 END IF;
1637 --
1638 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1639 trace
1640 (p_msg => 'BEGIN of SetAcctLineType'
1641 ,p_level => C_LEVEL_PROCEDURE
1642 ,p_module => l_log_module);
1643 trace
1644 (p_msg => 'p_accounting_line_type_code = '||p_accounting_line_type_code||
1645 '- p_accounting_line_code= '||p_accounting_line_code
1646 ,p_level => C_LEVEL_PROCEDURE
1647 ,p_module => l_log_module);
1648
1649 END IF;
1650 --
1651 --
1652 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1653
1654 trace
1655 (p_msg => 'p_component_type = '||p_component_type||
1656 ' - p_accounting_line_appl_id = '||p_accounting_line_appl_id||
1657 ' - p_amb_context_code = '||p_amb_context_code||
1658 ' - p_entity_code = '||p_entity_code||
1659 ' - p_event_class_code = '||p_event_class_code
1660 ,p_level => C_LEVEL_STATEMENT
1661 ,p_module => l_log_module);
1662 END IF;
1663
1664 g_rec_lines.array_event_class_code(g_LineNumber) := p_event_class_code;
1665 g_rec_lines.array_event_type_code(g_LineNumber) := p_event_type_code;
1666 g_rec_lines.array_line_defn_owner_code(g_LineNumber) := p_line_definition_owner_code;
1667 g_rec_lines.array_line_defn_code(g_LineNumber) := p_line_definition_code;
1668 g_rec_lines.array_accounting_line_code(g_LineNumber) := p_accounting_line_code;
1669 g_rec_lines.array_accounting_line_type(g_LineNumber) := p_accounting_line_type_code;
1670
1671 --
1672 -- cache accounting line type information
1673 --
1674 g_accounting_line.component_type := p_component_type;
1675 g_accounting_line.accounting_line_code := p_accounting_line_code;
1676 g_accounting_line.accounting_line_type_code := p_accounting_line_type_code;
1677 g_accounting_line.accounting_line_appl_id := p_accounting_line_appl_id;
1678 g_accounting_line.amb_context_code := p_amb_context_code;
1679 g_accounting_line.entity_code := p_entity_code;
1680 g_accounting_line.event_class_code := p_event_class_code;
1681
1682 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1683 trace
1684 (p_msg => 'END of SetAcctLineType'
1685 ,p_level => C_LEVEL_PROCEDURE
1686 ,p_module => l_log_module);
1687 END IF;
1688 EXCEPTION
1689 WHEN xla_exceptions_pkg.application_exception THEN
1690 RAISE;
1691 WHEN OTHERS THEN
1692 xla_exceptions_pkg.raise_message
1693 (p_location => 'XLA_AE_LINES_PKG.SetAcctLineType');
1694 --
1695 END SetAcctLineType;
1696
1697 /*======================================================================+
1698 | |
1699 | Public Function |
1700 | |
1701 | |
1702 +======================================================================*/
1703 Function SetAcctLineOption(
1704 p_natural_side_code IN VARCHAR2
1705 , p_gain_or_loss_flag IN VARCHAR2
1706 , p_gl_transfer_mode_code IN VARCHAR2
1707 , p_acct_entry_type_code IN VARCHAR2
1708 , p_switch_side_flag IN VARCHAR2
1709 , p_merge_duplicate_code IN VARCHAR2
1710 )
1711 RETURN NUMBER
1712 IS
1713 l_ae_header_id NUMBER;
1714 l_log_module VARCHAR2(240);
1715 BEGIN
1716 --
1717 IF g_log_enabled THEN
1718 l_log_module := C_DEFAULT_MODULE||'.SetAcctLineOption';
1719 END IF;
1720 --
1721 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1722 trace
1723 (p_msg => 'BEGIN of SetAcctLineOption'
1724 ,p_level => C_LEVEL_PROCEDURE
1725 ,p_module => l_log_module);
1726
1727 trace
1728 (p_msg => 'p_natural_side_code = '||p_natural_side_code||
1729 ' - p_gl_transfer_mode_code = '||p_gl_transfer_mode_code||
1730 ' - p_acct_entry_type_code = '||p_acct_entry_type_code||
1731 ' - p_switch_side_flag = '||p_switch_side_flag||
1732 ' - p_merge_duplicate_code = '||p_merge_duplicate_code
1733 ,p_level => C_LEVEL_PROCEDURE
1734 ,p_module => l_log_module);
1735 END IF;
1736 --
1737 --
1738 -- I THINK WE DONT' NEED THIS IN BULK APPROACH
1739 --
1740 -- SetHdrLineNum(p_balance_type_code => p_acct_entry_type_code);
1741 --
1742 --
1743 g_rec_lines.array_gl_transfer_mode(g_LineNumber) := p_gl_transfer_mode_code ;
1744 g_rec_lines.array_natural_side_code(g_LineNumber) := p_natural_side_code ;
1745 g_rec_lines.array_gain_or_loss_flag(g_LineNumber) := p_gain_or_loss_flag ;
1746 g_rec_lines.array_acct_entry_type_code(g_LineNumber) := p_acct_entry_type_code ;
1747 g_rec_lines.array_switch_side_flag(g_LineNumber) := p_switch_side_flag ;
1748 g_rec_lines.array_merge_duplicate_code(g_LineNumber) := p_merge_duplicate_code ;
1749 --
1750 --
1751 l_ae_header_id := g_rec_lines.array_ae_header_id(g_LineNumber);
1752 --
1753 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1754
1755 trace
1756 (p_msg => 'return value. = '||TO_CHAR(l_ae_header_id)
1757 ,p_level => C_LEVEL_PROCEDURE
1758 ,p_module => l_log_module);
1759
1760 trace
1761 (p_msg => 'END of SetAcctLineOption'
1762 ,p_level => C_LEVEL_PROCEDURE
1763 ,p_module => l_log_module);
1764
1765 END IF;
1766 RETURN l_ae_header_id;
1767 EXCEPTION
1768 WHEN xla_exceptions_pkg.application_exception THEN
1769 RAISE;
1770 WHEN OTHERS THEN
1771 xla_exceptions_pkg.raise_message
1772 (p_location => 'XLA_AE_LINES_PKG.SetAcctLineOption');
1773 --
1774 END SetAcctLineOption;
1775 --
1776 /*======================================================================+
1777 | |
1778 | Public Procedure |
1779 | |
1780 | |
1781 +======================================================================*/
1782 PROCEDURE SetLineDescription(p_description IN VARCHAR2
1783 ,p_ae_header_id IN NUMBER)
1784 IS
1785 l_log_module VARCHAR2(240);
1786 BEGIN
1787 --
1788 IF g_log_enabled THEN
1789 l_log_module := C_DEFAULT_MODULE||'.SetLineDescription';
1790 END IF;
1791 --
1792 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1793 trace
1794 (p_msg => 'BEGIN of SetLineDescription'
1795 ,p_level => C_LEVEL_PROCEDURE
1796 ,p_module => l_log_module);
1797
1798 END IF;
1799 --
1800 g_rec_lines.array_description(g_LineNumber) := SUBSTR(p_description,1,1996);
1801 --
1802 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1803
1804 trace
1805 (p_msg => 'END of SetLineDescription'
1806 ,p_level => C_LEVEL_PROCEDURE
1807 ,p_module => l_log_module);
1808
1809 END IF;
1810 --
1811 EXCEPTION
1812 WHEN xla_exceptions_pkg.application_exception THEN
1813 RAISE;
1814 WHEN OTHERS THEN
1815 xla_exceptions_pkg.raise_message
1816 (p_location => 'XLA_AE_LINES_PKG.SetLineDescription');
1817 --
1818 END SetLineDescription;
1819 --
1820 --
1821 /*======================================================================+
1822 | |
1823 | Public Procedure |
1824 | |
1825 | set_ccid |
1826 | |
1827 | Caches the transaction and accounting CCIDs in the JE temporary lines |
1828 | |
1829 +======================================================================*/
1830 --replace SetCcid
1831 PROCEDURE set_ccid(
1832 p_code_combination_id IN NUMBER
1833 , p_value_type_code IN VARCHAR2
1834 , p_transaction_coa_id IN NUMBER
1835 , p_accounting_coa_id IN NUMBER
1836 , p_adr_code IN VARCHAR2
1837 , p_adr_type_code IN VARCHAR2
1838 , p_component_type IN VARCHAR2
1839 , p_component_code IN VARCHAR2
1840 , p_component_type_code IN VARCHAR2
1841 , p_component_appl_id IN INTEGER
1842 , p_amb_context_code IN VARCHAR2
1843 , p_side IN VARCHAR2
1844 )
1845 IS
1846 l_Idx BINARY_INTEGER;
1847 null_combination_id EXCEPTION;
1848 no_sl_coa_mapping EXCEPTION;
1849 l_log_module VARCHAR2(240);
1850 BEGIN
1851 --
1852 IF g_log_enabled THEN
1853 l_log_module := C_DEFAULT_MODULE||'.set_ccid';
1854 END IF;
1855 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1856 trace
1857 (p_msg => 'BEGIN of set_ccid'
1858 ,p_level => C_LEVEL_PROCEDURE
1859 ,p_module => l_log_module);
1860
1861 trace
1862 (p_msg => ' p_side = '||p_side ||
1863 ', p_code_combination_id = '||p_code_combination_id
1864 ,p_level => C_LEVEL_PROCEDURE
1865 ,p_module => l_log_module);
1866 END IF;
1867
1868 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1869 trace
1870 (p_msg => ' p_value_type_code = '||p_value_type_code ||
1871 ', p_transaction_coa_id = '|| p_transaction_coa_id||
1872 ', p_accounting_coa_id = '||p_accounting_coa_id
1873 ,p_level => C_LEVEL_PROCEDURE
1874 ,p_module => l_log_module);
1875
1876 trace
1877 (p_msg => ' p_adr_code = '||p_adr_code||
1878 ', p_adr_type_code = '|| p_adr_type_code
1879 ,p_level => C_LEVEL_PROCEDURE
1880 ,p_module => l_log_module);
1881
1882 trace
1883 (p_msg => ' p_component_type = '||p_component_type||
1884 ', p_component_code = '||p_component_code||
1885 ', p_component_type_code = '||p_component_type_code||
1886 ', p_component_appl_id = '||p_component_appl_id||
1887 ', p_amb_context_code = '||p_amb_context_code
1888 ,p_level => C_LEVEL_STATEMENT
1889 ,p_module => l_log_module);
1890
1891 END IF;
1892
1893 IF p_code_combination_id IS NULL OR p_code_combination_id = -1 THEN -- 5163338
1894 RAISE null_combination_id;
1895 END IF;
1896
1897 IF p_value_type_code ='S' AND
1898 ( XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.target_coa_id <>
1899 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.source_coa_id ) THEN
1900 -- transaction ccid
1901
1902 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.sl_coa_mapping_id IS NULL THEN
1903 RAISE no_sl_coa_mapping ;
1904 END IF;
1905
1906 l_Idx := NVL(g_transaction_accounts.array_ae_header_id.COUNT,0) + 1;
1907 g_transaction_accounts.array_line_num(l_Idx) := l_Idx ;
1908 g_transaction_accounts.array_ae_header_id(l_Idx) := g_rec_lines.array_ae_header_id(g_LineNumber);
1909 g_transaction_accounts.array_temp_line_num(l_Idx) := g_rec_lines.array_line_num(g_LineNumber);
1910 g_transaction_accounts.array_code_combination_id (l_Idx) := p_code_combination_id;
1911 g_transaction_accounts.array_segment(l_Idx) := NULL;
1912 g_transaction_accounts.array_from_segment_code(l_Idx) := NULL;
1913 g_transaction_accounts.array_to_segment_code(l_Idx) := NULL;
1914 g_transaction_accounts.array_processing_status_code(l_Idx) := C_MAP_CCID;
1915 g_transaction_accounts.array_side_code(l_Idx) := p_side;
1916
1917
1918 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1919 trace
1920 (p_msg => ' Transaction ccid = '||p_code_combination_id
1921 ,p_level => C_LEVEL_PROCEDURE
1922 ,p_module => l_log_module);
1923 END IF;
1924
1925 ELSE
1926 -- accounting ccid
1927
1928 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1929 trace
1930 (p_msg => ' Accounting ccid = '||p_code_combination_id
1931 ,p_level => C_LEVEL_PROCEDURE
1932 ,p_module => l_log_module);
1933 END IF;
1934
1935 CASE p_side
1936
1937 WHEN 'ALL' THEN
1938 g_rec_lines.array_ccid(g_LineNumber) := p_code_combination_id ;
1939 g_rec_lines.alt_array_ccid(g_LineNumber) := p_code_combination_id ;
1940
1941 CASE nvl(g_rec_lines.array_ccid_flag(g_LineNumber),C_INVALID)
1942 WHEN C_INVALID THEN g_rec_lines.array_ccid_flag(g_LineNumber) := C_CREATED;
1943 WHEN C_PROCESSING THEN g_rec_lines.array_ccid_flag(g_LineNumber) := C_NOT_PROCESSED;
1944 ELSE null;
1945 END CASE;
1946
1947 CASE nvl(g_rec_lines.alt_array_ccid_flag(g_LineNumber),C_INVALID)
1948 WHEN C_INVALID THEN g_rec_lines.alt_array_ccid_flag(g_LineNumber) := C_CREATED;
1949 WHEN C_PROCESSING THEN g_rec_lines.alt_array_ccid_flag(g_LineNumber) := C_NOT_PROCESSED;
1950 ELSE null;
1951 END CASE;
1952
1953 WHEN 'NA' THEN
1954 g_rec_lines.array_ccid(g_LineNumber) := p_code_combination_id ;
1955
1956 CASE nvl(g_rec_lines.array_ccid_flag(g_LineNumber),C_INVALID)
1957 WHEN C_INVALID THEN g_rec_lines.array_ccid_flag(g_LineNumber) := C_CREATED;
1958 WHEN C_PROCESSING THEN g_rec_lines.array_ccid_flag(g_LineNumber) := C_NOT_PROCESSED;
1959 ELSE null;
1960 END CASE;
1961
1962 WHEN 'CREDIT' THEN
1963 g_rec_lines.array_ccid(g_LineNumber) := p_code_combination_id ;
1964
1965 CASE nvl(g_rec_lines.array_ccid_flag(g_LineNumber),C_INVALID)
1966 WHEN C_INVALID THEN g_rec_lines.array_ccid_flag(g_LineNumber) := C_CREATED;
1967 WHEN C_PROCESSING THEN g_rec_lines.array_ccid_flag(g_LineNumber) := C_NOT_PROCESSED;
1968 ELSE null;
1969 END CASE;
1970
1971 WHEN 'DEBIT' THEN
1972 g_rec_lines.alt_array_ccid(g_LineNumber) := p_code_combination_id ;
1973
1974 CASE nvl(g_rec_lines.alt_array_ccid_flag(g_LineNumber),C_INVALID)
1975 WHEN C_INVALID THEN g_rec_lines.alt_array_ccid_flag(g_LineNumber) := C_CREATED;
1976 WHEN C_PROCESSING THEN g_rec_lines.alt_array_ccid_flag(g_LineNumber) := C_NOT_PROCESSED;
1977 ELSE null;
1978 END CASE;
1979
1980 ELSE
1981 g_rec_lines.array_ccid(g_LineNumber) := p_code_combination_id ;
1982
1983 CASE nvl(g_rec_lines.array_ccid_flag(g_LineNumber),C_INVALID)
1984 WHEN C_INVALID THEN g_rec_lines.array_ccid_flag(g_LineNumber) := C_CREATED;
1985 WHEN C_PROCESSING THEN g_rec_lines.array_ccid_flag(g_LineNumber) := C_NOT_PROCESSED;
1986 ELSE null;
1987 END CASE;
1988 END CASE;
1989
1990 END IF;
1991
1992 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1993 trace
1994 (p_msg => 'End of set_ccid'
1995 ,p_level => C_LEVEL_PROCEDURE
1996 ,p_module => l_log_module);
1997 END IF;
1998 EXCEPTION
1999 WHEN null_combination_id THEN
2000
2001 CASE p_side
2002 WHEN 'ALL' THEN
2003 g_rec_lines.array_ccid(g_LineNumber) := -1;
2004 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2005 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2006 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2007 WHEN 'NA' THEN
2008 g_rec_lines.array_ccid(g_LineNumber) := -1;
2009 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2010 WHEN 'CREDIT' THEN
2011 g_rec_lines.array_ccid(g_LineNumber) := -1;
2012 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2013 WHEN 'DEBIT' THEN
2014 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2015 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2016 ELSE
2017 g_rec_lines.array_ccid(g_LineNumber) := -1;
2018 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2019 END CASE;
2020
2021 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
2022 xla_accounting_err_pkg.build_message
2023 (p_appli_s_name => 'XLA'
2024 ,p_msg_name => 'XLA_AP_CCID_NULL'
2025 ,p_token_1 => 'COMPONENT_NAME'
2026 ,p_value_1 => XLA_AE_SOURCES_PKG.GetComponentName (
2027 'AMB_ADR'
2028 ,p_adr_code
2029 ,p_adr_type_code
2030 ,p_component_appl_id
2031 ,p_amb_context_code
2032 )
2033 ,p_token_2 => 'OWNER'
2034 ,p_value_2 => xla_lookups_pkg.get_meaning(
2035 'XLA_OWNER_TYPE'
2036 ,p_component_type_code
2037 )
2038 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2039 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2040 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2041 ,p_ae_header_id => NULL
2042 );
2043
2044 IF (C_LEVEL_ERROR >= g_log_level) THEN
2045 trace
2046 (p_msg => 'ERROR: XLA_AP_CCID_NULL'
2047 ,p_level => C_LEVEL_ERROR
2048 ,p_module => l_log_module);
2049 END IF;
2050 WHEN no_sl_coa_mapping THEN
2051
2052 CASE p_side
2053 WHEN 'ALL' THEN
2054 g_rec_lines.array_ccid(g_LineNumber) := -1;
2055 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2056 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2057 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2058 WHEN 'NA' THEN
2059 g_rec_lines.array_ccid(g_LineNumber) := -1;
2060 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2061 WHEN 'CREDIT' THEN
2062 g_rec_lines.array_ccid(g_LineNumber) := -1;
2063 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2064 WHEN 'DEBIT' THEN
2065 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2066 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2067 ELSE
2068 g_rec_lines.array_ccid(g_LineNumber) := -1;
2069 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2070 END CASE;
2071
2072 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
2073
2074 xla_accounting_err_pkg.build_message
2075 (p_appli_s_name => 'XLA'
2076 ,p_msg_name => 'XLA_AP_NO_SL_COA_MAPPING'
2077 ,p_token_1 => 'SEGMENT_RULE_NAME'
2078 ,p_value_1 => XLA_AE_SOURCES_PKG.GetComponentName (
2079 'AMB_ADR'
2080 ,p_adr_code
2081 ,p_adr_type_code
2082 ,p_component_appl_id
2083 ,p_amb_context_code
2084 )
2085 ,p_token_2 => 'OWNER'
2086 ,p_value_2 => xla_lookups_pkg.get_meaning(
2087 'XLA_OWNER_TYPE'
2088 ,p_adr_type_code
2089 )
2090 ,p_token_3 => 'LEDGER_NAME'
2091 ,p_value_3 => xla_accounting_cache_pkg.GetValueChar
2092 (
2093 p_source_code => 'XLA_LEDGER_NAME'
2094 , p_target_ledger_id =>
2095 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2096 )
2097 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2098 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2099 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2100 ,p_ae_header_id => NULL
2101 );
2102
2103 IF (C_LEVEL_ERROR >= g_log_level) THEN
2104 trace
2105 (p_msg => 'ERROR: XLA_AP_NO_SL_COA_MAPPING'
2106 ,p_level => C_LEVEL_ERROR
2107 ,p_module => l_log_module);
2108 END IF;
2109 WHEN xla_exceptions_pkg.application_exception THEN
2110 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2111 trace
2112 (p_msg => 'Error. = '||sqlerrm
2113 ,p_level => C_LEVEL_PROCEDURE
2114 ,p_module => l_log_module);
2115 END IF;
2116 RAISE;
2117 WHEN OTHERS THEN
2118 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2119 trace
2120 (p_msg => 'Error. = '||sqlerrm
2121 ,p_level => C_LEVEL_PROCEDURE
2122 ,p_module => l_log_module);
2123 END IF;
2124 xla_exceptions_pkg.raise_message
2125 (p_location => 'XLA_AE_LINES_PKG.set_ccid');
2126 END set_ccid;
2127
2128 /*=========================================================================+
2129 | |
2130 | Public Procedure |
2131 | |
2132 | set_segment |
2133 | |
2134 | Caches the transaction and accounting segments in the JE temporary lines |
2135 | |
2136 +=========================================================================*/
2137
2138 PROCEDURE set_segment(
2139 p_to_segment_code IN VARCHAR2
2140 , p_segment_value IN VARCHAR2
2141 , p_from_segment_code IN VARCHAR2
2142 , p_from_combination_id IN NUMBER
2143 , p_value_type_code IN VARCHAR2
2144 , p_transaction_coa_id IN NUMBER
2145 , p_accounting_coa_id IN NUMBER
2146 , p_flexfield_segment_code IN VARCHAR2
2147 , p_flex_value_set_id IN NUMBER
2148 , p_adr_code IN VARCHAR2
2149 , p_adr_type_code IN VARCHAR2
2150 , p_component_type IN VARCHAR2
2151 , p_component_code IN VARCHAR2
2152 , p_component_type_code IN VARCHAR2
2153 , p_component_appl_id IN INTEGER
2154 , p_amb_context_code IN VARCHAR2
2155 , p_entity_code IN VARCHAR2
2156 , p_event_class_code IN VARCHAR2
2157 , p_side IN VARCHAR2
2158 )
2159 IS
2160 l_Idx BINARY_INTEGER;
2161 l_accounting_values BOOLEAN;
2162 l_to_segment_code VARCHAR2(30);
2163 l_from_segment_code VARCHAR2(30);
2164 l_segment_value VARCHAR2(30);
2165 l_coa_name VARCHAR2(240);
2166 invalid_segment_code EXCEPTION;
2167 invalid_segment_qualifier EXCEPTION;
2168 null_segment_value EXCEPTION;
2169 no_sl_coa_mapping EXCEPTION;
2170 l_log_module VARCHAR2(240);
2171 BEGIN
2172 IF g_log_enabled THEN
2173 l_log_module := C_DEFAULT_MODULE||'.set_segment';
2174 END IF;
2175 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2176 trace
2177 (p_msg => 'BEGIN of set_segment'
2178 ,p_level => C_LEVEL_PROCEDURE
2179 ,p_module => l_log_module);
2180 trace
2181 (p_msg => 'p_to_segment_code = '||p_to_segment_code ||
2182 ', p_segment_value = '||p_segment_value||
2183 ',p_side ='||p_side
2184 ,p_level => C_LEVEL_PROCEDURE
2185 ,p_module => l_log_module);
2186
2187 END IF;
2188
2189 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2190 trace
2191 (p_msg => 'p_from_segment_code = '||p_from_segment_code ||
2192 ', p_from_combination_id = '||p_from_combination_id ||
2193 ', p_value_type_code = '||p_value_type_code
2194 ,p_level => C_LEVEL_PROCEDURE
2195 ,p_module => l_log_module);
2196
2197 trace
2198 (p_msg => ' p_adr_code = '||p_adr_code||
2199 ', p_adr_type_code = '|| p_adr_type_code
2200 ,p_level => C_LEVEL_PROCEDURE
2201 ,p_module => l_log_module);
2202
2203 trace
2204 (p_msg => ' p_flexfield_segment_code = '||p_flexfield_segment_code ||
2205 ', p_flex_value_set_id = '||p_flex_value_set_id ||
2206 ', p_transaction_coa_id = '|| p_transaction_coa_id||
2207 ', p_accounting_coa_id = '||p_accounting_coa_id
2208 ,p_level => C_LEVEL_PROCEDURE
2209 ,p_module => l_log_module);
2210 trace
2211 (p_msg => ' p_component_type = '||p_component_type||
2212 ', p_component_code = '||p_component_code||
2213 ', p_component_type_code = '||p_component_type_code||
2214 ', p_component_appl_id = '||p_component_appl_id||
2215 ', p_amb_context_code = '||p_amb_context_code
2216 ,p_level => C_LEVEL_STATEMENT
2217 ,p_module => l_log_module);
2218 END IF;
2219
2220
2221 l_segment_value := p_segment_value;
2222 l_from_segment_code := p_from_segment_code;
2223 l_to_segment_code := p_to_segment_code;
2224 l_accounting_values := TRUE;
2225
2226
2227 IF l_from_segment_code IS NOT NULL AND l_from_segment_code NOT LIKE 'SEGMENT%' THEN
2228
2229 l_from_segment_code := xla_ae_code_combination_pkg.get_segment_code(
2230 p_flex_application_id => 101
2231 ,p_application_short_name => 'SQLGL'
2232 ,p_id_flex_code => 'GL#'
2233 ,p_id_flex_num => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.source_coa_id
2234 ,p_segment_qualifier => l_from_segment_code
2235 ,p_component_type => p_component_type
2236 ,p_component_code => p_component_code
2237 ,p_component_type_code => p_component_type_code
2238 ,p_component_appl_id => p_component_appl_id
2239 ,p_amb_context_code => p_amb_context_code
2240 ,p_entity_code => p_entity_code
2241 ,p_event_class_code => p_event_class_code
2242 );
2243 END IF;
2244
2245 IF l_to_segment_code IS NOT NULL AND l_to_segment_code NOT LIKE 'SEGMENT%' THEN
2246
2247 l_to_segment_code := xla_ae_code_combination_pkg.get_segment_code(
2248 p_flex_application_id => 101
2249 ,p_application_short_name => 'SQLGL'
2250 ,p_id_flex_code => 'GL#'
2251 ,p_id_flex_num => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.target_coa_id
2252 ,p_segment_qualifier => l_to_segment_code
2253 ,p_component_type => p_component_type
2254 ,p_component_code => p_component_code
2255 ,p_component_type_code => p_component_type_code
2256 ,p_component_appl_id => p_component_appl_id
2257 ,p_amb_context_code => p_amb_context_code
2258 ,p_entity_code => p_entity_code
2259 ,p_event_class_code => p_event_class_code
2260 );
2261 END IF;
2262
2263 IF l_to_segment_code IS NULL THEN
2264 RAISE invalid_segment_code;
2265 END IF;
2266
2267
2268 IF ( XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.target_coa_id <>
2269 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.source_coa_id ) AND
2270 p_accounting_coa_id IS NULL AND
2271 p_value_type_code ='S' AND
2272 p_from_combination_id IS NULL AND
2273 p_flexfield_segment_code IS NOT NULL THEN
2274 -- segment qualifier, secondary ledger , not value set
2275
2276 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.sl_coa_mapping_id IS NULL THEN
2277 RAISE no_sl_coa_mapping ;
2278 END IF;
2279
2280 IF p_segment_value IS NULL THEN
2281 RAISE null_segment_value;
2282 END IF;
2283
2284 IF nvl(p_flexfield_segment_code ,'X') NOT IN ('GL_BALANCING',
2285 'GL_ACCOUNT' ,
2286 'GL_INTERCOMPANY',
2287 'GL_MANAGEMENT',
2288 'FA_COST_CTR'
2289 ) THEN
2290 RAISE invalid_segment_qualifier;
2291 END IF;
2292
2293 l_Idx := NVL(g_transaction_accounts.array_ae_header_id.COUNT,0)+1;
2294 g_transaction_accounts.array_line_num(l_Idx) := l_Idx ;
2295 g_transaction_accounts.array_ae_header_id(l_Idx) := g_rec_lines.array_ae_header_id(g_LineNumber);
2296 g_transaction_accounts.array_temp_line_num(l_Idx) := g_rec_lines.array_line_num(g_LineNumber);
2297 g_transaction_accounts.array_code_combination_id(l_Idx) := NULL;
2298 g_transaction_accounts.array_segment (l_Idx) := p_segment_value;
2299 g_transaction_accounts.array_from_segment_code (l_Idx) := p_flexfield_segment_code;
2300 g_transaction_accounts.array_to_segment_code(l_Idx) := l_to_segment_code;
2301 g_transaction_accounts.array_processing_status_code(l_Idx) := C_MAP_QUALIFIER;
2302 g_transaction_accounts.array_side_code(l_Idx) := p_side;
2303
2304 l_accounting_values := FALSE;
2305
2306 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2307 trace
2308 (p_msg => ' Transaction seg qualifier = '||p_segment_value
2309 ,p_level => C_LEVEL_PROCEDURE
2310 ,p_module => l_log_module);
2311 END IF;
2312
2313 ELSIF ( XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.target_coa_id <>
2314 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.source_coa_id ) AND
2315 p_value_type_code ='S' AND
2316 p_from_combination_id IS NOT NULL THEN
2317 --transaction segment, secondary ledger
2318
2319 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.sl_coa_mapping_id IS NULL THEN
2320 RAISE no_sl_coa_mapping ;
2321 END IF;
2322
2323 l_Idx := NVL(g_transaction_accounts.array_ae_header_id.COUNT,0) + 1;
2324 g_transaction_accounts.array_line_num(l_Idx) := l_Idx ;
2325 g_transaction_accounts.array_ae_header_id(l_Idx) := g_rec_lines.array_ae_header_id(g_LineNumber);
2326 g_transaction_accounts.array_temp_line_num(l_Idx) := g_rec_lines.array_line_num(g_LineNumber);
2327 g_transaction_accounts.array_code_combination_id(l_Idx) := p_from_combination_id;
2328 g_transaction_accounts.array_segment (l_Idx) := NULL;
2329 g_transaction_accounts.array_from_segment_code (l_Idx) := l_from_segment_code;
2330 g_transaction_accounts.array_to_segment_code (l_Idx) := l_to_segment_code;
2331 g_transaction_accounts.array_processing_status_code(l_Idx) := C_MAP_SEGMENT;
2332 g_transaction_accounts.array_side_code(l_Idx) := p_side;
2333
2334 l_accounting_values := FALSE;
2335
2336 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2337 trace
2338 (p_msg => ' get seg '||l_from_segment_code||'from ccid = '||p_from_combination_id
2339 ,p_level => C_LEVEL_PROCEDURE
2340 ,p_module => l_log_module);
2341 END IF;
2342
2343 ELSIF ( XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.target_coa_id =
2344 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.source_coa_id ) AND
2345 -- p_accounting_coa_id IS NOT NULL AND -- bug 4304098
2346 p_value_type_code ='S' AND
2347 p_from_combination_id IS NOT NULL THEN
2348
2349 -- primary ledger
2350 l_segment_value := xla_ae_code_combination_pkg.get_flex_segment_value(
2351 p_combination_id => p_from_combination_id
2352 ,p_segment_code => l_from_segment_code
2353 ,p_id_flex_code => 'GL#'
2354 ,p_flex_application_id => 101
2355 ,p_application_short_name => 'SQLGL'
2356 ,p_component_type => p_component_type
2357 ,p_component_code => p_component_code
2358 ,p_component_type_code => p_component_type_code
2359 ,p_component_appl_id => p_component_appl_id
2360 ,p_amb_context_code => p_amb_context_code
2361 ,p_entity_code => p_entity_code
2362 ,p_event_class_code => p_event_class_code
2363 ,p_ae_header_id => NULL
2364 );
2365
2366 l_accounting_values := TRUE;
2367
2368 END IF;
2369
2370 IF l_accounting_values THEN
2371
2372 IF p_side = 'CREDIT' or p_side = 'ALL' or p_side = 'NA' OR p_side is null THEN
2373
2374 CASE NVL(g_rec_lines.array_ccid_flag(g_LineNumber),C_INVALID)
2375 WHEN C_CREATED THEN g_rec_lines.array_ccid_flag(g_LineNumber) := C_NOT_PROCESSED;
2376 WHEN C_INVALID THEN
2377 IF g_rec_lines.array_ccid(g_LineNumber) IS NULL THEN
2378 g_rec_lines.array_ccid_flag(g_LineNumber) := C_PROCESSING;
2379 END IF;
2380 ELSE null;
2381 END CASE;
2382
2383 CASE l_to_segment_code
2384 WHEN 'SEGMENT1' THEN g_rec_lines.array_segment1(g_LineNumber) := l_segment_value;
2385 WHEN 'SEGMENT2' THEN g_rec_lines.array_segment2(g_LineNumber) := l_segment_value;
2386 WHEN 'SEGMENT3' THEN g_rec_lines.array_segment3(g_LineNumber) := l_segment_value;
2387 WHEN 'SEGMENT4' THEN g_rec_lines.array_segment4(g_LineNumber) := l_segment_value;
2388 WHEN 'SEGMENT5' THEN g_rec_lines.array_segment5(g_LineNumber) := l_segment_value;
2389 WHEN 'SEGMENT6' THEN g_rec_lines.array_segment6(g_LineNumber) := l_segment_value;
2390 WHEN 'SEGMENT7' THEN g_rec_lines.array_segment7(g_LineNumber) := l_segment_value;
2391 WHEN 'SEGMENT8' THEN g_rec_lines.array_segment8(g_LineNumber) := l_segment_value;
2392 WHEN 'SEGMENT9' THEN g_rec_lines.array_segment9(g_LineNumber) := l_segment_value;
2393 WHEN 'SEGMENT10' THEN g_rec_lines.array_segment10(g_LineNumber) := l_segment_value;
2394 WHEN 'SEGMENT11' THEN g_rec_lines.array_segment11(g_LineNumber) := l_segment_value;
2395 WHEN 'SEGMENT12' THEN g_rec_lines.array_segment12(g_LineNumber) := l_segment_value;
2396 WHEN 'SEGMENT13' THEN g_rec_lines.array_segment13(g_LineNumber) := l_segment_value;
2397 WHEN 'SEGMENT14' THEN g_rec_lines.array_segment14(g_LineNumber) := l_segment_value;
2398 WHEN 'SEGMENT15' THEN g_rec_lines.array_segment15(g_LineNumber) := l_segment_value;
2399 WHEN 'SEGMENT16' THEN g_rec_lines.array_segment16(g_LineNumber) := l_segment_value;
2400 WHEN 'SEGMENT17' THEN g_rec_lines.array_segment17(g_LineNumber) := l_segment_value;
2401 WHEN 'SEGMENT18' THEN g_rec_lines.array_segment18(g_LineNumber) := l_segment_value;
2402 WHEN 'SEGMENT19' THEN g_rec_lines.array_segment19(g_LineNumber) := l_segment_value;
2403 WHEN 'SEGMENT20' THEN g_rec_lines.array_segment20(g_LineNumber) := l_segment_value;
2404 WHEN 'SEGMENT21' THEN g_rec_lines.array_segment21(g_LineNumber) := l_segment_value;
2405 WHEN 'SEGMENT22' THEN g_rec_lines.array_segment22(g_LineNumber) := l_segment_value;
2406 WHEN 'SEGMENT23' THEN g_rec_lines.array_segment23(g_LineNumber) := l_segment_value;
2407 WHEN 'SEGMENT24' THEN g_rec_lines.array_segment24(g_LineNumber) := l_segment_value;
2408 WHEN 'SEGMENT25' THEN g_rec_lines.array_segment25(g_LineNumber) := l_segment_value;
2409 WHEN 'SEGMENT26' THEN g_rec_lines.array_segment26(g_LineNumber) := l_segment_value;
2410 WHEN 'SEGMENT27' THEN g_rec_lines.array_segment27(g_LineNumber) := l_segment_value;
2411 WHEN 'SEGMENT28' THEN g_rec_lines.array_segment28(g_LineNumber) := l_segment_value;
2412 WHEN 'SEGMENT29' THEN g_rec_lines.array_segment29(g_LineNumber) := l_segment_value;
2413 WHEN 'SEGMENT30' THEN g_rec_lines.array_segment30(g_LineNumber) := l_segment_value;
2414 ELSE
2415 RAISE invalid_segment_code;
2416 END CASE;
2417
2418 END IF;
2419
2420 IF p_side = 'DEBIT' or p_side = 'ALL' THEN
2421
2422 CASE NVL(g_rec_lines.alt_array_ccid_flag(g_LineNumber),C_INVALID)
2423 WHEN C_CREATED THEN g_rec_lines.alt_array_ccid_flag(g_LineNumber) := C_NOT_PROCESSED;
2424 WHEN C_INVALID THEN
2425 IF g_rec_lines.alt_array_ccid(g_LineNumber) IS NULL THEN
2426 g_rec_lines.alt_array_ccid_flag(g_LineNumber) := C_PROCESSING;
2427 END IF;
2428 ELSE null;
2429 END CASE;
2430
2431 CASE l_to_segment_code
2432 WHEN 'SEGMENT1' THEN g_rec_lines.alt_array_segment1(g_LineNumber) := l_segment_value;
2433 WHEN 'SEGMENT2' THEN g_rec_lines.alt_array_segment2(g_LineNumber) := l_segment_value;
2434 WHEN 'SEGMENT3' THEN g_rec_lines.alt_array_segment3(g_LineNumber) := l_segment_value;
2435 WHEN 'SEGMENT4' THEN g_rec_lines.alt_array_segment4(g_LineNumber) := l_segment_value;
2436 WHEN 'SEGMENT5' THEN g_rec_lines.alt_array_segment5(g_LineNumber) := l_segment_value;
2437 WHEN 'SEGMENT6' THEN g_rec_lines.alt_array_segment6(g_LineNumber) := l_segment_value;
2438 WHEN 'SEGMENT7' THEN g_rec_lines.alt_array_segment7(g_LineNumber) := l_segment_value;
2439 WHEN 'SEGMENT8' THEN g_rec_lines.alt_array_segment8(g_LineNumber) := l_segment_value;
2440 WHEN 'SEGMENT9' THEN g_rec_lines.alt_array_segment9(g_LineNumber) := l_segment_value;
2441 WHEN 'SEGMENT10' THEN g_rec_lines.alt_array_segment10(g_LineNumber) := l_segment_value;
2442 WHEN 'SEGMENT11' THEN g_rec_lines.alt_array_segment11(g_LineNumber) := l_segment_value;
2443 WHEN 'SEGMENT12' THEN g_rec_lines.alt_array_segment12(g_LineNumber) := l_segment_value;
2444 WHEN 'SEGMENT13' THEN g_rec_lines.alt_array_segment13(g_LineNumber) := l_segment_value;
2445 WHEN 'SEGMENT14' THEN g_rec_lines.alt_array_segment14(g_LineNumber) := l_segment_value;
2446 WHEN 'SEGMENT15' THEN g_rec_lines.alt_array_segment15(g_LineNumber) := l_segment_value;
2447 WHEN 'SEGMENT16' THEN g_rec_lines.alt_array_segment16(g_LineNumber) := l_segment_value;
2448 WHEN 'SEGMENT17' THEN g_rec_lines.alt_array_segment17(g_LineNumber) := l_segment_value;
2449 WHEN 'SEGMENT18' THEN g_rec_lines.alt_array_segment18(g_LineNumber) := l_segment_value;
2450 WHEN 'SEGMENT19' THEN g_rec_lines.alt_array_segment19(g_LineNumber) := l_segment_value;
2451 WHEN 'SEGMENT20' THEN g_rec_lines.alt_array_segment20(g_LineNumber) := l_segment_value;
2452 WHEN 'SEGMENT21' THEN g_rec_lines.alt_array_segment21(g_LineNumber) := l_segment_value;
2453 WHEN 'SEGMENT22' THEN g_rec_lines.alt_array_segment22(g_LineNumber) := l_segment_value;
2454 WHEN 'SEGMENT23' THEN g_rec_lines.alt_array_segment23(g_LineNumber) := l_segment_value;
2455 WHEN 'SEGMENT24' THEN g_rec_lines.alt_array_segment24(g_LineNumber) := l_segment_value;
2456 WHEN 'SEGMENT25' THEN g_rec_lines.alt_array_segment25(g_LineNumber) := l_segment_value;
2457 WHEN 'SEGMENT26' THEN g_rec_lines.alt_array_segment26(g_LineNumber) := l_segment_value;
2458 WHEN 'SEGMENT27' THEN g_rec_lines.alt_array_segment27(g_LineNumber) := l_segment_value;
2459 WHEN 'SEGMENT28' THEN g_rec_lines.alt_array_segment28(g_LineNumber) := l_segment_value;
2460 WHEN 'SEGMENT29' THEN g_rec_lines.alt_array_segment29(g_LineNumber) := l_segment_value;
2461 WHEN 'SEGMENT30' THEN g_rec_lines.alt_array_segment30(g_LineNumber) := l_segment_value;
2462 ELSE
2463 RAISE invalid_segment_code;
2464 END CASE;
2465
2466 END IF;
2467
2468 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2469 trace
2470 (p_msg => ' Accounting seg = '||l_segment_value
2471 ,p_level => C_LEVEL_PROCEDURE
2472 ,p_module => l_log_module);
2473 END IF;
2474
2475 END IF;
2476
2477 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2478 trace
2479 (p_msg => 'l_to_segment_code = '||l_to_segment_code ||
2480 ', l_segment_value = '||l_segment_value
2481 ,p_level => C_LEVEL_PROCEDURE
2482 ,p_module => l_log_module);
2483 END IF;
2484
2485 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2486 trace
2487 (p_msg => 'END of set_segment'
2488 ,p_level => C_LEVEL_PROCEDURE
2489 ,p_module => l_log_module);
2490 END IF;
2491 EXCEPTION
2492 WHEN no_sl_coa_mapping THEN
2493
2494 CASE p_side
2495 WHEN 'ALL' THEN
2496 g_rec_lines.array_ccid(g_LineNumber) := -1;
2497 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2498 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2499 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2500 WHEN 'NA' THEN
2501 g_rec_lines.array_ccid(g_LineNumber) := -1;
2502 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2503 WHEN 'CREDIT' THEN
2504 g_rec_lines.array_ccid(g_LineNumber) := -1;
2505 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2506 WHEN 'DEBIT' THEN
2507 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2508 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2509 ELSE
2510 g_rec_lines.array_ccid(g_LineNumber) := -1;
2511 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2512 END CASE;
2513
2514 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
2515
2516 xla_accounting_err_pkg.build_message
2517 (p_appli_s_name => 'XLA'
2518 ,p_msg_name => 'XLA_AP_NO_SL_COA_MAPPING'
2519 ,p_token_1 => 'SEGMENT_RULE_NAME'
2520 ,p_value_1 => XLA_AE_SOURCES_PKG.GetComponentName (
2521 'AMB_ADR'
2522 ,p_adr_code
2523 ,p_adr_type_code
2524 ,p_component_appl_id
2525 ,p_amb_context_code
2526 )
2527 ,p_token_2 => 'OWNER'
2528 ,p_value_2 => xla_lookups_pkg.get_meaning(
2529 'XLA_OWNER_TYPE'
2530 ,p_adr_type_code
2531 )
2532 ,p_token_3 => 'LEDGER_NAME'
2533 ,p_value_3 => xla_accounting_cache_pkg.GetValueChar
2534 (
2535 p_source_code => 'XLA_LEDGER_NAME'
2536 , p_target_ledger_id =>
2537 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2538 )
2539 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2540 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2541 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2542 ,p_ae_header_id => NULL
2543 );
2544
2545 IF (C_LEVEL_ERROR >= g_log_level) THEN
2546 trace
2547 (p_msg => 'ERROR: XLA_AP_NO_SL_COA_MAPPING'
2548 ,p_level => C_LEVEL_ERROR
2549 ,p_module => l_log_module);
2550 END IF;
2551
2552 WHEN invalid_segment_code THEN
2553
2554 CASE p_side
2555 WHEN 'ALL' THEN
2556 g_rec_lines.array_ccid(g_LineNumber) := -1;
2557 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2558 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2559 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2560 WHEN 'NA' THEN
2561 g_rec_lines.array_ccid(g_LineNumber) := -1;
2562 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2563 WHEN 'CREDIT' THEN
2564 g_rec_lines.array_ccid(g_LineNumber) := -1;
2565 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2566 WHEN 'DEBIT' THEN
2567 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2568 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2569 ELSE
2570 g_rec_lines.array_ccid(g_LineNumber) := -1;
2571 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2572 END CASE;
2573
2574 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
2575
2576 l_coa_name := xla_accounting_cache_pkg.GetValueChar
2577 (
2578 p_source_code => 'XLA_COA_NAME'
2579 , p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2580 );
2581
2582 xla_accounting_err_pkg.build_message
2583 (p_appli_s_name => 'XLA'
2584 ,p_msg_name => 'XLA_AP_INVALID_SEGMENT'
2585 ,p_token_1 => 'COMPONENT_TYPE'
2586 ,p_value_1 => xla_lookups_pkg.get_meaning(
2587 'XLA_AMB_COMPONENT_TYPE'
2588 , p_component_type
2589 )
2590 ,p_token_2 => 'COMPONENT_NAME'
2591 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
2592 p_component_type
2593 ,p_component_code
2594 ,p_component_type_code
2595 ,p_component_appl_id
2596 ,p_amb_context_code
2597 ,p_entity_code
2598 ,p_event_class_code
2599 )
2600 ,p_token_3 => 'OWNER'
2601 ,p_value_3 => xla_lookups_pkg.get_meaning(
2602 'XLA_OWNER_TYPE'
2603 ,p_component_type_code
2604 )
2605 ,p_token_4 => 'QUALIFIER_NAME'
2606 ,p_value_4 => xla_lookups_pkg.get_meaning(
2607 p_lookup_type => 'XLA_FLEXFIELD_SEGMENTS_QUAL'
2608 , p_lookup_code => p_to_segment_code
2609 )
2610 ,p_token_5 => 'ACCOUNTING_COA'
2611 ,p_value_5 => l_coa_name
2612 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2613 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2614 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2615 ,p_ae_header_id => NULL -- p_ae_header_id
2616 );
2617
2618 IF (C_LEVEL_ERROR >= g_log_level) THEN
2619 trace
2620 (p_msg => 'ERROR: XLA_AP_INVALID_SEGMENT'
2621 ,p_level => C_LEVEL_ERROR
2622 ,p_module => l_log_module);
2623 END IF;
2624
2625 WHEN null_segment_value THEN
2626
2627 CASE p_side
2628 WHEN 'ALL' THEN
2629 g_rec_lines.array_ccid(g_LineNumber) := -1;
2630 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2631 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2632 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2633 WHEN 'NA' THEN
2634 g_rec_lines.array_ccid(g_LineNumber) := -1;
2635 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2636 WHEN 'CREDIT' THEN
2637 g_rec_lines.array_ccid(g_LineNumber) := -1;
2638 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2639 WHEN 'DEBIT' THEN
2640 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2641 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2642 ELSE
2643 g_rec_lines.array_ccid(g_LineNumber) := -1;
2644 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2645 END CASE;
2646
2647 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
2648
2649 xla_accounting_err_pkg.build_message
2650 (p_appli_s_name => 'XLA'
2651 ,p_msg_name => 'XLA_AP_NULL_SEGMENT_VALUE'
2652 ,p_token_1 => 'SEGMENT_RULE_NAME'
2653 ,p_value_1 => XLA_AE_SOURCES_PKG.GetComponentName (
2654 'AMB_ADR'
2655 ,p_adr_code
2656 ,p_adr_type_code
2657 ,p_component_appl_id
2658 ,p_amb_context_code
2659 )
2660 ,p_token_2 => 'OWNER'
2661 ,p_value_2 => xla_lookups_pkg.get_meaning(
2662 'XLA_OWNER_TYPE'
2663 ,p_adr_type_code
2664 )
2665 ,p_token_3 => 'QUALIFIER_NAME'
2666 ,p_value_3 => xla_lookups_pkg.get_meaning(
2667 p_lookup_type => 'XLA_FLEXFIELD_SEGMENTS_QUAL'
2668 , p_lookup_code => p_flexfield_segment_code
2669 )
2670 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2671 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2672 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2673 ,p_ae_header_id => NULL -- p_ae_header_id
2674 );
2675
2676 IF (C_LEVEL_ERROR >= g_log_level) THEN
2677 trace
2678 (p_msg => 'ERROR: XLA_AP_NULL_SEGMENT_VALUE'
2679 ,p_level => C_LEVEL_ERROR
2680 ,p_module => l_log_module);
2681 END IF;
2682
2683 WHEN invalid_segment_qualifier THEN
2684
2685 CASE p_side
2686 WHEN 'ALL' THEN
2687 g_rec_lines.array_ccid(g_LineNumber) := -1;
2688 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2689 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2690 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2691 WHEN 'NA' THEN
2692 g_rec_lines.array_ccid(g_LineNumber) := -1;
2693 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2694 WHEN 'CREDIT' THEN
2695 g_rec_lines.array_ccid(g_LineNumber) := -1;
2696 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2697 WHEN 'DEBIT' THEN
2698 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2699 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2700 ELSE
2701 g_rec_lines.array_ccid(g_LineNumber) := -1;
2702 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2703 END CASE;
2704
2705 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
2706
2707 l_coa_name := xla_accounting_cache_pkg.GetValueChar
2708 (
2709 p_source_code => 'XLA_COA_NAME'
2710 , p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2711 );
2712
2713 xla_accounting_err_pkg.build_message
2714 (p_appli_s_name => 'XLA'
2715 ,p_msg_name => 'XLA_AP_INV_SEGMENT_QUAL'
2716 ,p_token_1 => 'SEGMENT_RULE_NAME'
2717 ,p_value_1 => XLA_AE_SOURCES_PKG.GetComponentName (
2718 'AMB_ADR'
2719 ,p_adr_code
2720 ,p_adr_type_code
2721 ,p_component_appl_id
2722 ,p_amb_context_code
2723 )
2724 ,p_token_2 => 'OWNER'
2725 ,p_value_2 => xla_lookups_pkg.get_meaning(
2726 'XLA_OWNER_TYPE'
2727 ,p_adr_type_code
2728 )
2729
2730 ,p_token_3 => 'QUALIFIER_NAME'
2731 ,p_value_3 => xla_lookups_pkg.get_meaning(
2732 p_lookup_type => 'XLA_FLEXFIELD_SEGMENTS_QUAL'
2733 , p_lookup_code => p_flexfield_segment_code
2734 )
2735 ,p_token_4 => 'ACCOUNTING_COA'
2736 ,p_value_4 => l_coa_name
2737 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2738 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2739 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2740 ,p_ae_header_id => NULL -- p_ae_header_id
2741 );
2742
2743 IF (C_LEVEL_ERROR >= g_log_level) THEN
2744 trace
2745 (p_msg => 'ERROR: XLA_AP_INV_SEGMENT_QUAL'
2746 ,p_level => C_LEVEL_ERROR
2747 ,p_module => l_log_module);
2748 END IF;
2749 WHEN xla_exceptions_pkg.application_exception THEN
2750 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2751 trace
2752 (p_msg => 'Error. = '||sqlerrm
2753 ,p_level => C_LEVEL_PROCEDURE
2754 ,p_module => l_log_module);
2755 END IF;
2756 RAISE;
2757 WHEN OTHERS THEN
2758 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2759 trace
2760 (p_msg => 'Error. = '||sqlerrm
2761 ,p_level => C_LEVEL_PROCEDURE
2762 ,p_module => l_log_module);
2763 END IF;
2764 xla_exceptions_pkg.raise_message
2765 (p_location => 'XLA_AE_LINES_PKG.set_segment');
2766 END set_segment;
2767
2768 --
2769 /*======================================================================+
2770 | |
2771 | Public Procedure |
2772 | ValidateCurrentLine |
2773 | |
2774 +======================================================================*/
2775 PROCEDURE ValidateCurrentLine
2776 IS
2777 l_log_module VARCHAR2(240);
2778 BEGIN
2779 IF g_log_enabled THEN
2780 l_log_module := C_DEFAULT_MODULE||'.ValidateCurrentLine';
2781 END IF;
2782 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2783 trace
2784 (p_msg => 'BEGIN of ValidateCurrentLine'
2785 ,p_level => C_LEVEL_PROCEDURE
2786 ,p_module => l_log_module);
2787
2788 END IF;
2789
2790 IF nvl(g_LineNumber,0) > 0 THEN
2791
2792 -----------------------------------------------------------
2793 -- 4219869 Business Flow
2794 -- Call is moved to XLA_CMP_ACCT_LINE_TYPE_PKG.C_ALT_BODY
2795 -----------------------------------------------------------
2796 -- SetDebitCreditAmounts(p_ae_header_id => p_ae_header_id);
2797 -----------------------------------------------------------
2798
2799 ValidateLinks;
2800
2801 END IF;
2802
2803 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2804 trace
2805 (p_msg => 'END of ValidateCurrentLine = '||g_LineNumber
2806 ,p_level => C_LEVEL_PROCEDURE
2807 ,p_module => l_log_module);
2808
2809 END IF;
2810 EXCEPTION
2811 WHEN xla_exceptions_pkg.application_exception THEN
2812 RAISE;
2813 WHEN OTHERS THEN
2814 xla_exceptions_pkg.raise_message
2815 (p_location => 'XLA_AE_LINES_PKG.ValidateCurrentLine');
2816 --
2817 END ValidateCurrentLine;
2818 --
2819 /*======================================================================+
2820 | |
2821 | Public Procedure |
2822 | |
2823 | |
2824 +======================================================================*/
2825 PROCEDURE SetAcctClass(p_accounting_class_code IN VARCHAR2
2826 ,p_ae_header_id IN NUMBER)
2827 IS
2828 l_log_module VARCHAR2(240);
2829 BEGIN
2830 IF g_log_enabled THEN
2831 l_log_module := C_DEFAULT_MODULE||'.SetAcctClass';
2832 END IF;
2833 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2834 trace
2835 (p_msg => 'BEGIN of SetAcctClass'
2836 ,p_level => C_LEVEL_PROCEDURE
2837 ,p_module => l_log_module);
2838
2839 trace
2840 (p_msg => 'p_accounting_class_code = '||p_accounting_class_code
2841 ,p_level => C_LEVEL_PROCEDURE
2842 ,p_module => l_log_module);
2843 END IF;
2844
2845 g_rec_lines.array_accounting_class(g_LineNumber) := p_accounting_class_code;
2846
2847
2848 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2849 trace
2850 (p_msg => 'END of SetAcctClass'
2851 ,p_level => C_LEVEL_PROCEDURE
2852 ,p_module => l_log_module);
2853 END IF;
2854 EXCEPTION
2855 WHEN xla_exceptions_pkg.application_exception THEN
2856 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
2857 RAISE;
2858 WHEN OTHERS THEN
2859 xla_exceptions_pkg.raise_message
2860 (p_location => 'XLA_AE_LINES_PKG.SetAcctClass');
2861 END SetAcctClass;
2862 --
2863
2864 /*======================================================================+
2865 | |
2866 | Public Function |
2867 | |
2868 | SetAnalyticalCriteria |
2869 | |
2870 +======================================================================*/
2871 --
2872 FUNCTION SetAnalyticalCriteria(
2873 p_analytical_criterion_name IN VARCHAR2
2874 , p_analytical_criterion_owner IN VARCHAR2
2875 , p_analytical_criterion_code IN VARCHAR2
2876 , p_amb_context_code IN VARCHAR2
2877 , p_balancing_flag IN VARCHAR2
2878 , p_analytical_detail_char_1 IN VARCHAR2
2879 , p_analytical_detail_num_1 IN NUMBER
2880 , p_analytical_detail_date_1 IN DATE
2881 , p_analytical_detail_char_2 IN VARCHAR2
2882 , p_analytical_detail_num_2 IN NUMBER
2883 , p_analytical_detail_date_2 IN DATE
2884 , p_analytical_detail_char_3 IN VARCHAR2
2885 , p_analytical_detail_num_3 IN NUMBER
2886 , p_analytical_detail_date_3 IN DATE
2887 , p_analytical_detail_char_4 IN VARCHAR2
2888 , p_analytical_detail_num_4 IN NUMBER
2889 , p_analytical_detail_date_4 IN DATE
2890 , p_analytical_detail_char_5 IN VARCHAR2
2891 , p_analytical_detail_num_5 IN NUMBER
2892 , p_analytical_detail_date_5 IN DATE
2893 , p_ae_header_id IN NUMBER
2894 )
2895 RETURN VARCHAR2
2896 IS
2897 l_analytical_criteria VARCHAR2(240);
2898 l_log_module VARCHAR2(240);
2899 BEGIN
2900 --
2901 IF g_log_enabled THEN
2902 l_log_module := C_DEFAULT_MODULE||'.SetAnalyticalCriteria';
2903 END IF;
2904 --
2905 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2906 trace
2907 (p_msg => 'BEGIN of SetAnalyticalCriteria'
2908 ,p_level => C_LEVEL_PROCEDURE
2909 ,p_module => l_log_module);
2910
2911 trace
2912 (p_msg => '-> CALL XLA_ANALYTICAL_CRITERIA_PKG.concat_detail_values API'
2913 ,p_level => C_LEVEL_PROCEDURE
2914 ,p_module => l_log_module);
2915
2916 END IF;
2917
2918 l_analytical_criteria := XLA_ANALYTICAL_CRITERIA_PKG.concat_detail_values
2919 ( p_anacri_code => p_analytical_criterion_code
2920 ,p_anacri_type_code => p_analytical_criterion_owner
2921 ,p_amb_context_code => p_amb_context_code
2922 ,p_detail_char_1 => p_analytical_detail_char_1
2923 ,p_detail_date_1 => p_analytical_detail_date_1
2924 ,p_detail_number_1 => p_analytical_detail_num_1
2925 ,p_detail_char_2 => p_analytical_detail_char_2
2926 ,p_detail_date_2 => p_analytical_detail_date_2
2927 ,p_detail_number_2 => p_analytical_detail_num_2
2928 ,p_detail_char_3 => p_analytical_detail_char_3
2929 ,p_detail_date_3 => p_analytical_detail_date_3
2930 ,p_detail_number_3 => p_analytical_detail_num_3
2931 ,p_detail_char_4 => p_analytical_detail_char_4
2932 ,p_detail_date_4 => p_analytical_detail_date_4
2933 ,p_detail_number_4 => p_analytical_detail_num_4
2934 ,p_detail_char_5 => p_analytical_detail_char_5
2935 ,p_detail_date_5 => p_analytical_detail_date_5
2936 ,p_detail_number_5 => p_analytical_detail_num_5
2937 );
2938 IF g_rec_lines.array_anc_balance_flag(g_LineNumber) IS NULL AND
2939 nvl(p_balancing_flag,'N') = 'Y'
2940 THEN
2941 g_rec_lines.array_anc_balance_flag(g_LineNumber) := 'P';
2942 END IF;
2943
2944 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2945
2946 trace
2947 (p_msg => 'return value. = '||TO_CHAR(l_analytical_criteria)
2948 ,p_level => C_LEVEL_PROCEDURE
2949 ,p_module => l_log_module);
2950
2951 trace
2952 (p_msg => 'END of SetAnalyticalCriteria'
2953 ,p_level => C_LEVEL_PROCEDURE
2954 ,p_module => l_log_module);
2955
2956 END IF;
2957 RETURN l_analytical_criteria;
2958 EXCEPTION
2959 WHEN xla_exceptions_pkg.application_exception THEN
2960 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
2961 RAISE;
2962 WHEN OTHERS THEN
2963 xla_exceptions_pkg.raise_message
2964 (p_location => 'XLA_AE_LINES_PKG.SetAnalyticalCriteria');
2965 --
2966 END SetAnalyticalCriteria;
2967
2968
2969 --
2970 /*======================================================================+
2971 | |
2972 | Public Procedure |
2973 | |
2974 | |
2975 +======================================================================*/
2976 FUNCTION InsertLines
2977 RETURN BOOLEAN
2978 IS
2979 l_result BOOLEAN;
2980 l_ledger_currency VARCHAR2(30);
2981 l_ledger_category_code VARCHAR2(30);
2982 l_rowcount NUMBER;
2983 l_null_trans_accounts t_rec_transaction_accounts;
2984 l_log_module VARCHAR2(240);
2985 errors NUMBER; -- 7453943
2986 ERR_IND NUMBER; -- 7453943
2987 ERR_CODE VARCHAR2(100); -- 7453943
2988 dml_errors EXCEPTION; -- 7453943
2989 PRAGMA exception_init(dml_errors, -24381); -- 7453943
2990 BEGIN
2991 IF g_log_enabled THEN
2992 l_log_module := C_DEFAULT_MODULE||'.InsertLines';
2993 END IF;
2994 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2995 trace
2996 (p_msg => 'BEGIN of InsertLines'
2997 ,p_level => C_LEVEL_PROCEDURE
2998 ,p_module => l_log_module);
2999 END IF;
3000
3001 l_result :=TRUE;
3002
3003 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
3004 trace
3005 (p_msg => '# temporary journal lines to insert into GT xla_ae_lines_gt = '||g_rec_lines.array_line_num.COUNT
3006 ,p_level => C_LEVEL_STATEMENT
3007 ,p_module => l_log_module);
3008 END IF;
3009
3010 --
3011 -- Bug 4458708
3012 --
3013 IF g_rec_lines.array_line_num.COUNT > 0 THEN
3014
3015 l_result := FALSE;
3016 l_rowcount := 0;
3017
3018 --cache accounting COA
3019 xla_ae_code_combination_pkg.cache_coa
3020 (p_coa_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.target_coa_id
3021 ,p_target_coa => 'Y');
3022
3023 --get the ledger currency
3024 -- when this fuction is called, all the lines are always for one ledger
3025
3026 l_ledger_currency := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.currency_code;
3027 l_ledger_category_code:= XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code;
3028
3029 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
3030 trace
3031 (p_msg => 'ledger_currency:'||l_ledger_currency||' category_coe:'||l_ledger_category_code
3032 ,p_level => C_LEVEL_STATEMENT
3033 ,p_module => l_log_module);
3034 END IF;
3035
3036 IF l_ledger_category_code = 'ALC' THEN
3037 IF (xla_accounting_cache_pkg.GetValueChar('XLA_ALC_ENABLED_FLAG')='N') THEN
3038 l_ledger_category_code :='PRIMARY';
3039 END IF;
3040 END IF;
3041
3042 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
3043 trace
3044 (p_msg => 'SQL - Insert into xla_ae_lines_gt'
3045 ,p_level => C_LEVEL_STATEMENT
3046 ,p_module => l_log_module);
3047 END IF;
3048
3049 ------------------------------------------------------------------------------------------------------
3050
3051 FORALL Idx IN g_rec_lines.array_line_num.FIRST .. g_rec_lines.array_line_num.LAST SAVE EXCEPTIONS --7453943
3052 INSERT INTO xla_ae_lines_gt
3053 ( ae_header_id
3054 , temp_line_num
3055 , extract_line_num
3056 , event_id
3057 , ref_ae_header_id
3058 --
3059 , accounting_date --4955764
3060 , accounting_class_code
3061 , rounding_class_code
3062 , event_class_code
3063 , event_type_code
3064 , line_definition_owner_code
3065 , line_definition_code
3066 , accounting_line_type_code
3067 , accounting_line_code
3068 , document_rounding_level
3069 , gain_or_loss_ref
3070 --
3071 , calculate_acctd_amts_flag
3072 , calculate_g_l_amts_flag
3073 , gain_or_loss_flag
3074 --
3075 , code_combination_status_code
3076 , code_combination_id
3077 , sl_coa_mapping_name
3078 , sl_coa_mapping_id
3079 , dynamic_insert_flag
3080 , source_coa_id
3081 , ccid_coa_id
3082 , segment1
3083 , segment2
3084 , segment3
3085 , segment4
3086 , segment5
3087 , segment6
3088 , segment7
3089 , segment8
3090 , segment9
3091 , segment10
3092 , segment11
3093 , segment12
3094 , segment13
3095 , segment14
3096 , segment15
3097 , segment16
3098 , segment17
3099 , segment18
3100 , segment19
3101 , segment20
3102 , segment21
3103 , segment22
3104 , segment23
3105 , segment24
3106 , segment25
3107 , segment26
3108 , segment27
3109 , segment28
3110 , segment29
3111 , segment30
3112 --
3113 , alt_ccid_status_code
3114 , alt_code_combination_id
3115 , alt_segment1
3116 , alt_segment2
3117 , alt_segment3
3118 , alt_segment4
3119 , alt_segment5
3120 , alt_segment6
3121 , alt_segment7
3122 , alt_segment8
3123 , alt_segment9
3124 , alt_segment10
3125 , alt_segment11
3126 , alt_segment12
3127 , alt_segment13
3128 , alt_segment14
3129 , alt_segment15
3130 , alt_segment16
3131 , alt_segment17
3132 , alt_segment18
3133 , alt_segment19
3134 , alt_segment20
3135 , alt_segment21
3136 , alt_segment22
3137 , alt_segment23
3138 , alt_segment24
3139 , alt_segment25
3140 , alt_segment26
3141 , alt_segment27
3142 , alt_segment28
3143 , alt_segment29
3144 , alt_segment30
3145 --
3146 , description
3147 , gl_transfer_mode_code
3148 , merge_duplicate_code
3149 , switch_side_flag
3150 --
3151 , entered_amount
3152 , ledger_amount
3153 , unrounded_entered_dr
3154 , unrounded_entered_cr
3155 , unrounded_accounted_dr
3156 , unrounded_accounted_cr
3157 , entered_currency_mau
3158 , currency_code
3159 , currency_conversion_date
3160 , currency_conversion_rate
3161 , currency_conversion_type
3162 , statistical_amount
3163 --
3164 , party_id
3165 , party_site_id
3166 , party_type_code
3167 --
3168 , ussgl_transaction_code
3169 , jgzz_recon_ref
3170 , source_distribution_id_char_1
3171 , source_distribution_id_char_2
3172 , source_distribution_id_char_3
3173 , source_distribution_id_char_4
3174 , source_distribution_id_char_5
3175 , source_distribution_id_num_1
3176 , source_distribution_id_num_2
3177 , source_distribution_id_num_3
3178 , source_distribution_id_num_4
3179 , source_distribution_id_num_5
3180 , source_distribution_type
3181 --
3182 , reverse_dist_id_char_1
3183 , reverse_dist_id_char_2
3184 , reverse_dist_id_char_3
3185 , reverse_dist_id_char_4
3186 , reverse_dist_id_char_5
3187 , reverse_dist_id_num_1
3188 , reverse_dist_id_num_2
3189 , reverse_dist_id_num_3
3190 , reverse_dist_id_num_4
3191 , reverse_dist_id_num_5
3192 , reverse_distribution_type
3193 --
3194 , tax_line_ref_id
3195 , tax_summary_line_ref_id
3196 , tax_rec_nrec_dist_ref_id
3197 --
3198 --
3199 -- 4262811
3200 , header_num
3201 , mpa_accrual_entry_flag
3202 , multiperiod_option_flag
3203 , multiperiod_start_date
3204 , multiperiod_end_date
3205 --
3206 , analytical_balance_flag
3207 , anc_id_1
3208 , anc_id_2
3209 , anc_id_3
3210 , anc_id_4
3211 , anc_id_5
3212 , anc_id_6
3213 , anc_id_7
3214 , anc_id_8
3215 , anc_id_9
3216 , anc_id_10
3217 , anc_id_11
3218 , anc_id_12
3219 , anc_id_13
3220 , anc_id_14
3221 , anc_id_15
3222 , anc_id_16
3223 , anc_id_17
3224 , anc_id_18
3225 , anc_id_19
3226 , anc_id_20
3227 , anc_id_21
3228 , anc_id_22
3229 , anc_id_23
3230 , anc_id_24
3231 , anc_id_25
3232 , anc_id_26
3233 , anc_id_27
3234 , anc_id_28
3235 , anc_id_29
3236 , anc_id_30
3237 , anc_id_31
3238 , anc_id_32
3239 , anc_id_33
3240 , anc_id_34
3241 , anc_id_35
3242 , anc_id_36
3243 , anc_id_37
3244 , anc_id_38
3245 , anc_id_39
3246 , anc_id_40
3247 , anc_id_41
3248 , anc_id_42
3249 , anc_id_43
3250 , anc_id_44
3251 , anc_id_45
3252 , anc_id_46
3253 , anc_id_47
3254 , anc_id_48
3255 , anc_id_49
3256 , anc_id_50
3257 , anc_id_51
3258 , anc_id_52
3259 , anc_id_53
3260 , anc_id_54
3261 , anc_id_55
3262 , anc_id_56
3263 , anc_id_57
3264 , anc_id_58
3265 , anc_id_59
3266 , anc_id_60
3267 , anc_id_61
3268 , anc_id_62
3269 , anc_id_63
3270 , anc_id_64
3271 , anc_id_65
3272 , anc_id_66
3273 , anc_id_67
3274 , anc_id_68
3275 , anc_id_69
3276 , anc_id_70
3277 , anc_id_71
3278 , anc_id_72
3279 , anc_id_73
3280 , anc_id_74
3281 , anc_id_75
3282 , anc_id_76
3283 , anc_id_77
3284 , anc_id_78
3285 , anc_id_79
3286 , anc_id_80
3287 , anc_id_81
3288 , anc_id_82
3289 , anc_id_83
3290 , anc_id_84
3291 , anc_id_85
3292 , anc_id_86
3293 , anc_id_87
3294 , anc_id_88
3295 , anc_id_89
3296 , anc_id_90
3297 , anc_id_91
3298 , anc_id_92
3299 , anc_id_93
3300 , anc_id_94
3301 , anc_id_95
3302 , anc_id_96
3303 , anc_id_97
3304 , anc_id_98
3305 , anc_id_99
3306 , anc_id_100
3307 --, deferred_indicator
3308 --, deferred_start_date
3309 --, deferred_end_date
3310 --, deferred_no_period
3311 --, deferred_period_type
3312 -- bulk performance
3313 , balance_type_code -- element at index [x] does not exist.
3314 , ledger_id -- element at index [x] does not exist.
3315 , event_number
3316 , entity_id
3317 , reversal_code
3318 , encumbrance_type_id -- 4458381
3319 --------------------------------------
3320 -- 4219869
3321 -- Business Flow Applied To attributes
3322 --------------------------------------
3323 ,inherit_desc_flag
3324 ,natural_side_code
3325 ,business_method_code
3326 ,business_class_code
3327 ,bflow_application_id
3328 ,bflow_entity_code
3329 ,bflow_source_id_num_1
3330 ,bflow_source_id_num_2
3331 ,bflow_source_id_num_3
3332 ,bflow_source_id_num_4
3333 ,bflow_source_id_char_1
3334 ,bflow_source_id_char_2
3335 ,bflow_source_id_char_3
3336 ,bflow_source_id_char_4
3337 ,bflow_distribution_type
3338 ,bflow_dist_id_num_1
3339 ,bflow_dist_id_num_2
3340 ,bflow_dist_id_num_3
3341 ,bflow_dist_id_num_4
3342 ,bflow_dist_id_num_5
3343 ,bflow_dist_id_char_1
3344 ,bflow_dist_id_char_2
3345 ,bflow_dist_id_char_3
3346 ,bflow_dist_id_char_4
3347 ,bflow_dist_id_char_5
3348 ,bflow_applied_to_amount -- 5132302
3349 ,override_acctd_amt_flag
3350 --
3351 -- Allocation Attributes
3352 --
3353 ,alloc_to_application_id
3354 ,alloc_to_entity_code
3355 ,alloc_to_source_id_num_1
3356 ,alloc_to_source_id_num_2
3357 ,alloc_to_source_id_num_3
3358 ,alloc_to_source_id_num_4
3359 ,alloc_to_source_id_char_1
3360 ,alloc_to_source_id_char_2
3361 ,alloc_to_source_id_char_3
3362 ,alloc_to_source_id_char_4
3363 ,alloc_to_distribution_type
3364 ,alloc_to_dist_id_num_1
3365 ,alloc_to_dist_id_num_2
3366 ,alloc_to_dist_id_num_3
3367 ,alloc_to_dist_id_num_4
3368 ,alloc_to_dist_id_num_5
3369 ,alloc_to_dist_id_char_1
3370 ,alloc_to_dist_id_char_2
3371 ,alloc_to_dist_id_char_3
3372 ,alloc_to_dist_id_char_4
3373 ,alloc_to_dist_id_char_5
3374 )
3375 VALUES
3376 (
3377 g_rec_lines.array_ae_header_id(Idx)
3378 , g_rec_lines.array_line_num(Idx)
3379 , g_rec_lines.array_extract_line_num(Idx)
3380 , g_rec_lines.array_ae_header_id(Idx)
3381 , g_rec_lines.array_ae_header_id(Idx)
3382 --
3383 , g_rec_lines.array_gl_date(Idx) --4955764
3384 , g_rec_lines.array_accounting_class(Idx)
3385 , g_rec_lines.array_rounding_class(Idx)
3386 , g_rec_lines.array_event_class_code(Idx)
3387 , g_rec_lines.array_event_type_code(Idx)
3388 , g_rec_lines.array_line_defn_owner_code(Idx)
3389 , g_rec_lines.array_line_defn_code(Idx)
3390 , g_rec_lines.array_accounting_line_type(Idx)
3391 , g_rec_lines.array_accounting_line_code(Idx)
3392 , g_rec_lines.array_doc_rounding_level(Idx)
3393 , nvl(g_rec_lines.array_gain_or_loss_ref(Idx), '#line#'||g_rec_lines.array_extract_line_num(Idx))
3394 --
3395 , g_rec_lines.array_calculate_acctd_flag(Idx)
3396 , g_rec_lines.array_calculate_g_l_flag(Idx)
3397 , decode(g_rec_lines.array_gain_or_loss_flag(Idx), 'Y', 'Y', decode(g_rec_lines.array_natural_side_code(Idx), 'G', 'Y', 'N'))
3398 --
3399 , g_rec_lines.array_ccid_flag(Idx)
3400 , g_rec_lines.array_ccid(Idx)
3401 --
3402 , XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.sl_coa_mapping_name
3403 , XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.sl_coa_mapping_id
3404 --
3405 , XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.dynamic_insert_flag
3406 , XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.source_coa_id
3407 , XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.target_coa_id
3408 --
3409 , g_rec_lines.array_segment1(Idx)
3410 , g_rec_lines.array_segment2(Idx)
3411 , g_rec_lines.array_segment3(Idx)
3412 , g_rec_lines.array_segment4(Idx)
3413 , g_rec_lines.array_segment5(Idx)
3414 , g_rec_lines.array_segment6(Idx)
3415 , g_rec_lines.array_segment7(Idx)
3416 , g_rec_lines.array_segment8(Idx)
3417 , g_rec_lines.array_segment9(Idx)
3418 , g_rec_lines.array_segment10(Idx)
3419 , g_rec_lines.array_segment11(Idx)
3420 , g_rec_lines.array_segment12(Idx)
3421 , g_rec_lines.array_segment13(Idx)
3422 , g_rec_lines.array_segment14(Idx)
3423 , g_rec_lines.array_segment15(Idx)
3424 , g_rec_lines.array_segment16(Idx)
3425 , g_rec_lines.array_segment17(Idx)
3426 , g_rec_lines.array_segment18(Idx)
3427 , g_rec_lines.array_segment19(Idx)
3428 , g_rec_lines.array_segment20(Idx)
3429 , g_rec_lines.array_segment21(Idx)
3430 , g_rec_lines.array_segment22(Idx)
3431 , g_rec_lines.array_segment23(Idx)
3432 , g_rec_lines.array_segment24(Idx)
3433 , g_rec_lines.array_segment25(Idx)
3434 , g_rec_lines.array_segment26(Idx)
3435 , g_rec_lines.array_segment27(Idx)
3436 , g_rec_lines.array_segment28(Idx)
3437 , g_rec_lines.array_segment29(Idx)
3438 , g_rec_lines.array_segment30(Idx)
3439 --
3440 , g_rec_lines.alt_array_ccid_flag(Idx)
3441 , g_rec_lines.alt_array_ccid(Idx)
3442 , g_rec_lines.alt_array_segment1(Idx)
3443 , g_rec_lines.alt_array_segment2(Idx)
3444 , g_rec_lines.alt_array_segment3(Idx)
3445 , g_rec_lines.alt_array_segment4(Idx)
3446 , g_rec_lines.alt_array_segment5(Idx)
3447 , g_rec_lines.alt_array_segment6(Idx)
3448 , g_rec_lines.alt_array_segment7(Idx)
3449 , g_rec_lines.alt_array_segment8(Idx)
3450 , g_rec_lines.alt_array_segment9(Idx)
3451 , g_rec_lines.alt_array_segment10(Idx)
3452 , g_rec_lines.alt_array_segment11(Idx)
3453 , g_rec_lines.alt_array_segment12(Idx)
3454 , g_rec_lines.alt_array_segment13(Idx)
3455 , g_rec_lines.alt_array_segment14(Idx)
3456 , g_rec_lines.alt_array_segment15(Idx)
3457 , g_rec_lines.alt_array_segment16(Idx)
3458 , g_rec_lines.alt_array_segment17(Idx)
3459 , g_rec_lines.alt_array_segment18(Idx)
3460 , g_rec_lines.alt_array_segment19(Idx)
3461 , g_rec_lines.alt_array_segment20(Idx)
3462 , g_rec_lines.alt_array_segment21(Idx)
3463 , g_rec_lines.alt_array_segment22(Idx)
3464 , g_rec_lines.alt_array_segment23(Idx)
3465 , g_rec_lines.alt_array_segment24(Idx)
3466 , g_rec_lines.alt_array_segment25(Idx)
3467 , g_rec_lines.alt_array_segment26(Idx)
3468 , g_rec_lines.alt_array_segment27(Idx)
3469 , g_rec_lines.alt_array_segment28(Idx)
3470 , g_rec_lines.alt_array_segment29(Idx)
3471 , g_rec_lines.alt_array_segment30(Idx)
3472 --
3473 , g_rec_lines.array_description(Idx)
3474 , g_rec_lines.array_gl_transfer_mode(Idx)
3475 , g_rec_lines.array_merge_duplicate_code(Idx)
3476 , decode(g_rec_lines.array_natural_side_code(Idx), 'G', 'Y',
3477 g_rec_lines.array_switch_side_flag(Idx))
3478 --
3479 , g_rec_lines.array_entered_amount(Idx)
3480 , g_rec_lines.array_ledger_amount(Idx)
3481 , g_rec_lines.array_entered_dr(Idx)
3482 , g_rec_lines.array_entered_cr(Idx)
3483 , g_rec_lines.array_accounted_dr(Idx)
3484 , g_rec_lines.array_accounted_cr(Idx)
3485 -- currency mau, put some dummy value for gain/loss line
3486 , decode(g_rec_lines.array_natural_side_code(Idx), 'G', .01
3487 , g_rec_lines.array_currency_mau(Idx))
3488 , decode(g_rec_lines.array_natural_side_code(Idx), 'G', l_ledger_currency
3489 , g_rec_lines.array_currency_code(Idx))--
3490 , decode(l_ledger_category_code
3491 ,'PRIMARY',TRUNC(g_rec_lines.array_curr_conversion_date(Idx))
3492 ,decode(l_ledger_currency
3493 ,g_rec_lines.array_currency_code(Idx),NULL
3494 ,TRUNC(g_rec_lines.array_curr_conversion_date(Idx))
3495 )
3496 ) -- currency_conversion_date
3497 , decode(l_ledger_category_code, 'PRIMARY',
3498 g_rec_lines.array_curr_conversion_rate(Idx)
3499 ,decode(l_ledger_currency, g_rec_lines.array_currency_code(Idx),
3500 null, g_rec_lines.array_curr_conversion_rate(Idx)))
3501 , decode(l_ledger_category_code, 'PRIMARY',
3502 g_rec_lines.array_curr_conversion_type(Idx)
3503 ,decode(l_ledger_currency, g_rec_lines.array_currency_code(Idx),
3504 null, g_rec_lines.array_curr_conversion_type(Idx)))
3505 , g_rec_lines.array_statistical_amount(Idx)
3506 --
3507 , g_rec_lines.array_party_id(Idx)
3508 , g_rec_lines.array_party_site_id(Idx)
3509 , g_rec_lines.array_party_type_code(Idx)
3510 --
3511 , g_rec_lines.array_ussgl_transaction(Idx)
3512 , g_rec_lines.array_jgzz_recon_ref(Idx)
3513 --
3514 , g_rec_lines.array_distribution_id_char_1(Idx)
3515 , g_rec_lines.array_distribution_id_char_2(Idx)
3516 , g_rec_lines.array_distribution_id_char_3(Idx)
3517 , g_rec_lines.array_distribution_id_char_4(Idx)
3518 , g_rec_lines.array_distribution_id_char_5(Idx)
3519 , g_rec_lines.array_distribution_id_num_1(Idx)
3520 , g_rec_lines.array_distribution_id_num_2(Idx)
3521 , g_rec_lines.array_distribution_id_num_3(Idx)
3522 , g_rec_lines.array_distribution_id_num_4(Idx)
3523 , g_rec_lines.array_distribution_id_num_5(Idx)
3524 , g_rec_lines.array_sys_distribution_type(Idx)
3525 --
3526 , g_rec_lines.array_rev_dist_id_char_1(Idx)
3527 , g_rec_lines.array_rev_dist_id_char_2(Idx)
3528 , g_rec_lines.array_rev_dist_id_char_3(Idx)
3529 , g_rec_lines.array_rev_dist_id_char_4(Idx)
3530 , g_rec_lines.array_rev_dist_id_char_5(Idx)
3531 , g_rec_lines.array_rev_dist_id_num_1(Idx)
3532 , g_rec_lines.array_rev_dist_id_num_2(Idx)
3533 , g_rec_lines.array_rev_dist_id_num_3(Idx)
3534 , g_rec_lines.array_rev_dist_id_num_4(Idx)
3535 , g_rec_lines.array_rev_dist_id_num_5(Idx)
3536 , g_rec_lines.array_rev_dist_type(Idx)
3537 --
3538 , g_rec_lines.array_tax_line_ref(Idx)
3539 , g_rec_lines.array_tax_summary_line_ref(Idx)
3540 , g_rec_lines.array_tax_rec_nrec_dist_ref(Idx)
3541 -- 4262811
3542 , NVL(g_rec_lines.array_header_num(Idx),0) -- 5100860 always assign a value
3543 , g_rec_lines.array_mpa_acc_entry_flag(Idx)
3544 , g_rec_lines.array_mpa_option(Idx)
3545 , g_rec_lines.array_mpa_start_date(Idx)
3546 , g_rec_lines.array_mpa_end_date(Idx)
3547 -- Analytical Criteria
3548 , g_rec_lines.array_anc_balance_flag(Idx)
3549 , g_rec_lines.array_anc_id_1(Idx)
3550 , g_rec_lines.array_anc_id_2(Idx)
3551 , g_rec_lines.array_anc_id_3(Idx)
3552 , g_rec_lines.array_anc_id_4(Idx)
3553 , g_rec_lines.array_anc_id_5(Idx)
3554 , g_rec_lines.array_anc_id_6(Idx)
3555 , g_rec_lines.array_anc_id_7(Idx)
3556 , g_rec_lines.array_anc_id_8(Idx)
3557 , g_rec_lines.array_anc_id_9(Idx)
3558 , g_rec_lines.array_anc_id_10(Idx)
3559 , g_rec_lines.array_anc_id_11(Idx)
3560 , g_rec_lines.array_anc_id_12(Idx)
3561 , g_rec_lines.array_anc_id_13(Idx)
3562 , g_rec_lines.array_anc_id_14(Idx)
3563 , g_rec_lines.array_anc_id_15(Idx)
3564 , g_rec_lines.array_anc_id_16(Idx)
3565 , g_rec_lines.array_anc_id_17(Idx)
3566 , g_rec_lines.array_anc_id_18(Idx)
3567 , g_rec_lines.array_anc_id_19(Idx)
3568 , g_rec_lines.array_anc_id_20(Idx)
3569 , g_rec_lines.array_anc_id_21(Idx)
3570 , g_rec_lines.array_anc_id_22(Idx)
3571 , g_rec_lines.array_anc_id_23(Idx)
3572 , g_rec_lines.array_anc_id_24(Idx)
3573 , g_rec_lines.array_anc_id_25(Idx)
3574 , g_rec_lines.array_anc_id_26(Idx)
3575 , g_rec_lines.array_anc_id_27(Idx)
3576 , g_rec_lines.array_anc_id_28(Idx)
3577 , g_rec_lines.array_anc_id_29(Idx)
3578 , g_rec_lines.array_anc_id_30(Idx)
3579 , g_rec_lines.array_anc_id_31(Idx)
3580 , g_rec_lines.array_anc_id_32(Idx)
3581 , g_rec_lines.array_anc_id_33(Idx)
3582 , g_rec_lines.array_anc_id_34(Idx)
3583 , g_rec_lines.array_anc_id_35(Idx)
3584 , g_rec_lines.array_anc_id_36(Idx)
3585 , g_rec_lines.array_anc_id_37(Idx)
3586 , g_rec_lines.array_anc_id_38(Idx)
3587 , g_rec_lines.array_anc_id_39(Idx)
3588 , g_rec_lines.array_anc_id_40(Idx)
3589 , g_rec_lines.array_anc_id_41(Idx)
3590 , g_rec_lines.array_anc_id_42(Idx)
3591 , g_rec_lines.array_anc_id_43(Idx)
3592 , g_rec_lines.array_anc_id_44(Idx)
3593 , g_rec_lines.array_anc_id_45(Idx)
3594 , g_rec_lines.array_anc_id_46(Idx)
3595 , g_rec_lines.array_anc_id_47(Idx)
3596 , g_rec_lines.array_anc_id_48(Idx)
3597 , g_rec_lines.array_anc_id_49(Idx)
3598 , g_rec_lines.array_anc_id_50(Idx)
3599 , g_rec_lines.array_anc_id_51(Idx)
3600 , g_rec_lines.array_anc_id_52(Idx)
3601 , g_rec_lines.array_anc_id_53(Idx)
3602 , g_rec_lines.array_anc_id_54(Idx)
3603 , g_rec_lines.array_anc_id_55(Idx)
3604 , g_rec_lines.array_anc_id_56(Idx)
3605 , g_rec_lines.array_anc_id_57(Idx)
3606 , g_rec_lines.array_anc_id_58(Idx)
3607 , g_rec_lines.array_anc_id_59(Idx)
3608 , g_rec_lines.array_anc_id_60(Idx)
3609 , g_rec_lines.array_anc_id_61(Idx)
3610 , g_rec_lines.array_anc_id_62(Idx)
3611 , g_rec_lines.array_anc_id_63(Idx)
3612 , g_rec_lines.array_anc_id_64(Idx)
3613 , g_rec_lines.array_anc_id_65(Idx)
3614 , g_rec_lines.array_anc_id_66(Idx)
3615 , g_rec_lines.array_anc_id_67(Idx)
3616 , g_rec_lines.array_anc_id_68(Idx)
3617 , g_rec_lines.array_anc_id_69(Idx)
3618 , g_rec_lines.array_anc_id_70(Idx)
3619 , g_rec_lines.array_anc_id_71(Idx)
3620 , g_rec_lines.array_anc_id_72(Idx)
3621 , g_rec_lines.array_anc_id_73(Idx)
3622 , g_rec_lines.array_anc_id_74(Idx)
3623 , g_rec_lines.array_anc_id_75(Idx)
3624 , g_rec_lines.array_anc_id_76(Idx)
3625 , g_rec_lines.array_anc_id_77(Idx)
3626 , g_rec_lines.array_anc_id_78(Idx)
3627 , g_rec_lines.array_anc_id_79(Idx)
3628 , g_rec_lines.array_anc_id_80(Idx)
3629 , g_rec_lines.array_anc_id_81(Idx)
3630 , g_rec_lines.array_anc_id_82(Idx)
3631 , g_rec_lines.array_anc_id_83(Idx)
3632 , g_rec_lines.array_anc_id_84(Idx)
3633 , g_rec_lines.array_anc_id_85(Idx)
3634 , g_rec_lines.array_anc_id_86(Idx)
3635 , g_rec_lines.array_anc_id_87(Idx)
3636 , g_rec_lines.array_anc_id_88(Idx)
3637 , g_rec_lines.array_anc_id_89(Idx)
3638 , g_rec_lines.array_anc_id_90(Idx)
3639 , g_rec_lines.array_anc_id_91(Idx)
3640 , g_rec_lines.array_anc_id_92(Idx)
3641 , g_rec_lines.array_anc_id_93(Idx)
3642 , g_rec_lines.array_anc_id_94(Idx)
3643 , g_rec_lines.array_anc_id_95(Idx)
3644 , g_rec_lines.array_anc_id_96(Idx)
3645 , g_rec_lines.array_anc_id_97(Idx)
3646 , g_rec_lines.array_anc_id_98(Idx)
3647 , g_rec_lines.array_anc_id_99(Idx)
3648 , g_rec_lines.array_anc_id_100(Idx)
3649 -- , g_rec_lines.array_deferred_indicator(Idx)
3650 -- , g_rec_lines.array_deferred_start_date(Idx)
3651 -- , g_rec_lines.array_deferred_end_date(Idx)
3652 -- , g_rec_lines.array_deferred_no_period(Idx)
3653 -- , g_rec_lines.array_deferred_period_type(Idx)
3654 -- bulk performance
3655 , g_rec_lines.array_balance_type_code(Idx) -- element at index [x] does not exist.
3656 , g_rec_lines.array_ledger_id(Idx) -- element at index [x] does not exist.
3657 , g_rec_lines.array_event_number(Idx)
3658 , g_rec_lines.array_entity_id(Idx)
3659 , g_rec_lines.array_reversal_code(Idx)
3660 , g_rec_lines.array_encumbrance_type_id(Idx) -- 4458381
3661 --------------------------------------
3662 -- 4219869
3663 -- Business Flow Applied To attributes
3664 --------------------------------------
3665 , g_rec_lines.array_inherit_desc_flag(Idx)
3666 , g_rec_lines.array_natural_side_code(Idx)
3667 , g_rec_lines.array_business_method_code(Idx)
3668 , g_rec_lines.array_business_class_code(Idx)
3669 , g_rec_lines.array_bflow_application_id(Idx)
3670 --
3671 , g_rec_lines.array_bflow_entity_code(Idx)
3672 , g_rec_lines.array_bflow_source_id_num_1(Idx)
3673 , g_rec_lines.array_bflow_source_id_num_2(Idx)
3674 , g_rec_lines.array_bflow_source_id_num_3(Idx)
3675 , g_rec_lines.array_bflow_source_id_num_4(Idx)
3676 , g_rec_lines.array_bflow_source_id_char_1(Idx)
3677 , g_rec_lines.array_bflow_source_id_char_2(Idx)
3678 , g_rec_lines.array_bflow_source_id_char_3(Idx)
3679 , g_rec_lines.array_bflow_source_id_char_4(Idx)
3680 --
3681 , g_rec_lines.array_bflow_distribution_type(Idx)
3682 , g_rec_lines.array_bflow_dist_id_num_1(Idx)
3683 , g_rec_lines.array_bflow_dist_id_num_2(Idx)
3684 , g_rec_lines.array_bflow_dist_id_num_3(Idx)
3685 , g_rec_lines.array_bflow_dist_id_num_4(Idx)
3686 , g_rec_lines.array_bflow_dist_id_num_5(Idx)
3687 , g_rec_lines.array_bflow_dist_id_char_1(Idx)
3688 , g_rec_lines.array_bflow_dist_id_char_2(Idx)
3689 , g_rec_lines.array_bflow_dist_id_char_3(Idx)
3690 , g_rec_lines.array_bflow_dist_id_char_4(Idx)
3691 , g_rec_lines.array_bflow_dist_id_char_5(Idx)
3692 , g_rec_lines.array_bflow_applied_to_amt(Idx) -- 5132302
3693 , g_rec_lines.array_override_acctd_amt_flag(Idx)
3694 --
3695 -- Allocation Attributes
3696 --
3697 , g_rec_lines.array_alloct_application_id(Idx)
3698 , g_rec_lines.array_alloct_entity_code(Idx)
3699 , g_rec_lines.array_alloct_source_id_num_1(Idx)
3700 , g_rec_lines.array_alloct_source_id_num_2(Idx)
3701 , g_rec_lines.array_alloct_source_id_num_3(Idx)
3702 , g_rec_lines.array_alloct_source_id_num_4(Idx)
3703 , g_rec_lines.array_alloct_source_id_char_1(Idx)
3704 , g_rec_lines.array_alloct_source_id_char_2(Idx)
3705 , g_rec_lines.array_alloct_source_id_char_3(Idx)
3706 , g_rec_lines.array_alloct_source_id_char_4(Idx)
3707 , g_rec_lines.array_alloct_distribution_type(Idx)
3708 , g_rec_lines.array_alloct_dist_id_num_1(Idx)
3709 , g_rec_lines.array_alloct_dist_id_num_2(Idx)
3710 , g_rec_lines.array_alloct_dist_id_num_3(Idx)
3711 , g_rec_lines.array_alloct_dist_id_num_4(Idx)
3712 , g_rec_lines.array_alloct_dist_id_num_5(Idx)
3713 , g_rec_lines.array_alloct_dist_id_char_1(Idx)
3714 , g_rec_lines.array_alloct_dist_id_char_2(Idx)
3715 , g_rec_lines.array_alloct_dist_id_char_3(Idx)
3716 , g_rec_lines.array_alloct_dist_id_char_4(Idx)
3717 , g_rec_lines.array_alloct_dist_id_char_5(Idx)
3718 )
3719 ;
3720
3721 l_rowcount := SQL%ROWCOUNT;
3722 l_result := ( l_rowcount> 0);
3723
3724 IF (C_LEVEL_EVENT >= g_log_level) THEN
3725 trace
3726 (p_msg => '# temporary journal lines inserted into GT xla_ae_lines_gt = '||TO_CHAR(l_rowcount)
3727 ,p_level => C_LEVEL_EVENT
3728 ,p_module => l_log_module);
3729 END IF;
3730
3731 END IF; -- g_rec_lines.array_line_num.COUNT > 0
3732
3733 IF g_transaction_accounts.array_line_num.COUNT > 0 AND l_result THEN
3734
3735 FORALL Jdx IN g_transaction_accounts.array_line_num.FIRST .. g_transaction_accounts.array_line_num.LAST
3736 INSERT INTO xla_transaction_accts_gt
3737 (line_number,
3738 ae_header_id,
3739 temp_line_num,
3740 ledger_id,
3741 code_combination_id,
3742 segment,
3743 from_segment_code,
3744 to_segment_code,
3745 processing_status_code,
3746 side_code,
3747 sl_coa_mapping_id
3748 )
3749 VALUES
3750 (g_transaction_accounts.array_line_num(Jdx),
3751 g_transaction_accounts.array_ae_header_id(Jdx),
3752 g_transaction_accounts.array_temp_line_num(Jdx),
3753 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id,
3754 g_transaction_accounts.array_code_combination_id(Jdx),
3755 g_transaction_accounts.array_segment(Jdx),
3756 g_transaction_accounts.array_from_segment_code(Jdx),
3757 g_transaction_accounts.array_to_segment_code(Jdx),
3758 g_transaction_accounts.array_processing_status_code(Jdx),
3759 g_transaction_accounts.array_side_code(Jdx),
3760 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.sl_coa_mapping_id
3761 )
3762 ;
3763
3764 l_rowcount := SQL%ROWCOUNT;
3765
3766 IF (C_LEVEL_EVENT >= g_log_level) THEN
3767 trace
3768 (p_msg => '# lines inserted into xla_transaction_accts_gt = '||TO_CHAR(l_rowcount)
3769 ,p_level => C_LEVEL_EVENT
3770 ,p_module => l_log_module);
3771
3772 END IF;
3773 g_transaction_accounts := l_null_trans_accounts;
3774
3775 ELSE
3776 IF (C_LEVEL_EVENT >= g_log_level) THEN
3777 trace
3778 (p_msg => 'No rows to insert into xla_transaction_accts_gt'
3779 ,p_level => C_LEVEL_EVENT
3780 ,p_module => l_log_module);
3781 END IF;
3782 END IF;
3783
3784 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3785 trace
3786 (p_msg => 'END of InsertLines'
3787 ,p_level => C_LEVEL_PROCEDURE
3788 ,p_module => l_log_module);
3789 END IF;
3790 RETURN l_result;
3791 EXCEPTION
3792 ----Added to handle Exceptions and send to Out file 7453943------------
3793 WHEN dml_errors THEN
3794 errors := SQL%BULK_EXCEPTIONS.COUNT;
3795 FOR i IN 1..errors LOOP
3796 ERR_IND:= SQL%BULK_EXCEPTIONS(i).ERROR_INDEX;
3797 ERR_CODE:= SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE);
3798 fnd_file.put_line(fnd_file.log, 'ERROR : '|| UPPER(ERR_CODE)); -- added in 12.1.1
3799 fnd_file.put_line(fnd_file.output, 'temp_line_num: '||g_rec_lines.array_line_num(ERR_IND));
3800 fnd_file.put_line(fnd_file.output, 'extract_line_num: '||g_rec_lines.array_extract_line_num(ERR_IND));
3801 fnd_file.put_line(fnd_file.output, 'event_id: '||g_rec_lines.array_ae_header_id(ERR_IND));
3802 fnd_file.put_line(fnd_file.output, 'accounting_class_code: '||g_rec_lines.array_accounting_class(ERR_IND));
3803 fnd_file.put_line(fnd_file.output, 'event_type_code: '||g_rec_lines.array_event_type_code(ERR_IND));
3804 fnd_file.put_line(fnd_file.output, 'balance_type_code: '||g_rec_lines.array_balance_type_code(ERR_IND));
3805 END LOOP;
3806 --------------------------------------------------------------------------
3807
3808 WHEN xla_exceptions_pkg.application_exception THEN
3809 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
3810 trace
3811 (p_msg => 'Error. = '||sqlerrm
3812 ,p_level => C_LEVEL_PROCEDURE
3813 ,p_module => l_log_module);
3814 END IF;
3815 RAISE;
3816 WHEN OTHERS THEN
3817 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
3818 trace
3819 (p_msg => 'Error. = '||sqlerrm
3820 ,p_level => C_LEVEL_PROCEDURE
3821 ,p_module => l_log_module);
3822 END IF;
3823 xla_exceptions_pkg.raise_message
3824 (p_location => 'XLA_AE_LINES_PKG.InsertLines');
3825 END InsertLines;
3826 --
3827 /*======================================================================+
3828 | |
3829 | Public Procedure |
3830 | |
3831 | |
3832 +======================================================================*/
3833 PROCEDURE RefreshLines
3834 IS
3835 l_null_lines t_rec_lines;
3836 l_null_rev_line t_rec_reverse_line;
3837 l_null_accounts t_rec_transaction_accounts;
3838 l_log_module VARCHAR2(240);
3839 BEGIN
3840 IF g_log_enabled THEN
3841 l_log_module := C_DEFAULT_MODULE||'.RefreshLines';
3842 END IF;
3843 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3844 trace
3845 (p_msg => 'BEGIN of RefreshLines'
3846 ,p_level => C_LEVEL_PROCEDURE
3847 ,p_module => l_log_module);
3848 END IF;
3849
3850 g_rec_lines := l_null_lines;
3851 g_transaction_accounts := l_null_accounts;
3852 g_LineNumber := null;
3853 g_ExtractLine := null;
3854 g_ActualLineNum := null;
3855 g_BudgetLineNum := null;
3856 g_EncumbLineNum := null;
3857
3858 g_reverse_lines := l_null_rev_line;
3859
3860 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3861 trace
3862 (p_msg => 'END of RefreshLines'
3863 ,p_level => C_LEVEL_PROCEDURE
3864 ,p_module => l_log_module);
3865 END IF;
3866 EXCEPTION
3867 WHEN xla_exceptions_pkg.application_exception THEN
3868 RAISE;
3869 WHEN OTHERS THEN
3870 xla_exceptions_pkg.raise_message
3871 (p_location => 'XLA_AE_LINES_PKG.RefreshLines');
3872 END RefreshLines;
3873 --
3874 --
3875 --====================================================================
3876 --
3877 --
3878 --
3879 --
3880 --
3881 -- REVERSAL ACCOUNTING PROCESS
3882 --
3883 --
3884 --
3885 --
3886 --
3887 --
3888 --
3889 --
3890 --
3891 --
3892 --
3893 --
3894 --
3895 --
3896 --
3897 --
3898 --====================================================================
3899 --
3900 --====================================================================
3901 --
3902 --
3903 --
3904 --
3905 --
3906 -- PRIVATE procedures and functions
3907 --
3908 --
3909 --
3910 --
3911 --
3912 --
3913 --
3914 --
3915 --
3916 --
3917 --
3918 --
3919 --
3920 --
3921 --
3922 --
3923 --======================================================================
3924 --
3925
3926
3927 --
3928 --
3929 /*======================================================================+
3930 | |
3931 | Private Procedure |
3932 | |
3933 | |
3934 +======================================================================*/
3935 FUNCTION ValidateRevLinks
3936 RETURN BOOLEAN
3937 IS
3938 l_log_module VARCHAR2(240);
3939 l_temp NUMBER;
3940 BEGIN
3941 --
3942 IF g_log_enabled THEN
3943 l_log_module := C_DEFAULT_MODULE||'.ValidateRevLinks';
3944 END IF;
3945 --
3946 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3947
3948 trace
3949 (p_msg => 'BEGIN of ValidateRevLinks'
3950 ,p_level => C_LEVEL_PROCEDURE
3951 ,p_module => l_log_module);
3952
3953 END IF;
3954
3955 -- please refer to the comments in method ValidateLinks for explanation.
3956
3957 IF g_rec_lines.array_distribution_id_char_5(g_LineNumber) IS NULL AND
3958 g_rec_lines.array_distribution_id_num_5(g_LineNumber) IS NULL THEN
3959 l_temp := 0;
3960 ELSE
3961 l_temp := 1;
3962 END IF;
3963 IF g_rec_lines.array_distribution_id_char_4(g_LineNumber) IS NOT NULL OR
3964 g_rec_lines.array_distribution_id_num_4(g_LineNumber) IS NOT NULL THEN
3965 l_temp := 2+l_temp;
3966 END IF;
3967 IF g_rec_lines.array_distribution_id_char_3(g_LineNumber) IS NOT NULL OR
3968 g_rec_lines.array_distribution_id_num_3(g_LineNumber) IS NOT NULL THEN
3969 l_temp := 4+l_temp;
3970 END IF;
3971 IF g_rec_lines.array_distribution_id_char_2(g_LineNumber) IS NOT NULL OR
3972 g_rec_lines.array_distribution_id_num_2(g_LineNumber) IS NOT NULL THEN
3973 l_temp := 8+l_temp;
3974 END IF;
3975 IF g_rec_lines.array_sys_distribution_type(g_LineNumber) IS NULL
3976 OR (g_rec_lines.array_distribution_id_char_1(g_LineNumber) IS NULL AND
3977 g_rec_lines.array_distribution_id_num_1(g_LineNumber) IS NULL)
3978 OR l_temp not in (0, 8, 12, 14, 15) THEN
3979
3980 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3981 xla_accounting_err_pkg.build_message
3982 (p_appli_s_name => 'XLA'
3983 ,p_msg_name => 'XLA_AP_NO_DIST_LINK_ID'
3984 ,p_token_1 => 'LINE_NUMBER'
3985 ,p_value_1 => g_ExtractLine
3986 ,p_token_2 => 'LINE_TYPE_NAME'
3987 ,p_value_2 => 'Accounting Reversal'
3988 ,p_token_3 => 'OWNER'
3989 ,p_value_3 => xla_lookups_pkg.get_meaning(
3990 p_lookup_type => 'XLA_OWNER_TYPE'
3991 , p_lookup_code => 'S'
3992 )
3993 ,p_token_4 => 'PRODUCT_NAME'
3994 ,p_value_4 => 'Subledger Accounting Architecture'
3995 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3996 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3997 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3998 );
3999
4000 IF (C_LEVEL_ERROR >= g_log_level) THEN
4001 trace
4002 (p_msg => 'ERROR: XLA_AP_NO_DIST_LINK_ID'
4003 ,p_level => C_LEVEL_ERROR
4004 ,p_module => l_log_module);
4005 END IF;
4006
4007 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4008 trace
4009 (p_msg => 'return value. = FALSE'
4010 ,p_level => C_LEVEL_PROCEDURE
4011 ,p_module => l_log_module);
4012 trace
4013 (p_msg => 'END of ValidateRevLinks'
4014 ,p_level => C_LEVEL_PROCEDURE
4015 ,p_module => l_log_module);
4016
4017 END IF;
4018 RETURN FALSE;
4019 ELSE
4020 -- please refer to the comments in method ValidateLinks for explanation.
4021
4022 IF g_rec_lines.array_rev_dist_id_char_5(g_LineNumber) IS NULL AND
4023 g_rec_lines.array_rev_dist_id_num_5(g_LineNumber) IS NULL THEN
4024 l_temp := 0;
4025 ELSE
4026 l_temp := 1;
4027 END IF;
4028 IF g_rec_lines.array_rev_dist_id_char_4(g_LineNumber) IS NOT NULL OR
4029 g_rec_lines.array_rev_dist_id_num_4(g_LineNumber) IS NOT NULL THEN
4030 l_temp := 2+l_temp;
4031 END IF;
4032 IF g_rec_lines.array_rev_dist_id_char_3(g_LineNumber) IS NOT NULL OR
4033 g_rec_lines.array_rev_dist_id_num_3(g_LineNumber) IS NOT NULL THEN
4034 l_temp := 4+l_temp;
4035 END IF;
4036 IF g_rec_lines.array_rev_dist_id_char_2(g_LineNumber) IS NOT NULL OR
4037 g_rec_lines.array_rev_dist_id_num_2(g_LineNumber) IS NOT NULL THEN
4038 l_temp := 8+l_temp;
4039 END IF;
4040 IF g_rec_lines.array_rev_dist_type(g_LineNumber) IS NULL
4041 OR (g_rec_lines.array_rev_dist_id_char_1(g_LineNumber) IS NULL AND
4042 g_rec_lines.array_rev_dist_id_num_1(g_LineNumber) IS NULL)
4043 OR l_temp not in (0, 8, 12, 14, 15) THEN
4044
4045 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4046 xla_accounting_err_pkg.build_message
4047 (p_appli_s_name => 'XLA'
4048 ,p_msg_name => 'XLA_AP_NO_REV_DIST_LINK_ID'
4049 ,p_token_1 => 'LINE_NUMBER'
4050 ,p_value_1 => g_ExtractLine
4051 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4052 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4053 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4054 );
4055
4056 IF (C_LEVEL_ERROR >= g_log_level) THEN
4057 trace
4058 (p_msg => 'ERROR: XLA_AP_NO_REV_DIST_LINK_ID'
4059 ,p_level => C_LEVEL_ERROR
4060 ,p_module => l_log_module);
4061 END IF;
4062
4063 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4064 trace
4065 (p_msg => 'return value. = FALSE'
4066 ,p_level => C_LEVEL_PROCEDURE
4067 ,p_module => l_log_module);
4068 trace
4069 (p_msg => 'END of ValidateRevLinks'
4070 ,p_level => C_LEVEL_PROCEDURE
4071 ,p_module => l_log_module);
4072
4073 END IF;
4074 RETURN FALSE;
4075 ELSE
4076 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4077 trace
4078 (p_msg => 'return value. = TRUE'
4079 ,p_level => C_LEVEL_PROCEDURE
4080 ,p_module => l_log_module);
4081 trace
4082 (p_msg => 'END of ValidateRevLinks'
4083 ,p_level => C_LEVEL_PROCEDURE
4084 ,p_module => l_log_module);
4085
4086 END IF;
4087 RETURN TRUE;
4088 END IF;
4089 END IF;
4090
4091
4092 EXCEPTION
4093 WHEN xla_exceptions_pkg.application_exception THEN
4094 RAISE;
4095 WHEN OTHERS THEN
4096 xla_exceptions_pkg.raise_message
4097 (p_location => 'xla_ae_lines_pkg.ValidateRevLinks');
4098 --
4099 END ValidateRevLinks;
4100 --
4101 /*======================================================================+
4102 | |
4103 | Public Procedure |
4104 | |
4105 | |
4106 +======================================================================*/
4107
4108 --
4109 --====================================================================
4110 --
4111 --
4112 --
4113 --
4114 --
4115 -- PUBLIC procedures and functions
4116 --
4117 --
4118 --
4119 --
4120 --
4121 --
4122 --
4123 --
4124 --
4125 --
4126 --
4127 --
4128 --
4129 --
4130 --
4131 --
4132 --======================================================================
4133 PROCEDURE AccountingReversal (
4134 p_accounting_mode IN VARCHAR2
4135 ) IS
4136
4137 l_log_module VARCHAR2(240);
4138 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4139 l_array_ledger_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4140 l_array_source_dist_id_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4141 l_array_source_dist_id_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4142 l_array_source_dist_id_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4143 l_array_source_dist_id_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4144 l_array_source_dist_id_num_5 XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4145 l_array_source_dist_id_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4146 l_array_source_dist_id_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4147 l_array_source_dist_id_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4148 l_array_source_dist_id_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4149 l_array_source_dist_id_char_5 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4150 l_array_source_dist_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4151 l_array_rev_dist_id_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4152 l_array_rev_dist_id_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4153 l_array_rev_dist_id_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4154 l_array_rev_dist_id_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4155 l_array_rev_dist_id_num_5 XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4156 l_array_rev_dist_id_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4157 l_array_rev_dist_id_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4158 l_array_rev_dist_id_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4159 l_array_rev_dist_id_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4160 l_array_rev_dist_id_char_5 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4161 l_array_rev_dist_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4162
4163 l_array_balance_type_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V1L;
4164 l_array_entry_status_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V1L;
4165 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4166 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4167 l_array_header_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_num; -- 4262811c MPA header for Line reversal
4168 l_array_switch_side_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V1L; -- 5055878 Reversal method. Y=SIDE, N=SIGN
4169 l_array_tax_line_ref XLA_AE_JOURNAL_ENTRY_PKG.t_array_num; -- bug 7159711
4170 l_array_tax_summary_line_ref XLA_AE_JOURNAL_ENTRY_PKG.t_array_num; -- bug 7159711
4171 l_array_tax_rec_nrec_dist_ref XLA_AE_JOURNAL_ENTRY_PKG.t_array_num; -- bug 7159711
4172
4173 l_application_id NUMBER;
4174
4175 -- 5086984 Performance fix
4176 l_array_mpa_acc_ledger_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4177 l_array_mpa_acc_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4178 l_array_mpa_acc_ref_ae_header XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4179 l_array_mpa_acc_temp_line_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4180 l_array_mpa_acc_ae_header_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4181 l_array_mpa_acc_header_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4182 l_array_mpa_acc_balance_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V1L;
4183
4184 l_array_gl_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_date; -- 5189664
4185
4186 l_default_switch_side_flag CHAR(1);
4187 l_ledger_attrs XLA_ACCOUNTING_CACHE_PKG.t_array_ledger_attrs; --7135700
4188 l_upgrade_check NUMBER DEFAULT 0; --7135700
4189 l_primary_ledger_id NUMBER; --7135700
4190 l_max_first_open_period DATE DEFAULT NULL; --7135700
4191 l_min_ref_event_date DATE DEFAULT NULL; --7135700
4192 l_error_count NUMBER DEFAULT 0; --7135700 + 7253269
4193
4194
4195
4196 BEGIN
4197 IF g_log_enabled THEN
4198 l_log_module := C_DEFAULT_MODULE||'.AccountingReversal';
4199 END IF;
4200
4201 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4202 trace
4203 (p_msg => 'BEGIN of AccountingReversal'
4204 ,p_level => C_LEVEL_PROCEDURE
4205 ,p_module => l_log_module);
4206 END IF;
4207
4208 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
4209 trace
4210 (p_msg => 'Performing line level accounting reversal'
4211 ,p_level => C_LEVEL_STATEMENT
4212 ,p_module => l_log_module);
4213 END IF;
4214
4215 l_application_id := xla_accounting_cache_pkg.getvaluenum('XLA_EVENT_APPL_ID');
4216
4217 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
4218 trace
4219 (p_msg => 'Application ID ='||to_char(l_application_id)
4220 ,p_level => C_LEVEL_STATEMENT
4221 ,p_module => l_log_module);
4222 trace -- 5412560
4223 (p_msg => 'MPA Line Reversal exists = '||xla_accounting_pkg.g_mpa_accrual_exists
4224 ,p_level => C_LEVEL_STATEMENT
4225 ,p_module => l_log_module);
4226 END IF;
4227
4228 ----------------------------------------
4229 -- 5108415 Incomplete MPA
4230 ----------------------------------------
4231 g_incomplete_mpa_acc_LR := NULL;
4232 g_incomplete_mpa_acc_TR := NULL;
4233
4234
4235 --***************************************************************************************************************
4236 --***************************************************************************************************************
4237 --******************* L I N E R E V E R S A L ********************************************************
4238 --***************************************************************************************************************
4239 --***************************************************************************************************************
4240
4241 --
4242 -- selecting all the dummy lines from xla_ae_lines_gt that are due to
4243 -- line level reversal option
4244 --
4245 SELECT event_id
4246 ,ledger_id
4247 ,event_number
4248 ,entity_id
4249 ,source_distribution_type
4250 ,source_distribution_id_num_1
4251 ,source_distribution_id_num_2
4252 ,source_distribution_id_num_3
4253 ,source_distribution_id_num_4
4254 ,source_distribution_id_num_5
4255 ,source_distribution_id_char_1
4256 ,source_distribution_id_char_2
4257 ,source_distribution_id_char_3
4258 ,source_distribution_id_char_4
4259 ,source_distribution_id_char_5
4260 ,reverse_distribution_type
4261 ,reverse_dist_id_num_1
4262 ,reverse_dist_id_num_2
4263 ,reverse_dist_id_num_3
4264 ,reverse_dist_id_num_4
4265 ,reverse_dist_id_num_5
4266 ,reverse_dist_id_char_1
4267 ,reverse_dist_id_char_2
4268 ,reverse_dist_id_char_3
4269 ,reverse_dist_id_char_4
4270 ,reverse_dist_id_char_5
4271 ,switch_side_flag -- 5055878
4272 ,accounting_date -- 5189664
4273 ,tax_line_ref_id -- 7159711
4274 ,tax_summary_line_ref_id -- 7159711
4275 ,tax_rec_nrec_dist_ref_id -- 7159711
4276 BULK COLLECT INTO
4277 l_array_event_id
4278 ,l_array_ledger_id
4279 ,l_array_event_number
4280 ,l_array_entity_id
4281 ,l_array_source_dist_type
4282 ,l_array_source_dist_id_num_1
4283 ,l_array_source_dist_id_num_2
4284 ,l_array_source_dist_id_num_3
4285 ,l_array_source_dist_id_num_4
4286 ,l_array_source_dist_id_num_5
4287 ,l_array_source_dist_id_char_1
4288 ,l_array_source_dist_id_char_2
4289 ,l_array_source_dist_id_char_3
4290 ,l_array_source_dist_id_char_4
4291 ,l_array_source_dist_id_char_5
4292 ,l_array_rev_dist_type
4293 ,l_array_rev_dist_id_num_1
4294 ,l_array_rev_dist_id_num_2
4295 ,l_array_rev_dist_id_num_3
4296 ,l_array_rev_dist_id_num_4
4297 ,l_array_rev_dist_id_num_5
4298 ,l_array_rev_dist_id_char_1
4299 ,l_array_rev_dist_id_char_2
4300 ,l_array_rev_dist_id_char_3
4301 ,l_array_rev_dist_id_char_4
4302 ,l_array_rev_dist_id_char_5
4303 ,l_array_switch_side_flag -- 5055878
4304 ,l_array_gl_date -- 5189664
4305 ,l_array_tax_line_ref -- 7159711
4306 ,l_array_tax_summary_line_ref -- 7159711
4307 ,l_array_tax_rec_nrec_dist_ref -- 7159711
4308 FROM xla_ae_lines_gt
4309 WHERE reversal_code = 'DUMMY_LR'
4310 ORDER by entity_id, event_number;
4311
4312 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
4313 trace
4314 (p_msg => 'Line Reversal - Extract lines with reversal option set to Y = '||SQL%ROWCOUNT
4315 ,p_level => C_LEVEL_STATEMENT
4316 ,p_module => l_log_module);
4317 END IF;
4318
4319 --=======================================================================================================
4320 -- 4669308 Delete the MPA/Accrual Line Reversal (still in GT ables, not in distribution links yet)
4321 --=======================================================================================================
4322 --
4323 ---------------------------------------------------------------------------------------------------------
4324 -- 4669308 Delete the MPA/Accrual Line Reversal in xla_ae_lines_gt (not in distribution links yet)
4325 ---------------------------------------------------------------------------------------------------------
4326 --
4327 IF xla_accounting_pkg.g_mpa_accrual_exists = 'Y' THEN -- 5412560
4328 -- Modify for performance bug 5086984
4329 FOR i IN 1..l_array_entity_id.count LOOP
4330 SELECT /*+ Leading(HGT) cardinality(hgt 1) index(lgt XLA_AE_LINES_GT_U1) */
4331 lgt.ledger_id
4332 ,lgt.event_id
4333 ,lgt.ref_ae_header_id
4334 ,lgt.temp_line_num
4335 ,lgt.ae_header_id
4336 ,lgt.header_num
4337 ,lgt.balance_type_code
4338 BULK COLLECT INTO
4339 l_array_mpa_acc_ledger_id
4340 ,l_array_mpa_acc_event_id
4341 ,l_array_mpa_acc_ref_ae_header
4342 ,l_array_mpa_acc_temp_line_num
4343 ,l_array_mpa_acc_ae_header_id
4344 ,l_array_mpa_acc_header_num
4345 ,l_array_mpa_acc_balance_type
4346 FROM xla_ae_lines_gt lgt
4347 ,xla_ae_headers_gt hgt
4348 WHERE l_array_ledger_id(i) = lgt.ledger_id
4349 AND l_array_rev_dist_type(i) = lgt.source_distribution_type
4350 AND nvl(l_array_rev_dist_id_num_1(i),-99) = nvl(lgt.source_distribution_id_num_1,-99)
4351 AND nvl(l_array_rev_dist_id_num_2(i),-99) = nvl(lgt.source_distribution_id_num_2,-99)
4352 AND nvl(l_array_rev_dist_id_num_3(i),-99) = nvl(lgt.source_distribution_id_num_3,-99)
4353 AND nvl(l_array_rev_dist_id_num_4(i),-99) = nvl(lgt.source_distribution_id_num_4,-99)
4354 AND nvl(l_array_rev_dist_id_num_5(i),-99) = nvl(lgt.source_distribution_id_num_5,-99)
4355 AND nvl(l_array_rev_dist_id_char_1(i),' ') = nvl(lgt.source_distribution_id_char_1,' ')
4356 AND nvl(l_array_rev_dist_id_char_2(i),' ') = nvl(lgt.source_distribution_id_char_2,' ')
4357 AND nvl(l_array_rev_dist_id_char_3(i),' ') = nvl(lgt.source_distribution_id_char_3,' ')
4358 AND nvl(l_array_rev_dist_id_char_4(i),' ') = nvl(lgt.source_distribution_id_char_4,' ')
4359 AND nvl(l_array_rev_dist_id_char_5(i),' ') = nvl(lgt.source_distribution_id_char_5,' ')
4360 AND lgt.reversal_code IS NULL -- the lines created form revesal are not reversed again
4361 -- 5412560 replacement
4362 AND NVL(lgt.header_num,0) > 0
4363 AND lgt.header_num = hgt.header_num
4364 AND hgt.event_id = lgt.event_id
4365 AND hgt.ledger_id = lgt.ledger_id
4366 AND hgt.balance_type_code = lgt.balance_type_code
4367 AND hgt.ae_header_id = lgt.ae_header_id
4368 AND hgt.entity_id = l_array_entity_id(i)
4369 AND hgt.event_number < l_array_event_number(i);
4370 /* 5412560 replaced
4371 AND NOT EXISTS ( -- the lines already reversed are not reversed again
4372 SELECT 1
4373 FROM xla_ae_lines_gt
4374 WHERE ledger_id = lgt.ledger_id
4375 AND ref_ae_header_id = lgt.ref_ae_header_id
4376 AND temp_line_num = lgt.temp_line_num * -1)
4377 AND NVL(lgt.header_num,0) > 0
4378 AND lgt.header_num = hgt.header_num
4379 AND hgt.event_id = lgt.event_id
4380 AND hgt.ledger_id = lgt.ledger_id
4381 AND hgt.balance_type_code = lgt.balance_type_code
4382 AND hgt.entity_id = l_array_entity_id(i)
4383 AND hgt.event_number < l_array_event_number(i);
4384 */
4385
4386 IF (C_LEVEL_STATEMENT >= g_log_level) THEN -- 5412560
4387 trace
4388 (p_msg => 'MPA Line Reversal entity='||l_array_entity_id(i)||
4389 ' count = '||l_array_mpa_acc_ae_header_id.COUNT
4390 ,p_level => C_LEVEL_STATEMENT
4391 ,p_module => l_log_module);
4392 for a in 1..l_array_mpa_acc_ae_header_id.count loop
4393 trace
4394 (p_msg => 'MPA Line Reversal ledger='||l_array_mpa_acc_ledger_id(a)||
4395 ' ref_header='||l_array_mpa_acc_ref_ae_header(a)||
4396 ' line='||l_array_mpa_acc_temp_line_num(a)||
4397 ' header='||l_array_mpa_acc_ae_header_id(a)
4398 ,p_level => C_LEVEL_STATEMENT
4399 ,p_module => l_log_module);
4400 end loop;
4401 END IF;
4402
4403 ---------------------------------------------------------------------------------------------------------
4404 -- 4669308 Delete the MPA/Accrual Line Reversal in xla_ae_lines_gt (not in distribution links yet)
4405 ---------------------------------------------------------------------------------------------------------
4406 FORALL j IN 1..l_array_mpa_acc_ae_header_id.count
4407 DELETE xla_ae_lines_gt
4408 WHERE ledger_id = l_array_mpa_acc_ledger_id(j)
4409 AND ref_ae_header_id = l_array_mpa_acc_ref_ae_header(j)
4410 AND temp_line_num = l_array_mpa_acc_temp_line_num(j)
4411 AND ae_header_id = l_array_mpa_acc_ae_header_id(j)
4412 AND header_num = l_array_mpa_acc_header_num(j);
4413
4414 ---------------------------------------------------------------------------------------------------------
4415 -- 4669308 Delete the MPA/Accrual Line Reversal in xla_ae_headers_gt (not in distribution links yet)
4416 ---------------------------------------------------------------------------------------------------------
4417 FORALL j IN 1..l_array_mpa_acc_event_id.count
4418 DELETE xla_ae_headers_gt
4419 WHERE ledger_id = l_array_mpa_acc_ledger_id(j)
4420 AND event_id = l_array_mpa_acc_event_id(j)
4421 AND ae_header_id = l_array_mpa_acc_ae_header_id(j)
4422 AND balance_type_code = l_array_mpa_acc_balance_type(j)
4423 AND header_num = l_array_mpa_acc_header_num(j);
4424
4425 END LOOP;
4426 --
4427 END IF; -- xla_accounting_pkg.g_mpa_accrual_exists = 'Y'
4428 -------------------------------------------------------------------------------------------------------------------------
4429
4430 --
4431 -- reverse the lines in xla_ae_lines_gt table (not in distribution links yet)
4432 --
4433 INSERT INTO xla_ae_lines_gt
4434 (ae_header_id
4435 ,temp_line_num
4436 ,event_id
4437 ,ref_ae_header_id
4438 ,ref_ae_line_num
4439 ,ref_temp_line_num
4440 ,ref_event_id
4441 ,ledger_id
4442 ,balance_type_code
4443 ,accounting_class_code
4444 ,event_class_code
4445 ,event_type_code
4446 ,line_definition_owner_code
4447 ,line_definition_code
4448 ,accounting_line_type_code
4449 ,accounting_line_code
4450 ,code_combination_status_code
4451 ,code_combination_id
4452 ,sl_coa_mapping_name
4453 ,dynamic_insert_flag
4454 ,source_coa_id
4455 ,ccid_coa_id
4456 ,calculate_acctd_amts_flag
4457 ,calculate_g_l_amts_flag
4458 ,gain_or_loss_flag
4459 ,rounding_class_code
4460 ,document_rounding_level
4461 ,DOC_ROUNDING_ACCTD_AMT
4462 ,DOC_ROUNDING_ENTERED_AMT
4463 ,alt_ccid_status_code
4464 ,alt_code_combination_id
4465 ,alt_segment1
4466 ,alt_segment2
4467 ,alt_segment3
4468 ,alt_segment4
4469 ,alt_segment5
4470 ,alt_segment6
4471 ,alt_segment7
4472 ,alt_segment8
4473 ,alt_segment9
4474 ,alt_segment10
4475 ,alt_segment11
4476 ,alt_segment12
4477 ,alt_segment13
4478 ,alt_segment14
4479 ,alt_segment15
4480 ,alt_segment16
4481 ,alt_segment17
4482 ,alt_segment18
4483 ,alt_segment19
4484 ,alt_segment20
4485 ,alt_segment21
4486 ,alt_segment22
4487 ,alt_segment23
4488 ,alt_segment24
4489 ,alt_segment25
4490 ,alt_segment26
4491 ,alt_segment27
4492 ,alt_segment28
4493 ,alt_segment29
4494 ,alt_segment30
4495 ,segment1
4496 ,segment2
4497 ,segment3
4498 ,segment4
4499 ,segment5
4500 ,segment6
4501 ,segment7
4502 ,segment8
4503 ,segment9
4504 ,segment10
4505 ,segment11
4506 ,segment12
4507 ,segment13
4508 ,segment14
4509 ,segment15
4510 ,segment16
4511 ,segment17
4512 ,segment18
4513 ,segment19
4514 ,segment20
4515 ,segment21
4516 ,segment22
4517 ,segment23
4518 ,segment24
4519 ,segment25
4520 ,segment26
4521 ,segment27
4522 ,segment28
4523 ,segment29
4524 ,segment30
4525 ,description
4526 ,gl_transfer_mode_code
4527 ,merge_duplicate_code
4528 ,switch_side_flag
4529 ,unrounded_entered_dr
4530 ,unrounded_entered_cr
4531 ,unrounded_accounted_dr
4532 ,unrounded_accounted_cr
4533 ,entered_currency_mau
4534 ,currency_code
4535 ,currency_conversion_date
4536 ,currency_conversion_rate
4537 ,currency_conversion_type
4538 ,statistical_amount
4539 ,party_id
4540 ,party_site_id
4541 ,party_type_code
4542 ,ussgl_transaction_code
4543 ,jgzz_recon_ref
4544 ,source_distribution_id_char_1
4545 ,source_distribution_id_char_2
4546 ,source_distribution_id_char_3
4547 ,source_distribution_id_char_4
4548 ,source_distribution_id_char_5
4549 ,source_distribution_id_num_1
4550 ,source_distribution_id_num_2
4551 ,source_distribution_id_num_3
4552 ,source_distribution_id_num_4
4553 ,source_distribution_id_num_5
4554 ,source_distribution_type
4555 ,reverse_dist_id_char_1
4556 ,reverse_dist_id_char_2
4557 ,reverse_dist_id_char_3
4558 ,reverse_dist_id_char_4
4559 ,reverse_dist_id_char_5
4560 ,reverse_dist_id_num_1
4561 ,reverse_dist_id_num_2
4562 ,reverse_dist_id_num_3
4563 ,reverse_dist_id_num_4
4564 ,reverse_dist_id_num_5
4565 ,reverse_distribution_type
4566 ,tax_line_ref_id
4567 ,tax_summary_line_ref_id
4568 ,tax_rec_nrec_dist_ref_id
4569 -- 4262811
4570 ,header_num
4571 ,mpa_accrual_entry_flag
4572 ,multiperiod_option_flag
4573 ,multiperiod_start_date
4574 ,multiperiod_end_date
4575 ,reversal_code
4576 ,inherit_desc_flag -- 4219869
4577 ,encumbrance_type_id -- 4458381
4578 ,accounting_entry_status_code
4579 ,accounting_date
4580 , BFLOW_APPLICATION_ID
4581 , BFLOW_ENTITY_CODE
4582 , APPLIED_TO_ENTITY_ID
4583 , BFLOW_SOURCE_ID_NUM_1
4584 , BFLOW_SOURCE_ID_NUM_2
4585 , BFLOW_SOURCE_ID_NUM_3
4586 , BFLOW_SOURCE_ID_NUM_4
4587 , BFLOW_SOURCE_ID_CHAR_1
4588 , BFLOW_SOURCE_ID_CHAR_2
4589 , BFLOW_SOURCE_ID_CHAR_3
4590 , BFLOW_SOURCE_ID_CHAR_4
4591 , BFLOW_DISTRIBUTION_TYPE
4592 , BFLOW_DIST_ID_NUM_1
4593 , BFLOW_DIST_ID_NUM_2
4594 , BFLOW_DIST_ID_NUM_3
4595 , BFLOW_DIST_ID_NUM_4
4596 , BFLOW_DIST_ID_NUM_5
4597 , BFLOW_DIST_ID_CHAR_1
4598 , BFLOW_DIST_ID_CHAR_2
4599 , BFLOW_DIST_ID_CHAR_3
4600 , BFLOW_DIST_ID_CHAR_4
4601 , BFLOW_DIST_ID_CHAR_5
4602 , alloc_to_application_id
4603 , alloc_to_entity_code
4604 , alloc_to_source_id_num_1
4605 , alloc_to_source_id_num_2
4606 , alloc_to_source_id_num_3
4607 , alloc_to_source_id_num_4
4608 , alloc_to_source_id_char_1
4609 , alloc_to_source_id_char_2
4610 , alloc_to_source_id_char_3
4611 , alloc_to_source_id_char_4
4612 , alloc_to_distribution_type
4613 , alloc_to_dist_id_char_1
4614 , alloc_to_dist_id_char_2
4615 , alloc_to_dist_id_char_3
4616 , alloc_to_dist_id_char_4
4617 , alloc_to_dist_id_char_5
4618 , alloc_to_dist_id_num_1
4619 , alloc_to_dist_id_num_2
4620 , alloc_to_dist_id_num_3
4621 , alloc_to_dist_id_num_4
4622 , alloc_to_dist_id_num_5 -- 4955764
4623 , analytical_balance_flag -- Bug 7382288
4624 , anc_id_1
4625 , anc_id_2
4626 , anc_id_3
4627 , anc_id_4
4628 , anc_id_5
4629 , anc_id_6
4630 , anc_id_7
4631 , anc_id_8
4632 , anc_id_9
4633 , anc_id_10
4634 , anc_id_11
4635 , anc_id_12
4636 , anc_id_13
4637 , anc_id_14
4638 , anc_id_15
4639 , anc_id_16
4640 , anc_id_17
4641 , anc_id_18
4642 , anc_id_19
4643 , anc_id_20
4644 , anc_id_21
4645 , anc_id_22
4646 , anc_id_23
4647 , anc_id_24
4648 , anc_id_25
4649 , anc_id_26
4650 , anc_id_27
4651 , anc_id_28
4652 , anc_id_29
4653 , anc_id_30
4654 , anc_id_31
4655 , anc_id_32
4656 , anc_id_33
4657 , anc_id_34
4658 , anc_id_35
4659 , anc_id_36
4660 , anc_id_37
4661 , anc_id_38
4662 , anc_id_39
4663 , anc_id_40
4664 , anc_id_41
4665 , anc_id_42
4666 , anc_id_43
4667 , anc_id_44
4668 , anc_id_45
4669 , anc_id_46
4670 , anc_id_47
4671 , anc_id_48
4672 , anc_id_49
4673 , anc_id_50
4674 , anc_id_51
4675 , anc_id_52
4676 , anc_id_53
4677 , anc_id_54
4678 , anc_id_55
4679 , anc_id_56
4680 , anc_id_57
4681 , anc_id_58
4682 , anc_id_59
4683 , anc_id_60
4684 , anc_id_61
4685 , anc_id_62
4686 , anc_id_63
4687 , anc_id_64
4688 , anc_id_65
4689 , anc_id_66
4690 , anc_id_67
4691 , anc_id_68
4692 , anc_id_69
4693 , anc_id_70
4694 , anc_id_71
4695 , anc_id_72
4696 , anc_id_73
4697 , anc_id_74
4698 , anc_id_75
4699 , anc_id_76
4700 , anc_id_77
4701 , anc_id_78
4702 , anc_id_79
4703 , anc_id_80
4704 , anc_id_81
4705 , anc_id_82
4706 , anc_id_83
4707 , anc_id_84
4708 , anc_id_85
4709 , anc_id_86
4710 , anc_id_87
4711 , anc_id_88
4712 , anc_id_89
4713 , anc_id_90
4714 , anc_id_91
4715 , anc_id_92
4716 , anc_id_93
4717 , anc_id_94
4718 , anc_id_95
4719 , anc_id_96
4720 , anc_id_97
4721 , anc_id_98
4722 , anc_id_99
4723 , anc_id_100)
4724 (SELECT
4725 ae_header_id
4726 ,temp_line_num
4727 ,event_id
4728 ,ref_ae_header_id
4729 ,ref_ae_line_num
4730 ,ref_temp_line_num
4731 ,ref_event_id
4732 ,ledger_id
4733 ,balance_type_code
4734 ,accounting_class_code
4735 ,event_class_code
4736 ,event_type_code
4737 ,line_definition_owner_code
4738 ,line_definition_code
4739 ,accounting_line_type_code
4740 ,accounting_line_code
4741 ,code_combination_status_code
4742 ,code_combination_id
4743 ,sl_coa_mapping_name
4744 ,dynamic_insert_flag
4745 ,source_coa_id
4746 ,ccid_coa_id
4747 ,calculate_acctd_amts_flag
4748 ,calculate_g_l_amts_flag
4749 ,gain_or_loss_flag
4750 ,rounding_class_code
4751 ,document_rounding_level
4752 ,doc_rounding_acctd_amt
4753 ,doc_rounding_entered_amt
4754 ,alt_ccid_status_code
4755 ,alt_code_combination_id
4756 ,alt_segment1
4757 ,alt_segment2
4758 ,alt_segment3
4759 ,alt_segment4
4760 ,alt_segment5
4761 ,alt_segment6
4762 ,alt_segment7
4763 ,alt_segment8
4764 ,alt_segment9
4765 ,alt_segment10
4766 ,alt_segment11
4767 ,alt_segment12
4768 ,alt_segment13
4769 ,alt_segment14
4770 ,alt_segment15
4771 ,alt_segment16
4772 ,alt_segment17
4773 ,alt_segment18
4774 ,alt_segment19
4775 ,alt_segment20
4776 ,alt_segment21
4777 ,alt_segment22
4778 ,alt_segment23
4779 ,alt_segment24
4780 ,alt_segment25
4781 ,alt_segment26
4782 ,alt_segment27
4783 ,alt_segment28
4784 ,alt_segment29
4785 ,alt_segment30
4786 ,segment1
4787 ,segment2
4788 ,segment3
4789 ,segment4
4790 ,segment5
4791 ,segment6
4792 ,segment7
4793 ,segment8
4794 ,segment9
4795 ,segment10
4796 ,segment11
4797 ,segment12
4798 ,segment13
4799 ,segment14
4800 ,segment15
4801 ,segment16
4802 ,segment17
4803 ,segment18
4804 ,segment19
4805 ,segment20
4806 ,segment21
4807 ,segment22
4808 ,segment23
4809 ,segment24
4810 ,segment25
4811 ,segment26
4812 ,segment27
4813 ,segment28
4814 ,segment29
4815 ,segment30
4816 ,description
4817 ,gl_transfer_mode_code
4818 ,merge_duplicate_code
4819 ,switch_side_flag
4820 ,unrounded_entered_dr
4821 ,unrounded_entered_cr
4822 ,unrounded_accounted_dr
4823 ,unrounded_accounted_cr
4824 ,entered_currency_mau
4825 ,currency_code
4826 ,currency_conversion_date
4827 ,currency_conversion_rate
4828 ,currency_conversion_type
4829 ,statistical_amount
4830 ,party_id
4831 ,party_site_id
4832 ,party_type_code
4833 ,ussgl_transaction_code
4834 ,jgzz_recon_ref
4835 ,source_distribution_id_char_1
4836 ,source_distribution_id_char_2
4837 ,source_distribution_id_char_3
4838 ,source_distribution_id_char_4
4839 ,source_distribution_id_char_5
4840 ,source_distribution_id_num_1
4841 ,source_distribution_id_num_2
4842 ,source_distribution_id_num_3
4843 ,source_distribution_id_num_4
4844 ,source_distribution_id_num_5
4845 ,source_distribution_type
4846 ,reverse_dist_id_char_1
4847 ,reverse_dist_id_char_2
4848 ,reverse_dist_id_char_3
4849 ,reverse_dist_id_char_4
4850 ,reverse_dist_id_char_5
4851 ,reverse_dist_id_num_1
4852 ,reverse_dist_id_num_2
4853 ,reverse_dist_id_num_3
4854 ,reverse_dist_id_num_4
4855 ,reverse_dist_id_num_5
4856 ,reverse_distribution_type
4857 ,tax_line_ref_id
4858 ,tax_summary_line_ref_id
4859 ,tax_rec_nrec_dist_ref_id
4860 ,header_num
4861 ,mpa_accrual_entry_flag
4862 ,multiperiod_option_flag
4863 ,multiperiod_start_date
4864 ,multiperiod_end_date
4865 ,reversal_code
4866 ,inherit_desc_flag
4867 ,encumbrance_type_id
4868 ,accounting_entry_status_code
4869 ,accounting_date
4870 , BFLOW_APPLICATION_ID
4871 , BFLOW_ENTITY_CODE
4872 , APPLIED_TO_ENTITY_ID
4873 , BFLOW_SOURCE_ID_NUM_1
4874 , BFLOW_SOURCE_ID_NUM_2
4875 , BFLOW_SOURCE_ID_NUM_3
4876 , BFLOW_SOURCE_ID_NUM_4
4877 , BFLOW_SOURCE_ID_CHAR_1
4878 , BFLOW_SOURCE_ID_CHAR_2
4879 , BFLOW_SOURCE_ID_CHAR_3
4880 , BFLOW_SOURCE_ID_CHAR_4
4881 , BFLOW_DISTRIBUTION_TYPE
4882 , BFLOW_DIST_ID_NUM_1
4883 , BFLOW_DIST_ID_NUM_2
4884 , BFLOW_DIST_ID_NUM_3
4885 , BFLOW_DIST_ID_NUM_4
4886 , BFLOW_DIST_ID_NUM_5
4887 , BFLOW_DIST_ID_CHAR_1
4888 , BFLOW_DIST_ID_CHAR_2
4889 , BFLOW_DIST_ID_CHAR_3
4890 , BFLOW_DIST_ID_CHAR_4
4891 , BFLOW_DIST_ID_CHAR_5
4892 , alloc_to_application_id
4893 , alloc_to_entity_code
4894 , alloc_to_source_id_num_1
4895 , alloc_to_source_id_num_2
4896 , alloc_to_source_id_num_3
4897 , alloc_to_source_id_num_4
4898 , alloc_to_source_id_char_1
4899 , alloc_to_source_id_char_2
4900 , alloc_to_source_id_char_3
4901 , alloc_to_source_id_char_4
4902 , alloc_to_distribution_type
4903 , alloc_to_dist_id_char_1
4904 , alloc_to_dist_id_char_2
4905 , alloc_to_dist_id_char_3
4906 , alloc_to_dist_id_char_4
4907 , alloc_to_dist_id_char_5
4908 , alloc_to_dist_id_num_1
4909 , alloc_to_dist_id_num_2
4910 , alloc_to_dist_id_num_3
4911 , alloc_to_dist_id_num_4
4912 , alloc_to_dist_id_num_5
4913 , analytical_balance_flag -- Bug 7382288 Included analytical criteria
4914 , anc_id_1
4915 , anc_id_2
4916 , anc_id_3
4917 , anc_id_4
4918 , anc_id_5
4919 , anc_id_6
4920 , anc_id_7
4921 , anc_id_8
4922 , anc_id_9
4923 , anc_id_10
4924 , anc_id_11
4925 , anc_id_12
4926 , anc_id_13
4927 , anc_id_14
4928 , anc_id_15
4929 , anc_id_16
4930 , anc_id_17
4931 , anc_id_18
4932 , anc_id_19
4933 , anc_id_20
4934 , anc_id_21
4935 , anc_id_22
4936 , anc_id_23
4937 , anc_id_24
4938 , anc_id_25
4939 , anc_id_26
4940 , anc_id_27
4941 , anc_id_28
4942 , anc_id_29
4943 , anc_id_30
4944 , anc_id_31
4945 , anc_id_32
4946 , anc_id_33
4947 , anc_id_34
4948 , anc_id_35
4949 , anc_id_36
4950 , anc_id_37
4951 , anc_id_38
4952 , anc_id_39
4953 , anc_id_40
4954 , anc_id_41
4955 , anc_id_42
4956 , anc_id_43
4957 , anc_id_44
4958 , anc_id_45
4959 , anc_id_46
4960 , anc_id_47
4961 , anc_id_48
4962 , anc_id_49
4963 , anc_id_50
4964 , anc_id_51
4965 , anc_id_52
4966 , anc_id_53
4967 , anc_id_54
4968 , anc_id_55
4969 , anc_id_56
4970 , anc_id_57
4971 , anc_id_58
4972 , anc_id_59
4973 , anc_id_60
4974 , anc_id_61
4975 , anc_id_62
4976 , anc_id_63
4977 , anc_id_64
4978 , anc_id_65
4979 , anc_id_66
4980 , anc_id_67
4981 , anc_id_68
4982 , anc_id_69
4983 , anc_id_70
4984 , anc_id_71
4985 , anc_id_72
4986 , anc_id_73
4987 , anc_id_74
4988 , anc_id_75
4989 , anc_id_76
4990 , anc_id_77
4991 , anc_id_78
4992 , anc_id_79
4993 , anc_id_80
4994 , anc_id_81
4995 , anc_id_82
4996 , anc_id_83
4997 , anc_id_84
4998 , anc_id_85
4999 , anc_id_86
5000 , anc_id_87
5001 , anc_id_88
5002 , anc_id_89
5003 , anc_id_90
5004 , anc_id_91
5005 , anc_id_92
5006 , anc_id_93
5007 , anc_id_94
5008 , anc_id_95
5009 , anc_id_96
5010 , anc_id_97
5011 , anc_id_98
5012 , anc_id_99
5013 , anc_id_100
5014 FROM
5015 (SELECT /*+ ORDERED USE_HASH(lgt2) USE_NL(hgt) */
5016 -- populates ae_header_id which is same as event_id till this point
5017 lgt1.event_id AE_HEADER_ID
5018 -- populates temp_line_num which is (-ve) of original line
5019 ,0-lgt2.temp_line_num TEMP_LINE_NUM
5020 -- populates event_id which is the event_id of event under process
5021 ,lgt1.event_id EVENT_ID
5022 -- populates ref_ae_header_id which is ae_header_id of original line
5023 ,hgt.ae_header_id REF_AE_HEADER_ID
5024 -- populates ref_ae_line_num which is ae_line_num of original line
5025 ,lgt2.ae_line_num REF_AE_LINE_NUM
5026 -- populates ref_temp_line_num which is ae_line_num of original line
5027 ,lgt2.temp_line_num REF_TEMP_LINE_NUM
5028 -- populates ref_event_id which is event_id of original line
5029 ,lgt2.event_id REF_EVENT_ID
5030 ,lgt2.ledger_id LEDGER_ID
5031 ,lgt2.balance_type_code BALANCE_TYPE_CODE
5032 ,lgt2.accounting_class_code ACCOUNTING_CLASS_CODE
5033 ,lgt2.event_class_code EVENT_CLASS_CODE
5034 ,lgt2.event_type_code EVENT_TYPE_CODE
5035 ,lgt2.line_definition_owner_code LINE_DEFINITION_OWNER_CODE
5036 ,lgt2.line_definition_code LINE_DEFINITION_CODE
5037 ,lgt2.accounting_line_type_code ACCOUNTING_LINE_TYPE_CODE
5038 ,lgt2.accounting_line_code ACCOUNTING_LINE_CODE
5039 ,decode(lgt2.gain_or_loss_flag, 'Y'
5040 ,decode(lgt2.calculate_g_l_amts_flag,'Y'
5041 ,lgt2.alt_ccid_status_code,lgt2.code_combination_status_code)
5042 ,lgt2.code_combination_status_code)
5043 CODE_COMBINATION_STATUS_CODE
5044 ,decode(lgt2.gain_or_loss_flag, 'Y'
5045 ,decode(lgt2.calculate_g_l_amts_flag,'Y'
5046 ,lgt2.alt_code_combination_id, lgt2.code_combination_id)
5047 , lgt2.code_combination_id)
5048 CODE_COMBINATION_ID
5049 ,lgt2.sl_coa_mapping_name SL_COA_MAPPING_NAME
5050 ,lgt2.dynamic_insert_flag DYNAMIC_INSERT_FLAG
5051 ,lgt2.source_coa_id SOURCE_COA_ID
5052 ,lgt2.ccid_coa_id CCID_COA_ID
5053 ,lgt2.calculate_acctd_amts_flag CALCULATE_ACCTD_AMTS_FLAG
5054 ,lgt2.calculate_g_l_amts_flag CALCULATE_G_L_AMTS_FLAG
5055 ,lgt2.gain_or_loss_flag GAIN_OR_LOSS_FLAG
5056 ,lgt2.rounding_class_code ROUNDING_CLASS_CODE
5057 ,lgt2.document_rounding_level DOCUMENT_ROUNDING_LEVEL
5058 ,lgt2.doc_rounding_acctd_amt DOC_ROUNDING_ACCTD_AMT
5059 ,lgt2.doc_rounding_entered_amt DOC_ROUNDING_ENTERED_AMT
5060 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.code_combination_status_code ,lgt2.alt_ccid_status_code)
5061 ALT_CCID_STATUS_CODE
5062 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.code_combination_id ,lgt2.alt_code_combination_id)
5063 ALT_CODE_COMBINATION_ID
5064 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment1,lgt2.alt_segment1) ALT_SEGMENT1
5065 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment2,lgt2.alt_segment2) ALT_SEGMENT2
5066 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment3,lgt2.alt_segment3) ALT_SEGMENT3
5067 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment4,lgt2.alt_segment4) ALT_SEGMENT4
5068 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment5,lgt2.alt_segment5) ALT_SEGMENT5
5069 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment6,lgt2.alt_segment6) ALT_SEGMENT6
5070 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment7,lgt2.alt_segment7) ALT_SEGMENT7
5071 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment8,lgt2.alt_segment8) ALT_SEGMENT8
5072 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment9,lgt2.alt_segment9) ALT_SEGMENT9
5073 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment10,lgt2.alt_segment10) ALT_SEGMENT10
5074 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment11,lgt2.alt_segment11) ALT_SEGMENT11
5075 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment12,lgt2.alt_segment12) ALT_SEGMENT12
5076 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment13,lgt2.alt_segment13) ALT_SEGMENT13
5077 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment14,lgt2.alt_segment14) ALT_SEGMENT14
5078 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment15,lgt2.alt_segment15) ALT_SEGMENT15
5079 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment16,lgt2.alt_segment16) ALT_SEGMENT16
5080 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment17,lgt2.alt_segment17) ALT_SEGMENT17
5081 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment18,lgt2.alt_segment18) ALT_SEGMENT18
5082 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment19,lgt2.alt_segment19) ALT_SEGMENT19
5083 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment20,lgt2.alt_segment20) ALT_SEGMENT20
5084 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment21,lgt2.alt_segment21) ALT_SEGMENT21
5085 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment22,lgt2.alt_segment22) ALT_SEGMENT22
5086 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment23,lgt2.alt_segment23) ALT_SEGMENT23
5087 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment24,lgt2.alt_segment24) ALT_SEGMENT24
5088 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment25,lgt2.alt_segment25) ALT_SEGMENT25
5089 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment26,lgt2.alt_segment26) ALT_SEGMENT26
5090 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment27,lgt2.alt_segment27) ALT_SEGMENT27
5091 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment28,lgt2.alt_segment28) ALT_SEGMENT28
5092 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment29,lgt2.alt_segment29) ALT_SEGMENT29
5093 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment30,lgt2.alt_segment30) ALT_SEGMENT30
5094 ,decode(lgt2.gain_or_loss_flag, 'Y'
5095 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment1,lgt2.segment1)
5096 ,lgt2.segment1) SEGMENT1
5097 ,decode(lgt2.gain_or_loss_flag, 'Y'
5098 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment2,lgt2.segment2)
5099 ,lgt2.segment2) SEGMENT2
5100
5101 ,decode(lgt2.gain_or_loss_flag, 'Y'
5102 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment3,lgt2.segment3)
5103 ,lgt2.segment3) SEGMENT3
5104
5105 ,decode(lgt2.gain_or_loss_flag, 'Y'
5106 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment4,lgt2.segment4)
5107 ,lgt2.segment4) SEGMENT4
5108
5109 ,decode(lgt2.gain_or_loss_flag, 'Y'
5110 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment5,lgt2.segment5)
5111 ,lgt2.segment5) SEGMENT5
5112
5113 ,decode(lgt2.gain_or_loss_flag, 'Y'
5114 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment6,lgt2.segment6)
5115 ,lgt2.segment6) SEGMENT6
5116
5117 ,decode(lgt2.gain_or_loss_flag, 'Y'
5118 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment7,lgt2.segment7)
5119 ,lgt2.segment7) SEGMENT7
5120
5121 ,decode(lgt2.gain_or_loss_flag, 'Y'
5122 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment8,lgt2.segment8)
5123 ,lgt2.segment8) SEGMENT8
5124
5125 ,decode(lgt2.gain_or_loss_flag, 'Y'
5126 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment9,lgt2.segment9)
5127 ,lgt2.segment9) SEGMENT9
5128
5129 ,decode(lgt2.gain_or_loss_flag, 'Y'
5130 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment10,lgt2.segment10)
5131 ,lgt2.segment10) SEGMENT10
5132
5133 ,decode(lgt2.gain_or_loss_flag, 'Y'
5134 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment11,lgt2.segment11)
5135 ,lgt2.segment11) SEGMENT11
5136
5137 ,decode(lgt2.gain_or_loss_flag, 'Y'
5138 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment12,lgt2.segment12)
5139 ,lgt2.segment12) SEGMENT12
5140
5141 ,decode(lgt2.gain_or_loss_flag, 'Y'
5142 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment13,lgt2.segment13)
5143 ,lgt2.segment13) SEGMENT13
5144
5145 ,decode(lgt2.gain_or_loss_flag, 'Y'
5146 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment14,lgt2.segment14)
5147 ,lgt2.segment14) SEGMENT14
5148
5149 ,decode(lgt2.gain_or_loss_flag, 'Y'
5150 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment15,lgt2.segment15)
5151 ,lgt2.segment15) SEGMENT15
5152
5153 ,decode(lgt2.gain_or_loss_flag, 'Y'
5154 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment16,lgt2.segment16)
5155 ,lgt2.segment16) SEGMENT16
5156
5157 ,decode(lgt2.gain_or_loss_flag, 'Y'
5158 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment17,lgt2.segment17)
5159 ,lgt2.segment17) SEGMENT17
5160
5161 ,decode(lgt2.gain_or_loss_flag, 'Y'
5162 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment18,lgt2.segment18)
5163 ,lgt2.segment18) SEGMENT18
5164
5165 ,decode(lgt2.gain_or_loss_flag, 'Y'
5166 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment19,lgt2.segment19)
5167 ,lgt2.segment19) SEGMENT19
5168
5169 ,decode(lgt2.gain_or_loss_flag, 'Y'
5170 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment20,lgt2.segment20)
5171 ,lgt2.segment20) SEGMENT20
5172
5173 ,decode(lgt2.gain_or_loss_flag, 'Y'
5174 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment21,lgt2.segment21)
5175 ,lgt2.segment21) SEGMENT21
5176
5177 ,decode(lgt2.gain_or_loss_flag, 'Y'
5178 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment22,lgt2.segment22)
5179 ,lgt2.segment22) SEGMENT22
5180
5181 ,decode(lgt2.gain_or_loss_flag, 'Y'
5182 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment23,lgt2.segment23)
5183 ,lgt2.segment23) SEGMENT23
5184
5185 ,decode(lgt2.gain_or_loss_flag, 'Y'
5186 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment24,lgt2.segment24)
5187 ,lgt2.segment24) SEGMENT24
5188
5189 ,decode(lgt2.gain_or_loss_flag, 'Y'
5190 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment25,lgt2.segment25)
5191 ,lgt2.segment25) SEGMENT25
5192
5193 ,decode(lgt2.gain_or_loss_flag, 'Y'
5194 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment26,lgt2.segment26)
5195 ,lgt2.segment26) SEGMENT26
5196
5197 ,decode(lgt2.gain_or_loss_flag, 'Y'
5198 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment27,lgt2.segment27)
5199 ,lgt2.segment27) SEGMENT27
5200
5201 ,decode(lgt2.gain_or_loss_flag, 'Y'
5202 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment28,lgt2.segment28)
5203 ,lgt2.segment28) SEGMENT28
5204
5205 ,decode(lgt2.gain_or_loss_flag, 'Y'
5206 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment29,lgt2.segment29)
5207 ,lgt2.segment29) SEGMENT29
5208
5209 ,decode(lgt2.gain_or_loss_flag, 'Y'
5210 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment30,lgt2.segment30)
5211 ,lgt2.segment30) SEGMENT30
5212 ,lgt2.description DESCRIPTION
5213 ,lgt2.gl_transfer_mode_code GL_TRANSFER_MODE_CODE
5214 ,lgt2.merge_duplicate_code MERGE_DUPLICATE_CODE
5215 ,decode(lgt2.gain_or_loss_flag, 'Y', decode(lgt2.calculate_g_l_amts_flag, 'Y', 'Y', 'N'), lgt1.switch_side_flag)
5216 SWITCH_SIDE_FLAG -- bug:7337288 changed lgt2 to lgt1 for switch side flag
5217 -- 5055878 amounts modified for reversal method of SIDE or SIGN
5218 ,DECODE(lgt1.switch_side_flag,'Y',lgt2.unrounded_entered_cr, -lgt2.unrounded_entered_dr) UNROUNDED_ENTERED_DR
5219 ,DECODE(lgt1.switch_side_flag,'Y',lgt2.unrounded_entered_dr, -lgt2.unrounded_entered_cr) UNROUNDED_ENTERED_CR
5220 ,DECODE(lgt1.switch_side_flag,'Y',lgt2.unrounded_accounted_cr,-lgt2.unrounded_accounted_dr) UNROUNDED_ACCOUNTED_DR
5221 ,DECODE(lgt1.switch_side_flag,'Y',lgt2.unrounded_accounted_dr,-lgt2.unrounded_accounted_cr) UNROUNDED_ACCOUNTED_CR
5222 --
5223 ,lgt2.entered_currency_mau ENTERED_CURRENCY_MAU
5224 ,lgt2.currency_code CURRENCY_CODE
5225 ,lgt2.currency_conversion_date CURRENCY_CONVERSION_DATE
5226 ,lgt2.currency_conversion_rate CURRENCY_CONVERSION_RATE
5227 ,lgt2.currency_conversion_type CURRENCY_CONVERSION_TYPE
5228 ,lgt2.statistical_amount STATISTICAL_AMOUNT
5229 ,lgt2.party_id PARTY_ID
5230 ,lgt2.party_site_id PARTY_SITE_ID
5231 ,lgt2.party_type_code PARTY_TYPE_CODE
5232 ,lgt2.ussgl_transaction_code USSGL_TRANSACTION_CODE
5233 ,lgt2.jgzz_recon_ref JGZZ_RECON_REF
5234 ,lgt1.source_distribution_id_char_1 SOURCE_DISTRIBUTION_ID_CHAR_1
5235 ,lgt1.source_distribution_id_char_2 SOURCE_DISTRIBUTION_ID_CHAR_2
5236 ,lgt1.source_distribution_id_char_3 SOURCE_DISTRIBUTION_ID_CHAR_3
5237 ,lgt1.source_distribution_id_char_4 SOURCE_DISTRIBUTION_ID_CHAR_4
5238 ,lgt1.source_distribution_id_char_5 SOURCE_DISTRIBUTION_ID_CHAR_5
5239 ,lgt1.source_distribution_id_num_1 SOURCE_DISTRIBUTION_ID_NUM_1
5240 ,lgt1.source_distribution_id_num_2 SOURCE_DISTRIBUTION_ID_NUM_2
5241 ,lgt1.source_distribution_id_num_3 SOURCE_DISTRIBUTION_ID_NUM_3
5242 ,lgt1.source_distribution_id_num_4 SOURCE_DISTRIBUTION_ID_NUM_4
5243 ,lgt1.source_distribution_id_num_5 SOURCE_DISTRIBUTION_ID_NUM_5
5244 ,lgt1.source_distribution_type SOURCE_DISTRIBUTION_TYPE
5245 ,lgt2.source_distribution_id_char_1 REVERSE_DIST_ID_CHAR_1
5246 ,lgt2.source_distribution_id_char_2 REVERSE_DIST_ID_CHAR_2
5247 ,lgt2.source_distribution_id_char_3 REVERSE_DIST_ID_CHAR_3
5248 ,lgt2.source_distribution_id_char_4 REVERSE_DIST_ID_CHAR_4
5249 ,lgt2.source_distribution_id_char_5 REVERSE_DIST_ID_CHAR_5
5250 ,lgt2.source_distribution_id_num_1 REVERSE_DIST_ID_NUM_1
5251 ,lgt2.source_distribution_id_num_2 REVERSE_DIST_ID_NUM_2
5252 ,lgt2.source_distribution_id_num_3 REVERSE_DIST_ID_NUM_3
5253 ,lgt2.source_distribution_id_num_4 REVERSE_DIST_ID_NUM_4
5254 ,lgt2.source_distribution_id_num_5 REVERSE_DIST_ID_NUM_5
5255 ,lgt2.source_distribution_type REVERSE_DISTRIBUTION_TYPE
5256 ,nvl(lgt1.tax_line_ref_id,lgt2.tax_line_ref_id) TAX_LINE_REF_ID -- bug 7159711
5257 ,nvl(lgt1.tax_summary_line_ref_id,lgt2.tax_summary_line_ref_id) TAX_SUMMARY_LINE_REF_ID -- bug 7159711
5258 ,nvl(lgt1.tax_rec_nrec_dist_ref_id,lgt2.tax_rec_nrec_dist_ref_id) TAX_REC_NREC_DIST_REF_ID -- bug 7159711
5259 ,NVL(lgt2.header_num,0) HEADER_NUM
5260 ,lgt2.mpa_accrual_entry_flag MPA_ACCRUAL_ENTRY_FLAG
5261 ,lgt2.multiperiod_option_flag MULTIPERIOD_OPTION_FLAG
5262 ,lgt2.multiperiod_start_date MULTIPERIOD_START_DATE
5263 ,lgt2.multiperiod_end_date MULTIPERIOD_END_DATE
5264 -- populate reversal_code indicating that line is result of reversal
5265 ,'REVERSAL' REVERSAL_CODE
5266 ,'N' INHERIT_DESC_FLAG
5267 ,lgt2.encumbrance_type_id ENCUMBRANCE_TYPE_ID
5268 -- denormalises entry status from headers to line to determine the status of entry being created
5269 ,hgt.accounting_entry_status_code ACCOUNTING_ENTRY_STATUS_CODE
5270 ,lgt1.accounting_date ACCOUNTING_DATE
5271 -- the following assigns duplicate rownum to reversal lines created from same
5272 -- original line. This is used to filter duplicate rows in the outer query.
5273 ,row_number() over
5274 (partition by lgt2.ref_ae_header_Id, lgt2.ledger_id,lgt2.temp_line_num
5275 order by lgt1.event_number
5276 ) rn
5277 , lgt2.BFLOW_APPLICATION_ID
5278 , lgt2.BFLOW_ENTITY_CODE
5279 , lgt2.APPLIED_TO_ENTITY_ID
5280 , lgt2.BFLOW_SOURCE_ID_NUM_1
5281 , lgt2.BFLOW_SOURCE_ID_NUM_2
5282 , lgt2.BFLOW_SOURCE_ID_NUM_3
5283 , lgt2.BFLOW_SOURCE_ID_NUM_4
5284 , lgt2.BFLOW_SOURCE_ID_CHAR_1
5285 , lgt2.BFLOW_SOURCE_ID_CHAR_2
5286 , lgt2.BFLOW_SOURCE_ID_CHAR_3
5287 , lgt2.BFLOW_SOURCE_ID_CHAR_4
5288 , lgt2.BFLOW_DISTRIBUTION_TYPE
5289 , lgt2.BFLOW_DIST_ID_NUM_1
5290 , lgt2.BFLOW_DIST_ID_NUM_2
5291 , lgt2.BFLOW_DIST_ID_NUM_3
5292 , lgt2.BFLOW_DIST_ID_NUM_4
5293 , lgt2.BFLOW_DIST_ID_NUM_5
5294 , lgt2.BFLOW_DIST_ID_CHAR_1
5295 , lgt2.BFLOW_DIST_ID_CHAR_2
5296 , lgt2.BFLOW_DIST_ID_CHAR_3
5297 , lgt2.BFLOW_DIST_ID_CHAR_4
5298 , lgt2.BFLOW_DIST_ID_CHAR_5
5299 , lgt2.alloc_to_application_id alloc_to_application_id
5300 , lgt2.alloc_to_entity_code alloc_to_entity_code
5301 , lgt2.alloc_to_source_id_num_1 alloc_to_source_id_num_1
5302 , lgt2.alloc_to_source_id_num_2 alloc_to_source_id_num_2
5303 , lgt2.alloc_to_source_id_num_3 alloc_to_source_id_num_3
5304 , lgt2.alloc_to_source_id_num_4 alloc_to_source_id_num_4
5305 , lgt2.alloc_to_source_id_char_1 alloc_to_source_id_char_1
5306 , lgt2.alloc_to_source_id_char_2 alloc_to_source_id_char_2
5307 , lgt2.alloc_to_source_id_char_3 alloc_to_source_id_char_3
5308 , lgt2.alloc_to_source_id_char_4 alloc_to_source_id_char_4
5309 , lgt2.alloc_to_distribution_type alloc_to_distribution_type
5310 , lgt2.alloc_to_dist_id_char_1 alloc_to_dist_id_char_1
5311 , lgt2.alloc_to_dist_id_char_2 alloc_to_dist_id_char_2
5312 , lgt2.alloc_to_dist_id_char_3 alloc_to_dist_id_char_3
5313 , lgt2.alloc_to_dist_id_char_4 alloc_to_dist_id_char_4
5314 , lgt2.alloc_to_dist_id_char_5 alloc_to_dist_id_char_5
5315 , lgt2.alloc_to_dist_id_num_1 alloc_to_dist_id_num_1
5316 , lgt2.alloc_to_dist_id_num_2 alloc_to_dist_id_num_2
5317 , lgt2.alloc_to_dist_id_num_3 alloc_to_dist_id_num_3
5318 , lgt2.alloc_to_dist_id_num_4 alloc_to_dist_id_num_4
5319 , lgt2.alloc_to_dist_id_num_5 alloc_to_dist_id_num_5
5320 , lgt2.analytical_balance_flag -- Bug 7382288- Included analytical criteria
5321 , lgt2.anc_id_1
5322 , lgt2.anc_id_2
5323 , lgt2.anc_id_3
5324 , lgt2.anc_id_4
5325 , lgt2.anc_id_5
5326 , lgt2.anc_id_6
5327 , lgt2.anc_id_7
5328 , lgt2.anc_id_8
5329 , lgt2.anc_id_9
5330 , lgt2.anc_id_10
5331 , lgt2.anc_id_11
5332 , lgt2.anc_id_12
5333 , lgt2.anc_id_13
5334 , lgt2.anc_id_14
5335 , lgt2.anc_id_15
5336 , lgt2.anc_id_16
5337 , lgt2.anc_id_17
5338 , lgt2.anc_id_18
5339 , lgt2.anc_id_19
5340 , lgt2.anc_id_20
5341 , lgt2.anc_id_21
5342 , lgt2.anc_id_22
5343 , lgt2.anc_id_23
5344 , lgt2.anc_id_24
5345 , lgt2.anc_id_25
5346 , lgt2.anc_id_26
5347 , lgt2.anc_id_27
5348 , lgt2.anc_id_28
5349 , lgt2.anc_id_29
5350 , lgt2.anc_id_30
5351 , lgt2.anc_id_31
5352 , lgt2.anc_id_32
5353 , lgt2.anc_id_33
5354 , lgt2.anc_id_34
5355 , lgt2.anc_id_35
5356 , lgt2.anc_id_36
5357 , lgt2.anc_id_37
5358 , lgt2.anc_id_38
5359 , lgt2.anc_id_39
5360 , lgt2.anc_id_40
5361 , lgt2.anc_id_41
5362 , lgt2.anc_id_42
5363 , lgt2.anc_id_43
5364 , lgt2.anc_id_44
5365 , lgt2.anc_id_45
5366 , lgt2.anc_id_46
5367 , lgt2.anc_id_47
5368 , lgt2.anc_id_48
5369 , lgt2.anc_id_49
5370 , lgt2.anc_id_50
5371 , lgt2.anc_id_51
5372 , lgt2.anc_id_52
5373 , lgt2.anc_id_53
5374 , lgt2.anc_id_54
5375 , lgt2.anc_id_55
5376 , lgt2.anc_id_56
5377 , lgt2.anc_id_57
5378 , lgt2.anc_id_58
5379 , lgt2.anc_id_59
5380 , lgt2.anc_id_60
5381 , lgt2.anc_id_61
5382 , lgt2.anc_id_62
5383 , lgt2.anc_id_63
5384 , lgt2.anc_id_64
5385 , lgt2.anc_id_65
5386 , lgt2.anc_id_66
5387 , lgt2.anc_id_67
5388 , lgt2.anc_id_68
5389 , lgt2.anc_id_69
5390 , lgt2.anc_id_70
5391 , lgt2.anc_id_71
5392 , lgt2.anc_id_72
5393 , lgt2.anc_id_73
5394 , lgt2.anc_id_74
5395 , lgt2.anc_id_75
5396 , lgt2.anc_id_76
5397 , lgt2.anc_id_77
5398 , lgt2.anc_id_78
5399 , lgt2.anc_id_79
5400 , lgt2.anc_id_80
5401 , lgt2.anc_id_81
5402 , lgt2.anc_id_82
5403 , lgt2.anc_id_83
5404 , lgt2.anc_id_84
5405 , lgt2.anc_id_85
5406 , lgt2.anc_id_86
5407 , lgt2.anc_id_87
5408 , lgt2.anc_id_88
5409 , lgt2.anc_id_89
5410 , lgt2.anc_id_90
5411 , lgt2.anc_id_91
5412 , lgt2.anc_id_92
5413 , lgt2.anc_id_93
5414 , lgt2.anc_id_94
5415 , lgt2.anc_id_95
5416 , lgt2.anc_id_96
5417 , lgt2.anc_id_97
5418 , lgt2.anc_id_98
5419 , lgt2.anc_id_99
5420 , lgt2.anc_id_100
5421 FROM
5422 xla_ae_lines_gt lgt1
5423 ,xla_ae_lines_gt lgt2
5424 ,xla_ae_headers_gt hgt
5425 WHERE lgt1.reversal_code = 'DUMMY_LR'
5426 AND lgt2.ledger_id = lgt1.ledger_id
5427 AND lgt2.source_distribution_type = lgt1.reverse_distribution_type
5428 AND nvl(lgt2.source_distribution_id_num_1,-99) = nvl(lgt1.reverse_dist_id_num_1,-99)
5429 AND nvl(lgt2.source_distribution_id_num_2,-99) = nvl(lgt1.reverse_dist_id_num_2,-99)
5430 AND nvl(lgt2.source_distribution_id_num_3,-99) = nvl(lgt1.reverse_dist_id_num_3,-99)
5431 AND nvl(lgt2.source_distribution_id_num_4,-99) = nvl(lgt1.reverse_dist_id_num_4,-99)
5432 AND nvl(lgt2.source_distribution_id_num_5,-99) = nvl(lgt1.reverse_dist_id_num_5,-99)
5433 AND nvl(lgt2.source_distribution_id_char_1,' ') = nvl(lgt1.reverse_dist_id_char_1,' ')
5434 AND nvl(lgt2.source_distribution_id_char_2,' ') = nvl(lgt1.reverse_dist_id_char_2,' ')
5435 AND nvl(lgt2.source_distribution_id_char_3,' ') = nvl(lgt1.reverse_dist_id_char_3,' ')
5436 AND nvl(lgt2.source_distribution_id_char_4,' ') = nvl(lgt1.reverse_dist_id_char_4,' ')
5437 AND nvl(lgt2.source_distribution_id_char_5,' ') = nvl(lgt1.reverse_dist_id_char_5,' ')
5438 AND hgt.event_id = lgt2.event_id
5439 AND hgt.ledger_id = lgt2.ledger_id
5440 AND hgt.balance_type_code = lgt2.balance_type_code
5441 AND hgt.entity_id = lgt1.entity_id
5442 -- lines for events with event number > current event number are not reversed.
5443 AND hgt.event_number < lgt1.event_number
5444 AND hgt.header_num = lgt2.header_num-- 4262811c Line Reversal (xla_ae_lines_gt_u1 error)
5445 AND hgt.ae_header_id = lgt2.ae_header_id
5446 )
5447 WHERE rn = 1
5448 );
5449
5450
5451 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
5452 trace
5453 (p_msg => 'Line Reversal - Reversal lines created from xla_ae_lines_gt = '||SQL%ROWCOUNT
5454 ,p_level => C_LEVEL_STATEMENT
5455 ,p_module => l_log_module);
5456 END IF;
5457
5458 --------------------------------------------------------------------------------------------------------
5459 -- 5108415 For Line Reversal, Store the incomplete MPA/AccRev entries to be used in DeleteIncompleteMPA
5460 --------------------------------------------------------------------------------------------------------
5461 IF p_accounting_mode IN ('F','RESERVE_FUNDS') THEN
5462
5463 SELECT /*+ Leading(LGT,XDL) use_nl(lgt xdl aeh ael)*/ -- 5262950
5464 ael.ae_header_id
5465 ,ael.ae_line_num
5466 ,aeh.parent_ae_header_id
5467 BULK COLLECT INTO
5468 g_incomplete_mpa_acc_LR.l_array_ae_header_id
5469 ,g_incomplete_mpa_acc_LR.l_array_ae_line_num
5470 ,g_incomplete_mpa_acc_LR.l_array_parent_ae_header
5471 FROM
5472 xla_ae_lines_gt lgt
5473 ,xla_ae_lines ael
5474 ,xla_ae_headers aeh
5475 ,xla_distribution_links xdl
5476 WHERE xdl.application_id = l_application_id
5477 AND xdl.source_distribution_type = lgt.reverse_distribution_type
5478 AND lgt.reversal_code = 'DUMMY_LR'
5479 AND xdl.source_distribution_id_num_1 = lgt.reverse_dist_id_num_1 -- 5479652
5480 AND nvl(xdl.source_distribution_id_num_2,-99) = nvl(lgt.reverse_dist_id_num_2,-99)
5481 AND nvl(xdl.source_distribution_id_num_3,-99) = nvl(lgt.reverse_dist_id_num_3,-99)
5482 AND nvl(xdl.source_distribution_id_num_4,-99) = nvl(lgt.reverse_dist_id_num_4,-99)
5483 AND nvl(xdl.source_distribution_id_num_5,-99) = nvl(lgt.reverse_dist_id_num_5,-99)
5484 AND nvl(xdl.source_distribution_id_char_1,' ') = nvl(lgt.reverse_dist_id_char_1,' ')
5485 AND nvl(xdl.source_distribution_id_char_2,' ') = nvl(lgt.reverse_dist_id_char_2,' ')
5486 AND nvl(xdl.source_distribution_id_char_3,' ') = nvl(lgt.reverse_dist_id_char_3,' ')
5487 AND nvl(xdl.source_distribution_id_char_4,' ') = nvl(lgt.reverse_dist_id_char_4,' ')
5488 AND nvl(xdl.source_distribution_id_char_5,' ') = nvl(lgt.reverse_dist_id_char_5,' ')
5489 AND aeh.application_id = xdl.application_id
5490 AND aeh.ae_header_id = xdl.ae_header_id
5491 AND aeh.ledger_id = lgt.ledger_id
5492 AND aeh.entity_id = lgt.entity_id
5493 AND ael.application_id = aeh.application_id
5494 AND ael.ae_header_id = aeh.ae_header_id
5495 AND ael.ae_line_num = xdl.ae_line_num
5496 AND aeh.parent_ae_header_id IS NOT NULL AND aeh.accounting_entry_status_code IN ('D','N','I','R','RELATED_EVENT_ERROR'); -- 5262950 incomplete MPA/AccRev
5497
5498 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
5499 trace
5500 (p_msg => 'Incomplete mpa_acc_LR count='||g_incomplete_mpa_acc_LR.l_array_ae_header_id.COUNT
5501 ,p_level => C_LEVEL_STATEMENT
5502 ,p_module => l_log_module);
5503 FOR i in 1..g_incomplete_mpa_acc_LR.l_array_ae_header_id.COUNT LOOP
5504 trace
5505 (p_msg => 'Incomplete mpa_acc_LR ae_header='||g_incomplete_mpa_acc_LR.l_array_ae_header_id(i)||
5506 ' ae_line='||g_incomplete_mpa_acc_LR.l_array_ae_line_num(i)||
5507 ' parent='||g_incomplete_mpa_acc_LR.l_array_parent_ae_header(i)
5508 ,p_level => C_LEVEL_STATEMENT
5509 ,p_module => l_log_module);
5510 END LOOP;
5511 END IF;
5512 END IF;
5513 -------------------------------------------------------------------------------------------
5514
5515 --
5516 ---------------------------------------------------------------------------------------------------------
5517 -- Reverse the lines in xla_ae_lines table
5518 --
5519 -- Some for 4669308:
5520 -- For MPA entries, only reverse what is necessary , ie create reversal for Complete MPA only.
5521 -- Do not create reversal for incomplete entry (since it will get deleted anyway).
5522 -- Also, since the redundant lines will affect ROUNDING calculation.
5523 -- Need to create reversal in Draft mode also (so can be viewed).
5524 ---------------------------------------------------------------------------------------------------------
5525 --
5526 INSERT INTO xla_ae_lines_gt
5527 (ae_header_id
5528 ,temp_line_num
5529 ,event_id
5530 ,ref_ae_header_id
5531 ,ref_ae_line_num
5532 ,ref_temp_line_num
5533 ,ref_event_id
5534 ,ledger_id
5535 ,balance_type_code
5536 ,accounting_class_code
5537 ,event_class_code
5538 ,event_type_code
5539 ,line_definition_owner_code
5540 ,line_definition_code
5541 ,accounting_line_type_code
5542 ,accounting_line_code
5543 ,code_combination_status_code
5544 ,code_combination_id
5545 ,alt_ccid_status_code
5546 ,alt_code_combination_id
5547 ,description
5548 ,gl_transfer_mode_code
5549 ,merge_duplicate_code
5550 ,switch_side_flag -- 5055878
5551 ,unrounded_entered_dr
5552 ,unrounded_entered_cr
5553 ,unrounded_accounted_dr
5554 ,unrounded_accounted_cr
5555 ,calculate_acctd_amts_flag
5556 ,calculate_g_l_amts_flag
5557 ,gain_or_loss_flag
5558 ,rounding_class_code
5559 ,document_rounding_level
5560 ,doc_rounding_acctd_amt
5561 ,doc_rounding_entered_amt
5562 ,entered_currency_mau
5563 ,currency_code
5564 ,currency_conversion_date
5565 ,currency_conversion_rate
5566 ,currency_conversion_type
5567 ,statistical_amount
5568 ,party_id
5569 ,party_site_id
5570 ,party_type_code
5571 ,ussgl_transaction_code
5572 ,jgzz_recon_ref
5573 ,source_distribution_id_char_1
5574 ,source_distribution_id_char_2
5575 ,source_distribution_id_char_3
5576 ,source_distribution_id_char_4
5577 ,source_distribution_id_char_5
5578 ,source_distribution_id_num_1
5579 ,source_distribution_id_num_2
5580 ,source_distribution_id_num_3
5581 ,source_distribution_id_num_4
5582 ,source_distribution_id_num_5
5583 ,source_distribution_type
5584 ,reverse_dist_id_char_1
5585 ,reverse_dist_id_char_2
5586 ,reverse_dist_id_char_3
5587 ,reverse_dist_id_char_4
5588 ,reverse_dist_id_char_5
5589 ,reverse_dist_id_num_1
5590 ,reverse_dist_id_num_2
5591 ,reverse_dist_id_num_3
5592 ,reverse_dist_id_num_4
5593 ,reverse_dist_id_num_5
5594 ,reverse_distribution_type
5595 ,reversal_code
5596 ,accounting_entry_status_code
5597 ,inherit_desc_flag
5598 ,header_num
5599 ,encumbrance_type_id
5600 ,mpa_accrual_entry_flag
5601 ,accounting_date
5602 , BFLOW_APPLICATION_ID
5603 , BFLOW_ENTITY_CODE
5604 , APPLIED_TO_ENTITY_ID
5605 , BFLOW_SOURCE_ID_NUM_1
5606 , BFLOW_SOURCE_ID_NUM_2
5607 , BFLOW_SOURCE_ID_NUM_3
5608 , BFLOW_SOURCE_ID_NUM_4
5609 , BFLOW_SOURCE_ID_CHAR_1
5610 , BFLOW_SOURCE_ID_CHAR_2
5611 , BFLOW_SOURCE_ID_CHAR_3
5612 , BFLOW_SOURCE_ID_CHAR_4
5613 , BFLOW_DISTRIBUTION_TYPE
5614 , BFLOW_DIST_ID_NUM_1
5615 , BFLOW_DIST_ID_NUM_2
5616 , BFLOW_DIST_ID_NUM_3
5617 , BFLOW_DIST_ID_NUM_4
5618 , BFLOW_DIST_ID_NUM_5
5619 , BFLOW_DIST_ID_CHAR_1
5620 , BFLOW_DIST_ID_CHAR_2
5621 , BFLOW_DIST_ID_CHAR_3
5622 , BFLOW_DIST_ID_CHAR_4
5623 , BFLOW_DIST_ID_CHAR_5
5624 , alloc_to_application_id
5625 , alloc_to_entity_code
5626 , alloc_to_source_id_num_1
5627 , alloc_to_source_id_num_2
5628 , alloc_to_source_id_num_3
5629 , alloc_to_source_id_num_4
5630 , alloc_to_source_id_char_1
5631 , alloc_to_source_id_char_2
5632 , alloc_to_source_id_char_3
5633 , alloc_to_source_id_char_4
5634 , alloc_to_distribution_type
5635 , alloc_to_dist_id_char_1
5636 , alloc_to_dist_id_char_2
5637 , alloc_to_dist_id_char_3
5638 , alloc_to_dist_id_char_4
5639 , alloc_to_dist_id_char_5
5640 , alloc_to_dist_id_num_1
5641 , alloc_to_dist_id_num_2
5642 , alloc_to_dist_id_num_3
5643 , alloc_to_dist_id_num_4
5644 , alloc_to_dist_id_num_5
5645 ,TAX_LINE_REF_ID -- Bug 7159711
5646 ,TAX_SUMMARY_LINE_REF_ID -- Bug 7159711
5647 ,TAX_REC_NREC_DIST_REF_ID -- Bug 7159711
5648 ,analytical_balance_flag -- Bug 7382288
5649 )
5650 (SELECT
5651 ae_header_id
5652 ,temp_line_num
5653 ,event_id
5654 ,ref_ae_header_id
5655 ,ref_ae_line_num
5656 ,ref_temp_line_num
5657 ,ref_event_id
5658 ,ledger_id
5659 ,balance_type_code
5660 ,accounting_class_code
5661 ,event_class_code
5662 ,event_type_code
5663 ,line_definition_owner_code
5664 ,line_definition_code
5665 ,accounting_line_type_code
5666 ,accounting_line_code
5667 ,code_combination_status_code
5668 ,code_combination_id
5669 ,code_combination_status_code
5670 ,code_combination_id
5671 ,description
5672 ,gl_transfer_mode_code
5673 ,merge_duplicate_code
5674 ,switch_side_flag -- 5055878
5675 ,unrounded_entered_dr
5676 ,unrounded_entered_cr
5677 ,unrounded_accounted_dr
5678 ,unrounded_accounted_cr
5679 ,calculate_acctd_amts_flag
5680 ,calculate_g_l_amts_flag
5681 ,gain_or_loss_flag
5682 ,rounding_class_code
5683 ,document_rounding_level
5684 ,doc_rounding_acctd_amt
5685 ,doc_rounding_entered_amt
5686 ,entered_currency_mau
5687 ,currency_code
5688 ,currency_conversion_date
5689 ,currency_conversion_rate
5690 ,currency_conversion_type
5691 ,statistical_amount
5692 ,party_id
5693 ,party_site_id
5694 ,party_type_code
5695 ,ussgl_transaction_code
5696 ,jgzz_recon_ref
5697 ,source_distribution_id_char_1
5698 ,source_distribution_id_char_2
5699 ,source_distribution_id_char_3
5700 ,source_distribution_id_char_4
5701 ,source_distribution_id_char_5
5702 ,source_distribution_id_num_1
5703 ,source_distribution_id_num_2
5704 ,source_distribution_id_num_3
5705 ,source_distribution_id_num_4
5706 ,source_distribution_id_num_5
5707 ,source_distribution_type
5708 ,reverse_dist_id_char_1
5709 ,reverse_dist_id_char_2
5710 ,reverse_dist_id_char_3
5711 ,reverse_dist_id_char_4
5712 ,reverse_dist_id_char_5
5713 ,reverse_dist_id_num_1
5714 ,reverse_dist_id_num_2
5715 ,reverse_dist_id_num_3
5716 ,reverse_dist_id_num_4
5717 ,reverse_dist_id_num_5
5718 ,reverse_distribution_type
5719 ,reversal_code
5720 ,accounting_entry_status_code
5721 ,inherit_desc_flag
5722 ,header_num
5723 ,encumbrance_type_id
5724 ,mpa_accrual_entry_flag
5725 ,accounting_date
5726 , APPLIED_TO_APPLICATION_ID
5727 , APPLIED_TO_ENTITY_CODE
5728 , APPLIED_TO_ENTITY_ID
5729 , APPLIED_TO_SOURCE_ID_NUM_1
5730 , APPLIED_TO_SOURCE_ID_NUM_2
5731 , APPLIED_TO_SOURCE_ID_NUM_3
5732 , APPLIED_TO_SOURCE_ID_NUM_4
5733 , APPLIED_TO_SOURCE_ID_CHAR_1
5734 , APPLIED_TO_SOURCE_ID_CHAR_2
5735 , APPLIED_TO_SOURCE_ID_CHAR_3
5736 , APPLIED_TO_SOURCE_ID_CHAR_4
5737 , APPLIED_TO_DISTRIBUTION_TYPE
5738 , APPLIED_TO_DIST_ID_NUM_1
5739 , APPLIED_TO_DIST_ID_NUM_2
5740 , APPLIED_TO_DIST_ID_NUM_3
5741 , APPLIED_TO_DIST_ID_NUM_4
5742 , APPLIED_TO_DIST_ID_NUM_5
5743 , APPLIED_TO_DIST_ID_CHAR_1
5744 , APPLIED_TO_DIST_ID_CHAR_2
5745 , APPLIED_TO_DIST_ID_CHAR_3
5746 , APPLIED_TO_DIST_ID_CHAR_4
5747 , APPLIED_TO_DIST_ID_CHAR_5
5748 , alloc_to_application_id
5749 , alloc_to_entity_code
5750 , alloc_to_source_id_num_1
5751 , alloc_to_source_id_num_2
5752 , alloc_to_source_id_num_3
5753 , alloc_to_source_id_num_4
5754 , alloc_to_source_id_char_1
5755 , alloc_to_source_id_char_2
5756 , alloc_to_source_id_char_3
5757 , alloc_to_source_id_char_4
5758 , alloc_to_distribution_type
5759 , alloc_to_dist_id_char_1
5760 , alloc_to_dist_id_char_2
5761 , alloc_to_dist_id_char_3
5762 , alloc_to_dist_id_char_4
5763 , alloc_to_dist_id_char_5
5764 , alloc_to_dist_id_num_1
5765 , alloc_to_dist_id_num_2
5766 , alloc_to_dist_id_num_3
5767 , alloc_to_dist_id_num_4
5768 , alloc_to_dist_id_num_5
5769 ,TAX_LINE_REF_ID -- Bug 7159711
5770 ,TAX_SUMMARY_LINE_REF_ID -- Bug 7159711
5771 ,TAX_REC_NREC_DIST_REF_ID -- Bug 7159711
5772 ,analytical_balance_flag -- Bug 7382288
5773 FROM
5774 (SELECT /*+ leading(lgt) use_nl(xdl,ael,aeh) */
5775 -- populates ae_header_id which is same as event_id till this point
5776 lgt.event_id AE_HEADER_ID
5777 -- populates temp_line_num which is (-ve) of original line
5778 ,0 - xdl.temp_line_num TEMP_LINE_NUM
5779 -- populates event_id which is the event_id of event under process
5780 ,lgt.event_id EVENT_ID
5781 -- populates ref_ae_header_id which is ae_header_id of original line
5782 ,ael.ae_header_id REF_AE_HEADER_ID
5783 -- populates ref_ae_line_num which is ae_line_num of original line
5784 ,ael.ae_line_num REF_AE_LINE_NUM
5785 -- populates ref_temp_line_num which is ae_line_num of original line
5786 ,xdl.temp_line_num REF_TEMP_LINE_NUM
5787 -- populates ref_event_id which is event_id of original line
5788 ,xdl.event_id REF_EVENT_ID
5789 ,lgt.ledger_id LEDGER_ID
5790 ,aeh.balance_type_code BALANCE_TYPE_CODE
5791 ,ael.accounting_class_code ACCOUNTING_CLASS_CODE
5792 ,xdl.event_class_code EVENT_CLASS_CODE
5793 ,xdl.event_type_code EVENT_TYPE_CODE
5794 ,xdl.line_definition_owner_code LINE_DEFINITION_OWNER_CODE
5795 ,xdl.line_definition_code LINE_DEFINITION_CODE
5796 ,xdl.accounting_line_type_code ACCOUNTING_LINE_TYPE_CODE
5797 ,xdl.accounting_line_code ACCOUNTING_LINE_CODE
5798 ,C_CREATED CODE_COMBINATION_STATUS_CODE
5799 ,ael.code_combination_id CODE_COMBINATION_ID
5800 ,ael.description DESCRIPTION
5801 ,ael.gl_transfer_mode_code GL_TRANSFER_MODE_CODE
5802 ,xdl.merge_duplicate_code MERGE_DUPLICATE_CODE
5803 ,decode(ael.gain_or_loss_flag, 'Y', decode(xdl.calculate_g_l_amts_flag, 'Y', 'Y', 'N'), lgt.switch_side_flag)
5804 SWITCH_SIDE_FLAG
5805 -- 5055878 amounts modified for reversal method of SIDE or SIGN
5806 ,DECODE(lgt.switch_side_flag,'Y',xdl.unrounded_entered_cr, -xdl.unrounded_entered_dr) UNROUNDED_ENTERED_DR
5807 ,DECODE(lgt.switch_side_flag,'Y',xdl.unrounded_entered_dr, -xdl.unrounded_entered_cr) UNROUNDED_ENTERED_CR
5808 ,DECODE(lgt.switch_side_flag,'Y',xdl.unrounded_accounted_cr,-xdl.unrounded_accounted_dr) UNROUNDED_ACCOUNTED_DR
5809 ,DECODE(lgt.switch_side_flag,'Y',xdl.unrounded_accounted_dr,-xdl.unrounded_accounted_cr) UNROUNDED_ACCOUNTED_CR
5810 --
5811 ,xdl.calculate_acctd_amts_flag CALCULATE_ACCTD_AMTS_FLAG
5812 ,xdl.calculate_g_l_amts_flag CALCULATE_G_L_AMTS_FLAG
5813 ,ael.gain_or_loss_flag GAIN_OR_LOSS_FLAG
5814 ,xdl.rounding_class_code ROUNDING_CLASS_CODE
5815 ,xdl.document_rounding_level DOCUMENT_ROUNDING_LEVEL
5816 ,NULL DOC_ROUNDING_ACCTD_AMT
5817 ,NULL DOC_ROUNDING_ENTERED_AMT
5818 ,nvl(fcu.minimum_accountable_unit, power(10, -1*fcu.precision)) ENTERED_CURRENCY_MAU
5819 ,ael.currency_code CURRENCY_CODE
5820 ,ael.currency_conversion_date CURRENCY_CONVERSION_DATE
5821 ,ael.currency_conversion_rate CURRENCY_CONVERSION_RATE
5822 ,ael.currency_conversion_type CURRENCY_CONVERSION_TYPE
5823 ,ael.statistical_amount STATISTICAL_AMOUNT
5824 ,ael.party_id PARTY_ID
5825 ,ael.party_site_id PARTY_SITE_ID
5826 ,ael.party_type_code PARTY_TYPE_CODE
5827 ,ael.ussgl_transaction_code USSGL_TRANSACTION_CODE
5828 ,ael.jgzz_recon_ref JGZZ_RECON_REF
5829 ,lgt.source_distribution_id_char_1 SOURCE_DISTRIBUTION_ID_CHAR_1
5830 ,lgt.source_distribution_id_char_2 SOURCE_DISTRIBUTION_ID_CHAR_2
5831 ,lgt.source_distribution_id_char_3 SOURCE_DISTRIBUTION_ID_CHAR_3
5832 ,lgt.source_distribution_id_char_4 SOURCE_DISTRIBUTION_ID_CHAR_4
5833 ,lgt.source_distribution_id_char_5 SOURCE_DISTRIBUTION_ID_CHAR_5
5834 ,lgt.source_distribution_id_num_1 SOURCE_DISTRIBUTION_ID_NUM_1
5835 ,lgt.source_distribution_id_num_2 SOURCE_DISTRIBUTION_ID_NUM_2
5836 ,lgt.source_distribution_id_num_3 SOURCE_DISTRIBUTION_ID_NUM_3
5837 ,lgt.source_distribution_id_num_4 SOURCE_DISTRIBUTION_ID_NUM_4
5838 ,lgt.source_distribution_id_num_5 SOURCE_DISTRIBUTION_ID_NUM_5
5839 ,lgt.source_distribution_type SOURCE_DISTRIBUTION_TYPE
5840 ,lgt.reverse_dist_id_char_1 REVERSE_DIST_ID_CHAR_1
5841 ,lgt.reverse_dist_id_char_2 REVERSE_DIST_ID_CHAR_2
5842 ,lgt.reverse_dist_id_char_3 REVERSE_DIST_ID_CHAR_3
5843 ,lgt.reverse_dist_id_char_4 REVERSE_DIST_ID_CHAR_4
5844 ,lgt.reverse_dist_id_char_5 REVERSE_DIST_ID_CHAR_5
5845 ,lgt.reverse_dist_id_num_1 REVERSE_DIST_ID_NUM_1
5846 ,lgt.reverse_dist_id_num_2 REVERSE_DIST_ID_NUM_2
5847 ,lgt.reverse_dist_id_num_3 REVERSE_DIST_ID_NUM_3
5848 ,lgt.reverse_dist_id_num_4 REVERSE_DIST_ID_NUM_4
5849 ,lgt.reverse_dist_id_num_5 REVERSE_DIST_ID_NUM_5
5850 ,lgt.reverse_distribution_type REVERSE_DISTRIBUTION_TYPE
5851 -- populate reversal_code indicating that line is result of reversal
5852 ,'REVERSAL' REVERSAL_CODE
5853 -- denormalises entry status from headers to line to determine the status of entry being created
5854 -- populates 0 for a valid entry (F or D) else poulates 1
5855 ,DECODE(aeh.accounting_entry_status_code,'F',0,'D',0,1) ACCOUNTING_ENTRY_STATUS_CODE
5856 ,'N' INHERIT_DESC_FLAG
5857 -- 4669308 combine header with reversal of original entry
5858 ,0 HEADER_NUM
5859 ,ael.encumbrance_type_id ENCUMBRANCE_TYPE_ID
5860 ,'N' MPA_ACCRUAL_ENTRY_FLAG
5861 ,lgt.accounting_date ACCOUNTING_DATE
5862 -- original line. This is used to filter duplicate rows in the outer query.
5863 ,row_number() over
5864 (partition by xdl.ae_header_Id,xdl.temp_line_num
5865 order by lgt.event_number
5866 ) rn
5867 , xdl.APPLIED_TO_APPLICATION_ID APPLIED_TO_APPLICATION_ID
5868 , xdl.APPLIED_TO_ENTITY_CODE APPLIED_TO_ENTITY_CODE
5869 , xdl.APPLIED_TO_ENTITY_ID APPLIED_TO_ENTITY_ID
5870 , xdl.APPLIED_TO_SOURCE_ID_NUM_1 APPLIED_TO_SOURCE_ID_NUM_1
5871 , xdl.APPLIED_TO_SOURCE_ID_NUM_2 APPLIED_TO_SOURCE_ID_NUM_2
5872 , xdl.APPLIED_TO_SOURCE_ID_NUM_3 APPLIED_TO_SOURCE_ID_NUM_3
5873 , xdl.APPLIED_TO_SOURCE_ID_NUM_4 APPLIED_TO_SOURCE_ID_NUM_4
5874 , xdl.APPLIED_TO_SOURCE_ID_CHAR_1 APPLIED_TO_SOURCE_ID_CHAR_1
5875 , xdl.APPLIED_TO_SOURCE_ID_CHAR_2 APPLIED_TO_SOURCE_ID_CHAR_2
5876 , xdl.APPLIED_TO_SOURCE_ID_CHAR_3 APPLIED_TO_SOURCE_ID_CHAR_3
5877 , xdl.APPLIED_TO_SOURCE_ID_CHAR_4 APPLIED_TO_SOURCE_ID_CHAR_4
5878 , xdl.APPLIED_TO_DISTRIBUTION_TYPE APPLIED_TO_DISTRIBUTION_TYPE
5879 , xdl.APPLIED_TO_DIST_ID_NUM_1 APPLIED_TO_DIST_ID_NUM_1
5880 , xdl.APPLIED_TO_DIST_ID_NUM_2 APPLIED_TO_DIST_ID_NUM_2
5881 , xdl.APPLIED_TO_DIST_ID_NUM_3 APPLIED_TO_DIST_ID_NUM_3
5882 , xdl.APPLIED_TO_DIST_ID_NUM_4 APPLIED_TO_DIST_ID_NUM_4
5883 , xdl.APPLIED_TO_DIST_ID_NUM_5 APPLIED_TO_DIST_ID_NUM_5
5884 , xdl.APPLIED_TO_DIST_ID_CHAR_1 APPLIED_TO_DIST_ID_CHAR_1
5885 , xdl.APPLIED_TO_DIST_ID_CHAR_2 APPLIED_TO_DIST_ID_CHAR_2
5886 , xdl.APPLIED_TO_DIST_ID_CHAR_3 APPLIED_TO_DIST_ID_CHAR_3
5887 , xdl.APPLIED_TO_DIST_ID_CHAR_4 APPLIED_TO_DIST_ID_CHAR_4
5888 , xdl.APPLIED_TO_DIST_ID_CHAR_5 APPLIED_TO_DIST_ID_CHAR_5
5889 , xdl.alloc_to_application_id alloc_to_application_id
5890 , xdl.alloc_to_entity_code alloc_to_entity_code
5891 , xdl.alloc_to_source_id_num_1 alloc_to_source_id_num_1
5892 , xdl.alloc_to_source_id_num_2 alloc_to_source_id_num_2
5893 , xdl.alloc_to_source_id_num_3 alloc_to_source_id_num_3
5894 , xdl.alloc_to_source_id_num_4 alloc_to_source_id_num_4
5895 , xdl.alloc_to_source_id_char_1 alloc_to_source_id_char_1
5896 , xdl.alloc_to_source_id_char_2 alloc_to_source_id_char_2
5897 , xdl.alloc_to_source_id_char_3 alloc_to_source_id_char_3
5898 , xdl.alloc_to_source_id_char_4 alloc_to_source_id_char_4
5899 , xdl.alloc_to_distribution_type alloc_to_distribution_type
5900 , xdl.alloc_to_dist_id_char_1 alloc_to_dist_id_char_1
5901 , xdl.alloc_to_dist_id_char_2 alloc_to_dist_id_char_2
5902 , xdl.alloc_to_dist_id_char_3 alloc_to_dist_id_char_3
5903 , xdl.alloc_to_dist_id_char_4 alloc_to_dist_id_char_4
5904 , xdl.alloc_to_dist_id_char_5 alloc_to_dist_id_char_5
5905 , xdl.alloc_to_dist_id_num_1 alloc_to_dist_id_num_1
5906 , xdl.alloc_to_dist_id_num_2 alloc_to_dist_id_num_2
5907 , xdl.alloc_to_dist_id_num_3 alloc_to_dist_id_num_3
5908 , xdl.alloc_to_dist_id_num_4 alloc_to_dist_id_num_4
5909 , xdl.alloc_to_dist_id_num_5 alloc_to_dist_id_num_5
5910 ,nvl(lgt.tax_line_ref_id, xdl.tax_line_ref_id) TAX_LINE_REF_ID -- Bug 7159711
5911 ,nvl(lgt.tax_summary_line_ref_id, xdl.tax_summary_line_ref_id) TAX_SUMMARY_LINE_REF_ID -- Bug 7159711
5912 ,nvl(lgt.tax_rec_nrec_dist_ref_id, xdl.tax_rec_nrec_dist_ref_id) TAX_REC_NREC_DIST_REF_ID -- Bug 7159711
5913 ,decode(ael.analytical_balance_flag, 'Y','P',
5914 'P','Y',
5915 null) analytical_balance_flag -- Bug 7382288
5916 FROM
5917 xla_ae_lines_gt lgt
5918 ,xla_distribution_links xdl
5919 ,xla_ae_lines ael
5920 ,xla_ae_headers aeh
5921 ,fnd_currencies fcu
5922 ,xla_events evt
5923 WHERE lgt.reversal_code = 'DUMMY_LR'
5924 AND xdl.application_id = l_application_id
5925 AND xdl.source_distribution_type = lgt.reverse_distribution_type
5926 AND xdl.source_distribution_id_num_1 = nvl(lgt.reverse_dist_id_num_1,-99)
5927 AND nvl(xdl.source_distribution_id_num_2,-99) = nvl(lgt.reverse_dist_id_num_2,-99)
5928 AND nvl(xdl.source_distribution_id_num_3,-99) = nvl(lgt.reverse_dist_id_num_3,-99)
5929 AND nvl(xdl.source_distribution_id_num_4,-99) = nvl(lgt.reverse_dist_id_num_4,-99)
5930 AND nvl(xdl.source_distribution_id_num_5,-99) = nvl(lgt.reverse_dist_id_num_5,-99)
5931 AND nvl(xdl.source_distribution_id_char_1,' ') = nvl(lgt.reverse_dist_id_char_1,' ')
5932 AND nvl(xdl.source_distribution_id_char_2,' ') = nvl(lgt.reverse_dist_id_char_2,' ')
5933 AND nvl(xdl.source_distribution_id_char_3,' ') = nvl(lgt.reverse_dist_id_char_3,' ')
5934 AND nvl(xdl.source_distribution_id_char_4,' ') = nvl(lgt.reverse_dist_id_char_4,' ')
5935 AND nvl(xdl.source_distribution_id_char_5,' ') = nvl(lgt.reverse_dist_id_char_5,' ')
5936 -- lines that are due to reversals are not reversed again
5937 AND NVL(xdl.temp_line_num,0) >= 0
5938 AND aeh.application_id = xdl.application_id
5939 AND aeh.ae_header_id = xdl.ae_header_id
5940 AND aeh.ledger_id = lgt.ledger_id
5941 AND aeh.entity_id = lgt.entity_id
5942 AND ael.application_id = aeh.application_id
5943 AND ael.ae_header_id = aeh.ae_header_id
5944 AND ael.ae_line_num = xdl.ae_line_num
5945 AND fcu.currency_code = ael.currency_code
5946 -- lines that have been reversed before in previous run are not reversed again
5947 AND NOT EXISTS (
5948 SELECT /*+ no_unnest */ 1
5949 FROM xla_distribution_links
5950 WHERE ref_ae_header_id = xdl.ae_header_id
5951 AND temp_line_num = xdl.temp_line_num * -1
5952 AND application_id = xdl.application_id
5953 )
5954 AND evt.application_id = aeh.application_id
5955 AND evt.event_id = aeh.event_id
5956 AND NVL(evt.budgetary_control_flag,'N') = DECODE(p_accounting_mode
5957 ,'FUNDS_CHECK','Y'
5958 ,'FUNDS_RESERVE','Y'
5959 ,'N'
5960 )
5961 AND ((aeh.parent_ae_header_id IS NOT NULL AND aeh.accounting_entry_status_code = 'F') OR
5962 (aeh.parent_ae_header_id IS NULL)
5963 )
5964 )
5965 WHERE rn = 1
5966 );
5967
5968 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
5969 trace
5970 (p_msg => 'Line Reversal - Reversal lines created from xla_ae_lines = '||SQL%ROWCOUNT
5971 ,p_level => C_LEVEL_STATEMENT
5972 ,p_module => l_log_module);
5973 END IF;
5974
5975
5976 -- bug7135700 code change, case: reversal lines created for primary but not for secondary for same event.
5977 -- Note: This code may not, or may unnessecarily throw this warning for cash basis secondary legders also,
5978 -- that case has not been considered
5979
5980 l_upgrade_check := 0;
5981 xla_accounting_cache_pkg.GetLedgerArray(l_ledger_attrs);
5982
5983 FOR i in 1..l_ledger_attrs.array_ledger_id.COUNT
5984 LOOP
5985 IF l_ledger_attrs.array_ledger_type(i) = 'PRIMARY' THEN
5986 l_primary_ledger_id := l_ledger_attrs.array_ledger_id(i);
5987 END IF;
5988 END LOOP;
5989
5990
5991 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
5992 trace
5993 (p_msg => 'l_primary_ledger_id = '|| l_primary_ledger_id
5994 ,p_level => C_LEVEL_STATEMENT
5995 ,p_module => l_log_module);
5996 END IF;
5997
5998
5999 BEGIN
6000 SELECT 1
6001 INTO l_upgrade_check
6002 FROM DUAL
6003 WHERE EXISTS
6004 (SELECT 1
6005 FROM gl_ledger_relationships
6006 WHERE hist_conv_status_code = 'SUCCESSFUL'
6007 AND primary_ledger_id = l_primary_ledger_id
6008 AND relationship_enabled_flag = 'Y');
6009 EXCEPTION WHEN OTHERS THEN
6010 l_upgrade_check := 0;
6011 END;
6012
6013
6014 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6015 trace
6016 (p_msg => 'l_upgrade_check = '|| l_upgrade_check
6017 ,p_level => C_LEVEL_STATEMENT
6018 ,p_module => l_log_module);
6019 END IF;
6020
6021
6022 IF l_upgrade_check = 1 THEN
6023
6024 -- find the latest 'first ledger open period name' of all the secondary/alc ledgers
6025
6026 SELECT max(glp.start_date)
6027 INTO l_max_first_open_period
6028 FROM gl_period_statuses glp,
6029 gl_ledgers gl,
6030 gl_ledger_relationships glr
6031 WHERE glp.period_name = gl.first_ledger_period_name
6032 AND glp.ledger_id = gl.ledger_id
6033 AND glp.application_id = 101
6034 AND gl.ledger_id = glr.target_ledger_id
6035 AND glr.primary_ledger_id = l_primary_ledger_id
6036 AND glr.relationship_enabled_flag = 'Y'
6037 AND gl.ledger_category_code <> 'PRIMARY';
6038
6039
6040 -- find the reference event (upstream entry exists for primary but not alc/secondary) with the least accounting date
6041
6042
6043 SELECT min(xla_ae_headers.accounting_date)
6044 INTO l_min_ref_event_date
6045 FROM xla_ae_lines_gt gt1, xla_ae_headers
6046 WHERE gt1.reversal_code = 'REVERSAL'
6047 AND gt1.ref_event_id = xla_ae_headers.event_id;
6048
6049
6050 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6051 trace
6052 (p_msg => 'l_max_first_open_period = '|| l_max_first_open_period
6053 ,p_level => C_LEVEL_STATEMENT
6054 ,p_module => l_log_module);
6055 END IF;
6056
6057
6058 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6059 trace
6060 (p_msg => 'l_min_ref_event_date = '|| l_min_ref_event_date
6061 ,p_level => C_LEVEL_STATEMENT
6062 ,p_module => l_log_module);
6063 END IF;
6064
6065
6066 END IF; --l_upgrade_check if end
6067
6068
6069 IF l_upgrade_check = 1 AND l_min_ref_event_date <= l_max_first_open_period THEN
6070
6071
6072 print_logfile('***************************************************************************************************');
6073 print_logfile('The following REVERSAL (LR) events do not have historic entries replicated in secondary/alc ledgers');
6074 print_logfile('Manual GL adjustments in the secondary/alc ledgers needs to be done for these events');
6075
6076
6077 FOR c_not_reversed_entries IN
6078 (SELECT DISTINCT gt1.event_id, gt1.ledger_id
6079 FROM xla_ae_lines_gt gt1, gl_ledgers gll
6080 WHERE gt1.reversal_code = 'DUMMY_LR'
6081 AND gll.ledger_id = gt1.ledger_id
6082 AND gll.ledger_category_code <> 'PRIMARY'
6083 AND NOT EXISTS (SELECT 1
6084 FROM xla_ae_lines_gt gt2
6085 WHERE gt2.reversal_code = 'REVERSAL'
6086 AND gt1.event_id = gt2.event_id
6087 AND gt1.ledger_id = gt2.ledger_id)
6088 AND EXISTS (SELECT 1
6089 FROM xla_ae_lines_gt gt3
6090 WHERE gt3.reversal_code = 'REVERSAL'
6091 AND gt1.event_id = gt3.event_id))
6092
6093 LOOP
6094 --IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6095 -- trace
6096 -- (p_msg => 'WARNING - Reversal (LR) lines could not be created for event ' || c_not_reversed_entries.event_id || ' of ledger ' || c_not_reversed_entries.ledger_id || '. Please create Manual Adjustment Entries.'
6097 -- ,p_level => C_LEVEL_STATEMENT
6098 -- ,p_module => l_log_module);
6099 --END IF;
6100 print_logfile('Event ' || c_not_reversed_entries.event_id || ' of ledger ' || c_not_reversed_entries.ledger_id);
6101 l_error_count := l_error_count + 1;
6102 END LOOP;
6103
6104 IF l_error_count > 0 THEN
6105 g_hist_reversal_error_exists := TRUE;
6106 END IF;
6107
6108 IF l_error_count = 0 THEN
6109 print_logfile(' NO SUCH ENTRIES');
6110 END IF;
6111
6112 print_logfile('***************************************************************************************************');
6113
6114 END IF;
6115
6116
6117 -- bug7135700 code change end;
6118
6119
6120
6121
6122 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6123 trace
6124 (p_msg => 'Performing transaction level accounting reversal'
6125 ,p_level => C_LEVEL_STATEMENT
6126 ,p_module => l_log_module);
6127 END IF;
6128
6129
6130 --***************************************************************************************************************
6131 --***************************************************************************************************************
6132 --************* T R A N S A C T I O N R E V E R S A L ************************************************
6133 --***************************************************************************************************************
6134 --***************************************************************************************************************
6135
6136 --
6137 -- selecting all the dummy lines from xla_ae_lines_gt that are due to
6138 -- transaction level reversal option
6139 --
6140 SELECT event_id
6141 ,ledger_id
6142 ,event_number
6143 ,entity_id
6144 ,source_distribution_type
6145 ,source_distribution_id_num_1
6146 ,source_distribution_id_num_2
6147 ,source_distribution_id_num_3
6148 ,source_distribution_id_num_4
6149 ,source_distribution_id_num_5
6150 ,source_distribution_id_char_1
6151 ,source_distribution_id_char_2
6152 ,source_distribution_id_char_3
6153 ,source_distribution_id_char_4
6154 ,source_distribution_id_char_5
6155 ,switch_side_flag -- 5055878
6156 ,accounting_date -- 5189664
6157 ,tax_line_ref_id -- 7226263
6158 ,tax_summary_line_ref_id -- 7226263
6159 ,tax_rec_nrec_dist_ref_id -- 7226263
6160 BULK COLLECT INTO
6161 l_array_event_id
6162 ,l_array_ledger_id
6163 ,l_array_event_number
6164 ,l_array_entity_id
6165 ,l_array_source_dist_type
6166 ,l_array_source_dist_id_num_1
6167 ,l_array_source_dist_id_num_2
6168 ,l_array_source_dist_id_num_3
6169 ,l_array_source_dist_id_num_4
6170 ,l_array_source_dist_id_num_5
6171 ,l_array_source_dist_id_char_1
6172 ,l_array_source_dist_id_char_2
6173 ,l_array_source_dist_id_char_3
6174 ,l_array_source_dist_id_char_4
6175 ,l_array_source_dist_id_char_5
6176 ,l_array_switch_side_flag -- 5055878
6177 ,l_array_gl_date -- 5189664
6178 ,l_array_tax_line_ref -- 7226263
6179 ,l_array_tax_summary_line_ref -- 7226263
6180 ,l_array_tax_rec_nrec_dist_ref -- 7226263
6181 FROM xla_ae_lines_gt
6182 WHERE reversal_code = 'DUMMY_TR'
6183 ORDER by entity_id, event_number;
6184
6185 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6186 trace
6187 (p_msg => 'Transaction Revesal - Events with reversal options set to Y = '||SQL%ROWCOUNT
6188 ,p_level => C_LEVEL_STATEMENT
6189 ,p_module => l_log_module);
6190 END IF;
6191
6192 --=======================================================================================================
6193 -- 4669308 Delete the MPA/Accrual Transaction Reversal (still in GT tables, not in distribution links yet)
6194 --=======================================================================================================
6195 --
6196 ---------------------------------------------------------------------------------------------------------
6197 -- 4669308 Delete the MPA/Accrual Transaction Reversal in xla_ae_lines_gt (not in distribution links yet)
6198 ---------------------------------------------------------------------------------------------------------
6199 --
6200 IF xla_accounting_pkg.g_mpa_accrual_exists = 'Y' THEN -- 5412560
6201 FORALL i IN 1..l_array_entity_id.count
6202 DELETE xla_ae_lines_gt lgt
6203 WHERE l_array_ledger_id(i) = lgt.ledger_id
6204 AND lgt.reversal_code IS NULL -- the lines created from reversal are not reversed again
6205 AND NOT EXISTS ( -- the lines already reversed are not reversed again
6206 SELECT 1
6207 FROM xla_ae_lines_gt
6208 WHERE ledger_id = lgt.ledger_id
6209 AND ref_ae_header_id = lgt.ae_header_id -- 5499367 lgt.ref_ae_header_id
6210 AND temp_line_num = lgt.temp_line_num * -1
6211 )
6212 AND NVL(lgt.header_num,0) > 0
6213 AND lgt.header_num IN
6214 (SELECT hgt.header_num
6215 FROM xla_ae_headers_gt hgt
6216 WHERE hgt.entity_id = l_array_entity_id(i)
6217 AND hgt.ledger_id = l_array_ledger_id(i)
6218 AND hgt.event_number < l_array_event_number(i)
6219 AND lgt.event_id = hgt.event_id
6220 AND lgt.ledger_id = hgt.ledger_id
6221 AND lgt.balance_type_code = hgt.balance_type_code
6222 AND lgt.header_num = hgt.header_num)
6223 ;
6224 --
6225 ---------------------------------------------------------------------------------------------------------
6226 -- 4669308 Delete the MPA/Accrual Transaction Reversal in xla_ae_headers_gt (not in distribution links yet)
6227 ---------------------------------------------------------------------------------------------------------
6228 --
6229 FORALL i IN 1..l_array_entity_id.count
6230 DELETE xla_ae_headers_gt hgt
6231 WHERE hgt.ledger_id = l_array_ledger_id(i)
6232 AND hgt.entity_id = l_array_entity_id(i)
6233 AND hgt.event_number < l_array_event_number(i)
6234 AND NVL(hgt.header_num,0) > 0
6235 ;
6236 END IF;
6237 ---------------------------------------------------------------------------------------------------------
6238
6239
6240 --
6241 -- reverse the lines in xla_ae_lines_gt table (not in distribution links yet)
6242 --
6243 FORALL i IN 1..l_array_event_id.count
6244 INSERT INTO xla_ae_lines_gt
6245 (ae_header_id
6246 ,temp_line_num
6247 ,event_id
6248 ,ref_ae_header_id
6249 ,ref_ae_line_num
6250 ,ref_temp_line_num
6251 ,ref_event_id
6252 ,ledger_id
6253 ,balance_type_code
6254 ,accounting_class_code
6255 ,event_class_code
6256 ,event_type_code
6257 ,line_definition_owner_code
6258 ,line_definition_code
6259 ,accounting_line_type_code
6260 ,accounting_line_code
6261 ,code_combination_status_code
6262 ,code_combination_id
6263 ,sl_coa_mapping_name
6264 ,dynamic_insert_flag
6265 ,source_coa_id
6266 ,ccid_coa_id
6267 ,segment1
6268 ,segment2
6269 ,segment3
6270 ,segment4
6271 ,segment5
6272 ,segment6
6273 ,segment7
6274 ,segment8
6275 ,segment9
6276 ,segment10
6277 ,segment11
6278 ,segment12
6279 ,segment13
6280 ,segment14
6281 ,segment15
6282 ,segment16
6283 ,segment17
6284 ,segment18
6285 ,segment19
6286 ,segment20
6287 ,segment21
6288 ,segment22
6289 ,segment23
6290 ,segment24
6291 ,segment25
6292 ,segment26
6293 ,segment27
6294 ,segment28
6295 ,segment29
6296 ,segment30
6297 , calculate_acctd_amts_flag
6298 , calculate_g_l_amts_flag
6299 , gain_or_loss_flag
6300 , rounding_class_code
6301 , document_rounding_level
6302 , doc_rounding_acctd_amt
6303 , doc_rounding_entered_amt
6304 ,alt_ccid_status_code
6305 ,alt_code_combination_id
6306 ,alt_segment1
6307 ,alt_segment2
6308 ,alt_segment3
6309 ,alt_segment4
6310 ,alt_segment5
6311 ,alt_segment6
6312 ,alt_segment7
6313 ,alt_segment8
6314 ,alt_segment9
6315 ,alt_segment10
6316 ,alt_segment11
6317 ,alt_segment12
6318 ,alt_segment13
6319 ,alt_segment14
6320 ,alt_segment15
6321 ,alt_segment16
6322 ,alt_segment17
6323 ,alt_segment18
6324 ,alt_segment19
6325 ,alt_segment20
6326 ,alt_segment21
6327 ,alt_segment22
6328 ,alt_segment23
6329 ,alt_segment24
6330 ,alt_segment25
6331 ,alt_segment26
6332 ,alt_segment27
6333 ,alt_segment28
6334 ,alt_segment29
6335 ,alt_segment30
6336 ,description
6337 ,gl_transfer_mode_code
6338 ,merge_duplicate_code
6339 ,switch_side_flag
6340 -- ,entered_amount
6341 -- ,ledger_amount
6342 ,unrounded_entered_dr
6343 ,unrounded_entered_cr
6344 ,unrounded_accounted_dr
6345 ,unrounded_accounted_cr
6346 ,entered_currency_mau
6347 ,currency_code
6348 ,currency_conversion_date
6349 ,currency_conversion_rate
6350 ,currency_conversion_type
6351 ,statistical_amount
6352 ,party_id
6353 ,party_site_id
6354 ,party_type_code
6355 ,ussgl_transaction_code
6356 ,jgzz_recon_ref
6357 ,source_distribution_id_char_1
6358 ,source_distribution_id_char_2
6359 ,source_distribution_id_char_3
6360 ,source_distribution_id_char_4
6361 ,source_distribution_id_char_5
6362 ,source_distribution_id_num_1
6363 ,source_distribution_id_num_2
6364 ,source_distribution_id_num_3
6365 ,source_distribution_id_num_4
6366 ,source_distribution_id_num_5
6367 ,source_distribution_type
6368 ,reverse_dist_id_char_1
6369 ,reverse_dist_id_char_2
6370 ,reverse_dist_id_char_3
6371 ,reverse_dist_id_char_4
6372 ,reverse_dist_id_char_5
6373 ,reverse_dist_id_num_1
6374 ,reverse_dist_id_num_2
6375 ,reverse_dist_id_num_3
6376 ,reverse_dist_id_num_4
6377 ,reverse_dist_id_num_5
6378 ,reverse_distribution_type
6379 ,tax_line_ref_id
6380 ,tax_summary_line_ref_id
6381 ,tax_rec_nrec_dist_ref_id
6382 -- 4262811
6383 ,header_num
6384 ,mpa_accrual_entry_flag
6385 ,multiperiod_option_flag
6386 ,multiperiod_start_date
6387 ,multiperiod_end_date
6388 --,deferred_indicator
6389 --,deferred_start_date
6390 --,deferred_end_date
6391 --,deferred_no_period
6392 --,deferred_period_type
6393 ,reversal_code
6394 ,accounting_entry_status_code
6395 ,encumbrance_type_id -- 4458381
6396 ,inherit_desc_flag -- 4219869
6397 ,accounting_date
6398 , BFLOW_APPLICATION_ID
6399 , BFLOW_ENTITY_CODE
6400 , APPLIED_TO_ENTITY_ID
6401 , BFLOW_SOURCE_ID_NUM_1
6402 , BFLOW_SOURCE_ID_NUM_2
6403 , BFLOW_SOURCE_ID_NUM_3
6404 , BFLOW_SOURCE_ID_NUM_4
6405 , BFLOW_SOURCE_ID_CHAR_1
6406 , BFLOW_SOURCE_ID_CHAR_2
6407 , BFLOW_SOURCE_ID_CHAR_3
6408 , BFLOW_SOURCE_ID_CHAR_4
6409 , BFLOW_DISTRIBUTION_TYPE
6410 , BFLOW_DIST_ID_NUM_1
6411 , BFLOW_DIST_ID_NUM_2
6412 , BFLOW_DIST_ID_NUM_3
6413 , BFLOW_DIST_ID_NUM_4
6414 , BFLOW_DIST_ID_NUM_5
6415 , BFLOW_DIST_ID_CHAR_1
6416 , BFLOW_DIST_ID_CHAR_2
6417 , BFLOW_DIST_ID_CHAR_3
6418 , BFLOW_DIST_ID_CHAR_4
6419 , BFLOW_DIST_ID_CHAR_5
6420 , alloc_to_application_id
6421 , alloc_to_entity_code
6422 , alloc_to_source_id_num_1
6423 , alloc_to_source_id_num_2
6424 , alloc_to_source_id_num_3
6425 , alloc_to_source_id_num_4
6426 , alloc_to_source_id_char_1
6427 , alloc_to_source_id_char_2
6428 , alloc_to_source_id_char_3
6429 , alloc_to_source_id_char_4
6430 , alloc_to_distribution_type
6431 , alloc_to_dist_id_char_1
6432 , alloc_to_dist_id_char_2
6433 , alloc_to_dist_id_char_3
6434 , alloc_to_dist_id_char_4
6435 , alloc_to_dist_id_char_5
6436 , alloc_to_dist_id_num_1
6437 , alloc_to_dist_id_num_2
6438 , alloc_to_dist_id_num_3
6439 , alloc_to_dist_id_num_4
6440 , alloc_to_dist_id_num_5) -- 4955764
6441 SELECT
6442 -- populates ae_header_id which is same as event_id till this point
6443 l_array_event_id(i)
6444 -- populates temp_line_num which is (-ve) of original line
6445 ,0-lgt.temp_line_num
6446 -- populates event_id which is the event_id of event under process
6447 ,l_array_event_id(i)
6448 -- populates ref_ae_header_id which is ae_header_id of original line
6449 ,hgt.ae_header_id
6450 -- populates ref_ae_line_num which is ae_line_num of original line
6451 ,lgt.ae_line_num
6452 -- populates ref_temp_line_num which is ae_line_num of original line
6453 ,lgt.temp_line_num
6454 -- populates ref_event_id which is event_id of original line
6455 ,lgt.event_id
6456 ,lgt.ledger_id
6457 ,lgt.balance_type_code
6458 ,lgt.accounting_class_code
6459 ,lgt.event_class_code
6460 ,lgt.event_type_code
6461 ,lgt.line_definition_owner_code
6462 ,lgt.line_definition_code
6463 ,lgt.accounting_line_type_code
6464 ,lgt.accounting_line_code
6465 ,decode(lgt.gain_or_loss_flag, 'Y'
6466 ,decode(lgt.calculate_g_l_amts_flag,'Y'
6467 ,lgt.alt_ccid_status_code,lgt.code_combination_status_code)
6468 ,lgt.code_combination_status_code)
6469 CODE_COMBINATION_STATUS_CODE
6470 ,decode(lgt.gain_or_loss_flag, 'Y'
6471 ,decode(lgt.calculate_g_l_amts_flag,'Y'
6472 ,lgt.alt_code_combination_id, lgt.code_combination_id)
6473 , lgt.code_combination_id)
6474 CODE_COMBINATION_ID
6475 ,lgt.sl_coa_mapping_name
6476 ,lgt.dynamic_insert_flag
6477 ,lgt.source_coa_id
6478 ,lgt.ccid_coa_id
6479 ,decode(lgt.gain_or_loss_flag, 'Y'
6480 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment1,lgt.segment1)
6481 ,lgt.segment1) SEGMENT1
6482 ,decode(lgt.gain_or_loss_flag, 'Y'
6483 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment2,lgt.segment2)
6484 ,lgt.segment2) SEGMENT2
6485
6486 ,decode(lgt.gain_or_loss_flag, 'Y'
6487 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment3,lgt.segment3)
6488 ,lgt.segment3) SEGMENT3
6489
6490 ,decode(lgt.gain_or_loss_flag, 'Y'
6491 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment4,lgt.segment4)
6492 ,lgt.segment4) SEGMENT4
6493
6494 ,decode(lgt.gain_or_loss_flag, 'Y'
6495 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment5,lgt.segment5)
6496 ,lgt.segment5) SEGMENT5
6497
6498 ,decode(lgt.gain_or_loss_flag, 'Y'
6499 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment6,lgt.segment6)
6500 ,lgt.segment6) SEGMENT6
6501
6502 ,decode(lgt.gain_or_loss_flag, 'Y'
6503 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment7,lgt.segment7)
6504 ,lgt.segment7) SEGMENT7
6505
6506 ,decode(lgt.gain_or_loss_flag, 'Y'
6507 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment8,lgt.segment8)
6508 ,lgt.segment8) SEGMENT8
6509
6510 ,decode(lgt.gain_or_loss_flag, 'Y'
6511 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment9,lgt.segment9)
6512 ,lgt.segment9) SEGMENT9
6513
6514 ,decode(lgt.gain_or_loss_flag, 'Y'
6515 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment10,lgt.segment10)
6516 ,lgt.segment10) SEGMENT10
6517
6518 ,decode(lgt.gain_or_loss_flag, 'Y'
6519 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment11,lgt.segment11)
6520 ,lgt.segment11) SEGMENT11
6521
6522 ,decode(lgt.gain_or_loss_flag, 'Y'
6523 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment12,lgt.segment12)
6524 ,lgt.segment12) SEGMENT12
6525
6526 ,decode(lgt.gain_or_loss_flag, 'Y'
6527 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment13,lgt.segment13)
6528 ,lgt.segment13) SEGMENT13
6529
6530 ,decode(lgt.gain_or_loss_flag, 'Y'
6531 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment14,lgt.segment14)
6532 ,lgt.segment14) SEGMENT14
6533
6534 ,decode(lgt.gain_or_loss_flag, 'Y'
6535 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment15,lgt.segment15)
6536 ,lgt.segment15) SEGMENT15
6537
6538 ,decode(lgt.gain_or_loss_flag, 'Y'
6539 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment16,lgt.segment16)
6540 ,lgt.segment16) SEGMENT16
6541
6542 ,decode(lgt.gain_or_loss_flag, 'Y'
6543 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment17,lgt.segment17)
6544 ,lgt.segment17) SEGMENT17
6545
6546 ,decode(lgt.gain_or_loss_flag, 'Y'
6547 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment18,lgt.segment18)
6548 ,lgt.segment18) SEGMENT18
6549
6550 ,decode(lgt.gain_or_loss_flag, 'Y'
6551 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment19,lgt.segment19)
6552 ,lgt.segment19) SEGMENT19
6553
6554 ,decode(lgt.gain_or_loss_flag, 'Y'
6555 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment20,lgt.segment20)
6556 ,lgt.segment20) SEGMENT20
6557
6558 ,decode(lgt.gain_or_loss_flag, 'Y'
6559 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment21,lgt.segment21)
6560 ,lgt.segment21) SEGMENT21
6561
6562 ,decode(lgt.gain_or_loss_flag, 'Y'
6563 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment22,lgt.segment22)
6564 ,lgt.segment22) SEGMENT22
6565
6566 ,decode(lgt.gain_or_loss_flag, 'Y'
6567 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment23,lgt.segment23)
6568 ,lgt.segment23) SEGMENT23
6569
6570 ,decode(lgt.gain_or_loss_flag, 'Y'
6571 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment24,lgt.segment24)
6572 ,lgt.segment24) SEGMENT24
6573
6574 ,decode(lgt.gain_or_loss_flag, 'Y'
6575 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment25,lgt.segment25)
6576 ,lgt.segment25) SEGMENT25
6577
6578 ,decode(lgt.gain_or_loss_flag, 'Y'
6579 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment26,lgt.segment26)
6580 ,lgt.segment26) SEGMENT26
6581
6582 ,decode(lgt.gain_or_loss_flag, 'Y'
6583 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment27,lgt.segment27)
6584 ,lgt.segment27) SEGMENT27
6585
6586 ,decode(lgt.gain_or_loss_flag, 'Y'
6587 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment28,lgt.segment28)
6588 ,lgt.segment28) SEGMENT28
6589
6590 ,decode(lgt.gain_or_loss_flag, 'Y'
6591 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment29,lgt.segment29)
6592 ,lgt.segment29) SEGMENT29
6593
6594 ,decode(lgt.gain_or_loss_flag, 'Y'
6595 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment30,lgt.segment30)
6596 ,lgt.segment30) SEGMENT30
6597 ,lgt.calculate_acctd_amts_flag
6598 ,lgt.calculate_g_l_amts_flag
6599 ,lgt.gain_or_loss_flag
6600 ,lgt.rounding_class_code
6601 ,lgt.document_rounding_level
6602 ,lgt.doc_rounding_acctd_amt
6603 ,lgt.doc_rounding_entered_amt
6604 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.code_combination_status_code ,lgt.alt_ccid_status_code)
6605 ALT_CCID_STATUS_CODE
6606 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.code_combination_id ,lgt.alt_code_combination_id)
6607 ALT_CODE_COMBINATION_ID
6608 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment1,lgt.alt_segment1) ALT_SEGMENT1
6609 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment2,lgt.alt_segment2) ALT_SEGMENT2
6610 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment3,lgt.alt_segment3) ALT_SEGMENT3
6611 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment4,lgt.alt_segment4) ALT_SEGMENT4
6612 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment5,lgt.alt_segment5) ALT_SEGMENT5
6613 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment6,lgt.alt_segment6) ALT_SEGMENT6
6614 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment7,lgt.alt_segment7) ALT_SEGMENT7
6615 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment8,lgt.alt_segment8) ALT_SEGMENT8
6616 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment9,lgt.alt_segment9) ALT_SEGMENT9
6617 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment10,lgt.alt_segment10) ALT_SEGMENT10
6618 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment11,lgt.alt_segment11) ALT_SEGMENT11
6619 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment12,lgt.alt_segment12) ALT_SEGMENT12
6620 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment13,lgt.alt_segment13) ALT_SEGMENT13
6621 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment14,lgt.alt_segment14) ALT_SEGMENT14
6622 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment15,lgt.alt_segment15) ALT_SEGMENT15
6623 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment16,lgt.alt_segment16) ALT_SEGMENT16
6624 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment17,lgt.alt_segment17) ALT_SEGMENT17
6625 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment18,lgt.alt_segment18) ALT_SEGMENT18
6626 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment19,lgt.alt_segment19) ALT_SEGMENT19
6627 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment20,lgt.alt_segment20) ALT_SEGMENT20
6628 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment21,lgt.alt_segment21) ALT_SEGMENT21
6629 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment22,lgt.alt_segment22) ALT_SEGMENT22
6630 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment23,lgt.alt_segment23) ALT_SEGMENT23
6631 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment24,lgt.alt_segment24) ALT_SEGMENT24
6632 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment25,lgt.alt_segment25) ALT_SEGMENT25
6633 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment26,lgt.alt_segment26) ALT_SEGMENT26
6634 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment27,lgt.alt_segment27) ALT_SEGMENT27
6635 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment28,lgt.alt_segment28) ALT_SEGMENT28
6636 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment29,lgt.alt_segment29) ALT_SEGMENT29
6637 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment30,lgt.alt_segment30) ALT_SEGMENT30
6638 ,lgt.description
6639 ,lgt.gl_transfer_mode_code
6640 ,lgt.merge_duplicate_code
6641 ,decode(lgt.gain_or_loss_flag, 'Y', decode(lgt.calculate_g_l_amts_flag, 'Y', 'Y', 'N'), lgt.switch_side_flag) -- 5055878 lgt.switch_side_flag
6642 -- ,lgt.entered_amount
6643 -- ,lgt.ledger_amount
6644 -- 5055878 amounts modified for reversal method of SIDE or SIGN
6645 ,DECODE(l_array_switch_side_flag(i),'Y',lgt.unrounded_entered_cr, -lgt.unrounded_entered_dr)
6646 ,DECODE(l_array_switch_side_flag(i),'Y',lgt.unrounded_entered_dr, -lgt.unrounded_entered_cr)
6647 ,DECODE(l_array_switch_side_flag(i),'Y',lgt.unrounded_accounted_cr,-lgt.unrounded_accounted_dr)
6648 ,DECODE(l_array_switch_side_flag(i),'Y',lgt.unrounded_accounted_dr,-lgt.unrounded_accounted_cr)
6649 --
6650 /*
6651 ,DECODE(lgt.switch_side_flag
6652 ,C_NO_SWITCH, - lgt.entered_dr
6653 ,C_SWITCH, lgt.entered_cr
6654 )
6655 ,DECODE(lgt.switch_side_flag
6656 ,C_NO_SWITCH, - lgt.entered_cr
6657 ,C_SWITCH, lgt.entered_dr
6658 )
6659 ,DECODE(lgt.switch_side_flag
6660 ,C_NO_SWITCH, - lgt.unrounded_accounted_dr
6661 ,C_SWITCH,lgt.unrounded_accounted_cr
6662 )
6663 ,DECODE(lgt.switch_side_flag
6664 ,C_NO_SWITCH, - lgt.unrounded_accounted_cr
6665 ,C_SWITCH, lgt.unrounded_accounted_dr
6666 )
6667 */
6668 ,lgt.entered_currency_mau
6669 ,lgt.currency_code
6670 ,lgt.currency_conversion_date
6671 ,lgt.currency_conversion_rate
6672 ,lgt.currency_conversion_type
6673 ,lgt.statistical_amount
6674 ,lgt.party_id
6675 ,lgt.party_site_id
6676 ,lgt.party_type_code
6677 ,lgt.ussgl_transaction_code
6678 ,lgt.jgzz_recon_ref
6679 -- if there are no distributions for this event
6680 -- populate with the distribution if lines that is being reversed
6681 ,NVL(l_array_source_dist_id_char_1(i),lgt.source_distribution_id_char_1)
6682 ,NVL(l_array_source_dist_id_char_2(i),lgt.source_distribution_id_char_2)
6683 ,NVL(l_array_source_dist_id_char_3(i),lgt.source_distribution_id_char_3)
6684 ,NVL(l_array_source_dist_id_char_4(i),lgt.source_distribution_id_char_4)
6685 ,NVL(l_array_source_dist_id_char_5(i),lgt.source_distribution_id_char_5)
6686 ,NVL(l_array_source_dist_id_num_1(i),lgt.source_distribution_id_num_1)
6687 ,NVL(l_array_source_dist_id_num_2(i),lgt.source_distribution_id_num_2)
6688 ,NVL(l_array_source_dist_id_num_3(i),lgt.source_distribution_id_num_3)
6689 ,NVL(l_array_source_dist_id_num_4(i),lgt.source_distribution_id_num_4)
6690 ,NVL(l_array_source_dist_id_num_5(i),lgt.source_distribution_id_num_5)
6691 ,NVL(l_array_source_dist_type(i),lgt.source_distribution_type)
6692 -- populate reverse distibutions from original line
6693 ,lgt.source_distribution_id_char_1
6694 ,lgt.source_distribution_id_char_2
6695 ,lgt.source_distribution_id_char_3
6696 ,lgt.source_distribution_id_char_4
6697 ,lgt.source_distribution_id_char_5
6698 ,lgt.source_distribution_id_num_1
6699 ,lgt.source_distribution_id_num_2
6700 ,lgt.source_distribution_id_num_3
6701 ,lgt.source_distribution_id_num_4
6702 ,lgt.source_distribution_id_num_5
6703 ,lgt.source_distribution_type
6704 ,lgt.tax_line_ref_id
6705 ,lgt.tax_summary_line_ref_id
6706 ,lgt.tax_rec_nrec_dist_ref_id
6707 -- 4262811
6708 ,NVL(lgt.header_num,0) -- 4963422
6709 ,lgt.mpa_accrual_entry_flag
6710 ,lgt.multiperiod_option_flag
6711 ,lgt.multiperiod_start_date
6712 ,lgt.multiperiod_end_date
6713 --,lgt.deferred_indicator
6714 --,lgt.deferred_start_date
6715 --,lgt.deferred_end_date
6716 --,lgt.deferred_no_period
6717 --,lgt.deferred_period_type
6718 -- populate reversal_code to indicate that line is due to a reversal
6719 ,'REVERSAL'
6720 -- denormalize entry status to lines from header to decide on status of new entry
6721 ,hgt.accounting_entry_status_code
6722 ,lgt.encumbrance_type_id -- 4458381
6723 ,'N' -- lgt.inherit_desc_flag -- 4219869 Should it be from l_array
6724 ,l_array_gl_date(i) -- 5189664 hgt.accounting_date -- 4955764
6725 , lgt.BFLOW_APPLICATION_ID
6726 , lgt.BFLOW_ENTITY_CODE
6727 , lgt.APPLIED_TO_ENTITY_ID
6728 , lgt.BFLOW_SOURCE_ID_NUM_1
6729 , lgt.BFLOW_SOURCE_ID_NUM_2
6730 , lgt.BFLOW_SOURCE_ID_NUM_3
6731 , lgt.BFLOW_SOURCE_ID_NUM_4
6732 , lgt.BFLOW_SOURCE_ID_CHAR_1
6733 , lgt.BFLOW_SOURCE_ID_CHAR_2
6734 , lgt.BFLOW_SOURCE_ID_CHAR_3
6735 , lgt.BFLOW_SOURCE_ID_CHAR_4
6736 , lgt.BFLOW_DISTRIBUTION_TYPE
6737 , lgt.BFLOW_DIST_ID_NUM_1
6738 , lgt.BFLOW_DIST_ID_NUM_2
6739 , lgt.BFLOW_DIST_ID_NUM_3
6740 , lgt.BFLOW_DIST_ID_NUM_4
6741 , lgt.BFLOW_DIST_ID_NUM_5
6742 , lgt.BFLOW_DIST_ID_CHAR_1
6743 , lgt.BFLOW_DIST_ID_CHAR_2
6744 , lgt.BFLOW_DIST_ID_CHAR_3
6745 , lgt.BFLOW_DIST_ID_CHAR_4
6746 , lgt.BFLOW_DIST_ID_CHAR_5
6747 , lgt.alloc_to_application_id alloc_to_application_id
6748 , lgt.alloc_to_entity_code alloc_to_entity_code
6749 , lgt.alloc_to_source_id_num_1 alloc_to_source_id_num_1
6750 , lgt.alloc_to_source_id_num_2 alloc_to_source_id_num_2
6751 , lgt.alloc_to_source_id_num_3 alloc_to_source_id_num_3
6752 , lgt.alloc_to_source_id_num_4 alloc_to_source_id_num_4
6753 , lgt.alloc_to_source_id_char_1 alloc_to_source_id_char_1
6754 , lgt.alloc_to_source_id_char_2 alloc_to_source_id_char_2
6755 , lgt.alloc_to_source_id_char_3 alloc_to_source_id_char_3
6756 , lgt.alloc_to_source_id_char_4 alloc_to_source_id_char_4
6757 , lgt.alloc_to_distribution_type alloc_to_distribution_type
6758 , lgt.alloc_to_dist_id_char_1 alloc_to_dist_id_char_1
6759 , lgt.alloc_to_dist_id_char_2 alloc_to_dist_id_char_2
6760 , lgt.alloc_to_dist_id_char_3 alloc_to_dist_id_char_3
6761 , lgt.alloc_to_dist_id_char_4 alloc_to_dist_id_char_4
6762 , lgt.alloc_to_dist_id_char_5 alloc_to_dist_id_char_5
6763 , lgt.alloc_to_dist_id_num_1 alloc_to_dist_id_num_1
6764 , lgt.alloc_to_dist_id_num_2 alloc_to_dist_id_num_2
6765 , lgt.alloc_to_dist_id_num_3 alloc_to_dist_id_num_3
6766 , lgt.alloc_to_dist_id_num_4 alloc_to_dist_id_num_4
6767 , lgt.alloc_to_dist_id_num_5 alloc_to_dist_id_num_5
6768 FROM xla_ae_lines_gt lgt
6769 ,xla_ae_headers_gt hgt
6770 WHERE hgt.entity_id = l_array_entity_id(i)
6771 AND hgt.ledger_id = l_array_ledger_id(i)
6772 AND hgt.event_number < l_array_event_number(i)
6773 AND lgt.event_id = hgt.event_id
6774 AND lgt.ledger_id = hgt.ledger_id
6775 AND lgt.balance_type_code = hgt.balance_type_code
6776 -- lines that are reversal lines are not revrsed again
6777 AND lgt.reversal_code IS NULL
6778 -- lines that are reversed earlier are not reversed again
6779 AND NOT EXISTS (
6780 SELECT 1
6781 FROM xla_ae_lines_gt
6782 WHERE ledger_id = lgt.ledger_id
6783 AND ref_ae_header_id = lgt.ae_header_id -- 5499367 lgt.ref_ae_header_id
6784 AND temp_line_num = lgt.temp_line_num * -1
6785 )
6786 AND lgt.header_num = hgt.header_num -- 4262811c Transaction Reversal (not yet finalised)
6787 ;
6788
6789 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6790 trace
6791 (p_msg => 'Transaction Reversal - Reversal lines created from xla_ae_lines_gt = '||SQL%ROWCOUNT
6792 ,p_level => C_LEVEL_STATEMENT
6793 ,p_module => l_log_module);
6794 END IF;
6795
6796
6797 --------------------------------------------------------------------------------------------------------------
6798 -- 5108415 For Transaction Reversal, Store the incomplete MPA/AccRev entries to be used in DeleteIncompleteMPA
6799 --------------------------------------------------------------------------------------------------------------
6800 IF p_accounting_mode IN ('F','RESERVE_FUNDS') THEN
6801
6802 SELECT /*+ Leading(LGT,XET) use_nl(lgt xet aeh ael)*/ -- 5262950
6803 ael.ae_header_id
6804 ,ael.ae_line_num
6805 ,aeh.parent_ae_header_id
6806 BULK COLLECT INTO
6807 g_incomplete_mpa_acc_TR.l_array_ae_header_id
6808 ,g_incomplete_mpa_acc_TR.l_array_ae_line_num
6809 ,g_incomplete_mpa_acc_TR.l_array_parent_ae_header
6810 FROM
6811 xla_ae_lines_gt lgt
6812 ,xla_ae_lines ael
6813 ,xla_ae_headers aeh
6814 ,xla_events xet -- 5262950
6815 WHERE aeh.application_id = l_application_id
6816 AND lgt.reversal_code = 'DUMMY_TR'
6817 AND xet.application_id = l_application_id -- 5262950
6818 AND xet.entity_id = lgt.entity_id -- 5262950
6819 AND aeh.event_id = xet.event_id -- 5262950
6820 AND aeh.ledger_id = lgt.ledger_id
6821 AND aeh.entity_id = xet.entity_id -- 5262950 lgt.entity_id
6822 -- AND aeh.entity_id = lgt.entity_id
6823 AND ael.application_id = aeh.application_id -- 5262950
6824 AND ael.ae_header_id = aeh.ae_header_id -- 5262950
6825 AND aeh.parent_ae_header_id IS NOT NULL AND aeh.accounting_entry_status_code IN ('D','N','I','R','RELATED_EVENT_ERROR'); -- 5262950
6826
6827 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6828 trace
6829 (p_msg => 'Incomplete mpa_acc_TR count='||g_incomplete_mpa_acc_TR.l_array_ae_header_id.COUNT
6830 ,p_level => C_LEVEL_STATEMENT
6831 ,p_module => l_log_module);
6832 FOR i in 1..g_incomplete_mpa_acc_TR.l_array_ae_header_id.COUNT LOOP
6833 trace
6834 (p_msg => 'Incomplete mpa_acc_TR ae_header='||g_incomplete_mpa_acc_TR.l_array_ae_header_id(i)||
6835 ' ae_line='||g_incomplete_mpa_acc_TR.l_array_ae_line_num(i)||
6836 ' parent='||g_incomplete_mpa_acc_TR.l_array_parent_ae_header(i)
6837 ,p_level => C_LEVEL_STATEMENT
6838 ,p_module => l_log_module);
6839 END LOOP;
6840 END IF;
6841
6842 END IF;
6843
6844 --bug#6933157 24-Apr-2008
6845 -- To consider switch_side_flag depending on the ledger reversal option when gain_or_loss_flag is not
6846 -- equal to 'Y'. In the following insert below it was defaulted to 'N' due to which the merge_index
6847 -- was getting calculated differently, leading to receivable being debited with double the amount in case
6848 -- of receipt reversals on create accounting.
6849
6850 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE' THEN
6851 l_default_switch_side_flag := 'Y';
6852 ELSE
6853 l_default_switch_side_flag := 'N';
6854 END IF;
6855
6856 --end bug#6933157 24-Apr-2008
6857
6858 --
6859 ---------------------------------------------------------------------------------------------------------
6860 -- reverse the lines in xla_ae_lines table
6861 --
6862 -- Some for 4669308:
6863 -- For MPA entries, only reverse what is necessary , ie create reversal for Complete MPA only.
6864 -- Do not create reversal for incomplete entry (since it will get deleted anyway).
6865 -- Also, since the redundant lines will affect ROUNDING calculation.
6866 -- Need to create reversal in Draft mode also (so can be viewed).
6867 ---------------------------------------------------------------------------------------------------------
6868 --
6869 FORALL i IN 1..l_array_event_id.count
6870 INSERT INTO xla_ae_lines_gt
6871 (ae_header_id
6872 ,temp_line_num
6873 ,event_id
6874 ,ref_ae_header_id
6875 ,ref_ae_line_num
6876 ,ref_temp_line_num
6877 ,ref_event_id
6878 ,balance_type_code
6879 ,ledger_id
6880 ,accounting_class_code
6881 ,event_class_code
6882 ,event_type_code
6883 ,line_definition_owner_code
6884 ,line_definition_code
6885 ,accounting_line_type_code
6886 ,accounting_line_code
6887 ,code_combination_status_code
6888 ,code_combination_id
6889 ,alt_ccid_status_code
6890 ,alt_code_combination_id
6891 ,description
6892 ,gl_transfer_mode_code
6893 ,merge_duplicate_code
6894 ,switch_side_flag -- 5055878
6895 -- ,entered_amount
6896 -- ,ledger_amount
6897 ,unrounded_entered_dr
6898 ,unrounded_entered_cr
6899 ,unrounded_accounted_dr
6900 ,unrounded_accounted_cr
6901 ,calculate_acctd_amts_flag
6902 ,calculate_g_l_amts_flag
6903 ,gain_or_loss_flag
6904 ,rounding_class_code
6905 ,document_rounding_level
6906 ,doc_rounding_acctd_amt
6907 ,doc_rounding_entered_amt
6908 ,entered_currency_mau
6909 ,currency_code
6910 ,currency_conversion_date
6911 ,currency_conversion_rate
6912 ,currency_conversion_type
6913 ,statistical_amount
6914 ,party_id
6915 ,party_site_id
6916 ,party_type_code
6917 ,ussgl_transaction_code
6918 ,jgzz_recon_ref
6919 ,tax_line_ref_id -- bug 7159711
6920 ,tax_summary_line_ref_id -- bug 7159711
6921 ,tax_rec_nrec_dist_ref_id -- bug 7159711
6922 ,source_distribution_id_char_1
6923 ,source_distribution_id_char_2
6924 ,source_distribution_id_char_3
6925 ,source_distribution_id_char_4
6926 ,source_distribution_id_char_5
6927 ,source_distribution_id_num_1
6928 ,source_distribution_id_num_2
6929 ,source_distribution_id_num_3
6930 ,source_distribution_id_num_4
6931 ,source_distribution_id_num_5
6932 ,source_distribution_type
6933 ,reverse_dist_id_char_1
6934 ,reverse_dist_id_char_2
6935 ,reverse_dist_id_char_3
6936 ,reverse_dist_id_char_4
6937 ,reverse_dist_id_char_5
6938 ,reverse_dist_id_num_1
6939 ,reverse_dist_id_num_2
6940 ,reverse_dist_id_num_3
6941 ,reverse_dist_id_num_4
6942 ,reverse_dist_id_num_5
6943 ,reverse_distribution_type
6944 ,reversal_code
6945 ,accounting_entry_status_code
6946 ,encumbrance_type_id -- 4458381
6947 ,inherit_desc_flag -- 4219869
6948 ,header_num -- 4669308
6949 ,mpa_accrual_entry_flag -- 4262811
6950 ,accounting_date
6951 , BFLOW_APPLICATION_ID
6952 , BFLOW_ENTITY_CODE
6953 , APPLIED_TO_ENTITY_ID
6954 , BFLOW_SOURCE_ID_NUM_1
6955 , BFLOW_SOURCE_ID_NUM_2
6956 , BFLOW_SOURCE_ID_NUM_3
6957 , BFLOW_SOURCE_ID_NUM_4
6958 , BFLOW_SOURCE_ID_CHAR_1
6959 , BFLOW_SOURCE_ID_CHAR_2
6960 , BFLOW_SOURCE_ID_CHAR_3
6961 , BFLOW_SOURCE_ID_CHAR_4
6962 , BFLOW_DISTRIBUTION_TYPE
6963 , BFLOW_DIST_ID_NUM_1
6964 , BFLOW_DIST_ID_NUM_2
6965 , BFLOW_DIST_ID_NUM_3
6966 , BFLOW_DIST_ID_NUM_4
6967 , BFLOW_DIST_ID_NUM_5
6968 , BFLOW_DIST_ID_CHAR_1
6969 , BFLOW_DIST_ID_CHAR_2
6970 , BFLOW_DIST_ID_CHAR_3
6971 , BFLOW_DIST_ID_CHAR_4
6972 , BFLOW_DIST_ID_CHAR_5
6973 , alloc_to_application_id
6974 , alloc_to_entity_code
6975 , alloc_to_source_id_num_1
6976 , alloc_to_source_id_num_2
6977 , alloc_to_source_id_num_3
6978 , alloc_to_source_id_num_4
6979 , alloc_to_source_id_char_1
6980 , alloc_to_source_id_char_2
6981 , alloc_to_source_id_char_3
6982 , alloc_to_source_id_char_4
6983 , alloc_to_distribution_type
6984 , alloc_to_dist_id_char_1
6985 , alloc_to_dist_id_char_2
6986 , alloc_to_dist_id_char_3
6987 , alloc_to_dist_id_char_4
6988 , alloc_to_dist_id_char_5
6989 , alloc_to_dist_id_num_1
6990 , alloc_to_dist_id_num_2
6991 , alloc_to_dist_id_num_3
6992 , alloc_to_dist_id_num_4
6993 , alloc_to_dist_id_num_5) -- 4955764
6994 SELECT
6995 -- populates ae_header_id which is same as event_id till this point
6996 l_array_event_id(i)
6997 -- populates temp_line_num which is (-ve) of original line
6998 ,0 - xdl.temp_line_num
6999 -- populates event_id which is the event_id of event under process
7000 ,l_array_event_id(i)
7001 -- populates ref_ae_header_id which is ae_header_id of original line
7002 ,ael.ae_header_id
7003 -- populates ref_ae_line_num which is ae_line_num of original line
7004 ,ael.ae_line_num
7005 -- populates ref_temp_line_num which is ae_line_num of original line
7006 ,xdl.temp_line_num
7007 -- populates ref_event_id which is event_id of original line
7008 ,xdl.event_id
7009 ,aeh.balance_type_code
7010 ,l_array_ledger_id(i)
7011 ,ael.accounting_class_code
7012 ,xdl.event_class_code
7013 ,xdl.event_type_code
7014 ,xdl.line_definition_owner_code
7015 ,xdl.line_definition_code
7016 ,xdl.accounting_line_type_code
7017 ,xdl.accounting_line_code
7018 ,C_CREATED
7019 ,ael.code_combination_id
7020 ,C_CREATED
7021 ,ael.code_combination_id
7022 ,ael.description
7023 ,ael.gl_transfer_mode_code
7024 ,xdl.merge_duplicate_code
7025 --,decode(ael.gain_or_loss_flag, 'Y', decode(xdl.calculate_g_l_amts_flag, 'Y', 'Y', 'N'), 'N')
7026 -- 5055878 switch_side_flag
7027 -- 5055878 amounts modified for reversal method of SIDE or SIGN
7028 , decode(ael.gain_or_loss_flag, 'Y', decode(xdl.calculate_g_l_amts_flag, 'Y', 'Y', 'N'), l_default_switch_side_flag)
7029 --bug#6933157 24-Apr-2008
7030 ,DECODE(l_array_switch_side_flag(i),'Y',xdl.unrounded_entered_cr, -xdl.unrounded_entered_dr)
7031 ,DECODE(l_array_switch_side_flag(i),'Y',xdl.unrounded_entered_dr, -xdl.unrounded_entered_cr)
7032 ,DECODE(l_array_switch_side_flag(i),'Y',xdl.unrounded_accounted_cr,-xdl.unrounded_accounted_dr)
7033 ,DECODE(l_array_switch_side_flag(i),'Y',xdl.unrounded_accounted_dr,-xdl.unrounded_accounted_cr)
7034 --
7035 ,xdl.calculate_acctd_amts_flag
7036 ,xdl.calculate_g_l_amts_flag
7037 ,ael.gain_or_loss_flag
7038 ,xdl.rounding_class_code
7039 ,xdl.document_rounding_level
7040 ,NULL -- xdl.doc_rounding_acctd_amt 4669308 creates wrong ROUNDING line for MPA reversal
7041 ,NULL -- xdl.doc_rounding_entered_amt 4669308 creates wrong ROUNDING line for MPA reversal
7042 /*
7043 ,xdl.entered_amount
7044 ,xdl.ledger_amount
7045 -- populates entered_dr. amount should be equal to the entered amount in distribution links
7046 ,DECODE(ael.entered_cr,NULL,NULL,xdl.entered_amount)
7047 -- populates entered_cr. amount should be equal to the entered amount in distribution links
7048 ,DECODE(ael.entered_dr,NULL,NULL,xdl.entered_amount)
7049 -- populates accounted_dr. amount should be equal to the ledger amount in distribution links
7050 ,DECODE(ael.accounted_cr,NULL,NULL,xdl.ledger_amount)
7051 -- populates accounted_cr. amount should be equal to the ledger amount in distribution links
7052 ,DECODE(ael.accounted_dr,NULL,NULL,xdl.ledger_amount)
7053 */
7054 -- ,ael.entered_cr
7055 -- ,ael.entered_dr
7056 -- ,ael.accounted_cr
7057 -- ,ael.accounted_dr
7058 ,nvl(fcu.minimum_accountable_unit, power(10, -1* fcu.precision))
7059 ,ael.currency_code
7060 ,ael.currency_conversion_date
7061 ,ael.currency_conversion_rate
7062 ,ael.currency_conversion_type
7063 ,ael.statistical_amount
7064 ,ael.party_id
7065 ,ael.party_site_id
7066 ,ael.party_type_code
7067 ,ael.ussgl_transaction_code
7068 ,ael.jgzz_recon_ref
7069 -- if there are no distributions for this event
7070 -- populate with the distribution if lines that is being reversed
7071 ,NVL(l_array_tax_line_ref(i),xdl.tax_line_ref_id) -- bug7159711
7072 ,NVL(l_array_tax_summary_line_ref(i),xdl.tax_summary_line_ref_id) -- bug7159711
7073 ,NVL(l_array_tax_rec_nrec_dist_ref(i),xdl.tax_rec_nrec_dist_ref_id) -- bug7159711
7074 ,NVL(l_array_source_dist_id_char_1(i),xdl.source_distribution_id_char_1)
7075 ,NVL(l_array_source_dist_id_char_2(i),xdl.source_distribution_id_char_2)
7076 ,NVL(l_array_source_dist_id_char_3(i),xdl.source_distribution_id_char_3)
7077 ,NVL(l_array_source_dist_id_char_4(i),xdl.source_distribution_id_char_4)
7078 ,NVL(l_array_source_dist_id_char_5(i),xdl.source_distribution_id_char_5)
7079 ,NVL(l_array_source_dist_id_num_1(i),xdl.source_distribution_id_num_1)
7080 ,NVL(l_array_source_dist_id_num_2(i),xdl.source_distribution_id_num_2)
7081 ,NVL(l_array_source_dist_id_num_3(i),xdl.source_distribution_id_num_3)
7082 ,NVL(l_array_source_dist_id_num_4(i),xdl.source_distribution_id_num_4)
7083 ,NVL(l_array_source_dist_id_num_5(i),xdl.source_distribution_id_num_5)
7084 ,NVL(l_array_source_dist_type(i),xdl.source_distribution_type)
7085 ,xdl.source_distribution_id_char_1
7086 ,xdl.source_distribution_id_char_2
7087 ,xdl.source_distribution_id_char_3
7088 ,xdl.source_distribution_id_char_4
7089 ,xdl.source_distribution_id_char_5
7090 ,xdl.source_distribution_id_NUM_1
7091 ,xdl.source_distribution_id_NUM_2
7092 ,xdl.source_distribution_id_NUM_3
7093 ,xdl.source_distribution_id_NUM_4
7094 ,xdl.source_distribution_id_NUM_5
7095 ,xdl.source_distribution_type
7096 -- populate reversal_code indicating that line is result of reversal
7097 ,'REVERSAL'
7098 -- denormalises entry status from headers to line to determine the status of entry being created
7099 -- populates 0 for a valid entry (F or D) else poulates 1
7100 ,DECODE(aeh.accounting_entry_status_code,'F',0,'D',0,1)
7101 ,ael.encumbrance_type_id -- 4458381
7102 ,'N' -- 4219869 inherit_desc_flag Should it be from l_array?
7103 ,0 -- 4669308 combine header with reversal of original entry
7104 ,'N' -- 4262811 mpa_accrual_entry_flag
7105 ,l_array_gl_date(i) -- 5189664 aeh.accounting_date -- 4955764
7106 , xdl.APPLIED_TO_APPLICATION_ID APPLIED_TO_APPLICATION_ID
7107 , xdl.APPLIED_TO_ENTITY_CODE APPLIED_TO_ENTITY_CODE
7108 , xdl.APPLIED_TO_ENTITY_ID APPLIED_TO_ENTITY_ID
7109 , xdl.APPLIED_TO_SOURCE_ID_NUM_1 APPLIED_TO_SOURCE_ID_NUM_1
7110 , xdl.APPLIED_TO_SOURCE_ID_NUM_2 APPLIED_TO_SOURCE_ID_NUM_2
7111 , xdl.APPLIED_TO_SOURCE_ID_NUM_3 APPLIED_TO_SOURCE_ID_NUM_3
7112 , xdl.APPLIED_TO_SOURCE_ID_NUM_4 APPLIED_TO_SOURCE_ID_NUM_4
7113 , xdl.APPLIED_TO_SOURCE_ID_CHAR_1 APPLIED_TO_SOURCE_ID_CHAR_1
7114 , xdl.APPLIED_TO_SOURCE_ID_CHAR_2 APPLIED_TO_SOURCE_ID_CHAR_2
7115 , xdl.APPLIED_TO_SOURCE_ID_CHAR_3 APPLIED_TO_SOURCE_ID_CHAR_3
7116 , xdl.APPLIED_TO_SOURCE_ID_CHAR_4 APPLIED_TO_SOURCE_ID_CHAR_4
7117 , xdl.APPLIED_TO_DISTRIBUTION_TYPE APPLIED_TO_DISTRIBUTION_TYPE
7118 , xdl.APPLIED_TO_DIST_ID_NUM_1 APPLIED_TO_DIST_ID_NUM_1
7119 , xdl.APPLIED_TO_DIST_ID_NUM_2 APPLIED_TO_DIST_ID_NUM_2
7120 , xdl.APPLIED_TO_DIST_ID_NUM_3 APPLIED_TO_DIST_ID_NUM_3
7121 , xdl.APPLIED_TO_DIST_ID_NUM_4 APPLIED_TO_DIST_ID_NUM_4
7122 , xdl.APPLIED_TO_DIST_ID_NUM_5 APPLIED_TO_DIST_ID_NUM_5
7123 , xdl.APPLIED_TO_DIST_ID_CHAR_1 APPLIED_TO_DIST_ID_CHAR_1
7124 , xdl.APPLIED_TO_DIST_ID_CHAR_2 APPLIED_TO_DIST_ID_CHAR_2
7125 , xdl.APPLIED_TO_DIST_ID_CHAR_3 APPLIED_TO_DIST_ID_CHAR_3
7126 , xdl.APPLIED_TO_DIST_ID_CHAR_4 APPLIED_TO_DIST_ID_CHAR_4
7127 , xdl.APPLIED_TO_DIST_ID_CHAR_5 APPLIED_TO_DIST_ID_CHAR_5
7128 , xdl.alloc_to_application_id alloc_to_application_id
7129 , xdl.alloc_to_entity_code alloc_to_entity_code
7130 , xdl.alloc_to_source_id_num_1 alloc_to_source_id_num_1
7131 , xdl.alloc_to_source_id_num_2 alloc_to_source_id_num_2
7132 , xdl.alloc_to_source_id_num_3 alloc_to_source_id_num_3
7133 , xdl.alloc_to_source_id_num_4 alloc_to_source_id_num_4
7134 , xdl.alloc_to_source_id_char_1 alloc_to_source_id_char_1
7135 , xdl.alloc_to_source_id_char_2 alloc_to_source_id_char_2
7136 , xdl.alloc_to_source_id_char_3 alloc_to_source_id_char_3
7137 , xdl.alloc_to_source_id_char_4 alloc_to_source_id_char_4
7138 , xdl.alloc_to_distribution_type alloc_to_distribution_type
7139 , xdl.alloc_to_dist_id_char_1 alloc_to_dist_id_char_1
7140 , xdl.alloc_to_dist_id_char_2 alloc_to_dist_id_char_2
7141 , xdl.alloc_to_dist_id_char_3 alloc_to_dist_id_char_3
7142 , xdl.alloc_to_dist_id_char_4 alloc_to_dist_id_char_4
7143 , xdl.alloc_to_dist_id_char_5 alloc_to_dist_id_char_5
7144 , xdl.alloc_to_dist_id_num_1 alloc_to_dist_id_num_1
7145 , xdl.alloc_to_dist_id_num_2 alloc_to_dist_id_num_2
7146 , xdl.alloc_to_dist_id_num_3 alloc_to_dist_id_num_3
7147 , xdl.alloc_to_dist_id_num_4 alloc_to_dist_id_num_4
7148 , xdl.alloc_to_dist_id_num_5 alloc_to_dist_id_num_5
7149 FROM
7150 xla_ae_lines ael
7151 ,xla_ae_headers aeh
7152 ,xla_distribution_links xdl
7153 ,fnd_currencies fcu
7154 ,xla_events xe
7155 WHERE aeh.application_id = l_application_id
7156 AND aeh.ledger_id = l_array_ledger_id(i)
7157 AND aeh.entity_id = l_array_entity_id(i)
7158 -- AND aeh.event_number < l_array_event_number(i)
7159 AND xdl.application_id = aeh.application_id
7160 AND xdl.ae_header_id = aeh.ae_header_id -- 5499367
7161 -- AND xdl.ref_temp_line_num IS NULL -- 5019460 old
7162 AND NVL(xdl.temp_line_num,0) >= 0 -- 5019460 new
7163 AND ael.application_id = xdl.application_id
7164 AND ael.ae_header_id = xdl.ae_header_id -- 5499367
7165 AND ael.ae_line_num = xdl.ae_line_num
7166 AND ael.currency_code = fcu.currency_code
7167 AND NOT EXISTS (
7168 SELECT /*+ no_unnest */ 1
7169 FROM xla_distribution_links
7170 WHERE ref_ae_header_id = xdl.ae_header_id
7171 AND temp_line_num = xdl.temp_line_num * -1
7172 AND application_id = xdl.application_id
7173 )
7174 AND NOT EXISTS (
7175 SELECT /*+ no_unnest */ 1
7176 FROM xla_ae_lines_gt
7177 WHERE ref_ae_header_id = xdl.ae_header_id
7178 AND temp_line_num = xdl.temp_line_num * -1
7179 AND ledger_id = l_array_ledger_id(i)
7180 )
7181 AND xe.application_id = aeh.application_id
7182 AND xe.event_id = aeh.event_id
7183 AND NVL(xe.budgetary_control_flag,'N') = DECODE(p_accounting_mode
7184 ,'FUNDS_CHECK','Y'
7185 ,'FUNDS_RESERVE','Y'
7186 ,'N')
7187 AND ((aeh.parent_ae_header_id IS NOT NULL AND aeh.accounting_entry_status_code = 'F') OR -- 4669308
7188 (aeh.parent_ae_header_id IS NULL)) -- 4669308
7189 GROUP BY
7190 (0 - xdl.temp_line_num)
7191 ,ael.ae_header_id
7192 ,ael.ae_line_num
7193 ,xdl.temp_line_num
7194 ,xdl.event_id
7195 ,aeh.balance_type_code
7196 ,ael.accounting_class_code
7197 ,xdl.event_class_code
7198 ,xdl.event_type_code
7199 ,xdl.line_definition_owner_code
7200 ,xdl.line_definition_code
7201 ,xdl.accounting_line_type_code
7202 ,xdl.accounting_line_code
7203 ,xdl.unrounded_entered_cr
7204 ,xdl.unrounded_entered_dr
7205 ,xdl.unrounded_accounted_cr
7206 ,xdl.unrounded_accounted_dr
7207 ,xdl.calculate_acctd_amts_flag
7208 ,xdl.calculate_g_l_amts_flag
7209 ,ael.gain_or_loss_flag
7210 ,xdl.rounding_class_code
7211 ,xdl.document_rounding_level
7212 ,xdl.doc_rounding_acctd_amt
7213 ,xdl.doc_rounding_entered_amt
7214 ,ael.code_combination_id
7215 ,ael.description
7216 ,ael.gl_transfer_mode_code
7217 ,xdl.merge_duplicate_code
7218 -- ,ael.entered_cr
7219 -- ,ael.entered_dr
7220 -- ,ael.accounted_cr
7221 -- ,ael.accounted_dr
7222 ,nvl(fcu.minimum_accountable_unit, power(10, -1* fcu.precision))
7223 ,ael.currency_code
7224 ,ael.currency_conversion_date
7225 ,ael.currency_conversion_rate
7226 ,ael.currency_conversion_type
7227 ,ael.statistical_amount
7228 ,ael.party_id
7229 ,ael.party_site_id
7230 ,ael.party_type_code
7231 ,ael.ussgl_transaction_code
7232 ,ael.jgzz_recon_ref
7233 ,aeh.accounting_entry_status_code
7234 ,ael.encumbrance_type_id
7235 ,xdl.tax_line_ref_id -- bug7226263
7236 ,xdl.tax_summary_line_ref_id -- bug7226263
7237 ,xdl.tax_rec_nrec_dist_ref_id -- bug7226263
7238 ,xdl.source_distribution_id_char_1
7239 ,xdl.source_distribution_id_char_2
7240 ,xdl.source_distribution_id_char_3
7241 ,xdl.source_distribution_id_char_4
7242 ,xdl.source_distribution_id_char_5
7243 ,xdl.source_distribution_id_NUM_1
7244 ,xdl.source_distribution_id_NUM_2
7245 ,xdl.source_distribution_id_NUM_3
7246 ,xdl.source_distribution_id_NUM_4
7247 ,xdl.source_distribution_id_NUM_5
7248 ,xdl.source_distribution_type
7249 ,aeh.accounting_date
7250 , xdl.APPLIED_TO_APPLICATION_ID
7251 , xdl.APPLIED_TO_ENTITY_CODE
7252 , xdl.APPLIED_TO_ENTITY_ID
7253 , xdl.APPLIED_TO_SOURCE_ID_NUM_1
7254 , xdl.APPLIED_TO_SOURCE_ID_NUM_2
7255 , xdl.APPLIED_TO_SOURCE_ID_NUM_3
7256 , xdl.APPLIED_TO_SOURCE_ID_NUM_4
7257 , xdl.APPLIED_TO_SOURCE_ID_CHAR_1
7258 , xdl.APPLIED_TO_SOURCE_ID_CHAR_2
7259 , xdl.APPLIED_TO_SOURCE_ID_CHAR_3
7260 , xdl.APPLIED_TO_SOURCE_ID_CHAR_4
7261 , xdl.APPLIED_TO_DISTRIBUTION_TYPE
7262 , xdl.APPLIED_TO_DIST_ID_NUM_1
7263 , xdl.APPLIED_TO_DIST_ID_NUM_2
7264 , xdl.APPLIED_TO_DIST_ID_NUM_3
7265 , xdl.APPLIED_TO_DIST_ID_NUM_4
7266 , xdl.APPLIED_TO_DIST_ID_NUM_5
7267 , xdl.APPLIED_TO_DIST_ID_CHAR_1
7268 , xdl.APPLIED_TO_DIST_ID_CHAR_2
7269 , xdl.APPLIED_TO_DIST_ID_CHAR_3
7270 , xdl.APPLIED_TO_DIST_ID_CHAR_4
7271 , xdl.APPLIED_TO_DIST_ID_CHAR_5
7272 , xdl.alloc_to_application_id
7273 , xdl.alloc_to_entity_code
7274 , xdl.alloc_to_source_id_num_1
7275 , xdl.alloc_to_source_id_num_2
7276 , xdl.alloc_to_source_id_num_3
7277 , xdl.alloc_to_source_id_num_4
7278 , xdl.alloc_to_source_id_char_1
7279 , xdl.alloc_to_source_id_char_2
7280 , xdl.alloc_to_source_id_char_3
7281 , xdl.alloc_to_source_id_char_4
7282 , xdl.alloc_to_distribution_type
7283 , xdl.alloc_to_dist_id_char_1
7284 , xdl.alloc_to_dist_id_char_2
7285 , xdl.alloc_to_dist_id_char_3
7286 , xdl.alloc_to_dist_id_char_4
7287 , xdl.alloc_to_dist_id_char_5
7288 , xdl.alloc_to_dist_id_num_1
7289 , xdl.alloc_to_dist_id_num_2
7290 , xdl.alloc_to_dist_id_num_3
7291 , xdl.alloc_to_dist_id_num_4
7292 , xdl.alloc_to_dist_id_num_5
7293 ;
7294
7295 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7296 trace
7297 (p_msg => 'Transaction Reversal - Reversal lines created from xla_ae_lines = '||SQL%ROWCOUNT
7298 ,p_level => C_LEVEL_STATEMENT
7299 ,p_module => l_log_module);
7300 END IF;
7301
7302
7303
7304 -- bug7135700 code change, case: reversal lines created for primary but not for secondary for same event.
7305
7306 IF l_upgrade_check = 1 THEN
7307
7308 SELECT min(xla_ae_headers.accounting_date)
7309 INTO l_min_ref_event_date
7310 FROM xla_ae_lines_gt gt1, xla_ae_headers
7311 WHERE gt1.reversal_code = 'REVERSAL'
7312 AND gt1.ref_event_id = xla_ae_headers.event_id;
7313
7314 l_error_count := 0;
7315
7316
7317
7318 IF l_min_ref_event_date <= l_max_first_open_period THEN
7319
7320 print_logfile('***************************************************************************************************');
7321 print_logfile('The following REVERSAL (TR) events do not have historic entries replicated in secondary/alc ledgers');
7322 print_logfile('Manual GL adjustments in the secondary/alc ledgers needs to be done for these events');
7323
7324
7325 FOR c_not_reversed_entries IN
7326 (SELECT DISTINCT gt1.event_id, gt1.ledger_id
7327 FROM xla_ae_lines_gt gt1, gl_ledgers gll
7328 WHERE gt1.reversal_code = 'DUMMY_TR'
7329 AND gll.ledger_id = gt1.ledger_id
7330 AND gll.ledger_category_code <> 'PRIMARY'
7331 AND NOT EXISTS (SELECT 1
7332 FROM xla_ae_lines_gt gt2
7333 WHERE gt2.reversal_code = 'REVERSAL'
7334 AND gt1.event_id = gt2.event_id
7335 AND gt1.ledger_id = gt2.ledger_id)
7336 AND EXISTS (SELECT 1
7337 FROM xla_ae_lines_gt gt3
7338 WHERE gt3.reversal_code = 'REVERSAL'
7339 AND gt1.event_id = gt3.event_id))
7340
7341 LOOP
7342 --IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7343 -- trace
7344 -- (p_msg => 'WARNING - Reversal (TR) lines could not be created for event ' || c_not_reversed_entries.event_id || ' of ledger ' || c_not_reversed_entries.ledger_id || '. Please create Manual Adjustment Entries.'
7345 -- ,p_level => C_LEVEL_STATEMENT
7346 -- ,p_module => l_log_module);
7347 --END IF;
7348 print_logfile('Event ' || c_not_reversed_entries.event_id || ' of ledger ' || c_not_reversed_entries.ledger_id);
7349 l_error_count := l_error_count + 1;
7350 END LOOP;
7351
7352 IF l_error_count > 0 THEN
7353 g_hist_reversal_error_exists := TRUE;
7354 END IF;
7355
7356 IF l_error_count = 0 THEN
7357 print_logfile(' NO SUCH ENTRIES');
7358 END IF;
7359
7360 print_logfile('***************************************************************************************************');
7361
7362 END IF;
7363 END IF;
7364
7365 -- bug7135700 code change end
7366
7367
7368 --
7369 -- select all the reversal lines that do not have a header in xla_ae_headers_gt
7370 --
7371 SELECT event_id
7372 ,ledger_id
7373 ,balance_type_code
7374 ,max(accounting_entry_status_code)
7375 ,NVL(header_num,0) -- 4262811c missing mpa reversal lines, 4963422 set header_num to 0
7376 BULK COLLECT INTO
7377 l_array_event_id
7378 ,l_array_ledger_id
7379 ,l_array_balance_type_code
7380 ,l_array_entry_status_code
7381 ,l_array_header_num -- 4262811c missing mpa reversal lines
7382 FROM xla_ae_lines_gt lgt
7383 WHERE reversal_code = 'REVERSAL'
7384 AND NOT EXISTS
7385 (SELECT 1
7386 FROM xla_ae_headers_gt
7387 WHERE event_id = lgt.event_id
7388 AND ledger_id = lgt.ledger_id
7389 -- AND nvl(header_num, -1) = nvl(lgt.header_num, -1) -- 4262811c missing mpa reversal lines
7390 -- 4669308 NVL(-1) give separate headers for MPA
7391 -- also causing XLA_AE_LINES_U1 error
7392 AND nvl(header_num, 0) = nvl(lgt.header_num, 0) -- 4669308 NVL(0) combine replacement and MPA to 1 header
7393 AND balance_type_code = lgt.balance_type_code)
7394 GROUP BY event_id
7395 ,ledger_id
7396 ,header_num -- 4262811c missing mpa reversal lines
7397 ,balance_type_code;
7398
7399 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7400 trace
7401 (p_msg => 'Number of Headers that need to be created for reversal lines = '||SQL%ROWCOUNT
7402 ,p_level => C_LEVEL_STATEMENT
7403 ,p_module => l_log_module);
7404 END IF;
7405
7406 --
7407 -- inserting new rows in xla_ae_headers_gt for the reversal lines that did not have a header
7408 --
7409 FORALL I IN 1..l_array_event_id.count
7410 INSERT INTO xla_ae_headers_gt
7411 ( ae_header_id
7412 , accounting_entry_status_code
7413 , accounting_entry_type_code
7414 , ledger_id
7415 , entity_id
7416 , event_id
7417 , event_type_code
7418 , accounting_date
7419 , product_rule_type_code
7420 , product_rule_code
7421 , product_rule_version
7422 , je_category_name
7423 , period_name
7424 , doc_sequence_id
7425 , doc_sequence_value
7426 , description
7427 , budget_version_id
7428 --, encumbrance_type_id
7429 , balance_type_code
7430 , amb_context_code
7431 , doc_category_code
7432 , gl_transfer_status_code
7433 , event_status_code
7434 , header_num -- 4262811c MPA header for line reversal
7435 ,accrual_reversal_flag) -- 4262811
7436 (SELECT
7437 ae_header_id
7438 , l_array_entry_status_code(i)
7439 , accounting_entry_type_code
7440 , ledger_id
7441 , entity_id
7442 , event_id
7443 , event_type_code
7444 , accounting_date
7445 , product_rule_type_code
7446 , product_rule_code
7447 , product_rule_version
7448 , je_category_name
7449 , period_name
7450 , doc_sequence_id
7451 , doc_sequence_value
7452 , description
7453 , DECODE(l_array_balance_type_code(i),'B',budget_version_id,NULL) -- 4924492
7454 --, encumbrance_type_id
7455 , l_array_balance_type_code(i)
7456 , amb_context_code
7457 , doc_category_code
7458 , gl_transfer_status_code
7459 , decode(l_array_entry_status_code(i),XLA_AE_JOURNAL_ENTRY_PKG.C_VALID,'X','I')
7460 , l_array_header_num(i) -- 4262811c MPA header for line reversal
7461 , accrual_reversal_flag -- 4262811a
7462 FROM xla_ae_headers_gt
7463 WHERE event_id = l_array_event_id(i)
7464 AND ledger_id = l_array_ledger_id(i)
7465 AND balance_type_code = 'X'
7466 AND NVL(header_num,0) = 0); -- 5183946 xla_ae_headers_gt_u1 error
7467
7468
7469 IF (C_LEVEL_EVENT >= g_log_level) THEN
7470 trace
7471 (p_msg => 'Headers inserted in xla_ae_headers_gt = '||TO_CHAR(SQL%ROWCOUNT)
7472 ,p_level => C_LEVEL_EVENT
7473 ,p_module => l_log_module);
7474 END IF;
7475 --
7476
7477 -- bug 7253269 reversal error start
7478
7479 l_error_count := 0;
7480
7481 print_logfile('***************************************************************************************************');
7482 print_logfile('The following REVERSAL events could not be processed. The event/process status is U/U: ');
7483 print_logfile('Note: this warning may be ignored for any events whose ledger is a cash-basis ledger');
7484
7485
7486
7487 FOR c_not_reversed_entries IN
7488 (SELECT DISTINCT gt1.event_id, gt1.ledger_id
7489 FROM xla_ae_lines_gt gt1
7490 WHERE gt1.reversal_code IN ('DUMMY_LR', 'DUMMY_TR')
7491 AND NOT EXISTS (SELECT 1
7492 FROM xla_ae_lines_gt gt2
7493 WHERE gt2.reversal_code = 'REVERSAL'
7494 AND gt1.event_id = gt2.event_id
7495 AND gt1.ledger_id = gt2.ledger_id))
7496
7497
7498 LOOP
7499 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7500 trace
7501 (p_msg => 'EVENT not reversed ' || c_not_reversed_entries.event_id || ' of ledger ' || c_not_reversed_entries.ledger_id
7502 ,p_level => C_LEVEL_STATEMENT
7503 ,p_module => l_log_module);
7504 END IF;
7505 print_logfile('Event ' || c_not_reversed_entries.event_id || ' of ledger ' || c_not_reversed_entries.ledger_id);
7506 l_error_count := l_error_count + 1;
7507 END LOOP;
7508
7509 IF l_error_count > 0 THEN
7510 xla_accounting_cache_pkg.g_reversal_error := TRUE;
7511 END IF;
7512
7513 IF l_error_count = 0 THEN
7514 print_logfile('-------NO SUCH EVENTS-----------');
7515 IF (C_LEVEL_EVENT >= g_log_level) THEN
7516 trace
7517 (p_msg => 'No errors related to reversal'
7518 ,p_level => C_LEVEL_EVENT
7519 ,p_module => l_log_module);
7520 END IF;
7521 END IF;
7522
7523 print_logfile('***************************************************************************************************');
7524
7525
7526 -- bug 7253269 reversal error end
7527
7528
7529
7530 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7531 trace
7532 (p_msg => 'END of AccountingReversal'
7533 ,p_level => C_LEVEL_PROCEDURE
7534 ,p_module => l_log_module);
7535 END IF;
7536 EXCEPTION
7537 WHEN xla_exceptions_pkg.application_exception THEN
7538 RAISE;
7539 WHEN OTHERS THEN
7540 xla_exceptions_pkg.raise_message
7541 (p_location => 'xla_ae_lines_pkg.AccountingReversal');
7542 END AccountingReversal;
7543 --
7544 /*======================================================================+
7545 | |
7546 | PUBLIC Procedure |
7547 | |
7548 | |
7549 +======================================================================*/
7550 FUNCTION SetLineNum(
7551 p_balance_type_code IN VARCHAR2
7552 )
7553 RETURN NUMBER
7554 IS
7555 l_line_num NUMBER;
7556 l_log_module VARCHAR2(240);
7557 BEGIN
7558 --
7559 IF g_log_enabled THEN
7560 l_log_module := C_DEFAULT_MODULE||'.SetLineNum';
7561 END IF;
7562 --
7563 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7564
7565 trace
7566 (p_msg => 'BEGIN of SetLineNum'
7567 ,p_level => C_LEVEL_PROCEDURE
7568 ,p_module => l_log_module);
7569
7570 trace
7571 (p_msg => 'p_balance_type_code = '||p_balance_type_code
7572 ,p_level => C_LEVEL_PROCEDURE
7573 ,p_module => l_log_module);
7574 END IF;
7575 --
7576 CASE p_balance_type_code
7577 --
7578 WHEN C_ACTUAL THEN
7579 --
7580 g_ActualLineNum := NVL(g_ActualLineNum,0) + 1 ;
7581 l_line_num := g_ActualLineNum;
7582 --
7583 WHEN C_BUDGET THEN
7584 --
7585 g_BudgetLineNum := NVL(g_BudgetLineNum,0) + 1 ;
7586 l_line_num := g_BudgetLineNum;
7587 --
7588 WHEN C_ENCUMBRANCE THEN
7589 --
7590 g_EncumbLineNum := NVL(g_EncumbLineNum,0) + 1 ;
7591 l_line_num := g_EncumbLineNum;
7592 --
7593 ELSE null;
7594 --
7595 END CASE;
7596 --
7597 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7598 trace
7599 (p_msg => 'return value. = '||TO_CHAR(l_line_num)
7600 ,p_level => C_LEVEL_PROCEDURE
7601 ,p_module => l_log_module);
7602 trace
7603 (p_msg => 'END of SetLineNum'
7604 ,p_level => C_LEVEL_PROCEDURE
7605 ,p_module => l_log_module);
7606
7607 END IF;
7608
7609 RETURN l_line_num;
7610 EXCEPTION
7611 WHEN xla_exceptions_pkg.application_exception THEN
7612 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
7613 RAISE;
7614 WHEN OTHERS THEN
7615 xla_exceptions_pkg.raise_message
7616 (p_location => 'XLA_AE_LINES_PKG.SetLineNum');
7617 --
7618 END SetLineNum;
7619 --
7620 --
7621 /*======================================================================+
7622 | |
7623 | Public Procedure |
7624 | |
7625 | |
7626 +======================================================================*/
7627 PROCEDURE SetRevAccountingSource (
7628 p_accounting_source IN VARCHAR2
7629 , p_standard_source IN VARCHAR2
7630 , p_source_code IN VARCHAR2
7631 , p_source_type_code IN VARCHAR2
7632 , p_source_application_id IN NUMBER
7633 )
7634 IS
7635 l_log_module VARCHAR2(240);
7636 BEGIN
7637 --
7638 IF g_log_enabled THEN
7639 l_log_module := C_DEFAULT_MODULE||'.SetRevAccountingSource';
7640 END IF;
7641 --
7642 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7643 trace
7644 (p_msg => 'BEGIN of SetRevAccountingSource'
7645 ,p_level => C_LEVEL_PROCEDURE
7646 ,p_module => l_log_module);
7647
7648 trace
7649 (p_msg => 'p_accounting_source = '||p_accounting_source
7650 ,p_level => C_LEVEL_PROCEDURE
7651 ,p_module => l_log_module);
7652
7653 trace
7654 (p_msg => 'p_standard_source = '||p_standard_source
7655 ,p_level => C_LEVEL_PROCEDURE
7656 ,p_module => l_log_module);
7657 END IF;
7658
7659 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7660
7661 trace
7662 (p_msg => 'p_source_code = '||p_source_code
7663 ,p_level => C_LEVEL_STATEMENT
7664 ,p_module => l_log_module);
7665
7666 trace
7667 (p_msg => 'p_source_type_code = '||p_source_type_code
7668 ,p_level => C_LEVEL_STATEMENT
7669 ,p_module => l_log_module);
7670
7671 trace
7672 (p_msg => 'p_source_application_id = '||p_source_application_id
7673 ,p_level => C_LEVEL_STATEMENT
7674 ,p_module => l_log_module);
7675
7676 END IF;
7677 --
7678 CASE p_accounting_source
7679 --
7680 -- line accounting sources
7681 --
7682 WHEN 'PARTY_TYPE' THEN
7683
7684 g_reverse_lines.party_type_code := p_standard_source;
7685
7686 WHEN 'ENTERED_CURRENCY_CODE' THEN g_reverse_lines.currency_code := p_standard_source;
7687 --
7688 -- accounting reversal
7689 --
7690 WHEN 'ACCOUNTING_REVERSAL_OPTION' THEN g_reverse_lines.acc_reversal_option := p_standard_source;
7691 WHEN 'REVERSED_DISTRIBUTION_TYPE' THEN g_reverse_lines.sys_distribution_type := p_standard_source;
7692 WHEN 'DISTRIBUTION_TYPE' THEN g_reverse_lines.rev_sys_distribution_type := p_standard_source;
7693 WHEN 'REVERSED_DISTRIBUTION_ID1' THEN g_reverse_lines.distribution_id_char_1 := p_standard_source;
7694 WHEN 'REVERSED_DISTRIBUTION_ID2' THEN g_reverse_lines.distribution_id_char_2 := p_standard_source;
7695 WHEN 'REVERSED_DISTRIBUTION_ID3' THEN g_reverse_lines.distribution_id_char_3 := p_standard_source;
7696 WHEN 'REVERSED_DISTRIBUTION_ID4' THEN g_reverse_lines.distribution_id_char_4 := p_standard_source;
7697 WHEN 'REVERSED_DISTRIBUTION_ID5' THEN g_reverse_lines.distribution_id_char_5 := p_standard_source;
7698 --
7699 WHEN 'DISTRIBUTION_IDENTIFIER_1' THEN g_reverse_lines.rev_distrib_id_char_1 := p_standard_source;
7700 WHEN 'DISTRIBUTION_IDENTIFIER_2' THEN g_reverse_lines.rev_distrib_id_char_2 := p_standard_source;
7701 WHEN 'DISTRIBUTION_IDENTIFIER_3' THEN g_reverse_lines.rev_distrib_id_char_3 := p_standard_source;
7702 WHEN 'DISTRIBUTION_IDENTIFIER_4' THEN g_reverse_lines.rev_distrib_id_char_4 := p_standard_source;
7703 WHEN 'DISTRIBUTION_IDENTIFIER_5' THEN g_reverse_lines.rev_distrib_id_char_5 := p_standard_source;
7704 --
7705 -- line base currency accounting sources
7706 --
7707 WHEN 'EXCHANGE_RATE_TYPE' THEN g_reverse_lines.curr_conversion_type := p_standard_source;
7708 WHEN 'USSGL_TRANSACTION_CODE' THEN g_reverse_lines.ussgl_transaction := p_standard_source;
7709 WHEN 'RECON_REF' THEN g_reverse_lines.jgzz_recon_ref := p_standard_source;
7710
7711 ELSE null;
7712 --
7713 END CASE;
7714 --
7715 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7716
7717 trace
7718 (p_msg => 'END of SetRevAccountingSource'
7719 ,p_level => C_LEVEL_PROCEDURE
7720 ,p_module => l_log_module);
7721
7722 END IF;
7723 EXCEPTION
7724 WHEN xla_exceptions_pkg.application_exception THEN
7725 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
7726 RAISE;
7727 WHEN OTHERS THEN
7728 xla_exceptions_pkg.raise_message
7729 (p_location => 'XLA_AE_LINES_PKG.SetRevAccountingSource');
7730 --
7731 END SetRevAccountingSource;
7732 --
7733 --
7734 /*======================================================================+
7735 | |
7736 | Public Procedure |
7737 | |
7738 | |
7739 +======================================================================*/
7740 PROCEDURE SetRevAccountingSource (
7741 p_accounting_source IN VARCHAR2
7742 , p_standard_source IN NUMBER
7743 , p_source_code IN VARCHAR2
7744 , p_source_type_code IN VARCHAR2
7745 , p_source_application_id IN NUMBER
7746 )
7747 IS
7748 l_log_module VARCHAR2(240);
7749 BEGIN
7750 --
7751 IF g_log_enabled THEN
7752 l_log_module := C_DEFAULT_MODULE||'.SetRevAccountingSource';
7753 END IF;
7754 --
7755 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7756 trace
7757 (p_msg => 'BEGIN of SetRevAccountingSource'
7758 ,p_level => C_LEVEL_PROCEDURE
7759 ,p_module => l_log_module);
7760
7761 trace
7762 (p_msg => 'p_accounting_source = '||p_accounting_source
7763 ,p_level => C_LEVEL_PROCEDURE
7764 ,p_module => l_log_module);
7765
7766 trace
7767 (p_msg => 'p_standard_source = '||p_standard_source
7768 ,p_level => C_LEVEL_PROCEDURE
7769 ,p_module => l_log_module);
7770 END IF;
7771
7772 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7773
7774 trace
7775 (p_msg => 'p_source_code = '||p_source_code
7776 ,p_level => C_LEVEL_STATEMENT
7777 ,p_module => l_log_module);
7778
7779 trace
7780 (p_msg => 'p_source_type_code = '||p_source_type_code
7781 ,p_level => C_LEVEL_STATEMENT
7782 ,p_module => l_log_module);
7783
7784 trace
7785 (p_msg => 'p_source_application_id = '||p_source_application_id
7786 ,p_level => C_LEVEL_STATEMENT
7787 ,p_module => l_log_module);
7788
7789 END IF;
7790
7791 --
7792 CASE p_accounting_source
7793
7794 WHEN 'LEDGER_AMOUNT' THEN g_reverse_lines.ledger_amount := p_standard_source;
7795 WHEN 'EXCHANGE_RATE' THEN g_reverse_lines.curr_conversion_rate := p_standard_source;
7796 WHEN 'PARTY_ID' THEN g_reverse_lines.party_id := p_standard_source;
7797 WHEN 'PARTY_SITE_ID' THEN g_reverse_lines.party_site_id := p_standard_source;
7798 WHEN 'ENTERED_CURRENCY_AMOUNT' THEN g_reverse_lines.entered_amount := p_standard_source;
7799 WHEN 'STATISTICAL_AMOUNT' THEN g_reverse_lines.statistical_amount := p_standard_source;
7800
7801
7802 WHEN 'TAX_LINE_REF_ID' THEN g_reverse_lines.tax_line_ref := p_standard_source;
7803 WHEN 'TAX_SUMMARY_LINE_REF_ID' THEN g_reverse_lines.tax_summary_line_ref := p_standard_source;
7804 WHEN 'TAX_REC_NREC_DIST_REF_ID' THEN g_reverse_lines.tax_rec_nrec_dist_ref := p_standard_source;
7805 --
7806 WHEN 'REVERSED_DISTRIBUTION_ID1' THEN g_reverse_lines.distribution_id_num_1 := p_standard_source;
7807 WHEN 'REVERSED_DISTRIBUTION_ID2' THEN g_reverse_lines.distribution_id_num_2 := p_standard_source;
7808 WHEN 'REVERSED_DISTRIBUTION_ID3' THEN g_reverse_lines.distribution_id_num_3 := p_standard_source;
7809 WHEN 'REVERSED_DISTRIBUTION_ID4' THEN g_reverse_lines.distribution_id_num_4 := p_standard_source;
7810 WHEN 'REVERSED_DISTRIBUTION_ID5' THEN g_reverse_lines.distribution_id_num_5 := p_standard_source;
7811 --
7812 WHEN 'DISTRIBUTION_IDENTIFIER_1' THEN g_reverse_lines.rev_distrib_id_num_1 := p_standard_source;
7813 WHEN 'DISTRIBUTION_IDENTIFIER_2' THEN g_reverse_lines.rev_distrib_id_num_2 := p_standard_source;
7814 WHEN 'DISTRIBUTION_IDENTIFIER_3' THEN g_reverse_lines.rev_distrib_id_num_3 := p_standard_source;
7815 WHEN 'DISTRIBUTION_IDENTIFIER_4' THEN g_reverse_lines.rev_distrib_id_num_4 := p_standard_source;
7816 WHEN 'DISTRIBUTION_IDENTIFIER_5' THEN g_reverse_lines.rev_distrib_id_num_5 := p_standard_source;
7817 --
7818 WHEN 'REVERSED_UPGRADE_DEBIT_CCID' THEN g_reverse_lines.reversal_debit_ccid := p_standard_source;
7819 WHEN 'REVERSED_UPGRADE_CREDIT_CCID' THEN g_reverse_lines.reversal_credit_ccid := p_standard_source;
7820 --
7821 ELSE null;
7822 --
7823 END CASE;
7824 --
7825 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7826
7827 trace
7828 (p_msg => 'END of SetRevAccountingSource'
7829 ,p_level => C_LEVEL_PROCEDURE
7830 ,p_module => l_log_module);
7831
7832 END IF;
7833 --
7834 EXCEPTION
7835 WHEN xla_exceptions_pkg.application_exception THEN
7836 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
7837 RAISE;
7838 WHEN OTHERS THEN
7839 xla_exceptions_pkg.raise_message
7840 (p_location => 'XLA_AE_LINES_PKG.SetRevAccountingSource');
7841 --
7842 END SetRevAccountingSource;
7843 --
7844 /*======================================================================+
7845 | |
7846 | Public Procedure |
7847 | |
7848 | |
7849 +======================================================================*/
7850 PROCEDURE SetRevAccountingSource (
7851 p_accounting_source IN VARCHAR2
7852 , p_standard_source IN DATE
7853 , p_source_code IN VARCHAR2
7854 , p_source_type_code IN VARCHAR2
7855 , p_source_application_id IN NUMBER
7856 )
7857 IS
7858 l_log_module VARCHAR2(240);
7859 BEGIN
7860 --
7861 IF g_log_enabled THEN
7862 l_log_module := C_DEFAULT_MODULE||'.SetRevAccountingSource';
7863 END IF;
7864 --
7865 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7866 trace
7867 (p_msg => 'BEGIN of SetRevAccountingSource'
7868 ,p_level => C_LEVEL_PROCEDURE
7869 ,p_module => l_log_module);
7870
7871 trace
7872 (p_msg => 'p_accounting_source = '||p_accounting_source
7873 ,p_level => C_LEVEL_PROCEDURE
7874 ,p_module => l_log_module);
7875
7876 trace
7877 (p_msg => 'p_standard_source = '||p_standard_source
7878 ,p_level => C_LEVEL_PROCEDURE
7879 ,p_module => l_log_module);
7880 END IF;
7881
7882 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7883
7884 trace
7885 (p_msg => 'p_source_code = '||p_source_code
7886 ,p_level => C_LEVEL_STATEMENT
7887 ,p_module => l_log_module);
7888
7889 trace
7890 (p_msg => 'p_source_type_code = '||p_source_type_code
7891 ,p_level => C_LEVEL_STATEMENT
7892 ,p_module => l_log_module);
7893
7894 trace
7895 (p_msg => 'p_source_application_id = '||p_source_application_id
7896 ,p_level => C_LEVEL_STATEMENT
7897 ,p_module => l_log_module);
7898
7899 END IF;
7900 --
7901 CASE p_accounting_source
7902 --
7903 -- line accounting sources
7904 --
7905 -- 4262811 MPA ------------------------------------------------------------------------------------
7906 WHEN 'MULTIPERIOD_START_DATE' THEN g_reverse_lines.mpa_start_date := p_standard_source;
7907 WHEN 'MULTIPERIOD_END_DATE' THEN g_reverse_lines.mpa_end_date := p_standard_source;
7908 --WHEN 'DEFERRED_START_DATE' THEN g_reverse_lines.deferred_start_date := p_standard_source;
7909 --WHEN 'DEFERRED_END_DATE' THEN g_reverse_lines.deferred_end_date := p_standard_source;
7910 ---------------------------------------------------------------------------------------------------
7911 WHEN 'EXCHANGE_DATE' THEN g_reverse_lines.curr_conversion_date:= p_standard_source;
7912 --
7913 ELSE null;
7914 --
7915 END CASE;
7916 --
7917 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7918
7919 trace
7920 (p_msg => 'END of SetRevAccountingSource'
7921 ,p_level => C_LEVEL_PROCEDURE
7922 ,p_module => l_log_module);
7923
7924 END IF;
7925 --
7926 EXCEPTION
7927 WHEN xla_exceptions_pkg.application_exception THEN
7928 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
7929 RAISE;
7930 WHEN OTHERS THEN
7931 xla_exceptions_pkg.raise_message
7932 (p_location => 'XLA_AE_LINES_PKG.SetRevAccountingSource');
7933 END SetRevAccountingSource;
7934 --
7935 --
7936 /*======================================================================+
7937 | |
7938 | Public Procedure |
7939 | This procedure is no longer used after attribute enhancement project |
7940 | |
7941 +======================================================================*/
7942 --
7943 -- This might not be needed with bulk perfromance changes
7944 --
7945 /*
7946 PROCEDURE accounting_reversal(p_accounting_reversal_option IN VARCHAR2
7947 ,p_transaction_reversal IN OUT NOCOPY NUMBER)
7948 IS
7949 l_null_rev_line t_rec_reverse_line;
7950 l_transaction_reversal NUMBER;
7951 l_log_module VARCHAR2(240);
7952 BEGIN
7953 --
7954 IF g_log_enabled THEN
7955 l_log_module := C_DEFAULT_MODULE||'.accounting_reversal';
7956 END IF;
7957 --
7958 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7959
7960 trace
7961 (p_msg => 'BEGIN of accounting_reversal'
7962 ,p_level => C_LEVEL_PROCEDURE
7963 ,p_module => l_log_module);
7964
7965 trace
7966 (p_msg => 'p_accounting_reversal_option = '||p_accounting_reversal_option
7967 ,p_level => C_LEVEL_PROCEDURE
7968 ,p_module => l_log_module);
7969
7970 trace
7971 (p_msg => 'p_transaction_reversal = '||p_transaction_reversal
7972 ,p_level => C_LEVEL_PROCEDURE
7973 ,p_module => l_log_module);
7974
7975 END IF;
7976
7977 l_transaction_reversal:= p_transaction_reversal ;
7978 --
7979
7980 IF p_accounting_reversal_option IN ('Y','B','Z','C') AND
7981 g_reverse_lines.sys_distribution_type IS NULL AND
7982 l_transaction_reversal = 0 THEN
7983
7984 -- TransactionReversal;
7985 l_transaction_reversal:= 1;
7986
7987 ELSIF p_accounting_reversal_option IN ('Y','B','Z','C') AND
7988 g_reverse_lines.sys_distribution_type IS NOT NULL AND
7989 l_transaction_reversal IN (0,2) THEN
7990
7991 -- StandardAccountingReversal;
7992 -- (p_accounting_reversal_option => p_accounting_reversal_option
7993 -- );
7994 l_transaction_reversal:= 2;
7995
7996
7997 ELSIF p_accounting_reversal_option = 'U' THEN
7998
7999 UpgradeAccountingReversal;
8000
8001 ELSIF p_accounting_reversal_option IN ('Y','B','Z','C') AND
8002 g_reverse_lines.sys_distribution_type IS NULL AND
8003 l_transaction_reversal = 1
8004 THEN
8005 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
8006
8007 xla_accounting_err_pkg.build_message
8008 (p_appli_s_name => 'XLA'
8009 ,p_msg_name => 'XLA_AP_TRANS_REVERSAL_INCONST'
8010 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8011 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8012 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8013 );
8014
8015 IF (C_LEVEL_ERROR >= g_log_level) THEN
8016 trace
8017 (p_msg => 'ERROR: XLA_AP_TRANS_REVERSAL_INCONST'
8018 ,p_level => C_LEVEL_ERROR
8019 ,p_module => l_log_module);
8020 END IF;
8021
8022 ELSE
8023 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
8024
8025 xla_accounting_err_pkg.build_message
8026 (p_appli_s_name => 'XLA'
8027 ,p_msg_name => 'XLA_AP_REVERSAL_INCONSISTENT'
8028 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8029 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8030 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8031 );
8032
8033 IF (C_LEVEL_ERROR >= g_log_level) THEN
8034 trace
8035 (p_msg => 'ERROR: XLA_AP_REVERSAL_INCONSISTENT'
8036 ,p_level => C_LEVEL_ERROR
8037 ,p_module => l_log_module);
8038 END IF;
8039
8040 END IF;
8041
8042 p_transaction_reversal:= l_transaction_reversal ;
8043 --
8044 -- Reset reverse line record
8045 --
8046 g_reverse_lines := l_null_rev_line;
8047 --
8048 --
8049 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8050 trace
8051 (p_msg => 'return value. p_transaction_reversal = '||p_transaction_reversal
8052 ,p_level => C_LEVEL_PROCEDURE
8053 ,p_module => l_log_module);
8054
8055 trace
8056 (p_msg => 'END of accounting_reversal'
8057 ,p_level => C_LEVEL_PROCEDURE
8058 ,p_module => l_log_module);
8059
8060 END IF;
8061 --
8062 EXCEPTION
8063 WHEN xla_exceptions_pkg.application_exception THEN
8064 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
8065 RAISE;
8066 WHEN OTHERS THEN
8067 xla_exceptions_pkg.raise_message
8068 (p_location => 'XLA_AE_LINES_PKG.accounting_reversal');
8069 --
8070 END accounting_reversal;
8071 --
8072 */
8073 --
8074 /*======================================================================+
8075 | |
8076 | Public Procedure |
8077 | |
8078 +======================================================================*/
8079 --
8080 --bulk performance
8081 --
8082 procedure set_ae_header_id
8083 (p_ae_header_id in number
8084 ,p_header_num in number) is -- 4262811
8085
8086 l_log_module varchar2(240);
8087 begin
8088 IF g_log_enabled THEN
8089 l_log_module := C_DEFAULT_MODULE||'.set_ae_header_id';
8090 END IF;
8091 --
8092 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8093 trace
8094 (p_msg => 'BEGIN of set_ae_header_id'
8095 ,p_level => C_LEVEL_PROCEDURE
8096 ,p_module => l_log_module);
8097 trace
8098 (p_msg => 'p_ae_header_id = '||p_ae_header_id
8099 ,p_level => C_LEVEL_PROCEDURE
8100 ,p_module => l_log_module);
8101
8102 END IF;
8103 --
8104 g_rec_lines.array_ae_header_id(g_LineNumber) := p_ae_header_id;
8105 g_rec_lines.array_header_num(g_LineNumber) := p_header_num; -- 4262811
8106
8107 --
8108 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8109 trace
8110 (p_msg => 'END of set_ae_header_id'
8111 ,p_level => C_LEVEL_PROCEDURE
8112 ,p_module => l_log_module);
8113
8114 END IF;
8115 end set_ae_header_id;
8116 --
8117 /*======================================================================+
8118 | |
8119 | |
8120 | |
8121 +======================================================================*/
8122 procedure SetLineAcctAttrs
8123 (p_rec_acct_attrs in t_rec_acct_attrs) is
8124 l_log_module VARCHAR2(240);
8125 l_attr_error VARCHAR2(30);
8126 l_invalid_attr VARCHAR2(30) := 'XLA_AP_INVALID_LINE_ATTR';
8127 l_missing_attr VARCHAR2(30) := 'XLA_AP_MISSING_LINE_ATTR';
8128
8129 BEGIN
8130
8131 IF g_log_enabled THEN
8132 l_log_module := C_DEFAULT_MODULE||'.SetLineAcctAttrs';
8133 END IF;
8134
8135 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8136 trace
8137 (p_msg => 'BEGIN of SetLineAcctAttrs'
8138 ,p_level => C_LEVEL_PROCEDURE
8139 ,p_module => l_log_module);
8140 END IF;
8141
8142 FOR i in 1..p_rec_acct_attrs.array_acct_attr_code.count loop
8143
8144 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8145 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8146 trace(p_msg => 'Loop count = '||i||
8147 ' (char) : '||p_rec_acct_attrs.array_acct_attr_code(i)||
8148 ' = '||p_rec_acct_attrs.array_char_value(i)
8149 ,p_level => C_LEVEL_STATEMENT
8150 ,p_module => l_log_module);
8151 ELSIF p_rec_acct_attrs.array_date_value.EXISTS(i) THEN
8152 trace(p_msg => 'Loop count = '||i||
8153 ' (date) : '||p_rec_acct_attrs.array_acct_attr_code(i)||
8154 ' = '||p_rec_acct_attrs.array_date_value(i)
8155 ,p_level => C_LEVEL_STATEMENT
8156 ,p_module => l_log_module);
8157 ELSE
8158 trace(p_msg => 'Loop count = '||i||
8159 ' (num) : '||p_rec_acct_attrs.array_acct_attr_code(i)||
8160 ' = '||p_rec_acct_attrs.array_num_value(i)
8161 ,p_level => C_LEVEL_STATEMENT
8162 ,p_module => l_log_module);
8163 END IF;
8164 END IF;
8165
8166 l_attr_error := NULL; -- 5162408
8167
8168 CASE p_rec_acct_attrs.array_acct_attr_code(i)
8169
8170 WHEN 'PARTY_TYPE' THEN
8171
8172 -- 4693816 Do not assign if size is more than 1
8173 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8174 IF length(p_rec_acct_attrs.array_char_value(i)) > 1 THEN
8175 g_rec_lines.array_party_type_code(g_LineNumber) := 'X';
8176 l_attr_error := l_invalid_attr;
8177 ELSE
8178 g_rec_lines.array_party_type_code(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8179 END IF;
8180 ELSE
8181 -- 5162408
8182 g_rec_lines.array_party_type_code(g_LineNumber) := NULL;
8183 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8184 l_attr_error := l_invalid_attr;
8185 END IF;
8186 END IF;
8187
8188 WHEN 'ENTERED_CURRENCY_CODE' THEN
8189 IF p_rec_acct_attrs.array_char_value.EXISTS(i) AND length(p_rec_acct_attrs.array_char_value(i)) <= 15 THEN
8190 g_rec_lines.array_currency_code(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8191 g_rec_lines.array_currency_mau(g_LineNumber) := xla_accounting_cache_pkg.GetCurrencyMau(p_rec_acct_attrs.array_char_value(i));
8192 ELSE
8193 -- 5162408
8194 g_rec_lines.array_currency_code(g_LineNumber) := ' '; -- otherwise insert NULL error in currency_code
8195 g_rec_lines.array_currency_mau(g_LineNumber) := 0.01; -- dummy MAU
8196 IF (p_rec_acct_attrs.array_num_value.EXISTS(i)) OR
8197 (p_rec_acct_attrs.array_char_value.EXISTS(i) AND p_rec_acct_attrs.array_char_value(i) IS NOT NULL) THEN
8198 l_attr_error := l_invalid_attr; -- wrong datatype or too long
8199 ELSE
8200 l_attr_error := l_missing_attr; -- required
8201 END IF;
8202 END IF;
8203
8204 -------------------------------------------------------------------
8205 -- 4262811 - replaced DEFERRED
8206 -------------------------------------------------------------------
8207 --WHEN 'DEFERRED_INDICATOR' THEN
8208 -- g_rec_lines.array_deferred_indicator(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8209 --WHEN 'DEFERRED_PERIOD_TYPE' THEN
8210 -- g_rec_lines.array_deferred_period_type(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8211 WHEN 'MULTIPERIOD_OPTION' THEN
8212 IF p_rec_acct_attrs.array_char_value.EXISTS(i) AND p_rec_acct_attrs.array_char_value(i) IS NOT NULL THEN
8213 IF length(p_rec_acct_attrs.array_char_value(i)) = 1 THEN
8214 g_rec_lines.array_mpa_option(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8215 ELSE
8216 g_rec_lines.array_mpa_option(g_LineNumber) := NULL;
8217 END IF;
8218
8219 IF NVL(g_rec_lines.array_mpa_option(g_LineNumber),'N') NOT IN ('Y','N') OR
8220 length(p_rec_acct_attrs.array_char_value(i)) > 1 THEN
8221 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
8222 xla_accounting_err_pkg.build_message
8223 (p_appli_s_name => 'XLA'
8224 ,p_msg_name => 'XLA_MA_INVALID_OPTION' -- 4262811a XLA_AP_INV_DEFERRED_OPTION'
8225 ,p_token_1 => 'LINE_NUMBER'
8226 ,p_value_1 => g_ExtractLine
8227 ,p_token_2 => 'ACCOUNTING_SOURCE_NAME'
8228 ,p_value_2 => XLA_AE_SOURCES_PKG.GetAccountingSourceName
8229 (p_rec_acct_attrs.array_acct_attr_code(i))
8230 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8231 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8232 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
8233 END IF;
8234 ELSE
8235 -- 5162408
8236 g_rec_lines.array_mpa_option(g_LineNumber) := NULL;
8237 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8238 l_attr_error := l_invalid_attr;
8239 END IF;
8240 END IF;
8241
8242 WHEN 'DISTRIBUTION_TYPE' THEN
8243 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8244 g_rec_lines.array_sys_distribution_type(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8245 ELSE
8246 g_rec_lines.array_sys_distribution_type(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8247 END IF;
8248
8249 IF g_rec_lines.array_sys_distribution_type(g_LineNumber) IS NULL THEN
8250 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
8251 xla_accounting_err_pkg.build_message
8252 (p_appli_s_name => 'XLA'
8253 ,p_msg_name => 'XLA_AP_NO_DIST_LINK_TYPE'
8254 ,p_token_1 => 'LINE_NUMBER'
8255 ,p_value_1 => g_ExtractLine
8256 ,p_token_2 => 'ACCOUNTING_SOURCE_NAME'
8257 ,p_value_2 => XLA_AE_SOURCES_PKG.GetAccountingSourceName
8258 (p_rec_acct_attrs.array_acct_attr_code(i))
8259 ,p_token_3 => 'SOURCE_NAME'
8260 ,p_value_3 => NULL
8261 ,p_token_4 => 'LINE_TYPE_NAME'
8262 ,p_value_4 => XLA_AE_SOURCES_PKG.GetComponentName (
8263 g_accounting_line.component_type
8264 , g_accounting_line.accounting_line_code
8265 , g_accounting_line.accounting_line_type_code
8266 , g_accounting_line.accounting_line_appl_id
8267 , g_accounting_line.amb_context_code
8268 , g_accounting_line.entity_code
8269 , g_accounting_line.event_class_code
8270 )
8271 ,p_token_5 => 'OWNER'
8272 ,p_value_5 => xla_lookups_pkg.get_meaning(
8273 'XLA_OWNER_TYPE'
8274 , g_rec_lines.array_accounting_line_type(g_LineNumber)
8275 )
8276 ,p_token_6 => 'PRODUCT_NAME'
8277 ,p_value_6 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8278 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8279 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8280 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
8281 END IF;
8282
8283 WHEN 'ACCOUNTING_REVERSAL_OPTION' THEN
8284 -- 5162408
8285 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8286 IF length(p_rec_acct_attrs.array_char_value(i)) = 1 THEN
8287 g_rec_lines.array_acc_reversal_option(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8288 ELSE
8289 g_rec_lines.array_acc_reversal_option(g_LineNumber) := NULL;
8290 END IF;
8291 IF NVL(g_rec_lines.array_acc_reversal_option(g_LineNumber),'N') NOT IN ('Y','N','B') OR
8292 length(p_rec_acct_attrs.array_char_value(i)) > 1 THEN
8293 l_attr_error := l_invalid_attr;
8294 END IF;
8295 ELSE
8296 g_rec_lines.array_acc_reversal_option(g_LineNumber) := NULL;
8297 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8298 l_attr_error := l_invalid_attr;
8299 END IF;
8300 END IF;
8301
8302 WHEN 'EXCHANGE_RATE_TYPE' THEN
8303 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8304 g_rec_lines.array_curr_conversion_type(g_LineNumber):= p_rec_acct_attrs.array_char_value(i);
8305 ELSE
8306 g_rec_lines.array_curr_conversion_type(g_LineNumber):= p_rec_acct_attrs.array_num_value(i);
8307 END IF;
8308
8309 WHEN 'USSGL_TRANSACTION_CODE' THEN
8310 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8311 g_rec_lines.array_ussgl_transaction(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8312 ELSE
8313 g_rec_lines.array_ussgl_transaction(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8314 END IF;
8315
8316 WHEN 'RECON_REF' THEN
8317 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8318 g_rec_lines.array_jgzz_recon_ref(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8319 ELSE
8320 g_rec_lines.array_jgzz_recon_ref(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8321 END IF;
8322
8323 WHEN 'OVERRIDE_ACCTD_AMT_FLAG' THEN
8324 -- 5162408
8325 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8326 IF length(p_rec_acct_attrs.array_char_value(i)) = 1 THEN
8327 g_override_acctd_amt_flag := p_rec_acct_attrs.array_char_value(i);
8328 g_rec_lines.array_override_acctd_amt_flag(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8329 ELSE
8330 g_override_acctd_amt_flag := NULL;
8331 g_rec_lines.array_override_acctd_amt_flag(g_LineNumber) := NULL;
8332 END IF;
8333 IF NVL(g_override_acctd_amt_flag,'N') NOT IN ('Y','N') OR
8334 length(p_rec_acct_attrs.array_char_value(i)) > 1 THEN
8335 l_attr_error := l_invalid_attr;
8336 END IF;
8337 ELSE
8338 g_override_acctd_amt_flag := NULL;
8339 g_rec_lines.array_override_acctd_amt_flag(g_LineNumber) := NULL;
8340 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8341 l_attr_error := l_invalid_attr;
8342 END IF;
8343 END IF;
8344 -- Bug 7044870
8345 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code IN ('SECONDARY','ALC') THEN
8346 g_override_acctd_amt_flag := NULL;
8347 g_rec_lines.array_override_acctd_amt_flag(g_LineNumber) := NULL;
8348 END IF;
8349 --
8350
8351 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8352 trace
8353 (p_msg => 'override_acctd_amt_flag= '||g_override_acctd_amt_flag
8354 ,p_level => C_LEVEL_STATEMENT
8355 ,p_module => l_log_module);
8356 END IF;
8357
8358 WHEN 'GAIN_LOSS_REFERENCE' THEN
8359 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8360 g_rec_lines.array_gain_or_loss_ref(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8361 ELSE
8362 g_rec_lines.array_gain_or_loss_ref(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8363 END IF;
8364
8365 WHEN 'TRX_ROUNDING_REF' THEN
8366 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8367 g_rec_lines.array_doc_rounding_level(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8368 ELSE
8369 g_rec_lines.array_doc_rounding_level(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8370 END IF;
8371
8372 WHEN 'DISTRIBUTION_IDENTIFIER_1' THEN
8373 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8374 g_rec_lines.array_distribution_id_char_1(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8375 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8376 g_rec_lines.array_distribution_id_num_1(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8377 END IF;
8378
8379 WHEN 'DISTRIBUTION_IDENTIFIER_2' THEN
8380 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8381 g_rec_lines.array_distribution_id_char_2(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8382 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8383 g_rec_lines.array_distribution_id_num_2(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8384 END IF;
8385
8386 WHEN 'DISTRIBUTION_IDENTIFIER_3' THEN
8387 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8388 g_rec_lines.array_distribution_id_char_3(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8389 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8390 g_rec_lines.array_distribution_id_num_3(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8391 END IF;
8392
8393 WHEN 'DISTRIBUTION_IDENTIFIER_4' THEN
8394 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8395 g_rec_lines.array_distribution_id_char_4(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8396 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8397 g_rec_lines.array_distribution_id_num_4(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8398 END IF;
8399
8400 WHEN 'DISTRIBUTION_IDENTIFIER_5' THEN
8401 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8402 g_rec_lines.array_distribution_id_char_5(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8403 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8404 g_rec_lines.array_distribution_id_num_5(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8405 END IF;
8406
8407 WHEN 'PARTY_ID' THEN
8408 g_rec_lines.array_party_id(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8409
8410 WHEN 'PARTY_SITE_ID' THEN
8411 g_rec_lines.array_party_site_id(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8412
8413 WHEN 'ENTERED_CURRENCY_AMOUNT' THEN
8414 g_rec_lines.array_entered_amount(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8415
8416 WHEN 'STATISTICAL_AMOUNT' THEN
8417 g_rec_lines.array_statistical_amount(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8418
8419 -- 4262811
8420 --WHEN 'DEFERRED_NO_OF_PERIODS' THEN
8421 -- g_rec_lines.array_deferred_no_period(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8422
8423 WHEN 'TAX_LINE_REF_ID' THEN
8424 g_rec_lines.array_tax_line_ref(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8425
8426 WHEN 'TAX_SUMMARY_LINE_REF_ID' THEN
8427 g_rec_lines.array_tax_summary_line_ref(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8428
8429 WHEN 'TAX_REC_NREC_DIST_REF_ID' THEN
8430 g_rec_lines.array_tax_rec_nrec_dist_ref(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8431
8432 WHEN 'LEDGER_AMOUNT' THEN
8433 g_rec_lines.array_ledger_amount(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8434
8435 /* Since now after ledger currency project, the ledger amount could be null
8436 this validation is moved to SetDebitCreditAmounts
8437 IF p_rec_acct_attrs.array_num_value(i) IS NULL THEN
8438 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
8439 xla_accounting_err_pkg.build_message
8440 (p_appli_s_name => 'XLA'
8441 ,p_msg_name => 'XLA_AP_NO_LEDGER_AMOUNT'
8442 ,p_token_1 => 'LINE_NUMBER'
8443 ,p_value_1 => g_ExtractLine
8444 ,p_token_2 => 'SOURCE_NAME'
8445 ,p_value_2 => NULL
8446 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8447 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8448 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
8449 END IF;
8450 */
8451
8452 WHEN 'EXCHANGE_RATE' THEN
8453 g_rec_lines.array_curr_conversion_rate(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8454
8455 -- 4262811 ------------------------------------------------------------------------------------
8456 --WHEN 'DEFERRED_START_DATE' THEN
8457 -- g_rec_lines.array_deferred_start_date(g_LineNumber) := p_rec_acct_attrs.array_date_value(i);
8458 --WHEN 'DEFERRED_END_DATE' THEN
8459 -- g_rec_lines.array_deferred_end_date(g_LineNumber) := p_rec_acct_attrs.array_date_value(i);
8460 WHEN 'MULTIPERIOD_START_DATE' THEN
8461 g_rec_lines.array_mpa_start_date(g_LineNumber) := p_rec_acct_attrs.array_date_value(i);
8462
8463 WHEN 'MULTIPERIOD_END_DATE' THEN
8464 g_rec_lines.array_mpa_end_date(g_LineNumber) := p_rec_acct_attrs.array_date_value(i);
8465
8466
8467 WHEN 'EXCHANGE_DATE' THEN
8468 g_rec_lines.array_curr_conversion_date(g_LineNumber):= p_rec_acct_attrs.array_date_value(i);
8469
8470 ----------------------------------------------------------------------------------------------------
8471 -- 4219869
8472 -- Business Flow Applied To attributes - code must match those in Accounting Attribute in AAA form.
8473 -- See xla11iass.ldt for seeded data.
8474 ----------------------------------------------------------------------------------------------------
8475 WHEN 'APPLIED_TO_APPLICATION_ID' THEN
8476 g_rec_lines.array_bflow_application_id(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8477
8478 WHEN 'APPLIED_TO_ENTITY_CODE' THEN
8479 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8480 g_rec_lines.array_bflow_entity_code(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8481 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8482 g_rec_lines.array_bflow_entity_code(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8483 END IF;
8484
8485 WHEN 'APPLIED_TO_FIRST_SYS_TRAN_ID' THEN
8486 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8487 g_rec_lines.array_bflow_source_id_num_1(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8488 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8489 g_rec_lines.array_bflow_source_id_char_1(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8490 END IF;
8491
8492 WHEN 'APPLIED_TO_SECOND_SYS_TRAN_ID' THEN
8493 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8494 g_rec_lines.array_bflow_source_id_num_2(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8495 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8496 g_rec_lines.array_bflow_source_id_char_2(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8497 END IF;
8498
8499 WHEN 'APPLIED_TO_THIRD_SYS_TRAN_ID' THEN
8500 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8501 g_rec_lines.array_bflow_source_id_num_3(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8502 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8503 g_rec_lines.array_bflow_source_id_char_3(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8504 END IF;
8505 WHEN 'APPLIED_TO_FOURTH_SYS_TRAN_ID' THEN
8506 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8507 g_rec_lines.array_bflow_source_id_num_4(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8508 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8509 g_rec_lines.array_bflow_source_id_char_4(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8510 END IF;
8511
8512 WHEN 'APPLIED_TO_DISTRIBUTION_TYPE' THEN
8513 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8514 g_rec_lines.array_bflow_distribution_type(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8515 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8516 g_rec_lines.array_bflow_distribution_type(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8517 END IF;
8518
8519 WHEN 'APPLIED_TO_FIRST_DIST_ID' THEN
8520 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8521 g_rec_lines.array_bflow_dist_id_num_1(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8522 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8523 g_rec_lines.array_bflow_dist_id_char_1(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8524 END IF;
8525
8526 WHEN 'APPLIED_TO_SECOND_DIST_ID' THEN
8527 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8528 g_rec_lines.array_bflow_dist_id_num_2(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8529 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8530 g_rec_lines.array_bflow_dist_id_char_2(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8531 END IF;
8532
8533 WHEN 'APPLIED_TO_THIRD_DIST_ID' THEN
8534 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8535 g_rec_lines.array_bflow_dist_id_num_3(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8536 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8537 g_rec_lines.array_bflow_dist_id_char_3(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8538 END IF;
8539
8540 WHEN 'APPLIED_TO_FOURTH_DIST_ID' THEN
8541 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8542 g_rec_lines.array_bflow_dist_id_num_4(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8543 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8544 g_rec_lines.array_bflow_dist_id_char_4(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8545 END IF;
8546
8547 WHEN 'APPLIED_TO_FIFTH_DIST_ID' THEN
8548 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8549 g_rec_lines.array_bflow_dist_id_num_5(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8550 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8551 g_rec_lines.array_bflow_dist_id_char_5(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8552 END IF;
8553
8554 WHEN 'APPLIED_TO_AMOUNT' THEN -- 5132302
8555 g_rec_lines.array_bflow_applied_to_amt(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8556
8557 --
8558 -- Upgrade attributes
8559 --
8560
8561 WHEN 'ACTUAL_UPG_OPTION' THEN
8562 g_rec_lines.array_actual_upg_option(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8563
8564 WHEN 'ACTUAL_UPG_DR_CCID' THEN
8565 g_rec_lines.array_actual_upg_dr_ccid(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8566
8567 WHEN 'ACTUAL_UPG_CR_CCID' THEN
8568 g_rec_lines.array_actual_upg_cr_ccid(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8569
8570 WHEN 'ACTUAL_UPG_DR_ENTERED_AMT' THEN
8571 g_rec_lines.array_actual_upg_dr_ent_amt(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8572
8573 WHEN 'ACTUAL_UPG_CR_ENTERED_AMT' THEN
8574 g_rec_lines.array_actual_upg_cr_ent_amt(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8575
8576 WHEN 'ACTUAL_UPG_DR_ENTERED_CURR' THEN
8577 g_rec_lines.array_actual_upg_dr_ent_curr(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8578
8579 WHEN 'ACTUAL_UPG_CR_ENTERED_CURR' THEN
8580 g_rec_lines.array_actual_upg_cr_ent_curr(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8581
8582 WHEN 'ACTUAL_UPG_DR_LEDGER_AMT' THEN
8583 g_rec_lines.array_actual_upg_dr_ledger_amt(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8584
8585 WHEN 'ACTUAL_UPG_CR_LEDGER_AMT' THEN
8586 g_rec_lines.array_actual_upg_cr_ledger_amt(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8587
8588 WHEN 'ACTUAL_UPG_DR_ACCT_CLASS' THEN
8589 g_rec_lines.array_actual_upg_dr_acct_class(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8590
8591 WHEN 'ACTUAL_UPG_CR_ACCT_CLASS' THEN
8592 g_rec_lines.array_actual_upg_dr_acct_class(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8593
8594 WHEN 'ACTUAL_UPG_DR_XRATE' THEN
8595 g_rec_lines.array_actual_upg_dr_xrate(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8596
8597 WHEN 'ACTUAL_UPG_DR_XRATE_TYPE' THEN
8598 g_rec_lines.array_actual_upg_dr_xrate_type(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8599
8600 WHEN 'ACTUAL_UPG_DR_XDATE' THEN
8601 g_rec_lines.array_actual_upg_dr_xdate(g_LineNumber) := p_rec_acct_attrs.array_date_value(i);
8602
8603 WHEN 'ACTUAL_UPG_CR_XRATE' THEN
8604 g_rec_lines.array_actual_upg_cr_xrate(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8605
8606 WHEN 'ACTUAL_UPG_CR_XRATE_TYPE' THEN
8607 g_rec_lines.array_actual_upg_cr_xrate_type(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8608
8609 WHEN 'ACTUAL_UPG_CR_XDATE' THEN
8610 g_rec_lines.array_actual_upg_cr_xdate(g_LineNumber) := p_rec_acct_attrs.array_date_value(i);
8611
8612 WHEN 'ENC_UPG_OPTION' THEN
8613 g_rec_lines.array_enc_upg_option(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8614
8615 WHEN 'ENC_UPG_DR_CCID' THEN
8616 g_rec_lines.array_enc_upg_dr_ccid(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8617
8618 WHEN 'ENC_UPG_CR_CCID' THEN
8619 g_rec_lines.array_enc_upg_cr_ccid(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8620
8621 WHEN 'UPG_DR_ENC_TYPE_ID' THEN
8622 g_rec_lines.array_upg_dr_enc_type_id(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8623
8624 WHEN 'UPG_CR_ENC_TYPE_ID' THEN
8625 g_rec_lines.array_upg_cr_enc_type_id(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8626
8627 WHEN 'ENC_UPG_DR_ENTERED_AMT' THEN
8628 g_rec_lines.array_enc_upg_dr_ent_amt(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8629
8630 WHEN 'ENC_UPG_CR_ENTERED_AMT' THEN
8631 g_rec_lines.array_enc_upg_cr_ent_amt(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8632
8633 WHEN 'ENC_UPG_DR_ENTERED_CURR' THEN
8634 g_rec_lines.array_enc_upg_dr_ent_curr(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8635
8636 WHEN 'ENC_UPG_CR_ENTERED_CURR' THEN
8637 g_rec_lines.array_enc_upg_cr_ent_curr(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8638
8639 WHEN 'ENC_UPG_DR_LEDGER_AMT' THEN
8640 g_rec_lines.array_enc_upg_dr_ledger_amt(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8641
8642 WHEN 'ENC_UPG_CR_LEDGER_AMT' THEN
8643 g_rec_lines.array_enc_upg_cr_ledger_amt(g_linenumber) := p_rec_acct_attrs.array_num_value(i);
8644
8645 WHEN 'ENC_UPG_DR_ACCT_CLASS' THEN
8646 g_rec_lines.array_enc_upg_dr_acct_class(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8647
8648 WHEN 'ENC_UPG_CR_ACCT_CLASS' THEN
8649 g_rec_lines.array_enc_upg_cr_acct_class(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8650 -- 5845547
8651 WHEN 'UPG_PARTY_TYPE' THEN
8652 g_rec_lines.array_upg_party_type_code(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8653
8654 WHEN 'UPG_PARTY_ID' THEN
8655 g_rec_lines.array_upg_party_id(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8656
8657 WHEN 'UPG_PARTY_SITE_ID' THEN
8658 g_rec_lines.array_upg_party_site_id(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8659 --
8660 -- end upgrade attributes
8661 --
8662
8663 --
8664 -- Allocation Attributes
8665 --
8666 WHEN 'ALLOC_TO_APPLICATION_ID' THEN
8667 g_rec_lines.array_alloct_application_id(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8668
8669 WHEN 'ALLOC_TO_ENTITY_CODE' THEN
8670 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8671 g_rec_lines.array_alloct_entity_code(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8672 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8673 g_rec_lines.array_alloct_entity_code(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8674 END IF;
8675
8676 WHEN 'ALLOC_TO_FIRST_SYS_TRAN_ID' THEN
8677 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8678 g_rec_lines.array_alloct_source_id_num_1(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8679 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8680 g_rec_lines.array_alloct_source_id_char_1(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8681 END IF;
8682
8683 WHEN 'ALLOC_TO_SECOND_SYS_TRAN_ID' THEN
8684 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8685 g_rec_lines.array_alloct_source_id_num_2(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8686 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8687 g_rec_lines.array_alloct_source_id_char_2(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8688 END IF;
8689
8690 WHEN 'ALLOC_TO_THIRD_SYS_TRAN_ID' THEN
8691 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8692 g_rec_lines.array_alloct_source_id_num_3(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8693 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8694 g_rec_lines.array_alloct_source_id_char_3(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8695 END IF;
8696 WHEN 'ALLOC_TO_FOURTH_SYS_TRAN_ID' THEN
8697 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8698 g_rec_lines.array_alloct_source_id_num_4(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8699 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8700 g_rec_lines.array_alloct_source_id_char_4(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8701 END IF;
8702
8703 WHEN 'ALLOC_TO_DISTRIBUTION_TYPE' THEN
8704 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8705 g_rec_lines.array_alloct_distribution_type(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8706 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8707 g_rec_lines.array_alloct_distribution_type(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8708 END IF;
8709
8710 WHEN 'ALLOC_TO_FIRST_DIST_ID' THEN
8711 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8712 g_rec_lines.array_alloct_dist_id_num_1(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8713 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8714 g_rec_lines.array_alloct_dist_id_char_1(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8715 END IF;
8716
8717 WHEN 'ALLOC_TO_SECOND_DIST_ID' THEN
8718 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8719 g_rec_lines.array_alloct_dist_id_num_2(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8720 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8721 g_rec_lines.array_alloct_dist_id_char_2(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8722 END IF;
8723
8724 WHEN 'ALLOC_TO_THIRD_DIST_ID' THEN
8725 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8726 g_rec_lines.array_alloct_dist_id_num_3(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8727 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8728 g_rec_lines.array_alloct_dist_id_char_3(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8729 END IF;
8730
8731 WHEN 'ALLOC_TO_FOURTH_DIST_ID' THEN
8732 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8733 g_rec_lines.array_alloct_dist_id_num_4(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8734 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8735 g_rec_lines.array_alloct_dist_id_char_4(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8736 END IF;
8737
8738 WHEN 'ALLOC_TO_FIFTH_DIST_ID' THEN
8739 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8740 g_rec_lines.array_alloct_dist_id_num_5(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8741 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8742 g_rec_lines.array_alloct_dist_id_char_5(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8743 END IF;
8744 --
8745 -- End of Allocation Attributes
8746 --
8747
8748
8749 ELSE NULL;
8750 END CASE;
8751
8752 -- 5162408 log error for attribute
8753 IF l_attr_error IS NOT NULL THEN
8754 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
8755 xla_accounting_err_pkg.build_message
8756 (p_appli_s_name => 'XLA'
8757 ,p_msg_name => l_attr_error
8758 ,p_token_1 => 'ACCT_ATTR_NAME'
8759 ,p_value_1 => XLA_AE_SOURCES_PKG.GetAccountingSourceName
8760 (p_rec_acct_attrs.array_acct_attr_code(i))
8761 ,p_token_2 => 'LINE_TYPE_NAME'
8762 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
8763 g_accounting_line.component_type
8764 , g_accounting_line.accounting_line_code
8765 , g_accounting_line.accounting_line_type_code
8766 , g_accounting_line.accounting_line_appl_id
8767 , g_accounting_line.amb_context_code
8768 , g_accounting_line.entity_code
8769 , g_accounting_line.event_class_code
8770 )
8771 ,p_token_3 => 'OWNER'
8772 ,p_value_3 => xla_lookups_pkg.get_meaning(
8773 'XLA_OWNER_TYPE'
8774 , g_rec_lines.array_accounting_line_type(g_LineNumber)
8775 )
8776 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8777 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8778 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
8779 END IF;
8780
8781 end loop;
8782
8783 EXCEPTION
8784 WHEN xla_exceptions_pkg.application_exception THEN
8785 RAISE;
8786 WHEN OTHERS THEN
8787 xla_exceptions_pkg.raise_message
8788 (p_location => 'XLA_AE_HEADER_PKG.SetLineAcctAttrs');
8789 --
8790 end SetLineAcctAttrs;
8791
8792 /*======================================================================+
8793 | |
8794 | Public Procedure |
8795 | |
8796 | |
8797 +======================================================================*/
8798 PROCEDURE SetAcctReversalAttrs
8799 (p_event_id IN NUMBER
8800 ,p_rec_acct_attrs IN XLA_AE_LINES_PKG.t_rec_acct_attrs
8801 ,p_calculate_acctd_flag IN VARCHAR2
8802 ,p_calculate_g_l_flag IN VARCHAR2) IS
8803
8804 l_sys_distribution_type VARCHAR2(30);
8805 l_acc_reversal_option VARCHAR2(30);
8806 l_distribution_id_char_1 VARCHAR2(30);
8807 l_distribution_id_char_2 VARCHAR2(30);
8808 l_distribution_id_char_3 VARCHAR2(30);
8809 l_distribution_id_char_4 VARCHAR2(30);
8810 l_distribution_id_char_5 VARCHAR2(30);
8811 l_distribution_id_num_1 NUMBER;
8812 l_distribution_id_num_2 NUMBER;
8813 l_distribution_id_num_3 NUMBER;
8814 l_distribution_id_num_4 NUMBER;
8815 l_distribution_id_num_5 NUMBER;
8816 l_rev_dist_id_char_1 VARCHAR2(30);
8817 l_rev_dist_id_char_2 VARCHAR2(30);
8818 l_rev_dist_id_char_3 VARCHAR2(30);
8819 l_rev_dist_id_char_4 VARCHAR2(30);
8820 l_rev_dist_id_char_5 VARCHAR2(30);
8821 l_rev_dist_id_num_1 NUMBER;
8822 l_rev_dist_id_num_2 NUMBER;
8823 l_rev_dist_id_num_3 NUMBER;
8824 l_rev_dist_id_num_4 NUMBER;
8825 l_rev_dist_id_num_5 NUMBER;
8826 l_rev_dist_type VARCHAR2(30);
8827 l_actual_upg_option VARCHAR2(30);
8828 l_actual_upg_dr_ccid NUMBER;
8829 l_actual_upg_cr_ccid NUMBER;
8830 l_actual_upg_dr_entered_amt NUMBER;
8831 l_actual_upg_cr_entered_amt NUMBER;
8832 l_actual_upg_dr_entered_curr VARCHAR2(30);
8833 l_actual_upg_cr_entered_curr VARCHAR2(30);
8834 l_actual_upg_dr_ledger_amt NUMBER;
8835 l_actual_upg_cr_ledger_amt NUMBER;
8836 l_actual_upg_dr_acct_class VARCHAR2(30);
8837 l_actual_upg_cr_acct_class VARCHAR2(30);
8838 l_actual_upg_dr_xrate NUMBER;
8839 l_actual_upg_dr_xrate_type VARCHAR2(30);
8840 l_actual_upg_dr_xdate DATE;
8841 l_actual_upg_cr_xrate NUMBER;
8842 l_actual_upg_cr_xrate_type VARCHAR2(30);
8843 l_actual_upg_cr_xdate DATE;
8844 l_enc_upg_option VARCHAR2(30);
8845 l_enc_upg_dr_ccid NUMBER;
8846 l_enc_upg_cr_ccid NUMBER;
8847 l_upg_dr_enc_type_id NUMBER;
8848 l_upg_cr_enc_type_id NUMBER;
8849 l_enc_upg_dr_entered_amt NUMBER;
8850 l_enc_upg_cr_entered_amt NUMBER;
8851 l_enc_upg_dr_entered_curr VARCHAR2(30);
8852 l_enc_upg_cr_entered_curr VARCHAR2(30);
8853 l_enc_upg_dr_ledger_amt NUMBER;
8854 l_enc_upg_cr_ledger_amt NUMBER;
8855 l_enc_upg_dr_acct_class VARCHAR2(30);
8856 l_enc_upg_cr_acct_class VARCHAR2(30);
8857 l_gl_date DATE;
8858
8859 l_upg_party_type VARCHAR2(1); -- 5845547
8860 l_upg_party_id NUMBER; -- 5845547
8861 l_upg_party_site_id NUMBER; -- 5845547
8862
8863
8864 l_tax_line_ref NUMBER(15,0); --7159711
8865 l_tax_summary_line_ref NUMBER(15,0); --7159711
8866 l_tax_rec_nrec_dist_ref NUMBER(15,0); --7159711
8867
8868
8869 l_log_module VARCHAR2(240);
8870
8871 BEGIN
8872 IF g_log_enabled THEN
8873 l_log_module := C_DEFAULT_MODULE||'.SetAcctReversalAttrs';
8874 END IF;
8875
8876 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8877 trace
8878 (p_msg => 'BEGIN of SetAcctReversalAttrs'
8879 ,p_level => C_LEVEL_PROCEDURE
8880 ,p_module => l_log_module);
8881 END IF;
8882
8883 FOR i IN 1..p_rec_acct_attrs.array_acct_attr_code.COUNT LOOP
8884 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8885 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8886 trace(p_msg => 'Loop count = '||i||
8887 ' (char) : '||p_rec_acct_attrs.array_acct_attr_code(i)||
8888 ' = '||p_rec_acct_attrs.array_char_value(i)
8889 ,p_level => C_LEVEL_STATEMENT
8890 ,p_module => l_log_module);
8891 ELSIF p_rec_acct_attrs.array_date_value.EXISTS(i) THEN
8892 trace(p_msg => 'Loop count = '||i||
8893 ' (date) : '||p_rec_acct_attrs.array_acct_attr_code(i)||
8894 ' = '||p_rec_acct_attrs.array_date_value(i)
8895 ,p_level => C_LEVEL_STATEMENT
8896 ,p_module => l_log_module);
8897 ELSE
8898 trace(p_msg => 'Loop count = '||i||
8899 ' (num) : '||p_rec_acct_attrs.array_acct_attr_code(i)||
8900 ' = '||p_rec_acct_attrs.array_num_value(i)
8901 ,p_level => C_LEVEL_STATEMENT
8902 ,p_module => l_log_module);
8903 END IF;
8904
8905 END IF;
8906
8907 CASE p_rec_acct_attrs.array_acct_attr_code(i)
8908
8909 WHEN 'GL_DATE' THEN
8910 l_gl_date := p_rec_acct_attrs.array_date_value(i);
8911
8912 WHEN 'DISTRIBUTION_TYPE' THEN
8913 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8914 l_sys_distribution_type := p_rec_acct_attrs.array_char_value(i);
8915 ELSE
8916 l_sys_distribution_type := p_rec_acct_attrs.array_num_value(i);
8917 END IF;
8918
8919 WHEN 'ACCOUNTING_REVERSAL_OPTION' THEN
8920 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8921 l_acc_reversal_option := p_rec_acct_attrs.array_char_value(i);
8922 ELSE
8923 l_acc_reversal_option := p_rec_acct_attrs.array_num_value(i);
8924 END IF;
8925
8926 WHEN 'DISTRIBUTION_IDENTIFIER_1' THEN
8927 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8928 l_distribution_id_char_1 := p_rec_acct_attrs.array_char_value(i);
8929 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8930 l_distribution_id_num_1 := p_rec_acct_attrs.array_num_value(i);
8931 END IF;
8932
8933 WHEN 'DISTRIBUTION_IDENTIFIER_2' THEN
8934 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8935 l_distribution_id_char_2 := p_rec_acct_attrs.array_char_value(i);
8936 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8937 l_distribution_id_num_2 := p_rec_acct_attrs.array_num_value(i);
8938 END IF;
8939
8940 WHEN 'DISTRIBUTION_IDENTIFIER_3' THEN
8941 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8942 l_distribution_id_char_3 := p_rec_acct_attrs.array_char_value(i);
8943 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8944 l_distribution_id_num_3 := p_rec_acct_attrs.array_num_value(i);
8945 END IF;
8946
8947 WHEN 'DISTRIBUTION_IDENTIFIER_4' THEN
8948 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8949 l_distribution_id_char_4 := p_rec_acct_attrs.array_char_value(i);
8950 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8951 l_distribution_id_num_4 := p_rec_acct_attrs.array_num_value(i);
8952 END IF;
8953
8954 WHEN 'DISTRIBUTION_IDENTIFIER_5' THEN
8955 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8956 l_distribution_id_char_5 := p_rec_acct_attrs.array_char_value(i);
8957 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8958 l_distribution_id_num_5 := p_rec_acct_attrs.array_num_value(i);
8959 END IF;
8960
8961 WHEN 'REVERSED_DISTRIBUTION_ID1' THEN
8962 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8963 l_rev_dist_id_char_1 := p_rec_acct_attrs.array_char_value(i);
8964 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8965 l_rev_dist_id_num_1 := p_rec_acct_attrs.array_num_value(i);
8966 END IF;
8967
8968 WHEN 'REVERSED_DISTRIBUTION_ID2' THEN
8969 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8970 l_rev_dist_id_char_2 := p_rec_acct_attrs.array_char_value(i);
8971 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8972 l_rev_dist_id_num_2 := p_rec_acct_attrs.array_num_value(i);
8973 END IF;
8974
8975 WHEN 'REVERSED_DISTRIBUTION_ID3' THEN
8976 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8977 l_rev_dist_id_char_3 := p_rec_acct_attrs.array_char_value(i);
8978 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8979 l_rev_dist_id_num_3 := p_rec_acct_attrs.array_num_value(i);
8980 END IF;
8981
8982 WHEN 'REVERSED_DISTRIBUTION_ID4' THEN
8983 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8984 l_rev_dist_id_char_4 := p_rec_acct_attrs.array_char_value(i);
8985 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8986 l_rev_dist_id_num_4 := p_rec_acct_attrs.array_num_value(i);
8987 END IF;
8988
8989 WHEN 'REVERSED_DISTRIBUTION_ID5' THEN
8990 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8991 l_rev_dist_id_char_5 := p_rec_acct_attrs.array_char_value(i);
8992 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8993 l_rev_dist_id_num_5 := p_rec_acct_attrs.array_num_value(i);
8994 END IF;
8995
8996 WHEN 'REVERSED_DISTRIBUTION_TYPE' THEN
8997 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8998 l_rev_dist_type := p_rec_acct_attrs.array_char_value(i);
8999 ELSE
9000 l_rev_dist_type := p_rec_acct_attrs.array_num_value(i);
9001 END IF;
9002 --
9003 -- Upgrade attributes
9004 --
9005 WHEN 'ACTUAL_UPG_OPTION' THEN
9006 l_actual_upg_option := p_rec_acct_attrs.array_char_value(i);
9007
9008 WHEN 'ACTUAL_UPG_DR_CCID' THEN
9009 l_actual_upg_dr_ccid := p_rec_acct_attrs.array_num_value(i);
9010
9011 WHEN 'ACTUAL_UPG_CR_CCID' THEN
9012 l_actual_upg_cr_ccid := p_rec_acct_attrs.array_num_value(i);
9013
9014 WHEN 'ACTUAL_UPG_DR_ENTERED_AMT' THEN
9015 l_actual_upg_dr_entered_amt := p_rec_acct_attrs.array_num_value(i);
9016
9017 WHEN 'ACTUAL_UPG_CR_ENTERED_AMT' THEN
9018 l_actual_upg_cr_entered_amt := p_rec_acct_attrs.array_num_value(i);
9019
9020 WHEN 'ACTUAL_UPG_DR_ENTERED_CURR' THEN
9021 l_actual_upg_dr_entered_curr := p_rec_acct_attrs.array_char_value(i);
9022
9023 WHEN 'ACTUAL_UPG_CR_ENTERED_CURR' THEN
9024 l_actual_upg_cr_entered_curr := p_rec_acct_attrs.array_char_value(i);
9025
9026 WHEN 'ACTUAL_UPG_DR_LEDGER_AMT' THEN
9027 l_actual_upg_dr_ledger_amt := p_rec_acct_attrs.array_num_value(i);
9028
9029 WHEN 'ACTUAL_UPG_CR_LEDGER_AMT' THEN
9030 l_actual_upg_cr_ledger_amt := p_rec_acct_attrs.array_num_value(i);
9031
9032 WHEN 'ACTUAL_UPG_DR_ACCT_CLASS' THEN
9033 l_actual_upg_dr_acct_class := p_rec_acct_attrs.array_char_value(i);
9034
9035 WHEN 'ACTUAL_UPG_CR_ACCT_CLASS' THEN
9036 l_actual_upg_cr_acct_class := p_rec_acct_attrs.array_char_value(i);
9037
9038 WHEN 'ACTUAL_UPG_DR_XRATE' THEN
9039 l_actual_upg_dr_xrate := p_rec_acct_attrs.array_num_value(i);
9040
9041 WHEN 'ACTUAL_UPG_DR_XRATE_TYPE' THEN
9042 l_actual_upg_dr_xrate_type := p_rec_acct_attrs.array_char_value(i);
9043
9044 WHEN 'ACTUAL_UPG_DR_XDATE' THEN
9045 l_actual_upg_dr_xdate := p_rec_acct_attrs.array_date_value(i);
9046
9047 WHEN 'ACTUAL_UPG_CR_XRATE' THEN
9048 l_actual_upg_cr_xrate := p_rec_acct_attrs.array_num_value(i);
9049
9050 WHEN 'ACTUAL_UPG_CR_XRATE_TYPE' THEN
9051 l_actual_upg_cr_xrate_type := p_rec_acct_attrs.array_char_value(i);
9052
9053 WHEN 'ACTUAL_UPG_CR_XDATE' THEN
9054 l_actual_upg_cr_xdate := p_rec_acct_attrs.array_date_value(i);
9055
9056 WHEN 'ENC_UPG_OPTION' THEN
9057 l_enc_upg_option := p_rec_acct_attrs.array_char_value(i);
9058
9059 WHEN 'ENC_UPG_DR_CCID' THEN
9060 l_enc_upg_dr_ccid := p_rec_acct_attrs.array_num_value(i);
9061
9062 WHEN 'ENC_UPG_CR_CCID' THEN
9063 l_enc_upg_cr_ccid := p_rec_acct_attrs.array_num_value(i);
9064
9065 WHEN 'UPG_DR_ENC_TYPE_ID' THEN
9066 l_upg_dr_enc_type_id := p_rec_acct_attrs.array_num_value(i);
9067
9068 WHEN 'UPG_CR_ENC_TYPE_ID' THEN
9069 l_upg_cr_enc_type_id := p_rec_acct_attrs.array_num_value(i);
9070
9071 WHEN 'ENC_UPG_DR_ENTERED_AMT' THEN
9072 l_enc_upg_dr_entered_amt := p_rec_acct_attrs.array_num_value(i);
9073
9074 WHEN 'ENC_UPG_CR_ENTERED_AMT' THEN
9075 l_enc_upg_cr_entered_amt := p_rec_acct_attrs.array_num_value(i);
9076
9077 WHEN 'ENC_UPG_DR_ENTERED_CURR' THEN
9078 l_enc_upg_dr_entered_curr := p_rec_acct_attrs.array_char_value(i);
9079
9080 WHEN 'ENC_UPG_CR_ENTERED_CURR' THEN
9081 l_enc_upg_cr_entered_curr := p_rec_acct_attrs.array_char_value(i);
9082
9083 WHEN 'ENC_UPG_DR_LEDGER_AMT' THEN
9084 l_enc_upg_dr_ledger_amt := p_rec_acct_attrs.array_num_value(i);
9085
9086 WHEN 'ENC_UPG_CR_LEDGER_AMT' THEN
9087 l_enc_upg_cr_ledger_amt := p_rec_acct_attrs.array_num_value(i);
9088
9089 WHEN 'ENC_UPG_DR_ACCT_CLASS' THEN
9090 l_enc_upg_dr_acct_class := p_rec_acct_attrs.array_char_value(i);
9091
9092 WHEN 'ENC_UPG_CR_ACCT_CLASS' THEN
9093 l_enc_upg_cr_acct_class := p_rec_acct_attrs.array_char_value(i);
9094 -- 5845547 for reversal
9095 WHEN 'UPG_PARTY_TYPE' THEN
9096 l_upg_party_type := p_rec_acct_attrs.array_char_value(i);
9097
9098 WHEN 'UPG_PARTY_ID' THEN
9099 l_upg_party_id := p_rec_acct_attrs.array_num_value(i);
9100
9101 WHEN 'UPG_PARTY_SITE_ID' THEN
9102 l_upg_party_site_id := p_rec_acct_attrs.array_num_value(i);
9103 --
9104 -- end upgrade attributes
9105 --
9106
9107 -- bug 7159711
9108 WHEN 'TAX_LINE_REF_ID' THEN
9109 l_tax_line_ref := p_rec_acct_attrs.array_num_value(i);
9110
9111 WHEN 'TAX_SUMMARY_LINE_REF_ID' THEN
9112 l_tax_summary_line_ref := p_rec_acct_attrs.array_num_value(i);
9113
9114 WHEN 'TAX_REC_NREC_DIST_REF_ID' THEN
9115 l_tax_rec_nrec_dist_ref := p_rec_acct_attrs.array_num_value(i);
9116
9117
9118 ELSE null;
9119 END CASE;
9120 END LOOP;
9121
9122 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
9123 trace
9124 (p_msg => 'l_actual_upg_option = '||l_actual_upg_option
9125 ,p_level => C_LEVEL_STATEMENT
9126 ,p_module => l_log_module);
9127 trace
9128 (p_msg => 'l_enc_upg_option = '||l_enc_upg_option
9129 ,p_level => C_LEVEL_STATEMENT
9130 ,p_module => l_log_module);
9131 END IF;
9132
9133 IF xla_accounting_cache_pkg.GetValueChar
9134 (p_source_code => 'LEDGER_CATEGORY_CODE'
9135 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('SECONDARY')
9136 OR (NVL(l_actual_upg_option,'N') = 'N' OR NVL(l_enc_upg_option,'N') = 'N')
9137 THEN
9138
9139 SetNewLine;
9140
9141 set_ae_header_id (p_ae_header_id => p_event_id,
9142 p_header_num => 0); -- 4262811 by default all zero. 1,2,.. are used by Accl Reversal or MPA.
9143
9144 g_rec_lines.array_balance_type_code(g_LineNumber) := 'X';
9145
9146 g_rec_lines.array_ledger_id(g_LineNumber) :=
9147 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9148
9149 g_rec_lines.array_event_number(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_number;
9150
9151 g_rec_lines.array_entity_id(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id;
9152
9153 g_rec_lines.array_reversal_code(g_LineNumber) := 'DUMMY_LR';
9154
9155 ------------------------------------------------------------------------------------------
9156 -- 5055878 Handle line reversal method option - SIDE and SIGN
9157 ------------------------------------------------------------------------------------------
9158 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE' THEN
9159 g_rec_lines.array_switch_side_flag(g_LineNumber) := 'Y';
9160 ELSE
9161 g_rec_lines.array_switch_side_flag(g_LineNumber) := 'N';
9162 END IF;
9163 ------------------------------------------------------------------------------------------
9164
9165 g_rec_lines.array_sys_distribution_type(g_LineNumber) := l_sys_distribution_type;
9166 g_rec_lines.array_acc_reversal_option(g_LineNumber) := l_acc_reversal_option;
9167 g_rec_lines.array_distribution_id_char_1(g_LineNumber) := l_distribution_id_char_1;
9168 g_rec_lines.array_distribution_id_num_1(g_LineNumber) := l_distribution_id_num_1;
9169 g_rec_lines.array_distribution_id_char_2(g_LineNumber) := l_distribution_id_char_2;
9170 g_rec_lines.array_distribution_id_num_2(g_LineNumber) := l_distribution_id_num_2;
9171 g_rec_lines.array_distribution_id_char_3(g_LineNumber) := l_distribution_id_char_3;
9172 g_rec_lines.array_distribution_id_num_3(g_LineNumber) := l_distribution_id_num_3;
9173 g_rec_lines.array_distribution_id_char_4(g_LineNumber) := l_distribution_id_char_4;
9174 g_rec_lines.array_distribution_id_num_4(g_LineNumber) := l_distribution_id_num_4;
9175 g_rec_lines.array_distribution_id_char_5(g_LineNumber) := l_distribution_id_char_5;
9176 g_rec_lines.array_distribution_id_num_5(g_LineNumber) := l_distribution_id_num_5;
9177 g_rec_lines.array_rev_dist_id_char_1(g_LineNumber) := l_rev_dist_id_char_1;
9178 g_rec_lines.array_rev_dist_id_num_1(g_LineNumber) := l_rev_dist_id_num_1;
9179 g_rec_lines.array_rev_dist_id_char_2(g_LineNumber) := l_rev_dist_id_char_2;
9180 g_rec_lines.array_rev_dist_id_num_2(g_LineNumber) := l_rev_dist_id_num_2;
9181 g_rec_lines.array_rev_dist_id_char_3(g_LineNumber) := l_rev_dist_id_char_3;
9182 g_rec_lines.array_rev_dist_id_num_3(g_LineNumber) := l_rev_dist_id_num_3;
9183 g_rec_lines.array_rev_dist_id_char_4(g_LineNumber) := l_rev_dist_id_char_4;
9184 g_rec_lines.array_rev_dist_id_num_4(g_LineNumber) := l_rev_dist_id_num_4;
9185 g_rec_lines.array_rev_dist_id_char_5(g_LineNumber) := l_rev_dist_id_char_5;
9186 g_rec_lines.array_rev_dist_id_num_5(g_LineNumber) := l_rev_dist_id_num_5;
9187 g_rec_lines.array_rev_dist_type(g_LineNumber) := l_rev_dist_type;
9188 g_rec_lines.array_gl_date(g_LineNumber) := l_gl_date; --5194849
9189
9190 g_rec_lines.array_tax_line_ref(g_LineNumber) := l_tax_line_ref; -- Bug7159711
9191 g_rec_lines.array_tax_summary_line_ref(g_LineNumber) := l_tax_summary_line_ref; -- Bug7159711
9192 g_rec_lines.array_tax_rec_nrec_dist_ref(g_LineNumber) := l_tax_rec_nrec_dist_ref; -- Bug7159711
9193
9194
9195 --
9196 -- Validate the distribution links for the extract line
9197 -- if the validation fails, mark the dummy line as 'DUMMY_LR_ERROR'
9198 --
9199 IF NOT ValidateRevLinks THEN
9200 g_rec_lines.array_reversal_code(g_LineNumber) := 'DUMMY_LR_ERROR';
9201 END IF;
9202 END IF;
9203
9204
9205 IF xla_accounting_cache_pkg.GetValueChar
9206 (p_source_code => 'LEDGER_CATEGORY_CODE'
9207 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9208 AND (NVL(l_actual_upg_option,'N') = 'Y')
9209 THEN
9210
9211 SetNewLine;
9212
9213 set_ae_header_id
9214 (p_ae_header_id => p_event_id
9215 ,p_header_num => 0);
9216
9217 g_rec_lines.array_gl_date(g_LineNumber) := l_gl_date;
9218 g_rec_lines.array_ledger_id(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9219 g_rec_lines.array_event_number(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_number;
9220 g_rec_lines.array_reversal_code(g_LineNumber) := 'REVERSAL';
9221 g_rec_lines.array_entity_id(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id;
9222 g_rec_lines.array_balance_type_code(g_LineNumber) := 'A';
9223 g_rec_lines.array_calculate_acctd_flag(g_LineNumber) := p_calculate_acctd_flag;
9224 g_rec_lines.array_calculate_g_l_flag(g_LineNumber) := p_calculate_g_l_flag;
9225
9226 g_rec_lines.array_sys_distribution_type(g_LineNumber) := l_sys_distribution_type;
9227 g_rec_lines.array_distribution_id_char_1(g_LineNumber) := l_distribution_id_char_1;
9228 g_rec_lines.array_distribution_id_num_1(g_LineNumber) := l_distribution_id_num_1;
9229 g_rec_lines.array_distribution_id_char_2(g_LineNumber) := l_distribution_id_char_2;
9230 g_rec_lines.array_distribution_id_num_2(g_LineNumber) := l_distribution_id_num_2;
9231 g_rec_lines.array_distribution_id_char_3(g_LineNumber) := l_distribution_id_char_3;
9232 g_rec_lines.array_distribution_id_num_3(g_LineNumber) := l_distribution_id_num_3;
9233 g_rec_lines.array_distribution_id_char_4(g_LineNumber) := l_distribution_id_char_4;
9234 g_rec_lines.array_distribution_id_num_4(g_LineNumber) := l_distribution_id_num_4;
9235 g_rec_lines.array_distribution_id_char_5(g_LineNumber) := l_distribution_id_char_5;
9236 g_rec_lines.array_distribution_id_num_5(g_LineNumber) := l_distribution_id_num_5;
9237 g_rec_lines.array_rev_dist_id_char_1(g_LineNumber) := l_rev_dist_id_char_1;
9238 g_rec_lines.array_rev_dist_id_num_1(g_LineNumber) := l_rev_dist_id_num_1;
9239 g_rec_lines.array_rev_dist_id_char_2(g_LineNumber) := l_rev_dist_id_char_2;
9240 g_rec_lines.array_rev_dist_id_num_2(g_LineNumber) := l_rev_dist_id_num_2;
9241 g_rec_lines.array_rev_dist_id_char_3(g_LineNumber) := l_rev_dist_id_char_3;
9242 g_rec_lines.array_rev_dist_id_num_3(g_LineNumber) := l_rev_dist_id_num_3;
9243 g_rec_lines.array_rev_dist_id_char_4(g_LineNumber) := l_rev_dist_id_char_4;
9244 g_rec_lines.array_rev_dist_id_num_4(g_LineNumber) := l_rev_dist_id_num_4;
9245 g_rec_lines.array_rev_dist_id_char_5(g_LineNumber) := l_rev_dist_id_char_5;
9246 g_rec_lines.array_rev_dist_id_num_5(g_LineNumber) := l_rev_dist_id_num_5;
9247 g_rec_lines.array_rev_dist_type(g_LineNumber) := l_rev_dist_type;
9248
9249 g_rec_lines.array_entered_amount(g_LineNumber) := l_actual_upg_dr_entered_amt;
9250 g_rec_lines.array_currency_code(g_LineNumber) := l_actual_upg_dr_entered_curr;
9251 g_rec_lines.array_ledger_amount(g_LineNumber) := l_actual_upg_dr_ledger_amt;
9252 g_rec_lines.array_accounting_class(g_LineNumber) := l_actual_upg_dr_acct_class;
9253 g_rec_lines.array_curr_conversion_rate(g_LineNumber) := l_actual_upg_dr_xrate;
9254 g_rec_lines.array_curr_conversion_date(g_LineNumber) := l_actual_upg_dr_xdate;
9255 g_rec_lines.array_curr_conversion_type(g_LineNumber) := l_actual_upg_dr_xrate_type;
9256
9257 -- 5845547 upgrade party attributes
9258 g_rec_lines.array_party_type_code(g_LineNumber) := l_upg_party_type;
9259 g_rec_lines.array_party_id(g_LineNumber) := l_upg_party_id;
9260 g_rec_lines.array_party_site_id(g_LineNumber) := l_upg_party_site_id;
9261
9262 g_rec_lines.array_natural_side_code(g_LineNumber) := 'D';
9263 g_rec_lines.array_acct_entry_type_code(g_LineNumber) := 'A';
9264 g_rec_lines.array_switch_side_flag(g_LineNumber) := 'Y';
9265 g_rec_lines.array_merge_duplicate_code(g_LineNumber) := 'N';
9266 g_rec_lines.array_gl_transfer_mode(g_LineNumber) := 'S';
9267
9268 g_rec_lines.array_currency_mau(g_LineNumber) :=
9269 xla_accounting_cache_pkg.GetCurrencyMau(g_rec_lines.array_currency_code(g_LineNumber));
9270
9271 xla_ae_lines_pkg.set_ccid(
9272 p_code_combination_id => l_actual_upg_dr_ccid
9273 , p_value_type_code => 'S' --l_adr_value_type_code
9274 , p_transaction_coa_id => NULL --l_adr_transaction_coa_id
9275 , p_accounting_coa_id => NULL --l_adr_accounting_coa_id
9276 , p_adr_code => NULL --'SS_TEST'
9277 , p_adr_type_code => NULL --'C'
9278 , p_component_type => g_accounting_line.component_type --l_component_type
9279 , p_component_code => g_accounting_line.accounting_line_code --l_component_code
9280 , p_component_type_code => g_accounting_line.accounting_line_type_code --l_component_type_code
9281 , p_component_appl_id => g_accounting_line.accounting_line_appl_id --l_component_appl_id
9282 , p_amb_context_code => g_accounting_line.amb_context_code --l_amb_context_code
9283 , p_side => 'NA'
9284 );
9285
9286 SetDebitCreditAmounts;
9287
9288 SetNewLine;
9289
9290 set_ae_header_id
9291 (p_ae_header_id => p_event_id
9292 ,p_header_num => 0);
9293
9294 g_rec_lines.array_gl_date(g_LineNumber) := l_gl_date;
9295 g_rec_lines.array_ledger_id(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9296 g_rec_lines.array_event_number(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_number;
9297 g_rec_lines.array_reversal_code(g_LineNumber) := 'REVERSAL';
9298 g_rec_lines.array_entity_id(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id;
9299 g_rec_lines.array_balance_type_code(g_LineNumber) := 'A';
9300 g_rec_lines.array_calculate_acctd_flag(g_LineNumber) := p_calculate_acctd_flag;
9301 g_rec_lines.array_calculate_g_l_flag(g_LineNumber) := p_calculate_g_l_flag;
9302
9303 g_rec_lines.array_sys_distribution_type(g_LineNumber) := l_sys_distribution_type;
9304 g_rec_lines.array_distribution_id_char_1(g_LineNumber) := l_distribution_id_char_1;
9305 g_rec_lines.array_distribution_id_num_1(g_LineNumber) := l_distribution_id_num_1;
9306 g_rec_lines.array_distribution_id_char_2(g_LineNumber) := l_distribution_id_char_2;
9307 g_rec_lines.array_distribution_id_num_2(g_LineNumber) := l_distribution_id_num_2;
9308 g_rec_lines.array_distribution_id_char_3(g_LineNumber) := l_distribution_id_char_3;
9309 g_rec_lines.array_distribution_id_num_3(g_LineNumber) := l_distribution_id_num_3;
9310 g_rec_lines.array_distribution_id_char_4(g_LineNumber) := l_distribution_id_char_4;
9311 g_rec_lines.array_distribution_id_num_4(g_LineNumber) := l_distribution_id_num_4;
9312 g_rec_lines.array_distribution_id_char_5(g_LineNumber) := l_distribution_id_char_5;
9313 g_rec_lines.array_distribution_id_num_5(g_LineNumber) := l_distribution_id_num_5;
9314 g_rec_lines.array_rev_dist_id_char_1(g_LineNumber) := l_rev_dist_id_char_1;
9315 g_rec_lines.array_rev_dist_id_num_1(g_LineNumber) := l_rev_dist_id_num_1;
9316 g_rec_lines.array_rev_dist_id_char_2(g_LineNumber) := l_rev_dist_id_char_2;
9317 g_rec_lines.array_rev_dist_id_num_2(g_LineNumber) := l_rev_dist_id_num_2;
9318 g_rec_lines.array_rev_dist_id_char_3(g_LineNumber) := l_rev_dist_id_char_3;
9319 g_rec_lines.array_rev_dist_id_num_3(g_LineNumber) := l_rev_dist_id_num_3;
9320 g_rec_lines.array_rev_dist_id_char_4(g_LineNumber) := l_rev_dist_id_char_4;
9321 g_rec_lines.array_rev_dist_id_num_4(g_LineNumber) := l_rev_dist_id_num_4;
9322 g_rec_lines.array_rev_dist_id_char_5(g_LineNumber) := l_rev_dist_id_char_5;
9323 g_rec_lines.array_rev_dist_id_num_5(g_LineNumber) := l_rev_dist_id_num_5;
9324 g_rec_lines.array_rev_dist_type(g_LineNumber) := l_rev_dist_type;
9325
9326 g_rec_lines.array_entered_amount(g_LineNumber) := l_actual_upg_cr_entered_amt;
9327 g_rec_lines.array_currency_code(g_LineNumber) := l_actual_upg_cr_entered_curr;
9328 g_rec_lines.array_ledger_amount(g_LineNumber) := l_actual_upg_cr_ledger_amt;
9329 g_rec_lines.array_accounting_class(g_LineNumber) := l_actual_upg_cr_acct_class;
9330 g_rec_lines.array_curr_conversion_rate(g_LineNumber) := l_actual_upg_cr_xrate;
9331 g_rec_lines.array_curr_conversion_date(g_LineNumber) := l_actual_upg_cr_xdate;
9332 g_rec_lines.array_curr_conversion_type(g_LineNumber) := l_actual_upg_cr_xrate_type;
9333
9334 -- 5845547 upgrade party attributes
9335 g_rec_lines.array_party_type_code(g_LineNumber) := l_upg_party_type;
9336 g_rec_lines.array_party_id(g_LineNumber) := l_upg_party_id;
9337 g_rec_lines.array_party_site_id(g_LineNumber) := l_upg_party_site_id;
9338
9339 g_rec_lines.array_natural_side_code(g_LineNumber) := 'C';
9340 g_rec_lines.array_acct_entry_type_code(g_LineNumber) := 'A';
9341 g_rec_lines.array_switch_side_flag(g_LineNumber) := 'Y';
9342 g_rec_lines.array_merge_duplicate_code(g_LineNumber) := 'N';
9343 g_rec_lines.array_gl_transfer_mode(g_LineNumber) := 'S';
9344
9345 g_rec_lines.array_currency_mau(g_LineNumber) :=
9346 xla_accounting_cache_pkg.GetCurrencyMau(g_rec_lines.array_currency_code(g_LineNumber));
9347
9348 xla_ae_lines_pkg.set_ccid(
9349 p_code_combination_id => l_actual_upg_cr_ccid
9350 , p_value_type_code => 'S' --l_adr_value_type_code
9351 , p_transaction_coa_id => NULL --l_adr_transaction_coa_id
9352 , p_accounting_coa_id => NULL --l_adr_accounting_coa_id
9353 , p_adr_code => NULL --'SS_TEST'
9354 , p_adr_type_code => NULL --'C'
9355 , p_component_type => g_accounting_line.component_type --l_component_type
9356 , p_component_code => g_accounting_line.accounting_line_code --l_component_code
9357 , p_component_type_code => g_accounting_line.accounting_line_type_code --l_component_type_code
9358 , p_component_appl_id => g_accounting_line.accounting_line_appl_id --l_component_appl_id
9359 , p_amb_context_code => g_accounting_line.amb_context_code --l_amb_context_code
9360 , p_side => 'NA'
9361 );
9362
9363 SetDebitCreditAmounts;
9364
9365 --
9366 -- Validate the distribution links for the extract line
9367 -- if the validation fails, mark the dummy line as 'DUMMY_LR_ERROR'
9368 --
9369 -- IF NOT ValidateRevLinks THEN
9370 -- g_rec_lines.array_reversal_code(g_LineNumber) := 'DUMMY_LR_ERROR';
9371 -- END IF;
9372 END IF;
9373
9374 IF xla_accounting_cache_pkg.GetValueChar
9375 (p_source_code => 'LEDGER_CATEGORY_CODE'
9376 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9377 AND (l_enc_upg_option = 'Y')
9378 THEN
9379
9380 IF l_upg_dr_enc_type_id IS NOT NULL THEN
9381 SetNewLine;
9382
9383 set_ae_header_id
9384 (p_ae_header_id => p_event_id
9385 ,p_header_num => 0);
9386
9387 g_rec_lines.array_gl_date(g_LineNumber) := l_gl_date;
9388 g_rec_lines.array_ledger_id(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9389 g_rec_lines.array_event_number(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_number;
9390 g_rec_lines.array_reversal_code(g_LineNumber) := 'REVERSAL';
9391 g_rec_lines.array_entity_id(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id;
9392 g_rec_lines.array_balance_type_code(g_LineNumber) := 'E';
9393 g_rec_lines.array_calculate_acctd_flag(g_LineNumber) := 'N';
9394 g_rec_lines.array_calculate_g_l_flag(g_LineNumber) := 'N';
9395
9396 g_rec_lines.array_sys_distribution_type(g_LineNumber) := l_sys_distribution_type;
9397 g_rec_lines.array_distribution_id_char_1(g_LineNumber) := l_distribution_id_char_1;
9398 g_rec_lines.array_distribution_id_num_1(g_LineNumber) := l_distribution_id_num_1;
9399 g_rec_lines.array_distribution_id_char_2(g_LineNumber) := l_distribution_id_char_2;
9400 g_rec_lines.array_distribution_id_num_2(g_LineNumber) := l_distribution_id_num_2;
9401 g_rec_lines.array_distribution_id_char_3(g_LineNumber) := l_distribution_id_char_3;
9402 g_rec_lines.array_distribution_id_num_3(g_LineNumber) := l_distribution_id_num_3;
9403 g_rec_lines.array_distribution_id_char_4(g_LineNumber) := l_distribution_id_char_4;
9404 g_rec_lines.array_distribution_id_num_4(g_LineNumber) := l_distribution_id_num_4;
9405 g_rec_lines.array_distribution_id_char_5(g_LineNumber) := l_distribution_id_char_5;
9406 g_rec_lines.array_distribution_id_num_5(g_LineNumber) := l_distribution_id_num_5;
9407 g_rec_lines.array_rev_dist_id_char_1(g_LineNumber) := l_rev_dist_id_char_1;
9408 g_rec_lines.array_rev_dist_id_num_1(g_LineNumber) := l_rev_dist_id_num_1;
9409 g_rec_lines.array_rev_dist_id_char_2(g_LineNumber) := l_rev_dist_id_char_2;
9410 g_rec_lines.array_rev_dist_id_num_2(g_LineNumber) := l_rev_dist_id_num_2;
9411 g_rec_lines.array_rev_dist_id_char_3(g_LineNumber) := l_rev_dist_id_char_3;
9412 g_rec_lines.array_rev_dist_id_num_3(g_LineNumber) := l_rev_dist_id_num_3;
9413 g_rec_lines.array_rev_dist_id_char_4(g_LineNumber) := l_rev_dist_id_char_4;
9414 g_rec_lines.array_rev_dist_id_num_4(g_LineNumber) := l_rev_dist_id_num_4;
9415 g_rec_lines.array_rev_dist_id_char_5(g_LineNumber) := l_rev_dist_id_char_5;
9416 g_rec_lines.array_rev_dist_id_num_5(g_LineNumber) := l_rev_dist_id_num_5;
9417 g_rec_lines.array_rev_dist_type(g_LineNumber) := l_rev_dist_type;
9418
9419 g_rec_lines.array_entered_amount(g_LineNumber) := l_enc_upg_dr_entered_amt;
9420 g_rec_lines.array_currency_code(g_LineNumber) := l_enc_upg_dr_entered_curr;
9421 g_rec_lines.array_ledger_amount(g_LineNumber) := l_enc_upg_dr_ledger_amt;
9422 g_rec_lines.array_accounting_class(g_LineNumber) := l_enc_upg_dr_acct_class;
9423 g_rec_lines.array_encumbrance_type_id(g_LineNumber) := l_upg_dr_enc_type_id; -- 5845547
9424
9425 -- 5845547 upgrade party attributes
9426 g_rec_lines.array_party_type_code(g_LineNumber) := l_upg_party_type;
9427 g_rec_lines.array_party_id(g_LineNumber) := l_upg_party_id;
9428 g_rec_lines.array_party_site_id(g_LineNumber) := l_upg_party_site_id;
9429
9430 g_rec_lines.array_natural_side_code(g_LineNumber) := 'D';
9431 g_rec_lines.array_acct_entry_type_code(g_LineNumber) := 'E';
9432 g_rec_lines.array_switch_side_flag(g_LineNumber) := 'Y';
9433 g_rec_lines.array_merge_duplicate_code(g_LineNumber) := 'N';
9434 g_rec_lines.array_gl_transfer_mode(g_LineNumber) := 'S';
9435
9436 g_rec_lines.array_currency_mau(g_LineNumber) :=
9437 xla_accounting_cache_pkg.GetCurrencyMau(g_rec_lines.array_currency_code(g_LineNumber));
9438
9439 xla_ae_lines_pkg.set_ccid(
9440 p_code_combination_id => l_enc_upg_dr_ccid
9441 , p_value_type_code => 'S' --l_adr_value_type_code
9442 , p_transaction_coa_id => NULL --l_adr_transaction_coa_id
9443 , p_accounting_coa_id => NULL --l_adr_accounting_coa_id
9444 , p_adr_code => NULL --'SS_TEST'
9445 , p_adr_type_code => NULL --'C'
9446 , p_component_type => g_accounting_line.component_type --l_component_type
9447 , p_component_code => g_accounting_line.accounting_line_code --l_component_code
9448 , p_component_type_code => g_accounting_line.accounting_line_type_code --l_component_type_code
9449 , p_component_appl_id => g_accounting_line.accounting_line_appl_id --l_component_appl_id
9450 , p_amb_context_code => g_accounting_line.amb_context_code --l_amb_context_code
9451 , p_side => 'NA'
9452 );
9453
9454 SetDebitCreditAmounts;
9455 END IF;
9456
9457 IF l_upg_cr_enc_type_id IS NOT NULL THEN
9458 SetNewLine;
9459
9460 set_ae_header_id
9461 (p_ae_header_id => p_event_id
9462 ,p_header_num => 0);
9463
9464 g_rec_lines.array_gl_date(g_LineNumber) := l_gl_date;
9465 g_rec_lines.array_ledger_id(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9466 g_rec_lines.array_event_number(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_number;
9467 g_rec_lines.array_reversal_code(g_LineNumber) := 'REVERSAL';
9468 g_rec_lines.array_entity_id(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id;
9469 g_rec_lines.array_balance_type_code(g_LineNumber) := 'E';
9470 g_rec_lines.array_calculate_acctd_flag(g_LineNumber) := 'N';
9471 g_rec_lines.array_calculate_g_l_flag(g_LineNumber) := 'N';
9472
9473 g_rec_lines.array_sys_distribution_type(g_LineNumber) := l_sys_distribution_type;
9474 g_rec_lines.array_distribution_id_char_1(g_LineNumber) := l_distribution_id_char_1;
9475 g_rec_lines.array_distribution_id_num_1(g_LineNumber) := l_distribution_id_num_1;
9476 g_rec_lines.array_distribution_id_char_2(g_LineNumber) := l_distribution_id_char_2;
9477 g_rec_lines.array_distribution_id_num_2(g_LineNumber) := l_distribution_id_num_2;
9478 g_rec_lines.array_distribution_id_char_3(g_LineNumber) := l_distribution_id_char_3;
9479 g_rec_lines.array_distribution_id_num_3(g_LineNumber) := l_distribution_id_num_3;
9480 g_rec_lines.array_distribution_id_char_4(g_LineNumber) := l_distribution_id_char_4;
9481 g_rec_lines.array_distribution_id_num_4(g_LineNumber) := l_distribution_id_num_4;
9482 g_rec_lines.array_distribution_id_char_5(g_LineNumber) := l_distribution_id_char_5;
9483 g_rec_lines.array_distribution_id_num_5(g_LineNumber) := l_distribution_id_num_5;
9484 g_rec_lines.array_rev_dist_id_char_1(g_LineNumber) := l_rev_dist_id_char_1;
9485 g_rec_lines.array_rev_dist_id_num_1(g_LineNumber) := l_rev_dist_id_num_1;
9486 g_rec_lines.array_rev_dist_id_char_2(g_LineNumber) := l_rev_dist_id_char_2;
9487 g_rec_lines.array_rev_dist_id_num_2(g_LineNumber) := l_rev_dist_id_num_2;
9488 g_rec_lines.array_rev_dist_id_char_3(g_LineNumber) := l_rev_dist_id_char_3;
9489 g_rec_lines.array_rev_dist_id_num_3(g_LineNumber) := l_rev_dist_id_num_3;
9490 g_rec_lines.array_rev_dist_id_char_4(g_LineNumber) := l_rev_dist_id_char_4;
9491 g_rec_lines.array_rev_dist_id_num_4(g_LineNumber) := l_rev_dist_id_num_4;
9492 g_rec_lines.array_rev_dist_id_char_5(g_LineNumber) := l_rev_dist_id_char_5;
9493 g_rec_lines.array_rev_dist_id_num_5(g_LineNumber) := l_rev_dist_id_num_5;
9494 g_rec_lines.array_rev_dist_type(g_LineNumber) := l_rev_dist_type;
9495
9496 g_rec_lines.array_entered_amount(g_LineNumber) := l_enc_upg_cr_entered_amt;
9497 g_rec_lines.array_currency_code(g_LineNumber) := l_enc_upg_cr_entered_curr;
9498 g_rec_lines.array_ledger_amount(g_LineNumber) := l_enc_upg_cr_ledger_amt;
9499 g_rec_lines.array_accounting_class(g_LineNumber) := l_enc_upg_cr_acct_class;
9500 g_rec_lines.array_encumbrance_type_id(g_LineNumber) := l_upg_cr_enc_type_id; -- 5845547
9501
9502 -- 5845547 upgrade party attributes
9503 g_rec_lines.array_party_type_code(g_LineNumber) := l_upg_party_type;
9504 g_rec_lines.array_party_id(g_LineNumber) := l_upg_party_id;
9505 g_rec_lines.array_party_site_id(g_LineNumber) := l_upg_party_site_id;
9506
9507
9508 g_rec_lines.array_natural_side_code(g_LineNumber) := 'C';
9509 g_rec_lines.array_acct_entry_type_code(g_LineNumber) := 'E';
9510 g_rec_lines.array_switch_side_flag(g_LineNumber) := 'Y';
9511 g_rec_lines.array_merge_duplicate_code(g_LineNumber) := 'N';
9512 g_rec_lines.array_gl_transfer_mode(g_LineNumber) := 'S';
9513
9514 g_rec_lines.array_currency_mau(g_LineNumber) :=
9515 xla_accounting_cache_pkg.GetCurrencyMau(g_rec_lines.array_currency_code(g_LineNumber));
9516
9517 xla_ae_lines_pkg.set_ccid(
9518 p_code_combination_id => l_enc_upg_cr_ccid
9519 , p_value_type_code => 'S' --l_adr_value_type_code
9520 , p_transaction_coa_id => NULL --l_adr_transaction_coa_id
9521 , p_accounting_coa_id => NULL --l_adr_accounting_coa_id
9522 , p_adr_code => NULL --'SS_TEST'
9523 , p_adr_type_code => NULL --'C'
9524 , p_component_type => g_accounting_line.component_type --l_component_type
9525 , p_component_code => g_accounting_line.accounting_line_code --l_component_code
9526 , p_component_type_code => g_accounting_line.accounting_line_type_code --l_component_type_code
9527 , p_component_appl_id => g_accounting_line.accounting_line_appl_id --l_component_appl_id
9528 , p_amb_context_code => g_accounting_line.amb_context_code --l_amb_context_code
9529 , p_side => 'NA'
9530 );
9531
9532 SetDebitCreditAmounts;
9533 END IF;
9534
9535 --
9536 -- Validate the distribution links for the extract line
9537 -- if the validation fails, mark the dummy line as 'DUMMY_LR_ERROR'
9538 --
9539 -- IF NOT ValidateRevLinks THEN
9540 -- g_rec_lines.array_reversal_code(g_LineNumber) := 'DUMMY_LR_ERROR';
9541 -- END IF;
9542 END IF;
9543
9544 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9545 trace
9546 (p_msg => 'END of SetAcctReversalAttrs'
9547 ,p_level => C_LEVEL_PROCEDURE
9548 ,p_module => l_log_module);
9549 END IF;
9550 END SetAcctReversalAttrs;
9551
9552
9553 /*======================================================================+
9554 | |
9555 | Public Procedure |
9556 | |
9557 | |
9558 +======================================================================*/
9559 PROCEDURE SetTrxReversalAttrs
9560 (p_event_id IN NUMBER
9561 ,p_gl_date IN DATE
9562 ,p_trx_reversal_source IN VARCHAR2) IS
9563 l_log_module VARCHAR2(240);
9564 BEGIN
9565 IF g_log_enabled THEN
9566 l_log_module := C_DEFAULT_MODULE||'.SetTrxReversalAttrs';
9567 END IF;
9568
9569 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9570 trace
9571 (p_msg => 'BEGIN of SetTrxReversalAttrs'
9572 ,p_level => C_LEVEL_PROCEDURE
9573 ,p_module => l_log_module);
9574 END IF;
9575
9576 g_temp_line_num := -1;
9577
9578 SetNewLine;
9579
9580 set_ae_header_id (p_ae_header_id => p_event_id,
9581 p_header_num => 0); -- 4262811 by default all zero. 1,2,.. are used by Accl Reversal or MPA.
9582
9583 g_rec_lines.array_balance_type_code(g_LineNumber) := 'X';
9584
9585 g_rec_lines.array_ledger_id(g_LineNumber) :=
9586 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9587
9588 g_rec_lines.array_event_number(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_number;
9589
9590 g_rec_lines.array_entity_id(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id;
9591
9592 g_rec_lines.array_reversal_code(g_LineNumber) := 'DUMMY_TR';
9593
9594 g_rec_lines.array_gl_date(g_LineNumber) := p_gl_date;
9595
9596 ------------------------------------------------------------------------------------------
9597 -- 5055878 Handle transaction reversal method option - SIDE and SIGN
9598 ------------------------------------------------------------------------------------------
9599 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE' THEN
9600 g_rec_lines.array_switch_side_flag(g_LineNumber) := 'Y';
9601 ELSE
9602 g_rec_lines.array_switch_side_flag(g_LineNumber) := 'N';
9603 END IF;
9604 ------------------------------------------------------------------------------------------
9605
9606 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9607 trace
9608 (p_msg => 'END of SetTrxReversalAttrs'
9609 ,p_level => C_LEVEL_PROCEDURE
9610 ,p_module => l_log_module);
9611 END IF;
9612 END SetTrxReversalAttrs;
9613
9614
9615 PROCEDURE CalculateUnroundedAmounts
9616 is
9617 l_log_module VARCHAR2(240);
9618 l_ledger_attrs xla_accounting_cache_pkg.t_array_ledger_attrs;
9619 l_ledger_attrs1 xla_accounting_cache_pkg.t_array_ledger_attrs;
9620 l_primary_ledger_currency VARCHAR2(30):=null;
9621 l_primary_ledger_id NUMBER;
9622 l_secondary_ledger_currency VARCHAR2(30);
9623 l_secondary_ledger_id NUMBER;
9624 l_ledger_id NUMBER;
9625 l_count number;
9626 l_max_ledger_index NUMBER;
9627 l_euro VARCHAR2(30);
9628
9629 /*
9630 type t_array_derive_type table of FND_CURRENCY.derive_type%TYPE index by binary_integer;
9631 l_array_from_derive_type t_array_derive_type;
9632 l_array_to_derive_type t_array_derive_type;
9633 l_array_from_rate xla_ae_journal_entry_pkg.t_array_Num;
9634 l_array_to_rate xla_ae_journal_entry_pkg.t_array_Num;
9635 l_array_from_curr xla_ae_journal_entry_pkg.t_array_V30L;
9636 l_array_to_curr xla_ae_journal_entry_pkg.t_array_V30L;
9637 */
9638
9639 l_array_calculate_amts_flag xla_ae_journal_entry_pkg.t_array_V1L;
9640 l_array_conversion_type xla_ae_journal_entry_pkg.t_array_V30L;
9641 l_array_entered_curr xla_ae_journal_entry_pkg.t_array_V30L;
9642 l_array_conversion_date xla_ae_journal_entry_pkg.t_array_Date;
9643 l_array_conversion_rate xla_ae_journal_entry_pkg.t_array_Num;
9644 l_array_new_rate xla_ae_journal_entry_pkg.t_array_Num;
9645 l_array_new_type xla_ae_journal_entry_pkg.t_array_V30L;
9646 l_array_ledger_id xla_ae_journal_entry_pkg.t_array_Int;
9647 l_array_from_type xla_ae_journal_entry_pkg.t_array_V30L;
9648 l_array_to_type xla_ae_journal_entry_pkg.t_array_V30L;
9649 l_array_primary_type xla_ae_journal_entry_pkg.t_array_V30L;
9650
9651 l_rate NUMBER;
9652 i NUMBER;
9653
9654 cursor csr_lines is
9655 SELECT xal.calculate_acctd_amts_flag
9656 ,xal.currency_conversion_type
9657 ,TRUNC(nvl(xal.currency_conversion_date, xeg.transaction_date))
9658 ,decode(xal.currency_conversion_type, 'User', xal.currency_conversion_rate, -1)
9659 ,xal.currency_code
9660 ,xal.ledger_id
9661 ,decode( fc.derive_type, 'EURO', 'EURO', 'EMU',
9662 decode( sign( trunc(nvl(xal.currency_conversion_date, xeg.transaction_date)) -
9663 trunc(fc.derive_effective)), -1, 'OTHER', 'EMU'), 'OTHER' ) from_type
9664 ,decode( fc1.derive_type, 'EURO', 'EURO', 'EMU',
9665 decode( sign( trunc(nvl(xal.currency_conversion_date, xeg.transaction_date)) -
9666 trunc(fc1.derive_effective)), -1, 'OTHER', 'EMU'), 'OTHER' ) to_type
9667 ,decode( fc2.derive_type, 'EURO', 'EURO', 'EMU',
9668 decode( sign( trunc(nvl(xal.currency_conversion_date, xeg.transaction_date)) -
9669 trunc(fc2.derive_effective)), -1, 'OTHER', 'EMU'), 'OTHER' ) primary_type
9670 FROM xla_ae_lines_gt xal
9671 ,gl_ledgers gl
9672 ,fnd_currencies fc
9673 ,fnd_currencies fc1
9674 ,fnd_currencies fc2
9675 ,xla_events_gt xeg
9676 WHERE xal.ledger_id = gl.ledger_id
9677 AND gl.object_type_code = 'L' /* only ledgers (not ledger sets) */
9678 AND gl.le_ledger_type_code = 'L' /* only legal ledgers */
9679 AND xal.currency_code <> gl.currency_code
9680 AND xal.gain_or_loss_flag = 'N'
9681 AND xal.balance_type_code <> 'X'
9682 AND xal.calculate_acctd_amts_flag = 'Y'
9683 AND fc.currency_code = xal.currency_code
9684 AND fc1.currency_code = gl.currency_code
9685 AND fc2.currency_code = l_primary_ledger_currency
9686 AND xal.event_id = xeg.event_id
9687 AND nvl(xal.reversal_code,C_CHAR) <> C_DUMMY_PRIOR
9688 GROUP BY
9689 xal.calculate_acctd_amts_flag
9690 ,xal.currency_conversion_type
9691 ,TRUNC(nvl(xal.currency_conversion_date, xeg.transaction_date))
9692 ,xal.currency_conversion_rate
9693 ,xal.currency_code
9694 ,xal.ledger_id
9695 ,fc.derive_type
9696 ,fc.derive_effective
9697 ,fc1.derive_type
9698 ,fc1.derive_effective
9699 ,fc2.derive_type
9700 ,fc2.derive_effective
9701 ,decode(xal.currency_conversion_type, 'User', xal.currency_conversion_rate, -1)
9702 ;
9703
9704 BEGIN
9705 IF g_log_enabled THEN
9706 l_log_module := C_DEFAULT_MODULE||'.CalculateUnroundedAmounts';
9707 END IF;
9708
9709 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9710 trace
9711 (p_msg => 'BEGIN of CalculateUnroundedAmounts'
9712 ,p_level => C_LEVEL_PROCEDURE
9713 ,p_module => l_log_module);
9714 END IF;
9715
9716 l_euro :='EUR';
9717
9718 xla_accounting_cache_pkg.BuildLedgerArray(l_ledger_attrs1);
9719
9720 l_max_ledger_index := l_ledger_attrs1.array_ledger_id.COUNT;
9721 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
9722 trace
9723 (p_msg => 'l_max_ledger_index:'||to_char(l_max_ledger_index)
9724 ,p_level => C_LEVEL_STATEMENT
9725 ,p_module => l_log_module);
9726 END IF;
9727 For i in 1..l_max_ledger_index LOOP
9728 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
9729 trace
9730 (p_msg => 'i:'||to_char(i)
9731 ,p_level => C_LEVEL_STATEMENT
9732 ,p_module => l_log_module);
9733 END IF;
9734 l_ledger_id := l_ledger_attrs1.array_ledger_id(i);
9735 IF(l_ledger_attrs1.array_ledger_type(i) = 'PRIMARY') THEN
9736 l_primary_ledger_currency:= l_ledger_attrs1.array_ledger_currency_code(i);
9737 l_primary_ledger_id := l_ledger_id;
9738 ELSIF(l_ledger_attrs1.array_ledger_type(i) = 'SECONDARY') THEN
9739 l_secondary_ledger_currency:= l_ledger_attrs1.array_ledger_currency_code(i);
9740 l_secondary_ledger_id := l_ledger_id;
9741 END IF;
9742 l_ledger_attrs.array_ledger_currency_code(l_ledger_id)
9743 := l_ledger_attrs1.array_ledger_currency_code(i);
9744 l_ledger_attrs.array_ledger_type(l_ledger_id)
9745 := l_ledger_attrs1.array_ledger_type(i);
9746 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
9747 trace
9748 (p_msg => 'middle of loop, i:'||to_char(i)
9749 ,p_level => C_LEVEL_STATEMENT
9750 ,p_module => l_log_module);
9751 END IF;
9752 l_ledger_attrs.array_default_rate_type(l_ledger_id)
9753 := l_ledger_attrs1.array_default_rate_type(i);
9754 l_ledger_attrs.array_inhert_type_flag(l_ledger_id)
9755 := l_ledger_attrs1.array_inhert_type_flag(i);
9756 l_ledger_attrs.array_max_roll_date(l_ledger_id)
9757 := l_ledger_attrs1.array_max_roll_date(i);
9758 END LOOP;
9759
9760 IF l_primary_ledger_currency is null THEN
9761 l_primary_ledger_currency:=l_secondary_ledger_currency;
9762 l_primary_ledger_id:=l_secondary_ledger_id;
9763 END IF;
9764
9765 OPEN csr_lines;
9766
9767 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
9768 trace
9769 (p_msg => 'Starting Loop'
9770 ,p_level => C_LEVEL_STATEMENT
9771 ,p_module => l_log_module);
9772 END IF;
9773 LOOP
9774 FETCH csr_lines
9775 BULK COLLECT INTO
9776 l_array_calculate_amts_flag
9777 ,l_array_conversion_type
9778 ,l_array_conversion_date
9779 ,l_array_conversion_rate
9780 ,l_array_entered_curr
9781 ,l_array_ledger_id
9782 ,l_array_from_type
9783 ,l_array_to_type
9784 ,l_array_primary_type
9785 LIMIT C_BULK_LIMIT;
9786
9787 IF l_array_conversion_type.COUNT = 0 THEN
9788 EXIT;
9789 END IF;
9790 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
9791 trace
9792 (p_msg => 'Loop Count:'||to_char(l_array_conversion_type.COUNT)
9793 ,p_level => C_LEVEL_STATEMENT
9794 ,p_module => l_log_module);
9795 END IF;
9796
9797 FOR i in 1..l_array_conversion_type.COUNT LOOP
9798 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
9799 trace
9800 (p_msg => 'i:'||to_char(i) || ' ledger id:'|| to_char(l_array_ledger_id (i))
9801 ,p_level => C_LEVEL_STATEMENT
9802 ,p_module => l_log_module);
9803 trace
9804 (p_msg => 'ledger currency code:'||l_ledger_attrs.array_ledger_currency_code(l_array_ledger_id (i)) ||' entered curr:'|| l_array_entered_curr(i)
9805 ,p_level => C_LEVEL_STATEMENT
9806 ,p_module => l_log_module);
9807 trace
9808 (p_msg => 'from type:'||l_array_from_type(i) || ' tto type:'||l_array_to_type(i)
9809 ,p_level => C_LEVEL_STATEMENT
9810 ,p_module => l_log_module);
9811 END IF;
9812 BEGIN
9813 IF(l_array_from_type(i) in ('EMU', 'EURO')
9814 AND l_array_to_type(i) in ('EMU', 'EURO')) THEN
9815 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
9816 trace
9817 (p_msg => 'if block1'
9818 ,p_level => C_LEVEL_STATEMENT
9819 ,p_module => l_log_module);
9820 END IF;
9821
9822 l_array_new_type(i) :='EMU Fixed';
9823 l_array_new_rate(i) :=gl_currency_api.get_closest_rate(
9824 x_from_currency => l_array_entered_curr(i)
9825 ,x_to_currency => l_ledger_attrs.array_ledger_currency_code(l_array_ledger_id (i))
9826 ,x_conversion_date => l_array_conversion_date(i)
9827 ,x_conversion_type => 'EMU Fixed'
9828 ,x_max_roll_days => l_ledger_attrs.array_max_roll_date(l_primary_ledger_id));
9829 ELSIF(l_array_ledger_id (i) = l_primary_ledger_id) THEN
9830 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
9831 trace
9832 (p_msg => 'if block2'
9833 ,p_level => C_LEVEL_STATEMENT
9834 ,p_module => l_log_module);
9835 END IF;
9836 l_array_new_type(i) :=l_array_conversion_type(i);
9837 IF (l_array_conversion_type(i) = 'User') THEN
9838 l_array_new_rate(i) := l_array_conversion_rate(i);
9839 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
9840 trace
9841 (p_msg => 'if block2:'||to_char(l_array_new_rate(i))
9842 ,p_level => C_LEVEL_STATEMENT
9843 ,p_module => l_log_module);
9844 END IF;
9845
9846 ELSE
9847 l_array_new_rate(i):=gl_currency_api.get_closest_rate(
9848 x_from_currency => l_array_entered_curr(i)
9849 ,x_to_currency => l_primary_ledger_currency
9850 ,x_conversion_date => l_array_conversion_date(i)
9851 ,x_conversion_type => l_array_conversion_type(i)
9852 ,x_max_roll_days => l_ledger_attrs.array_max_roll_date(l_primary_ledger_id));
9853 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
9854 trace
9855 (p_msg => 'iif block2:'||to_char(l_array_new_rate(i))|| ' ent:'||l_array_entered_curr(i)||' to cur:'|| l_primary_ledger_currency || ' date:'||to_char(l_array_conversion_date(i))||' type:'||l_array_conversion_type(i)
9856 ,p_level => C_LEVEL_STATEMENT
9857 ,p_module => l_log_module);
9858 END IF;
9859 END IF;
9860 ELSE
9861 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
9862 trace
9863 (p_msg => 'if block3'
9864 ,p_level => C_LEVEL_STATEMENT
9865 ,p_module => l_log_module);
9866 END IF;
9867 IF(l_array_conversion_type(i) = 'User' ) THEN
9868 IF(l_array_primary_type(i) in ('EMU', 'EURO')
9869 AND l_array_from_type(i) in ('EMU', 'EURO')) THEN
9870 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
9871 trace
9872 (p_msg => 'if block4'
9873 ,p_level => C_LEVEL_STATEMENT
9874 ,p_module => l_log_module);
9875 END IF;
9876 l_array_new_type(i) :=l_ledger_attrs.array_default_rate_type(l_array_ledger_id (i));
9877 l_array_new_rate(i):=gl_currency_api.get_closest_rate(
9878 x_from_currency => l_array_entered_curr(i)
9879 ,x_to_currency => l_ledger_attrs.array_ledger_currency_code(l_array_ledger_id (i))
9880 ,x_conversion_date => l_array_conversion_date(i)
9881 ,x_conversion_type => l_array_new_type(i)
9882 ,x_max_roll_days => l_ledger_attrs.array_max_roll_date(l_array_ledger_id (i)));
9883 ELSE
9884 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
9885 trace
9886 (p_msg => 'if block5'
9887 ,p_level => C_LEVEL_STATEMENT
9888 ,p_module => l_log_module);
9889 END IF;
9890 l_array_new_type(i) :=l_array_conversion_type(i);
9891 l_rate:=gl_currency_api.get_closest_rate(
9892 x_from_currency => l_primary_ledger_currency
9893 ,x_to_currency => l_ledger_attrs.array_ledger_currency_code(l_array_ledger_id (i))
9894 ,x_conversion_date => l_array_conversion_date(i)
9895 ,x_conversion_type => l_ledger_attrs.array_default_rate_type(l_array_ledger_id (i))
9896 ,x_max_roll_days => l_ledger_attrs.array_max_roll_date(l_array_ledger_id (i)));
9897 l_array_new_rate(i):= l_array_conversion_rate(i) * l_rate;
9898 END IF;
9899 ELSIF(l_ledger_attrs.array_inhert_type_flag(l_array_ledger_id (i))='Y'and l_array_conversion_type(i) is not null) THEN
9900 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
9901 trace
9902 (p_msg => 'if block6'
9903 ,p_level => C_LEVEL_STATEMENT
9904 ,p_module => l_log_module);
9905 END IF;
9906 l_array_new_type(i) :=l_array_conversion_type(i);
9907 l_array_new_rate(i):=gl_currency_api.get_closest_rate(
9908 x_from_currency => l_array_entered_curr(i)
9909 ,x_to_currency => l_ledger_attrs.array_ledger_currency_code(l_array_ledger_id (i))
9910 ,x_conversion_date => l_array_conversion_date(i)
9911 ,x_conversion_type => l_array_conversion_type(i)
9912 ,x_max_roll_days => l_ledger_attrs.array_max_roll_date(l_array_ledger_id (i)));
9913 ELSE
9914 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
9915 trace
9916 (p_msg => 'if block7'
9917 ,p_level => C_LEVEL_STATEMENT
9918 ,p_module => l_log_module);
9919 END IF;
9920 l_array_new_type(i) :=l_ledger_attrs.array_default_rate_type(l_array_ledger_id (i));
9921 l_array_new_rate(i):=gl_currency_api.get_closest_rate(
9922 x_from_currency => l_array_entered_curr(i)
9923 ,x_to_currency => l_ledger_attrs.array_ledger_currency_code(l_array_ledger_id (i))
9924 ,x_conversion_date => l_array_conversion_date(i)
9925 ,x_conversion_type => l_array_new_type(i)
9926 ,x_max_roll_days => l_ledger_attrs.array_max_roll_date(l_array_ledger_id (i)));
9927 END IF;
9928 END IF;
9929 EXCEPTION
9930 WHEN gl_currency_api.NO_RATE THEN
9931 IF (C_LEVEL_EXCEPTION>= g_log_level) THEN
9932 trace
9933 (p_msg => 'No rate for:'
9934 ,p_level => C_LEVEL_EXCEPTION
9935 ,p_module => l_log_module);
9936 trace
9937 (p_msg => 'entered:'||l_array_entered_curr(i)
9938 ,p_level => C_LEVEL_EXCEPTION
9939 ,p_module => l_log_module);
9940 trace
9941 (p_msg => 'accounting curr:'||l_ledger_attrs.array_ledger_currency_code(l_array_ledger_id(i))
9942 ,p_level => C_LEVEL_EXCEPTION
9943 ,p_module => l_log_module);
9944 trace
9945 (p_msg => 'date:'||to_char(l_array_conversion_date(i))
9946 ,p_level => C_LEVEL_EXCEPTION
9947 ,p_module => l_log_module);
9948 trace
9949 (p_msg => 'type:'||l_array_conversion_type(i)
9950 ,p_level => C_LEVEL_EXCEPTION
9951 ,p_module => l_log_module);
9952 trace
9953 (p_msg => 'ledger ID:'||to_char(l_array_ledger_id (i))
9954 ,p_level => C_LEVEL_EXCEPTION
9955 ,p_module => l_log_module);
9956 END IF;
9957 l_array_new_rate(i) := null;
9958 WHEN others THEN
9959 IF (C_LEVEL_EXCEPTION>= g_log_level) THEN
9960 trace
9961 (p_msg => 'Exception:'
9962 ,p_level => C_LEVEL_EXCEPTION
9963 ,p_module => l_log_module);
9964 trace
9965 (p_msg => 'entered:'||l_array_entered_curr(i)
9966 ,p_level => C_LEVEL_EXCEPTION
9967 ,p_module => l_log_module);
9968 trace
9969 (p_msg => 'accounting curr:'||l_ledger_attrs.array_ledger_currency_code(l_array_ledger_id(i))
9970 ,p_level => C_LEVEL_EXCEPTION
9971 ,p_module => l_log_module);
9972 trace
9973 (p_msg => 'date:'||to_char(l_array_conversion_date(i))
9974 ,p_level => C_LEVEL_EXCEPTION
9975 ,p_module => l_log_module);
9976 trace
9977 (p_msg => 'type:'||l_array_conversion_type(i)
9978 ,p_level => C_LEVEL_EXCEPTION
9979 ,p_module => l_log_module);
9980 trace
9981 (p_msg => 'ledger ID:'||to_char(l_array_ledger_id (i))
9982 ,p_level => C_LEVEL_EXCEPTION
9983 ,p_module => l_log_module);
9984 END IF;
9985 RAISE;
9986 END;
9987 END LOOP;
9988
9989 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
9990 trace
9991 (p_msg => 'ending Loop'
9992 ,p_level => C_LEVEL_STATEMENT
9993 ,p_module => l_log_module);
9994
9995 /*
9996 FOR i in 1..l_array_conversion_type.COUNT LOOP
9997 trace
9998 (p_msg => 'i:'||to_char(i)|| ' new rate:'||to_char(l_array_new_rate(i))||' type:'||l_array_new_type(i)
9999 ,p_level => C_LEVEL_STATEMENT
10000 ,p_module => l_log_module);
10001 trace
10002 (p_msg => 'i:'||to_char(i)|| ' ledger id:'||to_char(l_array_ledger_id(i))||' curr:'||l_array_entered_curr(i)||' type:'|| l_array_conversion_type(i)||' date:'||to_char(l_array_conversion_date(i))
10003 ,p_level => C_LEVEL_STATEMENT
10004 ,p_module => l_log_module);
10005 END LOOP;
10006 */
10007
10008 END IF;
10009 FORALL i in 1..l_array_conversion_type.COUNT
10010 UPDATE xla_ae_lines_gt xal
10011 SET currency_conversion_rate = l_array_new_rate(i)
10012 ,currency_conversion_type = l_array_new_type(i)
10013 ,currency_conversion_date = l_array_conversion_date(i)
10014 ,unrounded_accounted_cr = unrounded_entered_cr * l_array_new_rate(i)
10015 ,unrounded_accounted_dr = unrounded_entered_dr * l_array_new_rate(i)
10016 WHERE xal.ledger_id = l_array_ledger_id(i)
10017 AND xal.currency_code = l_array_entered_curr(i)
10018 AND xal.gain_or_loss_flag = 'N'
10019 AND xal.balance_type_code <> 'X'
10020 AND xal.calculate_acctd_amts_flag = 'Y'
10021 AND (xal.currency_conversion_type = l_array_conversion_type(i)
10022 or (xal.currency_conversion_type is null and l_array_conversion_type(i) is null))
10023 AND l_array_conversion_date(i) =
10024 (select TRUNC(nvl(xal.currency_conversion_date, xeg.transaction_date))
10025 from xla_events_gt xeg
10026 where xal.event_id = xeg.event_id)
10027 AND decode(currency_conversion_type, 'User', currency_conversion_rate, -1) = l_array_conversion_rate(i)
10028 AND nvl(xal.reversal_code,'dd') <> C_DUMMY_PRIOR
10029 ;
10030
10031 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
10032 trace
10033 (p_msg => 'ending update'
10034 ,p_level => C_LEVEL_STATEMENT
10035 ,p_module => l_log_module);
10036 END IF;
10037
10038 END LOOP;
10039 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
10040 trace
10041 (p_msg => 'ending loop outside'
10042 ,p_level => C_LEVEL_STATEMENT
10043 ,p_module => l_log_module);
10044 END IF;
10045
10046 CLOSE csr_lines;
10047
10048 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
10049 trace
10050 (p_msg => 'Before the assignment of unrounded amount and conversion rate'
10051 ,p_level => C_LEVEL_STATEMENT
10052 ,p_module => l_log_module);
10053 trace
10054 (p_msg => 'l_ledger_attrs.array_ledger_id.count:'||to_char(l_ledger_attrs.array_ledger_id.COUNT)||' loop count:'||to_char(l_max_ledger_index)
10055 ,p_level => C_LEVEL_STATEMENT
10056 ,p_module => l_log_module);
10057 END IF;
10058
10059 /*
10060 FORALL i in 1..l_max_ledger_index
10061 UPDATE xla_ae_lines_gt xal
10062 SET (xal.unrounded_accounted_dr
10063 ,xal.unrounded_accounted_cr
10064 ,xal.currency_conversion_rate
10065 )
10066 =
10067 (SELECT
10068 CASE xal.currency_code
10069 WHEN l_ledger_attrs.array_ledger_currency_code(i) THEN
10070 xal.entered_dr
10071 ELSE
10072 CASE l_ledger_attrs.array_ledger_type(i)
10073 WHEN 'PRIMARY' THEN
10074 CASE calculate_acctd_amts_flag
10075 WHEN 'Y' THEN
10076 CASE xal.currency_conversion_type
10077 WHEN 'User' THEN
10078 xal.entered_dr * xal.currency_conversion_rate
10079 ELSE
10080 xal.entered_dr *
10081 CASE decode( fc.derive_type,'EURO', 'EURO',
10082 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10083 trunc(xah.accounting_date)) -trunc(fc.derive_effective)),
10084 -1, 'OTHER','EMU'),'OTHER' )
10085 WHEN 'EMU' THEN
10086 CASE decode( fc1.derive_type,'EURO', 'EURO',
10087 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10088 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10089 -1, 'OTHER','EMU'),'OTHER' )
10090 WHEN 'EMU' THEN
10091 decode( fc1.derive_type, 'EURO', 1,
10092 'EMU', fc1.derive_factor,'OTHER', -1 )/
10093 decode( fc.derive_type, 'EURO', 1,
10094 'EMU', fc.derive_factor,'OTHER', -1 )
10095 WHEN 'EURO' THEN
10096 1/decode( fc.derive_type, 'EURO', 1,
10097 'EMU', fc.derive_factor,'OTHER', -1 )
10098 ELSE ra.conversion_rate/decode( fc.derive_type, 'EURO', 1,
10099 'EMU', fc.derive_factor,'OTHER', -1 )
10100 END
10101 WHEN 'EURO' THEN
10102 CASE decode( fc1.derive_type,'EURO', 'EURO',
10103 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10104 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10105 -1, 'OTHER','EMU'),'OTHER' )
10106 WHEN 'EMU' THEN
10107 decode( fc1.derive_type, 'EURO', 1,
10108 'EMU', fc1.derive_factor,'OTHER', -1 )
10109 ELSE ra.conversion_rate
10110 END
10111 ELSE
10112 CASE decode( fc1.derive_type,'EURO', 'EURO',
10113 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10114 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
10115 -1, 'OTHER','EMU'),'OTHER' )
10116 WHEN 'EMU' THEN
10117 ra.conversion_rate*decode( fc1.derive_type, 'EURO', 1,
10118 'EMU', fc1.derive_factor,'OTHER', -1 )
10119 ELSE ra.conversion_rate
10120 END
10121 END
10122 END
10123 ELSE
10124 xal.unrounded_accounted_dr
10125 END
10126 ELSE
10127 CASE xal.currency_conversion_type
10128 WHEN 'User' THEN
10129 xal.entered_dr * xal.currency_conversion_rate *
10130 CASE decode( fc.derive_type,'EURO', 'EURO',
10131 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10132 trunc(xah.accounting_date)) -trunc(fc.derive_effective)),
10133 -1, 'OTHER','EMU'),'OTHER' )
10134 WHEN 'EMU' THEN
10135 CASE decode( fc1.derive_type,'EURO', 'EURO',
10136 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10137 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10138 -1, 'OTHER','EMU'),'OTHER' )
10139 WHEN 'EMU' THEN
10140 decode( fc1.derive_type, 'EURO', 1,
10141 'EMU', fc1.derive_factor,'OTHER', -1 )/
10142 decode( fc.derive_type, 'EURO', 1,
10143 'EMU', fc.derive_factor,'OTHER', -1 )
10144 WHEN 'EURO' THEN
10145 1/decode( fc.derive_type, 'EURO', 1,
10146 'EMU', fc.derive_factor,'OTHER', -1 )
10147 ELSE ra.conversion_rate/decode( fc.derive_type, 'EURO', 1,
10148 'EMU', fc.derive_factor,'OTHER', -1 )
10149 END
10150 WHEN 'EURO' THEN
10151 CASE decode( fc1.derive_type,'EURO', 'EURO',
10152 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10153 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10154 -1, 'OTHER','EMU'),'OTHER' )
10155 WHEN 'EMU' THEN
10156 decode( fc1.derive_type, 'EURO', 1,
10157 'EMU', fc1.derive_factor,'OTHER', -1 )
10158 ELSE ra.conversion_rate
10159 END
10160 ELSE
10161 CASE decode( fc1.derive_type,'EURO', 'EURO',
10162 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10163 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
10164 -1, 'OTHER','EMU'),'OTHER' )
10165 WHEN 'EMU' THEN
10166 ra.conversion_rate*decode( fc1.derive_type, 'EURO', 1,
10167 'EMU', fc1.derive_factor,'OTHER', -1 )
10168 ELSE ra.conversion_rate
10169 END
10170 END
10171 ELSE
10172 xal.entered_dr *
10173 CASE decode( fc.derive_type,'EURO', 'EURO',
10174 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10175 trunc(xah.accounting_date)) -trunc(fc.derive_effective)),
10176 -1, 'OTHER','EMU'),'OTHER' )
10177 WHEN 'EMU' THEN
10178 CASE decode( fc1.derive_type,'EURO', 'EURO',
10179 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10180 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10181 -1, 'OTHER','EMU'),'OTHER' )
10182 WHEN 'EMU' THEN
10183 decode( fc1.derive_type, 'EURO', 1,
10184 'EMU', fc1.derive_factor,'OTHER', -1 )/
10185 decode( fc.derive_type, 'EURO', 1,
10186 'EMU', fc.derive_factor,'OTHER', -1 )
10187 WHEN 'EURO' THEN
10188 1/decode( fc.derive_type, 'EURO', 1,
10189 'EMU', fc.derive_factor,'OTHER', -1 )
10190 ELSE ra.conversion_rate/decode( fc.derive_type, 'EURO', 1,
10191 'EMU', fc.derive_factor,'OTHER', -1 )
10192 END
10193 WHEN 'EURO' THEN
10194 CASE decode( fc1.derive_type,'EURO', 'EURO',
10195 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10196 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10197 -1, 'OTHER','EMU'),'OTHER' )
10198 WHEN 'EMU' THEN
10199 decode( fc1.derive_type, 'EURO', 1,
10200 'EMU', fc1.derive_factor,'OTHER', -1 )
10201 ELSE ra.conversion_rate
10202 END
10203 ELSE
10204 CASE decode( fc1.derive_type,'EURO', 'EURO',
10205 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10206 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
10207 -1, 'OTHER','EMU'),'OTHER' )
10208 WHEN 'EMU' THEN
10209 ra.conversion_rate*decode( fc1.derive_type, 'EURO', 1,
10210 'EMU', fc1.derive_factor,'OTHER', -1 )
10211 ELSE ra.conversion_rate
10212 END
10213 END
10214 END
10215 END
10216 END,
10217 CASE xal.currency_code
10218 WHEN l_ledger_attrs.array_ledger_currency_code(i) THEN
10219 xal.entered_cr
10220 ELSE
10221 CASE l_ledger_attrs.array_ledger_type(i)
10222 WHEN 'PRIMARY' THEN
10223 CASE calculate_acctd_amts_flag
10224 WHEN 'Y' THEN
10225 CASE xal.currency_conversion_type
10226 WHEN 'User' THEN
10227 xal.entered_cr * xal.currency_conversion_rate
10228 ELSE
10229 xal.entered_cr *
10230 CASE decode( fc.derive_type,'EURO', 'EURO',
10231 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10232 trunc(xah.accounting_date)) -trunc(fc.derive_effective)),
10233 -1, 'OTHER','EMU'),'OTHER' )
10234 WHEN 'EMU' THEN
10235 CASE decode( fc1.derive_type,'EURO', 'EURO',
10236 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10237 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10238 -1, 'OTHER','EMU'),'OTHER' )
10239 WHEN 'EMU' THEN
10240 decode( fc1.derive_type, 'EURO', 1,
10241 'EMU', fc1.derive_factor,'OTHER', -1 )/
10242 decode( fc.derive_type, 'EURO', 1,
10243 'EMU', fc.derive_factor,'OTHER', -1 )
10244 WHEN 'EURO' THEN
10245 1/decode( fc.derive_type, 'EURO', 1,
10246 'EMU', fc.derive_factor,'OTHER', -1 )
10247 ELSE ra.conversion_rate/decode( fc.derive_type, 'EURO', 1,
10248 'EMU', fc.derive_factor,'OTHER', -1 )
10249 END
10250 WHEN 'EURO' THEN
10251 CASE decode( fc1.derive_type,'EURO', 'EURO',
10252 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10253 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10254 -1, 'OTHER','EMU'),'OTHER' )
10255 WHEN 'EMU' THEN
10256 decode( fc1.derive_type, 'EURO', 1,
10257 'EMU', fc1.derive_factor,'OTHER', -1 )
10258 ELSE ra.conversion_rate
10259 END
10260 ELSE
10261 CASE decode( fc1.derive_type,'EURO', 'EURO',
10262 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10263 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
10264 -1, 'OTHER','EMU'),'OTHER' )
10265 WHEN 'EMU' THEN
10266 ra.conversion_rate*decode( fc1.derive_type, 'EURO', 1,
10267 'EMU', fc1.derive_factor,'OTHER', -1 )
10268 ELSE ra.conversion_rate
10269 END
10270 END
10271 END
10272 ELSE
10273 xal.unrounded_accounted_cr
10274 END
10275 ELSE
10276 CASE xal.currency_conversion_type
10277 WHEN 'User' THEN
10278 xal.entered_cr * xal.currency_conversion_rate *
10279 CASE decode( fc.derive_type,'EURO', 'EURO',
10280 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10281 trunc(xah.accounting_date)) -trunc(fc.derive_effective)),
10282 -1, 'OTHER','EMU'),'OTHER' )
10283 WHEN 'EMU' THEN
10284 CASE decode( fc1.derive_type,'EURO', 'EURO',
10285 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10286 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10287 -1, 'OTHER','EMU'),'OTHER' )
10288 WHEN 'EMU' THEN
10289 decode( fc1.derive_type, 'EURO', 1,
10290 'EMU', fc1.derive_factor,'OTHER', -1 )/
10291 decode( fc.derive_type, 'EURO', 1,
10292 'EMU', fc.derive_factor,'OTHER', -1 )
10293 WHEN 'EURO' THEN
10294 1/decode( fc.derive_type, 'EURO', 1,
10295 'EMU', fc.derive_factor,'OTHER', -1 )
10296 ELSE ra.conversion_rate/decode( fc.derive_type, 'EURO', 1,
10297 'EMU', fc.derive_factor,'OTHER', -1 )
10298 END
10299 WHEN 'EURO' THEN
10300 CASE decode( fc1.derive_type,'EURO', 'EURO',
10301 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10302 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10303 -1, 'OTHER','EMU'),'OTHER' )
10304 WHEN 'EMU' THEN
10305 decode( fc1.derive_type, 'EURO', 1,
10306 'EMU', fc1.derive_factor,'OTHER', -1 )
10307 ELSE ra.conversion_rate
10308 END
10309 ELSE
10310 CASE decode( fc1.derive_type,'EURO', 'EURO',
10311 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10312 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
10313 -1, 'OTHER','EMU'),'OTHER' )
10314 WHEN 'EMU' THEN
10315 ra.conversion_rate*decode( fc1.derive_type, 'EURO', 1,
10316 'EMU', fc1.derive_factor,'OTHER', -1 )
10317 ELSE ra.conversion_rate
10318 END
10319 END
10320 ELSE
10321 xal.entered_cr *
10322 CASE decode( fc.derive_type,'EURO', 'EURO',
10323 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10324 trunc(xah.accounting_date)) -trunc(fc.derive_effective)),
10325 -1, 'OTHER','EMU'),'OTHER' )
10326 WHEN 'EMU' THEN
10327 CASE decode( fc1.derive_type,'EURO', 'EURO',
10328 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10329 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10330 -1, 'OTHER','EMU'),'OTHER' )
10331 WHEN 'EMU' THEN
10332 decode( fc1.derive_type, 'EURO', 1,
10333 'EMU', fc1.derive_factor,'OTHER', -1 )/
10334 decode( fc.derive_type, 'EURO', 1,
10335 'EMU', fc.derive_factor,'OTHER', -1 )
10336 WHEN 'EURO' THEN
10337 1/decode( fc.derive_type, 'EURO', 1,
10338 'EMU', fc.derive_factor,'OTHER', -1 )
10339 ELSE ra.conversion_rate/decode( fc.derive_type, 'EURO', 1,
10340 'EMU', fc.derive_factor,'OTHER', -1 )
10341 END
10342 WHEN 'EURO' THEN
10343 CASE decode( fc1.derive_type,'EURO', 'EURO',
10344 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10345 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10346 -1, 'OTHER','EMU'),'OTHER' )
10347 WHEN 'EMU' THEN
10348 decode( fc1.derive_type, 'EURO', 1,
10349 'EMU', fc1.derive_factor,'OTHER', -1 )
10350 ELSE ra.conversion_rate
10351 END
10352 ELSE
10353 CASE decode( fc1.derive_type,'EURO', 'EURO',
10354 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10355 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
10356 -1, 'OTHER','EMU'),'OTHER' )
10357 WHEN 'EMU' THEN
10358 ra.conversion_rate*decode( fc1.derive_type, 'EURO', 1,
10359 'EMU', fc1.derive_factor,'OTHER', -1 )
10360 ELSE ra.conversion_rate
10361 END
10362 END
10363 END
10364 END
10365 END,
10366 CASE xal.currency_code
10367 WHEN l_ledger_attrs.array_ledger_currency_code(i) THEN
10368 null
10369 ELSE
10370 CASE l_ledger_attrs.array_ledger_type(i)
10371 WHEN 'PRIMARY' THEN
10372 CASE calculate_acctd_amts_flag
10373 WHEN 'Y' THEN
10374 CASE xal.currency_conversion_type
10375 WHEN 'User' THEN
10376 xal.currency_conversion_rate
10377 ELSE
10378 CASE decode( fc.derive_type,'EURO', 'EURO',
10379 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10380 trunc(xah.accounting_date)) -trunc(fc.derive_effective)),
10381 -1, 'OTHER','EMU'),'OTHER' )
10382 WHEN 'EMU' THEN
10383 CASE decode( fc1.derive_type,'EURO', 'EURO',
10384 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10385 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10386 -1, 'OTHER','EMU'),'OTHER' )
10387 WHEN 'EMU' THEN
10388 decode( fc1.derive_type, 'EURO', 1,
10389 'EMU', fc1.derive_factor,'OTHER', -1 )/
10390 decode( fc.derive_type, 'EURO', 1,
10391 'EMU', fc.derive_factor,'OTHER', -1 )
10392 WHEN 'EURO' THEN
10393 1/decode( fc.derive_type, 'EURO', 1,
10394 'EMU', fc.derive_factor,'OTHER', -1 )
10395 ELSE ra.conversion_rate/decode( fc.derive_type, 'EURO', 1,
10396 'EMU', fc.derive_factor,'OTHER', -1 )
10397 END
10398 WHEN 'EURO' THEN
10399 CASE decode( fc1.derive_type,'EURO', 'EURO',
10400 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10401 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10402 -1, 'OTHER','EMU'),'OTHER' )
10403 WHEN 'EMU' THEN
10404 decode( fc1.derive_type, 'EURO', 1,
10405 'EMU', fc1.derive_factor,'OTHER', -1 )
10406 ELSE ra.conversion_rate
10407 END
10408 ELSE
10409 CASE decode( fc1.derive_type,'EURO', 'EURO',
10410 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10411 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
10412 -1, 'OTHER','EMU'),'OTHER' )
10413 WHEN 'EMU' THEN
10414 ra.conversion_rate*decode( fc1.derive_type, 'EURO', 1,
10415 'EMU', fc1.derive_factor,'OTHER', -1 )
10416 ELSE ra.conversion_rate
10417 END
10418 END
10419 END
10420 ELSE
10421 xal.currency_conversion_rate
10422 END
10423 ELSE
10424 CASE xal.currency_conversion_type
10425 WHEN 'User' THEN
10426 xal.currency_conversion_rate *
10427 CASE decode( fc.derive_type,'EURO', 'EURO',
10428 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10429 trunc(xah.accounting_date)) -trunc(fc.derive_effective)),
10430 -1, 'OTHER','EMU'),'OTHER' )
10431 WHEN 'EMU' THEN
10432 CASE decode( fc1.derive_type,'EURO', 'EURO',
10433 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10434 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10435 -1, 'OTHER','EMU'),'OTHER' )
10436 WHEN 'EMU' THEN
10437 decode( fc1.derive_type, 'EURO', 1,
10438 'EMU', fc1.derive_factor,'OTHER', -1 )/
10439 decode( fc.derive_type, 'EURO', 1,
10440 'EMU', fc.derive_factor,'OTHER', -1 )
10441 WHEN 'EURO' THEN
10442 1/decode( fc.derive_type, 'EURO', 1,
10443 'EMU', fc.derive_factor,'OTHER', -1 )
10444 ELSE ra.conversion_rate/decode( fc.derive_type, 'EURO', 1,
10445 'EMU', fc.derive_factor,'OTHER', -1 )
10446 END
10447 WHEN 'EURO' THEN
10448 CASE decode( fc1.derive_type,'EURO', 'EURO',
10449 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10450 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10451 -1, 'OTHER','EMU'),'OTHER' )
10452 WHEN 'EMU' THEN
10453 decode( fc1.derive_type, 'EURO', 1,
10454 'EMU', fc1.derive_factor,'OTHER', -1 )
10455 ELSE ra.conversion_rate
10456 END
10457 ELSE
10458 CASE decode( fc1.derive_type,'EURO', 'EURO',
10459 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10460 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
10461 -1, 'OTHER','EMU'),'OTHER' )
10462 WHEN 'EMU' THEN
10463 ra.conversion_rate*decode( fc1.derive_type, 'EURO', 1,
10464 'EMU', fc1.derive_factor,'OTHER', -1 )
10465 ELSE ra.conversion_rate
10466 END
10467 END
10468 ELSE
10469
10470 CASE decode( fc.derive_type,'EURO', 'EURO',
10471 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10472 trunc(xah.accounting_date)) -trunc(fc.derive_effective)),
10473 -1, 'OTHER','EMU'),'OTHER' )
10474 WHEN 'EMU' THEN
10475 CASE decode( fc1.derive_type,'EURO', 'EURO',
10476 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10477 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10478 -1, 'OTHER','EMU'),'OTHER' )
10479 WHEN 'EMU' THEN
10480 decode( fc1.derive_type, 'EURO', 1,
10481 'EMU', fc1.derive_factor,'OTHER', -1 )/
10482 decode( fc.derive_type, 'EURO', 1,
10483 'EMU', fc.derive_factor,'OTHER', -1 )
10484 WHEN 'EURO' THEN
10485 1/decode( fc.derive_type, 'EURO', 1,
10486 'EMU', fc.derive_factor,'OTHER', -1 )
10487 ELSE ra.conversion_rate/decode( fc.derive_type, 'EURO', 1,
10488 'EMU', fc.derive_factor,'OTHER', -1 )
10489 END
10490 WHEN 'EURO' THEN
10491 CASE decode( fc1.derive_type,'EURO', 'EURO',
10492 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10493 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10494 -1, 'OTHER','EMU'),'OTHER' )
10495 WHEN 'EMU' THEN
10496 decode( fc1.derive_type, 'EURO', 1,
10497 'EMU', fc1.derive_factor,'OTHER', -1 )
10498 ELSE ra.conversion_rate
10499 END
10500 ELSE
10501 CASE decode( fc1.derive_type,'EURO', 'EURO',
10502 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10503 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
10504 -1, 'OTHER','EMU'),'OTHER' )
10505 WHEN 'EMU' THEN
10506 ra.conversion_rate*decode( fc1.derive_type, 'EURO', 1,
10507 'EMU', fc1.derive_factor,'OTHER', -1 )
10508 ELSE ra.conversion_rate
10509 END
10510 END
10511
10512 END
10513 END
10514 END
10515 FROM gl_daily_rates ra
10516 ,xla_ae_headers_gt xah
10517 ,FND_CURRENCIES fc
10518 ,FND_CURRENCIES fc1
10519 WHERE ra.conversion_date(+)=
10520 nvl(trunc(xal.currency_conversion_date), trunc(xah.accounting_date))
10521 AND ra.conversion_type (+)=
10522 CASE l_ledger_attrs.array_ledger_type(i)
10523 WHEN 'PRIMARY' THEN xal.currency_conversion_type
10524 ELSE
10525 CASE xal.currency_conversion_type
10526 WHEN 'User' THEN l_ledger_attrs.array_default_rate_type(i)
10527 ELSE
10528 CASE l_ledger_attrs.array_inhert_type_flag(i)
10529 WHEN 'Y' THEN
10530 CASE xal.currency_code
10531 WHEN l_primary_ledger_currency THEN
10532 l_ledger_attrs.array_default_rate_type(i)
10533 ELSE xal.currency_conversion_type
10534 END
10535 ELSE l_ledger_attrs.array_default_rate_type(i)
10536 END
10537 END
10538 END
10539 AND ra.from_currency (+)=
10540 CASE decode( fc.derive_type,'EURO', 'EURO','EMU',
10541 decode( sign(nvl(trunc(xal.currency_conversion_date),
10542 trunc(xah.accounting_date)) - trunc(fc.derive_effective)),
10543 -1, 'OTHER','EMU'),'OTHER' )
10544 WHEN 'EMU' THEN
10545 CASE decode( fc1.derive_type,'EURO', 'EURO','EMU',
10546 decode( sign(nvl(trunc(xal.currency_conversion_date),
10547 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
10548 -1, 'OTHER','EMU'),'OTHER' )
10549 WHEN 'OTHER' THEN l_euro
10550 ELSE decode(xal.currency_conversion_type, 'User',
10551 l_primary_ledger_currency, xal.currency_code)
10552 END
10553 ELSE decode(xal.currency_conversion_type, 'User',
10554 l_primary_ledger_currency, xal.currency_code)
10555 END
10556 AND ra.to_currency (+)=
10557 CASE decode( fc.derive_type,'EURO', 'EURO','EMU',
10558 decode( sign(nvl(trunc(xal.currency_conversion_date),
10559 trunc(xah.accounting_date)) - trunc(fc.derive_effective)),
10560 -1, 'OTHER','EMU'),'OTHER' )
10561 WHEN 'OTHER' THEN
10562 CASE decode( fc1.derive_type,'EURO', 'EURO','EMU',
10563 decode( sign(nvl(trunc(xal.currency_conversion_date),
10564 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
10565 -1, 'OTHER','EMU'),'OTHER' )
10566 WHEN 'EMU' THEN l_euro
10567 ELSE l_ledger_attrs.array_ledger_currency_code(i)
10568 END
10569 ELSE l_ledger_attrs.array_ledger_currency_code(i)
10570 END
10571 AND xal.ae_header_id = xah.ae_header_id
10572 AND xal.ledger_id = xah.ledger_id
10573 AND xal.balance_type_code = xah.balance_type_code
10574 AND xah.balance_type_code <> 'X'
10575 )
10576 WHERE xal.gain_or_loss_flag = 'N'
10577 AND xal.ledger_id = l_ledger_attrs.array_ledger_id(i)
10578 -- AND xal.ledger_amount is null
10579 AND xal.balance_type_code <> 'X'
10580 AND xal.reversal_code is null;
10581 */
10582 /*
10583
10584 FORALL i in 1..l_max_ledger_index
10585 UPDATE xla_ae_lines_gt xal
10586 SET (xal.unrounded_accounted_dr
10587 ,xal.unrounded_accounted_cr
10588 ,xal.currency_conversion_rate
10589 )
10590 =
10591 (SELECT
10592 CASE xal.currency_code
10593 WHEN l_ledger_attrs.array_ledger_currency_code(i) THEN
10594 xal.entered_dr
10595 ELSE
10596 CASE l_ledger_attrs.array_ledger_type(i)
10597 WHEN 'PRIMARY' THEN
10598 CASE calculate_acctd_amts_flag
10599 WHEN 'Y' THEN
10600 CASE xal.currency_conversion_type
10601 WHEN 'User' THEN
10602 xal.entered_dr * xal.currency_conversion_rate
10603 ELSE
10604 xal.entered_dr * ra.conversion_rate
10605 END
10606 ELSE
10607 xal.unrounded_accounted_dr
10608 END
10609 ELSE
10610 CASE xal.currency_conversion_type
10611 WHEN 'User' THEN
10612 xal.entered_dr * xal.currency_conversion_rate * ra.conversion_rate
10613 ELSE
10614 xal.entered_dr * ra.conversion_rate
10615 END
10616 END
10617 END,
10618 CASE xal.currency_code
10619 WHEN l_ledger_attrs.array_ledger_currency_code(i) THEN
10620 xal.entered_cr
10621 ELSE
10622 CASE l_ledger_attrs.array_ledger_type(i)
10623 WHEN 'PRIMARY' THEN
10624 CASE calculate_acctd_amts_flag
10625 WHEN 'Y' THEN
10626 CASE xal.currency_conversion_type
10627 WHEN 'User' THEN
10628 xal.entered_cr * xal.currency_conversion_rate
10629 ELSE
10630 xal.entered_cr * ra.conversion_rate
10631 END
10632 ELSE
10633 xal.unrounded_accounted_cr
10634 END
10635 ELSE
10636 CASE xal.currency_conversion_type
10637 WHEN 'User' THEN
10638 xal.entered_cr * xal.currency_conversion_rate * ra.conversion_rate
10639 ELSE
10640 xal.entered_cr * ra.conversion_rate
10641 END
10642 END
10643 END,
10644 CASE xal.currency_code
10645 WHEN l_ledger_attrs.array_ledger_currency_code(i) THEN
10646 null
10647 ELSE
10648 CASE l_ledger_attrs.array_ledger_type(i)
10649 WHEN 'PRIMARY' THEN
10650 CASE calculate_acctd_amts_flag
10651 WHEN 'Y' THEN
10652 CASE xal.currency_conversion_type
10653 WHEN 'User' THEN
10654 xal.currency_conversion_rate
10655 ELSE
10656 ra.conversion_rate
10657 END
10658 ELSE
10659 xal.currency_conversion_rate
10660 END
10661 ELSE
10662 CASE xal.currency_conversion_type
10663 WHEN 'User' THEN
10664 xal.currency_conversion_rate * ra.conversion_rate
10665 ELSE
10666 ra.conversion_rate
10667 END
10668 END
10669 END
10670 FROM gl_daily_rates ra
10671 ,xla_ae_headers_gt xah
10672 WHERE ra.conversion_date(+)=
10673 nvl(trunc(xal.currency_conversion_date), trunc(xah.accounting_date))
10674 AND ra.conversion_type (+)=
10675 CASE l_ledger_attrs.array_ledger_type(i)
10676 WHEN 'PRIMARY' THEN xal.currency_conversion_type
10677 ELSE
10678 CASE xal.currency_conversion_type
10679 WHEN 'User' THEN l_ledger_attrs.array_default_rate_type(i)
10680 ELSE
10681 CASE l_ledger_attrs.array_inhert_type_flag(i)
10682 WHEN 'Y' THEN
10683 CASE xal.currency_code
10684 WHEN l_primary_ledger_currency THEN
10685 l_ledger_attrs.array_default_rate_type(i)
10686 ELSE xal.currency_conversion_type
10687 END
10688 ELSE l_ledger_attrs.array_default_rate_type(i)
10689 END
10690 END
10691 END
10692 AND ra.from_currency (+)= decode(xal.currency_conversion_type, 'User',
10693 l_primary_ledger_currency, xal.currency_code)
10694 AND ra.to_currency (+)= l_ledger_attrs.array_ledger_currency_code(i)
10695 AND xal.ae_header_id = xah.ae_header_id
10696 AND xal.ledger_id = xah.ledger_id
10697 AND xal.balance_type_code = xah.balance_type_code
10698 AND xah.balance_type_code <> 'X'
10699 )
10700 WHERE xal.gain_or_loss_flag = 'N'
10701 AND xal.ledger_id = l_ledger_attrs.array_ledger_id(i)
10702 AND xal.balance_type_code <> 'X'
10703 AND xal.reversal_code is null;
10704 */
10705
10706
10707 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10708 trace
10709 (p_msg => 'END of CalculateUnroundedAmounts'
10710 ,p_level => C_LEVEL_PROCEDURE
10711 ,p_module => l_log_module);
10712 END IF;
10713
10714 Exception
10715 When OTHERS THEN
10716 IF (C_LEVEL_UNEXPECTED>= g_log_level) THEN
10717 trace
10718 (p_msg => 'ERROR HERE:'||sqlerrm
10719 ,p_level => C_LEVEL_UNEXPECTED
10720 ,p_module => l_log_module);
10721 END IF;
10722
10723 raise;
10724
10725 END CalculateUnroundedAmounts;
10726
10727
10728 PROCEDURE CalculateGainLossAmounts
10729 is
10730 l_log_module VARCHAR2(240);
10731 l_ledger_attrs xla_accounting_cache_pkg.t_array_ledger_attrs;
10732 l_ledger_currency xla_accounting_cache_pkg.t_array_varchar;
10733 --l_primary_ledger_id NUMBER;
10734 l_temp number;
10735
10736 l_array_accounted_amount t_array_number;
10737 l_array_entered_amount t_array_number;
10738 l_array_currency_code t_array_char30;
10739 l_array_balance_type_code t_array_char1;
10740 l_array_ae_header_id t_array_number;
10741 l_array_gain_or_loss_ref t_array_char30;
10742 l_array_ledger_id t_array_number;
10743 l_array_event_id t_array_number;
10744 l_array_gain_or_loss_flag t_array_char1;
10745 l_array_cal_g_l_flag t_array_char1;
10746
10747 l_res_array_ledger_id t_array_number;
10748 l_res_array_ae_header_id t_array_number;
10749 l_res_array_temp_line_num t_array_number;
10750 l_res_array_ref_ae_header_id t_array_number;
10751 l_res_array_header_num t_array_number;
10752 l_res_array_accounted_amount t_array_number;
10753 l_res_array_entered_amount t_array_number;
10754 l_res_array_min_currency_code t_array_char30;
10755 l_res_array_max_currency_code t_array_char30;
10756 l_res_array_extract_line_num t_array_number;
10757
10758 CURSOR csr_gain_loss_amts IS
10759 SELECT ledger_id
10760 ,ae_header_id
10761 FROM XLA_AE_LINES_GT xal2
10762 WHERE nvl(xal2.gain_or_loss_flag, 'N') = 'Y'
10763 AND xal2.balance_type_code <> 'X'
10764 AND xal2.calculate_g_l_amts_flag = 'Y'
10765 AND xal2.reversal_code IS NULL
10766 GROUP BY ledger_id, ae_header_id;
10767 /* old code
10768 SELECT nvl(sum(xal2.unrounded_accounted_dr), 0)
10769 - nvl(sum(xal2.unrounded_accounted_cr), 0)
10770 ,min(xal2.currency_code)
10771 ,max(xal2.currency_code)
10772 ,min(xal2.extract_line_num)
10773 ,ledger_id
10774 ,ae_header_id
10775 ,balance_type_code
10776 ,gain_or_loss_ref
10777 ,event_id
10778 FROM XLA_AE_LINES_GT xal2
10779 WHERE nvl(xal2.gain_or_loss_flag, 'N') = 'N'
10780 AND xal2.balance_type_code <> 'X'
10781 AND xal2.reversal_code is NULL
10782 HAVING nvl(sum(xal2.unrounded_accounted_dr), 0) <> nvl(sum(xal2.unrounded_accounted_cr), 0) -- 5745199
10783 GROUP BY ledger_id, ae_header_id, balance_type_code, gain_or_loss_ref, event_id;
10784 */
10785
10786 BEGIN
10787 IF g_log_enabled THEN
10788 l_log_module := C_DEFAULT_MODULE||'.CalculateGainLossAmounts';
10789 END IF;
10790
10791 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10792 trace
10793 (p_msg => 'BEGIN of CalculateGainLossAmounts'
10794 ,p_level => C_LEVEL_PROCEDURE
10795 ,p_module => l_log_module);
10796 END IF;
10797
10798 /*
10799 xla_accounting_cache_pkg.GetLedgerArray(l_ledger_attrs);
10800 For i in 1..l_ledger_attrs.array_ledger_id.COUNT LOOP
10801 l_ledger_currency(l_ledger_attrs.array_ledger_id(i)) := l_ledger_attrs.array_ledger_currency_code(i);
10802 END LOOP;
10803 */
10804 OPEN csr_gain_loss_amts;
10805 LOOP
10806 FETCH csr_gain_loss_amts BULK COLLECT INTO
10807 l_array_ledger_id
10808 ,l_array_ae_header_id
10809 LIMIT C_BULK_LIMIT;
10810 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
10811 trace
10812 (p_module => l_log_module
10813 ,p_msg => 'Count of lines =' || l_array_ae_header_id.COUNT
10814 ,p_level => C_LEVEL_STATEMENT
10815 );
10816 END IF;
10817
10818 IF l_array_ae_header_id.COUNT = 0 THEN
10819 EXIT;
10820 END IF;
10821
10822 FORALL Idx IN 1 .. l_array_ae_header_id.COUNT
10823 UPDATE /*+ index(xal XLA_AE_LINES_GT_N3)*/ xla_ae_lines_gt xal -- 6658161
10824 SET (xal.unrounded_accounted_cr
10825 , xal.unrounded_entered_cr
10826 , xal.unrounded_accounted_dr
10827 , xal.unrounded_entered_dr
10828 ,xal.currency_code
10829 ,xal.balance_type_code
10830 ) =
10831 (SELECT /*+ index(xal2 XLA_AE_LINES_GT_N4)*/ -- 6658161,6727907
10832 case sign(nvl(sum(xal2.unrounded_accounted_dr), 0)
10833 - nvl(sum(xal2.unrounded_accounted_cr), 0))
10834 when -1 then null
10835 else nvl(sum(xal2.unrounded_accounted_dr), 0)
10836 - nvl(sum(xal2.unrounded_accounted_cr), 0)
10837 end
10838 , case sign(nvl(sum(xal2.unrounded_accounted_dr), 0)
10839 - nvl(sum(xal2.unrounded_accounted_cr), 0))
10840 when -1 then null
10841 else 0
10842 end
10843 , case sign(nvl(sum(xal2.unrounded_accounted_dr), 0)
10844 - nvl(sum(xal2.unrounded_accounted_cr), 0))
10845 when -1 then
10846 nvl(sum(xal2.unrounded_accounted_cr), 0)
10847 - nvl(sum(xal2.unrounded_accounted_dr), 0)
10848 else null
10849 end
10850 , case sign(nvl(sum(xal2.unrounded_accounted_dr), 0)
10851 - nvl(sum(xal2.unrounded_accounted_cr), 0))
10852 when -1 then 0
10853 else null
10854 end
10855 ,case
10856 when xal.currency_code = min(xal2.currency_code)
10857 then max(xal2.currency_code)
10858 else min(xal2.currency_code)
10859 end
10860 ,case
10861 when nvl(sum(xal2.unrounded_accounted_dr), 0)
10862 - nvl(sum(xal2.unrounded_accounted_cr), 0) = 0
10863 THEN 'X'
10864 ELSE
10865 CASE
10866 WHEN xal.extract_line_num = min(xal2.extract_line_num)
10867 then xal.balance_type_code
10868 else 'X'
10869 END
10870 END
10871 FROM xla_ae_lines_gt xal2
10872 WHERE xal2.ae_header_id = xal.ae_header_id
10873 AND xal2.balance_type_code = xal.balance_type_code
10874 AND xal2.gain_or_loss_ref = xal.gain_or_loss_ref
10875 AND xal2.ledger_id = xal.ledger_id
10876 AND xal2.event_id = xal.event_id
10877 AND nvl(xal2.gain_or_loss_flag, 'N') = 'N'
10878 AND xal2.balance_type_code <> 'X'
10879 AND xal2.reversal_code IS NULL)
10880 WHERE nvl(xal.gain_or_loss_flag, 'N') = 'Y'
10881 AND balance_type_code <> 'X'
10882 AND xal.calculate_g_l_amts_flag = 'Y'
10883 AND xal.reversal_code is NULL
10884 AND xal.ae_header_id = l_array_ae_header_id(Idx)
10885 AND xal.ledger_id = l_array_ledger_id(Idx);
10886
10887 /* old code
10888 UPDATE xla_ae_lines_gt xal
10889 SET xal.unrounded_accounted_cr =
10890 CASE sign(l_res_array_accounted_amount(Idx))
10891 WHEN -1 THEN NULL
10892 ELSE l_res_array_accounted_amount(Idx)
10893 END
10894 ,xal.unrounded_entered_cr =
10895 CASE sign(l_res_array_accounted_amount(Idx))
10896 WHEN -1 THEN NULL
10897 ELSE 0
10898 END
10899 ,xal.unrounded_accounted_dr =
10900 CASE sign(l_res_array_accounted_amount(Idx))
10901 WHEN -1 THEN 0-l_res_array_accounted_amount(Idx)
10902 ELSE NULL
10903 END
10904 ,xal.unrounded_entered_dr =
10905 CASE sign(l_res_array_accounted_amount(Idx))
10906 WHEN -1 THEN 0
10907 ELSE NULL
10908 END
10909 ,xal.currency_code =
10910 DECODE (l_res_array_min_currency_code(Idx),
10911 xal.currency_code,
10912 l_res_array_max_currency_code(Idx),
10913 l_res_array_min_currency_code(Idx))
10914 ,xal.balance_type_code = decode(l_res_array_accounted_amount(Idx), 0, 'X',
10915 decode(xal.extract_line_num,
10916 l_res_array_extract_line_num(Idx),
10917 xal.balance_type_code,
10918 'X'))
10919 WHERE nvl(xal.gain_or_loss_flag, 'N') = 'Y'
10920 AND balance_type_code <> 'X'
10921 AND xal.calculate_g_l_amts_flag = 'Y'
10922 AND xal.reversal_code is NULL
10923 AND xal.ae_header_id = l_array_ae_header_id(Idx)
10924 AND xal.balance_type_code = l_array_balance_type_code(Idx)
10925 AND xal.gain_or_loss_ref = l_array_gain_or_loss_ref(Idx)
10926 AND xal.ledger_id = l_array_ledger_id(Idx)
10927 AND (xal.currency_code <> l_res_array_min_currency_code(Idx)
10928 OR xal.currency_code <> l_res_array_max_currency_code(Idx))
10929 AND xal.event_id = l_array_event_id(Idx);
10930 */
10931 END LOOP;
10932 CLOSE csr_gain_loss_amts;
10933
10934 IF (g_num_bflow_prior_entries > 0) THEN
10935 UPDATE /*+ index(xal2 XLA_AE_LINES_GT_N3)*/ xla_ae_lines_gt xal
10936 SET xal.currency_code =
10937 (SELECT /*+ index(xal2 XLA_AE_LINES_GT_N4)*/ max(currency_code)
10938 FROM xla_ae_lines_gt xal2
10939 WHERE xal2.ae_header_id = xal.ae_header_id
10940 AND xal2.balance_type_code <> 'X'
10941 AND xal2.gain_or_loss_ref = xal.gain_or_loss_ref
10942 AND xal2.ledger_id = xal.ledger_id
10943 AND xal2.event_id = xal.event_id
10944 AND nvl(xal2.gain_or_loss_flag, 'N') = 'N'
10945 AND xal2.reversal_code = C_DUMMY_PRIOR)
10946 WHERE xal.gain_or_loss_flag = 'Y'
10947 AND balance_type_code <> 'X'
10948 AND xal.calculate_g_l_amts_flag = 'Y'
10949 AND xal.reversal_code is NULL
10950 and (xal.ae_header_id, balance_type_code, gain_or_loss_ref, ledger_id, event_id)
10951 in
10952 (select /*+ index(xal2 XLA_AE_LINES_GT_N4)*/ ae_header_id, balance_type_code, gain_or_loss_ref, ledger_id, event_id
10953 from xla_ae_lines_gt xal3
10954 where xal3.ae_header_id = xal.ae_header_id
10955 AND xal3.balance_type_code <> 'X'
10956 AND xal3.gain_or_loss_ref = xal.gain_or_loss_ref
10957 AND xal3.ledger_id = xal.ledger_id
10958 AND xal3.event_id = xal.event_id
10959 AND nvl(xal3.gain_or_loss_flag, 'N') = 'N'
10960 and xal3.reversal_code = C_DUMMY_PRIOR);
10961 END IF;
10962
10963
10964
10965
10966 /*
10967 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10968 trace
10969 (p_msg => 'Before update...'
10970 ,p_level => C_LEVEL_PROCEDURE
10971 ,p_module => l_log_module);
10972 END IF;
10973
10974 UPDATE xla_ae_lines_gt xal
10975 --SET xal.temp_line_num = 0 -- It casues XLA_AE_LINES_GT_U1 violation when
10976 -- there are 2 extract lines and g/l is on
10977 SET balance_type_code = 'X'
10978 WHERE xal.gain_or_loss_flag = 'Y'
10979 AND nvl(xal.unrounded_accounted_cr, 0) = 0
10980 AND xal.reversal_code is NULL;
10981 */
10982
10983 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10984 trace
10985 (p_msg => 'END of CalculateGainLossAmounts'
10986 ,p_level => C_LEVEL_PROCEDURE
10987 ,p_module => l_log_module);
10988 END IF;
10989 Exception
10990 When OTHERS THEN
10991 raise;
10992
10993 END CalculateGainLossAmounts;
10994
10995
10996 /*======================================================================+
10997 | |
10998 | Public Procedure- Business Flow Validaton - 4219869 |
10999 | |
11000 | |
11001 +======================================================================*/
11002 PROCEDURE Business_Flow_Validation
11003 (p_business_method_code IN VARCHAR2
11004 ,p_business_class_code IN VARCHAR2
11005 ,p_inherit_description_flag IN VARCHAR2) IS
11006
11007 l_log_module VARCHAR2(240);
11008 l_ledger_ccy VARCHAR2(30);
11009 BEGIN
11010 IF g_log_enabled THEN
11011 l_log_module := C_DEFAULT_MODULE||'.Business_Flow_Validation';
11012 END IF;
11013 --
11014 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11015 trace
11016 (p_msg => 'BEGIN of Business_Flow_Validation'
11017 ,p_level => C_LEVEL_PROCEDURE
11018 ,p_module => l_log_module);
11019 END IF;
11020
11021 g_rec_lines.array_business_method_code(g_LineNumber) := p_business_method_code;
11022 --g_rec_lines.array_business_class_code(g_LineNumber) := p_business_class_code; -- 4336173 move to xla_cmp_acct_line_type_pkg.C_ALT_BODY
11023 g_rec_lines.array_inherit_desc_flag(g_LineNumber) := p_inherit_description_flag;
11024
11025 IF p_inherit_description_flag = 'Y' THEN
11026 g_rec_lines.array_description(g_LineNumber) := NULL;
11027 END IF;
11028
11029 IF p_business_method_code = C_METHOD_PRIOR THEN
11030
11031 ------------------------------------------------
11032 -- Validate the applied-to accounting attributes
11033 ------------------------------------------------
11034 ValidateBFlowLinks;
11035
11036 -------------------------------------------------
11037 -- Reset values for certain fields in g_rec_lines
11038 -------------------------------------------------
11039 /* 4482069 This will be set in xla_cmp_acct_line_type_pkg.GetAccountingSources
11040 l_ledger_ccy := xla_accounting_cache_pkg.GetValueChar(
11041 p_source_code => 'XLA_CURRENCY_CODE'
11042 ,p_target_ledger_id=> g_rec_lines.array_ledger_id(g_LineNumber));
11043 g_rec_lines.array_currency_code(g_LineNumber) := l_ledger_ccy;
11044 */
11045
11046 --g_rec_lines.array_currency_mau(g_LineNumber) := xla_accounting_cache_pkg.GetCurrencyMau(l_ledger_ccy);
11047 g_rec_lines.array_curr_conversion_date(g_LineNumber) := NULL;
11048 g_rec_lines.array_curr_conversion_rate(g_LineNumber) := NULL;
11049 g_rec_lines.array_curr_conversion_type(g_LineNumber) := NULL;
11050 g_rec_lines.array_party_type_code(g_LineNumber) := NULL;
11051 g_rec_lines.array_party_id(g_LineNumber) := NULL;
11052 g_rec_lines.array_party_site_id(g_LineNumber) := NULL;
11053 g_rec_lines.array_encumbrance_type_id(g_LineNumber) := NULL;
11054
11055 ----------------------------------
11056 -- Set reversal code to DUMMY_BFPE
11057 ----------------------------------
11058 g_rec_lines.array_reversal_code(g_LineNumber) := C_DUMMY_PRIOR;
11059
11060 ------------------------------------------------------
11061 -- Increment number of business flow prior entry lines
11062 ------------------------------------------------------
11063 g_num_bflow_prior_entries := g_num_bflow_prior_entries + 1;
11064
11065 ELSIF p_business_method_code = C_METHOD_SAME THEN
11066
11067 ----------------------------------
11068 -- Set reversal code to DUMMY_BFSE
11069 ----------------------------------
11070 g_rec_lines.array_reversal_code(g_LineNumber) := C_DUMMY_SAME;
11071
11072 -----------------------------------------------------
11073 -- Increment number of business flow same entry lines
11074 -----------------------------------------------------
11075 g_num_bflow_same_entries := g_num_bflow_same_entries + 1;
11076
11077 END IF;
11078
11079
11080 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11081 trace
11082 (p_msg => 'END of Business_Flow_Validation'
11083 ,p_level => C_LEVEL_PROCEDURE
11084 ,p_module => l_log_module);
11085 END IF;
11086
11087 EXCEPTION
11088 --
11089 WHEN xla_exceptions_pkg.application_exception THEN
11090 RAISE;
11091 WHEN OTHERS THEN
11092 xla_exceptions_pkg.raise_message
11093 (p_location => 'xla_ae_lines_pkg.Business_Flow_Validation');
11094 --
11095 END Business_Flow_Validation;
11096
11097
11098 /*======================================================================+
11099 | |
11100 | Public Procedure- Business Flow Prior Entry - 4219869 |
11101 | |
11102 | |
11103 +======================================================================*/
11104 PROCEDURE BusinessFlowPriorEntries
11105 (p_accounting_mode IN VARCHAR2
11106 ,p_ledger_id IN NUMBER
11107 ,p_bc_mode IN VARCHAR2)
11108 IS
11109
11110 --------------------------------------------------------------------------------
11111 -- 5357406 - prior entry performance fix
11112 l_array_row_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11113 l_array_ccid XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11114 l_array_description XLA_AE_JOURNAL_ENTRY_PKG.t_array_V4000L;
11115 l_array_currency_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V15L;
11116 l_array_curr_conversion_rate XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11117 l_array_curr_conversion_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11118 l_array_curr_conversion_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
11119 l_array_currency_mau XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11120 l_array_unrounded_entered_cr XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11121 l_array_unrounded_entered_dr XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11122 l_array_party_type_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V1L;
11123 l_array_party_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11124 l_array_party_site_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11125 l_array_encumbrance_type_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Int;
11126 l_array_ccid_status_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11127 l_array_ref_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11128 l_array_temp_ref_ae_header_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11129 l_array_ref_ae_line_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11130 l_array_ref_temp_line_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11131 l_array_bflow_pe_status_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11132 l_array_pe_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11133
11134 CURSOR c_bflow_ae_lines IS
11135 SELECT gt.ROW_ID
11136 ,gt.code_combination_id
11137 ,gt.description
11138 ,gt.currency_code
11139 ,gt.currency_conversion_rate
11140 ,gt.currency_conversion_type
11141 ,gt.currency_conversion_date
11142 ,gt.entered_currency_mau
11143 ,gt.unrounded_entered_cr
11144 ,gt.unrounded_entered_dr
11145 ,gt.party_type_code
11146 ,gt.party_id
11147 ,gt.party_site_id
11148 ,gt.encumbrance_type_id
11149 ,gt.code_combination_status_code
11150 ,gt.ref_event_id
11151 ,gt.temp_ref_ae_header_id
11152 ,gt.ref_ae_line_num
11153 ,gt.ref_temp_line_num
11154 ,gt.bflow_prior_entry_status_code
11155 ,gt.applied_to_entity_id
11156 FROM (SELECT /*+Leading(xalg xte xah xdl) use_nl(xalg xte xah xdl) */
11157 xalg.ROWID ROW_ID
11158 , RANK() OVER ( PARTITION BY xalg.ROWID
11159 ORDER BY xdl.ae_header_id desc, xdl.ae_line_num ASC ) line_rank
11160 ,(NVL(xal.merge_code_combination_id,xal.code_combination_id)) code_combination_id
11161 ,(DECODE(xalg.inherit_desc_flag, 'Y', xal.description, xalg.description)) description
11162 ,(xal.currency_code) currency_code
11163 ,(DECODE(xal.currency_code
11164 ,xla_accounting_cache_pkg.GetValueChar('XLA_CURRENCY_CODE',xalg.ledger_id)
11165 ,NULL
11166 ,xal.currency_conversion_rate)) currency_conversion_rate
11167 ,(DECODE(xal.currency_code
11168 ,xla_accounting_cache_pkg.GetValueChar('XLA_CURRENCY_CODE',xalg.ledger_id)
11169 ,NULL
11170 ,xal.currency_conversion_type)) currency_conversion_type
11171 ,(DECODE(xal.currency_code
11172 ,xla_accounting_cache_pkg.GetValueChar('XLA_CURRENCY_CODE',xalg.ledger_id)
11173 ,NULL
11174 ,xal.currency_conversion_date)) currency_conversion_date
11175 ,(xla_accounting_cache_pkg.GetCurrencyMau(xal.currency_code)) entered_currency_mau
11176 ,(DECODE(xdl.calculate_acctd_amts_flag
11177 ,'N', DECODE(xalg.currency_code
11178 ,xla_accounting_cache_pkg.GetValueChar('XLA_CURRENCY_CODE',xalg.ledger_id)
11179 ,NVL(xalg.unrounded_accounted_cr,xalg.unrounded_entered_cr)
11180 ,xalg.unrounded_entered_cr)
11181 ,xalg.unrounded_entered_cr) ) unrounded_entered_cr
11182 ,(DECODE(xdl.calculate_acctd_amts_flag
11183 ,'N', DECODE(xalg.currency_code
11184 ,xla_accounting_cache_pkg.GetValueChar('XLA_CURRENCY_CODE',xalg.ledger_id)
11185 ,NVL(xalg.unrounded_accounted_dr,xalg.unrounded_entered_dr)
11186 ,xalg.unrounded_entered_dr)
11187 ,xalg.unrounded_entered_dr)) unrounded_entered_dr
11188 ,(xal.party_type_code) party_type_code
11189 ,(NVL(xal.merge_party_id,xal.party_id)) party_id
11190 ,(NVL(xal.merge_party_site_id,xal.party_site_id)) party_site_id
11191 ,(xal.encumbrance_type_id) encumbrance_type_id
11192 ,C_CREATED code_combination_status_code
11193 ,(xdl.event_id) ref_event_id
11194 ,(xdl.ae_header_id) temp_ref_ae_header_id
11195 ,(xal.ae_line_num) ref_ae_line_num
11196 ,(xdl.temp_line_num) ref_temp_line_num
11197 ,(DECODE(xalg.currency_code,xal.currency_code,xah.accounting_entry_status_code,
11198 DECODE(xalg.bflow_applied_to_amount, NULL, 'X', xah.accounting_entry_status_code))) bflow_prior_entry_status_code
11199 ,(xah.entity_id) applied_to_entity_id
11200 FROM xla_ae_lines_gt xalg
11201 ,xla_transaction_entities xte
11202 ,xla_ae_headers xah
11203 ,xla_distribution_links xdl
11204 ,xla_ae_lines xal
11205 -- ,xla_ledger_relationships_v xlr
11206 -- ,xla_gl_ledgers_v xgl
11207 -- ,xla_ledger_options xlo
11208 WHERE xah.application_id = xdl.application_id
11209 AND xah.ae_header_id = xdl.ae_header_id
11210 AND xal.application_id = xdl.application_id
11211 AND xal.ae_header_id = xdl.ae_header_id
11212 AND xal.ae_line_num = xdl.ae_line_num
11213 AND xal.business_class_code = xalg.business_class_code
11214 AND xdl.source_distribution_type = xalg.bflow_distribution_type
11215 AND xdl.source_distribution_id_num_1 = NVL(xalg.bflow_dist_id_num_1,-99)
11216 AND NVL(xdl.source_distribution_id_num_2,-99) = NVL(xalg.bflow_dist_id_num_2,-99)
11217 AND NVL(xdl.source_distribution_id_num_3,-99) = NVL(xalg.bflow_dist_id_num_3,-99)
11218 AND NVL(xdl.source_distribution_id_num_4,-99) = NVL(xalg.bflow_dist_id_num_4,-99)
11219 AND NVL(xdl.source_distribution_id_num_5,-99) = NVL(xalg.bflow_dist_id_num_5,-99)
11220 AND NVL(xdl.source_distribution_id_char_1,' ') = NVL(xalg.bflow_dist_id_char_1,' ')
11221 AND NVL(xdl.source_distribution_id_char_2,' ') = NVL(xalg.bflow_dist_id_char_2,' ')
11222 AND NVL(xdl.source_distribution_id_char_3,' ') = NVL(xalg.bflow_dist_id_char_3,' ')
11223 AND NVL(xdl.source_distribution_id_char_4,' ') = NVL(xalg.bflow_dist_id_char_4,' ')
11224 AND NVL(xdl.source_distribution_id_char_5,' ') = NVL(xalg.bflow_dist_id_char_5,' ')
11225 AND xah.parent_ae_header_id IS NULL
11226 --
11227 -- exclude reversed entries
11228 -- When running in BC mode, draft reversal entries are not considered
11229 -- ignore exclude reversal for AP.6647974/6614418
11230 AND NOT EXISTS (SELECT /*+ no_unnest */ 1
11231 FROM xla_distribution_links xdl4
11232 , xla_ae_headers xah4
11233 WHERE xdl4.ref_ae_header_id = xdl.ae_header_id
11234 AND xdl4.application_id = xdl.application_id
11235 AND xdl4.temp_line_num = xdl.temp_line_num * -1
11236 AND xah4.application_id = xdl4.application_id
11237 AND xah4.ae_header_id = xdl4.ae_header_id
11238 AND xah4.application_id <> 200
11239 AND xdl4.application_id <> 200
11240 AND (xah4.accounting_entry_status_code = 'F' OR
11241 (xah4.accounting_entry_status_code = 'D' AND
11242 p_accounting_mode = 'D' AND
11243 p_bc_mode = 'NONE')))
11244 AND xdl.application_id = xalg.bflow_application_id
11245 --
11246 -- AND xgl.ledger_id = xalg.ledger_id
11247 -- AND xlr.ledger_id = xgl.ledger_id
11248 AND xte.application_id = xalg.bflow_application_id
11249 AND xte.entity_code = xalg.bflow_entity_code
11250 AND xte.ledger_id = p_ledger_id
11251 -- AND xte.ledger_id = DECODE(xla_accounting_cache_pkg.GetValueChar('VALUATION_METHOD_FLAG'),
11252 -- 'N', xlr.primary_ledger_id,
11253 -- DECODE(xlr.ledger_category_code
11254 -- ,'ALC', xlr.primary_ledger_id
11255 -- ,DECODE(NVL(xlo.capture_event_flag,'N'),'N',xlr.primary_ledger_id
11256 -- ,xlr.ledger_id))) -- 5204178 requires secondary ledger event
11257 -- AND xlo.ledger_id (+) = xgl.ledger_id
11258 -- AND xlo.application_id (+) = g_application_id
11259 --
11260 AND NVL(xte.source_id_int_1,-99) = NVL(xalg.bflow_source_id_num_1,-99)
11261 AND NVL(xte.source_id_int_2,-99) = NVL(xalg.bflow_source_id_num_2,-99)
11262 AND NVL(xte.source_id_int_3,-99) = NVL(xalg.bflow_source_id_num_3,-99)
11263 AND NVL(xte.source_id_int_4,-99) = NVL(xalg.bflow_source_id_num_4,-99)
11264 AND NVL(xte.source_id_char_1,' ') = NVL(xalg.bflow_source_id_char_1,' ')
11265 AND NVL(xte.source_id_char_2,' ') = NVL(xalg.bflow_source_id_char_2,' ')
11266 AND NVL(xte.source_id_char_3,' ') = NVL(xalg.bflow_source_id_char_3,' ')
11267 AND NVL(xte.source_id_char_4,' ') = NVL(xalg.bflow_source_id_char_4,' ')
11268 --
11269 AND xah.application_id = xte.application_id
11270 AND xah.ledger_id = xalg.ledger_id
11271 AND xah.entity_id = xte.entity_id
11272 AND xah.balance_type_code = xalg.balance_type_code
11273 --
11274 AND xdl.event_id = xah.event_id
11275 --
11276 AND xah.accounting_entry_status_code IN ('F', DECODE(p_bc_mode,'NONE',p_accounting_mode,'F'))
11277 AND xalg.reversal_code = C_DUMMY_PRIOR
11278 ) gt
11279 WHERE gt.line_rank = 1;
11280 --------------------------------------------------------------------------------
11281
11282 CURSOR c_bflow_valid_lines IS
11283 SELECT ae_header_id,
11284 event_id,
11285 ledger_id,
11286 balance_type_code,
11287 temp_line_num
11288 FROM xla_ae_lines_gt
11289 WHERE reversal_code = C_DUMMY_PRIOR
11290 AND bflow_prior_entry_status_code IS NOT NULL AND bflow_prior_entry_status_code <> 'X'; -- 5132302 if applied to amt is null
11291 --AND (bflow_prior_entry_status_code IN ('F', DECODE(p_accounting_mode, 'D', 'D', 'F')));
11292
11293 l_array_line_num xla_cmp_source_pkg.t_array_Num;
11294
11295
11296 CURSOR c_bflow_err_lines IS
11297 SELECT ae_header_id
11298 ,xal.temp_line_num
11299 ,xal.event_id
11300 ,xal.ledger_id
11301 ,xal.bflow_prior_entry_status_code
11302 ,xal.balance_type_code
11303 ,xal.entity_id
11304 ,fav.application_name
11305 ,'N'
11306 ,gl.ledger_category_code
11307 ,glp.start_date
11308
11309 FROM xla_ae_lines_gt xal,
11310 fnd_application_vl fav,
11311 gl_ledgers gl,
11312 gl_period_statuses glp
11313 WHERE ((reversal_code = C_DUMMY_PRIOR
11314 AND (bflow_prior_entry_status_code IS NULL OR NVL(bflow_prior_entry_status_code,'N') = 'X')) -- 5132302
11315 OR reversal_code = C_MPA_PRIOR_ENTRY) -- 4655713b
11316 AND fav.application_id(+) = xal.bflow_application_id
11317 AND xal.ledger_id = gl.ledger_id
11318 AND glp.period_name = gl.first_ledger_period_name
11319 AND glp.ledger_id = gl.ledger_id
11320 AND glp.application_id = 101;
11321
11322
11323 l_log_module VARCHAR2(240);
11324 l_array_ae_header_id xla_cmp_source_pkg.t_array_Num;
11325 l_array_event_id xla_cmp_source_pkg.t_array_Num;
11326 l_array_ledger_id xla_cmp_source_pkg.t_array_Num;
11327 l_array_bflow_prior_status xla_cmp_source_pkg.t_array_VL30;
11328 l_array_balance_type_code xla_cmp_source_pkg.t_array_VL30;
11329 l_array_entity_id xla_cmp_source_pkg.t_array_Num;
11330 l_array_app_name xla_cmp_source_pkg.t_array_VL240;
11331 l_array_hist_bflow_err xla_cmp_source_pkg.t_array_Num;
11332
11333 -- 4655713b MPA and Accrual Reversal
11334 l_array_mpa_segment1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11335 l_array_mpa_segment2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11336 l_array_mpa_segment3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11337 l_array_mpa_segment4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11338 l_array_mpa_segment5 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11339 l_array_mpa_segment6 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11340 l_array_mpa_segment7 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11341 l_array_mpa_segment8 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11342 l_array_mpa_segment9 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11343 l_array_mpa_segment10 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11344 l_array_mpa_segment11 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11345 l_array_mpa_segment12 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11346 l_array_mpa_segment13 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11347 l_array_mpa_segment14 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11348 l_array_mpa_segment15 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11349 l_array_mpa_segment16 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11350 l_array_mpa_segment17 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11351 l_array_mpa_segment18 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11352 l_array_mpa_segment19 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11353 l_array_mpa_segment20 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11354 l_array_mpa_segment21 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11355 l_array_mpa_segment22 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11356 l_array_mpa_segment23 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11357 l_array_mpa_segment24 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11358 l_array_mpa_segment25 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11359 l_array_mpa_segment26 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11360 l_array_mpa_segment27 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11361 l_array_mpa_segment28 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11362 l_array_mpa_segment29 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11363 l_array_mpa_segment30 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11364 l_array_mpa_ccid XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11365 l_array_mpa_ccid_status_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11366 l_array_mpa_description XLA_AE_JOURNAL_ENTRY_PKG.t_array_V4000L;
11367 l_array_mpa_currency_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V15L;
11368 l_array_mpa_currency_code_pe XLA_AE_JOURNAL_ENTRY_PKG.t_array_V15L; -- 5132302
11369 l_array_mpa_curr_conv_rate XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11370 l_array_mpa_curr_conv_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11371 l_array_mpa_curr_conv_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
11372 l_array_mpa_currency_mau XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11373 l_array_mpa_party_type_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V1L;
11374 l_array_mpa_party_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11375 l_array_mpa_party_site_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11376 l_array_mpa_encum_type_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Int;
11377 l_array_mpa_acct_cr_ratio XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11378 l_array_mpa_acct_dr_ratio XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11379 l_array_mpa_ledger_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
11380 l_array_mpa_ref_ae_header_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
11381 l_array_mpa_temp_line_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
11382 l_array_mpa_ae_header_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
11383 l_array_mpa_header_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
11384 l_array_acc_rev_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V1L; -- join conditions
11385
11386 -- Historic upgrade
11387 l_array_ledger_category XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11388 l_array_period_start_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
11389 l_array_bflow_historic XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11390 l_primary_start_date DATE;
11391 l_hist_count NUMBER :=0;
11392
11393 BEGIN
11394 IF g_log_enabled THEN
11395 l_log_module := C_DEFAULT_MODULE||'.BusinessFlowPriorEntries';
11396 END IF;
11397 --
11398 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11399 trace
11400 (p_msg => 'BEGIN of BusinessFlowPriorEntries'
11401 ,p_level => C_LEVEL_PROCEDURE
11402 ,p_module => l_log_module);
11403 trace
11404 (p_msg => 'p_accounting_mode = '||p_accounting_mode
11405 ,p_level => C_LEVEL_PROCEDURE
11406 ,p_module => l_log_module);
11407 trace
11408 (p_msg => 'p_bc_mode = '||p_bc_mode
11409 ,p_level => C_LEVEL_PROCEDURE
11410 ,p_module => l_log_module);
11411 trace
11412 (p_msg => 'method = '||xla_accounting_cache_pkg.GetValueChar('VALUATION_METHOD_FLAG')
11413 ,p_level => C_LEVEL_PROCEDURE
11414 ,p_module => l_log_module);
11415 trace
11416 (p_msg => 'g_mpa_accrual_exists = '||xla_accounting_pkg.g_mpa_accrual_exists
11417 ,p_level => C_LEVEL_PROCEDURE
11418 ,p_module => l_log_module);
11419 END IF;
11420
11421 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
11422 trace
11423 (p_msg => 'g_num_bflow_prior_entries = '||g_num_bflow_prior_entries
11424 ,p_level => C_LEVEL_STATEMENT
11425 ,p_module => l_log_module);
11426 END IF;
11427
11428
11429 IF (g_num_bflow_prior_entries > 0) THEN
11430
11431 --
11432 -- Update DUMMY_BFPE rows based on upstream journal lines in XLA_AE_LINES
11433 --
11434
11435 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
11436
11437 FOR c IN c_bflow_ae_lines LOOP
11438 trace
11439 (p_msg => 'ae_header='||c.temp_ref_ae_header_id||
11440 ' ae_line='||c.ref_ae_line_num
11441 ,p_level => C_LEVEL_EVENT
11442 ,p_module => l_log_module);
11443 END LOOP;
11444
11445 FOR l IN (SELECT * FROM xla_ae_lines_gt WHERE reversal_code = C_DUMMY_PRIOR) LOOP
11446 trace(p_msg => 'event_id='||l.event_id||
11447 ' ae_header_id='||l.ae_header_id
11448 ,p_level => C_LEVEL_STATEMENT
11449 ,p_module => l_log_module);
11450 trace(p_msg => ' business_class_code='||l.business_class_code||
11451 ' bflow_application_id='||l.bflow_application_id||
11452 ' ledger_id='||l.ledger_id||
11453 ' bflow_entity_code='||l.bflow_entity_code||
11454 ' balance_type_code='||l.balance_type_code||
11455 ' bflow_applied_to_amt='||l.bflow_applied_to_amount|| -- 5132302
11456 ' currency_code='||l.currency_code|| -- 5132302
11457 ' source_distribution_type='||l.source_distribution_type||
11458 ' bflow_distribution_type='||l.bflow_distribution_type
11459 ,p_level => C_LEVEL_STATEMENT
11460 ,p_module => l_log_module);
11461 trace (p_msg => ' bflow_dist_id_num_1='||l.bflow_dist_id_num_1||
11462 ' bflow_dist_id_num_2='||l.bflow_dist_id_num_2||
11463 ' bflow_dist_id_num_3='||l.bflow_dist_id_num_3||
11464 ' bflow_dist_id_num_4='||l.bflow_dist_id_num_4||
11465 ' bflow_dist_id_num_5='||l.bflow_dist_id_num_5||
11466 ' bflow_dist_id_char_1='||l.bflow_dist_id_char_1||
11467 ' bflow_dist_id_char_2='||l.bflow_dist_id_char_2||
11468 ' bflow_dist_id_char_3='||l.bflow_dist_id_char_3||
11469 ' bflow_dist_id_char_4='||l.bflow_dist_id_char_4||
11470 ' bflow_dist_id_char_5='||l.bflow_dist_id_char_5||
11471 ' override_acctd_amt_flag='||l.override_acctd_amt_flag
11472 ,p_level => C_LEVEL_STATEMENT
11473 ,p_module => l_log_module);
11474 trace
11475 (p_msg => ' bflow_source_id_num_1='||l.bflow_source_id_num_1||
11476 ' bflow_source_id_num_2='||l.bflow_source_id_num_2||
11477 ' bflow_source_id_num_3='||l.bflow_source_id_num_3||
11478 ' bflow_source_id_num_4='||l.bflow_source_id_num_4||
11479 ' bflow_source_id_char_1='||l.bflow_source_id_char_1||
11480 ' bflow_source_id_char_2='||l.bflow_source_id_char_2||
11481 ' bflow_source_id_char_3='||l.bflow_source_id_char_3||
11482 ' bflow_source_id_char_4='||l.bflow_source_id_char_4
11483 ,p_level => C_LEVEL_STATEMENT
11484 ,p_module => l_log_module);
11485 END LOOP;
11486 END IF;
11487
11488 ----------------------------------------------------------------
11489 -- 5357406 - prior entry performance fix
11490 OPEN c_bflow_ae_lines;
11491
11492 LOOP FETCH c_bflow_ae_lines BULK COLLECT INTO
11493 l_array_row_id
11494 ,l_array_ccid
11495 ,l_array_description
11496 ,l_array_currency_code
11497 ,l_array_curr_conversion_rate
11498 ,l_array_curr_conversion_type
11499 ,l_array_curr_conversion_date
11500 ,l_array_currency_mau
11501 ,l_array_unrounded_entered_cr
11502 ,l_array_unrounded_entered_dr
11503 ,l_array_party_type_code
11504 ,l_array_party_id
11505 ,l_array_party_site_id
11506 ,l_array_encumbrance_type_id
11507 ,l_array_ccid_status_code
11508 ,l_array_ref_event_id
11509 ,l_array_temp_ref_ae_header_id
11510 ,l_array_ref_ae_line_num
11511 ,l_array_ref_temp_line_num
11512 ,l_array_bflow_pe_status_code
11513 ,l_array_pe_entity_id
11514 LIMIT C_BULK_LIMIT;
11515
11516 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
11517 trace
11518 (p_module => l_log_module
11519 ,p_msg => 'Count of prior entry =' || l_array_row_id.COUNT
11520 ,p_level => C_LEVEL_STATEMENT
11521 );
11522 END IF;
11523
11524 IF l_array_row_id.COUNT = 0 THEN
11525 EXIT;
11526 END IF;
11527
11528 FORALL i IN 1..l_array_row_id.LAST
11529 UPDATE xla_ae_lines_gt
11530 SET code_combination_id = l_array_ccid (i)
11531 ,description = l_array_description (i)
11532 ,temp_currency_code = l_array_currency_code (i) -- upstream currency code
11533 ,currency_conversion_rate = l_array_curr_conversion_rate (i)
11534 ,currency_conversion_type = l_array_curr_conversion_type (i)
11535 ,currency_conversion_date = TRUNC(l_array_curr_conversion_date (i))
11536 ,entered_currency_mau = l_array_currency_mau (i)
11537 ,unrounded_entered_cr = l_array_unrounded_entered_cr (i)
11538 ,unrounded_entered_dr = l_array_unrounded_entered_dr (i)
11539 ,party_type_code = l_array_party_type_code (i)
11540 ,party_id = l_array_party_id (i)
11541 ,party_site_id = l_array_party_site_id (i)
11542 ,encumbrance_type_id = l_array_encumbrance_type_id (i)
11543 ,code_combination_status_code = l_array_ccid_status_code (i)
11544 ,ref_event_id = l_array_ref_event_id (i)
11545 ,temp_ref_ae_header_id = l_array_temp_ref_ae_header_id (i)
11546 ,ref_ae_line_num = l_array_ref_ae_line_num (i)
11547 ,ref_temp_line_num = l_array_ref_temp_line_num (i)
11548 ,bflow_prior_entry_status_code = l_array_bflow_pe_status_code (i)
11549 ,applied_to_entity_id = l_array_pe_entity_id (i)
11550 WHERE rowid = l_array_row_id (i);
11551 END LOOP;
11552 CLOSE c_bflow_ae_lines;
11553 ----------------------------------------------------------------
11554
11555 ----------------------------------------------------------------
11556 /* performance bug 5357406
11557 UPDATE xla_ae_lines_gt xalg
11558 SET (code_combination_id
11559 ,description
11560 ,temp_currency_code -- upstream currency code
11561 ,currency_conversion_rate
11562 ,currency_conversion_type
11563 ,currency_conversion_date
11564 ,entered_currency_mau -- 4482069
11565 ,unrounded_entered_cr -- 4482069
11566 ,unrounded_entered_dr -- 4482069
11567 ,party_type_code
11568 ,party_id
11569 ,party_site_id
11570 ,encumbrance_type_id
11571 ,code_combination_status_code
11572 ,ref_event_id
11573 ,temp_ref_ae_header_id
11574 ,ref_ae_line_num
11575 ,ref_temp_line_num
11576 ,bflow_prior_entry_status_code
11577 ,applied_to_entity_id
11578 ) =
11579 (SELECT MIN(NVL(xal3.merge_code_combination_id,xal3.code_combination_id)) -- 4967526
11580 ,MIN(DECODE(xalg.inherit_desc_flag, 'Y', xal3.description, xalg.description))
11581 ,MIN(xal3.currency_code)
11582 ,MIN(DECODE(xal3.currency_code
11583 ,xla_accounting_cache_pkg.GetValueChar('XLA_CURRENCY_CODE',xalg.ledger_id)
11584 ,NULL
11585 ,xal3.currency_conversion_rate))
11586 ,MIN(DECODE(xal3.currency_code
11587 ,xla_accounting_cache_pkg.GetValueChar('XLA_CURRENCY_CODE',xalg.ledger_id)
11588 ,NULL
11589 ,xal3.currency_conversion_type))
11590 ,MIN(DECODE(xal3.currency_code
11591 ,xla_accounting_cache_pkg.GetValueChar('XLA_CURRENCY_CODE',xalg.ledger_id)
11592 ,NULL
11593 ,xal3.currency_conversion_date))
11594 ---------------------------------------------------------------------------
11595 -- 4482069 error XLA_AP_INVALID_AMT_BASE
11596 -- Occurs when upstream is invalid so c_bflow_valid_lines
11597 -- is not found hence entered amounts will not calc.
11598 -- Upstream invalid need not prevent this value to be assigned.
11599 ---------------------------------------------------------------------------
11600 ,MIN(xla_accounting_cache_pkg.GetCurrencyMau(xal3.currency_code))
11601 ---------------------------------------------------------------------------
11602 -- 4482069 based on calculate_acctd_amts_flag and transaction currency
11603 -- Note: In theory, when calculate_acctd_amts_flag is 'No', entered and
11604 -- accounted amt should be the same (therefore we need not recalc
11605 -- accounted amt.) But just in case, perform the following copy to
11606 -- make sure they will be the same.
11607 ---------------------------------------------------------------------------
11608 ,MIN(DECODE(calculate_acctd_amts_flag
11609 ,'N', DECODE(xalg.currency_code
11610 ,xla_accounting_cache_pkg.GetValueChar('XLA_CURRENCY_CODE',xalg.ledger_id)
11611 ,NVL(xalg.unrounded_accounted_cr,xalg.unrounded_entered_cr)
11612 ,xalg.unrounded_entered_cr)
11613 ,xalg.unrounded_entered_cr) )
11614 ---------------------------------------------------------------------------
11615 -- 4482069 based on calculate_acctd_amts_flag and transaction currency
11616 ---------------------------------------------------------------------------
11617 ,MIN(DECODE(calculate_acctd_amts_flag
11618 ,'N', DECODE(xalg.currency_code
11619 ,xla_accounting_cache_pkg.GetValueChar('XLA_CURRENCY_CODE',xalg.ledger_id)
11620 ,NVL(xalg.unrounded_accounted_dr,xalg.unrounded_entered_dr)
11621 ,xalg.unrounded_entered_dr)
11622 ,xalg.unrounded_entered_dr))
11623 ,MIN(xal3.party_type_code)
11624 ,MIN(NVL(xal3.merge_party_id,xal3.party_id)) -- 4967526
11625 ,MIN(NVL(xal3.merge_party_site_id,xal3.party_site_id)) -- 4967526
11626 ,MIN(xal3.encumbrance_type_id)
11627 ,C_CREATED
11628 ,MIN(xdl3.event_id)
11629 ,MIN(xdl3.ae_header_id)
11630 ,MIN(xal3.ae_line_num)
11631 ,MIN(xdl3.temp_line_num)
11632 --,MIN(xah3.accounting_entry_status_code)
11633 ,MIN(DECODE(xalg.currency_code,xal3.currency_code,xah3.accounting_entry_status_code, -- 5132302
11634 DECODE(xalg.bflow_applied_to_amount, NULL, 'X', xah3.accounting_entry_status_code))) -- 5132302
11635 ,MIN(xah3.entity_id)
11636 FROM xla_ae_lines xal3
11637 , xla_ae_headers xah3
11638 , xla_distribution_links xdl3
11639 WHERE xah3.application_id = xdl3.application_id
11640 AND xah3.ae_header_id = xdl3.ae_header_id
11641 AND xal3.application_id = xdl3.application_id
11642 AND xal3.ae_header_id = xdl3.ae_header_id
11643 AND xal3.ae_line_num = xdl3.ae_line_num
11644 AND xal3.business_class_code = xalg.business_class_code -- 4336173
11645 AND xdl3.source_distribution_type = xalg.bflow_distribution_type
11646 AND NVL(xdl3.source_distribution_id_num_1,C_NUM) = NVL(xalg.bflow_dist_id_num_1,C_NUM)
11647 AND NVL(xdl3.source_distribution_id_num_2,C_NUM) = NVL(xalg.bflow_dist_id_num_2,C_NUM)
11648 AND NVL(xdl3.source_distribution_id_num_3,C_NUM) = NVL(xalg.bflow_dist_id_num_3,C_NUM)
11649 AND NVL(xdl3.source_distribution_id_num_4,C_NUM) = NVL(xalg.bflow_dist_id_num_4,C_NUM)
11650 AND NVL(xdl3.source_distribution_id_num_5,C_NUM) = NVL(xalg.bflow_dist_id_num_5,C_NUM)
11651 AND NVL(xdl3.source_distribution_id_char_1,C_CHAR) = NVL(xalg.bflow_dist_id_char_1,C_CHAR)
11652 AND NVL(xdl3.source_distribution_id_char_2,C_CHAR) = NVL(xalg.bflow_dist_id_char_2,C_CHAR)
11653 AND NVL(xdl3.source_distribution_id_char_3,C_CHAR) = NVL(xalg.bflow_dist_id_char_3,C_CHAR)
11654 AND NVL(xdl3.source_distribution_id_char_4,C_CHAR) = NVL(xalg.bflow_dist_id_char_4,C_CHAR)
11655 AND NVL(xdl3.source_distribution_id_char_5,C_CHAR) = NVL(xalg.bflow_dist_id_char_5,C_CHAR)
11656 AND xah3.parent_ae_header_id IS NULL -- 4655713b MPA/Accrual Reversal lines cannot be used as prior entries
11657 -- exclude reversed entries
11658 AND NOT EXISTS (SELECT 1
11659 FROM xla_distribution_links xdl4
11660 , xla_ae_headers xah4
11661 WHERE xdl4.ref_ae_header_id = xdl3.ae_header_id
11662 AND xdl4.temp_line_num = xdl3.temp_line_num * -1
11663 AND xah4.application_id = xdl4.application_id
11664 AND xah4.ae_header_id = xdl4.ae_header_id
11665 AND (xah4.accounting_entry_status_code = 'F' OR
11666 (xah4.accounting_entry_status_code = 'D' AND
11667 p_accounting_mode = 'D' AND
11668 p_bc_mode = 'NONE')))
11669 AND xdl3.application_id = xalg.bflow_application_id
11670 AND xdl3.ae_header_id =
11671 (SELECT MAX(xdl.ae_header_id)
11672 FROM xla_transaction_entities xte
11673 , xla_ae_headers xah
11674 , xla_distribution_links xdl
11675 , xla_ae_lines xal
11676 , xla_ledger_relationships_v xlr -- 4478604
11677 , xla_gl_ledgers_v xgl -- 4478604
11678 , xla_ledger_options xlo -- 5204178
11679 WHERE xgl.ledger_id = xalg.ledger_id -- 4478604
11680 AND xlr.ledger_id = xgl.ledger_id -- 4478604
11681 AND xte.application_id = xalg.bflow_application_id
11682 AND xte.entity_code = xalg.bflow_entity_code
11683 AND xte.ledger_id = DECODE(xla_accounting_cache_pkg.GetValueChar('VALUATION_METHOD_FLAG'),
11684 'N', xlr.primary_ledger_id,
11685 DECODE(xlr.ledger_category_code
11686 ,'ALC', xlr.primary_ledger_id
11687 ,DECODE(NVL(xlo.capture_event_flag,'N'),'N',xlr.primary_ledger_id
11688 ,xlr.ledger_id))) -- 5204178 requires secondary ledger event
11689 AND xlo.ledger_id (+) = xgl.ledger_id
11690 AND xlo.application_id (+) = g_application_id
11691 --
11692 AND NVL(xte.source_id_int_1,C_NUM) = NVL(xalg.bflow_source_id_num_1,C_NUM)
11693 AND NVL(xte.source_id_int_2,C_NUM) = NVL(xalg.bflow_source_id_num_2,C_NUM)
11694 AND NVL(xte.source_id_int_3,C_NUM) = NVL(xalg.bflow_source_id_num_3,C_NUM)
11695 AND NVL(xte.source_id_int_4,C_NUM) = NVL(xalg.bflow_source_id_num_4,C_NUM)
11696 AND NVL(xte.source_id_char_1,C_CHAR) = NVL(xalg.bflow_source_id_char_1,C_CHAR)
11697 AND NVL(xte.source_id_char_2,C_CHAR) = NVL(xalg.bflow_source_id_char_2,C_CHAR)
11698 AND NVL(xte.source_id_char_3,C_CHAR) = NVL(xalg.bflow_source_id_char_3,C_CHAR)
11699 AND NVL(xte.source_id_char_4,C_CHAR) = NVL(xalg.bflow_source_id_char_4,C_CHAR)
11700 --
11701 AND xah.application_id = xte.application_id
11702 AND xah.ledger_id = xalg.ledger_id
11703 AND xah.entity_id = xte.entity_id
11704 AND xah.balance_type_code = xalg.balance_type_code
11705 --
11706 AND xdl.application_id = xah.application_id
11707 AND xdl.event_id = xah.event_id
11708 AND xdl.ae_header_id = xah.ae_header_id
11709 AND xdl.source_distribution_type = xalg.bflow_distribution_type
11710 AND NVL(xdl.source_distribution_id_num_1,C_NUM) = NVL(xalg.bflow_dist_id_num_1,C_NUM)
11711 AND NVL(xdl.source_distribution_id_num_2,C_NUM) = NVL(xalg.bflow_dist_id_num_2,C_NUM)
11712 AND NVL(xdl.source_distribution_id_num_3,C_NUM) = NVL(xalg.bflow_dist_id_num_3,C_NUM)
11713 AND NVL(xdl.source_distribution_id_num_4,C_NUM) = NVL(xalg.bflow_dist_id_num_4,C_NUM)
11714 AND NVL(xdl.source_distribution_id_num_5,C_NUM) = NVL(xalg.bflow_dist_id_num_5,C_NUM)
11715 AND NVL(xdl.source_distribution_id_char_1,C_CHAR) = NVL(xalg.bflow_dist_id_char_1,C_CHAR)
11716 AND NVL(xdl.source_distribution_id_char_2,C_CHAR) = NVL(xalg.bflow_dist_id_char_2,C_CHAR)
11717 AND NVL(xdl.source_distribution_id_char_3,C_CHAR) = NVL(xalg.bflow_dist_id_char_3,C_CHAR)
11718 AND NVL(xdl.source_distribution_id_char_4,C_CHAR) = NVL(xalg.bflow_dist_id_char_4,C_CHAR)
11719 AND NVL(xdl.source_distribution_id_char_5,C_CHAR) = NVL(xalg.bflow_dist_id_char_5,C_CHAR)
11720 --
11721 AND xal.business_class_code = xalg.business_class_code -- 4336173
11722 AND xal.application_id = xdl.application_id
11723 AND xal.ae_header_id = xdl.ae_header_id
11724 AND xal.ae_line_num = xdl.ae_line_num
11725 -- bug 4946123 - limit the status of the prior entry
11726 -- Final entries are always considered
11727 -- If running in BC mode, draft is not considered
11728 -- Otherwise, draft is considered only if running in draft mode
11729 AND xah.accounting_entry_status_code IN ('F', DECODE(p_bc_mode,'NONE',p_accounting_mode,'F'))
11730 -- exclude reversed entries
11731 -- When running in BC mode, draft reversal entries are not considered
11732 AND NOT EXISTS (SELECT 1
11733 FROM xla_distribution_links xdl2
11734 , xla_ae_headers xah2
11735 WHERE xdl2.ref_ae_header_id = xdl.ae_header_id
11736 AND xdl2.temp_line_num = xdl.temp_line_num * -1
11737 AND xah2.application_id = xdl2.application_id
11738 AND xah2.ae_header_id = xdl2.ae_header_id
11739 AND (xah2.accounting_entry_status_code = 'F' OR
11740 (xah2.accounting_entry_status_code = 'D' AND
11741 p_accounting_mode = 'D' AND
11742 p_bc_mode = 'NONE')))
11743 ))
11744 WHERE xalg.reversal_code = C_DUMMY_PRIOR;
11745 */
11746
11747 -------------------------------------------------------------------------
11748 -- Update the ref_ae_header_id of the line where the prior entry is found
11749 -------------------------------------------------------------------------
11750 OPEN c_bflow_valid_lines;
11751 FETCH c_bflow_valid_lines BULK COLLECT INTO l_array_ae_header_id
11752 ,l_array_event_id
11753 ,l_array_ledger_id
11754 ,l_array_balance_type_code
11755 ,l_array_line_num;
11756 CLOSE c_bflow_valid_lines;
11757
11758 IF (C_LEVEL_EVENT >= g_log_level) THEN
11759 trace
11760 (p_msg => '# bflow valid lines = '||l_array_balance_type_code.COUNT
11761 ,p_level => C_LEVEL_EVENT
11762 ,p_module => l_log_module);
11763 END IF;
11764
11765 IF (l_array_balance_type_code.COUNT > 0) THEN
11766 FORALL i IN 1..l_array_balance_type_code.COUNT
11767 UPDATE /*+ index(xalg xla_ae_lines_gt_n4) */ xla_ae_lines_gt xalg -- 6990256
11768 SET ref_ae_header_id = temp_ref_ae_header_id,
11769 currency_code = temp_currency_code,
11770 reversal_code = null, -- 5499367
11771 (unrounded_entered_cr -- 5132302
11772 ,unrounded_entered_dr -- 5132302
11773 ,unrounded_accounted_cr
11774 ,unrounded_accounted_dr) =
11775 ----------------------------------------------------------------------------------------------------------
11776 -- Modified for bug 4482069
11777 -- Normally, business flow should be setup between different sides. So just in case, we first try
11778 -- to use the amount from the opposite side. And if it is null, take amount from same side.
11779 --
11780 -- Modify for bug 4656703
11781 -- Modify for bug 4873615 - Handle the 'divided by zero' error
11782 --
11783 -- Modify for bug 5132302 - calculate accounted amt from applied_to_amt if currencies are different
11784 ----------------------------------------------------------------------------------------------------------
11785 (SELECT DECODE(xalg.currency_code,xalg.temp_currency_code, xalg.unrounded_entered_cr,
11786 DECODE(xalg.unrounded_entered_cr,NULL,NULL,NVL(xalg.bflow_applied_to_amount,xalg.unrounded_entered_cr)))
11787 ,DECODE(xalg.currency_code,xalg.temp_currency_code, xalg.unrounded_entered_dr,
11788 DECODE(xalg.unrounded_entered_dr,NULL,NULL,NVL(xalg.bflow_applied_to_amount,xalg.unrounded_entered_dr)))
11789 ,DECODE(xalg.override_acctd_amt_flag,'Y'
11790 ,xalg.unrounded_accounted_cr,
11791 (DECODE (xal.unrounded_accounted_dr,NULL
11792 ,CASE WHEN xal.unrounded_entered_cr <> 0
11793 THEN DECODE(xalg.currency_code,xalg.temp_currency_code,
11794 (xal.unrounded_accounted_cr/xal.unrounded_entered_cr)*xalg.unrounded_entered_cr,
11795 (xal.unrounded_accounted_cr/xal.unrounded_entered_cr)* DECODE(xalg.unrounded_entered_cr,NULL,NULL,
11796 NVL(xalg.bflow_applied_to_amount,xalg.unrounded_entered_cr)))
11797 ELSE xalg.unrounded_entered_cr END
11798 ,CASE WHEN xal.unrounded_entered_dr <> 0
11799 THEN DECODE(xalg.currency_code,xalg.temp_currency_code,
11800 (xal.unrounded_accounted_dr/xal.unrounded_entered_dr)*xalg.unrounded_entered_cr,
11801 (xal.unrounded_accounted_dr/xal.unrounded_entered_dr)* DECODE(xalg.unrounded_entered_cr,NULL,NULL,
11802 NVL(xalg.bflow_applied_to_amount,xalg.unrounded_entered_cr)))
11803 ELSE xalg.unrounded_entered_cr END))
11804 )
11805
11806 ,DECODE(xalg.override_acctd_amt_flag,'Y'
11807 ,xalg.unrounded_accounted_dr,
11808 (DECODE (xal.unrounded_accounted_cr,NULL
11809 ,CASE WHEN xal.unrounded_entered_dr <> 0
11810 THEN DECODE(xalg.currency_code,xalg.temp_currency_code,
11811 (xal.unrounded_accounted_dr/xal.unrounded_entered_dr)*xalg.unrounded_entered_dr,
11812 (xal.unrounded_accounted_dr/xal.unrounded_entered_dr)* DECODE(xalg.unrounded_entered_dr,NULL,NULL,
11813 NVL(xalg.bflow_applied_to_amount,xalg.unrounded_entered_dr)))
11814 ELSE xalg.unrounded_entered_dr END
11815 ,CASE WHEN xal.unrounded_entered_cr <> 0
11816 THEN DECODE(xalg.currency_code,xalg.temp_currency_code,
11817 (xal.unrounded_accounted_cr/xal.unrounded_entered_cr)*xalg.unrounded_entered_dr,
11818 (xal.unrounded_accounted_cr/xal.unrounded_entered_cr)* DECODE(xalg.unrounded_entered_dr,NULL,NULL,
11819 NVL(xalg.bflow_applied_to_amount,xalg.unrounded_entered_dr)))
11820 ELSE xalg.unrounded_entered_dr END))
11821 )
11822
11823 FROM xla_ae_lines xal
11824 WHERE xal.application_id = xalg.bflow_application_id
11825 AND xal.ae_header_id = xalg.temp_ref_ae_header_id
11826 AND xal.ae_line_num = xalg.ref_ae_line_num),
11827 entered_currency_mau = xla_accounting_cache_pkg.GetCurrencyMau(temp_currency_code),
11828 (segment1, segment2, segment3, segment4, segment5, segment6, segment7, segment8, segment9, segment10
11829 ,segment11, segment12, segment13, segment14, segment15, segment16, segment17, segment18, segment19, segment20
11830 ,segment21, segment22, segment23, segment24, segment25, segment26, segment27, segment28, segment29, segment30) =
11831 (SELECT gcc.segment1, gcc.segment2, gcc.segment3, gcc.segment4, gcc.segment5
11832 ,gcc.segment6, gcc.segment7, gcc.segment8, gcc.segment9, gcc.segment10
11833 ,gcc.segment11, gcc.segment12, gcc.segment13, gcc.segment14, gcc.segment15
11834 ,gcc.segment16, gcc.segment17, gcc.segment18, gcc.segment19, gcc.segment20
11835 ,gcc.segment21, gcc.segment22, gcc.segment23, gcc.segment24, gcc.segment25
11836 ,gcc.segment26, gcc.segment27, gcc.segment28, gcc.segment29, gcc.segment30
11837 FROM gl_code_combinations gcc
11838 WHERE gcc.code_combination_id = xalg.code_combination_id),
11839 (anc_id_1, anc_id_2, anc_id_3, anc_id_4, anc_id_5
11840 ,anc_id_6, anc_id_7, anc_id_8, anc_id_9, anc_id_10
11841 ,anc_id_11, anc_id_12, anc_id_13, anc_id_14, anc_id_15
11842 ,anc_id_16, anc_id_17, anc_id_18, anc_id_19, anc_id_20
11843 ,anc_id_21, anc_id_22, anc_id_23, anc_id_24, anc_id_25
11844 ,anc_id_26, anc_id_27, anc_id_28, anc_id_29, anc_id_30
11845 ,anc_id_31, anc_id_32, anc_id_33, anc_id_34, anc_id_35
11846 ,anc_id_36, anc_id_37, anc_id_38, anc_id_39, anc_id_40
11847 ,anc_id_41, anc_id_42, anc_id_43, anc_id_44, anc_id_45
11848 ,anc_id_46, anc_id_47, anc_id_48, anc_id_49, anc_id_50
11849 ,anc_id_51, anc_id_52, anc_id_53, anc_id_54, anc_id_55
11850 ,anc_id_56, anc_id_57, anc_id_58, anc_id_59, anc_id_60
11851 ,anc_id_61, anc_id_62, anc_id_63, anc_id_64, anc_id_65
11852 ,anc_id_66, anc_id_67, anc_id_68, anc_id_69, anc_id_70
11853 ,anc_id_71, anc_id_72, anc_id_73, anc_id_74, anc_id_75
11854 ,anc_id_76, anc_id_77, anc_id_78, anc_id_79, anc_id_80
11855 ,anc_id_81, anc_id_82, anc_id_83, anc_id_84, anc_id_85
11856 ,anc_id_86, anc_id_87, anc_id_88, anc_id_89, anc_id_90
11857 ,anc_id_91, anc_id_92, anc_id_93, anc_id_94, anc_id_95
11858 ,anc_id_96, anc_id_97, anc_id_98, anc_id_99, anc_id_100) =
11859 (SELECT
11860 MAX(DECODE(rank,1,anc_id)) ,MAX(DECODE(rank,2,anc_id))
11861 ,MAX(DECODE(rank,3,anc_id)) ,MAX(DECODE(rank,4,anc_id))
11862 ,MAX(DECODE(rank,5,anc_id)) ,MAX(DECODE(rank,6,anc_id))
11863 ,MAX(DECODE(rank,7,anc_id)) ,MAX(DECODE(rank,8,anc_id))
11864 ,MAX(DECODE(rank,9,anc_id)) ,MAX(DECODE(rank,10,anc_id))
11865 ,MAX(DECODE(rank,11,anc_id)) ,MAX(DECODE(rank,12,anc_id))
11866 ,MAX(DECODE(rank,13,anc_id)) ,MAX(DECODE(rank,14,anc_id))
11867 ,MAX(DECODE(rank,15,anc_id)) ,MAX(DECODE(rank,16,anc_id))
11868 ,MAX(DECODE(rank,17,anc_id)) ,MAX(DECODE(rank,18,anc_id))
11869 ,MAX(DECODE(rank,19,anc_id)) ,MAX(DECODE(rank,20,anc_id))
11870 ,MAX(DECODE(rank,21,anc_id)) ,MAX(DECODE(rank,22,anc_id))
11871 ,MAX(DECODE(rank,23,anc_id)) ,MAX(DECODE(rank,24,anc_id))
11872 ,MAX(DECODE(rank,25,anc_id)) ,MAX(DECODE(rank,26,anc_id))
11873 ,MAX(DECODE(rank,27,anc_id)) ,MAX(DECODE(rank,28,anc_id))
11874 ,MAX(DECODE(rank,29,anc_id)) ,MAX(DECODE(rank,30,anc_id))
11875 ,MAX(DECODE(rank,31,anc_id)) ,MAX(DECODE(rank,32,anc_id))
11876 ,MAX(DECODE(rank,33,anc_id)) ,MAX(DECODE(rank,34,anc_id))
11877 ,MAX(DECODE(rank,35,anc_id)) ,MAX(DECODE(rank,36,anc_id))
11878 ,MAX(DECODE(rank,37,anc_id)) ,MAX(DECODE(rank,38,anc_id))
11879 ,MAX(DECODE(rank,39,anc_id)) ,MAX(DECODE(rank,40,anc_id))
11880 ,MAX(DECODE(rank,41,anc_id)) ,MAX(DECODE(rank,42,anc_id))
11881 ,MAX(DECODE(rank,43,anc_id)) ,MAX(DECODE(rank,44,anc_id))
11882 ,MAX(DECODE(rank,45,anc_id)) ,MAX(DECODE(rank,46,anc_id))
11883 ,MAX(DECODE(rank,47,anc_id)) ,MAX(DECODE(rank,48,anc_id))
11884 ,MAX(DECODE(rank,49,anc_id)) ,MAX(DECODE(rank,50,anc_id))
11885 ,MAX(DECODE(rank,51,anc_id)) ,MAX(DECODE(rank,52,anc_id))
11886 ,MAX(DECODE(rank,53,anc_id)) ,MAX(DECODE(rank,54,anc_id))
11887 ,MAX(DECODE(rank,55,anc_id)) ,MAX(DECODE(rank,56,anc_id))
11888 ,MAX(DECODE(rank,57,anc_id)) ,MAX(DECODE(rank,58,anc_id))
11889 ,MAX(DECODE(rank,59,anc_id)) ,MAX(DECODE(rank,60,anc_id))
11890 ,MAX(DECODE(rank,61,anc_id)) ,MAX(DECODE(rank,62,anc_id))
11891 ,MAX(DECODE(rank,63,anc_id)) ,MAX(DECODE(rank,64,anc_id))
11892 ,MAX(DECODE(rank,65,anc_id)) ,MAX(DECODE(rank,66,anc_id))
11893 ,MAX(DECODE(rank,67,anc_id)) ,MAX(DECODE(rank,68,anc_id))
11894 ,MAX(DECODE(rank,69,anc_id)) ,MAX(DECODE(rank,70,anc_id))
11895 ,MAX(DECODE(rank,71,anc_id)) ,MAX(DECODE(rank,72,anc_id))
11896 ,MAX(DECODE(rank,73,anc_id)) ,MAX(DECODE(rank,74,anc_id))
11897 ,MAX(DECODE(rank,75,anc_id)) ,MAX(DECODE(rank,76,anc_id))
11898 ,MAX(DECODE(rank,77,anc_id)) ,MAX(DECODE(rank,78,anc_id))
11899 ,MAX(DECODE(rank,79,anc_id)) ,MAX(DECODE(rank,80,anc_id))
11900 ,MAX(DECODE(rank,81,anc_id)) ,MAX(DECODE(rank,82,anc_id))
11901 ,MAX(DECODE(rank,83,anc_id)) ,MAX(DECODE(rank,84,anc_id))
11902 ,MAX(DECODE(rank,85,anc_id)) ,MAX(DECODE(rank,86,anc_id))
11903 ,MAX(DECODE(rank,87,anc_id)) ,MAX(DECODE(rank,88,anc_id))
11904 ,MAX(DECODE(rank,89,anc_id)) ,MAX(DECODE(rank,90,anc_id))
11905 ,MAX(DECODE(rank,91,anc_id)) ,MAX(DECODE(rank,92,anc_id))
11906 ,MAX(DECODE(rank,93,anc_id)) ,MAX(DECODE(rank,94,anc_id))
11907 ,MAX(DECODE(rank,95,anc_id)) ,MAX(DECODE(rank,96,anc_id))
11908 ,MAX(DECODE(rank,97,anc_id)) ,MAX(DECODE(rank,98,anc_id))
11909 ,MAX(DECODE(rank,99,anc_id)) ,MAX(DECODE(rank,100,anc_id))
11910 FROM (SELECT ae_header_id
11911 ,ae_line_num
11912 ,analytical_criterion_code || '(]' ||
11913 analytical_criterion_type_code || '(]' ||
11914 amb_context_code || '(]' ||
11915 ac1 || '(]' ||
11916 ac2 || '(]' ||
11917 ac3 || '(]' ||
11918 ac4 || '(]' ||
11919 ac5 anc_id
11920 ,RANK() OVER (
11921 PARTITION BY ae_header_id, ae_line_num
11922 ORDER BY analytical_criterion_code
11923 ,analytical_criterion_type_code
11924 ,amb_context_code
11925 ,ac1
11926 ,ac2
11927 ,ac3
11928 ,ac4
11929 ,ac5) rank
11930 FROM xla_ae_line_acs) aed
11931 WHERE aed.ae_header_id = xalg.temp_ref_ae_header_id
11932 AND aed.ae_line_num = xalg.ref_ae_line_num)
11933 WHERE balance_type_code = l_array_balance_type_code(i)
11934 AND ae_header_id = l_array_ae_header_id(i)
11935 AND event_id = l_array_event_id(i)
11936 AND ledger_id = l_array_ledger_id(i)
11937 AND temp_line_num = l_array_line_num(i);
11938 END IF;
11939
11940
11941 -------------------------------------------------------------------------------------------------------------------------
11942 -- 4655713b Update MPA and Accrual Reversal lines with Prior Entry
11943 -------------------------------------------------------------------------------------------------------------------------
11944 IF xla_accounting_pkg.g_mpa_accrual_exists = 'Y' THEN -- 5666366
11945 SELECT /*+ Leading (xal1,xah1,xal2) index(xah1 XLA_AE_HEADERS_GT_U1) index(xal2 XLA_AE_LINES_GT_N2) no_expand */ -- 5666366
11946 xal2.segment1, xal2.segment2, xal2.segment3, xal2.segment4, xal2.segment5
11947 ,xal2.segment6, xal2.segment7, xal2.segment8, xal2.segment9, xal2.segment10
11948 ,xal2.segment11, xal2.segment12, xal2.segment13, xal2.segment14, xal2.segment15
11949 ,xal2.segment16, xal2.segment17, xal2.segment18, xal2.segment19, xal2.segment20
11950 ,xal2.segment21, xal2.segment22, xal2.segment23, xal2.segment24, xal2.segment25
11951 ,xal2.segment26, xal2.segment27, xal2.segment28, xal2.segment29, xal2.segment30
11952 ,xal2.code_combination_id
11953 ,xal2.code_combination_status_code
11954 ,DECODE(NVL(xal1.inherit_desc_flag,'N'), 'Y', xal2.description, xal1.description)
11955 ,xal2.currency_code -- upstream
11956 ,xal1.currency_code -- downstream 5132302
11957 ,xal2.currency_conversion_rate
11958 ,xal2.currency_conversion_type
11959 ,xal2.currency_conversion_date
11960 ,xal2.entered_currency_mau
11961 ,xal2.party_type_code
11962 ,xal2.party_id
11963 ,xal2.party_site_id
11964 ,xal2.encumbrance_type_id
11965 -- CALCULATE_ACCTD_AMTS_FLAG is ignored for Prior Entry (see bug 4482069 for details). Same applies to MPA lines.
11966 ,DECODE (xal3.unrounded_accounted_dr,NULL
11967 ,CASE WHEN xal3.unrounded_entered_cr <> 0
11968 THEN xal3.unrounded_accounted_cr/xal3.unrounded_entered_cr
11969 ELSE 1 END
11970 ,CASE WHEN xal3.unrounded_entered_dr <> 0
11971 THEN xal3.unrounded_accounted_dr/xal3.unrounded_entered_dr
11972 ELSE 1 END)
11973 ,DECODE (xal3.unrounded_accounted_cr,NULL
11974 ,CASE WHEN xal3.unrounded_entered_dr <> 0
11975 THEN xal3.unrounded_accounted_dr/xal3.unrounded_entered_dr
11976 ELSE 1 END
11977 ,CASE WHEN xal3.unrounded_entered_cr <> 0
11978 THEN xal3.unrounded_accounted_cr/xal3.unrounded_entered_cr
11979 ELSE 1 END)
11980 -- join conditions
11981 ,xal1.ledger_id
11982 ,xal1.ref_ae_header_id
11983 ,xal1.temp_line_num
11984 ,xal1.ae_header_id
11985 ,xal1.header_num
11986 ,DECODE(xah1.parent_ae_line_num,NULL,'Y','N') -- accrual_reversal_flag
11987 BULK COLLECT INTO
11988 l_array_mpa_segment1 ,l_array_mpa_segment2 ,l_array_mpa_segment3 ,l_array_mpa_segment4 ,l_array_mpa_segment5
11989 ,l_array_mpa_segment6 ,l_array_mpa_segment7 ,l_array_mpa_segment8 ,l_array_mpa_segment9 ,l_array_mpa_segment10
11990 ,l_array_mpa_segment11 ,l_array_mpa_segment12 ,l_array_mpa_segment13 ,l_array_mpa_segment14 ,l_array_mpa_segment15
11991 ,l_array_mpa_segment16 ,l_array_mpa_segment17 ,l_array_mpa_segment18 ,l_array_mpa_segment19 ,l_array_mpa_segment20
11992 ,l_array_mpa_segment21 ,l_array_mpa_segment22 ,l_array_mpa_segment23 ,l_array_mpa_segment24 ,l_array_mpa_segment25
11993 ,l_array_mpa_segment26 ,l_array_mpa_segment27 ,l_array_mpa_segment28 ,l_array_mpa_segment29 ,l_array_mpa_segment30
11994 ,l_array_mpa_ccid
11995 ,l_array_mpa_ccid_status_code
11996 ,l_array_mpa_description
11997 ,l_array_mpa_currency_code
11998 ,l_array_mpa_currency_code_pe -- 5132302
11999 ,l_array_mpa_curr_conv_rate
12000 ,l_array_mpa_curr_conv_type
12001 ,l_array_mpa_curr_conv_date
12002 ,l_array_mpa_currency_mau
12003 ,l_array_mpa_party_type_code
12004 ,l_array_mpa_party_id
12005 ,l_array_mpa_party_site_id
12006 ,l_array_mpa_encum_type_id
12007 ,l_array_mpa_acct_cr_ratio
12008 ,l_array_mpa_acct_dr_ratio
12009 -- join conditions
12010 ,l_array_mpa_ledger_id
12011 ,l_array_mpa_ref_ae_header_id
12012 ,l_array_mpa_temp_line_num
12013 ,l_array_mpa_ae_header_id
12014 ,l_array_mpa_header_num
12015 ,l_array_acc_rev_flag
12016 FROM xla_ae_lines_gt xal2 -- original downstream line
12017 ,xla_ae_headers_gt xah1 -- original downstream header
12018 ,xla_ae_lines_gt xal1 -- recognition lines
12019 ,xla_ae_lines xal3 -- upstream line
12020 WHERE xal2.source_distribution_type = xal1.source_distribution_type
12021 AND NVL(xal2.source_distribution_id_num_1,C_NUM) = NVL(xal1.source_distribution_id_num_1,C_NUM)
12022 AND NVL(xal2.source_distribution_id_num_2,C_NUM) = NVL(xal1.source_distribution_id_num_2,C_NUM)
12023 AND NVL(xal2.source_distribution_id_num_3,C_NUM) = NVL(xal1.source_distribution_id_num_3,C_NUM)
12024 AND NVL(xal2.source_distribution_id_num_4,C_NUM) = NVL(xal1.source_distribution_id_num_4,C_NUM)
12025 AND NVL(xal2.source_distribution_id_num_5,C_NUM) = NVL(xal1.source_distribution_id_num_5,C_NUM)
12026 AND NVL(xal2.source_distribution_id_char_1,C_CHAR) = NVL(xal1.source_distribution_id_char_1,C_CHAR)
12027 AND NVL(xal2.source_distribution_id_char_2,C_CHAR) = NVL(xal1.source_distribution_id_char_2,C_CHAR)
12028 AND NVL(xal2.source_distribution_id_char_3,C_CHAR) = NVL(xal1.source_distribution_id_char_3,C_CHAR)
12029 AND NVL(xal2.source_distribution_id_char_4,C_CHAR) = NVL(xal1.source_distribution_id_char_4,C_CHAR)
12030 AND NVL(xal2.source_distribution_id_char_5,C_CHAR) = NVL(xal1.source_distribution_id_char_5,C_CHAR)
12031 AND xal2.event_id = xal1.event_id
12032 AND xal2.ledger_id = xal1.ledger_id
12033 AND xal2.balance_type_code = xal1.balance_type_code
12034 AND xal2.event_class_code = xal1.event_class_code
12035 AND xal2.event_type_code = xal1.event_type_code
12036 AND xal2.line_definition_owner_code = xal1.line_definition_owner_code
12037 AND xal2.line_definition_code = xal1.line_definition_code
12038 AND xal2.ACCOUNTING_LINE_TYPE_CODE = xal1.ACCOUNTING_LINE_TYPE_CODE
12039 AND xal2.ACCOUNTING_LINE_CODE = xal1.ACCOUNTING_LINE_CODE
12040 --
12041 AND xah1.ledger_id = xal1.ledger_id
12042 AND xah1.ae_header_id = xal1.ae_header_id
12043 AND xah1.header_num = xal1.header_num
12044 AND ((xah1.parent_ae_line_num IS NOT NULL AND xal2.temp_line_num = xah1.parent_ae_line_num) -- MPA
12045 OR xah1.parent_ae_line_num IS NULL) -- Accrual Reversal
12046 -- 5666366 -------------------------------------
12047 AND XAL1.BALANCE_TYPE_CODE = XAH1.BALANCE_TYPE_CODE
12048 AND XAL2.AE_HEADER_ID = XAL1.AE_HEADER_ID
12049 --------------------------------------------------
12050 AND xal2.header_num = 0
12051 AND xal1.reversal_code = C_MPA_PRIOR_ENTRY
12052 --
12053 AND xal2.bflow_prior_entry_status_code IS NOT NULL AND xal2.bflow_prior_entry_status_code <> 'X' -- 5132302
12054 --
12055 AND xal3.application_id = xal2.bflow_application_id
12056 AND xal3.ae_header_id = xal2.temp_ref_ae_header_id
12057 AND xal3.ae_line_num = xal2.ref_ae_line_num;
12058
12059 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
12060 trace
12061 (p_msg => 'BusinessFlowPriorEntries - no of MPA/AccRev rows found = '||l_array_mpa_ledger_id.COUNT
12062 ,p_level => C_LEVEL_STATEMENT
12063 ,p_module => l_log_module);
12064 FOR i IN 1..l_array_mpa_ledger_id.COUNT LOOP
12065 trace
12066 (p_msg => 'BusinessFlowPriorEntries - mpa lines ledger='||l_array_mpa_ledger_id(i)||
12067 ' ref_header='||l_array_mpa_ref_ae_header_id(i)||
12068 ' temp_line='||l_array_mpa_temp_line_num(i)||
12069 ' ae_header='||l_array_mpa_ae_header_id(i)||
12070 ' header_num='||l_array_mpa_header_num(i)||
12071 ' up_curr='||l_array_mpa_currency_code(i)||
12072 ' dn_curr='||l_array_mpa_currency_code_pe(i)||
12073 ' acc_rev='||l_array_acc_rev_flag(i)
12074 ,p_level => C_LEVEL_STATEMENT
12075 ,p_module => l_log_module);
12076 END LOOP;
12077
12078 FOR i IN (select * from xla_ae_Lines_gt where reversal_code=C_MPA_PRIOR_ENTRY) LOOP
12079 trace
12080 (p_msg => 'ae_lines_gt PE dist ledger='||i.ledger_id||' ref_ae_header='||i.ref_ae_header_id||
12081 ' temp_line='||i.temp_line_num||' ae_header='||i.ae_header_id||' header_num='||i.header_num||
12082 ' bflow='||i.business_method_code||
12083 ' curr='||i.currency_code||' applied_amt='||i.bflow_applied_to_amount|| -- 5132302
12084 ' conv_type='||i.currency_conversion_type||' conv_rate='||i.currency_conversion_rate||
12085 ' udr='||i.unrounded_ACCOUNTED_DR||' ucr='||i.unrounded_ACCOUNTED_CR||' switch='||i.switch_side_flag||
12086 ' line='||i.line_definition_code|| ' dist='||i.source_distribution_type||' rev='||i.reversal_code||
12087 ' n1='||i.source_distribution_id_num_1|| ' n2='||i.source_distribution_id_num_2||
12088 ' n3='||i.source_distribution_id_num_3|| ' n4='||i.source_distribution_id_num_4||
12089 ' n5='||i.source_distribution_id_num_5|| ' c1='||i.source_distribution_id_char_1||
12090 ' c2='||i.source_distribution_id_char_2|| ' c3='||i.source_distribution_id_char_3||
12091 ' c4='||i.source_distribution_id_char_4|| ' c5='||i.source_distribution_id_char_5||
12092 ' bal='||i.balance_type_code|| ' side='||i.natural_side_code||
12093 ' rev='||i.reversal_code
12094 ,p_level => C_LEVEL_STATEMENT
12095 ,p_module => l_log_module);
12096 END LOOP;
12097
12098 FOR i IN (select * from xla_ae_Lines_gt where reversal_code=C_MPA_PRIOR_ENTRY) LOOP
12099 trace
12100 (p_msg => ' seg s1='||i.segment1||' s2='||i.segment2|| ' s3='||i.segment3||' s4='||i.segment4||
12101 ' s5='||i.segment5||' s6='||i.segment6|| ' s7='||i.segment7||' s8='||i.segment8||
12102 ' s9='||i.segment9||' s10='||i.segment10|| ' s11='||i.segment11||' s12='||i.segment12||
12103 ' s13='||i.segment13||' s14='||i.segment14|| ' s15='||i.segment15||' s16='||i.segment16||
12104 ' s17='||i.segment17||' s18='||i.segment18|| ' s19='||i.segment19||' s20='||i.segment20||
12105 ' s21='||i.segment21||' s22='||i.segment22|| ' s23='||i.segment23||' s24='||i.segment24||
12106 ' s25='||i.segment25||' s26='||i.segment26|| ' s27='||i.segment27||' s28='||i.segment28||
12107 ' s29='||i.segment29||' s30='||i.segment30||' ccid='||i.code_combination_id
12108 ,p_level => C_LEVEL_STATEMENT
12109 ,p_module => l_log_module);
12110 END LOOP;
12111
12112 END IF;
12113
12114 ---------------------------------------------------------------------------------------------------------------
12115 -- Updates only the Accrual-Reversal or MPA-Accrual line which is a PRIOR_ENTRY.
12116 -- NOTE: for Accrual-Reversal, one line may be Prior Entry and the rest may not, so update only Prior Entry line.
12117 ---------------------------------------------------------------------------------------------------------------
12118 FORALL i in 1..l_array_mpa_ledger_id.COUNT
12119 UPDATE xla_ae_lines_gt xal
12120 SET segment1 = l_array_mpa_segment1(i)
12121 , segment2 = l_array_mpa_segment2(i)
12122 , segment3 = l_array_mpa_segment3(i)
12123 , segment4 = l_array_mpa_segment4(i)
12124 , segment5 = l_array_mpa_segment5(i)
12125 , segment6 = l_array_mpa_segment6(i)
12126 , segment7 = l_array_mpa_segment7(i)
12127 , segment8 = l_array_mpa_segment8(i)
12128 , segment9 = l_array_mpa_segment9(i)
12129 , segment10 = l_array_mpa_segment10(i)
12130 , segment11 = l_array_mpa_segment11(i)
12131 , segment12 = l_array_mpa_segment12(i)
12132 , segment13 = l_array_mpa_segment13(i)
12133 , segment14 = l_array_mpa_segment14(i)
12134 , segment15 = l_array_mpa_segment15(i)
12135 , segment16 = l_array_mpa_segment16(i)
12136 , segment17 = l_array_mpa_segment17(i)
12137 , segment18 = l_array_mpa_segment18(i)
12138 , segment19 = l_array_mpa_segment19(i)
12139 , segment20 = l_array_mpa_segment20(i)
12140 , segment21 = l_array_mpa_segment21(i)
12141 , segment22 = l_array_mpa_segment22(i)
12142 , segment23 = l_array_mpa_segment23(i)
12143 , segment24 = l_array_mpa_segment24(i)
12144 , segment25 = l_array_mpa_segment25(i)
12145 , segment26 = l_array_mpa_segment26(i)
12146 , segment27 = l_array_mpa_segment27(i)
12147 , segment28 = l_array_mpa_segment28(i)
12148 , segment29 = l_array_mpa_segment29(i)
12149 , segment30 = l_array_mpa_segment30(i)
12150 , description = l_array_mpa_description(i)
12151 , code_combination_id = l_array_mpa_ccid(i)
12152 , code_combination_status_code = DECODE(l_array_mpa_ccid(i),NULL,C_PROCESSING -- 4655713b used in Create_CCID
12153 ,l_array_mpa_ccid_status_code(i))
12154 , reversal_code = null
12155 --
12156 , currency_code = l_array_mpa_currency_code(i)
12157 , currency_conversion_rate = l_array_mpa_curr_conv_rate(i)
12158 , currency_conversion_type = l_array_mpa_curr_conv_type(i)
12159 , currency_conversion_date = TRUNC(l_array_mpa_curr_conv_date(i))
12160 , party_type_code = l_array_mpa_party_type_code(i)
12161 , party_id = l_array_mpa_party_id(i)
12162 , party_site_id = l_array_mpa_party_site_id(i)
12163 , encumbrance_type_id = l_array_mpa_encum_type_id(i)
12164 , unrounded_entered_cr = DECODE(l_array_mpa_currency_code(i),l_array_mpa_currency_code_pe(i), -- 5132302
12165 unrounded_entered_cr,
12166 DECODE(unrounded_entered_cr,NULL,NULL,NVL(bflow_applied_to_amount,unrounded_entered_cr)))
12167 , unrounded_entered_dr = DECODE(l_array_mpa_currency_code(i),l_array_mpa_currency_code_pe(i), -- 5132302
12168 unrounded_entered_dr,
12169 DECODE(unrounded_entered_dr,NULL,NULL,NVL(bflow_applied_to_amount,unrounded_entered_dr)))
12170 , unrounded_accounted_cr = DECODE(l_array_mpa_currency_code(i),l_array_mpa_currency_code_pe(i), -- 5132302
12171 unrounded_entered_cr*l_array_mpa_acct_cr_ratio(i),
12172 DECODE(unrounded_entered_cr,NULL,NULL,
12173 NVL(bflow_applied_to_amount,unrounded_entered_cr))*l_array_mpa_acct_cr_ratio(i))
12174 , unrounded_accounted_dr = DECODE(l_array_mpa_currency_code(i),l_array_mpa_currency_code_pe(i), -- 5132302
12175 unrounded_entered_dr*l_array_mpa_acct_dr_ratio(i),
12176 DECODE(unrounded_entered_dr,NULL,NULL,
12177 NVL(bflow_applied_to_amount,unrounded_entered_dr))*l_array_mpa_acct_dr_ratio(i))
12178 WHERE xal.ledger_id = l_array_mpa_ledger_id(i)
12179 AND xal.ref_ae_header_id = l_array_mpa_ref_ae_header_id(i)
12180 AND xal.temp_line_num = l_array_mpa_temp_line_num(i) -- Acc-Rev or MPA-Accrual line which is a PRIOR_ENTR
12181 AND xal.ae_header_id = l_array_mpa_ae_header_id(i)
12182 AND NVL(xal.header_num,0) = l_array_mpa_header_num(i);
12183
12184
12185 ---------------------------------------------------------------------------------------------------------------
12186 -- a) Updates MPA-Recognition lines only (MPA-Accrual and Accrual-Reversal lines are updated above.)
12187 -- b) Both MPA-Accrual and MPA-Recognition lines need to inherit values from Prior Entry.
12188 -- c) GetRecognitionEntries sets unrounded_accounted amounts to NULL when CALCULATE_ACCTD_AMTS_FLAG is 'Y'
12189 -- which is correct for non-bflow MPA. When it is bflow, flag is ignored.
12190 --
12191 -- NOTE: some columns are set to NULL during Business_Flow_Validation
12192 ---------------------------------------------------------------------------------------------------------------
12193 FORALL i in 1..l_array_mpa_ledger_id.COUNT
12194 UPDATE xla_ae_lines_gt xal
12195 SET currency_code = DECODE(l_array_acc_rev_flag(i),'N',l_array_mpa_currency_code(i)
12196 ,currency_code)
12197 , currency_conversion_rate = DECODE(l_array_acc_rev_flag(i),'N',l_array_mpa_curr_conv_rate(i)
12198 ,currency_conversion_rate)
12199 , currency_conversion_type = DECODE(l_array_acc_rev_flag(i),'N',l_array_mpa_curr_conv_type(i)
12200 ,currency_conversion_type)
12201 , currency_conversion_date = DECODE(l_array_acc_rev_flag(i),'N',TRUNC(l_array_mpa_curr_conv_date(i))
12202 ,TRUNC(currency_conversion_date))
12203 , party_type_code = DECODE(l_array_acc_rev_flag(i),'N',l_array_mpa_party_type_code(i)
12204 ,party_type_code)
12205 , party_id = DECODE(l_array_acc_rev_flag(i),'N',l_array_mpa_party_id(i)
12206 ,party_id)
12207 , party_site_id = DECODE(l_array_acc_rev_flag(i),'N',l_array_mpa_party_site_id(i)
12208 ,party_site_id)
12209 -- , encumbrance_type_id = DECODE(l_array_acc_rev_flag(i),'N',encumbrance_type_id,l_array_mpa_encum_type_id(i)
12210 -- ,encumbrance_type_id)
12211 , entered_currency_mau = DECODE(l_array_acc_rev_flag(i),'N',l_array_mpa_currency_mau(i)
12212 ,entered_currency_mau)
12213 , unrounded_entered_cr = DECODE(l_array_acc_rev_flag(i),'N',DECODE(l_array_mpa_currency_code(i),l_array_mpa_currency_code_pe(i), -- 5132302
12214 unrounded_entered_cr,
12215 DECODE(unrounded_entered_cr,NULL,NULL,NVL(bflow_applied_to_amount,unrounded_entered_cr)))
12216 ,unrounded_entered_cr)
12217 , unrounded_entered_dr = DECODE(l_array_acc_rev_flag(i),'N',DECODE(l_array_mpa_currency_code(i),l_array_mpa_currency_code_pe(i), -- 5132302
12218 unrounded_entered_dr,
12219 DECODE(unrounded_entered_dr,NULL,NULL,NVL(bflow_applied_to_amount,unrounded_entered_dr)))
12220 ,unrounded_entered_dr)
12221 , unrounded_accounted_cr = DECODE(l_array_acc_rev_flag(i),'N',DECODE(l_array_mpa_currency_code(i),l_array_mpa_currency_code_pe(i), -- 5132302
12222 unrounded_entered_cr*l_array_mpa_acct_cr_ratio(i),
12223 DECODE(unrounded_entered_cr,NULL,NULL,
12224 NVL(bflow_applied_to_amount,unrounded_entered_cr)*l_array_mpa_acct_cr_ratio(i)))
12225 ,unrounded_accounted_cr)
12226 , unrounded_accounted_dr = DECODE(l_array_acc_rev_flag(i),'N',DECODE(l_array_mpa_currency_code(i),l_array_mpa_currency_code_pe(i), -- 5132302
12227 unrounded_entered_dr*l_array_mpa_acct_dr_ratio(i),
12228 DECODE(unrounded_entered_dr,NULL,NULL,
12229 NVL(bflow_applied_to_amount,unrounded_entered_dr)*l_array_mpa_acct_dr_ratio(i)))
12230 ,unrounded_accounted_dr)
12231 WHERE xal.ledger_id = l_array_mpa_ledger_id(i)
12232 AND xal.ref_ae_header_id = l_array_mpa_ref_ae_header_id(i)
12233 AND xal.ae_header_id = l_array_mpa_ae_header_id(i)
12234 AND NVL(xal.header_num,0) = l_array_mpa_header_num(i);
12235 END IF; -- 5666366 xla_accounting_pkg.g_mpa_accrual_exists = 'Y'
12236 -------------------------------------------------------------------------------------------------------------------------
12237
12238
12239 -------------------------------------------------------------------------
12240 -- Log error messages for the rows still with DUMMY_BFPE
12241 -------------------------------------------------------------------------
12242
12243 OPEN c_bflow_err_lines;
12244 FETCH c_bflow_err_lines BULK COLLECT INTO l_array_ae_header_id
12245 ,l_array_line_num
12246 ,l_array_event_id
12247 ,l_array_ledger_id
12248 ,l_array_bflow_prior_status
12249 ,l_array_balance_type_code
12250 ,l_array_entity_id
12251 ,l_array_app_name
12252 ,l_array_bflow_historic
12253 ,l_array_ledger_category
12254 ,l_array_period_start_date;
12255 CLOSE c_bflow_err_lines;
12256
12257 IF (C_LEVEL_EVENT >= g_log_level) THEN
12258 trace
12259 (p_msg => '# bflow error lines = '||l_array_balance_type_code.COUNT
12260 ,p_level => C_LEVEL_EVENT
12261 ,p_module => l_log_module);
12262 END IF;
12263
12264 -------------------------------------------------------------------------
12265 -- Historic Upgrade enhancement
12266 -------------------------------------------------------------------------
12267
12268 -- Get the start_date of the Primary ledger
12269 SELECT glp.start_date
12270 INTO l_primary_start_date
12271 FROM gl_period_statuses glp
12272 ,gl_ledgers gl
12273 WHERE glp.period_name = gl.first_ledger_period_name
12274 AND glp.ledger_id = gl.ledger_id
12275 AND glp.application_id = 101
12276 AND gl.ledger_id = p_ledger_id;
12277
12278 IF (l_array_bflow_prior_status.COUNT > 0) THEN -- prior entry status
12279
12280 FOR i IN 1..l_array_bflow_prior_status.COUNT LOOP
12281 IF NVL(l_array_bflow_prior_status(i),'N') = 'X' THEN -- 5132302
12282
12283 xla_accounting_err_pkg.build_message
12284 (p_appli_s_name => 'XLA'
12285 ,p_msg_name => 'XLA_AP_BFLOW_PE_NO_APPLIED_AMT'
12286 ,p_entity_id => l_array_entity_id(i)
12287 ,p_event_id => l_array_event_id(i)
12288 ,p_ledger_id => l_array_ledger_id(i));
12289
12290 ELSE
12291
12292 -- If the errored line belongs to primary ledger,
12293 -- throw the error 'prior entry not found'.
12294
12295 IF(l_array_ledger_category (i) = 'PRIMARY') THEN
12296 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
12297 xla_accounting_err_pkg.build_message(p_appli_s_name => 'XLA'
12298 ,p_msg_name => 'XLA_AP_BFLOW_PE_NOT_FOUND'
12299 ,p_token_1 => 'APPLICATION_NAME'
12300 ,p_value_1 => l_array_app_name(i)
12301 ,p_entity_id => l_array_entity_id(i)
12302 ,p_event_id => l_array_event_id(i)
12303 ,p_ledger_id => l_array_ledger_id(i));
12304
12305
12306
12307 ELSE -- for secondary/alc
12308
12309 -- If the problematic line belongs to secondary/alc ledger, compare the startdate
12310 -- of the first open period for that ledger with that of primary ledger. If it is
12311 -- less than or equal to the start date of primary, throw the error. Else,
12312 -- assume that historic upgrade process is run, and don't raise any error.
12313 -- Bug 5339999
12314
12315
12316 IF (l_array_period_start_date(i) <= l_primary_start_date) then
12317 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
12318 xla_accounting_err_pkg.build_message(p_appli_s_name => 'XLA'
12319 ,p_msg_name => 'XLA_AP_BFLOW_PE_NOT_FOUND'
12320 ,p_token_1 => 'APPLICATION_NAME'
12321 ,p_value_1 => l_array_app_name(i)
12322 ,p_entity_id => l_array_entity_id(i)
12323 ,p_event_id => l_array_event_id(i)
12324 ,p_ledger_id => l_array_ledger_id(i));
12325
12326
12327
12328 ELSE
12329 l_array_bflow_historic (i) :='Y'; -- This line belongs to historic upgraded data.
12330 l_array_hist_bflow_err(l_array_event_id(i)) :=1;
12331 xla_accounting_cache_pkg.g_hist_bflow_error_exists := TRUE;
12332 END IF;
12333
12334 END IF; -- for secondary
12335 END IF; -- 5132302
12336
12337 END LOOP;
12338
12339 -- Print out all the events whose upstream entries are not upgraded in secondary/alc ledgers.
12340 IF l_array_hist_bflow_err.COUNT>0 THEN
12341 print_logfile('******************************************************************************');
12342 print_logfile('The following events do not have historic entries replicated in secondary/alc ledgers');
12343 print_logfile('Manual gl adjustments in the secondary/alc ledgers needs to be done for these events');
12344 print_logfile('==============================================================================');
12345 l_hist_count := l_array_hist_bflow_err.FIRST;
12346 WHILE (l_hist_count <= l_array_hist_bflow_err.LAST) LOOP
12347 print_logfile('event_id :'||l_hist_count);
12348 l_hist_count := l_array_hist_bflow_err.next(l_hist_count);
12349 END LOOP;
12350 print_logfile('==============================================================================');
12351 END IF;
12352
12353
12354
12355
12356 --
12357 -- Bug 5339999 Delete the problematic lines from xla_ae_lines_gt.
12358 --
12359 FORALL i IN 1..l_array_balance_type_code.COUNT
12360 DELETE FROM XLA_AE_LINES_GT
12361 WHERE ae_header_id = l_array_ae_header_id(i)
12362 AND event_id = l_array_event_id(i)
12363 AND ledger_id = l_array_ledger_id(i)
12364 AND 'Y' = l_array_bflow_historic (i);
12365
12366 --
12367 -- Bug 5339999 Delete the problematic lines from xla_ae_headers_gt.
12368 --
12369
12370 FORALL i IN 1..l_array_balance_type_code.COUNT
12371 DELETE FROM XLA_AE_HEADERS_GT
12372 WHERE ae_header_id = l_array_ae_header_id(i)
12373 AND event_id = l_array_event_id(i)
12374 AND ledger_id = l_array_ledger_id(i)
12375 AND 'Y' = l_array_bflow_historic (i);
12376
12377
12378
12379
12380
12381 -------------------------------------------------------------------------
12382 -- Update JE header status for invalid entries
12383 -------------------------------------------------------------------------
12384
12385 FORALL i IN 1..l_array_balance_type_code.COUNT
12386
12387 UPDATE xla_ae_headers_gt
12388 SET accounting_entry_status_code = XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID -- C_INVALID_STATUS
12389 WHERE balance_type_code = l_array_balance_type_code(i)
12390 AND ae_header_id = l_array_ae_header_id(i)
12391 AND event_id = l_array_event_id(i)
12392 AND ledger_id = l_array_ledger_id(i);
12393
12394
12395 -------------------------------------------------------------------------
12396 -- Update JE line for invalid entries
12397 -------------------------------------------------------------------------
12398
12399 FORALL i IN 1..l_array_balance_type_code.COUNT
12400 UPDATE /*+ index(xalg xla_ae_lines_gt_n2) */ xla_ae_lines_gt xalg
12401 SET xalg.code_combination_status_code = C_INVALID
12402 , xalg.code_combination_id = -1
12403 WHERE xalg.balance_type_code = l_array_balance_type_code(i)
12404 AND xalg.ae_header_id = l_array_ae_header_id(i)
12405 AND xalg.temp_line_num = l_array_line_num(i)
12406 AND xalg.event_id = l_array_event_id(i)
12407 AND xalg.ledger_id = l_array_ledger_id(i);
12408
12409 END IF;
12410 END IF;
12411
12412
12413 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12414 trace(p_msg => 'END of BusinessFlowPriorEntries'
12415 ,p_level => C_LEVEL_PROCEDURE
12416 ,p_module => l_log_module);
12417 END IF;
12418
12419 EXCEPTION
12420 --
12421 WHEN xla_exceptions_pkg.application_exception THEN
12422 RAISE;
12423 WHEN OTHERS THEN
12424 xla_exceptions_pkg.raise_message
12425 (p_location => 'xla_ae_lines_pkg.BusinessFlowPriorEntries');
12426 --
12427 END BusinessFlowPriorEntries;
12428
12429 /*======================================================================+
12430 | |
12431 | Public Procedure- Business Flow Same Entry - 4219869 |
12432 | |
12433 | |
12434 +======================================================================*/
12435 PROCEDURE BusinessFlowSameEntries IS
12436
12437 l_log_module VARCHAR2(240);
12438 --
12439 -- Define local variables
12440 --
12441 l_err_count INTEGER;
12442 l_array_ae_header_id xla_cmp_source_pkg.t_array_Num;
12443 l_array_temp_line_num xla_cmp_source_pkg.t_array_Num; -- 5443083 l_array_ae_line_num
12444 l_array_event_id xla_cmp_source_pkg.t_array_Num;
12445 l_array_ledger_id xla_cmp_source_pkg.t_array_Num;
12446 l_array_balance_type_code xla_cmp_source_pkg.t_array_VL30;
12447 l_array_entity_id xla_cmp_source_pkg.t_array_Num;
12448 l_array_ref_ae_header_id xla_cmp_source_pkg.t_array_Num; -- 5443083
12449 l_array_header_num xla_cmp_source_pkg.t_array_Num; -- 5443083
12450 l_array_ledger_category xla_cmp_source_pkg.t_array_VL30; -- 5443083
12451 l_array_zero_amount_flag xla_cmp_source_pkg.t_array_VL1; -- 5443083
12452 --
12453 -- Cursor to return the same entry lines that are not processed
12454 --
12455 CURSOR c_bflow_unprocessed_lines IS
12456 SELECT l.ae_header_id
12457 , l.temp_line_num -- 5443083 l.ae_line_num
12458 , l.event_id
12459 , l.ledger_id
12460 , l.balance_type_code
12461 , h.entity_id
12462 , l.ref_ae_header_id -- 5443083
12463 , l.header_num -- 5443083
12464 , xlr.ledger_category_code -- 5443083
12465 , DECODE(NVL(l.unrounded_entered_dr,0)
12466 ,0, DECODE(NVL(l.unrounded_entered_cr,0)
12467 ,0, DECODE(NVL(l.unrounded_accounted_dr,0)
12468 ,0, DECODE(NVL(l.unrounded_accounted_cr,0)
12469 ,0,'Y'
12470 ,'N')
12471 ,'N')
12472 ,'N')
12473 ,'N') -- 5443083
12474 FROM xla_ae_lines_gt l
12475 ,xla_ae_headers_gt h
12476 ,xla_gl_ledgers_v xlr
12477 WHERE (reversal_code = C_DUMMY_SAME
12478 OR reversal_code = C_MPA_SAME_ENTRY) -- 4655713b
12479 AND l.ae_header_id = h.ae_header_id
12480 AND l.ledger_id = h.ledger_id -- 5443083
12481 AND l.balance_type_code = h.balance_type_code -- 5443083
12482 AND l.header_num = h.header_num -- 5443083
12483 AND l.ledger_id = xlr.ledger_id -- 5443083
12484 ORDER BY l.ae_header_id;
12485
12486 -- 4913967 for performance fix
12487 l_array_same_segment1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12488 l_array_same_segment2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12489 l_array_same_segment3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12490 l_array_same_segment4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12491 l_array_same_segment5 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12492 l_array_same_segment6 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12493 l_array_same_segment7 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12494 l_array_same_segment8 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12495 l_array_same_segment9 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12496 l_array_same_segment10 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12497 l_array_same_segment11 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12498 l_array_same_segment12 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12499 l_array_same_segment13 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12500 l_array_same_segment14 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12501 l_array_same_segment15 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12502 l_array_same_segment16 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12503 l_array_same_segment17 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12504 l_array_same_segment18 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12505 l_array_same_segment19 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12506 l_array_same_segment20 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12507 l_array_same_segment21 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12508 l_array_same_segment22 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12509 l_array_same_segment23 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12510 l_array_same_segment24 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12511 l_array_same_segment25 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12512 l_array_same_segment26 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12513 l_array_same_segment27 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12514 l_array_same_segment28 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12515 l_array_same_segment29 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12516 l_array_same_segment30 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12517 l_array_same_ccid XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
12518 l_array_same_description XLA_AE_JOURNAL_ENTRY_PKG.t_array_V4000L;
12519 l_array_same_reversal_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12520 l_array_join_ledger_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
12521 l_array_join_ref_ae_header_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
12522 l_array_join_temp_line_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
12523 l_array_join_ae_header_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
12524 l_array_join_header_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
12525
12526 -- 4655713b MPA and Accrual Reversal
12527 l_array_mpa_segment1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12528 l_array_mpa_segment2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12529 l_array_mpa_segment3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12530 l_array_mpa_segment4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12531 l_array_mpa_segment5 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12532 l_array_mpa_segment6 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12533 l_array_mpa_segment7 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12534 l_array_mpa_segment8 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12535 l_array_mpa_segment9 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12536 l_array_mpa_segment10 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12537 l_array_mpa_segment11 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12538 l_array_mpa_segment12 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12539 l_array_mpa_segment13 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12540 l_array_mpa_segment14 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12541 l_array_mpa_segment15 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12542 l_array_mpa_segment16 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12543 l_array_mpa_segment17 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12544 l_array_mpa_segment18 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12545 l_array_mpa_segment19 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12546 l_array_mpa_segment20 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12547 l_array_mpa_segment21 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12548 l_array_mpa_segment22 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12549 l_array_mpa_segment23 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12550 l_array_mpa_segment24 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12551 l_array_mpa_segment25 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12552 l_array_mpa_segment26 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12553 l_array_mpa_segment27 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12554 l_array_mpa_segment28 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12555 l_array_mpa_segment29 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12556 l_array_mpa_segment30 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12557 l_array_mpa_ccid XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
12558 l_array_mpa_ccid_status_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
12559 l_array_mpa_description XLA_AE_JOURNAL_ENTRY_PKG.t_array_V4000L;
12560 l_array_mpa_ledger_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
12561 l_array_mpa_ref_ae_header_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
12562 l_array_mpa_temp_line_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
12563 l_array_mpa_ae_header_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
12564 l_array_mpa_header_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
12565
12566 BEGIN
12567
12568 IF g_log_enabled THEN
12569 l_log_module := C_DEFAULT_MODULE||'.BusinessFlowSameEntries';
12570 END IF;
12571 --
12572 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12573 trace
12574 (p_msg => 'BEGIN of BusinessFlowSameEntries'
12575 ,p_level => C_LEVEL_PROCEDURE
12576 ,p_module => l_log_module);
12577 END IF;
12578
12579 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
12580 trace
12581 (p_msg => 'g_num_bflow_same_entries = '||g_num_bflow_same_entries
12582 ,p_level => C_LEVEL_STATEMENT
12583 ,p_module => l_log_module);
12584 END IF;
12585
12586
12587 IF (g_num_bflow_same_entries > 0) THEN
12588 --
12589 -- Update DUMMY_BFSE rows based on the other line in the same entry
12590 -- If not exactly one line is found for the same entry, it is an error
12591 --
12592 --
12593 -- Fix bug4384869 - if segment values is null from the same entry, determine
12594 -- the segment from the ccid of the prior entry
12595
12596 -----------------------------------------------------------------------------------------------------------
12597 -- 4913967 Modify for performance
12598 -----------------------------------------------------------------------------------------------------------
12599 SELECT CASE WHEN count(*) = 1
12600 THEN MIN(DECODE(xal.segment1, C_CHAR, NVL(xal2.segment1,gcc.segment1), xal.segment1))
12601 ELSE MIN(DECODE(xal.segment1, C_CHAR, NULL, xal.segment1)) END
12602 , CASE WHEN count(*) = 1
12603 THEN MIN(DECODE(xal.segment2, C_CHAR, NVL(xal2.segment2,gcc.segment2), xal.segment2))
12604 ELSE MIN(DECODE(xal.segment2, C_CHAR, NULL, xal.segment2)) END
12605 , CASE WHEN count(*) = 1
12606 THEN MIN(DECODE(xal.segment3, C_CHAR, NVL(xal2.segment3,gcc.segment3), xal.segment3))
12607 ELSE MIN(DECODE(xal.segment3, C_CHAR, NULL, xal.segment3)) END
12608 , CASE WHEN count(*) = 1
12609 THEN MIN(DECODE(xal.segment4, C_CHAR, NVL(xal2.segment4,gcc.segment4), xal.segment4))
12610 ELSE MIN(DECODE(xal.segment4, C_CHAR, NULL, xal.segment4)) END
12611 , CASE WHEN count(*) = 1
12612 THEN MIN(DECODE(xal.segment5, C_CHAR, NVL(xal2.segment5,gcc.segment5), xal.segment5))
12613 ELSE MIN(DECODE(xal.segment5, C_CHAR, NULL, xal.segment5)) END
12614 , CASE WHEN count(*) = 1
12615 THEN MIN(DECODE(xal.segment6, C_CHAR, NVL(xal2.segment6,gcc.segment6), xal.segment6))
12616 ELSE MIN(DECODE(xal.segment6, C_CHAR, NULL, xal.segment6)) END
12617 , CASE WHEN count(*) = 1
12618 THEN MIN(DECODE(xal.segment7, C_CHAR, NVL(xal2.segment7,gcc.segment7), xal.segment7))
12619 ELSE MIN(DECODE(xal.segment7, C_CHAR, NULL, xal.segment7)) END
12620 , CASE WHEN count(*) = 1
12621 THEN MIN(DECODE(xal.segment8, C_CHAR, NVL(xal2.segment8,gcc.segment8), xal.segment8))
12622 ELSE MIN(DECODE(xal.segment8, C_CHAR, NULL, xal.segment8)) END
12623 , CASE WHEN count(*) = 1
12624 THEN MIN(DECODE(xal.segment9, C_CHAR, NVL(xal2.segment9,gcc.segment9), xal.segment9))
12625 ELSE MIN(DECODE(xal.segment9, C_CHAR, NULL, xal.segment9)) END
12626 , CASE WHEN count(*) = 1
12627 THEN MIN(DECODE(xal.segment10, C_CHAR, NVL(xal2.segment10,gcc.segment10), xal.segment10))
12628 ELSE MIN(DECODE(xal.segment10, C_CHAR, NULL, xal.segment10)) END
12629 , CASE WHEN count(*) = 1
12630 THEN MIN(DECODE(xal.segment11, C_CHAR, NVL(xal2.segment11,gcc.segment11), xal.segment11))
12631 ELSE MIN(DECODE(xal.segment11, C_CHAR, NULL, xal.segment11)) END
12632 , CASE WHEN count(*) = 1
12633 THEN MIN(DECODE(xal.segment12, C_CHAR, NVL(xal2.segment12,gcc.segment12), xal.segment12))
12634 ELSE MIN(DECODE(xal.segment12, C_CHAR, NULL, xal.segment12)) END
12635 , CASE WHEN count(*) = 1
12636 THEN MIN(DECODE(xal.segment13, C_CHAR, NVL(xal2.segment13,gcc.segment13), xal.segment13))
12637 ELSE MIN(DECODE(xal.segment13, C_CHAR, NULL, xal.segment13)) END
12638 , CASE WHEN count(*) = 1
12639 THEN MIN(DECODE(xal.segment14, C_CHAR, NVL(xal2.segment14,gcc.segment14), xal.segment14))
12640 ELSE MIN(DECODE(xal.segment14, C_CHAR, NULL, xal.segment14)) END
12641 , CASE WHEN count(*) = 1
12642 THEN MIN(DECODE(xal.segment15, C_CHAR, NVL(xal2.segment15,gcc.segment15), xal.segment15))
12643 ELSE MIN(DECODE(xal.segment15, C_CHAR, NULL, xal.segment15)) END
12644 , CASE WHEN count(*) = 1
12645 THEN MIN(DECODE(xal.segment16, C_CHAR, NVL(xal2.segment16,gcc.segment16), xal.segment16))
12646 ELSE MIN(DECODE(xal.segment16, C_CHAR, NULL, xal.segment16)) END
12647 , CASE WHEN count(*) = 1
12648 THEN MIN(DECODE(xal.segment17, C_CHAR, NVL(xal2.segment17,gcc.segment17), xal.segment17))
12649 ELSE MIN(DECODE(xal.segment17, C_CHAR, NULL, xal.segment17)) END
12650 , CASE WHEN count(*) = 1
12651 THEN MIN(DECODE(xal.segment18, C_CHAR, NVL(xal2.segment18,gcc.segment18), xal.segment18))
12652 ELSE MIN(DECODE(xal.segment18, C_CHAR, NULL, xal.segment18)) END
12653 , CASE WHEN count(*) = 1
12654 THEN MIN(DECODE(xal.segment19, C_CHAR, NVL(xal2.segment19,gcc.segment19), xal.segment19))
12655 ELSE MIN(DECODE(xal.segment19, C_CHAR, NULL, xal.segment19)) END
12656 , CASE WHEN count(*) = 1
12657 THEN MIN(DECODE(xal.segment20, C_CHAR, NVL(xal2.segment20,gcc.segment20), xal.segment20))
12658 ELSE MIN(DECODE(xal.segment20, C_CHAR, NULL, xal.segment20)) END
12659 , CASE WHEN count(*) = 1
12660 THEN MIN(DECODE(xal.segment21, C_CHAR, NVL(xal2.segment21,gcc.segment21), xal.segment21))
12661 ELSE MIN(DECODE(xal.segment21, C_CHAR, NULL, xal.segment21)) END
12662 , CASE WHEN count(*) = 1
12663 THEN MIN(DECODE(xal.segment22, C_CHAR, NVL(xal2.segment22,gcc.segment22), xal.segment22))
12664 ELSE MIN(DECODE(xal.segment22, C_CHAR, NULL, xal.segment22)) END
12665 , CASE WHEN count(*) = 1
12666 THEN MIN(DECODE(xal.segment23, C_CHAR, NVL(xal2.segment23,gcc.segment23), xal.segment23))
12667 ELSE MIN(DECODE(xal.segment23, C_CHAR, NULL, xal.segment23)) END
12668 , CASE WHEN count(*) = 1
12669 THEN MIN(DECODE(xal.segment24, C_CHAR, NVL(xal2.segment24,gcc.segment24), xal.segment24))
12670 ELSE MIN(DECODE(xal.segment24, C_CHAR, NULL, xal.segment24)) END
12671 , CASE WHEN count(*) = 1
12672 THEN MIN(DECODE(xal.segment25, C_CHAR, NVL(xal2.segment25,gcc.segment25), xal.segment25))
12673 ELSE MIN(DECODE(xal.segment25, C_CHAR, NULL, xal.segment25)) END
12674 , CASE WHEN count(*) = 1
12675 THEN MIN(DECODE(xal.segment26, C_CHAR, NVL(xal2.segment26,gcc.segment26), xal.segment26))
12676 ELSE MIN(DECODE(xal.segment26, C_CHAR, NULL, xal.segment26)) END
12677 , CASE WHEN count(*) = 1
12678 THEN MIN(DECODE(xal.segment27, C_CHAR, NVL(xal2.segment27,gcc.segment27), xal.segment27))
12679 ELSE MIN(DECODE(xal.segment27, C_CHAR, NULL, xal.segment27)) END
12680 , CASE WHEN count(*) = 1
12681 THEN MIN(DECODE(xal.segment28, C_CHAR, NVL(xal2.segment28,gcc.segment28), xal.segment28))
12682 ELSE MIN(DECODE(xal.segment28, C_CHAR, NULL, xal.segment28)) END
12683 , CASE WHEN count(*) = 1
12684 THEN MIN(DECODE(xal.segment29, C_CHAR, NVL(xal2.segment29,gcc.segment29), xal.segment29))
12685 ELSE MIN(DECODE(xal.segment29, C_CHAR, NULL, xal.segment29)) END
12686 , CASE WHEN count(*) = 1
12687 THEN MIN(DECODE(xal.segment30, C_CHAR, NVL(xal2.segment30,gcc.segment30), xal.segment30))
12688 ELSE MIN(DECODE(xal.segment30, C_CHAR, NULL, xal.segment30)) END
12689 , CASE WHEN count(*) = 1
12690 THEN MIN(DECODE(xal.code_combination_id, C_NUM, xal2.code_combination_id, xal.code_combination_id))
12691 ELSE -1 END
12692 , CASE WHEN count(*) = 1
12693 THEN MIN(DECODE(xal.inherit_desc_flag, 'Y', xal2.description, xal.description)) ELSE NULL END
12694 , CASE WHEN count(*) = 1
12695 THEN NULL ELSE MIN(xal.reversal_code) END
12696 -- join conditions
12697 , CASE WHEN count(*) = 1
12698 THEN xal.ledger_id ELSE NULL END
12699 , CASE WHEN count(*) = 1
12700 THEN xal.ref_ae_header_id ELSE NULL END
12701 , CASE WHEN count(*) = 1
12702 THEN xal.temp_line_num ELSE NULL END
12703 , CASE WHEN count(*) = 1
12704 THEN xal.ae_header_id ELSE NULL END
12705 , CASE WHEN count(*) = 1
12706 THEN NVL(xal.header_num,0) ELSE NULL END
12707 BULK COLLECT INTO
12708 l_array_same_segment1
12709 , l_array_same_segment2
12710 , l_array_same_segment3
12711 , l_array_same_segment4
12712 , l_array_same_segment5
12713 , l_array_same_segment6
12714 , l_array_same_segment7
12715 , l_array_same_segment8
12716 , l_array_same_segment9
12717 , l_array_same_segment10
12718 , l_array_same_segment11
12719 , l_array_same_segment12
12720 , l_array_same_segment13
12721 , l_array_same_segment14
12722 , l_array_same_segment15
12723 , l_array_same_segment16
12724 , l_array_same_segment17
12725 , l_array_same_segment18
12726 , l_array_same_segment19
12727 , l_array_same_segment20
12728 , l_array_same_segment21
12729 , l_array_same_segment22
12730 , l_array_same_segment23
12731 , l_array_same_segment24
12732 , l_array_same_segment25
12733 , l_array_same_segment26
12734 , l_array_same_segment27
12735 , l_array_same_segment28
12736 , l_array_same_segment29
12737 , l_array_same_segment30
12738 , l_array_same_ccid
12739 , l_array_same_description
12740 , l_array_same_reversal_code
12741 -- join conditions
12742 , l_array_join_ledger_id
12743 , l_array_join_ref_ae_header_id
12744 , l_array_join_temp_line_num
12745 , l_array_join_ae_header_id
12746 , l_array_join_header_num
12747 FROM xla_ae_lines_gt xal2
12748 , xla_ae_lines_gt xal
12749 , gl_code_combinations gcc
12750 WHERE xal2.source_distribution_type = xal.source_distribution_type
12751 AND NVL(xal2.source_distribution_id_num_1,C_NUM) = NVL(xal.source_distribution_id_num_1,C_NUM)
12752 AND NVL(xal2.source_distribution_id_num_2,C_NUM) = NVL(xal.source_distribution_id_num_2,C_NUM)
12753 AND NVL(xal2.source_distribution_id_num_3,C_NUM) = NVL(xal.source_distribution_id_num_3,C_NUM)
12754 AND NVL(xal2.source_distribution_id_num_4,C_NUM) = NVL(xal.source_distribution_id_num_4,C_NUM)
12755 AND NVL(xal2.source_distribution_id_num_5,C_NUM) = NVL(xal.source_distribution_id_num_5,C_NUM)
12756 AND NVL(xal2.source_distribution_id_char_1,C_CHAR) = NVL(xal.source_distribution_id_char_1,C_CHAR)
12757 AND NVL(xal2.source_distribution_id_char_2,C_CHAR) = NVL(xal.source_distribution_id_char_2,C_CHAR)
12758 AND NVL(xal2.source_distribution_id_char_3,C_CHAR) = NVL(xal.source_distribution_id_char_3,C_CHAR)
12759 AND NVL(xal2.source_distribution_id_char_4,C_CHAR) = NVL(xal.source_distribution_id_char_4,C_CHAR)
12760 AND NVL(xal2.source_distribution_id_char_5,C_CHAR) = NVL(xal.source_distribution_id_char_5,C_CHAR)
12761 AND xal2.event_id = xal.event_id
12762 AND xal2.ledger_id = xal.ledger_id
12763 AND xal2.balance_type_code = xal.balance_type_code
12764 AND xal2.event_class_code = xal.event_class_code
12765 AND xal2.event_type_code = xal.event_type_code
12766 AND xal2.line_definition_owner_code = xal.line_definition_owner_code
12767 AND xal2.line_definition_code = xal.line_definition_code
12768 AND xal2.natural_side_code = DECODE(xal.natural_side_code, 'C', 'D', 'C')
12769 AND gcc.code_combination_id(+) = xal2.code_combination_id -- bug4384869
12770 -- AND nvl(xal2.reversal_code, 'A') not in (C_DUMMY_SAME, C_DUMMY_PRIOR) -- 5001981
12771 AND xal.reversal_code = C_DUMMY_SAME
12772 AND NVL(xal2.header_num,0) = 0 -- 4655713b excludes MPA/Accrual Reversal lines,cannot be used for bflow
12773 GROUP BY xal.ledger_id -- 5068675
12774 ,xal.ref_ae_header_id
12775 ,xal.temp_line_num
12776 ,xal.ae_header_id
12777 ,xal.header_num;
12778
12779 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
12780 trace
12781 (p_msg => 'Number of events = '||l_array_join_ledger_id.COUNT
12782 ,p_level => C_LEVEL_STATEMENT
12783 ,p_module => l_log_module);
12784
12785 FOR i IN 1..l_array_join_ledger_id.COUNT LOOP
12786 trace
12787 (p_msg => 'from array ledger='||l_array_join_ledger_id(i)|| ' ref_ae_header='||l_array_join_ref_ae_header_id(i)||
12788 ' temp_line='||l_array_join_temp_line_num(i)|| ' ae_header='||l_array_join_ae_header_id(i)||
12789 ' header_num='||l_array_join_header_num(i)||
12790 ' s1='||l_array_same_segment1(i)||' s2='||l_array_same_segment2(i)||
12791 ' s3='||l_array_same_segment3(i)||' s4='||l_array_same_segment4(i)||
12792 ' s5='||l_array_same_segment5(i)||' s6='||l_array_same_segment6(i)||
12793 ' s7='||l_array_same_segment7(i)||' s8='||l_array_same_segment8(i)||
12794 ' s9='||l_array_same_segment9(i)||' s10='||l_array_same_segment10(i)||
12795 ' s11='||l_array_same_segment11(i)||' s12='||l_array_same_segment12(i)||
12796 ' s13='||l_array_same_segment13(i)||' s14='||l_array_same_segment14(i)||
12797 ' s15='||l_array_same_segment15(i)||' s16='||l_array_same_segment16(i)||
12798 ' s17='||l_array_same_segment17(i)||' s18='||l_array_same_segment18(i)||
12799 ' s19='||l_array_same_segment19(i)||' s20='||l_array_same_segment20(i)||
12800 ' s21='||l_array_same_segment21(i)||' s22='||l_array_same_segment22(i)||
12801 ' s23='||l_array_same_segment23(i)||' s24='||l_array_same_segment24(i)||
12802 ' s25='||l_array_same_segment25(i)||' s26='||l_array_same_segment26(i)||
12803 ' s27='||l_array_same_segment27(i)||' s28='||l_array_same_segment28(i)||
12804 ' s29='||l_array_same_segment29(i)||' s30='||l_array_same_segment30(i)||
12805 ' ccid='||l_array_same_ccid(i)
12806 ,p_level => C_LEVEL_STATEMENT
12807 ,p_module => l_log_module);
12808 END LOOP;
12809
12810 FOR i IN (select * from xla_ae_Lines_gt where reversal_code=C_DUMMY_SAME) LOOP
12811 trace
12812 (p_msg => 'ae_lines_gt SE dist ledger='||i.ledger_id||' ref_ae_header='||i.ref_ae_header_id||
12813 ' temp_line='||i.temp_line_num||' ae_header='||i.ae_header_id||' header_num='||i.header_num||
12814 ' bflow='||i.business_method_code||
12815 ' line='||i.line_definition_code|| ' dist='||i.source_distribution_type||' rev='||i.reversal_code||
12816 ' n1='||i.source_distribution_id_num_1|| ' n2='||i.source_distribution_id_num_2||
12817 ' n3='||i.source_distribution_id_num_3|| ' n4='||i.source_distribution_id_num_4||
12818 ' n5='||i.source_distribution_id_num_5|| ' c1='||i.source_distribution_id_char_1||
12819 ' c2='||i.source_distribution_id_char_2|| ' c3='||i.source_distribution_id_char_3||
12820 ' c4='||i.source_distribution_id_char_4|| ' c5='||i.source_distribution_id_char_5||
12821 ' bal='||i.balance_type_code|| ' side='||i.natural_side_code||
12822 ' rev='||i.reversal_code
12823 ,p_level => C_LEVEL_STATEMENT
12824 ,p_module => l_log_module);
12825 END LOOP;
12826
12827 FOR i IN (select * from xla_ae_Lines_gt where reversal_code=C_DUMMY_SAME) LOOP
12828 trace
12829 (p_msg => ' seg s1='||i.segment1||' s2='||i.segment2|| ' s3='||i.segment3||' s4='||i.segment4||
12830 ' s5='||i.segment5||' s6='||i.segment6|| ' s7='||i.segment7||' s8='||i.segment8||
12831 ' s9='||i.segment9||' s10='||i.segment10|| ' s11='||i.segment11||' s12='||i.segment12||
12832 ' s13='||i.segment13||' s14='||i.segment14|| ' s15='||i.segment15||' s16='||i.segment16||
12833 ' s17='||i.segment17||' s18='||i.segment18|| ' s19='||i.segment19||' s20='||i.segment20||
12834 ' s21='||i.segment21||' s22='||i.segment22|| ' s23='||i.segment23||' s24='||i.segment24||
12835 ' s25='||i.segment25||' s26='||i.segment26|| ' s27='||i.segment27||' s28='||i.segment28||
12836 ' s29='||i.segment29||' s30='||i.segment30||' ccid='||i.code_combination_id
12837 ,p_level => C_LEVEL_STATEMENT
12838 ,p_module => l_log_module);
12839 END LOOP;
12840
12841 END IF;
12842
12843 FORALL i IN 1..l_array_join_ledger_id.COUNT
12844 UPDATE xla_ae_lines_gt xal
12845 SET segment1 = l_array_same_segment1(i)
12846 , segment2 = l_array_same_segment2(i)
12847 , segment3 = l_array_same_segment3(i)
12848 , segment4 = l_array_same_segment4(i)
12849 , segment5 = l_array_same_segment5(i)
12850 , segment6 = l_array_same_segment6(i)
12851 , segment7 = l_array_same_segment7(i)
12852 , segment8 = l_array_same_segment8(i)
12853 , segment9 = l_array_same_segment9(i)
12854 , segment10 = l_array_same_segment10(i)
12855 , segment11 = l_array_same_segment11(i)
12856 , segment12 = l_array_same_segment12(i)
12857 , segment13 = l_array_same_segment13(i)
12858 , segment14 = l_array_same_segment14(i)
12859 , segment15 = l_array_same_segment15(i)
12860 , segment16 = l_array_same_segment16(i)
12861 , segment17 = l_array_same_segment17(i)
12862 , segment18 = l_array_same_segment18(i)
12863 , segment19 = l_array_same_segment19(i)
12864 , segment20 = l_array_same_segment20(i)
12865 , segment21 = l_array_same_segment21(i)
12866 , segment22 = l_array_same_segment22(i)
12867 , segment23 = l_array_same_segment23(i)
12868 , segment24 = l_array_same_segment24(i)
12869 , segment25 = l_array_same_segment25(i)
12870 , segment26 = l_array_same_segment26(i)
12871 , segment27 = l_array_same_segment27(i)
12872 , segment28 = l_array_same_segment28(i)
12873 , segment29 = l_array_same_segment29(i)
12874 , segment30 = l_array_same_segment30(i)
12875 , code_combination_id = l_array_same_ccid(i)
12876 , code_combination_status_code = DECODE(l_array_same_ccid(i),NULL,C_PROCESSING -- 4655713b used in Create_CCID
12877 ,C_NOT_PROCESSED) -- 4655713 used in Override_CCID
12878 , description = l_array_same_description(i)
12879 , reversal_code = l_array_same_reversal_code(i)
12880 WHERE xal.ledger_id = l_array_join_ledger_id(i)
12881 AND xal.ref_ae_header_id = l_array_join_ref_ae_header_id(i)
12882 AND xal.temp_line_num = l_array_join_temp_line_num(i)
12883 AND xal.ae_header_id = l_array_join_ae_header_id(i)
12884 AND NVL(xal.header_num,0) = l_array_join_header_num(i);
12885
12886 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
12887 trace
12888 (p_msg => 'BusinessFlowSameEntries - no of rows updated = '||SQL%ROWCOUNT
12889 ,p_level => C_LEVEL_STATEMENT
12890 ,p_module => l_log_module);
12891 END IF;
12892
12893 -------------------------------------------------------------------------------------------------------------------------
12894 -- 4655713b Updates MPA-Accrual (not MPA-Recognition) and Accrual Reversal lines with Same Entry
12895 -------------------------------------------------------------------------------------------------------------------------
12896 IF xla_accounting_pkg.g_mpa_accrual_exists = 'Y' THEN -- 7128871
12897 SELECT /*+ Leading (xal1,xah1,xal2) index(xah1 XLA_AE_HEADERS_GT_U1) index(xal2 XLA_AE_LINES_GT_N2) no_expand */ -- 7128871
12898 xal2.segment1, xal2.segment2, xal2.segment3, xal2.segment4, xal2.segment5
12899 ,xal2.segment6, xal2.segment7, xal2.segment8, xal2.segment9, xal2.segment10
12900 ,xal2.segment11, xal2.segment12, xal2.segment13, xal2.segment14, xal2.segment15
12901 ,xal2.segment16, xal2.segment17, xal2.segment18, xal2.segment19, xal2.segment20
12902 ,xal2.segment21, xal2.segment22, xal2.segment23, xal2.segment24, xal2.segment25
12903 ,xal2.segment26, xal2.segment27, xal2.segment28, xal2.segment29, xal2.segment30
12904 ,xal2.code_combination_id
12905 ,xal2.code_combination_status_code
12906 ,DECODE(NVL(xal1.inherit_desc_flag,'N'), 'Y', xal2.description, xal1.description)
12907 -- join conditions
12908 ,xal1.ledger_id
12909 ,xal1.ref_ae_header_id
12910 ,xal1.temp_line_num
12911 ,xal1.ae_header_id
12912 ,xal1.header_num
12913 BULK COLLECT INTO
12914 l_array_mpa_segment1 ,l_array_mpa_segment2 ,l_array_mpa_segment3 ,l_array_mpa_segment4 ,l_array_mpa_segment5
12915 ,l_array_mpa_segment6 ,l_array_mpa_segment7 ,l_array_mpa_segment8 ,l_array_mpa_segment9 ,l_array_mpa_segment10
12916 ,l_array_mpa_segment11 ,l_array_mpa_segment12 ,l_array_mpa_segment13 ,l_array_mpa_segment14 ,l_array_mpa_segment15
12917 ,l_array_mpa_segment16 ,l_array_mpa_segment17 ,l_array_mpa_segment18 ,l_array_mpa_segment19 ,l_array_mpa_segment20
12918 ,l_array_mpa_segment21 ,l_array_mpa_segment22 ,l_array_mpa_segment23 ,l_array_mpa_segment24 ,l_array_mpa_segment25
12919 ,l_array_mpa_segment26 ,l_array_mpa_segment27 ,l_array_mpa_segment28 ,l_array_mpa_segment29 ,l_array_mpa_segment30
12920 ,l_array_mpa_ccid
12921 ,l_array_mpa_ccid_status_code
12922 ,l_array_mpa_description
12923 -- join conditions
12924 ,l_array_mpa_ledger_id
12925 ,l_array_mpa_ref_ae_header_id
12926 ,l_array_mpa_temp_line_num
12927 ,l_array_mpa_ae_header_id
12928 ,l_array_mpa_header_num
12929 FROM xla_ae_lines_gt xal2 -- Original line
12930 ,xla_ae_headers_gt xah1
12931 ,xla_ae_lines_gt xal1 -- MPA line
12932 WHERE xal2.source_distribution_type = xal1.source_distribution_type
12933 AND NVL(xal2.source_distribution_id_num_1,C_NUM) = NVL(xal1.source_distribution_id_num_1,C_NUM)
12934 AND NVL(xal2.source_distribution_id_num_2,C_NUM) = NVL(xal1.source_distribution_id_num_2,C_NUM)
12935 AND NVL(xal2.source_distribution_id_num_3,C_NUM) = NVL(xal1.source_distribution_id_num_3,C_NUM)
12936 AND NVL(xal2.source_distribution_id_num_4,C_NUM) = NVL(xal1.source_distribution_id_num_4,C_NUM)
12937 AND NVL(xal2.source_distribution_id_num_5,C_NUM) = NVL(xal1.source_distribution_id_num_5,C_NUM)
12938 AND NVL(xal2.source_distribution_id_char_1,C_CHAR) = NVL(xal1.source_distribution_id_char_1,C_CHAR)
12939 AND NVL(xal2.source_distribution_id_char_2,C_CHAR) = NVL(xal1.source_distribution_id_char_2,C_CHAR)
12940 AND NVL(xal2.source_distribution_id_char_3,C_CHAR) = NVL(xal1.source_distribution_id_char_3,C_CHAR)
12941 AND NVL(xal2.source_distribution_id_char_4,C_CHAR) = NVL(xal1.source_distribution_id_char_4,C_CHAR)
12942 AND NVL(xal2.source_distribution_id_char_5,C_CHAR) = NVL(xal1.source_distribution_id_char_5,C_CHAR)
12943 AND xal2.event_id = xal1.event_id
12944 AND xal2.ledger_id = xal1.ledger_id
12945 AND xal2.balance_type_code = xal1.balance_type_code
12946 AND xal2.event_class_code = xal1.event_class_code
12947 AND xal2.event_type_code = xal1.event_type_code
12948 AND xal2.line_definition_owner_code = xal1.line_definition_owner_code
12949 AND xal2.line_definition_code = xal1.line_definition_code
12950 AND xal2.ACCOUNTING_LINE_TYPE_CODE = xal1.ACCOUNTING_LINE_TYPE_CODE
12951 AND xal2.ACCOUNTING_LINE_CODE = xal1.ACCOUNTING_LINE_CODE
12952 --
12953 AND xah1.ledger_id = xal1.ledger_id
12954 AND xah1.ae_header_id = xal1.ae_header_id
12955 AND xah1.header_num = xal1.header_num
12956 AND ((xah1.parent_ae_line_num IS NOT NULL AND xal2.temp_line_num = xah1.parent_ae_line_num) -- MPA
12957 OR xah1.parent_ae_line_num IS NULL) -- Accrual Reversal
12958 -- 7128871 -------------------------------------
12959 AND XAL1.BALANCE_TYPE_CODE = XAH1.BALANCE_TYPE_CODE
12960 AND XAL2.AE_HEADER_ID = XAL1.AE_HEADER_ID
12961 --------------------------------------------------
12962 AND xal2.header_num = 0
12963 AND xal2.reversal_code IS NULL -- 5443083 found the same entry
12964 AND xal1.reversal_code = C_MPA_SAME_ENTRY;
12965
12966 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
12967 trace
12968 (p_msg => 'BusinessFlowSameEntries - no of MPA/AccRev rows found = '||l_array_mpa_ledger_id.COUNT
12969 ,p_level => C_LEVEL_STATEMENT
12970 ,p_module => l_log_module);
12971 FOR i IN 1..l_array_mpa_ledger_id.COUNT LOOP
12972 trace
12973 (p_msg => 'BusinessFlowSameEntries - mpa lines ledger='||l_array_mpa_ledger_id(i)||
12974 ' ref_header='||l_array_mpa_ref_ae_header_id(i)||
12975 ' temp_line='||l_array_mpa_temp_line_num(i)||
12976 ' ae_header='||l_array_mpa_ae_header_id(i)||
12977 ' header_num='||l_array_mpa_header_num(i)
12978 ,p_level => C_LEVEL_STATEMENT
12979 ,p_module => l_log_module);
12980 END LOOP;
12981 END IF;
12982
12983 FORALL i in 1..l_array_mpa_ledger_id.COUNT
12984 UPDATE xla_ae_lines_gt xal
12985 SET segment1 = l_array_mpa_segment1(i)
12986 , segment2 = l_array_mpa_segment2(i)
12987 , segment3 = l_array_mpa_segment3(i)
12988 , segment4 = l_array_mpa_segment4(i)
12989 , segment5 = l_array_mpa_segment5(i)
12990 , segment6 = l_array_mpa_segment6(i)
12991 , segment7 = l_array_mpa_segment7(i)
12992 , segment8 = l_array_mpa_segment8(i)
12993 , segment9 = l_array_mpa_segment9(i)
12994 , segment10 = l_array_mpa_segment10(i)
12995 , segment11 = l_array_mpa_segment11(i)
12996 , segment12 = l_array_mpa_segment12(i)
12997 , segment13 = l_array_mpa_segment13(i)
12998 , segment14 = l_array_mpa_segment14(i)
12999 , segment15 = l_array_mpa_segment15(i)
13000 , segment16 = l_array_mpa_segment16(i)
13001 , segment17 = l_array_mpa_segment17(i)
13002 , segment18 = l_array_mpa_segment18(i)
13003 , segment19 = l_array_mpa_segment19(i)
13004 , segment20 = l_array_mpa_segment20(i)
13005 , segment21 = l_array_mpa_segment21(i)
13006 , segment22 = l_array_mpa_segment22(i)
13007 , segment23 = l_array_mpa_segment23(i)
13008 , segment24 = l_array_mpa_segment24(i)
13009 , segment25 = l_array_mpa_segment25(i)
13010 , segment26 = l_array_mpa_segment26(i)
13011 , segment27 = l_array_mpa_segment27(i)
13012 , segment28 = l_array_mpa_segment28(i)
13013 , segment29 = l_array_mpa_segment29(i)
13014 , segment30 = l_array_mpa_segment30(i)
13015 , code_combination_id = l_array_mpa_ccid(i)
13016 , code_combination_status_code = l_array_mpa_ccid_status_code(i) -- 4655713 used in Override_CCID
13017 , description = l_array_mpa_description(i)
13018 , reversal_code = null
13019 WHERE xal.ledger_id = l_array_mpa_ledger_id(i)
13020 AND xal.ref_ae_header_id = l_array_mpa_ref_ae_header_id(i)
13021 AND xal.temp_line_num = l_array_mpa_temp_line_num(i)
13022 AND xal.ae_header_id = l_array_mpa_ae_header_id(i)
13023 AND NVL(xal.header_num,0) = l_array_mpa_header_num(i);
13024 -------------------------------------------------------------------------------------------------------------------------
13025 END IF; -- 7128871 xla_accounting_pkg.g_mpa_accrual_exists = 'Y'
13026
13027
13028 /*-------------------------------------------------------------------------------------------------------------------
13029 -- Replaced for performance fix above
13030 ---------------------------------------------------------------------------------------------------------------------
13031 UPDATE xla_ae_lines_gt xal
13032 SET (segment1, segment2, segment3, segment4, segment5, segment6, segment7, segment8, segment9, segment10
13033 ,segment11, segment12, segment13, segment14, segment15, segment16, segment17, segment18, segment19, segment20
13034 ,segment21, segment22, segment23, segment24, segment25, segment26, segment27, segment28, segment29, segment30
13035 ,code_combination_id
13036 ,description
13037 ,reversal_code) =
13038 (SELECT CASE WHEN count(*) = 1
13039 THEN MIN(DECODE(xal.segment1, C_CHAR, NVL(xal2.segment1,gcc.segment1), xal.segment1))
13040 ELSE MIN(DECODE(xal.segment1, C_CHAR, NULL, xal.segment1)) END
13041 , CASE WHEN count(*) = 1
13042 THEN MIN(DECODE(xal.segment2, C_CHAR, NVL(xal2.segment2,gcc.segment2), xal.segment2))
13043 ELSE MIN(DECODE(xal.segment2, C_CHAR, NULL, xal.segment2)) END
13044 , CASE WHEN count(*) = 1
13045 THEN MIN(DECODE(xal.segment3, C_CHAR, NVL(xal2.segment3,gcc.segment3), xal.segment3))
13046 ELSE MIN(DECODE(xal.segment3, C_CHAR, NULL, xal.segment3)) END
13047 , CASE WHEN count(*) = 1
13048 THEN MIN(DECODE(xal.segment4, C_CHAR, NVL(xal2.segment4,gcc.segment4), xal.segment4))
13049 ELSE MIN(DECODE(xal.segment4, C_CHAR, NULL, xal.segment4)) END
13050 , CASE WHEN count(*) = 1
13051 THEN MIN(DECODE(xal.segment5, C_CHAR, NVL(xal2.segment5,gcc.segment5), xal.segment5))
13052 ELSE MIN(DECODE(xal.segment5, C_CHAR, NULL, xal.segment5)) END
13053 , CASE WHEN count(*) = 1
13054 THEN MIN(DECODE(xal.segment6, C_CHAR, NVL(xal2.segment6,gcc.segment6), xal.segment6))
13055 ELSE MIN(DECODE(xal.segment6, C_CHAR, NULL, xal.segment6)) END
13056 , CASE WHEN count(*) = 1
13057 THEN MIN(DECODE(xal.segment7, C_CHAR, NVL(xal2.segment7,gcc.segment7), xal.segment7))
13058 ELSE MIN(DECODE(xal.segment7, C_CHAR, NULL, xal.segment7)) END
13059 , CASE WHEN count(*) = 1
13060 THEN MIN(DECODE(xal.segment8, C_CHAR, NVL(xal2.segment8,gcc.segment8), xal.segment8))
13061 ELSE MIN(DECODE(xal.segment8, C_CHAR, NULL, xal.segment8)) END
13062 , CASE WHEN count(*) = 1
13063 THEN MIN(DECODE(xal.segment9, C_CHAR, NVL(xal2.segment9,gcc.segment9), xal.segment9))
13064 ELSE MIN(DECODE(xal.segment9, C_CHAR, NULL, xal.segment9)) END
13065 , CASE WHEN count(*) = 1
13066 THEN MIN(DECODE(xal.segment10, C_CHAR, NVL(xal2.segment10,gcc.segment10), xal.segment10))
13067 ELSE MIN(DECODE(xal.segment10, C_CHAR, NULL, xal.segment10)) END
13068 , CASE WHEN count(*) = 1
13069 THEN MIN(DECODE(xal.segment11, C_CHAR, NVL(xal2.segment11,gcc.segment11), xal.segment11))
13070 ELSE MIN(DECODE(xal.segment11, C_CHAR, NULL, xal.segment11)) END
13071 , CASE WHEN count(*) = 1
13072 THEN MIN(DECODE(xal.segment12, C_CHAR, NVL(xal2.segment12,gcc.segment12), xal.segment12))
13073 ELSE MIN(DECODE(xal.segment12, C_CHAR, NULL, xal.segment12)) END
13074 , CASE WHEN count(*) = 1
13075 THEN MIN(DECODE(xal.segment13, C_CHAR, NVL(xal2.segment13,gcc.segment13), xal.segment13))
13076 ELSE MIN(DECODE(xal.segment13, C_CHAR, NULL, xal.segment13)) END
13077 , CASE WHEN count(*) = 1
13078 THEN MIN(DECODE(xal.segment14, C_CHAR, NVL(xal2.segment14,gcc.segment14), xal.segment14))
13079 ELSE MIN(DECODE(xal.segment14, C_CHAR, NULL, xal.segment14)) END
13080 , CASE WHEN count(*) = 1
13081 THEN MIN(DECODE(xal.segment15, C_CHAR, NVL(xal2.segment15,gcc.segment15), xal.segment15))
13082 ELSE MIN(DECODE(xal.segment15, C_CHAR, NULL, xal.segment15)) END
13083 , CASE WHEN count(*) = 1
13084 THEN MIN(DECODE(xal.segment16, C_CHAR, NVL(xal2.segment16,gcc.segment16), xal.segment16))
13085 ELSE MIN(DECODE(xal.segment16, C_CHAR, NULL, xal.segment16)) END
13086 , CASE WHEN count(*) = 1
13087 THEN MIN(DECODE(xal.segment17, C_CHAR, NVL(xal2.segment17,gcc.segment17), xal.segment17))
13088 ELSE MIN(DECODE(xal.segment17, C_CHAR, NULL, xal.segment17)) END
13089 , CASE WHEN count(*) = 1
13090 THEN MIN(DECODE(xal.segment18, C_CHAR, NVL(xal2.segment18,gcc.segment18), xal.segment18))
13091 ELSE MIN(DECODE(xal.segment18, C_CHAR, NULL, xal.segment18)) END
13092 , CASE WHEN count(*) = 1
13093 THEN MIN(DECODE(xal.segment19, C_CHAR, NVL(xal2.segment19,gcc.segment19), xal.segment19))
13094 ELSE MIN(DECODE(xal.segment19, C_CHAR, NULL, xal.segment19)) END
13095 , CASE WHEN count(*) = 1
13096 THEN MIN(DECODE(xal.segment20, C_CHAR, NVL(xal2.segment20,gcc.segment20), xal.segment20))
13097 ELSE MIN(DECODE(xal.segment20, C_CHAR, NULL, xal.segment20)) END
13098 , CASE WHEN count(*) = 1
13099 THEN MIN(DECODE(xal.segment21, C_CHAR, NVL(xal2.segment21,gcc.segment21), xal.segment21))
13100 ELSE MIN(DECODE(xal.segment21, C_CHAR, NULL, xal.segment21)) END
13101 , CASE WHEN count(*) = 1
13102 THEN MIN(DECODE(xal.segment22, C_CHAR, NVL(xal2.segment22,gcc.segment22), xal.segment22))
13103 ELSE MIN(DECODE(xal.segment22, C_CHAR, NULL, xal.segment22)) END
13104 , CASE WHEN count(*) = 1
13105 THEN MIN(DECODE(xal.segment23, C_CHAR, NVL(xal2.segment23,gcc.segment23), xal.segment23))
13106 ELSE MIN(DECODE(xal.segment23, C_CHAR, NULL, xal.segment23)) END
13107 , CASE WHEN count(*) = 1
13108 THEN MIN(DECODE(xal.segment24, C_CHAR, NVL(xal2.segment24,gcc.segment24), xal.segment24))
13109 ELSE MIN(DECODE(xal.segment24, C_CHAR, NULL, xal.segment24)) END
13110 , CASE WHEN count(*) = 1
13111 THEN MIN(DECODE(xal.segment25, C_CHAR, NVL(xal2.segment25,gcc.segment25), xal.segment25))
13112 ELSE MIN(DECODE(xal.segment25, C_CHAR, NULL, xal.segment25)) END
13113 , CASE WHEN count(*) = 1
13114 THEN MIN(DECODE(xal.segment26, C_CHAR, NVL(xal2.segment26,gcc.segment26), xal.segment26))
13115 ELSE MIN(DECODE(xal.segment26, C_CHAR, NULL, xal.segment26)) END
13116 , CASE WHEN count(*) = 1
13117 THEN MIN(DECODE(xal.segment27, C_CHAR, NVL(xal2.segment27,gcc.segment27), xal.segment27))
13118 ELSE MIN(DECODE(xal.segment27, C_CHAR, NULL, xal.segment27)) END
13119 , CASE WHEN count(*) = 1
13120 THEN MIN(DECODE(xal.segment28, C_CHAR, NVL(xal2.segment28,gcc.segment28), xal.segment28))
13121 ELSE MIN(DECODE(xal.segment28, C_CHAR, NULL, xal.segment28)) END
13122 , CASE WHEN count(*) = 1
13123 THEN MIN(DECODE(xal.segment29, C_CHAR, NVL(xal2.segment29,gcc.segment29), xal.segment29))
13124 ELSE MIN(DECODE(xal.segment29, C_CHAR, NULL, xal.segment29)) END
13125 , CASE WHEN count(*) = 1
13126 THEN MIN(DECODE(xal.segment30, C_CHAR, NVL(xal2.segment30,gcc.segment30), xal.segment30))
13127 ELSE MIN(DECODE(xal.segment30, C_CHAR, NULL, xal.segment30)) END
13128 , CASE WHEN count(*) = 1
13129 THEN MIN(DECODE(xal.code_combination_id, C_NUM, xal2.code_combination_id, xal.code_combination_id))
13130 ELSE -1 END
13131 , CASE WHEN count(*) = 1
13132 THEN MIN(DECODE(xal.inherit_desc_flag, 'Y', xal2.description, xal.description)) ELSE NULL END
13133 , CASE WHEN count(*) = 1
13134 THEN NULL ELSE xal.reversal_code END
13135 FROM xla_ae_lines_gt xal2
13136 , gl_code_combinations gcc -- bug4384869
13137 WHERE xal2.source_distribution_type = xal.source_distribution_type
13138 AND NVL(xal2.source_distribution_id_num_1,C_NUM) = NVL(xal.source_distribution_id_num_1,C_NUM)
13139 AND NVL(xal2.source_distribution_id_num_2,C_NUM) = NVL(xal.source_distribution_id_num_2,C_NUM)
13140 AND NVL(xal2.source_distribution_id_num_3,C_NUM) = NVL(xal.source_distribution_id_num_3,C_NUM)
13141 AND NVL(xal2.source_distribution_id_num_4,C_NUM) = NVL(xal.source_distribution_id_num_4,C_NUM)
13142 AND NVL(xal2.source_distribution_id_num_5,C_NUM) = NVL(xal.source_distribution_id_num_5,C_NUM)
13143 AND NVL(xal2.source_distribution_id_char_1,C_CHAR) = NVL(xal.source_distribution_id_char_1,C_CHAR)
13144 AND NVL(xal2.source_distribution_id_char_2,C_CHAR) = NVL(xal.source_distribution_id_char_2,C_CHAR)
13145 AND NVL(xal2.source_distribution_id_char_3,C_CHAR) = NVL(xal.source_distribution_id_char_3,C_CHAR)
13146 AND NVL(xal2.source_distribution_id_char_4,C_CHAR) = NVL(xal.source_distribution_id_char_4,C_CHAR)
13147 AND NVL(xal2.source_distribution_id_char_5,C_CHAR) = NVL(xal.source_distribution_id_char_5,C_CHAR)
13148 AND xal2.event_id = xal.event_id
13149 AND xal2.ledger_id = xal.ledger_id
13150 AND xal2.balance_type_code = xal.balance_type_code
13151 AND xal2.event_class_code = xal.event_class_code
13152 AND xal2.event_type_code = xal.event_type_code
13153 AND xal2.line_definition_owner_code = xal.line_definition_owner_code
13154 AND xal2.line_definition_code = xal.line_definition_code
13155 AND xal2.natural_side_code = DECODE(xal.natural_side_code, 'C', 'D', 'C')
13156 AND gcc.code_combination_id(+) = xal2.code_combination_id -- bug4384869
13157 AND nvl(xal2.reversal_code, 'A') not in (C_DUMMY_SAME, C_DUMMY_PRIOR)
13158 )
13159 WHERE xal.reversal_code = C_DUMMY_SAME;
13160 -------------------------------------------------------------------------------------------------------------------*/
13161
13162 --
13163 -- Handle the same entry line that are not processed - ERROR
13164 --
13165 OPEN c_bflow_unprocessed_lines;
13166 LOOP FETCH c_bflow_unprocessed_lines BULK COLLECT INTO l_array_ae_header_id,
13167 l_array_temp_line_num, -- 5443083 l_array_ae_line_num
13168 l_array_event_id,
13169 l_array_ledger_id,
13170 l_array_balance_type_code,
13171 l_array_entity_id,
13172 l_array_ref_ae_header_id, -- 5443083
13173 l_array_header_num, -- 5443083
13174 l_array_ledger_category, -- 5443083
13175 l_array_zero_amount_flag -- 5443083
13176 LIMIT C_BULK_LIMIT;
13177
13178 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13179 trace
13180 (p_module => l_log_module
13181 ,p_msg => 'Count of unprocessed same entry =' || l_array_ae_header_id.COUNT
13182 ,p_level => C_LEVEL_STATEMENT
13183 );
13184 END IF;
13185
13186 IF l_array_ae_header_id.COUNT = 0 THEN
13187 EXIT;
13188 END IF;
13189
13190
13191 FOR i IN 1..l_array_ae_header_id.COUNT LOOP
13192
13193 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13194 trace
13195 (p_module => l_log_module
13196 ,p_msg => 'same entry ledger='||l_array_ledger_id(i)||
13197 ' category='||l_array_ledger_category(i)||
13198 ' ref_ae_header='||l_array_ref_ae_header_id(i)||
13199 ' line='||l_array_temp_line_num(i)||
13200 ' ae_header='||l_array_ae_header_id(i)||
13201 ' header_num='||l_array_header_num(i)||
13202 ' zero='||l_array_zero_amount_flag(i)||
13203 ' event='||l_array_event_id(i)||
13204 ' bal_type='||l_array_balance_type_code(i)
13205 ,p_level => C_LEVEL_STATEMENT
13206 );
13207 END IF;
13208
13209 IF l_array_zero_amount_flag(i) = 'Y' AND l_array_ledger_category(i) IN ('ALC','SECONDARY') THEN -- 5443083
13210
13211 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13212 trace
13213 (p_module => l_log_module
13214 ,p_msg => 'zero amt same entry ledger='||l_array_ledger_id(i)||
13215 ' ref_ae_header='||l_array_ref_ae_header_id(i)||
13216 ' temp_line='||l_array_temp_line_num(i)||
13217 ' ae_header='||l_array_ae_header_id(i)||
13218 ' header_num='||l_array_header_num(i)||
13219 ' event='||l_array_event_id(i)
13220 ,p_level => C_LEVEL_STATEMENT
13221 );
13222 END IF;
13223
13224 DELETE xla_ae_lines_gt
13225 WHERE ledger_id = l_array_ledger_id(i)
13226 AND ref_ae_header_id = l_array_ref_ae_header_id(i)
13227 AND temp_line_num = l_array_temp_line_num(i)
13228 AND ae_header_id = l_array_ae_header_id(i)
13229 AND header_num = l_array_header_num(i);
13230
13231 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13232 trace
13233 (p_module => l_log_module
13234 ,p_msg => ' zero amt line deleted='||SQL%ROWCOUNT
13235 ,p_level => C_LEVEL_STATEMENT
13236 );
13237 END IF;
13238
13239 DELETE xla_ae_headers_gt hgt
13240 WHERE ledger_id = l_array_ledger_id(i)
13241 AND ae_header_id = l_array_ae_header_id(i)
13242 AND balance_type_code = l_array_balance_type_code(i)
13243 AND header_num = l_array_header_num(i)
13244 AND NOT EXISTS (SELECT /*+ index(lgt XLA_AE_LINES_GT_N2) */ 1
13245 FROM xla_ae_lines_gt lgt
13246 WHERE lgt.ledger_id = hgt.ledger_id
13247 AND lgt.ae_header_id = hgt.ae_header_id
13248 AND lgt.header_num = hgt.header_num
13249 AND lgt.balance_type_code = hgt.balance_type_code);
13250
13251 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13252 trace
13253 (p_module => l_log_module
13254 ,p_msg => ' zero amt header deleted='||SQL%ROWCOUNT
13255 ,p_level => C_LEVEL_STATEMENT
13256 );
13257 END IF;
13258
13259 ELSE
13260 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
13261 xla_accounting_err_pkg.build_message
13262 (p_appli_s_name => 'XLA'
13263 ,p_msg_name => 'XLA_AP_BFLOW_SE_NOT_FOUND'
13264 ,p_entity_id => l_array_entity_id(i) -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13265 ,p_event_id => l_array_event_id(i) -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13266 ,p_ledger_id => l_array_ledger_id(i)); -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13267 END IF;
13268 END LOOP;
13269
13270 --
13271 -- Update JE lines for those that encountered error
13272 --
13273 FORALL i IN 1..l_array_balance_type_code.COUNT
13274 UPDATE xla_ae_lines_gt
13275 SET description = DECODE(description, C_CHAR, NULL, description)
13276 , code_combination_id = DECODE(code_combination_id, C_NUM, -1, code_combination_id)
13277 , code_combination_status_code = C_INVALID -- 4655713
13278 , segment1 = DECODE(segment1, C_CHAR, NULL, segment1)
13279 , segment2 = DECODE(segment2, C_CHAR, NULL, segment2)
13280 , segment3 = DECODE(segment3, C_CHAR, NULL, segment3)
13281 , segment4 = DECODE(segment4, C_CHAR, NULL, segment4)
13282 , segment5 = DECODE(segment5, C_CHAR, NULL, segment5)
13283 , segment6 = DECODE(segment6, C_CHAR, NULL, segment6)
13284 , segment7 = DECODE(segment7, C_CHAR, NULL, segment7)
13285 , segment8 = DECODE(segment8, C_CHAR, NULL, segment8)
13286 , segment9 = DECODE(segment9, C_CHAR, NULL, segment9)
13287 , segment10 = DECODE(segment10, C_CHAR, NULL, segment10)
13288 , segment11 = DECODE(segment11, C_CHAR, NULL, segment11)
13289 , segment12 = DECODE(segment12, C_CHAR, NULL, segment12)
13290 , segment13 = DECODE(segment13, C_CHAR, NULL, segment13)
13291 , segment14 = DECODE(segment14, C_CHAR, NULL, segment14)
13292 , segment15 = DECODE(segment15, C_CHAR, NULL, segment15)
13293 , segment16 = DECODE(segment16, C_CHAR, NULL, segment16)
13294 , segment17 = DECODE(segment17, C_CHAR, NULL, segment17)
13295 , segment18 = DECODE(segment18, C_CHAR, NULL, segment18)
13296 , segment19 = DECODE(segment19, C_CHAR, NULL, segment19)
13297 , segment20 = DECODE(segment20, C_CHAR, NULL, segment20)
13298 , segment21 = DECODE(segment21, C_CHAR, NULL, segment21)
13299 , segment22 = DECODE(segment22, C_CHAR, NULL, segment22)
13300 , segment23 = DECODE(segment23, C_CHAR, NULL, segment23)
13301 , segment24 = DECODE(segment24, C_CHAR, NULL, segment24)
13302 , segment25 = DECODE(segment25, C_CHAR, NULL, segment25)
13303 , segment26 = DECODE(segment26, C_CHAR, NULL, segment26)
13304 , segment27 = DECODE(segment27, C_CHAR, NULL, segment27)
13305 , segment28 = DECODE(segment28, C_CHAR, NULL, segment28)
13306 , segment29 = DECODE(segment29, C_CHAR, NULL, segment29)
13307 , segment30 = DECODE(segment30, C_CHAR, NULL, segment30)
13308 WHERE ae_header_id = l_array_ae_header_id(i)
13309 -- AND ae_line_num = l_array_ae_line_num(i) -- 5443083
13310 AND temp_line_num = l_array_temp_line_num(i) -- 5443083
13311 AND ref_ae_header_id = l_array_ref_ae_header_id(i) -- 5443083
13312 AND header_num = l_array_header_num(i) -- 5443083
13313 AND event_id = l_array_event_id(i)
13314 AND ledger_id = l_array_ledger_id(i)
13315 AND balance_type_code = l_array_balance_type_code(i);
13316
13317 --
13318 -- Update JE header status for invalid entries
13319 --
13320 FORALL i IN 1..l_array_balance_type_code.COUNT
13321 UPDATE xla_ae_headers_gt hgt
13322 SET accounting_entry_status_code = XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID -- C_INVALID_STATUS
13323 WHERE ae_header_id = l_array_ae_header_id(i)
13324 AND event_id = l_array_event_id(i)
13325 AND ledger_id = l_array_ledger_id(i)
13326 AND header_num = l_array_header_num(i) -- 5443083
13327 AND balance_type_code = l_array_balance_type_code(i)
13328 AND EXISTS (SELECT /*+ index(lgt XLA_AE_LINES_GT_N2) */ 1 - 5443083
13329 FROM xla_ae_lines_gt lgt
13330 WHERE lgt.ledger_id = hgt.ledger_id
13331 AND lgt.ae_header_id = hgt.ae_header_id
13332 AND lgt.header_num = hgt.header_num
13333 AND lgt.balance_type_code = hgt.balance_type_code
13334 AND (lgt.reversal_code = C_DUMMY_SAME
13335 OR lgt.reversal_code = C_MPA_SAME_ENTRY));
13336
13337 END LOOP;
13338 CLOSE c_bflow_unprocessed_lines;
13339
13340 END IF; -- g_num_bflow_same_entries > 0
13341
13342
13343 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13344 trace
13345 (p_msg => 'END of BusinessFlowSameEntries'
13346 ,p_level => C_LEVEL_PROCEDURE
13347 ,p_module => l_log_module);
13348 END IF;
13349
13350 EXCEPTION
13351 --
13352 WHEN xla_exceptions_pkg.application_exception THEN
13353 RAISE;
13354 WHEN OTHERS THEN
13355 xla_exceptions_pkg.raise_message
13356 (p_location => 'xla_ae_lines_pkg.BusinessFlowSameEntries');
13357 --
13358 END BusinessFlowSameEntries;
13359
13360 /*======================================================================+
13361 | |
13362 | Public Procedure- Validate Business Flow Applied To Links - 4219869 |
13363 | (Refer to ValidateLinks for similar logic.) |
13364 | |
13365 +======================================================================*/
13366 PROCEDURE ValidateBFlowLinks IS
13367
13368 l_log_module VARCHAR2(240);
13369 l_source_temp NUMBER;
13370 l_dist_temp NUMBER;
13371 l_app_name VARCHAR2(240);
13372
13373 BEGIN
13374 IF g_log_enabled THEN
13375 l_log_module := C_DEFAULT_MODULE||'.ValidateBFlowLinks';
13376 END IF;
13377
13378 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13379 trace
13380 (p_msg => 'BEGIN of ValidateBFlowLinks'
13381 ,p_level => C_LEVEL_PROCEDURE
13382 ,p_module => l_log_module);
13383 END IF;
13384
13385
13386 --IF g_rec_lines.array_bflow_application_id(g_LineNumber) IS NOT NULL THEN
13387
13388 IF g_rec_lines.array_bflow_application_id(g_LineNumber) IS NULL OR -- log error if application id is null
13389 g_rec_lines.array_bflow_entity_code(g_LineNumber) IS NULL OR
13390 g_rec_lines.array_bflow_distribution_type(g_LineNumber) IS NULL OR
13391 (g_rec_lines.array_bflow_source_id_char_1(g_LineNumber) IS NULL AND
13392 g_rec_lines.array_bflow_source_id_num_1(g_LineNumber) IS NULL) OR
13393 (g_rec_lines.array_bflow_dist_id_char_1(g_LineNumber) IS NULL AND
13394 g_rec_lines.array_bflow_dist_id_num_1(g_LineNumber) IS NULL) THEN
13395
13396 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
13397 xla_accounting_err_pkg.build_message
13398 (p_appli_s_name => 'XLA'
13399 ,p_msg_name => 'XLA_AP_BFPE_INVALID_APPLIED_TO'
13400 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13401 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13402 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
13403
13404 ELSE
13405
13406 l_app_name := xla_accounting_cache_pkg.GetSessionValueChar('XLA_EVENT_APPL_NAME');
13407
13408 ---------------------------------------------------------------------
13409 -- Verify applied-to system transaction ids
13410 ---------------------------------------------------------------------
13411 IF g_rec_lines.array_bflow_source_id_char_4(g_LineNumber) IS NULL AND
13412 g_rec_lines.array_bflow_source_id_num_4(g_LineNumber) IS NULL THEN
13413 l_source_temp := 0;
13414 ELSE
13415 l_source_temp := 1;
13416 END IF;
13417 IF g_rec_lines.array_bflow_source_id_char_3(g_LineNumber) IS NOT NULL OR
13418 g_rec_lines.array_bflow_source_id_num_3(g_LineNumber) IS NOT NULL THEN
13419 l_source_temp := 2+l_source_temp;
13420 END IF;
13421 IF g_rec_lines.array_bflow_source_id_char_2(g_LineNumber) IS NOT NULL OR
13422 g_rec_lines.array_bflow_source_id_num_2(g_LineNumber) IS NOT NULL THEN
13423 l_source_temp := 4+l_source_temp;
13424 END IF;
13425
13426 IF (g_rec_lines.array_bflow_source_id_char_1(g_LineNumber) IS NULL AND
13427 g_rec_lines.array_bflow_source_id_num_1(g_LineNumber) IS NULL) OR
13428 l_source_temp not in (0, 4, 6, 7) THEN
13429
13430 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
13431 xla_accounting_err_pkg.build_message
13432 (p_appli_s_name => 'XLA'
13433 ,p_msg_name => 'XLA_AP_BFLOW_NO_SYS_TRX_ID'
13434 ,p_token_1 => 'LINE_NUMBER'
13435 ,p_value_1 => g_ExtractLine
13436 ,p_token_2 => 'LINE_TYPE_NAME'
13437 ,p_value_2 => xla_ae_sources_pkg.GetComponentName (
13438 g_accounting_line.component_type
13439 , g_accounting_line.accounting_line_code
13440 , g_accounting_line.accounting_line_type_code
13441 , g_accounting_line.accounting_line_appl_id
13442 , g_accounting_line.amb_context_code
13443 , g_accounting_line.entity_code
13444 , g_accounting_line.event_class_code)
13445 ,p_token_3 => 'OWNER'
13446 ,p_value_3 => xla_lookups_pkg.get_meaning(
13447 'XLA_OWNER_TYPE'
13448 , g_rec_lines.array_accounting_line_type(g_LineNumber))
13449 ,p_token_4 => 'PRODUCT_NAME'
13450 --,p_value_4 => xla_ae_journal_entry_pkg.g_cache_event.application_name
13451 ,p_value_4 => l_app_name
13452 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
13453 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
13454 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
13455 ,p_ae_header_id => NULL);
13456
13457 IF (C_LEVEL_ERROR >= g_log_level) THEN
13458 trace
13459 (p_msg => 'ERROR: XLA_AP_BFLOW_NO_SYS_TRX_ID'
13460 ,p_level => C_LEVEL_ERROR
13461 ,p_module => l_log_module);
13462 END IF;
13463
13464 END IF; -- g_rec_lines.array_bflow_source_id_char_1(g_LineNumber) IS NULL
13465
13466 ---------------------------------------------------------------------
13467 -- Verify applied-to distribution ids
13468 ---------------------------------------------------------------------
13469 IF g_rec_lines.array_bflow_dist_id_char_5(g_LineNumber) IS NULL AND
13470 g_rec_lines.array_bflow_dist_id_num_5(g_LineNumber) IS NULL THEN
13471 l_dist_temp := 0;
13472 ELSE
13473 l_dist_temp := 1;
13474 END IF;
13475 IF g_rec_lines.array_bflow_dist_id_char_4(g_LineNumber) IS NOT NULL OR
13476 g_rec_lines.array_bflow_dist_id_num_4(g_LineNumber) IS NOT NULL THEN
13477 l_dist_temp := 2+l_dist_temp;
13478 END IF;
13479 IF g_rec_lines.array_bflow_dist_id_char_3(g_LineNumber) IS NOT NULL OR
13480 g_rec_lines.array_bflow_dist_id_num_3(g_LineNumber) IS NOT NULL THEN
13481 l_dist_temp := 4+l_dist_temp;
13482 END IF;
13483 IF g_rec_lines.array_bflow_dist_id_char_2(g_LineNumber) IS NOT NULL OR
13484 g_rec_lines.array_bflow_dist_id_num_2(g_LineNumber) IS NOT NULL THEN
13485 l_dist_temp := 8+l_dist_temp;
13486 END IF;
13487
13488 IF (g_rec_lines.array_bflow_dist_id_char_1(g_LineNumber) IS NULL AND
13489 g_rec_lines.array_bflow_dist_id_num_1(g_LineNumber) IS NULL) OR
13490 l_dist_temp not in (0, 8, 12, 14, 15) THEN
13491
13492 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
13493 xla_accounting_err_pkg.build_message
13494 (p_appli_s_name => 'XLA'
13495 ,p_msg_name => 'XLA_AP_BFLOW_NO_DIST_LINK_ID'
13496 ,p_token_1 => 'LINE_NUMBER'
13497 ,p_value_1 => g_ExtractLine
13498 ,p_token_2 => 'LINE_TYPE_NAME'
13499 ,p_value_2 => xla_ae_sources_pkg.GetComponentName (
13500 g_accounting_line.component_type
13501 , g_accounting_line.accounting_line_code
13502 , g_accounting_line.accounting_line_type_code
13503 , g_accounting_line.accounting_line_appl_id
13504 , g_accounting_line.amb_context_code
13505 , g_accounting_line.entity_code
13506 , g_accounting_line.event_class_code)
13507 ,p_token_3 => 'OWNER'
13508 ,p_value_3 => xla_lookups_pkg.get_meaning(
13509 'XLA_OWNER_TYPE'
13510 , g_rec_lines.array_accounting_line_type(g_LineNumber))
13511 ,p_token_4 => 'PRODUCT_NAME'
13512 --,p_value_4 => xla_ae_journal_entry_pkg.g_cache_event.application_name
13513 ,p_value_4 => l_app_name
13514 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
13515 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
13516 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
13517 ,p_ae_header_id => NULL);
13518
13519 IF (C_LEVEL_ERROR >= g_log_level) THEN
13520 trace
13521 (p_msg => 'ERROR: XLA_AP_BFLOW_NO_DIST_LINK_ID'
13522 ,p_level => C_LEVEL_ERROR
13523 ,p_module => l_log_module);
13524 END IF;
13525 END IF; -- (g_rec_lines.array_bflow_dist_id_char_1(g_LineNumber) IS NULL
13526
13527 END IF; -- if bflow_entity_code is null
13528
13529 --END IF; -- if bflow_application_id is not null
13530
13531 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13532 trace
13533 (p_msg => 'END of ValidateBFlowLinks'
13534 ,p_level => C_LEVEL_PROCEDURE
13535 ,p_module => l_log_module);
13536 END IF;
13537
13538 EXCEPTION
13539 --
13540 WHEN xla_exceptions_pkg.application_exception THEN
13541 RAISE;
13542 WHEN OTHERS THEN
13543 xla_exceptions_pkg.raise_message
13544 (p_location => 'xla_ae_lines_pkg.ValidateBFlowLinks');
13545 --
13546 END ValidateBFlowLinks;
13547
13548 /*======================================================================+
13549 | |
13550 | Public Procedure- 4262811 |
13551 | |
13552 | |
13553 +======================================================================*/
13554 PROCEDURE CopyLineInfo(
13555 p_line_num NUMBER
13556 ) IS
13557
13558 l_log_module VARCHAR2(240);
13559
13560 BEGIN
13561 IF g_log_enabled THEN
13562 l_log_module := C_DEFAULT_MODULE||'.CopyLineInfo';
13563 END IF;
13564
13565 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13566 trace
13567 (p_msg => 'BEGIN of CopyLineInfo'
13568 ,p_level => C_LEVEL_PROCEDURE
13569 ,p_module => l_log_module);
13570 END IF;
13571
13572 SetNewLine;
13573
13574 -------------------------------------------------------------------------------------------------------
13575 -- Copy all information in g_rec_lines from p_line_num to g_LineNumber with the following exceptions:
13576 -------------------------------------------------------------------------------------------------------
13577 --
13578 --
13579 -------------------------------------------------------------------------------------------------------
13580 -- Skipped a TEMP_LINE_NUM in distribution links for MPA as SetNewLine also increased by 1
13581 --
13582 -- following sets the temp line number
13583 -- g_rec_lines.array_line_num(g_LineNumber) := NVL(g_temp_line_num ,0) + 1;
13584 -------------------------------------------------------------------------------------------------------
13585 --
13586 g_rec_lines.array_ae_header_id(g_LineNumber) := g_rec_lines.array_ae_header_id(p_line_num);
13587 g_rec_lines.array_header_num(g_LineNumber) := g_rec_lines.array_header_num(p_line_num);
13588
13589 -- =================================================================================================
13590 g_rec_lines.array_accounting_class(g_LineNumber) := g_rec_lines.array_accounting_class(p_line_num);
13591 g_rec_lines.array_rounding_class(g_LineNumber) := g_rec_lines.array_rounding_class(p_line_num);
13592 g_rec_lines.array_doc_rounding_level(g_LineNumber) := g_rec_lines.array_doc_rounding_level(p_line_num);
13593 g_rec_lines.array_gain_or_loss_ref(g_LineNumber):= g_rec_lines.array_gain_or_loss_ref(p_line_num);
13594 g_rec_lines.array_event_class_code(g_LineNumber) := g_rec_lines.array_event_class_code(p_line_num);
13595 g_rec_lines.array_event_type_code(g_LineNumber) := g_rec_lines.array_event_type_code(p_line_num);
13596 g_rec_lines.array_line_defn_owner_code(g_LineNumber) := g_rec_lines.array_line_defn_owner_code(p_line_num);
13597 g_rec_lines.array_line_defn_code(g_LineNumber) := g_rec_lines.array_line_defn_code(p_line_num);
13598 g_rec_lines.array_accounting_line_code(g_LineNumber) := g_rec_lines.array_accounting_line_code(p_line_num);
13599 g_rec_lines.array_accounting_line_type(g_LineNumber) := g_rec_lines.array_accounting_line_type(p_line_num);
13600 g_rec_lines.array_calculate_acctd_flag(g_LineNumber) := g_rec_lines.array_calculate_acctd_flag(p_line_num);
13601 g_rec_lines.array_calculate_g_l_flag(g_LineNumber) := g_rec_lines.array_calculate_g_l_flag(p_line_num);
13602 g_rec_lines.array_gain_or_loss_flag(g_LineNumber) := g_rec_lines.array_gain_or_loss_flag(p_line_num);
13603
13604 --
13605 -- following sets the extract line number
13606 --
13607 g_rec_lines.array_extract_line_num(g_LineNumber) := g_rec_lines.array_extract_line_num(p_line_num);
13608
13609 --
13610 -- line flexfield accounts
13611 --
13612 g_rec_lines.array_ccid_flag(g_LineNumber) := g_rec_lines.array_ccid_flag(p_line_num);
13613 g_rec_lines.array_ccid(g_LineNumber) := g_rec_lines.array_ccid(p_line_num);
13614 --
13615 g_rec_lines.array_accounting_coa_id(g_LineNumber) := g_rec_lines.array_accounting_coa_id(p_line_num);
13616 g_rec_lines.array_transaction_coa_id(g_LineNumber) := g_rec_lines.array_transaction_coa_id(p_line_num);
13617 g_rec_lines.array_sl_coa_mapping_name(g_LineNumber) := g_rec_lines.array_sl_coa_mapping_name(p_line_num);
13618 --
13619 g_rec_lines.array_segment1(g_LineNumber) := g_rec_lines.array_segment1(p_line_num);
13620 g_rec_lines.array_segment2(g_LineNumber) := g_rec_lines.array_segment2(p_line_num);
13621 g_rec_lines.array_segment3(g_LineNumber) := g_rec_lines.array_segment3(p_line_num);
13622 g_rec_lines.array_segment4(g_LineNumber) := g_rec_lines.array_segment4(p_line_num);
13623 g_rec_lines.array_segment5(g_LineNumber) := g_rec_lines.array_segment5(p_line_num);
13624 g_rec_lines.array_segment6(g_LineNumber) := g_rec_lines.array_segment6(p_line_num);
13625 g_rec_lines.array_segment7(g_LineNumber) := g_rec_lines.array_segment7(p_line_num);
13626 g_rec_lines.array_segment8(g_LineNumber) := g_rec_lines.array_segment8(p_line_num);
13627 g_rec_lines.array_segment9(g_LineNumber) := g_rec_lines.array_segment9(p_line_num);
13628 g_rec_lines.array_segment10(g_LineNumber) := g_rec_lines.array_segment10(p_line_num);
13629 g_rec_lines.array_segment11(g_LineNumber) := g_rec_lines.array_segment11(p_line_num);
13630 g_rec_lines.array_segment12(g_LineNumber) := g_rec_lines.array_segment12(p_line_num);
13631 g_rec_lines.array_segment13(g_LineNumber) := g_rec_lines.array_segment13(p_line_num);
13632 g_rec_lines.array_segment14(g_LineNumber) := g_rec_lines.array_segment14(p_line_num);
13633 g_rec_lines.array_segment15(g_LineNumber) := g_rec_lines.array_segment15(p_line_num);
13634 g_rec_lines.array_segment16(g_LineNumber) := g_rec_lines.array_segment16(p_line_num);
13635 g_rec_lines.array_segment17(g_LineNumber) := g_rec_lines.array_segment17(p_line_num);
13636 g_rec_lines.array_segment18(g_LineNumber) := g_rec_lines.array_segment18(p_line_num);
13637 g_rec_lines.array_segment19(g_LineNumber) := g_rec_lines.array_segment19(p_line_num);
13638 g_rec_lines.array_segment20(g_LineNumber) := g_rec_lines.array_segment20(p_line_num);
13639 g_rec_lines.array_segment21(g_LineNumber) := g_rec_lines.array_segment21(p_line_num);
13640 g_rec_lines.array_segment22(g_LineNumber) := g_rec_lines.array_segment22(p_line_num);
13641 g_rec_lines.array_segment23(g_LineNumber) := g_rec_lines.array_segment23(p_line_num);
13642 g_rec_lines.array_segment24(g_LineNumber) := g_rec_lines.array_segment24(p_line_num);
13643 g_rec_lines.array_segment25(g_LineNumber) := g_rec_lines.array_segment25(p_line_num);
13644 g_rec_lines.array_segment26(g_LineNumber) := g_rec_lines.array_segment26(p_line_num);
13645 g_rec_lines.array_segment27(g_LineNumber) := g_rec_lines.array_segment27(p_line_num);
13646 g_rec_lines.array_segment28(g_LineNumber) := g_rec_lines.array_segment28(p_line_num);
13647 g_rec_lines.array_segment29(g_LineNumber) := g_rec_lines.array_segment29(p_line_num);
13648 g_rec_lines.array_segment30(g_LineNumber) := g_rec_lines.array_segment30(p_line_num);
13649 --
13650 g_rec_lines.alt_array_ccid_flag(g_LineNumber) := g_rec_lines.alt_array_ccid_flag(p_line_num);
13651 g_rec_lines.alt_array_ccid(g_LineNumber) := g_rec_lines.alt_array_ccid(p_line_num);
13652 g_rec_lines.alt_array_segment1(g_LineNumber) := g_rec_lines.alt_array_segment1(p_line_num);
13653 g_rec_lines.alt_array_segment2(g_LineNumber) := g_rec_lines.alt_array_segment2(p_line_num);
13654 g_rec_lines.alt_array_segment3(g_LineNumber) := g_rec_lines.alt_array_segment3(p_line_num);
13655 g_rec_lines.alt_array_segment4(g_LineNumber) := g_rec_lines.alt_array_segment4(p_line_num);
13656 g_rec_lines.alt_array_segment5(g_LineNumber) := g_rec_lines.alt_array_segment5(p_line_num);
13657 g_rec_lines.alt_array_segment6(g_LineNumber) := g_rec_lines.alt_array_segment6(p_line_num);
13658 g_rec_lines.alt_array_segment7(g_LineNumber) := g_rec_lines.alt_array_segment7(p_line_num);
13659 g_rec_lines.alt_array_segment8(g_LineNumber) := g_rec_lines.alt_array_segment8(p_line_num);
13660 g_rec_lines.alt_array_segment9(g_LineNumber) := g_rec_lines.alt_array_segment9(p_line_num);
13661 g_rec_lines.alt_array_segment10(g_LineNumber) := g_rec_lines.alt_array_segment10(p_line_num);
13662 g_rec_lines.alt_array_segment11(g_LineNumber) := g_rec_lines.alt_array_segment11(p_line_num);
13663 g_rec_lines.alt_array_segment12(g_LineNumber) := g_rec_lines.alt_array_segment12(p_line_num);
13664 g_rec_lines.alt_array_segment13(g_LineNumber) := g_rec_lines.alt_array_segment13(p_line_num);
13665 g_rec_lines.alt_array_segment14(g_LineNumber) := g_rec_lines.alt_array_segment14(p_line_num);
13666 g_rec_lines.alt_array_segment15(g_LineNumber) := g_rec_lines.alt_array_segment15(p_line_num);
13667 g_rec_lines.alt_array_segment16(g_LineNumber) := g_rec_lines.alt_array_segment16(p_line_num);
13668 g_rec_lines.alt_array_segment17(g_LineNumber) := g_rec_lines.alt_array_segment17(p_line_num);
13669 g_rec_lines.alt_array_segment18(g_LineNumber) := g_rec_lines.alt_array_segment18(p_line_num);
13670 g_rec_lines.alt_array_segment19(g_LineNumber) := g_rec_lines.alt_array_segment19(p_line_num);
13671 g_rec_lines.alt_array_segment20(g_LineNumber) := g_rec_lines.alt_array_segment20(p_line_num);
13672 g_rec_lines.alt_array_segment21(g_LineNumber) := g_rec_lines.alt_array_segment21(p_line_num);
13673 g_rec_lines.alt_array_segment22(g_LineNumber) := g_rec_lines.alt_array_segment22(p_line_num);
13674 g_rec_lines.alt_array_segment23(g_LineNumber) := g_rec_lines.alt_array_segment23(p_line_num);
13675 g_rec_lines.alt_array_segment24(g_LineNumber) := g_rec_lines.alt_array_segment24(p_line_num);
13676 g_rec_lines.alt_array_segment25(g_LineNumber) := g_rec_lines.alt_array_segment25(p_line_num);
13677 g_rec_lines.alt_array_segment26(g_LineNumber) := g_rec_lines.alt_array_segment26(p_line_num);
13678 g_rec_lines.alt_array_segment27(g_LineNumber) := g_rec_lines.alt_array_segment27(p_line_num);
13679 g_rec_lines.alt_array_segment28(g_LineNumber) := g_rec_lines.alt_array_segment28(p_line_num);
13680 g_rec_lines.alt_array_segment29(g_LineNumber) := g_rec_lines.alt_array_segment29(p_line_num);
13681 g_rec_lines.alt_array_segment30(g_LineNumber) := g_rec_lines.alt_array_segment30(p_line_num);
13682 --
13683 -- Option lines
13684 --
13685 g_rec_lines.array_gl_transfer_mode(g_LineNumber) := g_rec_lines.array_gl_transfer_mode(p_line_num);
13686 g_rec_lines.array_natural_side_code(g_LineNumber) := g_rec_lines.array_natural_side_code(p_line_num);
13687 g_rec_lines.array_acct_entry_type_code(g_LineNumber) := g_rec_lines.array_acct_entry_type_code(p_line_num);
13688 g_rec_lines.array_switch_side_flag(g_LineNumber) := g_rec_lines.array_switch_side_flag(p_line_num);
13689 g_rec_lines.array_merge_duplicate_code(g_LineNumber) := g_rec_lines.array_merge_duplicate_code(p_line_num);
13690 --
13691 -- line amounts
13692 --
13693 g_rec_lines.array_entered_amount(g_LineNumber) := g_rec_lines.array_entered_amount(p_line_num);
13694 g_rec_lines.array_ledger_amount(g_LineNumber) := g_rec_lines.array_ledger_amount(p_line_num);
13695 g_rec_lines.array_entered_dr(g_LineNumber) := g_rec_lines.array_entered_dr(p_line_num);
13696 g_rec_lines.array_entered_cr(g_LineNumber) := g_rec_lines.array_entered_cr(p_line_num);
13697 g_rec_lines.array_accounted_dr(g_LineNumber) := g_rec_lines.array_accounted_dr(p_line_num);
13698 g_rec_lines.array_accounted_cr(g_LineNumber) := g_rec_lines.array_accounted_cr(p_line_num);
13699 g_rec_lines.array_currency_code(g_LineNumber) := g_rec_lines.array_currency_code(p_line_num);
13700 g_rec_lines.array_currency_mau(g_LineNumber) := xla_accounting_cache_pkg.GetCurrencyMau(g_rec_lines.array_currency_code(g_LineNumber));
13701 g_rec_lines.array_curr_conversion_date(g_LineNumber) := g_rec_lines.array_curr_conversion_date(p_line_num);
13702 g_rec_lines.array_curr_conversion_rate(g_LineNumber) := g_rec_lines.array_curr_conversion_rate(p_line_num);
13703 g_rec_lines.array_curr_conversion_type(g_LineNumber) := g_rec_lines.array_curr_conversion_type(p_line_num);
13704 g_rec_lines.array_description(g_LineNumber) := g_rec_lines.array_description(p_line_num);
13705 --
13706 -- line descriptions
13707 --
13708 g_rec_lines.array_party_id(g_LineNumber) := g_rec_lines.array_party_id(p_line_num);
13709 g_rec_lines.array_party_site_id(g_LineNumber) := g_rec_lines.array_party_site_id(p_line_num);
13710 g_rec_lines.array_party_type_code(g_LineNumber) := g_rec_lines.array_party_type_code(p_line_num);
13711 --
13712 g_rec_lines.array_statistical_amount(g_LineNumber) := g_rec_lines.array_statistical_amount(p_line_num);
13713 g_rec_lines.array_ussgl_transaction(g_LineNumber) := g_rec_lines.array_ussgl_transaction(p_line_num);
13714 --
13715 g_rec_lines.array_jgzz_recon_ref(g_LineNumber) := g_rec_lines.array_jgzz_recon_ref(p_line_num);
13716 --
13717 -- distribution links
13718 --
13719 g_rec_lines.array_distribution_id_char_1(g_LineNumber) := g_rec_lines.array_distribution_id_char_1(p_line_num);
13720 g_rec_lines.array_distribution_id_char_2(g_LineNumber) := g_rec_lines.array_distribution_id_char_2(p_line_num);
13721 g_rec_lines.array_distribution_id_char_3(g_LineNumber) := g_rec_lines.array_distribution_id_char_3(p_line_num);
13722 g_rec_lines.array_distribution_id_char_4(g_LineNumber) := g_rec_lines.array_distribution_id_char_4(p_line_num);
13723 g_rec_lines.array_distribution_id_char_5(g_LineNumber) := g_rec_lines.array_distribution_id_char_5(p_line_num);
13724 g_rec_lines.array_distribution_id_num_1(g_LineNumber) := g_rec_lines.array_distribution_id_num_1(p_line_num);
13725 g_rec_lines.array_distribution_id_num_2(g_LineNumber) := g_rec_lines.array_distribution_id_num_2(p_line_num);
13726 g_rec_lines.array_distribution_id_num_3(g_LineNumber) := g_rec_lines.array_distribution_id_num_3(p_line_num);
13727 g_rec_lines.array_distribution_id_num_4(g_LineNumber) := g_rec_lines.array_distribution_id_num_4(p_line_num);
13728 g_rec_lines.array_distribution_id_num_5(g_LineNumber) := g_rec_lines.array_distribution_id_num_5(p_line_num);
13729 g_rec_lines.array_sys_distribution_type(g_LineNumber) := g_rec_lines.array_sys_distribution_type(p_line_num);
13730 --
13731 -- reverse distribution links
13732 --
13733 g_rec_lines.array_rev_dist_id_char_1(g_LineNumber) := g_rec_lines.array_rev_dist_id_char_1(p_line_num);
13734 g_rec_lines.array_rev_dist_id_char_2(g_LineNumber) := g_rec_lines.array_rev_dist_id_char_2(p_line_num);
13735 g_rec_lines.array_rev_dist_id_char_3(g_LineNumber) := g_rec_lines.array_rev_dist_id_char_3(p_line_num);
13736 g_rec_lines.array_rev_dist_id_char_4(g_LineNumber) := g_rec_lines.array_rev_dist_id_char_4(p_line_num);
13737 g_rec_lines.array_rev_dist_id_char_5(g_LineNumber) := g_rec_lines.array_rev_dist_id_char_5(p_line_num);
13738 g_rec_lines.array_rev_dist_id_num_1(g_LineNumber) := g_rec_lines.array_rev_dist_id_num_1(p_line_num);
13739 g_rec_lines.array_rev_dist_id_num_2(g_LineNumber) := g_rec_lines.array_rev_dist_id_num_2(p_line_num);
13740 g_rec_lines.array_rev_dist_id_num_3(g_LineNumber) := g_rec_lines.array_rev_dist_id_num_3(p_line_num);
13741 g_rec_lines.array_rev_dist_id_num_4(g_LineNumber) := g_rec_lines.array_rev_dist_id_num_4(p_line_num);
13742 g_rec_lines.array_rev_dist_id_num_5(g_LineNumber) := g_rec_lines.array_rev_dist_id_num_5(p_line_num);
13743 g_rec_lines.array_rev_dist_type(g_LineNumber) := g_rec_lines.array_rev_dist_type(p_line_num);
13744 --
13745 -- multiperiod accounting
13746 --
13747 -- DO NOT COPY g_rec_lines.array_mpa_acc_entry_flag
13748 g_rec_lines.array_header_num(g_LineNumber) := g_rec_lines.array_header_num(p_line_num);
13749 g_rec_lines.array_mpa_option(g_LineNumber) := g_rec_lines.array_mpa_option(p_line_num);
13750 g_rec_lines.array_mpa_start_date(g_LineNumber) := g_rec_lines.array_mpa_start_date(p_line_num);
13751 g_rec_lines.array_mpa_end_date(g_LineNumber) := g_rec_lines.array_mpa_end_date(p_line_num);
13752 --
13753 -- reversal info
13754 --
13755 g_rec_lines.array_acc_reversal_option(g_LineNumber) := g_rec_lines.array_acc_reversal_option(p_line_num);
13756 --
13757 -- tax info
13758 --
13759 g_rec_lines.array_tax_line_ref(g_LineNumber) := g_rec_lines.array_tax_line_ref(p_line_num);
13760 g_rec_lines.array_tax_summary_line_ref(g_LineNumber) := g_rec_lines.array_tax_summary_line_ref(p_line_num);
13761 g_rec_lines.array_tax_rec_nrec_dist_ref(g_LineNumber) := g_rec_lines.array_tax_rec_nrec_dist_ref(p_line_num);
13762 --
13763 --
13764 g_rec_lines.array_anc_balance_flag(g_LineNumber) := g_rec_lines.array_anc_balance_flag(p_line_num);
13765 g_rec_lines.array_anc_id_1(g_LineNumber) := g_rec_lines.array_anc_id_1(p_line_num);
13766 g_rec_lines.array_anc_id_2(g_LineNumber) := g_rec_lines.array_anc_id_2(p_line_num);
13767 g_rec_lines.array_anc_id_3(g_LineNumber) := g_rec_lines.array_anc_id_3(p_line_num);
13768 g_rec_lines.array_anc_id_4(g_LineNumber) := g_rec_lines.array_anc_id_4(p_line_num);
13769 g_rec_lines.array_anc_id_5(g_LineNumber) := g_rec_lines.array_anc_id_5(p_line_num);
13770 g_rec_lines.array_anc_id_6(g_LineNumber) := g_rec_lines.array_anc_id_6(p_line_num);
13771 g_rec_lines.array_anc_id_7(g_LineNumber) := g_rec_lines.array_anc_id_7(p_line_num);
13772 g_rec_lines.array_anc_id_8(g_LineNumber) := g_rec_lines.array_anc_id_8(p_line_num);
13773 g_rec_lines.array_anc_id_9(g_LineNumber) := g_rec_lines.array_anc_id_9(p_line_num);
13774 g_rec_lines.array_anc_id_10(g_LineNumber) := g_rec_lines.array_anc_id_10(p_line_num);
13775 g_rec_lines.array_anc_id_11(g_LineNumber) := g_rec_lines.array_anc_id_11(p_line_num);
13776 g_rec_lines.array_anc_id_12(g_LineNumber) := g_rec_lines.array_anc_id_12(p_line_num);
13777 g_rec_lines.array_anc_id_13(g_LineNumber) := g_rec_lines.array_anc_id_13(p_line_num);
13778 g_rec_lines.array_anc_id_14(g_LineNumber) := g_rec_lines.array_anc_id_14(p_line_num);
13779 g_rec_lines.array_anc_id_15(g_LineNumber) := g_rec_lines.array_anc_id_15(p_line_num);
13780 g_rec_lines.array_anc_id_16(g_LineNumber) := g_rec_lines.array_anc_id_16(p_line_num);
13781 g_rec_lines.array_anc_id_17(g_LineNumber) := g_rec_lines.array_anc_id_17(p_line_num);
13782 g_rec_lines.array_anc_id_18(g_LineNumber) := g_rec_lines.array_anc_id_18(p_line_num);
13783 g_rec_lines.array_anc_id_19(g_LineNumber) := g_rec_lines.array_anc_id_19(p_line_num);
13784 g_rec_lines.array_anc_id_20(g_LineNumber) := g_rec_lines.array_anc_id_20(p_line_num);
13785 g_rec_lines.array_anc_id_21(g_LineNumber) := g_rec_lines.array_anc_id_21(p_line_num);
13786 g_rec_lines.array_anc_id_22(g_LineNumber) := g_rec_lines.array_anc_id_22(p_line_num);
13787 g_rec_lines.array_anc_id_23(g_LineNumber) := g_rec_lines.array_anc_id_23(p_line_num);
13788 g_rec_lines.array_anc_id_24(g_LineNumber) := g_rec_lines.array_anc_id_24(p_line_num);
13789 g_rec_lines.array_anc_id_25(g_LineNumber) := g_rec_lines.array_anc_id_25(p_line_num);
13790 g_rec_lines.array_anc_id_26(g_LineNumber) := g_rec_lines.array_anc_id_26(p_line_num);
13791 g_rec_lines.array_anc_id_27(g_LineNumber) := g_rec_lines.array_anc_id_27(p_line_num);
13792 g_rec_lines.array_anc_id_28(g_LineNumber) := g_rec_lines.array_anc_id_28(p_line_num);
13793 g_rec_lines.array_anc_id_29(g_LineNumber) := g_rec_lines.array_anc_id_29(p_line_num);
13794 g_rec_lines.array_anc_id_30(g_LineNumber) := g_rec_lines.array_anc_id_30(p_line_num);
13795 g_rec_lines.array_anc_id_31(g_LineNumber) := g_rec_lines.array_anc_id_31(p_line_num);
13796 g_rec_lines.array_anc_id_32(g_LineNumber) := g_rec_lines.array_anc_id_32(p_line_num);
13797 g_rec_lines.array_anc_id_33(g_LineNumber) := g_rec_lines.array_anc_id_33(p_line_num);
13798 g_rec_lines.array_anc_id_34(g_LineNumber) := g_rec_lines.array_anc_id_34(p_line_num);
13799 g_rec_lines.array_anc_id_35(g_LineNumber) := g_rec_lines.array_anc_id_35(p_line_num);
13800 g_rec_lines.array_anc_id_36(g_LineNumber) := g_rec_lines.array_anc_id_36(p_line_num);
13801 g_rec_lines.array_anc_id_37(g_LineNumber) := g_rec_lines.array_anc_id_37(p_line_num);
13802 g_rec_lines.array_anc_id_38(g_LineNumber) := g_rec_lines.array_anc_id_38(p_line_num);
13803 g_rec_lines.array_anc_id_39(g_LineNumber) := g_rec_lines.array_anc_id_39(p_line_num);
13804 g_rec_lines.array_anc_id_40(g_LineNumber) := g_rec_lines.array_anc_id_40(p_line_num);
13805 g_rec_lines.array_anc_id_41(g_LineNumber) := g_rec_lines.array_anc_id_41(p_line_num);
13806 g_rec_lines.array_anc_id_42(g_LineNumber) := g_rec_lines.array_anc_id_42(p_line_num);
13807 g_rec_lines.array_anc_id_43(g_LineNumber) := g_rec_lines.array_anc_id_43(p_line_num);
13808 g_rec_lines.array_anc_id_44(g_LineNumber) := g_rec_lines.array_anc_id_44(p_line_num);
13809 g_rec_lines.array_anc_id_45(g_LineNumber) := g_rec_lines.array_anc_id_45(p_line_num);
13810 g_rec_lines.array_anc_id_46(g_LineNumber) := g_rec_lines.array_anc_id_46(p_line_num);
13811 g_rec_lines.array_anc_id_47(g_LineNumber) := g_rec_lines.array_anc_id_47(p_line_num);
13812 g_rec_lines.array_anc_id_48(g_LineNumber) := g_rec_lines.array_anc_id_48(p_line_num);
13813 g_rec_lines.array_anc_id_49(g_LineNumber) := g_rec_lines.array_anc_id_49(p_line_num);
13814 g_rec_lines.array_anc_id_50(g_LineNumber) := g_rec_lines.array_anc_id_50(p_line_num);
13815 g_rec_lines.array_anc_id_51(g_LineNumber) := g_rec_lines.array_anc_id_51(p_line_num);
13816 g_rec_lines.array_anc_id_52(g_LineNumber) := g_rec_lines.array_anc_id_52(p_line_num);
13817 g_rec_lines.array_anc_id_53(g_LineNumber) := g_rec_lines.array_anc_id_53(p_line_num);
13818 g_rec_lines.array_anc_id_54(g_LineNumber) := g_rec_lines.array_anc_id_54(p_line_num);
13819 g_rec_lines.array_anc_id_55(g_LineNumber) := g_rec_lines.array_anc_id_55(p_line_num);
13820 g_rec_lines.array_anc_id_56(g_LineNumber) := g_rec_lines.array_anc_id_56(p_line_num);
13821 g_rec_lines.array_anc_id_57(g_LineNumber) := g_rec_lines.array_anc_id_57(p_line_num);
13822 g_rec_lines.array_anc_id_58(g_LineNumber) := g_rec_lines.array_anc_id_58(p_line_num);
13823 g_rec_lines.array_anc_id_59(g_LineNumber) := g_rec_lines.array_anc_id_59(p_line_num);
13824 g_rec_lines.array_anc_id_60(g_LineNumber) := g_rec_lines.array_anc_id_60(p_line_num);
13825 g_rec_lines.array_anc_id_61(g_LineNumber) := g_rec_lines.array_anc_id_61(p_line_num);
13826 g_rec_lines.array_anc_id_62(g_LineNumber) := g_rec_lines.array_anc_id_62(p_line_num);
13827 g_rec_lines.array_anc_id_63(g_LineNumber) := g_rec_lines.array_anc_id_63(p_line_num);
13828 g_rec_lines.array_anc_id_64(g_LineNumber) := g_rec_lines.array_anc_id_64(p_line_num);
13829 g_rec_lines.array_anc_id_65(g_LineNumber) := g_rec_lines.array_anc_id_65(p_line_num);
13830 g_rec_lines.array_anc_id_66(g_LineNumber) := g_rec_lines.array_anc_id_66(p_line_num);
13831 g_rec_lines.array_anc_id_67(g_LineNumber) := g_rec_lines.array_anc_id_67(p_line_num);
13832 g_rec_lines.array_anc_id_68(g_LineNumber) := g_rec_lines.array_anc_id_68(p_line_num);
13833 g_rec_lines.array_anc_id_69(g_LineNumber) := g_rec_lines.array_anc_id_69(p_line_num);
13834 g_rec_lines.array_anc_id_70(g_LineNumber) := g_rec_lines.array_anc_id_70(p_line_num);
13835 g_rec_lines.array_anc_id_71(g_LineNumber) := g_rec_lines.array_anc_id_71(p_line_num);
13836 g_rec_lines.array_anc_id_72(g_LineNumber) := g_rec_lines.array_anc_id_72(p_line_num);
13837 g_rec_lines.array_anc_id_73(g_LineNumber) := g_rec_lines.array_anc_id_73(p_line_num);
13838 g_rec_lines.array_anc_id_74(g_LineNumber) := g_rec_lines.array_anc_id_74(p_line_num);
13839 g_rec_lines.array_anc_id_75(g_LineNumber) := g_rec_lines.array_anc_id_75(p_line_num);
13840 g_rec_lines.array_anc_id_76(g_LineNumber) := g_rec_lines.array_anc_id_76(p_line_num);
13841 g_rec_lines.array_anc_id_77(g_LineNumber) := g_rec_lines.array_anc_id_77(p_line_num);
13842 g_rec_lines.array_anc_id_78(g_LineNumber) := g_rec_lines.array_anc_id_78(p_line_num);
13843 g_rec_lines.array_anc_id_79(g_LineNumber) := g_rec_lines.array_anc_id_79(p_line_num);
13844 g_rec_lines.array_anc_id_80(g_LineNumber) := g_rec_lines.array_anc_id_80(p_line_num);
13845 g_rec_lines.array_anc_id_81(g_LineNumber) := g_rec_lines.array_anc_id_81(p_line_num);
13846 g_rec_lines.array_anc_id_82(g_LineNumber) := g_rec_lines.array_anc_id_82(p_line_num);
13847 g_rec_lines.array_anc_id_83(g_LineNumber) := g_rec_lines.array_anc_id_83(p_line_num);
13848 g_rec_lines.array_anc_id_84(g_LineNumber) := g_rec_lines.array_anc_id_84(p_line_num);
13849 g_rec_lines.array_anc_id_85(g_LineNumber) := g_rec_lines.array_anc_id_85(p_line_num);
13850 g_rec_lines.array_anc_id_86(g_LineNumber) := g_rec_lines.array_anc_id_86(p_line_num);
13851 g_rec_lines.array_anc_id_87(g_LineNumber) := g_rec_lines.array_anc_id_87(p_line_num);
13852 g_rec_lines.array_anc_id_88(g_LineNumber) := g_rec_lines.array_anc_id_88(p_line_num);
13853 g_rec_lines.array_anc_id_89(g_LineNumber) := g_rec_lines.array_anc_id_89(p_line_num);
13854 g_rec_lines.array_anc_id_90(g_LineNumber) := g_rec_lines.array_anc_id_90(p_line_num);
13855 g_rec_lines.array_anc_id_91(g_LineNumber) := g_rec_lines.array_anc_id_91(p_line_num);
13856 g_rec_lines.array_anc_id_92(g_LineNumber) := g_rec_lines.array_anc_id_92(p_line_num);
13857 g_rec_lines.array_anc_id_93(g_LineNumber) := g_rec_lines.array_anc_id_93(p_line_num);
13858 g_rec_lines.array_anc_id_94(g_LineNumber) := g_rec_lines.array_anc_id_94(p_line_num);
13859 g_rec_lines.array_anc_id_95(g_LineNumber) := g_rec_lines.array_anc_id_95(p_line_num);
13860 g_rec_lines.array_anc_id_96(g_LineNumber) := g_rec_lines.array_anc_id_96(p_line_num);
13861 g_rec_lines.array_anc_id_97(g_LineNumber) := g_rec_lines.array_anc_id_97(p_line_num);
13862 g_rec_lines.array_anc_id_98(g_LineNumber) := g_rec_lines.array_anc_id_98(p_line_num);
13863 g_rec_lines.array_anc_id_99(g_LineNumber) := g_rec_lines.array_anc_id_99(p_line_num);
13864 g_rec_lines.array_anc_id_100(g_LineNumber) := g_rec_lines.array_anc_id_100(p_line_num);
13865 --
13866 --
13867 g_rec_lines.array_event_number(g_LineNumber) := g_rec_lines.array_event_number(p_line_num);
13868 g_rec_lines.array_entity_id(g_LineNumber) := g_rec_lines.array_entity_id(p_line_num);
13869 g_rec_lines.array_reversal_code(g_LineNumber) := g_rec_lines.array_reversal_code(p_line_num);
13870 g_rec_lines.array_balance_type_code(g_LineNumber) := g_rec_lines.array_balance_type_code(p_line_num);
13871 g_rec_lines.array_ledger_id(g_LineNumber) := g_rec_lines.array_ledger_id(p_line_num);
13872 --
13873 -- business flow
13874 --
13875 g_rec_lines.array_business_method_code(g_LineNumber) := g_rec_lines.array_business_method_code(p_line_num);
13876 g_rec_lines.array_business_class_code(g_LineNumber) := g_rec_lines.array_business_class_code(p_line_num);
13877 g_rec_lines.array_inherit_desc_flag(g_LineNumber) := g_rec_lines.array_inherit_desc_flag(p_line_num);
13878 g_rec_lines.array_bflow_application_id(g_LineNumber) := g_rec_lines.array_bflow_application_id(p_line_num);
13879
13880 g_rec_lines.array_bflow_entity_code(g_LineNumber) := g_rec_lines.array_bflow_entity_code(p_line_num);
13881 g_rec_lines.array_bflow_source_id_num_1(g_LineNumber) := g_rec_lines.array_bflow_source_id_num_1(p_line_num);
13882 g_rec_lines.array_bflow_source_id_num_2(g_LineNumber) := g_rec_lines.array_bflow_source_id_num_2(p_line_num);
13883 g_rec_lines.array_bflow_source_id_num_3(g_LineNumber) := g_rec_lines.array_bflow_source_id_num_3(p_line_num);
13884 g_rec_lines.array_bflow_source_id_num_4(g_LineNumber) := g_rec_lines.array_bflow_source_id_num_4(p_line_num);
13885 g_rec_lines.array_bflow_source_id_char_1(g_LineNumber) := g_rec_lines.array_bflow_source_id_char_1(p_line_num);
13886 g_rec_lines.array_bflow_source_id_char_2(g_LineNumber) := g_rec_lines.array_bflow_source_id_char_2(p_line_num);
13887 g_rec_lines.array_bflow_source_id_char_3(g_LineNumber) := g_rec_lines.array_bflow_source_id_char_3(p_line_num);
13888 g_rec_lines.array_bflow_source_id_char_4(g_LineNumber) := g_rec_lines.array_bflow_source_id_char_4(p_line_num);
13889
13890 g_rec_lines.array_bflow_distribution_type(g_LineNumber):= g_rec_lines.array_bflow_distribution_type(p_line_num);
13891 g_rec_lines.array_bflow_dist_id_num_1(g_LineNumber) := g_rec_lines.array_bflow_dist_id_num_1(p_line_num);
13892 g_rec_lines.array_bflow_dist_id_num_2(g_LineNumber) := g_rec_lines.array_bflow_dist_id_num_2(p_line_num);
13893 g_rec_lines.array_bflow_dist_id_num_3(g_LineNumber) := g_rec_lines.array_bflow_dist_id_num_3(p_line_num);
13894 g_rec_lines.array_bflow_dist_id_num_4(g_LineNumber) := g_rec_lines.array_bflow_dist_id_num_4(p_line_num);
13895 g_rec_lines.array_bflow_dist_id_num_5(g_LineNumber) := g_rec_lines.array_bflow_dist_id_num_5(p_line_num);
13896 g_rec_lines.array_bflow_dist_id_char_1(g_LineNumber) := g_rec_lines.array_bflow_dist_id_char_1(p_line_num);
13897 g_rec_lines.array_bflow_dist_id_char_2(g_LineNumber) := g_rec_lines.array_bflow_dist_id_char_2(p_line_num);
13898 g_rec_lines.array_bflow_dist_id_char_3(g_LineNumber) := g_rec_lines.array_bflow_dist_id_char_3(p_line_num);
13899 g_rec_lines.array_bflow_dist_id_char_4(g_LineNumber) := g_rec_lines.array_bflow_dist_id_char_4(p_line_num);
13900 g_rec_lines.array_bflow_dist_id_char_5(g_LineNumber) := g_rec_lines.array_bflow_dist_id_char_5(p_line_num);
13901
13902 g_rec_lines.array_override_acctd_amt_flag(g_LineNumber) := g_rec_lines.array_override_acctd_amt_flag(p_line_num);
13903
13904
13905 g_rec_lines.array_bflow_applied_to_amt(g_LineNumber) := g_rec_lines.array_bflow_applied_to_amt(p_line_num); -- 5132302
13906 --
13907 -- Allocation Attributes
13908 --
13909 g_rec_lines.array_alloct_application_id(g_LineNumber) := g_rec_lines.array_alloct_application_id(p_line_num);
13910
13911 g_rec_lines.array_alloct_entity_code(g_LineNumber) := g_rec_lines.array_alloct_entity_code(p_line_num);
13912 g_rec_lines.array_alloct_source_id_num_1(g_LineNumber) := g_rec_lines.array_alloct_source_id_num_1(p_line_num);
13913 g_rec_lines.array_alloct_source_id_num_2(g_LineNumber) := g_rec_lines.array_alloct_source_id_num_2(p_line_num);
13914 g_rec_lines.array_alloct_source_id_num_3(g_LineNumber) := g_rec_lines.array_alloct_source_id_num_3(p_line_num);
13915 g_rec_lines.array_alloct_source_id_num_4(g_LineNumber) := g_rec_lines.array_alloct_source_id_num_4(p_line_num);
13916 g_rec_lines.array_alloct_source_id_char_1(g_LineNumber) := g_rec_lines.array_alloct_source_id_char_1(p_line_num);
13917 g_rec_lines.array_alloct_source_id_char_2(g_LineNumber) := g_rec_lines.array_alloct_source_id_char_2(p_line_num);
13918 g_rec_lines.array_alloct_source_id_char_3(g_LineNumber) := g_rec_lines.array_alloct_source_id_char_3(p_line_num);
13919 g_rec_lines.array_alloct_source_id_char_4(g_LineNumber) := g_rec_lines.array_alloct_source_id_char_4(p_line_num);
13920
13921 g_rec_lines.array_alloct_distribution_type(g_LineNumber):= g_rec_lines.array_alloct_distribution_type(p_line_num);
13922 g_rec_lines.array_alloct_dist_id_num_1(g_LineNumber) := g_rec_lines.array_alloct_dist_id_num_1(p_line_num);
13923 g_rec_lines.array_alloct_dist_id_num_2(g_LineNumber) := g_rec_lines.array_alloct_dist_id_num_2(p_line_num);
13924 g_rec_lines.array_alloct_dist_id_num_3(g_LineNumber) := g_rec_lines.array_alloct_dist_id_num_3(p_line_num);
13925 g_rec_lines.array_alloct_dist_id_num_4(g_LineNumber) := g_rec_lines.array_alloct_dist_id_num_4(p_line_num);
13926 g_rec_lines.array_alloct_dist_id_num_5(g_LineNumber) := g_rec_lines.array_alloct_dist_id_num_5(p_line_num);
13927 g_rec_lines.array_alloct_dist_id_char_1(g_LineNumber) := g_rec_lines.array_alloct_dist_id_char_1(p_line_num);
13928 g_rec_lines.array_alloct_dist_id_char_2(g_LineNumber) := g_rec_lines.array_alloct_dist_id_char_2(p_line_num);
13929 g_rec_lines.array_alloct_dist_id_char_3(g_LineNumber) := g_rec_lines.array_alloct_dist_id_char_3(p_line_num);
13930 g_rec_lines.array_alloct_dist_id_char_4(g_LineNumber) := g_rec_lines.array_alloct_dist_id_char_4(p_line_num);
13931 g_rec_lines.array_alloct_dist_id_char_5(g_LineNumber) := g_rec_lines.array_alloct_dist_id_char_5(p_line_num);
13932 -- =================================================================================================
13933 --
13934 -- for 7029018
13935 IF NVL(g_rec_lines.array_balance_type_code(g_LineNumber),'N')='E' THEN
13936 IF ((NVL(g_rec_lines.array_actual_upg_option(p_line_num), 'N') = 'Y') OR
13937 (NVL(g_rec_lines.array_enc_upg_option(p_line_num), 'N') = 'Y')) THEN
13938 --temp fix for Period End Accrual Encumbrance for Upgraded Entries.
13939 g_rec_lines.array_encumbrance_type_id(g_LineNumber) := nvl(g_rec_lines.array_upg_cr_enc_type_id(p_line_num),
13940 g_rec_lines.array_upg_dr_enc_type_id(p_line_num));
13941 IF (C_LEVEL_EVENT >= g_log_level) THEN
13942 trace
13943 (p_msg => 'Period End Accrual Encumbrance for Upgraded Entries'
13944 ,p_level => C_LEVEL_EVENT
13945 ,p_module => l_log_module);
13946 END IF;
13947 END IF;
13948 END IF;
13949
13950 --
13951 -- Validate line accounting attributes
13952 --
13953 IF g_rec_lines.array_mpa_option(g_LineNumber) NOT IN ('Y','N') THEN
13954 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
13955 xla_accounting_err_pkg.build_message
13956 (p_appli_s_name => 'XLA'
13957 ,p_msg_name => 'XLA_MA_INVALID_OPTION' -- 4262811a
13958 ,p_token_1 => 'LINE_NUMBER'
13959 ,p_value_1 => g_ExtractLine
13960 ,p_token_2 => 'ACCOUNTING_SOURCE_NAME'
13961 ,p_value_2 => XLA_AE_SOURCES_PKG.GetAccountingSourceName('MULTIPERIOD_OPTION')
13962 --(g_rec_lines.array_acct_attr_code(p_line_num))
13963 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13964 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13965 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
13966 END IF;
13967
13968 IF g_rec_lines.array_sys_distribution_type(g_LineNumber) IS NULL THEN
13969 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
13970 xla_accounting_err_pkg.build_message
13971 (p_appli_s_name => 'XLA'
13972 ,p_msg_name => 'XLA_AP_NO_DIST_LINK_TYPE'
13973 ,p_token_1 => 'LINE_NUMBER'
13974 ,p_value_1 => g_ExtractLine
13975 ,p_token_2 => 'ACCOUNTING_SOURCE_NAME'
13976 ,p_value_2 => XLA_AE_SOURCES_PKG.GetAccountingSourceName('DISTRIBUTION_TYPE')
13977 --(p_rec_acct_attrs.array_acct_attr_code(i))
13978 ,p_token_3 => 'SOURCE_NAME'
13979 ,p_value_3 => NULL
13980 ,p_token_4 => 'LINE_TYPE_NAME'
13981 ,p_value_4 => XLA_AE_SOURCES_PKG.GetComponentName (
13982 g_accounting_line.component_type
13983 , g_accounting_line.accounting_line_code
13984 , g_accounting_line.accounting_line_type_code
13985 , g_accounting_line.accounting_line_appl_id
13986 , g_accounting_line.amb_context_code
13987 , g_accounting_line.entity_code
13988 , g_accounting_line.event_class_code
13989 )
13990 ,p_token_5 => 'OWNER'
13991 ,p_value_5 => xla_lookups_pkg.get_meaning(
13992 'XLA_OWNER_TYPE'
13993 , g_rec_lines.array_accounting_line_type(g_LineNumber)
13994 )
13995 ,p_token_6 => 'PRODUCT_NAME'
13996 ,p_value_6 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13997 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13998 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13999 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
14000 END IF;
14001
14002 ----------------------------------------------
14003 -- 4623638 This change is on top of 120.85
14004 ----------------------------------------------
14005 IF nvl(g_rec_lines.array_calculate_acctd_flag(g_LineNumber), 'N')= 'N' OR
14006 (nvl(g_rec_lines.array_calculate_g_l_flag(g_LineNumber), 'N')='N' AND
14007 g_rec_lines.array_natural_side_code(g_LineNumber) = 'G') THEN
14008
14009 IF g_rec_lines.array_ledger_amount(g_LineNumber) IS NULL THEN
14010 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
14011 xla_accounting_err_pkg.build_message
14012 (p_appli_s_name => 'XLA'
14013 ,p_msg_name => 'XLA_AP_NO_LEDGER_AMOUNT'
14014 ,p_token_1 => 'LINE_NUMBER'
14015 ,p_value_1 => g_ExtractLine
14016 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14017 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14018 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
14019 END IF;
14020
14021 END IF;
14022
14023 EXCEPTION
14024 --
14025 WHEN xla_exceptions_pkg.application_exception THEN
14026 RAISE;
14027 WHEN OTHERS THEN
14028 xla_exceptions_pkg.raise_message
14029 (p_location => 'xla_ae_lines_pkg.CopyLineInfo');
14030 --
14031 END CopyLineInfo;
14032
14033 /*======================================================================+
14034 | |
14035 | Public Procedure- Business Flow Upgrade Entries |
14036 | |
14037 | |
14038 +======================================================================*/
14039
14040 PROCEDURE BflowUpgEntry
14041 (p_business_method_code IN VARCHAR2
14042 ,p_business_class_code IN VARCHAR2
14043 ,p_balance_type IN VARCHAR2) IS
14044 l_ledger_ccy VARCHAR2(30);
14045 l_ccid NUMBER;
14046 l_enc_type_id NUMBER;
14047 l_entered_amt NUMBER;
14048 l_accounted_amt NUMBER;
14049 l_entered_curr VARCHAR2(30);
14050 l_xchange_rate NUMBER;
14051 l_xchange_type VARCHAR2(30);
14052 l_xchange_date DATE;
14053
14054 l_log_module VARCHAR2(240); -- Bug 4922099
14055
14056 BEGIN
14057 -- Bug 4922099
14058 IF g_log_enabled THEN
14059 l_log_module := C_DEFAULT_MODULE || '.BflowUpgEntry';
14060 END IF;
14061
14062 g_rec_lines.array_business_method_code(g_LineNumber) := p_business_method_code;
14063
14064 -- Bug 4922099
14065 IF ((g_rec_lines.array_actual_upg_option(g_LineNumber) = 'O' OR g_rec_lines.array_enc_upg_option(g_LineNumber) = 'O')
14066 AND g_rec_lines.array_acc_reversal_option(g_LineNumber) IN ('Y', 'B')) THEN
14067 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
14068 xla_accounting_err_pkg.build_message
14069 (p_appli_s_name => 'XLA'
14070 ,p_msg_name => 'XLA_UPG_OVERRIDE_NA_REVERSAL'
14071 ,p_token_1 => 'LINE_NUMBER'
14072 ,p_value_1 => g_ExtractLine
14073 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14074 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14075 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
14076
14077 IF (C_LEVEL_ERROR >= g_log_level) THEN
14078 trace
14079 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_NA_REVERSAL'
14080 ,p_level => C_LEVEL_ERROR
14081 ,p_module => l_log_module);
14082 END IF;
14083 END IF;
14084
14085
14086 ------------------------------------------------
14087 -- Validate the applied-to accounting attributes
14088 ------------------------------------------------
14089 ValidateBFlowLinks;
14090
14091 -------------------------------------------------
14092 -- Reset values for certain fields in g_rec_lines
14093 -------------------------------------------------
14094
14095 IF p_balance_type = 'A' THEN
14096 IF g_rec_lines.array_natural_side_code(g_LineNumber) = C_CREDIT THEN
14097 -- Bug 4922099
14098 IF (NVL(g_rec_lines.array_actual_upg_option(g_LineNumber), 'N') = 'Y') THEN
14099 l_ccid := g_rec_lines.array_actual_upg_cr_ccid(g_LineNumber);
14100 END IF;
14101 l_enc_type_id := NULL;
14102 l_entered_amt := g_rec_lines.array_actual_upg_cr_ent_amt(g_LineNumber);
14103 l_accounted_amt := g_rec_lines.array_actual_upg_cr_ledger_amt(g_LineNumber);
14104 l_entered_curr := g_rec_lines.array_actual_upg_cr_ent_curr(g_LineNumber);
14105 l_xchange_rate := g_rec_lines.array_actual_upg_cr_xrate(g_LineNumber);
14106 l_xchange_type := g_rec_lines.array_actual_upg_cr_xrate_type(g_LineNumber);
14107 l_xchange_date := g_rec_lines.array_actual_upg_cr_xdate(g_LineNumber);
14108 ELSE
14109 -- Bug 4922099
14110 IF (NVL(g_rec_lines.array_actual_upg_option(g_LineNumber), 'N') = 'Y') THEN
14111 l_ccid := g_rec_lines.array_actual_upg_dr_ccid(g_LineNumber);
14112 END IF;
14113 l_enc_type_id := NULL;
14114 l_entered_amt := g_rec_lines.array_actual_upg_dr_ent_amt(g_LineNumber);
14115 l_accounted_amt := g_rec_lines.array_actual_upg_dr_ledger_amt(g_LineNumber);
14116 l_entered_curr := g_rec_lines.array_actual_upg_dr_ent_curr(g_LineNumber);
14117 l_xchange_rate := g_rec_lines.array_actual_upg_dr_xrate(g_LineNumber);
14118 l_xchange_type := g_rec_lines.array_actual_upg_dr_xrate_type(g_LineNumber);
14119 l_xchange_date := g_rec_lines.array_actual_upg_dr_xdate(g_LineNumber);
14120 END IF;
14121 ELSIF p_balance_type = 'E' THEN
14122 IF g_rec_lines.array_natural_side_code(g_LineNumber) = C_CREDIT THEN
14123 -- Bug 4922099
14124 IF (NVL(g_rec_lines.array_enc_upg_option(g_LineNumber), 'N') = 'Y') THEN
14125 l_ccid := g_rec_lines.array_enc_upg_cr_ccid(g_LineNumber);
14126 END IF;
14127 l_enc_type_id := g_rec_lines.array_upg_cr_enc_type_id(g_LineNumber);
14128 l_entered_amt := g_rec_lines.array_enc_upg_cr_ent_amt(g_LineNumber);
14129 l_accounted_amt := g_rec_lines.array_enc_upg_cr_ledger_amt(g_LineNumber);
14130 l_entered_curr := g_rec_lines.array_enc_upg_cr_ent_curr(g_LineNumber);
14131 ELSE
14132 -- Bug 4922099
14133 IF (NVL(g_rec_lines.array_enc_upg_option(g_LineNumber), 'N') = 'Y') THEN
14134 l_ccid := g_rec_lines.array_enc_upg_dr_ccid(g_LineNumber);
14135 END IF;
14136 l_enc_type_id := g_rec_lines.array_upg_dr_enc_type_id(g_LineNumber);
14137 l_entered_amt := g_rec_lines.array_enc_upg_dr_ent_amt(g_LineNumber);
14138 l_accounted_amt := g_rec_lines.array_enc_upg_dr_ledger_amt(g_LineNumber);
14139 l_entered_curr := g_rec_lines.array_enc_upg_dr_ent_curr(g_LineNumber);
14140 END IF;
14141
14142 g_override_acctd_amt_flag := 'Y';
14143 END IF;
14144
14145 g_rec_lines.array_encumbrance_type_id(g_LineNumber) := l_enc_type_id;
14146 g_rec_lines.array_entered_amount(g_LineNumber) := l_entered_amt;
14147 g_rec_lines.array_ledger_amount(g_LineNumber) := l_accounted_amt;
14148 g_rec_lines.array_currency_code(g_LineNumber) := l_entered_curr;
14149 g_rec_lines.array_curr_conversion_date(g_LineNumber):= l_xchange_date;
14150 g_rec_lines.array_curr_conversion_rate(g_LineNumber):= l_xchange_rate;
14151 g_rec_lines.array_curr_conversion_type(g_LineNumber):= l_xchange_type;
14152 -- 5845547
14153 g_rec_lines.array_party_type_code(g_LineNumber) := g_rec_lines.array_upg_party_type_code(g_LineNumber);
14154 g_rec_lines.array_party_id(g_LineNumber) := g_rec_lines.array_upg_party_id(g_LineNumber);
14155 g_rec_lines.array_party_site_id(g_LineNumber) := g_rec_lines.array_upg_party_site_id(g_LineNumber);
14156
14157 -- Bug 4922099
14158 IF ((NVL(g_rec_lines.array_actual_upg_option(g_LineNumber), 'N') = 'Y') OR
14159 (NVL(g_rec_lines.array_enc_upg_option(g_LineNumber), 'N') = 'Y')) THEN
14160 xla_ae_lines_pkg.set_ccid(
14161 p_code_combination_id => l_ccid
14162 , p_value_type_code => 'S' --l_adr_value_type_code
14163 , p_transaction_coa_id => NULL --l_adr_transaction_coa_id
14164 , p_accounting_coa_id => NULL --l_adr_accounting_coa_id
14165 , p_adr_code => NULL --'SS_TEST'
14166 , p_adr_type_code => NULL --'C'
14167 , p_component_type => g_accounting_line.component_type --l_component_type
14168 , p_component_code => g_accounting_line.accounting_line_code --l_component_code
14169 , p_component_type_code => g_accounting_line.accounting_line_type_code --l_component_type_code
14170 , p_component_appl_id => g_accounting_line.accounting_line_appl_id --l_component_appl_id
14171 , p_amb_context_code => g_accounting_line.amb_context_code --l_amb_context_code
14172 , p_side => 'NA'
14173 );
14174 END IF;
14175
14176 END BflowUpgEntry;
14177
14178 PROCEDURE CreateGainOrLossLine
14179 (p_event_id IN NUMBER
14180 ,p_application_id IN NUMBER
14181 ,p_amb_context_code IN VARCHAR2
14182 ,p_entity_code IN VARCHAR2
14183 ,p_event_class_code IN VARCHAR2
14184 ,p_event_type_code IN VARCHAR2
14185 ,p_gain_ccid IN NUMBER
14186 ,p_loss_ccid IN NUMBER
14187 /*
14188 ,p_rounding_class IN VARCHAR2
14189 ,p_doc_rounding_level IN VARCHAR2
14190 ,p_merge_duplicate_code IN VARCHAR2
14191 ,p_gl_transfer_mode_code IN VARCHAR2
14192 */
14193 ,p_distribution_id_char_1 IN VARCHAR2
14194 ,p_distribution_id_char_2 IN VARCHAR2
14195 ,p_distribution_id_char_3 IN VARCHAR2
14196 ,p_distribution_id_char_4 IN VARCHAR2
14197 ,p_distribution_id_char_5 IN VARCHAR2
14198 ,p_distribution_id_num_1 IN NUMBER
14199 ,p_distribution_id_num_2 IN NUMBER
14200 ,p_distribution_id_num_3 IN NUMBER
14201 ,p_distribution_id_num_4 IN NUMBER
14202 ,p_distribution_id_num_5 IN NUMBER
14203 ,p_distribution_type IN VARCHAR2
14204 ,p_gl_date IN DATE
14205 ,p_gain_loss_ref IN VARCHAR2
14206 ,p_balance_type_flag IN VARCHAR2
14207 ) IS
14208 l_ledger_ccy VARCHAR2(30);
14209 l_ccid NUMBER;
14210 l_enc_type_id NUMBER;
14211 l_entered_amt NUMBER;
14212 l_accounted_amt NUMBER;
14213 l_entered_curr VARCHAR2(30);
14214 l_ae_header_id NUMBER;
14215 l_Idx NUMBER;
14216
14217 l_log_module VARCHAR2(240);
14218 -- extract line num is in g_ExtractLine
14219 BEGIN
14220 IF g_log_enabled THEN
14221 l_log_module := C_DEFAULT_MODULE || '.CreateGainOrLossLine';
14222 END IF;
14223 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14224 trace
14225 (p_msg => 'BEGIN of CreateGainOrLossLine'
14226 ,p_level => C_LEVEL_PROCEDURE
14227 ,p_module => l_log_module);
14228 trace
14229 (p_msg => 'p_gain_ccid:'||to_char(p_gain_ccid)||' p_loss_ccid:'||to_char(p_loss_ccid)
14230 ,p_level => C_LEVEL_PROCEDURE
14231 ,p_module => l_log_module);
14232 END IF;
14233
14234 -- this need to be called before SetNewLine
14235 SetNewLine;
14236
14237 set_ae_header_id (p_ae_header_id => p_event_id ,
14238 p_header_num => 0);
14239
14240 -- this is a gain/loss line
14241 l_ae_header_id := SetAcctLineOption(
14242 p_natural_side_code => 'G'
14243 , p_gain_or_loss_flag => 'Y'
14244 , p_gl_transfer_mode_code => 'D' -- always use detail
14245 , p_acct_entry_type_code => 'A'
14246 , p_switch_side_flag => 'Y'
14247 , p_merge_duplicate_code => 'A' --p_merge_duplicate_code
14248 );
14249 SetAcctLineType
14250 (p_component_type => 'AUTO_GEN_GAIN_LOSS'
14251 ,p_event_type_code => p_event_type_code
14252 ,p_line_definition_owner_code => 'O'
14253 ,p_line_definition_code => 'AUTO_GEN_GAIN_LOSS'
14254 ,p_accounting_line_code => 'AUTO_GEN_GAIN_LOSS'
14255 ,p_accounting_line_type_code => 'S'
14256 ,p_accounting_line_appl_id => p_application_id
14257 ,p_amb_context_code => p_amb_context_code
14258 ,p_entity_code => p_entity_code
14259 ,p_event_class_code => p_event_class_code);
14260 SetAcctClass(
14261 p_accounting_class_code => 'DUMMY_EXCHANGE_GAIN_LOSS_DUMMY'
14262 -- p_accounting_class_code => 'EXCHANGE_GAIN_LOSS'
14263 , p_ae_header_id => l_ae_header_id
14264 );
14265
14266 g_rec_lines.array_calculate_acctd_flag(g_LineNumber) := 'Y';
14267 g_rec_lines.array_calculate_g_l_flag(g_LineNumber) := 'Y';
14268 g_rec_lines.array_balance_type_code(g_LineNumber) := p_balance_type_flag;
14269
14270 g_rec_lines.array_ledger_id(g_LineNumber) :=
14271 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14272
14273 g_rec_lines.array_gl_date(g_LineNumber) := p_gl_date;
14274
14275 g_rec_lines.array_distribution_id_char_1(g_LineNumber) := p_distribution_id_char_1;
14276 g_rec_lines.array_distribution_id_char_2(g_LineNumber) := p_distribution_id_char_2;
14277 g_rec_lines.array_distribution_id_char_3(g_LineNumber) := p_distribution_id_char_3;
14278 g_rec_lines.array_distribution_id_char_4(g_LineNumber) := p_distribution_id_char_4;
14279 g_rec_lines.array_distribution_id_char_5(g_LineNumber) := p_distribution_id_char_5;
14280 g_rec_lines.array_distribution_id_num_1(g_LineNumber) := p_distribution_id_num_1;
14281 g_rec_lines.array_distribution_id_num_2(g_LineNumber) := p_distribution_id_num_2;
14282 g_rec_lines.array_distribution_id_num_3(g_LineNumber) := p_distribution_id_num_3;
14283 g_rec_lines.array_distribution_id_num_4(g_LineNumber) := p_distribution_id_num_4;
14284 g_rec_lines.array_distribution_id_num_5(g_LineNumber) := p_distribution_id_num_5;
14285 g_rec_lines.array_sys_distribution_type(g_LineNumber) := p_distribution_type;
14286 g_rec_lines.array_sys_distribution_type(g_LineNumber) := p_distribution_type;
14287 g_rec_lines.array_gain_or_loss_ref(g_LineNumber) := p_gain_loss_ref;
14288 g_rec_lines.array_currency_code(g_LineNumber) :=
14289 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.currency_code;
14290
14291 IF(p_gain_ccid is null or p_gain_ccid = -1 ) THEN
14292 g_rec_lines.array_ccid(g_LineNumber) := -1;
14293 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
14294 ELSIF( XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.target_coa_id <>
14295 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.source_coa_id ) THEN
14296 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14297 trace
14298 (p_msg => 'credit map here, sl_coa_mapping_id is:'||XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.sl_coa_mapping_id
14299 ,p_level => C_LEVEL_PROCEDURE
14300 ,p_module => l_log_module);
14301 trace
14302 (p_msg => 'map here, ledger_id is:'||XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14303 ,p_level => C_LEVEL_PROCEDURE
14304 ,p_module => l_log_module);
14305 trace
14306 (p_msg => 'map here, array_ae_header_id is:'||g_rec_lines.array_ae_header_id(g_LineNumber)
14307 ,p_level => C_LEVEL_PROCEDURE
14308 ,p_module => l_log_module);
14309 trace
14310 (p_msg => 'map here, temp_line_num is:'||g_rec_lines.array_line_num(g_LineNumber)
14311 ,p_level => C_LEVEL_PROCEDURE
14312 ,p_module => l_log_module);
14313 trace
14314 (p_msg => 'map here, ccid is:'||p_gain_ccid
14315 ,p_level => C_LEVEL_PROCEDURE
14316 ,p_module => l_log_module);
14317 END IF;
14318 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
14319 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.sl_coa_mapping_id IS NULL THEN
14320 null;
14321 ELSE
14322 l_Idx := NVL(g_transaction_accounts.array_ae_header_id.COUNT,0) + 1;
14323 g_transaction_accounts.array_line_num(l_Idx) := l_Idx ;
14324 g_transaction_accounts.array_ae_header_id(l_Idx) := g_rec_lines.array_ae_header_id(g_LineNumber);
14325 g_transaction_accounts.array_temp_line_num(l_Idx) := g_rec_lines.array_line_num(g_LineNumber);
14326 g_transaction_accounts.array_code_combination_id (l_Idx) := p_gain_ccid;
14327 g_transaction_accounts.array_segment(l_Idx) := NULL;
14328 g_transaction_accounts.array_from_segment_code(l_Idx) := NULL;
14329 g_transaction_accounts.array_to_segment_code(l_Idx) := NULL;
14330 g_transaction_accounts.array_processing_status_code(l_Idx) := C_MAP_CCID;
14331 g_transaction_accounts.array_side_code(l_Idx) := 'CREDIT';
14332 END IF;
14333 ELSE
14334 g_rec_lines.array_ccid(g_LineNumber) := p_gain_ccid;
14335 g_rec_lines.array_ccid_flag(g_LineNumber) := C_CREATED;
14336 END IF;
14337
14338 IF(p_loss_ccid is null or p_loss_ccid = -1) THEN
14339 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
14340 g_rec_lines.alt_array_ccid_flag(g_LineNumber) := C_INVALID;
14341 ELSIF( XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.target_coa_id <>
14342 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.source_coa_id ) THEN
14343
14344 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14345 trace
14346 (p_msg => 'debit map here, sl_coa_mapping_id is:'||XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.sl_coa_mapping_id
14347 ,p_level => C_LEVEL_PROCEDURE
14348 ,p_module => l_log_module);
14349 trace
14350 (p_msg => 'map here, ledger_id is:'||XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14351 ,p_level => C_LEVEL_PROCEDURE
14352 ,p_module => l_log_module);
14353 trace
14354 (p_msg => 'map here, array_ae_header_id is:'||g_rec_lines.array_ae_header_id(g_LineNumber)
14355 ,p_level => C_LEVEL_PROCEDURE
14356 ,p_module => l_log_module);
14357 trace
14358 (p_msg => 'map here, temp_line_num is:'||g_rec_lines.array_line_num(g_LineNumber)
14359 ,p_level => C_LEVEL_PROCEDURE
14360 ,p_module => l_log_module);
14361 trace
14362 (p_msg => 'map here, ccid is:'||p_loss_ccid
14363 ,p_level => C_LEVEL_PROCEDURE
14364 ,p_module => l_log_module);
14365 END IF;
14366 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
14367 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.sl_coa_mapping_id IS NULL THEN
14368 null;
14369 ELSE
14370 l_Idx := NVL(g_transaction_accounts.array_ae_header_id.COUNT,0) + 1;
14371 g_transaction_accounts.array_line_num(l_Idx) := l_Idx ;
14372 g_transaction_accounts.array_ae_header_id(l_Idx) := g_rec_lines.array_ae_header_id(g_LineNumber);
14373 g_transaction_accounts.array_temp_line_num(l_Idx) := g_rec_lines.array_line_num(g_LineNumber);
14374 g_transaction_accounts.array_code_combination_id (l_Idx) := p_loss_ccid;
14375 g_transaction_accounts.array_segment(l_Idx) := NULL;
14376 g_transaction_accounts.array_from_segment_code(l_Idx) := NULL;
14377 g_transaction_accounts.array_to_segment_code(l_Idx) := NULL;
14378 g_transaction_accounts.array_processing_status_code(l_Idx) := C_MAP_CCID;
14379 g_transaction_accounts.array_side_code(l_Idx) := 'DEBIT';
14380 END IF;
14381 ELSE
14382 g_rec_lines.alt_array_ccid(g_LineNumber) := p_loss_ccid;
14383 g_rec_lines.alt_array_ccid_flag(g_LineNumber) := C_CREATED;
14384 END IF;
14385
14386 g_rec_lines.array_entered_cr(g_LineNumber) := 0;
14387
14388 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14389 trace
14390 (p_msg => 'END of CreateGainOrLossLine'
14391 ,p_level => C_LEVEL_PROCEDURE
14392 ,p_module => l_log_module);
14393 END IF;
14394 END CreateGainOrLossLine;
14395
14396 PROCEDURE CreateGainOrLossLines
14397 (p_event_id IN NUMBER
14398 ,p_application_id IN NUMBER
14399 ,p_amb_context_code IN VARCHAR2
14400 ,p_entity_code IN VARCHAR2
14401 ,p_event_class_code IN VARCHAR2
14402 ,p_event_type_code IN VARCHAR2
14403 ,p_gain_ccid IN NUMBER
14404 ,p_loss_ccid IN NUMBER
14405 ,p_actual_flag IN VARCHAR2
14406 ,p_enc_flag IN VARCHAR2
14407 ,p_actual_g_l_ref IN VARCHAR2
14408 ,p_enc_g_l_ref IN VARCHAR2
14409 ) IS
14410 l_ledger_ccy VARCHAR2(30);
14411 l_ccid NUMBER;
14412 l_enc_type_id NUMBER;
14413 l_entered_amt NUMBER;
14414 l_accounted_amt NUMBER;
14415 l_entered_curr VARCHAR2(30);
14416 l_ae_header_id NUMBER;
14417 l_rounding_class VARCHAR2(30);
14418 l_doc_rounding_level VARCHAR2(30);
14419 l_gain_or_loss_ref VARCHAR2(30);
14420 l_merge_duplicate_code VARCHAR2(30);
14421 l_gl_transfer_mode_code VARCHAR2(30);
14422
14423 l_distribution_id_char_1 VARCHAR2(30);
14424 l_distribution_id_char_2 VARCHAR2(30);
14425 l_distribution_id_char_3 VARCHAR2(30);
14426 l_distribution_id_char_4 VARCHAR2(30);
14427 l_distribution_id_char_5 VARCHAR2(30);
14428 l_distribution_id_num_1 NUMBER;
14429 l_distribution_id_num_2 NUMBER;
14430 l_distribution_id_num_3 NUMBER;
14431 l_distribution_id_num_4 NUMBER;
14432 l_distribution_id_num_5 NUMBER;
14433 l_distribution_type VARCHAR2(30);
14434 l_gl_date DATE;
14435
14436 l_log_module VARCHAR2(240);
14437 -- extract line num is in g_ExtractLine
14438 BEGIN
14439 IF g_log_enabled THEN
14440 l_log_module := C_DEFAULT_MODULE || '.CreateGainOrLossLines';
14441 END IF;
14442 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14443 trace
14444 (p_msg => 'BEGIN of CreateGainOrLossLines'
14445 ,p_level => C_LEVEL_PROCEDURE
14446 ,p_module => l_log_module);
14447 END IF;
14448
14449 IF(p_actual_flag = 'A') THEN
14450
14451 -- this need to be called before SetNewLine
14452 l_rounding_class := g_rec_lines.array_rounding_class(g_LineNumber);
14453 l_doc_rounding_level:= g_rec_lines.array_doc_rounding_level(g_LineNumber);
14454 l_gain_or_loss_ref:= g_rec_lines.array_gain_or_loss_ref(g_LineNumber);
14455 l_merge_duplicate_code := g_rec_lines.array_merge_duplicate_code(g_LineNumber);
14456 l_gl_transfer_mode_code := g_rec_lines.array_gl_transfer_mode(g_LineNumber);
14457 l_distribution_id_char_1 := g_rec_lines.array_distribution_id_char_1(g_LineNumber);
14458 l_distribution_id_char_2 := g_rec_lines.array_distribution_id_char_2(g_LineNumber);
14459 l_distribution_id_char_3 := g_rec_lines.array_distribution_id_char_3(g_LineNumber);
14460 l_distribution_id_char_4 := g_rec_lines.array_distribution_id_char_4(g_LineNumber);
14461 l_distribution_id_char_5 := g_rec_lines.array_distribution_id_char_5(g_LineNumber);
14462 l_distribution_id_num_1 := g_rec_lines.array_distribution_id_num_1(g_LineNumber);
14463 l_distribution_id_num_2 := g_rec_lines.array_distribution_id_num_2(g_LineNumber);
14464 l_distribution_id_num_3 := g_rec_lines.array_distribution_id_num_3(g_LineNumber);
14465 l_distribution_id_num_4 := g_rec_lines.array_distribution_id_num_4(g_LineNumber);
14466 l_distribution_id_num_5 := g_rec_lines.array_distribution_id_num_5(g_LineNumber);
14467 l_distribution_type := g_rec_lines.array_sys_distribution_type(g_LineNumber);
14468 l_gl_date := g_rec_lines.array_gl_date(g_LineNumber);
14469
14470 -- need create a gain/loss for actual lines
14471 CreateGainOrLossLine
14472 (p_event_id => p_event_id
14473 ,p_application_id => p_application_id
14474 ,p_amb_context_code => p_amb_context_code
14475 ,p_entity_code => p_entity_code
14476 ,p_event_class_code => p_event_class_code
14477 ,p_event_type_code => p_event_type_code
14478 ,p_gain_ccid => p_gain_ccid
14479 ,p_loss_ccid => p_loss_ccid
14480 ,p_distribution_id_char_1 => l_distribution_id_char_1
14481 ,p_distribution_id_char_2 => l_distribution_id_char_2
14482 ,p_distribution_id_char_3 => l_distribution_id_char_3
14483 ,p_distribution_id_char_4 => l_distribution_id_char_4
14484 ,p_distribution_id_char_5 => l_distribution_id_char_5
14485 ,p_distribution_id_num_1 => l_distribution_id_num_1
14486 ,p_distribution_id_num_2 => l_distribution_id_num_2
14487 ,p_distribution_id_num_3 => l_distribution_id_num_3
14488 ,p_distribution_id_num_4 => l_distribution_id_num_4
14489 ,p_distribution_id_num_5 => l_distribution_id_num_5
14490 ,p_distribution_type => l_distribution_type
14491 ,p_gl_date => l_gl_date
14492 ,p_gain_loss_ref => p_actual_g_l_ref
14493 ,p_balance_type_flag => 'A');
14494 END IF;
14495 /*
14496
14497 IF(p_enc_flag = 'E') THEN
14498 -- need create a gain/loss for actual lines
14499 CreateGainOrLossLine
14500 (p_event_id => p_event_id
14501 ,p_application_id => p_application_id
14502 ,p_amb_context_code => p_amb_context_code
14503 ,p_entity_code => p_entity_code
14504 ,p_event_class_code => p_event_class_code
14505 ,p_event_type_code => p_event_type_code
14506 ,p_gain_ccid => p_gain_ccid
14507 ,p_loss_ccid => p_loss_ccid
14508 ,p_distribution_id_char_1 => l_distribution_id_char_1
14509 ,p_distribution_id_char_2 => l_distribution_id_char_2
14510 ,p_distribution_id_char_3 => l_distribution_id_char_3
14511 ,p_distribution_id_char_4 => l_distribution_id_char_4
14512 ,p_distribution_id_char_5 => l_distribution_id_char_5
14513 ,p_distribution_id_num_1 => l_distribution_id_num_1
14514 ,p_distribution_id_num_2 => l_distribution_id_num_2
14515 ,p_distribution_id_num_3 => l_distribution_id_num_3
14516 ,p_distribution_id_num_4 => l_distribution_id_num_4
14517 ,p_distribution_id_num_5 => l_distribution_id_num_5
14518 ,p_distribution_type => l_distribution_type
14519 ,p_gl_date => l_gl_date
14520 ,p_gain_loss_ref => p_enc_g_l_ref
14521 ,p_balance_type_flag => 'E');
14522 END IF;
14523 */
14524
14525 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14526 trace
14527 (p_msg => 'END of CreateGainOrLossLines'
14528 ,p_level => C_LEVEL_PROCEDURE
14529 ,p_module => l_log_module);
14530 END IF;
14531 END CreateGainOrLossLines;
14532
14533 --=============================================================================
14534 --
14535 --
14536 --
14537 --
14538 --
14539 --
14540 --
14541 --
14542 --
14543 --
14544 --
14545 --
14546 --
14547 --
14548 --
14549 --
14550 --
14551 --
14552 --
14553 --
14554 --
14555 --
14556 --=============================================================================
14557 --=============================================================================
14558 -- *********** Initialization routine **********
14559 --=============================================================================
14560
14561 BEGIN
14562 g_application_id := xla_accounting_cache_pkg.GetValueNum('XLA_EVENT_APPL_ID');
14563
14564 ----------------------------------------
14565 -- 4219869 Init Business Flow counts
14566 ----------------------------------------
14567 g_num_bflow_prior_entries := 0;
14568 g_num_bflow_same_entries := 0;
14569
14570 ----------------------------------------
14571 -- 5108415 Incomplete MPA
14572 ----------------------------------------
14573 g_incomplete_mpa_acc_LR := NULL;
14574 g_incomplete_mpa_acc_TR := NULL;
14575
14576 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
14577 g_log_enabled := fnd_log.test
14578 (log_level => g_log_level
14579 ,module => C_DEFAULT_MODULE);
14580
14581 IF NOT g_log_enabled THEN
14582 g_log_level := C_LEVEL_LOG_DISABLED;
14583 END IF;
14584
14585 END xla_ae_lines_pkg;