[Home] [Help]
PACKAGE BODY: APPS.XLA_AE_LINES_PKG
Source
1 PACKAGE BODY xla_ae_lines_pkg AS
2 /* $Header: xlajelns.pkb 120.237.12020000.3 2012/08/25 23:40:48 vdamerla 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 | 27-NOV-2008 VGOPISET 7581008 - Reverting C_BULK_LIMIT to 1000 from |
240 | 5000. |
241 | 29-JAN-2009 VGOPISET 7704240 - SetDebitCreditAmount changed to have |
242 | absolute BFLOW APPLIED AMOUNT when |
243 | change SIDE is used for negative |
244 | amounts passed from Subledgers. |
245 | 26-FEB-2009 VGOPISET 8277823 - Populate REF_EVENT_ID as negative |
246 | in AccountingReversal when Original |
247 | and Reversal accounted in same Run |
248 | 2-mar-2009 ssawhney 8250875 changed hint in businessflowpriorentry|
249 | cursor |
250 | 1-MAR-2009 VGOPISET 7109881 - Included new procedures like |
251 | InsertMPALineInfo,SetNullMPALineInfo |
252 | and overloaded CopyLineInfo. |
253 | 9-MAR-2009 schodava 7541615 - Procedure SetDebitCreditAmounts - |
254 | Nullified the currency conversion |
255 | type and rate if entered currency is |
256 | same as ledger currency |
257 | 02-Jun-2009 VGOPISET 8505463 - Changes in AccountingReversal for |
258 | MPA Cancellation. |
259 | 20-sep-2009 ssawhney 8773083 Modified CalculateGainLossAmounts |
260 | and 8452052 and 8920369 completely. Added hint to pick |
261 | XALG_U1 for update xla_ae_lines_gt |
262 | in SameEntry/PriorEntry |
263 | 18-Mar-2010 ssawhney 9483834 incorrect alias in the hints in CalculateGainLossAmounts |
264 | 26-Mar-2010 krsankar 8810416 Modified the currency conversion |
265 | details in FUNCTION InsertLines for |
266 | merging lines issue between Primary |
267 | and Secondary Ledgers |
268 | 30-Mar-2010 M.S.Narayanan 9352035 Changed BusinessFlowPriorEntries to store|
269 | exchange rate derived from xla_distribution_links|
270 | of upstream transactions. This derived exchange rate|
271 | is used for accounted amount calculation of downstream|
272 | transactions whose corresponding upstream|
273 | transactions are merged to zero. |
274 | transactions are merged to zero. |
275 | 06-Sep-2010 VGOPISET 9954676 Included new procedures like |
276 | SetNullMpaTrxAcctCopyInfo,InsertMpaTrxAcctCopyInfo|
277 | CopyMpaTrxAcctCopyInfo to support COA Mapping |
278 | for MPA set up in Secondary Ledger(COA Mapping) |
279 | 29-Jan-2011 VGOPISET 11671933 Changes in AccountingReversal for the |
280 | i) Change SIGN considered for ExchangeGainLoss |
281 | ii) Change SIGN considered for Transaction Revesal |
282 | in Draft Mode as well. |
283 | 02-Feb-2011 VGOPISET 11066172 Changes in BusinessFlowSameEntries to |
284 | mark all the Headers as INVALID after all dummy |
285 | lines are deleted from xla_ae_lines_gt |
286 | 18-Oct-2011 Narayanan M.S. Bug 12379106 Changes in business flow cursor|
287 | in procedure BusinessFlowPriorEntries to |
288 | include event_number when deciding the line |
289 | rank. |
290 | 11-Nov-2011 VGOPISET 13018249 changes for STAT Currency Journals in |
291 | Calculate Unrounded and GainLoss Amounts. |
292 | 17-Nov-2011 VGOPISET 13023651 Changed Parameter Names of procedures |
293 | InsertMpaTrxAcctCopyInfo and CopyMpaTrxAcctCopyInfo|
294 | 14-Dec-2011 NMIKKILI 13493286 Updated event_status_code to 'I' |
295 | in BusinessFlowPriorEntries and |
296 | BusinessFlowSameEntries procedures|
297 | 23-May-2012 NMIKKILI 13636827 Added case for ALC ledger having same|
298 | (14105252) currency at event class level |
299 +===========================================================================*/
300 --
301 --+==========================================================================+
302 --| |
303 --| |
304 --| CONSTANT |
305 --| |
306 --| |
307 --+==========================================================================+
308 --
309 C_MAXROWS CONSTANT NATURAL := 1000;
310 C_BULK_LIMIT CONSTANT NUMBER := 500; -- 5000; reverted,for bug:7581008, reverted again for bug9360982
311 --
312 --
313 -- Accounting entry type code
314 --
315 C_STANDARD CONSTANT VARCHAR2(30) := 'STANDARD';
316 C_INVALID_STATUS CONSTANT VARCHAR2(1) := 'I';
317 C_DRAFT_STATUS CONSTANT VARCHAR2(1) := 'D';
318 C_FINAL_STATUS CONSTANT VARCHAR2(1) := 'F';
319
320 -- ccid status
321 C_CREATED CONSTANT VARCHAR2(30) := 'CREATED';
322 C_PROCESSING CONSTANT VARCHAR2(30) := 'PROCESSING';
323 C_NOT_PROCESSED CONSTANT VARCHAR2(30) := 'NOT_PROCESSED';
324 C_INVALID CONSTANT VARCHAR2(30) := 'INVALID';
325
326 C_MAP_CCID CONSTANT VARCHAR2(30) := 'MAP_CCID';
327 C_MAP_QUALIFIER CONSTANT VARCHAR2(30) := 'MAP_QUALIFIER';
328 C_MAP_SEGMENT CONSTANT VARCHAR2(30) := 'MAP_SEGMENT';
329
330 --
331 C_ACTUAL CONSTANT VARCHAR2(1) := 'A';
332 C_BUDGET CONSTANT VARCHAR2(1) := 'B';
333 C_ENCUMBRANCE CONSTANT VARCHAR2(1) := 'E';
334 --
335 C_DEBIT CONSTANT VARCHAR2(1) := 'D';
336 C_CREDIT CONSTANT VARCHAR2(1) := 'C';
337 --
338 C_SWITCH CONSTANT VARCHAR2(1) := 'Y';
339 C_NO_SWITCH CONSTANT VARCHAR2(1) := 'N';
340 --
341 C_ALL CONSTANT VARCHAR2(1) := 'A';
342 C_SAME_SIDE CONSTANT VARCHAR2(1) := 'W';
343 C_NO_MERGE CONSTANT VARCHAR2(1) := 'N';
344 --
345 -- 4669308
346 C_NO_REVERSAL CONSTANT VARCHAR2(20) := 'NO_MPA_REVERSAL';
347 --+==========================================================================+
348 --| |
349 --| |
350 --| GLobal structure For Accounting Reversal |
351 --| |
352 --| |
353 --+==========================================================================+
354
355 --
356 TYPE t_rec_reverse_line IS RECORD (
357 --
358 ae_header_id NUMBER,
359 line_num NUMBER,
360 accounting_class VARCHAR2(30),
361 --
362 ccid NUMBER,
363 --
364 gl_transfer_mode VARCHAR2(1),
365 acct_entry_type_code VARCHAR2(1),
366 merge_duplicate_code VARCHAR2(1),
367 --
368 entered_amount NUMBER,
369 ledger_amount NUMBER,
370 entered_dr NUMBER,
371 entered_cr NUMBER,
372 accounted_dr NUMBER,
373 accounted_cr NUMBER,
374 currency_code VARCHAR2(15),
375 curr_conversion_date DATE,
376 curr_conversion_rate NUMBER,
377 curr_conversion_type VARCHAR2(30),
378 description VARCHAR2(1996),
379 --
380 -- line descriptions
381 --
382 party_id NUMBER,
383 party_site_id NUMBER,
384 party_type_code VARCHAR2(1),
385 --
386 statistical_amount NUMBER,
387 ussgl_transaction VARCHAR2(30),
388 --
389 jgzz_recon_ref VARCHAR2(240),
390 --
391 distribution_id_char_1 VARCHAR2(240),
392 distribution_id_char_2 VARCHAR2(240),
393 distribution_id_char_3 VARCHAR2(240),
394 distribution_id_char_4 VARCHAR2(240),
395 distribution_id_char_5 VARCHAR2(240),
396 distribution_id_num_1 NUMBER,
397 distribution_id_num_2 NUMBER,
398 distribution_id_num_3 NUMBER,
399 distribution_id_num_4 NUMBER,
400 distribution_id_num_5 NUMBER,
401 sys_distribution_type VARCHAR2(30),
402 --
403 rev_distrib_id_char_1 VARCHAR2(240),
404 rev_distrib_id_char_2 VARCHAR2(240),
405 rev_distrib_id_char_3 VARCHAR2(240),
406 rev_distrib_id_char_4 VARCHAR2(240),
407 rev_distrib_id_char_5 VARCHAR2(240),
408 rev_distrib_id_num_1 NUMBER,
409 rev_distrib_id_num_2 NUMBER,
410 rev_distrib_id_num_3 NUMBER,
411 rev_distrib_id_num_4 NUMBER,
412 rev_distrib_id_num_5 NUMBER,
413 rev_sys_distribution_type VARCHAR2(30),
414 --
415 acc_reversal_option VARCHAR2(1),
416 reversal_credit_ccid NUMBER,
417 reversal_debit_ccid NUMBER,
418 --
419 mpa_option VARCHAR2(30), -- 4262811
420 mpa_start_date DATE, -- 4262811
421 mpa_end_date DATE, -- 4262811
422 -- Removed for 4262811 MPA
423 -- deferred_indicator VARCHAR2(1),
424 -- deferred_start_date DATE,
425 -- deferred_end_date DATE,
426 -- deferred_no_period NUMBER,
427 -- deferred_period_type VARCHAR2(1),
428 --
429 tax_line_ref NUMBER,
430 tax_summary_line_ref NUMBER,
431 tax_rec_nrec_dist_ref NUMBER
432 --
433 );
434
435 --
436 -- cache accounting line type information
437 --
438 --g_accounting_line
439 TYPE t_rec_accounting_line IS RECORD (
440 component_type VARCHAR2(30)
441 , accounting_line_code VARCHAR2(30)
442 , accounting_line_type_code VARCHAR2(1)
443 , accounting_line_appl_id INTEGER
444 , amb_context_code VARCHAR2(30)
445 , entity_code VARCHAR2(30)
446 , event_class_code VARCHAR2(30)
447 )
448 ;
449
450 --g_transaction_accounts
451 TYPE t_rec_transaction_accounts IS RECORD (
452 array_line_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num,
453 array_ae_header_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num,
454 array_temp_line_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num,
455 array_code_combination_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num,
456 array_segment XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L,
457 array_from_segment_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V15L,
458 array_to_segment_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V15L,
459 array_processing_status_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L,
460 array_side_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L
461 )
462 ;
463
464 --+==========================================================================+
465 --| |
466 --| |
467 --| GLobal variables |
468 --| |
469 --| |
470 --+==========================================================================+
471
472 g_reverse_lines t_rec_reverse_line;
473 g_application_id INTEGER;
474 g_accounting_line t_rec_accounting_line;
475 g_transaction_accounts t_rec_transaction_accounts;
476 g_mpa_transaction_accounts t_rec_transaction_accounts; --bug#9954676
477 --+==========================================================================+
478 --| |
479 --| |
480 --| GLobal variables For Business Flow - 4219869 |
481 --| |
482 --| |
483 --+==========================================================================+
484 --
485 g_num_bflow_prior_entries INTEGER;
486 g_num_bflow_same_entries INTEGER;
487 C_METHOD_PRIOR CONSTANT VARCHAR2(30) := 'PRIOR_ENTRY';
488 C_METHOD_SAME CONSTANT VARCHAR2(30) := 'SAME_ENTRY';
489 C_DUMMY_PRIOR CONSTANT VARCHAR2(10) := 'DUMMY_BFPE';
490 C_DUMMY_SAME CONSTANT VARCHAR2(10) := 'DUMMY_BFSE';
491 C_MPA_PRIOR_ENTRY CONSTANT VARCHAR2(30) := 'MPA_PRIOR_ENTRY'; -- 4655713b
492 C_MPA_SAME_ENTRY CONSTANT VARCHAR2(30) := 'MPA_SAME_ENTRY'; -- 4655713b
493 C_CHAR CONSTANT VARCHAR2(1) := fnd_global.local_chr(12);
494 C_NUM CONSTANT NUMBER := 9.99E125;
495
496 --====================================================================
497 --
498 --
499 --
500 --
501 --
502 -- FND_LOG trace
503 --
504 --
505 --
506 --
507 --
508 --
509 --
510 --
511 --
512 --
513 --
514 --
515 --
516 --
517 --
518 --
519 --======================================================================
520 --
521 --=============================================================================
522 -- *********** Local Trace Routine **********
523 --=============================================================================
524
525 C_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
526 C_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
527 C_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
528 C_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
529 C_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
530 C_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
531
532 C_LEVEL_LOG_DISABLED CONSTANT NUMBER := 99;
533 C_DEFAULT_MODULE CONSTANT VARCHAR2(240) := 'xla.plsql.XLA_AE_LINES_PKG';
534
535 g_log_level NUMBER;
536 g_log_enabled BOOLEAN;
537
538 PROCEDURE trace
539 (p_msg IN VARCHAR2
540 ,p_level IN NUMBER
541 ,p_module IN VARCHAR2) IS
542 BEGIN
543 IF (p_msg IS NULL AND p_level >= g_log_level) THEN
544 fnd_log.message(p_level, p_module);
545 ELSIF p_level >= g_log_level THEN
546 fnd_log.string(p_level, p_module, p_msg);
547 END IF;
548
549 EXCEPTION
550 WHEN xla_exceptions_pkg.application_exception THEN
551 RAISE;
552 WHEN OTHERS THEN
553 xla_exceptions_pkg.raise_message
554 (p_location => 'XLA_AE_LINES_PKG.trace');
555 END trace;
556
557 --=============================================================================
558 -- ******* Print Log File **********
559 --=============================================================================
560 PROCEDURE print_logfile(p_msg IN VARCHAR2) IS
561 BEGIN
562
563 fnd_file.put_line(fnd_file.log,p_msg);
564
565 EXCEPTION
566 WHEN xla_exceptions_pkg.application_exception THEN
567 RAISE;
568 WHEN OTHERS THEN
569 xla_exceptions_pkg.raise_message
570 (p_location => 'xla_ae_lines_pkg.print_logfile');
571 END print_logfile;
572 --
573 --====================================================================
574 --
575 --
576 --
577 --
578 -- Forward declaration of local routines
579 --
580 --
581 --
582 --
583 --======================================================================
584 --
585
586 --
587 PROCEDURE ValidateLinks
588 ;
589
590 --
591 --4219869 : making this a public function for Business Flow
592 --PROCEDURE SetDebitCreditAmounts
593 --;
594 --
595 --
596
597 FUNCTION ValidateRevLinks
598 RETURN BOOLEAN
599 ;
600
601 --===================================================================
602 --
603 --
604 --
605 --
606 --
607 -- STANDARD ACCOUNTING PROCESS
608 --
609 --
610 --
611 --
612 --
613 --
614 --
615 --
616 --
617 --
618 --
619 --
620 --
621 --
622 --
623 --
624 --=====================================================================
625 --
626
627 --====================================================================
628 --
629 --
630 --
631 --
632 --
633 -- PRIVATE procedures and functions
634 --
635 --
636 --
637 --
638 --
639 --
640 --
641 --
642 --
643 --
644 --
645 --
646 --
647 --
648 --
649 --
650 --======================================================================
651 --
652 /*======================================================================+
653 | |
654 | Private Procedure |
655 | |
656 | |
657 +======================================================================*/
658 PROCEDURE ValidateLinks
659 IS
660 l_log_module VARCHAR2(240);
661 l_temp NUMBER;
662 BEGIN
663 --
664 IF g_log_enabled THEN
665 l_log_module := C_DEFAULT_MODULE||'.ValidateLinks';
666 END IF;
667 --
668 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
669 trace
670 (p_msg => 'BEGIN of ValidateLinks'
671 ,p_level => C_LEVEL_PROCEDURE
672 ,p_module => l_log_module);
673
674 END IF;
675
676 -- We need check: 1. distribution_id_1 must be assigned
677 -- 2. distribution_id_2..5 must be assigned in order, that means
678 -- if id_3 is assigned, then 2 must be assigned.
679 -- if id_4 is assigned, then 2 and 3 must be assigned.
680 -- if id_5 is assigned, then 2, 3 and 4 must be assigned.
681 -- We are using generate a number, l_temp
682 -- 1*decode(id5 is assigned, 1, 0)+
683 -- 2*decode(id4 is assigned, 1, 0)+
684 -- 4*decode(id3 is assigned, 1, 0)+
685 -- 8*decode(id2 is assigned, 1, 0)
686 -- The valid case, l_temp can only be
687 -- 0 -- no one is assigned
688 -- 8 -- id2 is assigned
689 -- 12 -- id2 and id3 are assigned
690 -- 14 -- id2 , id3 and id4 are assigned
691 -- 15 -- all are assigned
692
693
694 IF g_rec_lines.array_distribution_id_char_5(g_LineNumber) IS NULL AND
695 g_rec_lines.array_distribution_id_num_5(g_LineNumber) IS NULL THEN
696 l_temp := 0;
697 ELSE
698 l_temp := 1;
699 END IF;
700 IF g_rec_lines.array_distribution_id_char_4(g_LineNumber) IS NOT NULL OR
701 g_rec_lines.array_distribution_id_num_4(g_LineNumber) IS NOT NULL THEN
702 l_temp := 2+l_temp;
703 END IF;
704 IF g_rec_lines.array_distribution_id_char_3(g_LineNumber) IS NOT NULL OR
705 g_rec_lines.array_distribution_id_num_3(g_LineNumber) IS NOT NULL THEN
706 l_temp := 4+l_temp;
707 END IF;
708 IF g_rec_lines.array_distribution_id_char_2(g_LineNumber) IS NOT NULL OR
709 g_rec_lines.array_distribution_id_num_2(g_LineNumber) IS NOT NULL THEN
710 l_temp := 8+l_temp;
711 END IF;
712 IF (g_rec_lines.array_distribution_id_char_1(g_LineNumber) IS NULL AND
713 g_rec_lines.array_distribution_id_num_1(g_LineNumber) IS NULL) OR
714 l_temp not in (0, 8, 12, 14, 15) THEN
715
716 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
717 xla_accounting_err_pkg.build_message
718 (p_appli_s_name => 'XLA'
719 ,p_msg_name => 'XLA_AP_NO_DIST_LINK_ID'
720 ,p_token_1 => 'LINE_NUMBER'
721 ,p_value_1 => g_ExtractLine
722 ,p_token_2 => 'LINE_TYPE_NAME'
723 ,p_value_2 => xla_ae_sources_pkg.GetComponentName (
724 g_accounting_line.component_type
725 , g_accounting_line.accounting_line_code
726 , g_accounting_line.accounting_line_type_code
727 , g_accounting_line.accounting_line_appl_id
728 , g_accounting_line.amb_context_code
729 , g_accounting_line.entity_code
730 , g_accounting_line.event_class_code
731 )
732 ,p_token_3 => 'OWNER'
733 ,p_value_3 => xla_lookups_pkg.get_meaning(
734 'XLA_OWNER_TYPE'
735 , g_rec_lines.array_accounting_line_type(g_LineNumber)
736 )
737 ,p_token_4 => 'PRODUCT_NAME'
738 ,p_value_4 => xla_ae_journal_entry_pkg.g_cache_event.application_name
739 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
740 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
741 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
742 ,p_ae_header_id => NULL --p_ae_header_id
743 );
744
745 IF (C_LEVEL_ERROR >= g_log_level) THEN
746 trace
747 (p_msg => 'ERROR: XLA_AP_NO_DIST_LINK_ID'
748 ,p_level => C_LEVEL_ERROR
749 ,p_module => l_log_module);
750 END IF;
751 END IF;
752
753 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
754
755 trace
756 (p_msg => 'END of ValidateLinks'
757 ,p_level => C_LEVEL_PROCEDURE
758 ,p_module => l_log_module);
759
760 END IF;
761
762 EXCEPTION
763 WHEN xla_exceptions_pkg.application_exception THEN
764 RAISE;
765 WHEN OTHERS THEN
766 xla_exceptions_pkg.raise_message
767 (p_location => 'xla_ae_lines_pkg.ValidateLinks');
768 --
769 END ValidateLinks;
770 --
771 --
772 /*======================================================================+
773 | |
774 | Private Procedure |
775 | SetDebitCreditAmounts |
776 | |
777 +======================================================================*/
778 PROCEDURE SetDebitCreditAmounts
779 IS
780 l_log_module VARCHAR2(240);
781 BEGIN
782 --
783 IF g_log_enabled THEN
784 l_log_module := C_DEFAULT_MODULE||'.SetDebitCreditAmounts';
785 END IF;
786 --
787 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
788 trace
789 (p_msg => 'BEGIN of SetDebitCreditAmounts'
790 ,p_level => C_LEVEL_PROCEDURE
791 ,p_module => l_log_module);
792
793 END IF;
794
795 IF(nvl(g_override_acctd_amt_flag, 'N') = 'Y') THEN
796 g_rec_lines.array_calculate_acctd_flag(g_LineNumber) := 'N';
797 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
798 trace
799 (p_msg => 'set amts flag to N '
800 ,p_level => C_LEVEL_STATEMENT
801 ,p_module => l_log_module);
802 END IF;
803
804 END IF;
805 /*
806 1. for alc enabled apps
807 primary ledger, the calculate amts flag will be set as user set in the forms
808 secondary ledger, if the currency is same as primary, the calculate amts flag will be
809 set as user set in the forms
810 if not same, the calculate amts flag will be set to 'Y'
811 for ALC, the calculate amts flag will be set to 'Y'
812 2. For alc not enabled apps:
813 primaryledger, the flag set as user set in the form
814 secondary, same as the alc_enabled_apps
815 ALC, the calculate amts flag is set to 'N'
816 */
817 -- Bug 13636827 (14105252)
818 if(XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code = 'ALC' and
819 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.currency_code = xla_accounting_cache_pkg.g_primary_ledger_currency and
820 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='N') then
821 g_rec_lines.array_calculate_acctd_flag(g_LineNumber) := 'N';
822 g_rec_lines.array_calculate_g_l_flag(g_LineNumber) := 'N';
823 elsif(XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code = 'ALC' and
824 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.currency_code = xla_accounting_cache_pkg.g_primary_ledger_currency and XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y') then
825 g_rec_lines.array_calculate_acctd_flag(g_LineNumber) := 'Y';
826 g_rec_lines.array_calculate_g_l_flag(g_LineNumber) := 'Y'; --Bug 13636827 (14105252)
827 elsIF((XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code = 'SECONDARY' or
828 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code = 'ALC') and
829 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y') THEN
830 g_rec_lines.array_calculate_acctd_flag(g_LineNumber) := 'Y';
831 g_rec_lines.array_calculate_g_l_flag(g_LineNumber) := 'Y';
832 ELSIF(XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code = 'ALC' and
833 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='N') THEN
834 g_rec_lines.array_calculate_acctd_flag(g_LineNumber) := 'N';
835 g_rec_lines.array_calculate_g_l_flag(g_LineNumber) := 'N';
836 END IF;
837
838
839 -- for performance bug 5394727, set the currency to ledger currency
840 -- since we need ledger currency later when set the currency code
841 -- for these gain/loss lines.
842 IF (g_rec_lines.array_natural_side_code(g_LineNumber) = 'G'
843 AND (nvl(g_rec_lines.array_calculate_g_l_flag(g_LineNumber), 'N') = 'Y')) THEN
844 g_rec_lines.array_currency_code(g_LineNumber)
845 := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.currency_code;
846 END IF;
847
848 IF (nvl(g_rec_lines.array_calculate_acctd_flag(g_LineNumber), 'N')= 'N' AND
849 g_rec_lines.array_natural_side_code(g_LineNumber) <> 'G') OR
850 (nvl(g_rec_lines.array_calculate_g_l_flag(g_LineNumber), 'N')='N' AND
851 g_rec_lines.array_natural_side_code(g_LineNumber) = 'G') THEN
852
853 IF g_rec_lines.array_ledger_amount(g_LineNumber) is null THEN
854 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
855 xla_accounting_err_pkg.build_message
856 (p_appli_s_name => 'XLA'
857 ,p_msg_name => 'XLA_AP_NO_LEDGER_AMOUNT'
858 ,p_token_1 => 'LINE_NUMBER'
859 ,p_value_1 => g_ExtractLine
860 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
861 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
862 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
863 END IF;
864 --ELSE
865 -- g_rec_lines.array_ledger_amount(g_LineNumber) := null;
866 END IF;
867
868 --
869 -- SetEnteredAmount
870 -- change for business flow, if business flow, won't set the entered_amount
871 -- since at this time the final entered currency code is not decided yet.
872 IF NVL(g_rec_lines.array_currency_code(g_LineNumber),
873 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.currency_code) =
874 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.currency_code
875 AND g_rec_lines.array_natural_side_code(g_LineNumber) <> 'G'
876 AND nvl(g_rec_lines.array_gain_or_loss_flag(g_LineNumber), 'N') <> 'Y'
877 AND nvl(g_rec_lines.array_reversal_code(g_LineNumber), 'DUMMY') <> C_DUMMY_PRIOR
878 THEN
879
880 IF nvl(g_rec_lines.array_calculate_acctd_flag(g_LineNumber), 'N')= 'N' THEN
881 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));
882 ELSE
883 --ledger currency proj, assign the entered amount to ledger amount instead
884 g_rec_lines.array_ledger_amount(g_LineNumber) := g_rec_lines.array_entered_amount(g_LineNumber);
885 END IF;
886
887 END IF;
888 --
889
890 -- Bug 7541615
891 -- Nullified the currency conversion type and rate if the entered currency is the same as ledger currency.
892 -- This nullification was inadvertently done only for non GAIN LOSS lines as a part of bug 4634321
893 -- This is fixed now, with the rate and type made null for all lines (except BFLow lines)
894
895 IF NVL(g_rec_lines.array_currency_code(g_LineNumber),
896 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.currency_code) =
897 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.currency_code
898 AND nvl(g_rec_lines.array_reversal_code(g_LineNumber), 'DUMMY') <> C_DUMMY_PRIOR
899 THEN
900
901 --=======================================
902 -- bug 2988192, removed by bug 3592650
903 --=======================================
904 g_rec_lines.array_curr_conversion_rate(g_LineNumber):= null;
905 g_rec_lines.array_curr_conversion_type(g_LineNumber):= null;
906 --
907 END IF;
908 --
909 -- bug 5259353
910 IF(g_rec_lines.array_natural_side_code(g_LineNumber) = 'G' or
911 g_rec_lines.array_gain_or_loss_flag(g_LineNumber) = 'Y') THEN
912 g_rec_lines.array_entered_amount(g_LineNumber) := 0;
913 END IF;
914
915
916 IF(g_rec_lines.array_natural_side_code(g_LineNumber) <> 'G'
917 AND nvl(g_rec_lines.array_gain_or_loss_flag(g_LineNumber), 'N') <> 'Y'
918 AND nvl(g_rec_lines.array_reversal_code(g_LineNumber), 'DUMMY') <> C_DUMMY_PRIOR) THEN
919 IF g_rec_lines.array_entered_amount(g_LineNumber) is null THEN
920 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
921 xla_accounting_err_pkg.build_message
922 (p_appli_s_name => 'XLA'
923 ,p_msg_name => 'XLA_AP_NO_ENTERED_AMOUNT'
924 ,p_token_1 => 'LINE_NUMBER'
925 ,p_value_1 => g_ExtractLine
926 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
927 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
928 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
929 ELSIF (nvl(g_rec_lines.array_calculate_acctd_flag(g_LineNumber), 'N')= 'N'
930 AND ((sign(g_rec_lines.array_entered_amount(g_LineNumber)) > 0 and
931 sign(g_rec_lines.array_ledger_amount(g_LineNumber))<0) or
932 (sign(g_rec_lines.array_entered_amount(g_LineNumber)) < 0 and
933 sign(g_rec_lines.array_ledger_amount(g_LineNumber))>0))
934 ) THEN
935 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
936 xla_accounting_err_pkg.build_message
937 (p_appli_s_name => 'XLA'
938 ,p_msg_name => 'XLA_AP_DIFFERENT_SIGN_AMOUNTS'
939 ,p_token_1 => 'LINE_NUMBER'
940 ,p_value_1 => g_ExtractLine
941 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
942 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
943 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
944 END IF;
945 END IF;
946
947 --
948 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
949 trace
950 (p_msg => 'Entered Amount = '||g_rec_lines.array_entered_amount(g_LineNumber)
951 ,p_level => C_LEVEL_STATEMENT
952 ,p_module => l_log_module);
953
954 trace
955 (p_msg => 'Ledger Amount = '||g_rec_lines.array_ledger_amount(g_LineNumber)
956 ,p_level => C_LEVEL_STATEMENT
957 ,p_module => l_log_module);
958 END IF;
959 --
960 IF g_rec_lines.array_switch_side_flag(g_LineNumber) = C_SWITCH AND
961 ( g_rec_lines.array_ledger_amount(g_LineNumber) < 0 OR
962 ( g_rec_lines.array_ledger_amount(g_LineNumber) = 0 AND
963 g_rec_lines.array_entered_amount(g_LineNumber) < 0 )
964 )
965 THEN
966
967 --switch side
968
969 CASE g_rec_lines.array_natural_side_code(g_LineNumber)
970
971 WHEN C_DEBIT THEN
972 -- store amount in credit side
973 g_rec_lines.array_accounted_cr(g_LineNumber) := ABS(g_rec_lines.array_ledger_amount(g_LineNumber)) ;
974 g_rec_lines.array_accounted_dr(g_LineNumber) := NULL;
975 --
976 g_rec_lines.array_entered_cr(g_LineNumber) := ABS(g_rec_lines.array_entered_amount(g_LineNumber)) ;
977 g_rec_lines.array_entered_dr(g_LineNumber) := NULL;
978
979 WHEN C_CREDIT THEN
980 -- store amount in debit side
981 g_rec_lines.array_accounted_dr(g_LineNumber) := ABS(g_rec_lines.array_ledger_amount(g_LineNumber)) ;
982 g_rec_lines.array_accounted_cr(g_LineNumber) := NULL;
983 --
984 g_rec_lines.array_entered_dr(g_LineNumber) := ABS(g_rec_lines.array_entered_amount(g_LineNumber)) ;
985 g_rec_lines.array_entered_cr(g_LineNumber) := NULL;
986
987 ELSE null;
988
989 END CASE;
990
991 --7704240: Bflow Applied Amount to be ABSOLUTE, when SWITCH SIDE, so that all Entered, Accounted and BflowApplied Amounts are POSITIVE
992 g_rec_lines.array_bflow_applied_to_amt(g_LineNumber) := ABS(g_rec_lines.array_bflow_applied_to_amt(g_LineNumber)) ;
993
994 ELSE
995
996 -- no switch
997
998 CASE g_rec_lines.array_natural_side_code(g_LineNumber)
999
1000 WHEN C_DEBIT THEN
1001 -- store amount in debit side
1002 g_rec_lines.array_accounted_dr(g_LineNumber) := g_rec_lines.array_ledger_amount(g_LineNumber) ;
1003 g_rec_lines.array_accounted_cr(g_LineNumber) := NULL;
1004 --
1005 g_rec_lines.array_entered_dr(g_LineNumber) := g_rec_lines.array_entered_amount(g_LineNumber) ;
1006 g_rec_lines.array_entered_cr(g_LineNumber) := NULL;
1007
1008 WHEN C_CREDIT THEN
1009 -- store amount in credit side
1010 g_rec_lines.array_accounted_cr(g_LineNumber) := g_rec_lines.array_ledger_amount(g_LineNumber) ;
1011 g_rec_lines.array_accounted_dr(g_LineNumber) := NULL;
1012 --
1013 g_rec_lines.array_entered_cr(g_LineNumber) := g_rec_lines.array_entered_amount(g_LineNumber) ;
1014 g_rec_lines.array_entered_dr(g_LineNumber) := NULL;
1015
1016 ELSE null;
1017
1018 END CASE;
1019 END IF;
1020 --
1021 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1022
1023 trace
1024 (p_msg => 'Entered_DR = '||g_rec_lines.array_entered_dr(g_LineNumber)
1025 ,p_level => C_LEVEL_STATEMENT
1026 ,p_module => l_log_module);
1027
1028 trace
1029 (p_msg => 'Entered_CR = '||g_rec_lines.array_entered_cr(g_LineNumber)
1030 ,p_level => C_LEVEL_STATEMENT
1031 ,p_module => l_log_module);
1032
1033 trace
1034 (p_msg => 'Accounted_DR = '||g_rec_lines.array_accounted_dr(g_LineNumber)
1035 ,p_level => C_LEVEL_STATEMENT
1036 ,p_module => l_log_module);
1037
1038 trace
1039 (p_msg => 'Accounted_CR = '||g_rec_lines.array_accounted_cr(g_LineNumber)
1040 ,p_level => C_LEVEL_STATEMENT
1041 ,p_module => l_log_module);
1042 END IF;
1043 --
1044 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1045 trace
1046 (p_msg => 'END of SetDebitCreditAmounts'
1047 ,p_level => C_LEVEL_PROCEDURE
1048 ,p_module => l_log_module);
1049
1050 END IF;
1051 EXCEPTION
1052 WHEN xla_exceptions_pkg.application_exception THEN
1053 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
1054 RAISE;
1055 WHEN OTHERS THEN
1056 xla_exceptions_pkg.raise_message
1057 (p_location => 'XLA_AE_LINES_PKG.SetDebitCreditAmounts');
1058 --
1059 END SetDebitCreditAmounts;
1060 --
1061 --====================================================================
1062 --
1063 --
1064 --
1065 --
1066 --
1067 -- PUBLIC procedures and functions
1068 --
1069 --
1070 --
1071 --
1072 --
1073 --
1074 --
1075 --
1076 --
1077 --
1078 --
1079 --
1080 --
1081 --
1082 --
1083 --
1084 --======================================================================
1085 --
1086 /*======================================================================+
1087 | |
1088 | PUBLIC Procedure |
1089 | InitLines : Reset temporary journal line pl/sql structures |
1090 | |
1091 +======================================================================*/
1092 PROCEDURE InitLines
1093 --
1094 IS
1095 --
1096 l_null_lines t_rec_lines;
1097 l_null_rev_line t_rec_reverse_line;
1098 l_null_trans_accounts t_rec_transaction_accounts;
1099 l_log_module VARCHAR2(240);
1100 --
1101 BEGIN
1102 IF g_log_enabled THEN
1103 l_log_module := C_DEFAULT_MODULE||'.InitLines';
1104 END IF;
1105 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1106 trace
1107 (p_msg => 'BEGIN of InitLines'
1108 ,p_level => C_LEVEL_PROCEDURE
1109 ,p_module => l_log_module);
1110
1111 END IF;
1112
1113 g_rec_lines := l_null_lines;
1114 g_transaction_accounts := l_null_trans_accounts;
1115 g_reverse_lines := l_null_rev_line;
1116 g_LineNumber := 0;
1117 g_ExtractLine := 0;
1118 g_ActualLineNum := 0;
1119 g_BudgetLineNum := 0;
1120 g_EncumbLineNum := 0;
1121
1122
1123 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1124 trace
1125 (p_msg => 'END of InitLines'
1126 ,p_level => C_LEVEL_PROCEDURE
1127 ,p_module => l_log_module);
1128
1129 END IF;
1130 EXCEPTION
1131 WHEN xla_exceptions_pkg.application_exception THEN
1132 RAISE;
1133 WHEN OTHERS THEN
1134 xla_exceptions_pkg.raise_message
1135 (p_location => 'XLA_AE_LINES_PKG.InitLines');
1136 --
1137 END InitLines;
1138 --
1139 --
1140 /*======================================================================+
1141 | |
1142 | PUBLIC Procedure |
1143 | |
1144 | |
1145 +======================================================================*/
1146 PROCEDURE SetExtractLine(p_extract_line IN NUMBER)
1147 IS
1148 l_log_module VARCHAR2(240);
1149 BEGIN
1150 --
1151 IF g_log_enabled THEN
1152 l_log_module := C_DEFAULT_MODULE||'.SetExtractLine';
1153 END IF;
1154 --
1155 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1156 trace
1157 (p_msg => 'BEGIN of SetExtractLine'
1158 ,p_level => C_LEVEL_PROCEDURE
1159 ,p_module => l_log_module);
1160
1161 END IF;
1162
1163 IF (C_LEVEL_EVENT >= g_log_level) THEN
1164
1165 trace
1166 (p_msg => 'Extract line number = '||p_extract_line
1167 ,p_level => C_LEVEL_EVENT
1168 ,p_module => l_log_module);
1169
1170 END IF;
1171
1172 g_ExtractLine := p_extract_line;
1173
1174 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1175
1176 trace
1177 (p_msg => 'END of SetExtractLine'
1178 ,p_level => C_LEVEL_PROCEDURE
1179 ,p_module => l_log_module);
1180
1181 END IF;
1182
1183 EXCEPTION
1184 WHEN xla_exceptions_pkg.application_exception THEN
1185 g_ExtractLine := null;
1186 RAISE;
1187 WHEN OTHERS THEN
1188 xla_exceptions_pkg.raise_message
1189 (p_location => 'XLA_AE_LINES_PKG.SetExtractLine');
1190 --
1191 END SetExtractLine;
1192 --
1193 /*======================================================================+
1194 | |
1195 | Public Procedure |
1196 | |
1197 | |
1198 +======================================================================*/
1199 --
1200 PROCEDURE SetNullLine
1201 IS
1202 l_log_module VARCHAR2(240);
1203 BEGIN
1204 --
1205 IF g_log_enabled THEN
1206 l_log_module := C_DEFAULT_MODULE||'.SetNullLine';
1207 END IF;
1208 --
1209 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1210 trace
1211 (p_msg => 'BEGIN of SetNullLine'
1212 ,p_level => C_LEVEL_PROCEDURE
1213 ,p_module => l_log_module);
1214
1215 END IF;
1216 FOR Idx IN 1 .. C_BULK_LIMIT LOOP
1217 --
1218 -- init new line
1219 --
1220 g_null_lines.array_ae_header_id(Idx) := NULL;
1221 -- g_null_lines.array_line_num(Idx) := NULL;
1222 g_null_lines.array_accounting_class(Idx) := NULL;
1223 g_null_lines.array_rounding_class(Idx) := NULL;
1224 g_null_lines.array_doc_rounding_level(Idx) := NULL;
1225 g_null_lines.array_gain_or_loss_ref(Idx) := NULL;
1226 g_null_lines.array_event_class_code(Idx) := NULL;
1227 g_null_lines.array_event_type_code(Idx) := NULL;
1228 g_null_lines.array_line_defn_owner_code(Idx) := NULL;
1229 g_null_lines.array_line_defn_code(Idx) := NULL;
1230 g_null_lines.array_accounting_line_code(Idx) := NULL;
1231 g_null_lines.array_accounting_line_type(Idx) := NULL;
1232 g_null_lines.array_calculate_acctd_flag(Idx) := NULL;
1233 g_null_lines.array_calculate_g_l_flag(Idx) := NULL;
1234 g_null_lines.array_gain_or_loss_flag(Idx) := NULL;
1235 --
1236 -- line flexfield accounts
1237 --
1238 g_null_lines.array_ccid_flag(Idx) := C_INVALID;
1239 g_null_lines.array_ccid(Idx) := NULL;
1240 --
1241 g_null_lines.array_accounting_coa_id(Idx) := NULL;
1242 g_null_lines.array_transaction_coa_id(Idx) := NULL;
1243 g_null_lines.array_sl_coa_mapping_name(Idx) := NULL;
1244 --
1245 g_null_lines.array_segment1(Idx) := NULL;
1246 g_null_lines.array_segment2(Idx) := NULL;
1247 g_null_lines.array_segment3(Idx) := NULL;
1248 g_null_lines.array_segment4(Idx) := NULL;
1249 g_null_lines.array_segment5(Idx) := NULL;
1250 g_null_lines.array_segment6(Idx) := NULL;
1251 g_null_lines.array_segment7(Idx) := NULL;
1252 g_null_lines.array_segment8(Idx) := NULL;
1253 g_null_lines.array_segment9(Idx) := NULL;
1254 g_null_lines.array_segment10(Idx) := NULL;
1255 g_null_lines.array_segment11(Idx) := NULL;
1256 g_null_lines.array_segment12(Idx) := NULL;
1257 g_null_lines.array_segment13(Idx) := NULL;
1258 g_null_lines.array_segment14(Idx) := NULL;
1259 g_null_lines.array_segment15(Idx) := NULL;
1260 g_null_lines.array_segment16(Idx) := NULL;
1261 g_null_lines.array_segment17(Idx) := NULL;
1262 g_null_lines.array_segment18(Idx) := NULL;
1263 g_null_lines.array_segment19(Idx) := NULL;
1264 g_null_lines.array_segment20(Idx) := NULL;
1265 g_null_lines.array_segment21(Idx) := NULL;
1266 g_null_lines.array_segment22(Idx) := NULL;
1267 g_null_lines.array_segment23(Idx) := NULL;
1268 g_null_lines.array_segment24(Idx) := NULL;
1269 g_null_lines.array_segment25(Idx) := NULL;
1270 g_null_lines.array_segment26(Idx) := NULL;
1271 g_null_lines.array_segment27(Idx) := NULL;
1272 g_null_lines.array_segment28(Idx) := NULL;
1273 g_null_lines.array_segment29(Idx) := NULL;
1274 g_null_lines.array_segment30(Idx) := NULL;
1275 --
1276 g_null_lines.alt_array_ccid_flag(Idx) := C_INVALID;
1277 g_null_lines.alt_array_ccid(Idx) := NULL;
1278 g_null_lines.alt_array_segment1(Idx) := NULL;
1279 g_null_lines.alt_array_segment2(Idx) := NULL;
1280 g_null_lines.alt_array_segment3(Idx) := NULL;
1281 g_null_lines.alt_array_segment4(Idx) := NULL;
1282 g_null_lines.alt_array_segment5(Idx) := NULL;
1283 g_null_lines.alt_array_segment6(Idx) := NULL;
1284 g_null_lines.alt_array_segment7(Idx) := NULL;
1285 g_null_lines.alt_array_segment8(Idx) := NULL;
1286 g_null_lines.alt_array_segment9(Idx) := NULL;
1287 g_null_lines.alt_array_segment10(Idx) := NULL;
1288 g_null_lines.alt_array_segment11(Idx) := NULL;
1289 g_null_lines.alt_array_segment12(Idx) := NULL;
1290 g_null_lines.alt_array_segment13(Idx) := NULL;
1291 g_null_lines.alt_array_segment14(Idx) := NULL;
1292 g_null_lines.alt_array_segment15(Idx) := NULL;
1293 g_null_lines.alt_array_segment16(Idx) := NULL;
1294 g_null_lines.alt_array_segment17(Idx) := NULL;
1295 g_null_lines.alt_array_segment18(Idx) := NULL;
1296 g_null_lines.alt_array_segment19(Idx) := NULL;
1297 g_null_lines.alt_array_segment20(Idx) := NULL;
1298 g_null_lines.alt_array_segment21(Idx) := NULL;
1299 g_null_lines.alt_array_segment22(Idx) := NULL;
1300 g_null_lines.alt_array_segment23(Idx) := NULL;
1301 g_null_lines.alt_array_segment24(Idx) := NULL;
1302 g_null_lines.alt_array_segment25(Idx) := NULL;
1303 g_null_lines.alt_array_segment26(Idx) := NULL;
1304 g_null_lines.alt_array_segment27(Idx) := NULL;
1305 g_null_lines.alt_array_segment28(Idx) := NULL;
1306 g_null_lines.alt_array_segment29(Idx) := NULL;
1307 g_null_lines.alt_array_segment30(Idx) := NULL;
1308 --
1309 -- Option lines
1310 --
1311 g_null_lines.array_gl_transfer_mode(Idx) := NULL;
1312 g_null_lines.array_natural_side_code(Idx) := NULL;
1313 g_null_lines.array_acct_entry_type_code(Idx) := NULL;
1314 g_null_lines.array_switch_side_flag(Idx) := NULL;
1315 g_null_lines.array_merge_duplicate_code(Idx) := NULL;
1316 --
1317 -- line amounts
1318 --
1319 g_null_lines.array_entered_amount(Idx) := NULL;
1320 g_null_lines.array_ledger_amount(Idx) := NULL;
1321 g_null_lines.array_entered_dr(Idx) := NULL;
1322 g_null_lines.array_entered_cr(Idx) := NULL;
1323 g_null_lines.array_accounted_dr(Idx) := NULL;
1324 g_null_lines.array_accounted_cr(Idx) := NULL;
1325 g_null_lines.array_currency_code(Idx) := NULL;
1326 g_null_lines.array_currency_mau(Idx) := NULL;
1327 g_null_lines.array_curr_conversion_date(Idx) := NULL;
1328 g_null_lines.array_curr_conversion_rate(Idx) := NULL;
1329 g_null_lines.array_curr_conversion_type(Idx) := NULL;
1330 g_null_lines.array_description(Idx) := NULL;
1331 --
1332 -- line descriptions
1333 --
1334 g_null_lines.array_party_id(Idx) := NULL;
1335 g_null_lines.array_party_site_id(Idx) := NULL;
1336 g_null_lines.array_party_type_code(Idx) := NULL;
1337 --
1338 g_null_lines.array_statistical_amount(Idx) := NULL;
1339 g_null_lines.array_ussgl_transaction(Idx) := NULL;
1340 --
1341 g_null_lines.array_jgzz_recon_ref(Idx) := NULL;
1342 --
1343 -- distribution links
1344 --
1345 g_null_lines.array_distribution_id_char_1(Idx) := NULL;
1346 g_null_lines.array_distribution_id_char_2(Idx) := NULL;
1347 g_null_lines.array_distribution_id_char_3(Idx) := NULL;
1348 g_null_lines.array_distribution_id_char_4(Idx) := NULL;
1349 g_null_lines.array_distribution_id_char_5(Idx) := NULL;
1350 g_null_lines.array_distribution_id_num_1(Idx) := NULL;
1351 g_null_lines.array_distribution_id_num_2(Idx) := NULL;
1352 g_null_lines.array_distribution_id_num_3(Idx) := NULL;
1353 g_null_lines.array_distribution_id_num_4(Idx) := NULL;
1354 g_null_lines.array_distribution_id_num_5(Idx) := NULL;
1355 g_null_lines.array_sys_distribution_type(Idx) := NULL;
1356 --
1357 -- reverse distribution links
1358 --
1359 g_null_lines.array_rev_dist_id_char_1(Idx) := NULL;
1360 g_null_lines.array_rev_dist_id_char_2(Idx) := NULL;
1361 g_null_lines.array_rev_dist_id_char_3(Idx) := NULL;
1362 g_null_lines.array_rev_dist_id_char_4(Idx) := NULL;
1363 g_null_lines.array_rev_dist_id_char_5(Idx) := NULL;
1364 g_null_lines.array_rev_dist_id_num_1(Idx) := NULL;
1365 g_null_lines.array_rev_dist_id_num_2(Idx) := NULL;
1366 g_null_lines.array_rev_dist_id_num_3(Idx) := NULL;
1367 g_null_lines.array_rev_dist_id_num_4(Idx) := NULL;
1368 g_null_lines.array_rev_dist_id_num_5(Idx) := NULL;
1369 g_null_lines.array_rev_dist_type(Idx) := NULL;
1370
1371 -- 4262811 MPA
1372 g_null_lines.array_header_num(Idx) := NULL;
1373 g_null_lines.array_mpa_acc_entry_flag(Idx) := 'N';
1374 g_null_lines.array_mpa_option(Idx) := NULL;
1375 g_null_lines.array_mpa_start_date(Idx) := NULL;
1376 g_null_lines.array_mpa_end_date(Idx) := NULL;
1377 --
1378 -- deferred info - replace by MPA
1379 --
1380 -- g_null_lines.array_deferred_indicator(Idx) := NULL;
1381 -- g_null_lines.array_deferred_start_date(Idx) := NULL;
1382 -- g_null_lines.array_deferred_end_date(Idx) := NULL;
1383 -- g_null_lines.array_deferred_no_period(Idx) := NULL;
1384 -- g_null_lines.array_deferred_period_type(Idx) := NULL;
1385 --
1386 -- reversal info
1387 --
1388 g_null_lines.array_acc_reversal_option(Idx) := NULL;
1389 --
1390 -- tax info
1391 --
1392 g_null_lines.array_tax_line_ref(Idx) := NULL;
1393 g_null_lines.array_tax_summary_line_ref(Idx) := NULL;
1394 g_null_lines.array_tax_rec_nrec_dist_ref(Idx) := NULL;
1395 --
1396 -- Analytical Criteria
1397 --
1398 g_null_lines.array_anc_balance_flag(Idx) := NULL;
1399 g_null_lines.array_anc_id_1(Idx) := NULL;
1400 g_null_lines.array_anc_id_2(Idx) := NULL;
1401 g_null_lines.array_anc_id_3(Idx) := NULL;
1402 g_null_lines.array_anc_id_4(Idx) := NULL;
1403 g_null_lines.array_anc_id_5(Idx) := NULL;
1404 g_null_lines.array_anc_id_6(Idx) := NULL;
1405 g_null_lines.array_anc_id_7(Idx) := NULL;
1406 g_null_lines.array_anc_id_8(Idx) := NULL;
1407 g_null_lines.array_anc_id_9(Idx) := NULL;
1408 g_null_lines.array_anc_id_10(Idx) := NULL;
1409 g_null_lines.array_anc_id_11(Idx) := NULL;
1410 g_null_lines.array_anc_id_12(Idx) := NULL;
1411 g_null_lines.array_anc_id_13(Idx) := NULL;
1412 g_null_lines.array_anc_id_14(Idx) := NULL;
1413 g_null_lines.array_anc_id_15(Idx) := NULL;
1414 g_null_lines.array_anc_id_16(Idx) := NULL;
1415 g_null_lines.array_anc_id_17(Idx) := NULL;
1416 g_null_lines.array_anc_id_18(Idx) := NULL;
1417 g_null_lines.array_anc_id_19(Idx) := NULL;
1418 g_null_lines.array_anc_id_20(Idx) := NULL;
1419 g_null_lines.array_anc_id_21(Idx) := NULL;
1420 g_null_lines.array_anc_id_22(Idx) := NULL;
1421 g_null_lines.array_anc_id_23(Idx) := NULL;
1422 g_null_lines.array_anc_id_24(Idx) := NULL;
1423 g_null_lines.array_anc_id_25(Idx) := NULL;
1424 g_null_lines.array_anc_id_26(Idx) := NULL;
1425 g_null_lines.array_anc_id_27(Idx) := NULL;
1426 g_null_lines.array_anc_id_28(Idx) := NULL;
1427 g_null_lines.array_anc_id_29(Idx) := NULL;
1428 g_null_lines.array_anc_id_30(Idx) := NULL;
1429 g_null_lines.array_anc_id_31(Idx) := NULL;
1430 g_null_lines.array_anc_id_32(Idx) := NULL;
1431 g_null_lines.array_anc_id_33(Idx) := NULL;
1432 g_null_lines.array_anc_id_34(Idx) := NULL;
1433 g_null_lines.array_anc_id_35(Idx) := NULL;
1434 g_null_lines.array_anc_id_36(Idx) := NULL;
1435 g_null_lines.array_anc_id_37(Idx) := NULL;
1436 g_null_lines.array_anc_id_38(Idx) := NULL;
1437 g_null_lines.array_anc_id_39(Idx) := NULL;
1438 g_null_lines.array_anc_id_40(Idx) := NULL;
1439 g_null_lines.array_anc_id_41(Idx) := NULL;
1440 g_null_lines.array_anc_id_42(Idx) := NULL;
1441 g_null_lines.array_anc_id_43(Idx) := NULL;
1442 g_null_lines.array_anc_id_44(Idx) := NULL;
1443 g_null_lines.array_anc_id_45(Idx) := NULL;
1444 g_null_lines.array_anc_id_46(Idx) := NULL;
1445 g_null_lines.array_anc_id_47(Idx) := NULL;
1446 g_null_lines.array_anc_id_48(Idx) := NULL;
1447 g_null_lines.array_anc_id_49(Idx) := NULL;
1448 g_null_lines.array_anc_id_50(Idx) := NULL;
1449 g_null_lines.array_anc_id_51(Idx) := NULL;
1450 g_null_lines.array_anc_id_52(Idx) := NULL;
1451 g_null_lines.array_anc_id_53(Idx) := NULL;
1452 g_null_lines.array_anc_id_54(Idx) := NULL;
1453 g_null_lines.array_anc_id_55(Idx) := NULL;
1454 g_null_lines.array_anc_id_56(Idx) := NULL;
1455 g_null_lines.array_anc_id_57(Idx) := NULL;
1456 g_null_lines.array_anc_id_58(Idx) := NULL;
1457 g_null_lines.array_anc_id_59(Idx) := NULL;
1458 g_null_lines.array_anc_id_60(Idx) := NULL;
1459 g_null_lines.array_anc_id_61(Idx) := NULL;
1460 g_null_lines.array_anc_id_62(Idx) := NULL;
1461 g_null_lines.array_anc_id_63(Idx) := NULL;
1462 g_null_lines.array_anc_id_64(Idx) := NULL;
1463 g_null_lines.array_anc_id_65(Idx) := NULL;
1464 g_null_lines.array_anc_id_66(Idx) := NULL;
1465 g_null_lines.array_anc_id_67(Idx) := NULL;
1466 g_null_lines.array_anc_id_68(Idx) := NULL;
1467 g_null_lines.array_anc_id_69(Idx) := NULL;
1468 g_null_lines.array_anc_id_70(Idx) := NULL;
1469 g_null_lines.array_anc_id_71(Idx) := NULL;
1470 g_null_lines.array_anc_id_72(Idx) := NULL;
1471 g_null_lines.array_anc_id_73(Idx) := NULL;
1472 g_null_lines.array_anc_id_74(Idx) := NULL;
1473 g_null_lines.array_anc_id_75(Idx) := NULL;
1474 g_null_lines.array_anc_id_76(Idx) := NULL;
1475 g_null_lines.array_anc_id_77(Idx) := NULL;
1476 g_null_lines.array_anc_id_78(Idx) := NULL;
1477 g_null_lines.array_anc_id_79(Idx) := NULL;
1478 g_null_lines.array_anc_id_80(Idx) := NULL;
1479 g_null_lines.array_anc_id_81(Idx) := NULL;
1480 g_null_lines.array_anc_id_82(Idx) := NULL;
1481 g_null_lines.array_anc_id_83(Idx) := NULL;
1482 g_null_lines.array_anc_id_84(Idx) := NULL;
1483 g_null_lines.array_anc_id_85(Idx) := NULL;
1484 g_null_lines.array_anc_id_86(Idx) := NULL;
1485 g_null_lines.array_anc_id_87(Idx) := NULL;
1486 g_null_lines.array_anc_id_88(Idx) := NULL;
1487 g_null_lines.array_anc_id_89(Idx) := NULL;
1488 g_null_lines.array_anc_id_90(Idx) := NULL;
1489 g_null_lines.array_anc_id_91(Idx) := NULL;
1490 g_null_lines.array_anc_id_92(Idx) := NULL;
1491 g_null_lines.array_anc_id_93(Idx) := NULL;
1492 g_null_lines.array_anc_id_94(Idx) := NULL;
1493 g_null_lines.array_anc_id_95(Idx) := NULL;
1494 g_null_lines.array_anc_id_96(Idx) := NULL;
1495 g_null_lines.array_anc_id_97(Idx) := NULL;
1496 g_null_lines.array_anc_id_98(Idx) := NULL;
1497 g_null_lines.array_anc_id_99(Idx) := NULL;
1498 g_null_lines.array_anc_id_100(Idx) := NULL;
1499 --
1500 g_null_lines.array_event_number(Idx) := NULL;
1501 g_null_lines.array_entity_id(Idx) := NULL;
1502 g_null_lines.array_reversal_code(Idx) := NULL;
1503 --------------------------------------------------------------------------
1504 -- 4262811 - Initialised to prevent element at index[x] does not exist error
1505 g_null_lines.array_balance_type_code(Idx) := NULL;
1506 g_null_lines.array_ledger_id(Idx) := NULL;
1507 g_null_lines.array_override_acctd_amt_flag(Idx) := NULL;
1508 --------------------------------------------------------------------------
1509 g_null_lines.array_encumbrance_type_id(Idx) := NULL;
1510 --
1511 --------------------------------------
1512 -- 4219869
1513 -- Business Flow Applied To Attributes
1514 --------------------------------------
1515 g_null_lines.array_business_method_code(Idx) := NULL;
1516 g_null_lines.array_business_class_code(Idx) := NULL;
1517 g_null_lines.array_inherit_desc_flag(Idx) := 'N';
1518 g_null_lines.array_bflow_application_id(Idx) := NULL;
1519
1520 g_null_lines.array_bflow_entity_code(Idx) := NULL;
1521 g_null_lines.array_bflow_source_id_num_1(Idx) := NULL;
1522 g_null_lines.array_bflow_source_id_num_2(Idx) := NULL;
1523 g_null_lines.array_bflow_source_id_num_3(Idx) := NULL;
1524 g_null_lines.array_bflow_source_id_num_4(Idx) := NULL;
1525 g_null_lines.array_bflow_source_id_char_1(Idx) := NULL;
1526 g_null_lines.array_bflow_source_id_char_2(Idx) := NULL;
1527 g_null_lines.array_bflow_source_id_char_3(Idx) := NULL;
1528 g_null_lines.array_bflow_source_id_char_4(Idx) := NULL;
1529
1530 g_null_lines.array_bflow_distribution_type(Idx):= NULL;
1531 g_null_lines.array_bflow_dist_id_num_1(Idx) := NULL;
1532 g_null_lines.array_bflow_dist_id_num_2(Idx) := NULL;
1533 g_null_lines.array_bflow_dist_id_num_3(Idx) := NULL;
1534 g_null_lines.array_bflow_dist_id_num_4(Idx) := NULL;
1535 g_null_lines.array_bflow_dist_id_num_5(Idx) := NULL;
1536 g_null_lines.array_bflow_dist_id_char_1(Idx) := NULL;
1537 g_null_lines.array_bflow_dist_id_char_2(Idx) := NULL;
1538 g_null_lines.array_bflow_dist_id_char_3(Idx) := NULL;
1539 g_null_lines.array_bflow_dist_id_char_4(Idx) := NULL;
1540 g_null_lines.array_bflow_dist_id_char_5(Idx) := NULL;
1541
1542 g_null_lines.array_bflow_applied_to_amt(Idx) := NULL; -- 5132302
1543 --
1544 --
1545 -- Upgrade Attributes
1546 --
1547
1548
1549 g_null_lines.array_actual_upg_option(Idx) := NULL;
1550 g_null_lines.array_actual_upg_dr_ccid(Idx) := NULL;
1551 g_null_lines.array_actual_upg_cr_ccid(Idx) := NULL;
1552 g_null_lines.array_actual_upg_dr_ent_amt(Idx) := NULL;
1553 g_null_lines.array_actual_upg_cr_ent_amt(Idx) := NULL;
1554 g_null_lines.array_actual_upg_dr_ent_curr(Idx) := NULL;
1555 g_null_lines.array_actual_upg_cr_ent_curr(Idx) := NULL;
1556 g_null_lines.array_actual_upg_dr_ledger_amt(Idx) := NULL;
1557 g_null_lines.array_actual_upg_cr_ledger_amt(Idx) := NULL;
1558 g_null_lines.array_actual_upg_dr_acct_class(Idx) := NULL;
1559 g_null_lines.array_actual_upg_cr_acct_class(Idx) := NULL;
1560 g_null_lines.array_actual_upg_dr_xrate(Idx) := NULL;
1561 g_null_lines.array_actual_upg_dr_xrate_type(Idx) := NULL;
1562 g_null_lines.array_actual_upg_dr_xdate(Idx) := NULL;
1563 g_null_lines.array_actual_upg_cr_xrate(Idx) := NULL;
1564 g_null_lines.array_actual_upg_cr_xrate_type(Idx) := NULL;
1565 g_null_lines.array_actual_upg_cr_xdate(Idx) := NULL;
1566 g_null_lines.array_enc_upg_option(Idx) := NULL;
1567 g_null_lines.array_enc_upg_dr_ccid(Idx) := NULL;
1568 g_null_lines.array_enc_upg_cr_ccid(Idx) := NULL;
1569 g_null_lines.array_upg_dr_enc_type_id(Idx) := NULL;
1570 g_null_lines.array_upg_cr_enc_type_id(Idx) := NULL;
1571 g_null_lines.array_enc_upg_dr_ent_amt(Idx) := NULL;
1572 g_null_lines.array_enc_upg_cr_ent_amt(Idx) := NULL;
1573 g_null_lines.array_enc_upg_dr_ent_curr(Idx) := NULL;
1574 g_null_lines.array_enc_upg_cr_ent_curr(Idx) := NULL;
1575 g_null_lines.array_enc_upg_dr_ledger_amt(Idx) := NULL;
1576 g_null_lines.array_enc_upg_cr_ledger_amt(Idx) := NULL;
1577 g_null_lines.array_enc_upg_dr_acct_class(Idx) := NULL;
1578 g_null_lines.array_enc_upg_cr_acct_class(Idx) := NULL;
1579 -- 5845547
1580 g_null_lines.array_upg_party_type_code(Idx) := NULL;
1581 g_null_lines.array_upg_party_id(Idx) := NULL;
1582 g_null_lines.array_upg_party_site_id(Idx) := NULL;
1583 --
1584 --
1585 -- Allocation Attributes
1586 --
1587 g_null_lines.array_alloct_application_id(Idx) := NULL;
1588
1589 g_null_lines.array_alloct_entity_code(Idx) := NULL;
1590 g_null_lines.array_alloct_source_id_num_1(Idx) := NULL;
1591 g_null_lines.array_alloct_source_id_num_2(Idx) := NULL;
1592 g_null_lines.array_alloct_source_id_num_3(Idx) := NULL;
1593 g_null_lines.array_alloct_source_id_num_4(Idx) := NULL;
1594 g_null_lines.array_alloct_source_id_char_1(Idx) := NULL;
1595 g_null_lines.array_alloct_source_id_char_2(Idx) := NULL;
1596 g_null_lines.array_alloct_source_id_char_3(Idx) := NULL;
1597 g_null_lines.array_alloct_source_id_char_4(Idx) := NULL;
1598
1599 g_null_lines.array_alloct_distribution_type(Idx):= NULL;
1600 g_null_lines.array_alloct_dist_id_num_1(Idx) := NULL;
1601 g_null_lines.array_alloct_dist_id_num_2(Idx) := NULL;
1602 g_null_lines.array_alloct_dist_id_num_3(Idx) := NULL;
1603 g_null_lines.array_alloct_dist_id_num_4(Idx) := NULL;
1604 g_null_lines.array_alloct_dist_id_num_5(Idx) := NULL;
1605 g_null_lines.array_alloct_dist_id_char_1(Idx) := NULL;
1606 g_null_lines.array_alloct_dist_id_char_2(Idx) := NULL;
1607 g_null_lines.array_alloct_dist_id_char_3(Idx) := NULL;
1608 g_null_lines.array_alloct_dist_id_char_4(Idx) := NULL;
1609 g_null_lines.array_alloct_dist_id_char_5(Idx) := NULL;
1610
1611 --
1612 -- bug 4955764
1613 --
1614 g_null_lines.array_gl_date(Idx) := NULL;
1615
1616
1617 --
1618 END LOOP;
1619 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1620 trace
1621 (p_msg => 'END of SetNullLine'
1622 ,p_level => C_LEVEL_PROCEDURE
1623 ,p_module => l_log_module);
1624 END IF;
1625 EXCEPTION
1626 WHEN xla_exceptions_pkg.application_exception THEN
1627 RAISE;
1628 WHEN OTHERS THEN
1629 xla_exceptions_pkg.raise_message
1630 (p_location => 'XLA_AE_LINES_PKG.SetNullLine');
1631 --
1632 END SetNullLine;
1633 --
1634 /*======================================================================+
1635 | |
1636 | Public Procedure |
1637 | |
1638 | |
1639 +======================================================================*/
1640 PROCEDURE SetNewLine
1641 IS
1642 l_log_module VARCHAR2(240);
1643 l_result BOOLEAN;
1644 BEGIN
1645 --
1646 IF g_log_enabled THEN
1647 l_log_module := C_DEFAULT_MODULE||'.SetNewLine';
1648 END IF;
1649 --
1650 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1651 trace
1652 (p_msg => 'BEGIN of SetNewLine'
1653 ,p_level => C_LEVEL_PROCEDURE
1654 ,p_module => l_log_module);
1655
1656 END IF;
1657
1658 IF NVL(g_LineNumber,0) = 0 THEN
1659 g_rec_lines := g_null_lines;
1660
1661 ELSIF g_LineNumber = C_BULK_LIMIT THEN
1662 --
1663 -- insert headers into xla_ae_lines_gt table
1664 --
1665 l_result := xla_ae_lines_pkg.InsertLines;
1666 g_LineNumber := 0;
1667 g_rec_lines := g_null_lines;
1668
1669 END IF;
1670
1671 g_LineNumber := NVL(g_LineNumber ,0) + 1;
1672 g_override_acctd_amt_flag :='N';
1673 g_temp_line_num := NVL(g_temp_line_num ,0) + 1;
1674
1675 --
1676 -- following sets the temp line number
1677 --
1678 g_rec_lines.array_line_num(g_LineNumber) := g_temp_line_num;
1679 --
1680 -- following sets the extract line number
1681 --
1682 g_rec_lines.array_extract_line_num(g_LineNumber) := g_ExtractLine;
1683
1684 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1685 trace
1686 (p_msg => 'END of SetNewLine'
1687 ,p_level => C_LEVEL_PROCEDURE
1688 ,p_module => l_log_module);
1689 END IF;
1690 EXCEPTION
1691 WHEN xla_exceptions_pkg.application_exception THEN
1692 RAISE;
1693 WHEN OTHERS THEN
1694 xla_exceptions_pkg.raise_message
1695 (p_location => 'XLA_AE_LINES_PKG.SetNewLine');
1696 --
1697 END SetNewLine;
1698 --
1699 --
1700 /*======================================================================+
1701 | |
1702 | Public Procedure |
1703 | |
1704 | |
1705 +======================================================================*/
1706 PROCEDURE SetAcctLineType(
1707 p_component_type IN VARCHAR2
1708 , p_event_type_code IN VARCHAR2
1709 , p_line_definition_owner_code IN VARCHAR2
1710 , p_line_definition_code IN VARCHAR2
1711 , p_accounting_line_code IN VARCHAR2
1712 , p_accounting_line_type_code IN VARCHAR2
1713 , p_accounting_line_appl_id IN INTEGER
1714 , p_amb_context_code IN VARCHAR2
1715 , p_entity_code IN VARCHAR2
1716 , p_event_class_code IN VARCHAR2
1717 )
1718 IS
1719 l_log_module VARCHAR2(240);
1720 BEGIN
1721 --
1722 IF g_log_enabled THEN
1723 l_log_module := C_DEFAULT_MODULE||'.SetAcctLineType';
1724 END IF;
1725 --
1726 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1727 trace
1728 (p_msg => 'BEGIN of SetAcctLineType'
1729 ,p_level => C_LEVEL_PROCEDURE
1730 ,p_module => l_log_module);
1731 trace
1732 (p_msg => 'p_accounting_line_type_code = '||p_accounting_line_type_code||
1733 '- p_accounting_line_code= '||p_accounting_line_code
1734 ,p_level => C_LEVEL_PROCEDURE
1735 ,p_module => l_log_module);
1736
1737 END IF;
1738 --
1739 --
1740 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1741
1742 trace
1743 (p_msg => 'p_component_type = '||p_component_type||
1744 ' - p_accounting_line_appl_id = '||p_accounting_line_appl_id||
1745 ' - p_amb_context_code = '||p_amb_context_code||
1746 ' - p_entity_code = '||p_entity_code||
1747 ' - p_event_class_code = '||p_event_class_code
1748 ,p_level => C_LEVEL_STATEMENT
1749 ,p_module => l_log_module);
1750 END IF;
1751
1752 g_rec_lines.array_event_class_code(g_LineNumber) := p_event_class_code;
1753 g_rec_lines.array_event_type_code(g_LineNumber) := p_event_type_code;
1754 g_rec_lines.array_line_defn_owner_code(g_LineNumber) := p_line_definition_owner_code;
1755 g_rec_lines.array_line_defn_code(g_LineNumber) := p_line_definition_code;
1756 g_rec_lines.array_accounting_line_code(g_LineNumber) := p_accounting_line_code;
1757 g_rec_lines.array_accounting_line_type(g_LineNumber) := p_accounting_line_type_code;
1758
1759 --
1760 -- cache accounting line type information
1761 --
1762 g_accounting_line.component_type := p_component_type;
1763 g_accounting_line.accounting_line_code := p_accounting_line_code;
1764 g_accounting_line.accounting_line_type_code := p_accounting_line_type_code;
1765 g_accounting_line.accounting_line_appl_id := p_accounting_line_appl_id;
1766 g_accounting_line.amb_context_code := p_amb_context_code;
1767 g_accounting_line.entity_code := p_entity_code;
1768 g_accounting_line.event_class_code := p_event_class_code;
1769
1770 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1771 trace
1772 (p_msg => 'END of SetAcctLineType'
1773 ,p_level => C_LEVEL_PROCEDURE
1774 ,p_module => l_log_module);
1775 END IF;
1776 EXCEPTION
1777 WHEN xla_exceptions_pkg.application_exception THEN
1778 RAISE;
1779 WHEN OTHERS THEN
1780 xla_exceptions_pkg.raise_message
1781 (p_location => 'XLA_AE_LINES_PKG.SetAcctLineType');
1782 --
1783 END SetAcctLineType;
1784
1785 /*======================================================================+
1786 | |
1787 | Public Function |
1788 | |
1789 | |
1790 +======================================================================*/
1791 Function SetAcctLineOption(
1792 p_natural_side_code IN VARCHAR2
1793 , p_gain_or_loss_flag IN VARCHAR2
1794 , p_gl_transfer_mode_code IN VARCHAR2
1795 , p_acct_entry_type_code IN VARCHAR2
1796 , p_switch_side_flag IN VARCHAR2
1797 , p_merge_duplicate_code IN VARCHAR2
1798 )
1799 RETURN NUMBER
1800 IS
1801 l_ae_header_id NUMBER;
1802 l_log_module VARCHAR2(240);
1803 BEGIN
1804 --
1805 IF g_log_enabled THEN
1806 l_log_module := C_DEFAULT_MODULE||'.SetAcctLineOption';
1807 END IF;
1808 --
1809 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1810 trace
1811 (p_msg => 'BEGIN of SetAcctLineOption'
1812 ,p_level => C_LEVEL_PROCEDURE
1813 ,p_module => l_log_module);
1814
1815 trace
1816 (p_msg => 'p_natural_side_code = '||p_natural_side_code||
1817 ' - p_gl_transfer_mode_code = '||p_gl_transfer_mode_code||
1818 ' - p_acct_entry_type_code = '||p_acct_entry_type_code||
1819 ' - p_switch_side_flag = '||p_switch_side_flag||
1820 ' - p_merge_duplicate_code = '||p_merge_duplicate_code
1821 ,p_level => C_LEVEL_PROCEDURE
1822 ,p_module => l_log_module);
1823 END IF;
1824 --
1825 --
1826 -- I THINK WE DONT' NEED THIS IN BULK APPROACH
1827 --
1828 -- SetHdrLineNum(p_balance_type_code => p_acct_entry_type_code);
1829 --
1830 --
1831 g_rec_lines.array_gl_transfer_mode(g_LineNumber) := p_gl_transfer_mode_code ;
1832 g_rec_lines.array_natural_side_code(g_LineNumber) := p_natural_side_code ;
1833 g_rec_lines.array_gain_or_loss_flag(g_LineNumber) := p_gain_or_loss_flag ;
1834 g_rec_lines.array_acct_entry_type_code(g_LineNumber) := p_acct_entry_type_code ;
1835 g_rec_lines.array_switch_side_flag(g_LineNumber) := p_switch_side_flag ;
1836 g_rec_lines.array_merge_duplicate_code(g_LineNumber) := p_merge_duplicate_code ;
1837 --
1838 --
1839 l_ae_header_id := g_rec_lines.array_ae_header_id(g_LineNumber);
1840 --
1841 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1842
1843 trace
1844 (p_msg => 'return value. = '||TO_CHAR(l_ae_header_id)
1845 ,p_level => C_LEVEL_PROCEDURE
1846 ,p_module => l_log_module);
1847
1848 trace
1849 (p_msg => 'END of SetAcctLineOption'
1850 ,p_level => C_LEVEL_PROCEDURE
1851 ,p_module => l_log_module);
1852
1853 END IF;
1854 RETURN l_ae_header_id;
1855 EXCEPTION
1856 WHEN xla_exceptions_pkg.application_exception THEN
1857 RAISE;
1858 WHEN OTHERS THEN
1859 xla_exceptions_pkg.raise_message
1860 (p_location => 'XLA_AE_LINES_PKG.SetAcctLineOption');
1861 --
1862 END SetAcctLineOption;
1863 --
1864 /*======================================================================+
1865 | |
1866 | Public Procedure |
1867 | |
1868 | |
1869 +======================================================================*/
1870 PROCEDURE SetLineDescription(p_description IN VARCHAR2
1871 ,p_ae_header_id IN NUMBER)
1872 IS
1873 l_log_module VARCHAR2(240);
1874 BEGIN
1875 --
1876 IF g_log_enabled THEN
1877 l_log_module := C_DEFAULT_MODULE||'.SetLineDescription';
1878 END IF;
1879 --
1880 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1881 trace
1882 (p_msg => 'BEGIN of SetLineDescription'
1883 ,p_level => C_LEVEL_PROCEDURE
1884 ,p_module => l_log_module);
1885
1886 END IF;
1887 --
1888 g_rec_lines.array_description(g_LineNumber) := SUBSTR(p_description,1,1996);
1889 --
1890 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1891
1892 trace
1893 (p_msg => 'END of SetLineDescription'
1894 ,p_level => C_LEVEL_PROCEDURE
1895 ,p_module => l_log_module);
1896
1897 END IF;
1898 --
1899 EXCEPTION
1900 WHEN xla_exceptions_pkg.application_exception THEN
1901 RAISE;
1902 WHEN OTHERS THEN
1903 xla_exceptions_pkg.raise_message
1904 (p_location => 'XLA_AE_LINES_PKG.SetLineDescription');
1905 --
1906 END SetLineDescription;
1907 --
1908 --
1909 /*======================================================================+
1910 | |
1911 | Public Procedure |
1912 | |
1913 | set_ccid |
1914 | |
1915 | Caches the transaction and accounting CCIDs in the JE temporary lines |
1916 | |
1917 +======================================================================*/
1918 --replace SetCcid
1919 PROCEDURE set_ccid(
1920 p_code_combination_id IN NUMBER
1921 , p_value_type_code IN VARCHAR2
1922 , p_transaction_coa_id IN NUMBER
1923 , p_accounting_coa_id IN NUMBER
1924 , p_adr_code IN VARCHAR2
1925 , p_adr_type_code IN VARCHAR2
1926 , p_component_type IN VARCHAR2
1927 , p_component_code IN VARCHAR2
1928 , p_component_type_code IN VARCHAR2
1929 , p_component_appl_id IN INTEGER
1930 , p_amb_context_code IN VARCHAR2
1931 , p_side IN VARCHAR2
1932 )
1933 IS
1934 l_Idx BINARY_INTEGER;
1935 null_combination_id EXCEPTION;
1936 no_sl_coa_mapping EXCEPTION;
1937 l_log_module VARCHAR2(240);
1938 BEGIN
1939 --
1940 IF g_log_enabled THEN
1941 l_log_module := C_DEFAULT_MODULE||'.set_ccid';
1942 END IF;
1943 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1944 trace
1945 (p_msg => 'BEGIN of set_ccid'
1946 ,p_level => C_LEVEL_PROCEDURE
1947 ,p_module => l_log_module);
1948
1949 trace
1950 (p_msg => ' p_side = '||p_side ||
1951 ', p_code_combination_id = '||p_code_combination_id
1952 ,p_level => C_LEVEL_PROCEDURE
1953 ,p_module => l_log_module);
1954 END IF;
1955
1956 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1957 trace
1958 (p_msg => ' p_value_type_code = '||p_value_type_code ||
1959 ', p_transaction_coa_id = '|| p_transaction_coa_id||
1960 ', p_accounting_coa_id = '||p_accounting_coa_id
1961 ,p_level => C_LEVEL_PROCEDURE
1962 ,p_module => l_log_module);
1963
1964 trace
1965 (p_msg => ' p_adr_code = '||p_adr_code||
1966 ', p_adr_type_code = '|| p_adr_type_code
1967 ,p_level => C_LEVEL_PROCEDURE
1968 ,p_module => l_log_module);
1969
1970 trace
1971 (p_msg => ' p_component_type = '||p_component_type||
1972 ', p_component_code = '||p_component_code||
1973 ', p_component_type_code = '||p_component_type_code||
1974 ', p_component_appl_id = '||p_component_appl_id||
1975 ', p_amb_context_code = '||p_amb_context_code
1976 ,p_level => C_LEVEL_STATEMENT
1977 ,p_module => l_log_module);
1978
1979 END IF;
1980
1981 IF p_code_combination_id IS NULL OR p_code_combination_id = -1 THEN -- 5163338
1982 RAISE null_combination_id;
1983 END IF;
1984
1985 IF p_value_type_code ='S' AND
1986 ( XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.target_coa_id <>
1987 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.source_coa_id ) THEN
1988 -- transaction ccid
1989
1990 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.sl_coa_mapping_id IS NULL THEN
1991 RAISE no_sl_coa_mapping ;
1992 END IF;
1993
1994 l_Idx := NVL(g_transaction_accounts.array_ae_header_id.COUNT,0) + 1;
1995 g_transaction_accounts.array_line_num(l_Idx) := l_Idx ;
1996 g_transaction_accounts.array_ae_header_id(l_Idx) := g_rec_lines.array_ae_header_id(g_LineNumber);
1997 g_transaction_accounts.array_temp_line_num(l_Idx) := g_rec_lines.array_line_num(g_LineNumber);
1998 g_transaction_accounts.array_code_combination_id (l_Idx) := p_code_combination_id;
1999 g_transaction_accounts.array_segment(l_Idx) := NULL;
2000 g_transaction_accounts.array_from_segment_code(l_Idx) := NULL;
2001 g_transaction_accounts.array_to_segment_code(l_Idx) := NULL;
2002 g_transaction_accounts.array_processing_status_code(l_Idx) := C_MAP_CCID;
2003 g_transaction_accounts.array_side_code(l_Idx) := p_side;
2004
2005
2006 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2007 trace
2008 (p_msg => ' Transaction ccid = '||p_code_combination_id
2009 ,p_level => C_LEVEL_PROCEDURE
2010 ,p_module => l_log_module);
2011 END IF;
2012
2013 ELSE
2014 -- accounting ccid
2015
2016 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2017 trace
2018 (p_msg => ' Accounting ccid = '||p_code_combination_id
2019 ,p_level => C_LEVEL_PROCEDURE
2020 ,p_module => l_log_module);
2021 END IF;
2022
2023 CASE p_side
2024
2025 WHEN 'ALL' THEN
2026 g_rec_lines.array_ccid(g_LineNumber) := p_code_combination_id ;
2027 g_rec_lines.alt_array_ccid(g_LineNumber) := p_code_combination_id ;
2028
2029 CASE nvl(g_rec_lines.array_ccid_flag(g_LineNumber),C_INVALID)
2030 WHEN C_INVALID THEN g_rec_lines.array_ccid_flag(g_LineNumber) := C_CREATED;
2031 WHEN C_PROCESSING THEN g_rec_lines.array_ccid_flag(g_LineNumber) := C_NOT_PROCESSED;
2032 ELSE null;
2033 END CASE;
2034
2035 CASE nvl(g_rec_lines.alt_array_ccid_flag(g_LineNumber),C_INVALID)
2036 WHEN C_INVALID THEN g_rec_lines.alt_array_ccid_flag(g_LineNumber) := C_CREATED;
2037 WHEN C_PROCESSING THEN g_rec_lines.alt_array_ccid_flag(g_LineNumber) := C_NOT_PROCESSED;
2038 ELSE null;
2039 END CASE;
2040
2041 WHEN 'NA' THEN
2042 g_rec_lines.array_ccid(g_LineNumber) := p_code_combination_id ;
2043
2044 CASE nvl(g_rec_lines.array_ccid_flag(g_LineNumber),C_INVALID)
2045 WHEN C_INVALID THEN g_rec_lines.array_ccid_flag(g_LineNumber) := C_CREATED;
2046 WHEN C_PROCESSING THEN g_rec_lines.array_ccid_flag(g_LineNumber) := C_NOT_PROCESSED;
2047 ELSE null;
2048 END CASE;
2049
2050 WHEN 'CREDIT' THEN
2051 g_rec_lines.array_ccid(g_LineNumber) := p_code_combination_id ;
2052
2053 CASE nvl(g_rec_lines.array_ccid_flag(g_LineNumber),C_INVALID)
2054 WHEN C_INVALID THEN g_rec_lines.array_ccid_flag(g_LineNumber) := C_CREATED;
2055 WHEN C_PROCESSING THEN g_rec_lines.array_ccid_flag(g_LineNumber) := C_NOT_PROCESSED;
2056 ELSE null;
2057 END CASE;
2058
2059 WHEN 'DEBIT' THEN
2060 g_rec_lines.alt_array_ccid(g_LineNumber) := p_code_combination_id ;
2061
2062 CASE nvl(g_rec_lines.alt_array_ccid_flag(g_LineNumber),C_INVALID)
2063 WHEN C_INVALID THEN g_rec_lines.alt_array_ccid_flag(g_LineNumber) := C_CREATED;
2064 WHEN C_PROCESSING THEN g_rec_lines.alt_array_ccid_flag(g_LineNumber) := C_NOT_PROCESSED;
2065 ELSE null;
2066 END CASE;
2067
2068 ELSE
2069 g_rec_lines.array_ccid(g_LineNumber) := p_code_combination_id ;
2070
2071 CASE nvl(g_rec_lines.array_ccid_flag(g_LineNumber),C_INVALID)
2072 WHEN C_INVALID THEN g_rec_lines.array_ccid_flag(g_LineNumber) := C_CREATED;
2073 WHEN C_PROCESSING THEN g_rec_lines.array_ccid_flag(g_LineNumber) := C_NOT_PROCESSED;
2074 ELSE null;
2075 END CASE;
2076 END CASE;
2077
2078 END IF;
2079
2080 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2081 trace
2082 (p_msg => 'End of set_ccid'
2083 ,p_level => C_LEVEL_PROCEDURE
2084 ,p_module => l_log_module);
2085 END IF;
2086 EXCEPTION
2087 WHEN null_combination_id THEN
2088
2089 CASE p_side
2090 WHEN 'ALL' THEN
2091 g_rec_lines.array_ccid(g_LineNumber) := -1;
2092 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2093 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2094 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2095 WHEN 'NA' THEN
2096 g_rec_lines.array_ccid(g_LineNumber) := -1;
2097 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2098 WHEN 'CREDIT' THEN
2099 g_rec_lines.array_ccid(g_LineNumber) := -1;
2100 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2101 WHEN 'DEBIT' THEN
2102 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2103 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2104 ELSE
2105 g_rec_lines.array_ccid(g_LineNumber) := -1;
2106 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2107 END CASE;
2108
2109 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
2110 xla_accounting_err_pkg.build_message
2111 (p_appli_s_name => 'XLA'
2112 ,p_msg_name => 'XLA_AP_CCID_NULL'
2113 ,p_token_1 => 'COMPONENT_NAME'
2114 ,p_value_1 => XLA_AE_SOURCES_PKG.GetComponentName (
2115 'AMB_ADR'
2116 ,p_adr_code
2117 ,p_adr_type_code
2118 ,p_component_appl_id
2119 ,p_amb_context_code
2120 )
2121 ,p_token_2 => 'OWNER'
2122 ,p_value_2 => xla_lookups_pkg.get_meaning(
2123 'XLA_OWNER_TYPE'
2124 ,p_component_type_code
2125 )
2126 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2127 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2128 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2129 ,p_ae_header_id => NULL
2130 );
2131
2132 IF (C_LEVEL_ERROR >= g_log_level) THEN
2133 trace
2134 (p_msg => 'ERROR: XLA_AP_CCID_NULL'
2135 ,p_level => C_LEVEL_ERROR
2136 ,p_module => l_log_module);
2137 END IF;
2138 WHEN no_sl_coa_mapping THEN
2139
2140 CASE p_side
2141 WHEN 'ALL' THEN
2142 g_rec_lines.array_ccid(g_LineNumber) := -1;
2143 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2144 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2145 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2146 WHEN 'NA' THEN
2147 g_rec_lines.array_ccid(g_LineNumber) := -1;
2148 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2149 WHEN 'CREDIT' THEN
2150 g_rec_lines.array_ccid(g_LineNumber) := -1;
2151 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2152 WHEN 'DEBIT' THEN
2153 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2154 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2155 ELSE
2156 g_rec_lines.array_ccid(g_LineNumber) := -1;
2157 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2158 END CASE;
2159
2160 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
2161
2162 xla_accounting_err_pkg.build_message
2163 (p_appli_s_name => 'XLA'
2164 ,p_msg_name => 'XLA_AP_NO_SL_COA_MAPPING'
2165 ,p_token_1 => 'SEGMENT_RULE_NAME'
2166 ,p_value_1 => XLA_AE_SOURCES_PKG.GetComponentName (
2167 'AMB_ADR'
2168 ,p_adr_code
2169 ,p_adr_type_code
2170 ,p_component_appl_id
2171 ,p_amb_context_code
2172 )
2173 ,p_token_2 => 'OWNER'
2174 ,p_value_2 => xla_lookups_pkg.get_meaning(
2175 'XLA_OWNER_TYPE'
2176 ,p_adr_type_code
2177 )
2178 ,p_token_3 => 'LEDGER_NAME'
2179 ,p_value_3 => xla_accounting_cache_pkg.GetValueChar
2180 (
2181 p_source_code => 'XLA_LEDGER_NAME'
2182 , p_target_ledger_id =>
2183 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2184 )
2185 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2186 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2187 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2188 ,p_ae_header_id => NULL
2189 );
2190
2191 IF (C_LEVEL_ERROR >= g_log_level) THEN
2192 trace
2193 (p_msg => 'ERROR: XLA_AP_NO_SL_COA_MAPPING'
2194 ,p_level => C_LEVEL_ERROR
2195 ,p_module => l_log_module);
2196 END IF;
2197 WHEN xla_exceptions_pkg.application_exception THEN
2198 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2199 trace
2200 (p_msg => 'Error. = '||sqlerrm
2201 ,p_level => C_LEVEL_PROCEDURE
2202 ,p_module => l_log_module);
2203 END IF;
2204 RAISE;
2205 WHEN OTHERS THEN
2206 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2207 trace
2208 (p_msg => 'Error. = '||sqlerrm
2209 ,p_level => C_LEVEL_PROCEDURE
2210 ,p_module => l_log_module);
2211 END IF;
2212 xla_exceptions_pkg.raise_message
2213 (p_location => 'XLA_AE_LINES_PKG.set_ccid');
2214 END set_ccid;
2215
2216 /*=========================================================================+
2217 | |
2218 | Public Procedure |
2219 | |
2220 | set_segment |
2221 | |
2222 | Caches the transaction and accounting segments in the JE temporary lines |
2223 | |
2224 +=========================================================================*/
2225
2226 PROCEDURE set_segment(
2227 p_to_segment_code IN VARCHAR2
2228 , p_segment_value IN VARCHAR2
2229 , p_from_segment_code IN VARCHAR2
2230 , p_from_combination_id IN NUMBER
2231 , p_value_type_code IN VARCHAR2
2232 , p_transaction_coa_id IN NUMBER
2233 , p_accounting_coa_id IN NUMBER
2234 , p_flexfield_segment_code IN VARCHAR2
2235 , p_flex_value_set_id IN NUMBER
2236 , p_adr_code IN VARCHAR2
2237 , p_adr_type_code IN VARCHAR2
2238 , p_component_type IN VARCHAR2
2239 , p_component_code IN VARCHAR2
2240 , p_component_type_code IN VARCHAR2
2241 , p_component_appl_id IN INTEGER
2242 , p_amb_context_code IN VARCHAR2
2243 , p_entity_code IN VARCHAR2
2244 , p_event_class_code IN VARCHAR2
2245 , p_side IN VARCHAR2
2246 )
2247 IS
2248 l_Idx BINARY_INTEGER;
2249 l_accounting_values BOOLEAN;
2250 l_to_segment_code VARCHAR2(30);
2251 l_from_segment_code VARCHAR2(30);
2252 l_segment_value VARCHAR2(30);
2253 l_coa_name VARCHAR2(240);
2254 invalid_segment_code EXCEPTION;
2255 invalid_segment_qualifier EXCEPTION;
2256 null_segment_value EXCEPTION;
2257 no_sl_coa_mapping EXCEPTION;
2258 l_log_module VARCHAR2(240);
2259 BEGIN
2260 IF g_log_enabled THEN
2261 l_log_module := C_DEFAULT_MODULE||'.set_segment';
2262 END IF;
2263 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2264 trace
2265 (p_msg => 'BEGIN of set_segment'
2266 ,p_level => C_LEVEL_PROCEDURE
2267 ,p_module => l_log_module);
2268 trace
2269 (p_msg => 'p_to_segment_code = '||p_to_segment_code ||
2270 ', p_segment_value = '||p_segment_value||
2271 ',p_side ='||p_side
2272 ,p_level => C_LEVEL_PROCEDURE
2273 ,p_module => l_log_module);
2274
2275 END IF;
2276
2277 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2278 trace
2279 (p_msg => 'p_from_segment_code = '||p_from_segment_code ||
2280 ', p_from_combination_id = '||p_from_combination_id ||
2281 ', p_value_type_code = '||p_value_type_code
2282 ,p_level => C_LEVEL_PROCEDURE
2283 ,p_module => l_log_module);
2284
2285 trace
2286 (p_msg => ' p_adr_code = '||p_adr_code||
2287 ', p_adr_type_code = '|| p_adr_type_code
2288 ,p_level => C_LEVEL_PROCEDURE
2289 ,p_module => l_log_module);
2290
2291 trace
2292 (p_msg => ' p_flexfield_segment_code = '||p_flexfield_segment_code ||
2293 ', p_flex_value_set_id = '||p_flex_value_set_id ||
2294 ', p_transaction_coa_id = '|| p_transaction_coa_id||
2295 ', p_accounting_coa_id = '||p_accounting_coa_id
2296 ,p_level => C_LEVEL_PROCEDURE
2297 ,p_module => l_log_module);
2298 trace
2299 (p_msg => ' p_component_type = '||p_component_type||
2300 ', p_component_code = '||p_component_code||
2301 ', p_component_type_code = '||p_component_type_code||
2302 ', p_component_appl_id = '||p_component_appl_id||
2303 ', p_amb_context_code = '||p_amb_context_code
2304 ,p_level => C_LEVEL_STATEMENT
2305 ,p_module => l_log_module);
2306 END IF;
2307
2308
2309 l_segment_value := p_segment_value;
2310 l_from_segment_code := p_from_segment_code;
2311 l_to_segment_code := p_to_segment_code;
2312 l_accounting_values := TRUE;
2313
2314
2315 IF l_from_segment_code IS NOT NULL AND l_from_segment_code NOT LIKE 'SEGMENT%' THEN
2316
2317 l_from_segment_code := xla_ae_code_combination_pkg.get_segment_code(
2318 p_flex_application_id => 101
2319 ,p_application_short_name => 'SQLGL'
2320 ,p_id_flex_code => 'GL#'
2321 ,p_id_flex_num => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.source_coa_id
2322 ,p_segment_qualifier => l_from_segment_code
2323 ,p_component_type => p_component_type
2324 ,p_component_code => p_component_code
2325 ,p_component_type_code => p_component_type_code
2326 ,p_component_appl_id => p_component_appl_id
2327 ,p_amb_context_code => p_amb_context_code
2328 ,p_entity_code => p_entity_code
2329 ,p_event_class_code => p_event_class_code
2330 );
2331 END IF;
2332
2333 IF l_to_segment_code IS NOT NULL AND l_to_segment_code NOT LIKE 'SEGMENT%' THEN
2334
2335 l_to_segment_code := xla_ae_code_combination_pkg.get_segment_code(
2336 p_flex_application_id => 101
2337 ,p_application_short_name => 'SQLGL'
2338 ,p_id_flex_code => 'GL#'
2339 ,p_id_flex_num => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.target_coa_id
2340 ,p_segment_qualifier => l_to_segment_code
2341 ,p_component_type => p_component_type
2342 ,p_component_code => p_component_code
2343 ,p_component_type_code => p_component_type_code
2344 ,p_component_appl_id => p_component_appl_id
2345 ,p_amb_context_code => p_amb_context_code
2346 ,p_entity_code => p_entity_code
2347 ,p_event_class_code => p_event_class_code
2348 );
2349 END IF;
2350
2351 IF l_to_segment_code IS NULL THEN
2352 RAISE invalid_segment_code;
2353 END IF;
2354
2355
2356 IF ( XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.target_coa_id <>
2357 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.source_coa_id ) AND
2358 p_accounting_coa_id IS NULL AND
2359 p_value_type_code ='S' AND
2360 p_from_combination_id IS NULL AND
2361 p_flexfield_segment_code IS NOT NULL THEN
2362 -- segment qualifier, secondary ledger , not value set
2363
2364 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.sl_coa_mapping_id IS NULL THEN
2365 RAISE no_sl_coa_mapping ;
2366 END IF;
2367
2368 IF p_segment_value IS NULL THEN
2369 RAISE null_segment_value;
2370 END IF;
2371
2372 IF nvl(p_flexfield_segment_code ,'X') NOT IN ('GL_BALANCING',
2373 'GL_ACCOUNT' ,
2374 'GL_INTERCOMPANY',
2375 'GL_MANAGEMENT',
2376 'FA_COST_CTR'
2377 ) THEN
2378 RAISE invalid_segment_qualifier;
2379 END IF;
2380
2381 l_Idx := NVL(g_transaction_accounts.array_ae_header_id.COUNT,0)+1;
2382 g_transaction_accounts.array_line_num(l_Idx) := l_Idx ;
2383 g_transaction_accounts.array_ae_header_id(l_Idx) := g_rec_lines.array_ae_header_id(g_LineNumber);
2384 g_transaction_accounts.array_temp_line_num(l_Idx) := g_rec_lines.array_line_num(g_LineNumber);
2385 g_transaction_accounts.array_code_combination_id(l_Idx) := NULL;
2386 g_transaction_accounts.array_segment (l_Idx) := p_segment_value;
2387 g_transaction_accounts.array_from_segment_code (l_Idx) := p_flexfield_segment_code;
2388 g_transaction_accounts.array_to_segment_code(l_Idx) := l_to_segment_code;
2389 g_transaction_accounts.array_processing_status_code(l_Idx) := C_MAP_QUALIFIER;
2390 g_transaction_accounts.array_side_code(l_Idx) := p_side;
2391
2392 l_accounting_values := FALSE;
2393
2394 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2395 trace
2396 (p_msg => ' Transaction seg qualifier = '||p_segment_value
2397 ,p_level => C_LEVEL_PROCEDURE
2398 ,p_module => l_log_module);
2399 END IF;
2400
2401 ELSIF ( XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.target_coa_id <>
2402 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.source_coa_id ) AND
2403 p_value_type_code ='S' AND
2404 p_from_combination_id IS NOT NULL THEN
2405 --transaction segment, secondary ledger
2406
2407 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.sl_coa_mapping_id IS NULL THEN
2408 RAISE no_sl_coa_mapping ;
2409 END IF;
2410
2411 l_Idx := NVL(g_transaction_accounts.array_ae_header_id.COUNT,0) + 1;
2412 g_transaction_accounts.array_line_num(l_Idx) := l_Idx ;
2413 g_transaction_accounts.array_ae_header_id(l_Idx) := g_rec_lines.array_ae_header_id(g_LineNumber);
2414 g_transaction_accounts.array_temp_line_num(l_Idx) := g_rec_lines.array_line_num(g_LineNumber);
2415 g_transaction_accounts.array_code_combination_id(l_Idx) := p_from_combination_id;
2416 g_transaction_accounts.array_segment (l_Idx) := NULL;
2417 g_transaction_accounts.array_from_segment_code (l_Idx) := l_from_segment_code;
2418 g_transaction_accounts.array_to_segment_code (l_Idx) := l_to_segment_code;
2419 g_transaction_accounts.array_processing_status_code(l_Idx) := C_MAP_SEGMENT;
2420 g_transaction_accounts.array_side_code(l_Idx) := p_side;
2421
2422 l_accounting_values := FALSE;
2423
2424 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2425 trace
2426 (p_msg => ' get seg '||l_from_segment_code||'from ccid = '||p_from_combination_id
2427 ,p_level => C_LEVEL_PROCEDURE
2428 ,p_module => l_log_module);
2429 END IF;
2430
2431 ELSIF ( XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.target_coa_id =
2432 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.source_coa_id ) AND
2433 -- p_accounting_coa_id IS NOT NULL AND -- bug 4304098
2434 p_value_type_code ='S' AND
2435 p_from_combination_id IS NOT NULL THEN
2436
2437 -- primary ledger
2438 l_segment_value := xla_ae_code_combination_pkg.get_flex_segment_value(
2439 p_combination_id => p_from_combination_id
2440 ,p_segment_code => l_from_segment_code
2441 ,p_id_flex_code => 'GL#'
2442 ,p_flex_application_id => 101
2443 ,p_application_short_name => 'SQLGL'
2444 ,p_component_type => p_component_type
2445 ,p_component_code => p_component_code
2446 ,p_component_type_code => p_component_type_code
2447 ,p_component_appl_id => p_component_appl_id
2448 ,p_amb_context_code => p_amb_context_code
2449 ,p_entity_code => p_entity_code
2450 ,p_event_class_code => p_event_class_code
2451 ,p_ae_header_id => NULL
2452 );
2453
2454 l_accounting_values := TRUE;
2455
2456 END IF;
2457
2458 IF l_accounting_values THEN
2459
2460 IF p_side = 'CREDIT' or p_side = 'ALL' or p_side = 'NA' OR p_side is null THEN
2461
2462 CASE NVL(g_rec_lines.array_ccid_flag(g_LineNumber),C_INVALID)
2463 WHEN C_CREATED THEN g_rec_lines.array_ccid_flag(g_LineNumber) := C_NOT_PROCESSED;
2464 WHEN C_INVALID THEN
2465 IF g_rec_lines.array_ccid(g_LineNumber) IS NULL THEN
2466 g_rec_lines.array_ccid_flag(g_LineNumber) := C_PROCESSING;
2467 END IF;
2468 ELSE null;
2469 END CASE;
2470
2471 CASE l_to_segment_code
2472 WHEN 'SEGMENT1' THEN g_rec_lines.array_segment1(g_LineNumber) := l_segment_value;
2473 WHEN 'SEGMENT2' THEN g_rec_lines.array_segment2(g_LineNumber) := l_segment_value;
2474 WHEN 'SEGMENT3' THEN g_rec_lines.array_segment3(g_LineNumber) := l_segment_value;
2475 WHEN 'SEGMENT4' THEN g_rec_lines.array_segment4(g_LineNumber) := l_segment_value;
2476 WHEN 'SEGMENT5' THEN g_rec_lines.array_segment5(g_LineNumber) := l_segment_value;
2477 WHEN 'SEGMENT6' THEN g_rec_lines.array_segment6(g_LineNumber) := l_segment_value;
2478 WHEN 'SEGMENT7' THEN g_rec_lines.array_segment7(g_LineNumber) := l_segment_value;
2479 WHEN 'SEGMENT8' THEN g_rec_lines.array_segment8(g_LineNumber) := l_segment_value;
2480 WHEN 'SEGMENT9' THEN g_rec_lines.array_segment9(g_LineNumber) := l_segment_value;
2481 WHEN 'SEGMENT10' THEN g_rec_lines.array_segment10(g_LineNumber) := l_segment_value;
2482 WHEN 'SEGMENT11' THEN g_rec_lines.array_segment11(g_LineNumber) := l_segment_value;
2483 WHEN 'SEGMENT12' THEN g_rec_lines.array_segment12(g_LineNumber) := l_segment_value;
2484 WHEN 'SEGMENT13' THEN g_rec_lines.array_segment13(g_LineNumber) := l_segment_value;
2485 WHEN 'SEGMENT14' THEN g_rec_lines.array_segment14(g_LineNumber) := l_segment_value;
2486 WHEN 'SEGMENT15' THEN g_rec_lines.array_segment15(g_LineNumber) := l_segment_value;
2487 WHEN 'SEGMENT16' THEN g_rec_lines.array_segment16(g_LineNumber) := l_segment_value;
2488 WHEN 'SEGMENT17' THEN g_rec_lines.array_segment17(g_LineNumber) := l_segment_value;
2489 WHEN 'SEGMENT18' THEN g_rec_lines.array_segment18(g_LineNumber) := l_segment_value;
2490 WHEN 'SEGMENT19' THEN g_rec_lines.array_segment19(g_LineNumber) := l_segment_value;
2491 WHEN 'SEGMENT20' THEN g_rec_lines.array_segment20(g_LineNumber) := l_segment_value;
2492 WHEN 'SEGMENT21' THEN g_rec_lines.array_segment21(g_LineNumber) := l_segment_value;
2493 WHEN 'SEGMENT22' THEN g_rec_lines.array_segment22(g_LineNumber) := l_segment_value;
2494 WHEN 'SEGMENT23' THEN g_rec_lines.array_segment23(g_LineNumber) := l_segment_value;
2495 WHEN 'SEGMENT24' THEN g_rec_lines.array_segment24(g_LineNumber) := l_segment_value;
2496 WHEN 'SEGMENT25' THEN g_rec_lines.array_segment25(g_LineNumber) := l_segment_value;
2497 WHEN 'SEGMENT26' THEN g_rec_lines.array_segment26(g_LineNumber) := l_segment_value;
2498 WHEN 'SEGMENT27' THEN g_rec_lines.array_segment27(g_LineNumber) := l_segment_value;
2499 WHEN 'SEGMENT28' THEN g_rec_lines.array_segment28(g_LineNumber) := l_segment_value;
2500 WHEN 'SEGMENT29' THEN g_rec_lines.array_segment29(g_LineNumber) := l_segment_value;
2501 WHEN 'SEGMENT30' THEN g_rec_lines.array_segment30(g_LineNumber) := l_segment_value;
2502 ELSE
2503 RAISE invalid_segment_code;
2504 END CASE;
2505
2506 END IF;
2507
2508 IF p_side = 'DEBIT' or p_side = 'ALL' THEN
2509
2510 CASE NVL(g_rec_lines.alt_array_ccid_flag(g_LineNumber),C_INVALID)
2511 WHEN C_CREATED THEN g_rec_lines.alt_array_ccid_flag(g_LineNumber) := C_NOT_PROCESSED;
2512 WHEN C_INVALID THEN
2513 IF g_rec_lines.alt_array_ccid(g_LineNumber) IS NULL THEN
2514 g_rec_lines.alt_array_ccid_flag(g_LineNumber) := C_PROCESSING;
2515 END IF;
2516 ELSE null;
2517 END CASE;
2518
2519 CASE l_to_segment_code
2520 WHEN 'SEGMENT1' THEN g_rec_lines.alt_array_segment1(g_LineNumber) := l_segment_value;
2521 WHEN 'SEGMENT2' THEN g_rec_lines.alt_array_segment2(g_LineNumber) := l_segment_value;
2522 WHEN 'SEGMENT3' THEN g_rec_lines.alt_array_segment3(g_LineNumber) := l_segment_value;
2523 WHEN 'SEGMENT4' THEN g_rec_lines.alt_array_segment4(g_LineNumber) := l_segment_value;
2524 WHEN 'SEGMENT5' THEN g_rec_lines.alt_array_segment5(g_LineNumber) := l_segment_value;
2525 WHEN 'SEGMENT6' THEN g_rec_lines.alt_array_segment6(g_LineNumber) := l_segment_value;
2526 WHEN 'SEGMENT7' THEN g_rec_lines.alt_array_segment7(g_LineNumber) := l_segment_value;
2527 WHEN 'SEGMENT8' THEN g_rec_lines.alt_array_segment8(g_LineNumber) := l_segment_value;
2528 WHEN 'SEGMENT9' THEN g_rec_lines.alt_array_segment9(g_LineNumber) := l_segment_value;
2529 WHEN 'SEGMENT10' THEN g_rec_lines.alt_array_segment10(g_LineNumber) := l_segment_value;
2530 WHEN 'SEGMENT11' THEN g_rec_lines.alt_array_segment11(g_LineNumber) := l_segment_value;
2531 WHEN 'SEGMENT12' THEN g_rec_lines.alt_array_segment12(g_LineNumber) := l_segment_value;
2532 WHEN 'SEGMENT13' THEN g_rec_lines.alt_array_segment13(g_LineNumber) := l_segment_value;
2533 WHEN 'SEGMENT14' THEN g_rec_lines.alt_array_segment14(g_LineNumber) := l_segment_value;
2534 WHEN 'SEGMENT15' THEN g_rec_lines.alt_array_segment15(g_LineNumber) := l_segment_value;
2535 WHEN 'SEGMENT16' THEN g_rec_lines.alt_array_segment16(g_LineNumber) := l_segment_value;
2536 WHEN 'SEGMENT17' THEN g_rec_lines.alt_array_segment17(g_LineNumber) := l_segment_value;
2537 WHEN 'SEGMENT18' THEN g_rec_lines.alt_array_segment18(g_LineNumber) := l_segment_value;
2538 WHEN 'SEGMENT19' THEN g_rec_lines.alt_array_segment19(g_LineNumber) := l_segment_value;
2539 WHEN 'SEGMENT20' THEN g_rec_lines.alt_array_segment20(g_LineNumber) := l_segment_value;
2540 WHEN 'SEGMENT21' THEN g_rec_lines.alt_array_segment21(g_LineNumber) := l_segment_value;
2541 WHEN 'SEGMENT22' THEN g_rec_lines.alt_array_segment22(g_LineNumber) := l_segment_value;
2542 WHEN 'SEGMENT23' THEN g_rec_lines.alt_array_segment23(g_LineNumber) := l_segment_value;
2543 WHEN 'SEGMENT24' THEN g_rec_lines.alt_array_segment24(g_LineNumber) := l_segment_value;
2544 WHEN 'SEGMENT25' THEN g_rec_lines.alt_array_segment25(g_LineNumber) := l_segment_value;
2545 WHEN 'SEGMENT26' THEN g_rec_lines.alt_array_segment26(g_LineNumber) := l_segment_value;
2546 WHEN 'SEGMENT27' THEN g_rec_lines.alt_array_segment27(g_LineNumber) := l_segment_value;
2547 WHEN 'SEGMENT28' THEN g_rec_lines.alt_array_segment28(g_LineNumber) := l_segment_value;
2548 WHEN 'SEGMENT29' THEN g_rec_lines.alt_array_segment29(g_LineNumber) := l_segment_value;
2549 WHEN 'SEGMENT30' THEN g_rec_lines.alt_array_segment30(g_LineNumber) := l_segment_value;
2550 ELSE
2551 RAISE invalid_segment_code;
2552 END CASE;
2553
2554 END IF;
2555
2556 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2557 trace
2558 (p_msg => ' Accounting seg = '||l_segment_value
2559 ,p_level => C_LEVEL_PROCEDURE
2560 ,p_module => l_log_module);
2561 END IF;
2562
2563 END IF;
2564
2565 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2566 trace
2567 (p_msg => 'l_to_segment_code = '||l_to_segment_code ||
2568 ', l_segment_value = '||l_segment_value
2569 ,p_level => C_LEVEL_PROCEDURE
2570 ,p_module => l_log_module);
2571 END IF;
2572
2573 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2574 trace
2575 (p_msg => 'END of set_segment'
2576 ,p_level => C_LEVEL_PROCEDURE
2577 ,p_module => l_log_module);
2578 END IF;
2579 EXCEPTION
2580 WHEN no_sl_coa_mapping THEN
2581
2582 CASE p_side
2583 WHEN 'ALL' THEN
2584 g_rec_lines.array_ccid(g_LineNumber) := -1;
2585 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2586 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2587 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2588 WHEN 'NA' THEN
2589 g_rec_lines.array_ccid(g_LineNumber) := -1;
2590 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2591 WHEN 'CREDIT' THEN
2592 g_rec_lines.array_ccid(g_LineNumber) := -1;
2593 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2594 WHEN 'DEBIT' THEN
2595 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2596 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2597 ELSE
2598 g_rec_lines.array_ccid(g_LineNumber) := -1;
2599 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2600 END CASE;
2601
2602 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
2603
2604 xla_accounting_err_pkg.build_message
2605 (p_appli_s_name => 'XLA'
2606 ,p_msg_name => 'XLA_AP_NO_SL_COA_MAPPING'
2607 ,p_token_1 => 'SEGMENT_RULE_NAME'
2608 ,p_value_1 => XLA_AE_SOURCES_PKG.GetComponentName (
2609 'AMB_ADR'
2610 ,p_adr_code
2611 ,p_adr_type_code
2612 ,p_component_appl_id
2613 ,p_amb_context_code
2614 )
2615 ,p_token_2 => 'OWNER'
2616 ,p_value_2 => xla_lookups_pkg.get_meaning(
2617 'XLA_OWNER_TYPE'
2618 ,p_adr_type_code
2619 )
2620 ,p_token_3 => 'LEDGER_NAME'
2621 ,p_value_3 => xla_accounting_cache_pkg.GetValueChar
2622 (
2623 p_source_code => 'XLA_LEDGER_NAME'
2624 , p_target_ledger_id =>
2625 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2626 )
2627 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2628 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2629 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2630 ,p_ae_header_id => NULL
2631 );
2632
2633 IF (C_LEVEL_ERROR >= g_log_level) THEN
2634 trace
2635 (p_msg => 'ERROR: XLA_AP_NO_SL_COA_MAPPING'
2636 ,p_level => C_LEVEL_ERROR
2637 ,p_module => l_log_module);
2638 END IF;
2639
2640 WHEN invalid_segment_code THEN
2641
2642 CASE p_side
2643 WHEN 'ALL' THEN
2644 g_rec_lines.array_ccid(g_LineNumber) := -1;
2645 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2646 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2647 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2648 WHEN 'NA' THEN
2649 g_rec_lines.array_ccid(g_LineNumber) := -1;
2650 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2651 WHEN 'CREDIT' THEN
2652 g_rec_lines.array_ccid(g_LineNumber) := -1;
2653 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2654 WHEN 'DEBIT' THEN
2655 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2656 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2657 ELSE
2658 g_rec_lines.array_ccid(g_LineNumber) := -1;
2659 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2660 END CASE;
2661
2662 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
2663
2664 l_coa_name := xla_accounting_cache_pkg.GetValueChar
2665 (
2666 p_source_code => 'XLA_COA_NAME'
2667 , p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2668 );
2669
2670 xla_accounting_err_pkg.build_message
2671 (p_appli_s_name => 'XLA'
2672 ,p_msg_name => 'XLA_AP_INVALID_SEGMENT'
2673 ,p_token_1 => 'COMPONENT_TYPE'
2674 ,p_value_1 => xla_lookups_pkg.get_meaning(
2675 'XLA_AMB_COMPONENT_TYPE'
2676 , p_component_type
2677 )
2678 ,p_token_2 => 'COMPONENT_NAME'
2679 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
2680 p_component_type
2681 ,p_component_code
2682 ,p_component_type_code
2683 ,p_component_appl_id
2684 ,p_amb_context_code
2685 ,p_entity_code
2686 ,p_event_class_code
2687 )
2688 ,p_token_3 => 'OWNER'
2689 ,p_value_3 => xla_lookups_pkg.get_meaning(
2690 'XLA_OWNER_TYPE'
2691 ,p_component_type_code
2692 )
2693 ,p_token_4 => 'QUALIFIER_NAME'
2694 ,p_value_4 => xla_lookups_pkg.get_meaning(
2695 p_lookup_type => 'XLA_FLEXFIELD_SEGMENTS_QUAL'
2696 , p_lookup_code => p_to_segment_code
2697 )
2698 ,p_token_5 => 'ACCOUNTING_COA'
2699 ,p_value_5 => l_coa_name
2700 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2701 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2702 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2703 ,p_ae_header_id => NULL -- p_ae_header_id
2704 );
2705
2706 IF (C_LEVEL_ERROR >= g_log_level) THEN
2707 trace
2708 (p_msg => 'ERROR: XLA_AP_INVALID_SEGMENT'
2709 ,p_level => C_LEVEL_ERROR
2710 ,p_module => l_log_module);
2711 END IF;
2712
2713 WHEN null_segment_value THEN
2714
2715 CASE p_side
2716 WHEN 'ALL' THEN
2717 g_rec_lines.array_ccid(g_LineNumber) := -1;
2718 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2719 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2720 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2721 WHEN 'NA' THEN
2722 g_rec_lines.array_ccid(g_LineNumber) := -1;
2723 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2724 WHEN 'CREDIT' THEN
2725 g_rec_lines.array_ccid(g_LineNumber) := -1;
2726 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2727 WHEN 'DEBIT' THEN
2728 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2729 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2730 ELSE
2731 g_rec_lines.array_ccid(g_LineNumber) := -1;
2732 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2733 END CASE;
2734
2735 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
2736
2737 xla_accounting_err_pkg.build_message
2738 (p_appli_s_name => 'XLA'
2739 ,p_msg_name => 'XLA_AP_NULL_SEGMENT_VALUE'
2740 ,p_token_1 => 'SEGMENT_RULE_NAME'
2741 ,p_value_1 => XLA_AE_SOURCES_PKG.GetComponentName (
2742 'AMB_ADR'
2743 ,p_adr_code
2744 ,p_adr_type_code
2745 ,p_component_appl_id
2746 ,p_amb_context_code
2747 )
2748 ,p_token_2 => 'OWNER'
2749 ,p_value_2 => xla_lookups_pkg.get_meaning(
2750 'XLA_OWNER_TYPE'
2751 ,p_adr_type_code
2752 )
2753 ,p_token_3 => 'QUALIFIER_NAME'
2754 ,p_value_3 => xla_lookups_pkg.get_meaning(
2755 p_lookup_type => 'XLA_FLEXFIELD_SEGMENTS_QUAL'
2756 , p_lookup_code => p_flexfield_segment_code
2757 )
2758 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2759 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2760 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2761 ,p_ae_header_id => NULL -- p_ae_header_id
2762 );
2763
2764 IF (C_LEVEL_ERROR >= g_log_level) THEN
2765 trace
2766 (p_msg => 'ERROR: XLA_AP_NULL_SEGMENT_VALUE'
2767 ,p_level => C_LEVEL_ERROR
2768 ,p_module => l_log_module);
2769 END IF;
2770
2771 WHEN invalid_segment_qualifier THEN
2772
2773 CASE p_side
2774 WHEN 'ALL' THEN
2775 g_rec_lines.array_ccid(g_LineNumber) := -1;
2776 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2777 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2778 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2779 WHEN 'NA' THEN
2780 g_rec_lines.array_ccid(g_LineNumber) := -1;
2781 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2782 WHEN 'CREDIT' THEN
2783 g_rec_lines.array_ccid(g_LineNumber) := -1;
2784 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2785 WHEN 'DEBIT' THEN
2786 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
2787 g_rec_lines.alt_array_ccid_flag(g_LineNumber):= C_INVALID;
2788 ELSE
2789 g_rec_lines.array_ccid(g_LineNumber) := -1;
2790 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
2791 END CASE;
2792
2793 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
2794
2795 l_coa_name := xla_accounting_cache_pkg.GetValueChar
2796 (
2797 p_source_code => 'XLA_COA_NAME'
2798 , p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2799 );
2800
2801 xla_accounting_err_pkg.build_message
2802 (p_appli_s_name => 'XLA'
2803 ,p_msg_name => 'XLA_AP_INV_SEGMENT_QUAL'
2804 ,p_token_1 => 'SEGMENT_RULE_NAME'
2805 ,p_value_1 => XLA_AE_SOURCES_PKG.GetComponentName (
2806 'AMB_ADR'
2807 ,p_adr_code
2808 ,p_adr_type_code
2809 ,p_component_appl_id
2810 ,p_amb_context_code
2811 )
2812 ,p_token_2 => 'OWNER'
2813 ,p_value_2 => xla_lookups_pkg.get_meaning(
2814 'XLA_OWNER_TYPE'
2815 ,p_adr_type_code
2816 )
2817
2818 ,p_token_3 => 'QUALIFIER_NAME'
2819 ,p_value_3 => xla_lookups_pkg.get_meaning(
2820 p_lookup_type => 'XLA_FLEXFIELD_SEGMENTS_QUAL'
2821 , p_lookup_code => p_flexfield_segment_code
2822 )
2823 ,p_token_4 => 'ACCOUNTING_COA'
2824 ,p_value_4 => l_coa_name
2825 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2826 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2827 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2828 ,p_ae_header_id => NULL -- p_ae_header_id
2829 );
2830
2831 IF (C_LEVEL_ERROR >= g_log_level) THEN
2832 trace
2833 (p_msg => 'ERROR: XLA_AP_INV_SEGMENT_QUAL'
2834 ,p_level => C_LEVEL_ERROR
2835 ,p_module => l_log_module);
2836 END IF;
2837 WHEN xla_exceptions_pkg.application_exception THEN
2838 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2839 trace
2840 (p_msg => 'Error. = '||sqlerrm
2841 ,p_level => C_LEVEL_PROCEDURE
2842 ,p_module => l_log_module);
2843 END IF;
2844 RAISE;
2845 WHEN OTHERS THEN
2846 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2847 trace
2848 (p_msg => 'Error. = '||sqlerrm
2849 ,p_level => C_LEVEL_PROCEDURE
2850 ,p_module => l_log_module);
2851 END IF;
2852 xla_exceptions_pkg.raise_message
2853 (p_location => 'XLA_AE_LINES_PKG.set_segment');
2854 END set_segment;
2855
2856 --
2857 /*======================================================================+
2858 | |
2859 | Public Procedure |
2860 | ValidateCurrentLine |
2861 | |
2862 +======================================================================*/
2863 PROCEDURE ValidateCurrentLine
2864 IS
2865 l_log_module VARCHAR2(240);
2866 BEGIN
2867 IF g_log_enabled THEN
2868 l_log_module := C_DEFAULT_MODULE||'.ValidateCurrentLine';
2869 END IF;
2870 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2871 trace
2872 (p_msg => 'BEGIN of ValidateCurrentLine'
2873 ,p_level => C_LEVEL_PROCEDURE
2874 ,p_module => l_log_module);
2875
2876 END IF;
2877
2878 IF nvl(g_LineNumber,0) > 0 THEN
2879
2880 -----------------------------------------------------------
2881 -- 4219869 Business Flow
2882 -- Call is moved to XLA_CMP_ACCT_LINE_TYPE_PKG.C_ALT_BODY
2883 -----------------------------------------------------------
2884 -- SetDebitCreditAmounts(p_ae_header_id => p_ae_header_id);
2885 -----------------------------------------------------------
2886
2887 ValidateLinks;
2888
2889 END IF;
2890
2891 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2892 trace
2893 (p_msg => 'END of ValidateCurrentLine = '||g_LineNumber
2894 ,p_level => C_LEVEL_PROCEDURE
2895 ,p_module => l_log_module);
2896
2897 END IF;
2898 EXCEPTION
2899 WHEN xla_exceptions_pkg.application_exception THEN
2900 RAISE;
2901 WHEN OTHERS THEN
2902 xla_exceptions_pkg.raise_message
2903 (p_location => 'XLA_AE_LINES_PKG.ValidateCurrentLine');
2904 --
2905 END ValidateCurrentLine;
2906 --
2907 /*======================================================================+
2908 | |
2909 | Public Procedure |
2910 | |
2911 | |
2912 +======================================================================*/
2913 PROCEDURE SetAcctClass(p_accounting_class_code IN VARCHAR2
2914 ,p_ae_header_id IN NUMBER)
2915 IS
2916 l_log_module VARCHAR2(240);
2917 BEGIN
2918 IF g_log_enabled THEN
2919 l_log_module := C_DEFAULT_MODULE||'.SetAcctClass';
2920 END IF;
2921 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2922 trace
2923 (p_msg => 'BEGIN of SetAcctClass'
2924 ,p_level => C_LEVEL_PROCEDURE
2925 ,p_module => l_log_module);
2926
2927 trace
2928 (p_msg => 'p_accounting_class_code = '||p_accounting_class_code
2929 ,p_level => C_LEVEL_PROCEDURE
2930 ,p_module => l_log_module);
2931 END IF;
2932
2933 g_rec_lines.array_accounting_class(g_LineNumber) := p_accounting_class_code;
2934
2935
2936 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2937 trace
2938 (p_msg => 'END of SetAcctClass'
2939 ,p_level => C_LEVEL_PROCEDURE
2940 ,p_module => l_log_module);
2941 END IF;
2942 EXCEPTION
2943 WHEN xla_exceptions_pkg.application_exception THEN
2944 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
2945 RAISE;
2946 WHEN OTHERS THEN
2947 xla_exceptions_pkg.raise_message
2948 (p_location => 'XLA_AE_LINES_PKG.SetAcctClass');
2949 END SetAcctClass;
2950 --
2951
2952 /*======================================================================+
2953 | |
2954 | Public Function |
2955 | |
2956 | SetAnalyticalCriteria |
2957 | |
2958 +======================================================================*/
2959 --
2960 FUNCTION SetAnalyticalCriteria(
2961 p_analytical_criterion_name IN VARCHAR2
2962 , p_analytical_criterion_owner IN VARCHAR2
2963 , p_analytical_criterion_code IN VARCHAR2
2964 , p_amb_context_code IN VARCHAR2
2965 , p_balancing_flag IN VARCHAR2
2966 , p_analytical_detail_char_1 IN VARCHAR2
2967 , p_analytical_detail_num_1 IN NUMBER
2968 , p_analytical_detail_date_1 IN DATE
2969 , p_analytical_detail_char_2 IN VARCHAR2
2970 , p_analytical_detail_num_2 IN NUMBER
2971 , p_analytical_detail_date_2 IN DATE
2972 , p_analytical_detail_char_3 IN VARCHAR2
2973 , p_analytical_detail_num_3 IN NUMBER
2974 , p_analytical_detail_date_3 IN DATE
2975 , p_analytical_detail_char_4 IN VARCHAR2
2976 , p_analytical_detail_num_4 IN NUMBER
2977 , p_analytical_detail_date_4 IN DATE
2978 , p_analytical_detail_char_5 IN VARCHAR2
2979 , p_analytical_detail_num_5 IN NUMBER
2980 , p_analytical_detail_date_5 IN DATE
2981 , p_ae_header_id IN NUMBER
2982 )
2983 RETURN VARCHAR2
2984 IS
2985 l_analytical_criteria VARCHAR2(240);
2986 l_log_module VARCHAR2(240);
2987 BEGIN
2988 --
2989 IF g_log_enabled THEN
2990 l_log_module := C_DEFAULT_MODULE||'.SetAnalyticalCriteria';
2991 END IF;
2992 --
2993 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2994 trace
2995 (p_msg => 'BEGIN of SetAnalyticalCriteria'
2996 ,p_level => C_LEVEL_PROCEDURE
2997 ,p_module => l_log_module);
2998
2999 trace
3000 (p_msg => '-> CALL XLA_ANALYTICAL_CRITERIA_PKG.concat_detail_values API'
3001 ,p_level => C_LEVEL_PROCEDURE
3002 ,p_module => l_log_module);
3003
3004 END IF;
3005
3006 l_analytical_criteria := XLA_ANALYTICAL_CRITERIA_PKG.concat_detail_values
3007 ( p_anacri_code => p_analytical_criterion_code
3008 ,p_anacri_type_code => p_analytical_criterion_owner
3009 ,p_amb_context_code => p_amb_context_code
3010 ,p_detail_char_1 => p_analytical_detail_char_1
3011 ,p_detail_date_1 => p_analytical_detail_date_1
3012 ,p_detail_number_1 => p_analytical_detail_num_1
3013 ,p_detail_char_2 => p_analytical_detail_char_2
3014 ,p_detail_date_2 => p_analytical_detail_date_2
3015 ,p_detail_number_2 => p_analytical_detail_num_2
3016 ,p_detail_char_3 => p_analytical_detail_char_3
3017 ,p_detail_date_3 => p_analytical_detail_date_3
3018 ,p_detail_number_3 => p_analytical_detail_num_3
3019 ,p_detail_char_4 => p_analytical_detail_char_4
3020 ,p_detail_date_4 => p_analytical_detail_date_4
3021 ,p_detail_number_4 => p_analytical_detail_num_4
3022 ,p_detail_char_5 => p_analytical_detail_char_5
3023 ,p_detail_date_5 => p_analytical_detail_date_5
3024 ,p_detail_number_5 => p_analytical_detail_num_5
3025 );
3026 IF g_rec_lines.array_anc_balance_flag(g_LineNumber) IS NULL AND
3027 nvl(p_balancing_flag,'N') = 'Y'
3028 THEN
3029 g_rec_lines.array_anc_balance_flag(g_LineNumber) := 'P';
3030 END IF;
3031
3032 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3033
3034 trace
3035 (p_msg => 'return value. = '||TO_CHAR(l_analytical_criteria)
3036 ,p_level => C_LEVEL_PROCEDURE
3037 ,p_module => l_log_module);
3038
3039 trace
3040 (p_msg => 'END of SetAnalyticalCriteria'
3041 ,p_level => C_LEVEL_PROCEDURE
3042 ,p_module => l_log_module);
3043
3044 END IF;
3045 RETURN l_analytical_criteria;
3046 EXCEPTION
3047 WHEN xla_exceptions_pkg.application_exception THEN
3048 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
3049 RAISE;
3050 WHEN OTHERS THEN
3051 xla_exceptions_pkg.raise_message
3052 (p_location => 'XLA_AE_LINES_PKG.SetAnalyticalCriteria');
3053 --
3054 END SetAnalyticalCriteria;
3055
3056
3057 --
3058 /*======================================================================+
3059 | |
3060 | Public Procedure |
3061 | |
3062 | |
3063 +======================================================================*/
3064 FUNCTION InsertLines
3065 RETURN BOOLEAN
3066 IS
3067 l_result BOOLEAN;
3068 l_ledger_currency VARCHAR2(30);
3069 l_ledger_category_code VARCHAR2(30);
3070 l_rowcount NUMBER;
3071 l_null_trans_accounts t_rec_transaction_accounts;
3072 l_log_module VARCHAR2(240);
3073 errors NUMBER; -- 7453943
3074 ERR_IND NUMBER; -- 7453943
3075 ERR_CODE VARCHAR2(100); -- 7453943
3076 dml_errors EXCEPTION; -- 7453943
3077 PRAGMA exception_init(dml_errors, -24381); -- 7453943
3078 BEGIN
3079 IF g_log_enabled THEN
3080 l_log_module := C_DEFAULT_MODULE||'.InsertLines';
3081 END IF;
3082 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3083 trace
3084 (p_msg => 'BEGIN of InsertLines'
3085 ,p_level => C_LEVEL_PROCEDURE
3086 ,p_module => l_log_module);
3087 END IF;
3088
3089 l_result :=TRUE;
3090
3091 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
3092 trace
3093 (p_msg => '# temporary journal lines to insert into GT xla_ae_lines_gt = '||g_rec_lines.array_line_num.COUNT
3094 ,p_level => C_LEVEL_STATEMENT
3095 ,p_module => l_log_module);
3096 END IF;
3097
3098 --
3099 -- Bug 4458708
3100 --
3101 IF g_rec_lines.array_line_num.COUNT > 0 THEN
3102
3103 l_result := FALSE;
3104 l_rowcount := 0;
3105
3106 --cache accounting COA
3107 xla_ae_code_combination_pkg.cache_coa
3108 (p_coa_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.target_coa_id
3109 ,p_target_coa => 'Y');
3110
3111 --get the ledger currency
3112 -- when this fuction is called, all the lines are always for one ledger
3113
3114 l_ledger_currency := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.currency_code;
3115 l_ledger_category_code:= XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code;
3116
3117 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
3118 trace
3119 (p_msg => 'ledger_currency:'||l_ledger_currency||' category_coe:'||l_ledger_category_code
3120 ,p_level => C_LEVEL_STATEMENT
3121 ,p_module => l_log_module);
3122 END IF;
3123
3124 IF l_ledger_category_code = 'ALC' THEN
3125 IF (xla_accounting_cache_pkg.GetValueChar('XLA_ALC_ENABLED_FLAG')='N') THEN
3126 l_ledger_category_code :='PRIMARY';
3127 END IF;
3128 END IF;
3129
3130 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
3131 trace
3132 (p_msg => 'SQL - Insert into xla_ae_lines_gt'
3133 ,p_level => C_LEVEL_STATEMENT
3134 ,p_module => l_log_module);
3135 END IF;
3136
3137 ------------------------------------------------------------------------------------------------------
3138
3139 FORALL Idx IN g_rec_lines.array_line_num.FIRST .. g_rec_lines.array_line_num.LAST SAVE EXCEPTIONS --7453943
3140 INSERT INTO xla_ae_lines_gt
3141 ( ae_header_id
3142 , temp_line_num
3143 , extract_line_num
3144 , event_id
3145 , ref_ae_header_id
3146 --
3147 , accounting_date --4955764
3148 , accounting_class_code
3149 , rounding_class_code
3150 , event_class_code
3151 , event_type_code
3152 , line_definition_owner_code
3153 , line_definition_code
3154 , accounting_line_type_code
3155 , accounting_line_code
3156 , document_rounding_level
3157 , gain_or_loss_ref
3158 --
3159 , calculate_acctd_amts_flag
3160 , calculate_g_l_amts_flag
3161 , gain_or_loss_flag
3162 --
3163 , code_combination_status_code
3164 , code_combination_id
3165 , sl_coa_mapping_name
3166 , sl_coa_mapping_id
3167 , dynamic_insert_flag
3168 , source_coa_id
3169 , ccid_coa_id
3170 , segment1
3171 , segment2
3172 , segment3
3173 , segment4
3174 , segment5
3175 , segment6
3176 , segment7
3177 , segment8
3178 , segment9
3179 , segment10
3180 , segment11
3181 , segment12
3182 , segment13
3183 , segment14
3184 , segment15
3185 , segment16
3186 , segment17
3187 , segment18
3188 , segment19
3189 , segment20
3190 , segment21
3191 , segment22
3192 , segment23
3193 , segment24
3194 , segment25
3195 , segment26
3196 , segment27
3197 , segment28
3198 , segment29
3199 , segment30
3200 --
3201 , alt_ccid_status_code
3202 , alt_code_combination_id
3203 , alt_segment1
3204 , alt_segment2
3205 , alt_segment3
3206 , alt_segment4
3207 , alt_segment5
3208 , alt_segment6
3209 , alt_segment7
3210 , alt_segment8
3211 , alt_segment9
3212 , alt_segment10
3213 , alt_segment11
3214 , alt_segment12
3215 , alt_segment13
3216 , alt_segment14
3217 , alt_segment15
3218 , alt_segment16
3219 , alt_segment17
3220 , alt_segment18
3221 , alt_segment19
3222 , alt_segment20
3223 , alt_segment21
3224 , alt_segment22
3225 , alt_segment23
3226 , alt_segment24
3227 , alt_segment25
3228 , alt_segment26
3229 , alt_segment27
3230 , alt_segment28
3231 , alt_segment29
3232 , alt_segment30
3233 --
3234 , description
3235 , gl_transfer_mode_code
3236 , merge_duplicate_code
3237 , switch_side_flag
3238 --
3239 , entered_amount
3240 , ledger_amount
3241 , unrounded_entered_dr
3242 , unrounded_entered_cr
3243 , unrounded_accounted_dr
3244 , unrounded_accounted_cr
3245 , entered_currency_mau
3246 , currency_code
3247 , currency_conversion_date
3248 , currency_conversion_rate
3249 , currency_conversion_type
3250 , statistical_amount
3251 --
3252 , party_id
3253 , party_site_id
3254 , party_type_code
3255 --
3256 , ussgl_transaction_code
3257 , jgzz_recon_ref
3258 , source_distribution_id_char_1
3259 , source_distribution_id_char_2
3260 , source_distribution_id_char_3
3261 , source_distribution_id_char_4
3262 , source_distribution_id_char_5
3263 , source_distribution_id_num_1
3264 , source_distribution_id_num_2
3265 , source_distribution_id_num_3
3266 , source_distribution_id_num_4
3267 , source_distribution_id_num_5
3268 , source_distribution_type
3269 --
3270 , reverse_dist_id_char_1
3271 , reverse_dist_id_char_2
3272 , reverse_dist_id_char_3
3273 , reverse_dist_id_char_4
3274 , reverse_dist_id_char_5
3275 , reverse_dist_id_num_1
3276 , reverse_dist_id_num_2
3277 , reverse_dist_id_num_3
3278 , reverse_dist_id_num_4
3279 , reverse_dist_id_num_5
3280 , reverse_distribution_type
3281 --
3282 , tax_line_ref_id
3283 , tax_summary_line_ref_id
3284 , tax_rec_nrec_dist_ref_id
3285 --
3286 --
3287 -- 4262811
3288 , header_num
3289 , mpa_accrual_entry_flag
3290 , multiperiod_option_flag
3291 , multiperiod_start_date
3292 , multiperiod_end_date
3293 --
3294 , analytical_balance_flag
3295 , anc_id_1
3296 , anc_id_2
3297 , anc_id_3
3298 , anc_id_4
3299 , anc_id_5
3300 , anc_id_6
3301 , anc_id_7
3302 , anc_id_8
3303 , anc_id_9
3304 , anc_id_10
3305 , anc_id_11
3306 , anc_id_12
3307 , anc_id_13
3308 , anc_id_14
3309 , anc_id_15
3310 , anc_id_16
3311 , anc_id_17
3312 , anc_id_18
3313 , anc_id_19
3314 , anc_id_20
3315 , anc_id_21
3316 , anc_id_22
3317 , anc_id_23
3318 , anc_id_24
3319 , anc_id_25
3320 , anc_id_26
3321 , anc_id_27
3322 , anc_id_28
3323 , anc_id_29
3324 , anc_id_30
3325 , anc_id_31
3326 , anc_id_32
3327 , anc_id_33
3328 , anc_id_34
3329 , anc_id_35
3330 , anc_id_36
3331 , anc_id_37
3332 , anc_id_38
3333 , anc_id_39
3334 , anc_id_40
3335 , anc_id_41
3336 , anc_id_42
3337 , anc_id_43
3338 , anc_id_44
3339 , anc_id_45
3340 , anc_id_46
3341 , anc_id_47
3342 , anc_id_48
3343 , anc_id_49
3344 , anc_id_50
3345 , anc_id_51
3346 , anc_id_52
3347 , anc_id_53
3348 , anc_id_54
3349 , anc_id_55
3350 , anc_id_56
3351 , anc_id_57
3352 , anc_id_58
3353 , anc_id_59
3354 , anc_id_60
3355 , anc_id_61
3356 , anc_id_62
3357 , anc_id_63
3358 , anc_id_64
3359 , anc_id_65
3360 , anc_id_66
3361 , anc_id_67
3362 , anc_id_68
3363 , anc_id_69
3364 , anc_id_70
3365 , anc_id_71
3366 , anc_id_72
3367 , anc_id_73
3368 , anc_id_74
3369 , anc_id_75
3370 , anc_id_76
3371 , anc_id_77
3372 , anc_id_78
3373 , anc_id_79
3374 , anc_id_80
3375 , anc_id_81
3376 , anc_id_82
3377 , anc_id_83
3378 , anc_id_84
3379 , anc_id_85
3380 , anc_id_86
3381 , anc_id_87
3382 , anc_id_88
3383 , anc_id_89
3384 , anc_id_90
3385 , anc_id_91
3386 , anc_id_92
3387 , anc_id_93
3388 , anc_id_94
3389 , anc_id_95
3390 , anc_id_96
3391 , anc_id_97
3392 , anc_id_98
3393 , anc_id_99
3394 , anc_id_100
3395 --, deferred_indicator
3396 --, deferred_start_date
3397 --, deferred_end_date
3398 --, deferred_no_period
3399 --, deferred_period_type
3400 -- bulk performance
3401 , balance_type_code -- element at index [x] does not exist.
3402 , ledger_id -- element at index [x] does not exist.
3403 , event_number
3404 , entity_id
3405 , reversal_code
3406 , encumbrance_type_id -- 4458381
3407 --------------------------------------
3408 -- 4219869
3409 -- Business Flow Applied To attributes
3410 --------------------------------------
3411 ,inherit_desc_flag
3412 ,natural_side_code
3413 ,business_method_code
3414 ,business_class_code
3415 ,bflow_application_id
3416 ,bflow_entity_code
3417 ,bflow_source_id_num_1
3418 ,bflow_source_id_num_2
3419 ,bflow_source_id_num_3
3420 ,bflow_source_id_num_4
3421 ,bflow_source_id_char_1
3422 ,bflow_source_id_char_2
3423 ,bflow_source_id_char_3
3424 ,bflow_source_id_char_4
3425 ,bflow_distribution_type
3426 ,bflow_dist_id_num_1
3427 ,bflow_dist_id_num_2
3428 ,bflow_dist_id_num_3
3429 ,bflow_dist_id_num_4
3430 ,bflow_dist_id_num_5
3431 ,bflow_dist_id_char_1
3432 ,bflow_dist_id_char_2
3433 ,bflow_dist_id_char_3
3434 ,bflow_dist_id_char_4
3435 ,bflow_dist_id_char_5
3436 ,bflow_applied_to_amount -- 5132302
3437 ,override_acctd_amt_flag
3438 --
3439 -- Allocation Attributes
3440 --
3441 ,alloc_to_application_id
3442 ,alloc_to_entity_code
3443 ,alloc_to_source_id_num_1
3444 ,alloc_to_source_id_num_2
3445 ,alloc_to_source_id_num_3
3446 ,alloc_to_source_id_num_4
3447 ,alloc_to_source_id_char_1
3448 ,alloc_to_source_id_char_2
3449 ,alloc_to_source_id_char_3
3450 ,alloc_to_source_id_char_4
3451 ,alloc_to_distribution_type
3452 ,alloc_to_dist_id_num_1
3453 ,alloc_to_dist_id_num_2
3454 ,alloc_to_dist_id_num_3
3455 ,alloc_to_dist_id_num_4
3456 ,alloc_to_dist_id_num_5
3457 ,alloc_to_dist_id_char_1
3458 ,alloc_to_dist_id_char_2
3459 ,alloc_to_dist_id_char_3
3460 ,alloc_to_dist_id_char_4
3461 ,alloc_to_dist_id_char_5
3462 )
3463 VALUES
3464 (
3465 g_rec_lines.array_ae_header_id(Idx)
3466 , g_rec_lines.array_line_num(Idx)
3467 , g_rec_lines.array_extract_line_num(Idx)
3468 , g_rec_lines.array_ae_header_id(Idx)
3469 , g_rec_lines.array_ae_header_id(Idx)
3470 --
3471 , g_rec_lines.array_gl_date(Idx) --4955764
3472 , g_rec_lines.array_accounting_class(Idx)
3473 , g_rec_lines.array_rounding_class(Idx)
3474 , g_rec_lines.array_event_class_code(Idx)
3475 , g_rec_lines.array_event_type_code(Idx)
3476 , g_rec_lines.array_line_defn_owner_code(Idx)
3477 , g_rec_lines.array_line_defn_code(Idx)
3478 , g_rec_lines.array_accounting_line_type(Idx)
3479 , g_rec_lines.array_accounting_line_code(Idx)
3480 , g_rec_lines.array_doc_rounding_level(Idx)
3481 , nvl(g_rec_lines.array_gain_or_loss_ref(Idx), '#line#'||g_rec_lines.array_extract_line_num(Idx))
3482 --
3483 , g_rec_lines.array_calculate_acctd_flag(Idx)
3484 , g_rec_lines.array_calculate_g_l_flag(Idx)
3485 , decode(g_rec_lines.array_gain_or_loss_flag(Idx), 'Y', 'Y', decode(g_rec_lines.array_natural_side_code(Idx), 'G', 'Y', 'N'))
3486 --
3487 , g_rec_lines.array_ccid_flag(Idx)
3488 , g_rec_lines.array_ccid(Idx)
3489 --
3490 , XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.sl_coa_mapping_name
3491 , XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.sl_coa_mapping_id
3492 --
3493 , XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.dynamic_insert_flag
3494 , XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.source_coa_id
3495 , XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.target_coa_id
3496 --
3497 , g_rec_lines.array_segment1(Idx)
3498 , g_rec_lines.array_segment2(Idx)
3499 , g_rec_lines.array_segment3(Idx)
3500 , g_rec_lines.array_segment4(Idx)
3501 , g_rec_lines.array_segment5(Idx)
3502 , g_rec_lines.array_segment6(Idx)
3503 , g_rec_lines.array_segment7(Idx)
3504 , g_rec_lines.array_segment8(Idx)
3505 , g_rec_lines.array_segment9(Idx)
3506 , g_rec_lines.array_segment10(Idx)
3507 , g_rec_lines.array_segment11(Idx)
3508 , g_rec_lines.array_segment12(Idx)
3509 , g_rec_lines.array_segment13(Idx)
3510 , g_rec_lines.array_segment14(Idx)
3511 , g_rec_lines.array_segment15(Idx)
3512 , g_rec_lines.array_segment16(Idx)
3513 , g_rec_lines.array_segment17(Idx)
3514 , g_rec_lines.array_segment18(Idx)
3515 , g_rec_lines.array_segment19(Idx)
3516 , g_rec_lines.array_segment20(Idx)
3517 , g_rec_lines.array_segment21(Idx)
3518 , g_rec_lines.array_segment22(Idx)
3519 , g_rec_lines.array_segment23(Idx)
3520 , g_rec_lines.array_segment24(Idx)
3521 , g_rec_lines.array_segment25(Idx)
3522 , g_rec_lines.array_segment26(Idx)
3523 , g_rec_lines.array_segment27(Idx)
3524 , g_rec_lines.array_segment28(Idx)
3525 , g_rec_lines.array_segment29(Idx)
3526 , g_rec_lines.array_segment30(Idx)
3527 --
3528 , g_rec_lines.alt_array_ccid_flag(Idx)
3529 , g_rec_lines.alt_array_ccid(Idx)
3530 , g_rec_lines.alt_array_segment1(Idx)
3531 , g_rec_lines.alt_array_segment2(Idx)
3532 , g_rec_lines.alt_array_segment3(Idx)
3533 , g_rec_lines.alt_array_segment4(Idx)
3534 , g_rec_lines.alt_array_segment5(Idx)
3535 , g_rec_lines.alt_array_segment6(Idx)
3536 , g_rec_lines.alt_array_segment7(Idx)
3537 , g_rec_lines.alt_array_segment8(Idx)
3538 , g_rec_lines.alt_array_segment9(Idx)
3539 , g_rec_lines.alt_array_segment10(Idx)
3540 , g_rec_lines.alt_array_segment11(Idx)
3541 , g_rec_lines.alt_array_segment12(Idx)
3542 , g_rec_lines.alt_array_segment13(Idx)
3543 , g_rec_lines.alt_array_segment14(Idx)
3544 , g_rec_lines.alt_array_segment15(Idx)
3545 , g_rec_lines.alt_array_segment16(Idx)
3546 , g_rec_lines.alt_array_segment17(Idx)
3547 , g_rec_lines.alt_array_segment18(Idx)
3548 , g_rec_lines.alt_array_segment19(Idx)
3549 , g_rec_lines.alt_array_segment20(Idx)
3550 , g_rec_lines.alt_array_segment21(Idx)
3551 , g_rec_lines.alt_array_segment22(Idx)
3552 , g_rec_lines.alt_array_segment23(Idx)
3553 , g_rec_lines.alt_array_segment24(Idx)
3554 , g_rec_lines.alt_array_segment25(Idx)
3555 , g_rec_lines.alt_array_segment26(Idx)
3556 , g_rec_lines.alt_array_segment27(Idx)
3557 , g_rec_lines.alt_array_segment28(Idx)
3558 , g_rec_lines.alt_array_segment29(Idx)
3559 , g_rec_lines.alt_array_segment30(Idx)
3560 --
3561 , g_rec_lines.array_description(Idx)
3562 , g_rec_lines.array_gl_transfer_mode(Idx)
3563 , g_rec_lines.array_merge_duplicate_code(Idx)
3564 , decode(g_rec_lines.array_natural_side_code(Idx), 'G', 'Y',
3565 g_rec_lines.array_switch_side_flag(Idx))
3566 --
3567 , g_rec_lines.array_entered_amount(Idx)
3568 , g_rec_lines.array_ledger_amount(Idx)
3569 , g_rec_lines.array_entered_dr(Idx)
3570 , g_rec_lines.array_entered_cr(Idx)
3571 , g_rec_lines.array_accounted_dr(Idx)
3572 , g_rec_lines.array_accounted_cr(Idx)
3573 -- currency mau, put some dummy value for gain/loss line
3574 , decode(g_rec_lines.array_natural_side_code(Idx), 'G', .01
3575 , g_rec_lines.array_currency_mau(Idx))
3576 , decode(g_rec_lines.array_natural_side_code(Idx), 'G', l_ledger_currency
3577 , g_rec_lines.array_currency_code(Idx))--
3578 /*, decode(l_ledger_category_code
3579 ,'PRIMARY',TRUNC(g_rec_lines.array_curr_conversion_date(Idx))
3580 ,decode(l_ledger_currency
3581 ,g_rec_lines.array_currency_code(Idx),NULL
3582 ,TRUNC(g_rec_lines.array_curr_conversion_date(Idx))
3583 )
3584 ) -- currency_conversion_date*/
3585 /* Modified for bug 8810416 */
3586 ,decode(l_ledger_currency ,g_rec_lines.array_currency_code(Idx),NULL,
3587 TRUNC(g_rec_lines.array_curr_conversion_date(Idx))) -- currency_conversion_date
3588 /*, decode(l_ledger_category_code, 'PRIMARY',
3589 g_rec_lines.array_curr_conversion_rate(Idx)
3590 ,decode(l_ledger_currency, g_rec_lines.array_currency_code(Idx),
3591 null, g_rec_lines.array_curr_conversion_rate(Idx))) */
3592 /* Modified for bug 8810416 */
3593 ,decode(l_ledger_currency, g_rec_lines.array_currency_code(Idx),null
3594 , g_rec_lines.array_curr_conversion_rate(Idx)) -- currency_conversion_rate
3595 /*, decode(l_ledger_category_code, 'PRIMARY',
3596 g_rec_lines.array_curr_conversion_type(Idx)
3597 ,decode(l_ledger_currency, g_rec_lines.array_currency_code(Idx),
3598 null, g_rec_lines.array_curr_conversion_type(Idx))) */
3599 /* Modified for bug 8810416 */
3600 ,decode(l_ledger_currency, g_rec_lines.array_currency_code(Idx),null,
3601 g_rec_lines.array_curr_conversion_type(Idx)) -- currency_conversion_type
3602 , g_rec_lines.array_statistical_amount(Idx)
3603 --
3604 , g_rec_lines.array_party_id(Idx)
3605 , g_rec_lines.array_party_site_id(Idx)
3606 , g_rec_lines.array_party_type_code(Idx)
3607 --
3608 , g_rec_lines.array_ussgl_transaction(Idx)
3609 , g_rec_lines.array_jgzz_recon_ref(Idx)
3610 --
3611 , g_rec_lines.array_distribution_id_char_1(Idx)
3612 , g_rec_lines.array_distribution_id_char_2(Idx)
3613 , g_rec_lines.array_distribution_id_char_3(Idx)
3614 , g_rec_lines.array_distribution_id_char_4(Idx)
3615 , g_rec_lines.array_distribution_id_char_5(Idx)
3616 , g_rec_lines.array_distribution_id_num_1(Idx)
3617 , g_rec_lines.array_distribution_id_num_2(Idx)
3618 , g_rec_lines.array_distribution_id_num_3(Idx)
3619 , g_rec_lines.array_distribution_id_num_4(Idx)
3620 , g_rec_lines.array_distribution_id_num_5(Idx)
3621 , g_rec_lines.array_sys_distribution_type(Idx)
3622 --
3623 , g_rec_lines.array_rev_dist_id_char_1(Idx)
3624 , g_rec_lines.array_rev_dist_id_char_2(Idx)
3625 , g_rec_lines.array_rev_dist_id_char_3(Idx)
3626 , g_rec_lines.array_rev_dist_id_char_4(Idx)
3627 , g_rec_lines.array_rev_dist_id_char_5(Idx)
3628 , g_rec_lines.array_rev_dist_id_num_1(Idx)
3629 , g_rec_lines.array_rev_dist_id_num_2(Idx)
3630 , g_rec_lines.array_rev_dist_id_num_3(Idx)
3631 , g_rec_lines.array_rev_dist_id_num_4(Idx)
3632 , g_rec_lines.array_rev_dist_id_num_5(Idx)
3633 , g_rec_lines.array_rev_dist_type(Idx)
3634 --
3635 , g_rec_lines.array_tax_line_ref(Idx)
3636 , g_rec_lines.array_tax_summary_line_ref(Idx)
3637 , g_rec_lines.array_tax_rec_nrec_dist_ref(Idx)
3638 -- 4262811
3639 , NVL(g_rec_lines.array_header_num(Idx),0) -- 5100860 always assign a value
3640 , g_rec_lines.array_mpa_acc_entry_flag(Idx)
3641 , g_rec_lines.array_mpa_option(Idx)
3642 , g_rec_lines.array_mpa_start_date(Idx)
3643 , g_rec_lines.array_mpa_end_date(Idx)
3644 -- Analytical Criteria
3645 , g_rec_lines.array_anc_balance_flag(Idx)
3646 , g_rec_lines.array_anc_id_1(Idx)
3647 , g_rec_lines.array_anc_id_2(Idx)
3648 , g_rec_lines.array_anc_id_3(Idx)
3649 , g_rec_lines.array_anc_id_4(Idx)
3650 , g_rec_lines.array_anc_id_5(Idx)
3651 , g_rec_lines.array_anc_id_6(Idx)
3652 , g_rec_lines.array_anc_id_7(Idx)
3653 , g_rec_lines.array_anc_id_8(Idx)
3654 , g_rec_lines.array_anc_id_9(Idx)
3655 , g_rec_lines.array_anc_id_10(Idx)
3656 , g_rec_lines.array_anc_id_11(Idx)
3657 , g_rec_lines.array_anc_id_12(Idx)
3658 , g_rec_lines.array_anc_id_13(Idx)
3659 , g_rec_lines.array_anc_id_14(Idx)
3660 , g_rec_lines.array_anc_id_15(Idx)
3661 , g_rec_lines.array_anc_id_16(Idx)
3662 , g_rec_lines.array_anc_id_17(Idx)
3663 , g_rec_lines.array_anc_id_18(Idx)
3664 , g_rec_lines.array_anc_id_19(Idx)
3665 , g_rec_lines.array_anc_id_20(Idx)
3666 , g_rec_lines.array_anc_id_21(Idx)
3667 , g_rec_lines.array_anc_id_22(Idx)
3668 , g_rec_lines.array_anc_id_23(Idx)
3669 , g_rec_lines.array_anc_id_24(Idx)
3670 , g_rec_lines.array_anc_id_25(Idx)
3671 , g_rec_lines.array_anc_id_26(Idx)
3672 , g_rec_lines.array_anc_id_27(Idx)
3673 , g_rec_lines.array_anc_id_28(Idx)
3674 , g_rec_lines.array_anc_id_29(Idx)
3675 , g_rec_lines.array_anc_id_30(Idx)
3676 , g_rec_lines.array_anc_id_31(Idx)
3677 , g_rec_lines.array_anc_id_32(Idx)
3678 , g_rec_lines.array_anc_id_33(Idx)
3679 , g_rec_lines.array_anc_id_34(Idx)
3680 , g_rec_lines.array_anc_id_35(Idx)
3681 , g_rec_lines.array_anc_id_36(Idx)
3682 , g_rec_lines.array_anc_id_37(Idx)
3683 , g_rec_lines.array_anc_id_38(Idx)
3684 , g_rec_lines.array_anc_id_39(Idx)
3685 , g_rec_lines.array_anc_id_40(Idx)
3686 , g_rec_lines.array_anc_id_41(Idx)
3687 , g_rec_lines.array_anc_id_42(Idx)
3688 , g_rec_lines.array_anc_id_43(Idx)
3689 , g_rec_lines.array_anc_id_44(Idx)
3690 , g_rec_lines.array_anc_id_45(Idx)
3691 , g_rec_lines.array_anc_id_46(Idx)
3692 , g_rec_lines.array_anc_id_47(Idx)
3693 , g_rec_lines.array_anc_id_48(Idx)
3694 , g_rec_lines.array_anc_id_49(Idx)
3695 , g_rec_lines.array_anc_id_50(Idx)
3696 , g_rec_lines.array_anc_id_51(Idx)
3697 , g_rec_lines.array_anc_id_52(Idx)
3698 , g_rec_lines.array_anc_id_53(Idx)
3699 , g_rec_lines.array_anc_id_54(Idx)
3700 , g_rec_lines.array_anc_id_55(Idx)
3701 , g_rec_lines.array_anc_id_56(Idx)
3702 , g_rec_lines.array_anc_id_57(Idx)
3703 , g_rec_lines.array_anc_id_58(Idx)
3704 , g_rec_lines.array_anc_id_59(Idx)
3705 , g_rec_lines.array_anc_id_60(Idx)
3706 , g_rec_lines.array_anc_id_61(Idx)
3707 , g_rec_lines.array_anc_id_62(Idx)
3708 , g_rec_lines.array_anc_id_63(Idx)
3709 , g_rec_lines.array_anc_id_64(Idx)
3710 , g_rec_lines.array_anc_id_65(Idx)
3711 , g_rec_lines.array_anc_id_66(Idx)
3712 , g_rec_lines.array_anc_id_67(Idx)
3713 , g_rec_lines.array_anc_id_68(Idx)
3714 , g_rec_lines.array_anc_id_69(Idx)
3715 , g_rec_lines.array_anc_id_70(Idx)
3716 , g_rec_lines.array_anc_id_71(Idx)
3717 , g_rec_lines.array_anc_id_72(Idx)
3718 , g_rec_lines.array_anc_id_73(Idx)
3719 , g_rec_lines.array_anc_id_74(Idx)
3720 , g_rec_lines.array_anc_id_75(Idx)
3721 , g_rec_lines.array_anc_id_76(Idx)
3722 , g_rec_lines.array_anc_id_77(Idx)
3723 , g_rec_lines.array_anc_id_78(Idx)
3724 , g_rec_lines.array_anc_id_79(Idx)
3725 , g_rec_lines.array_anc_id_80(Idx)
3726 , g_rec_lines.array_anc_id_81(Idx)
3727 , g_rec_lines.array_anc_id_82(Idx)
3728 , g_rec_lines.array_anc_id_83(Idx)
3729 , g_rec_lines.array_anc_id_84(Idx)
3730 , g_rec_lines.array_anc_id_85(Idx)
3731 , g_rec_lines.array_anc_id_86(Idx)
3732 , g_rec_lines.array_anc_id_87(Idx)
3733 , g_rec_lines.array_anc_id_88(Idx)
3734 , g_rec_lines.array_anc_id_89(Idx)
3735 , g_rec_lines.array_anc_id_90(Idx)
3736 , g_rec_lines.array_anc_id_91(Idx)
3737 , g_rec_lines.array_anc_id_92(Idx)
3738 , g_rec_lines.array_anc_id_93(Idx)
3739 , g_rec_lines.array_anc_id_94(Idx)
3740 , g_rec_lines.array_anc_id_95(Idx)
3741 , g_rec_lines.array_anc_id_96(Idx)
3742 , g_rec_lines.array_anc_id_97(Idx)
3743 , g_rec_lines.array_anc_id_98(Idx)
3744 , g_rec_lines.array_anc_id_99(Idx)
3745 , g_rec_lines.array_anc_id_100(Idx)
3746 -- , g_rec_lines.array_deferred_indicator(Idx)
3747 -- , g_rec_lines.array_deferred_start_date(Idx)
3748 -- , g_rec_lines.array_deferred_end_date(Idx)
3749 -- , g_rec_lines.array_deferred_no_period(Idx)
3750 -- , g_rec_lines.array_deferred_period_type(Idx)
3751 -- bulk performance
3752 , g_rec_lines.array_balance_type_code(Idx) -- element at index [x] does not exist.
3753 , g_rec_lines.array_ledger_id(Idx) -- element at index [x] does not exist.
3754 , g_rec_lines.array_event_number(Idx)
3755 , g_rec_lines.array_entity_id(Idx)
3756 , g_rec_lines.array_reversal_code(Idx)
3757 , g_rec_lines.array_encumbrance_type_id(Idx) -- 4458381
3758 --------------------------------------
3759 -- 4219869
3760 -- Business Flow Applied To attributes
3761 --------------------------------------
3762 , g_rec_lines.array_inherit_desc_flag(Idx)
3763 , g_rec_lines.array_natural_side_code(Idx)
3764 , g_rec_lines.array_business_method_code(Idx)
3765 , g_rec_lines.array_business_class_code(Idx)
3766 , g_rec_lines.array_bflow_application_id(Idx)
3767 --
3768 , g_rec_lines.array_bflow_entity_code(Idx)
3769 , g_rec_lines.array_bflow_source_id_num_1(Idx)
3770 , g_rec_lines.array_bflow_source_id_num_2(Idx)
3771 , g_rec_lines.array_bflow_source_id_num_3(Idx)
3772 , g_rec_lines.array_bflow_source_id_num_4(Idx)
3773 , g_rec_lines.array_bflow_source_id_char_1(Idx)
3774 , g_rec_lines.array_bflow_source_id_char_2(Idx)
3775 , g_rec_lines.array_bflow_source_id_char_3(Idx)
3776 , g_rec_lines.array_bflow_source_id_char_4(Idx)
3777 --
3778 , g_rec_lines.array_bflow_distribution_type(Idx)
3779 , g_rec_lines.array_bflow_dist_id_num_1(Idx)
3780 , g_rec_lines.array_bflow_dist_id_num_2(Idx)
3781 , g_rec_lines.array_bflow_dist_id_num_3(Idx)
3782 , g_rec_lines.array_bflow_dist_id_num_4(Idx)
3783 , g_rec_lines.array_bflow_dist_id_num_5(Idx)
3784 , g_rec_lines.array_bflow_dist_id_char_1(Idx)
3785 , g_rec_lines.array_bflow_dist_id_char_2(Idx)
3786 , g_rec_lines.array_bflow_dist_id_char_3(Idx)
3787 , g_rec_lines.array_bflow_dist_id_char_4(Idx)
3788 , g_rec_lines.array_bflow_dist_id_char_5(Idx)
3789 , g_rec_lines.array_bflow_applied_to_amt(Idx) -- 5132302
3790 , g_rec_lines.array_override_acctd_amt_flag(Idx)
3791 --
3792 -- Allocation Attributes
3793 --
3794 , g_rec_lines.array_alloct_application_id(Idx)
3795 , g_rec_lines.array_alloct_entity_code(Idx)
3796 , g_rec_lines.array_alloct_source_id_num_1(Idx)
3797 , g_rec_lines.array_alloct_source_id_num_2(Idx)
3798 , g_rec_lines.array_alloct_source_id_num_3(Idx)
3799 , g_rec_lines.array_alloct_source_id_num_4(Idx)
3800 , g_rec_lines.array_alloct_source_id_char_1(Idx)
3801 , g_rec_lines.array_alloct_source_id_char_2(Idx)
3802 , g_rec_lines.array_alloct_source_id_char_3(Idx)
3803 , g_rec_lines.array_alloct_source_id_char_4(Idx)
3804 , g_rec_lines.array_alloct_distribution_type(Idx)
3805 , g_rec_lines.array_alloct_dist_id_num_1(Idx)
3806 , g_rec_lines.array_alloct_dist_id_num_2(Idx)
3807 , g_rec_lines.array_alloct_dist_id_num_3(Idx)
3808 , g_rec_lines.array_alloct_dist_id_num_4(Idx)
3809 , g_rec_lines.array_alloct_dist_id_num_5(Idx)
3810 , g_rec_lines.array_alloct_dist_id_char_1(Idx)
3811 , g_rec_lines.array_alloct_dist_id_char_2(Idx)
3812 , g_rec_lines.array_alloct_dist_id_char_3(Idx)
3813 , g_rec_lines.array_alloct_dist_id_char_4(Idx)
3814 , g_rec_lines.array_alloct_dist_id_char_5(Idx)
3815 )
3816 ;
3817
3818 l_rowcount := SQL%ROWCOUNT;
3819 l_result := ( l_rowcount> 0);
3820
3821 IF (C_LEVEL_EVENT >= g_log_level) THEN
3822 trace
3823 (p_msg => '# temporary journal lines inserted into GT xla_ae_lines_gt = '||TO_CHAR(l_rowcount)
3824 ,p_level => C_LEVEL_EVENT
3825 ,p_module => l_log_module);
3826 END IF;
3827
3828 END IF; -- g_rec_lines.array_line_num.COUNT > 0
3829
3830 IF g_transaction_accounts.array_line_num.COUNT > 0 AND l_result THEN
3831
3832 FORALL Jdx IN g_transaction_accounts.array_line_num.FIRST .. g_transaction_accounts.array_line_num.LAST
3833 INSERT INTO xla_transaction_accts_gt
3834 (line_number,
3835 ae_header_id,
3836 temp_line_num,
3837 ledger_id,
3838 code_combination_id,
3839 segment,
3840 from_segment_code,
3841 to_segment_code,
3842 processing_status_code,
3843 side_code,
3844 sl_coa_mapping_id
3845 )
3846 VALUES
3847 (g_transaction_accounts.array_line_num(Jdx),
3848 g_transaction_accounts.array_ae_header_id(Jdx),
3849 g_transaction_accounts.array_temp_line_num(Jdx),
3850 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id,
3851 g_transaction_accounts.array_code_combination_id(Jdx),
3852 g_transaction_accounts.array_segment(Jdx),
3853 g_transaction_accounts.array_from_segment_code(Jdx),
3854 g_transaction_accounts.array_to_segment_code(Jdx),
3855 g_transaction_accounts.array_processing_status_code(Jdx),
3856 g_transaction_accounts.array_side_code(Jdx),
3857 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.sl_coa_mapping_id
3858 )
3859 ;
3860
3861 l_rowcount := SQL%ROWCOUNT;
3862
3863 IF (C_LEVEL_EVENT >= g_log_level) THEN
3864 trace
3865 (p_msg => '# lines inserted into xla_transaction_accts_gt = '||TO_CHAR(l_rowcount)
3866 ,p_level => C_LEVEL_EVENT
3867 ,p_module => l_log_module);
3868
3869 END IF;
3870 g_transaction_accounts := l_null_trans_accounts;
3871
3872 ELSE
3873 IF (C_LEVEL_EVENT >= g_log_level) THEN
3874 trace
3875 (p_msg => 'No rows to insert into xla_transaction_accts_gt'
3876 ,p_level => C_LEVEL_EVENT
3877 ,p_module => l_log_module);
3878 END IF;
3879 END IF;
3880
3881 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3882 trace
3883 (p_msg => 'END of InsertLines'
3884 ,p_level => C_LEVEL_PROCEDURE
3885 ,p_module => l_log_module);
3886 END IF;
3887 RETURN l_result;
3888 EXCEPTION
3889 ----Added to handle Exceptions and send to Out file 7453943------------
3890 WHEN dml_errors THEN
3891 errors := SQL%BULK_EXCEPTIONS.COUNT;
3892 FOR i IN 1..errors LOOP
3893 ERR_IND:= SQL%BULK_EXCEPTIONS(i).ERROR_INDEX;
3894 ERR_CODE:= SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE);
3895 fnd_file.put_line(fnd_file.log, 'ERROR : '|| UPPER(ERR_CODE)); -- added in 12.1.1
3896 fnd_file.put_line(fnd_file.output, 'temp_line_num: '||g_rec_lines.array_line_num(ERR_IND));
3897 fnd_file.put_line(fnd_file.output, 'extract_line_num: '||g_rec_lines.array_extract_line_num(ERR_IND));
3898 fnd_file.put_line(fnd_file.output, 'event_id: '||g_rec_lines.array_ae_header_id(ERR_IND));
3899 fnd_file.put_line(fnd_file.output, 'accounting_class_code: '||g_rec_lines.array_accounting_class(ERR_IND));
3900 fnd_file.put_line(fnd_file.output, 'event_type_code: '||g_rec_lines.array_event_type_code(ERR_IND));
3901 fnd_file.put_line(fnd_file.output, 'balance_type_code: '||g_rec_lines.array_balance_type_code(ERR_IND));
3902 END LOOP;
3903 --------------------------------------------------------------------------
3904
3905 WHEN xla_exceptions_pkg.application_exception THEN
3906 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
3907 trace
3908 (p_msg => 'Error. = '||sqlerrm
3909 ,p_level => C_LEVEL_PROCEDURE
3910 ,p_module => l_log_module);
3911 END IF;
3912 RAISE;
3913 WHEN OTHERS THEN
3914 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
3915 trace
3916 (p_msg => 'Error. = '||sqlerrm
3917 ,p_level => C_LEVEL_PROCEDURE
3918 ,p_module => l_log_module);
3919 END IF;
3920 xla_exceptions_pkg.raise_message
3921 (p_location => 'XLA_AE_LINES_PKG.InsertLines');
3922 END InsertLines;
3923 --
3924 /*======================================================================+
3925 | |
3926 | Public Procedure |
3927 | |
3928 | |
3929 +======================================================================*/
3930 PROCEDURE RefreshLines
3931 IS
3932 l_null_lines t_rec_lines;
3933 l_null_rev_line t_rec_reverse_line;
3934 l_null_accounts t_rec_transaction_accounts;
3935 l_log_module VARCHAR2(240);
3936 BEGIN
3937 IF g_log_enabled THEN
3938 l_log_module := C_DEFAULT_MODULE||'.RefreshLines';
3939 END IF;
3940 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3941 trace
3942 (p_msg => 'BEGIN of RefreshLines'
3943 ,p_level => C_LEVEL_PROCEDURE
3944 ,p_module => l_log_module);
3945 END IF;
3946
3947 g_rec_lines := l_null_lines;
3948 g_transaction_accounts := l_null_accounts;
3949 g_LineNumber := null;
3950 g_ExtractLine := null;
3951 g_ActualLineNum := null;
3952 g_BudgetLineNum := null;
3953 g_EncumbLineNum := null;
3954
3955 g_reverse_lines := l_null_rev_line;
3956
3957 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3958 trace
3959 (p_msg => 'END of RefreshLines'
3960 ,p_level => C_LEVEL_PROCEDURE
3961 ,p_module => l_log_module);
3962 END IF;
3963 EXCEPTION
3964 WHEN xla_exceptions_pkg.application_exception THEN
3965 RAISE;
3966 WHEN OTHERS THEN
3967 xla_exceptions_pkg.raise_message
3968 (p_location => 'XLA_AE_LINES_PKG.RefreshLines');
3969 END RefreshLines;
3970 --
3971 --
3972 --====================================================================
3973 --
3974 --
3975 --
3976 --
3977 --
3978 -- REVERSAL ACCOUNTING PROCESS
3979 --
3980 --
3981 --
3982 --
3983 --
3984 --
3985 --
3986 --
3987 --
3988 --
3989 --
3990 --
3991 --
3992 --
3993 --
3994 --
3995 --====================================================================
3996 --
3997 --====================================================================
3998 --
3999 --
4000 --
4001 --
4002 --
4003 -- PRIVATE procedures and functions
4004 --
4005 --
4006 --
4007 --
4008 --
4009 --
4010 --
4011 --
4012 --
4013 --
4014 --
4015 --
4016 --
4017 --
4018 --
4019 --
4020 --======================================================================
4021 --
4022
4023
4024 --
4025 --
4026 /*======================================================================+
4027 | |
4028 | Private Procedure |
4029 | |
4030 | |
4031 +======================================================================*/
4032 FUNCTION ValidateRevLinks
4033 RETURN BOOLEAN
4034 IS
4035 l_log_module VARCHAR2(240);
4036 l_temp NUMBER;
4037 BEGIN
4038 --
4039 IF g_log_enabled THEN
4040 l_log_module := C_DEFAULT_MODULE||'.ValidateRevLinks';
4041 END IF;
4042 --
4043 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4044
4045 trace
4046 (p_msg => 'BEGIN of ValidateRevLinks'
4047 ,p_level => C_LEVEL_PROCEDURE
4048 ,p_module => l_log_module);
4049
4050 END IF;
4051
4052 -- please refer to the comments in method ValidateLinks for explanation.
4053
4054 IF g_rec_lines.array_distribution_id_char_5(g_LineNumber) IS NULL AND
4055 g_rec_lines.array_distribution_id_num_5(g_LineNumber) IS NULL THEN
4056 l_temp := 0;
4057 ELSE
4058 l_temp := 1;
4059 END IF;
4060 IF g_rec_lines.array_distribution_id_char_4(g_LineNumber) IS NOT NULL OR
4061 g_rec_lines.array_distribution_id_num_4(g_LineNumber) IS NOT NULL THEN
4062 l_temp := 2+l_temp;
4063 END IF;
4064 IF g_rec_lines.array_distribution_id_char_3(g_LineNumber) IS NOT NULL OR
4065 g_rec_lines.array_distribution_id_num_3(g_LineNumber) IS NOT NULL THEN
4066 l_temp := 4+l_temp;
4067 END IF;
4068 IF g_rec_lines.array_distribution_id_char_2(g_LineNumber) IS NOT NULL OR
4069 g_rec_lines.array_distribution_id_num_2(g_LineNumber) IS NOT NULL THEN
4070 l_temp := 8+l_temp;
4071 END IF;
4072 IF g_rec_lines.array_sys_distribution_type(g_LineNumber) IS NULL
4073 OR (g_rec_lines.array_distribution_id_char_1(g_LineNumber) IS NULL AND
4074 g_rec_lines.array_distribution_id_num_1(g_LineNumber) IS NULL)
4075 OR l_temp not in (0, 8, 12, 14, 15) THEN
4076
4077 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4078 xla_accounting_err_pkg.build_message
4079 (p_appli_s_name => 'XLA'
4080 ,p_msg_name => 'XLA_AP_NO_DIST_LINK_ID'
4081 ,p_token_1 => 'LINE_NUMBER'
4082 ,p_value_1 => g_ExtractLine
4083 ,p_token_2 => 'LINE_TYPE_NAME'
4084 ,p_value_2 => 'Accounting Reversal'
4085 ,p_token_3 => 'OWNER'
4086 ,p_value_3 => xla_lookups_pkg.get_meaning(
4087 p_lookup_type => 'XLA_OWNER_TYPE'
4088 , p_lookup_code => 'S'
4089 )
4090 ,p_token_4 => 'PRODUCT_NAME'
4091 ,p_value_4 => 'Subledger Accounting Architecture'
4092 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4093 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4094 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4095 );
4096
4097 IF (C_LEVEL_ERROR >= g_log_level) THEN
4098 trace
4099 (p_msg => 'ERROR: XLA_AP_NO_DIST_LINK_ID'
4100 ,p_level => C_LEVEL_ERROR
4101 ,p_module => l_log_module);
4102 END IF;
4103
4104 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4105 trace
4106 (p_msg => 'return value. = FALSE'
4107 ,p_level => C_LEVEL_PROCEDURE
4108 ,p_module => l_log_module);
4109 trace
4110 (p_msg => 'END of ValidateRevLinks'
4111 ,p_level => C_LEVEL_PROCEDURE
4112 ,p_module => l_log_module);
4113
4114 END IF;
4115 RETURN FALSE;
4116 ELSE
4117 -- please refer to the comments in method ValidateLinks for explanation.
4118
4119 IF g_rec_lines.array_rev_dist_id_char_5(g_LineNumber) IS NULL AND
4120 g_rec_lines.array_rev_dist_id_num_5(g_LineNumber) IS NULL THEN
4121 l_temp := 0;
4122 ELSE
4123 l_temp := 1;
4124 END IF;
4125 IF g_rec_lines.array_rev_dist_id_char_4(g_LineNumber) IS NOT NULL OR
4126 g_rec_lines.array_rev_dist_id_num_4(g_LineNumber) IS NOT NULL THEN
4127 l_temp := 2+l_temp;
4128 END IF;
4129 IF g_rec_lines.array_rev_dist_id_char_3(g_LineNumber) IS NOT NULL OR
4130 g_rec_lines.array_rev_dist_id_num_3(g_LineNumber) IS NOT NULL THEN
4131 l_temp := 4+l_temp;
4132 END IF;
4133 IF g_rec_lines.array_rev_dist_id_char_2(g_LineNumber) IS NOT NULL OR
4134 g_rec_lines.array_rev_dist_id_num_2(g_LineNumber) IS NOT NULL THEN
4135 l_temp := 8+l_temp;
4136 END IF;
4137 IF g_rec_lines.array_rev_dist_type(g_LineNumber) IS NULL
4138 OR (g_rec_lines.array_rev_dist_id_char_1(g_LineNumber) IS NULL AND
4139 g_rec_lines.array_rev_dist_id_num_1(g_LineNumber) IS NULL)
4140 OR l_temp not in (0, 8, 12, 14, 15) THEN
4141
4142 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4143 xla_accounting_err_pkg.build_message
4144 (p_appli_s_name => 'XLA'
4145 ,p_msg_name => 'XLA_AP_NO_REV_DIST_LINK_ID'
4146 ,p_token_1 => 'LINE_NUMBER'
4147 ,p_value_1 => g_ExtractLine
4148 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4149 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4150 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4151 );
4152
4153 IF (C_LEVEL_ERROR >= g_log_level) THEN
4154 trace
4155 (p_msg => 'ERROR: XLA_AP_NO_REV_DIST_LINK_ID'
4156 ,p_level => C_LEVEL_ERROR
4157 ,p_module => l_log_module);
4158 END IF;
4159
4160 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4161 trace
4162 (p_msg => 'return value. = FALSE'
4163 ,p_level => C_LEVEL_PROCEDURE
4164 ,p_module => l_log_module);
4165 trace
4166 (p_msg => 'END of ValidateRevLinks'
4167 ,p_level => C_LEVEL_PROCEDURE
4168 ,p_module => l_log_module);
4169
4170 END IF;
4171 RETURN FALSE;
4172 ELSE
4173 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4174 trace
4175 (p_msg => 'return value. = TRUE'
4176 ,p_level => C_LEVEL_PROCEDURE
4177 ,p_module => l_log_module);
4178 trace
4179 (p_msg => 'END of ValidateRevLinks'
4180 ,p_level => C_LEVEL_PROCEDURE
4181 ,p_module => l_log_module);
4182
4183 END IF;
4184 RETURN TRUE;
4185 END IF;
4186 END IF;
4187
4188
4189 EXCEPTION
4190 WHEN xla_exceptions_pkg.application_exception THEN
4191 RAISE;
4192 WHEN OTHERS THEN
4193 xla_exceptions_pkg.raise_message
4194 (p_location => 'xla_ae_lines_pkg.ValidateRevLinks');
4195 --
4196 END ValidateRevLinks;
4197 --
4198 /*======================================================================+
4199 | |
4200 | Public Procedure |
4201 | |
4202 | |
4203 +======================================================================*/
4204
4205 --
4206 --====================================================================
4207 --
4208 --
4209 --
4210 --
4211 --
4212 -- PUBLIC procedures and functions
4213 --
4214 --
4215 --
4216 --
4217 --
4218 --
4219 --
4220 --
4221 --
4222 --
4223 --
4224 --
4225 --
4226 --
4227 --
4228 --
4229 --======================================================================
4230 PROCEDURE AccountingReversal (
4231 p_accounting_mode IN VARCHAR2
4232 ) IS
4233
4234 l_log_module VARCHAR2(240);
4235 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4236 l_array_ledger_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4237 l_array_source_dist_id_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4238 l_array_source_dist_id_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4239 l_array_source_dist_id_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4240 l_array_source_dist_id_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4241 l_array_source_dist_id_num_5 XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4242 l_array_source_dist_id_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4243 l_array_source_dist_id_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4244 l_array_source_dist_id_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4245 l_array_source_dist_id_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4246 l_array_source_dist_id_char_5 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4247 l_array_source_dist_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4248 l_array_rev_dist_id_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4249 l_array_rev_dist_id_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4250 l_array_rev_dist_id_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4251 l_array_rev_dist_id_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4252 l_array_rev_dist_id_num_5 XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4253 l_array_rev_dist_id_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4254 l_array_rev_dist_id_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4255 l_array_rev_dist_id_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4256 l_array_rev_dist_id_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4257 l_array_rev_dist_id_char_5 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4258 l_array_rev_dist_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
4259
4260 l_array_balance_type_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V1L;
4261 l_array_entry_status_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V1L;
4262 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4263 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4264 l_array_header_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_num; -- 4262811c MPA header for Line reversal
4265 l_array_switch_side_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V1L; -- 5055878 Reversal method. Y=SIDE, N=SIGN
4266 l_array_tax_line_ref XLA_AE_JOURNAL_ENTRY_PKG.t_array_num; -- bug 7159711
4267 l_array_tax_summary_line_ref XLA_AE_JOURNAL_ENTRY_PKG.t_array_num; -- bug 7159711
4268 l_array_tax_rec_nrec_dist_ref XLA_AE_JOURNAL_ENTRY_PKG.t_array_num; -- bug 7159711
4269
4270 l_application_id NUMBER;
4271
4272 -- 5086984 Performance fix
4273 l_array_mpa_acc_ledger_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4274 l_array_mpa_acc_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4275 l_array_mpa_acc_ref_ae_header XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4276 l_array_mpa_acc_temp_line_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4277 l_array_mpa_acc_ae_header_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4278 l_array_mpa_acc_header_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_num;
4279 l_array_mpa_acc_balance_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V1L;
4280
4281 l_array_gl_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_date; -- 5189664
4282 l_array_accounting_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_date; -- 8505463
4283
4284 l_default_switch_side_flag CHAR(1);
4285 l_ledger_attrs XLA_ACCOUNTING_CACHE_PKG.t_array_ledger_attrs; --7135700
4286 l_upgrade_check NUMBER DEFAULT 0; --7135700
4287 l_primary_ledger_id NUMBER; --7135700
4288 l_max_first_open_period DATE DEFAULT NULL; --7135700
4289 l_min_ref_event_date DATE DEFAULT NULL; --7135700
4290 l_error_count NUMBER DEFAULT 0; --7135700 + 7253269
4291
4292
4293
4294 BEGIN
4295 IF g_log_enabled THEN
4296 l_log_module := C_DEFAULT_MODULE||'.AccountingReversal';
4297 END IF;
4298
4299 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4300 trace
4301 (p_msg => 'BEGIN of AccountingReversal'
4302 ,p_level => C_LEVEL_PROCEDURE
4303 ,p_module => l_log_module);
4304 END IF;
4305
4306 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
4307 trace
4308 (p_msg => 'Performing line level accounting reversal'
4309 ,p_level => C_LEVEL_STATEMENT
4310 ,p_module => l_log_module);
4311 END IF;
4312
4313 l_application_id := xla_accounting_cache_pkg.getvaluenum('XLA_EVENT_APPL_ID');
4314
4315 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
4316 trace
4317 (p_msg => 'Application ID ='||to_char(l_application_id)
4318 ,p_level => C_LEVEL_STATEMENT
4319 ,p_module => l_log_module);
4320 trace -- 5412560
4321 (p_msg => 'MPA Line Reversal exists = '||xla_accounting_pkg.g_mpa_accrual_exists
4322 ,p_level => C_LEVEL_STATEMENT
4323 ,p_module => l_log_module);
4324 END IF;
4325
4326 ----------------------------------------
4327 -- 5108415 Incomplete MPA
4328 ----------------------------------------
4329 g_incomplete_mpa_acc_LR := NULL;
4330 g_incomplete_mpa_acc_TR := NULL;
4331
4332
4333 --***************************************************************************************************************
4334 --***************************************************************************************************************
4335 --******************* L I N E R E V E R S A L ********************************************************
4336 --***************************************************************************************************************
4337 --***************************************************************************************************************
4338
4339 --
4340 -- selecting all the dummy lines from xla_ae_lines_gt that are due to
4341 -- line level reversal option
4342 --
4343 SELECT event_id
4344 ,ledger_id
4345 ,event_number
4346 ,entity_id
4347 ,source_distribution_type
4348 ,source_distribution_id_num_1
4349 ,source_distribution_id_num_2
4350 ,source_distribution_id_num_3
4351 ,source_distribution_id_num_4
4352 ,source_distribution_id_num_5
4353 ,source_distribution_id_char_1
4354 ,source_distribution_id_char_2
4355 ,source_distribution_id_char_3
4356 ,source_distribution_id_char_4
4357 ,source_distribution_id_char_5
4358 ,reverse_distribution_type
4359 ,reverse_dist_id_num_1
4360 ,reverse_dist_id_num_2
4361 ,reverse_dist_id_num_3
4362 ,reverse_dist_id_num_4
4363 ,reverse_dist_id_num_5
4364 ,reverse_dist_id_char_1
4365 ,reverse_dist_id_char_2
4366 ,reverse_dist_id_char_3
4367 ,reverse_dist_id_char_4
4368 ,reverse_dist_id_char_5
4369 ,switch_side_flag -- 5055878
4370 ,accounting_date -- 5189664
4371 ,tax_line_ref_id -- 7159711
4372 ,tax_summary_line_ref_id -- 7159711
4373 ,tax_rec_nrec_dist_ref_id -- 7159711
4374 BULK COLLECT INTO
4375 l_array_event_id
4376 ,l_array_ledger_id
4377 ,l_array_event_number
4378 ,l_array_entity_id
4379 ,l_array_source_dist_type
4380 ,l_array_source_dist_id_num_1
4381 ,l_array_source_dist_id_num_2
4382 ,l_array_source_dist_id_num_3
4383 ,l_array_source_dist_id_num_4
4384 ,l_array_source_dist_id_num_5
4385 ,l_array_source_dist_id_char_1
4386 ,l_array_source_dist_id_char_2
4387 ,l_array_source_dist_id_char_3
4388 ,l_array_source_dist_id_char_4
4389 ,l_array_source_dist_id_char_5
4390 ,l_array_rev_dist_type
4391 ,l_array_rev_dist_id_num_1
4392 ,l_array_rev_dist_id_num_2
4393 ,l_array_rev_dist_id_num_3
4394 ,l_array_rev_dist_id_num_4
4395 ,l_array_rev_dist_id_num_5
4396 ,l_array_rev_dist_id_char_1
4397 ,l_array_rev_dist_id_char_2
4398 ,l_array_rev_dist_id_char_3
4399 ,l_array_rev_dist_id_char_4
4400 ,l_array_rev_dist_id_char_5
4401 ,l_array_switch_side_flag -- 5055878
4402 ,l_array_gl_date -- 5189664
4403 ,l_array_tax_line_ref -- 7159711
4404 ,l_array_tax_summary_line_ref -- 7159711
4405 ,l_array_tax_rec_nrec_dist_ref -- 7159711
4406 FROM xla_ae_lines_gt
4407 WHERE reversal_code = 'DUMMY_LR'
4408 ORDER by entity_id, event_number;
4409
4410 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
4411 trace
4412 (p_msg => 'Line Reversal - Extract lines with reversal option set to Y = '||SQL%ROWCOUNT
4413 ,p_level => C_LEVEL_STATEMENT
4414 ,p_module => l_log_module);
4415 END IF;
4416
4417 --=======================================================================================================
4418 -- 4669308 Delete the MPA/Accrual Line Reversal (still in GT ables, not in distribution links yet)
4419 --=======================================================================================================
4420 --
4421 ---------------------------------------------------------------------------------------------------------
4422 -- 4669308 Delete the MPA/Accrual Line Reversal in xla_ae_lines_gt (not in distribution links yet)
4423 ---------------------------------------------------------------------------------------------------------
4424 --
4425 IF xla_accounting_pkg.g_mpa_accrual_exists = 'Y' THEN -- 5412560
4426 -- Modify for performance bug 5086984
4427 FOR i IN 1..l_array_entity_id.count LOOP
4428 SELECT /*+ Leading(HGT) cardinality(hgt 1) index(lgt XLA_AE_LINES_GT_U1) */
4429 lgt.ledger_id
4430 ,lgt.event_id
4431 ,lgt.ref_ae_header_id
4432 ,lgt.temp_line_num
4433 ,lgt.ae_header_id
4434 ,lgt.header_num
4435 ,lgt.balance_type_code
4436 BULK COLLECT INTO
4437 l_array_mpa_acc_ledger_id
4438 ,l_array_mpa_acc_event_id
4439 ,l_array_mpa_acc_ref_ae_header
4440 ,l_array_mpa_acc_temp_line_num
4441 ,l_array_mpa_acc_ae_header_id
4442 ,l_array_mpa_acc_header_num
4443 ,l_array_mpa_acc_balance_type
4444 FROM xla_ae_lines_gt lgt
4445 ,xla_ae_headers_gt hgt
4446 WHERE l_array_ledger_id(i) = lgt.ledger_id
4447 AND l_array_rev_dist_type(i) = lgt.source_distribution_type
4448 AND nvl(l_array_rev_dist_id_num_1(i),-99) = nvl(lgt.source_distribution_id_num_1,-99)
4449 AND nvl(l_array_rev_dist_id_num_2(i),-99) = nvl(lgt.source_distribution_id_num_2,-99)
4450 AND nvl(l_array_rev_dist_id_num_3(i),-99) = nvl(lgt.source_distribution_id_num_3,-99)
4451 AND nvl(l_array_rev_dist_id_num_4(i),-99) = nvl(lgt.source_distribution_id_num_4,-99)
4452 AND nvl(l_array_rev_dist_id_num_5(i),-99) = nvl(lgt.source_distribution_id_num_5,-99)
4453 AND nvl(l_array_rev_dist_id_char_1(i),' ') = nvl(lgt.source_distribution_id_char_1,' ')
4454 AND nvl(l_array_rev_dist_id_char_2(i),' ') = nvl(lgt.source_distribution_id_char_2,' ')
4455 AND nvl(l_array_rev_dist_id_char_3(i),' ') = nvl(lgt.source_distribution_id_char_3,' ')
4456 AND nvl(l_array_rev_dist_id_char_4(i),' ') = nvl(lgt.source_distribution_id_char_4,' ')
4457 AND nvl(l_array_rev_dist_id_char_5(i),' ') = nvl(lgt.source_distribution_id_char_5,' ')
4458 AND lgt.reversal_code IS NULL -- the lines created form revesal are not reversed again
4459 -- 5412560 replacement
4460 AND NVL(lgt.header_num,0) > 0
4461 AND lgt.header_num = hgt.header_num
4462 AND hgt.event_id = lgt.event_id
4463 AND hgt.ledger_id = lgt.ledger_id
4464 AND hgt.balance_type_code = lgt.balance_type_code
4465 AND hgt.ae_header_id = lgt.ae_header_id
4466 AND hgt.entity_id = l_array_entity_id(i)
4467 AND hgt.event_number < l_array_event_number(i);
4468 /* 5412560 replaced
4469 AND NOT EXISTS ( -- the lines already reversed are not reversed again
4470 SELECT 1
4471 FROM xla_ae_lines_gt
4472 WHERE ledger_id = lgt.ledger_id
4473 AND ref_ae_header_id = lgt.ref_ae_header_id
4474 AND temp_line_num = lgt.temp_line_num * -1)
4475 AND NVL(lgt.header_num,0) > 0
4476 AND lgt.header_num = hgt.header_num
4477 AND hgt.event_id = lgt.event_id
4478 AND hgt.ledger_id = lgt.ledger_id
4479 AND hgt.balance_type_code = lgt.balance_type_code
4480 AND hgt.entity_id = l_array_entity_id(i)
4481 AND hgt.event_number < l_array_event_number(i);
4482 */
4483
4484 IF (C_LEVEL_STATEMENT >= g_log_level) THEN -- 5412560
4485 trace
4486 (p_msg => 'MPA Line Reversal entity='||l_array_entity_id(i)||
4487 ' count = '||l_array_mpa_acc_ae_header_id.COUNT
4488 ,p_level => C_LEVEL_STATEMENT
4489 ,p_module => l_log_module);
4490 for a in 1..l_array_mpa_acc_ae_header_id.count loop
4491 trace
4492 (p_msg => 'MPA Line Reversal ledger='||l_array_mpa_acc_ledger_id(a)||
4493 ' ref_header='||l_array_mpa_acc_ref_ae_header(a)||
4494 ' line='||l_array_mpa_acc_temp_line_num(a)||
4495 ' header='||l_array_mpa_acc_ae_header_id(a)
4496 ,p_level => C_LEVEL_STATEMENT
4497 ,p_module => l_log_module);
4498 end loop;
4499 END IF;
4500
4501 ---------------------------------------------------------------------------------------------------------
4502 -- 4669308 Delete the MPA/Accrual Line Reversal in xla_ae_lines_gt (not in distribution links yet)
4503 ---------------------------------------------------------------------------------------------------------
4504 FORALL j IN 1..l_array_mpa_acc_ae_header_id.count
4505 DELETE xla_ae_lines_gt
4506 WHERE ledger_id = l_array_mpa_acc_ledger_id(j)
4507 AND ref_ae_header_id = l_array_mpa_acc_ref_ae_header(j)
4508 AND temp_line_num = l_array_mpa_acc_temp_line_num(j)
4509 AND ae_header_id = l_array_mpa_acc_ae_header_id(j)
4510 AND header_num = l_array_mpa_acc_header_num(j);
4511
4512 ---------------------------------------------------------------------------------------------------------
4513 -- 4669308 Delete the MPA/Accrual Line Reversal in xla_ae_headers_gt (not in distribution links yet)
4514 ---------------------------------------------------------------------------------------------------------
4515 FORALL j IN 1..l_array_mpa_acc_event_id.count
4516 DELETE xla_ae_headers_gt
4517 WHERE ledger_id = l_array_mpa_acc_ledger_id(j)
4518 AND event_id = l_array_mpa_acc_event_id(j)
4519 AND ae_header_id = l_array_mpa_acc_ae_header_id(j)
4520 AND balance_type_code = l_array_mpa_acc_balance_type(j)
4521 AND header_num = l_array_mpa_acc_header_num(j);
4522
4523 END LOOP;
4524 --
4525 END IF; -- xla_accounting_pkg.g_mpa_accrual_exists = 'Y'
4526 -------------------------------------------------------------------------------------------------------------------------
4527 /****** CHANGES FOR MPA CANCELLATION *******/
4528 /* ACCOUNTING BOTH ORIGINAL AND MPA/ACCRUAL REVERSAL PRIOR TO CANCELLATION DATE
4529 IS REVERSED ON THE CANCELLATION DATE.
4530 FUTURE PERIODS FINAL ACCOUNTED DATA WOULD BE REVERSED WITH THE RESPECTIVE
4531 FUTURE ACCOUNTING DATES.
4532
4533 NOTE: Changes have been done only for Cancellation from XLA_AE_LINES and not LINES_GT as the
4534 MPA/Accrual Reversal data is deleted from above when Original and cancellation Event
4535 are accounted in the same Run.
4536 */
4537 --
4538 -- reverse the lines in xla_ae_lines_gt table (not in distribution links yet)
4539 --
4540 INSERT INTO xla_ae_lines_gt
4541 (ae_header_id
4542 ,temp_line_num
4543 ,event_id
4544 ,ref_ae_header_id
4545 ,ref_ae_line_num
4546 ,ref_temp_line_num
4547 ,ref_event_id
4548 ,ledger_id
4549 ,balance_type_code
4550 ,accounting_class_code
4551 ,event_class_code
4552 ,event_type_code
4553 ,line_definition_owner_code
4554 ,line_definition_code
4555 ,accounting_line_type_code
4556 ,accounting_line_code
4557 ,code_combination_status_code
4558 ,code_combination_id
4559 ,sl_coa_mapping_name
4560 ,dynamic_insert_flag
4561 ,source_coa_id
4562 ,ccid_coa_id
4563 ,calculate_acctd_amts_flag
4564 ,calculate_g_l_amts_flag
4565 ,gain_or_loss_flag
4566 ,rounding_class_code
4567 ,document_rounding_level
4568 ,DOC_ROUNDING_ACCTD_AMT
4569 ,DOC_ROUNDING_ENTERED_AMT
4570 ,alt_ccid_status_code
4571 ,alt_code_combination_id
4572 ,alt_segment1
4573 ,alt_segment2
4574 ,alt_segment3
4575 ,alt_segment4
4576 ,alt_segment5
4577 ,alt_segment6
4578 ,alt_segment7
4579 ,alt_segment8
4580 ,alt_segment9
4581 ,alt_segment10
4582 ,alt_segment11
4583 ,alt_segment12
4584 ,alt_segment13
4585 ,alt_segment14
4586 ,alt_segment15
4587 ,alt_segment16
4588 ,alt_segment17
4589 ,alt_segment18
4590 ,alt_segment19
4591 ,alt_segment20
4592 ,alt_segment21
4593 ,alt_segment22
4594 ,alt_segment23
4595 ,alt_segment24
4596 ,alt_segment25
4597 ,alt_segment26
4598 ,alt_segment27
4599 ,alt_segment28
4600 ,alt_segment29
4601 ,alt_segment30
4602 ,segment1
4603 ,segment2
4604 ,segment3
4605 ,segment4
4606 ,segment5
4607 ,segment6
4608 ,segment7
4609 ,segment8
4610 ,segment9
4611 ,segment10
4612 ,segment11
4613 ,segment12
4614 ,segment13
4615 ,segment14
4616 ,segment15
4617 ,segment16
4618 ,segment17
4619 ,segment18
4620 ,segment19
4621 ,segment20
4622 ,segment21
4623 ,segment22
4624 ,segment23
4625 ,segment24
4626 ,segment25
4627 ,segment26
4628 ,segment27
4629 ,segment28
4630 ,segment29
4631 ,segment30
4632 ,description
4633 ,gl_transfer_mode_code
4634 ,merge_duplicate_code
4635 ,switch_side_flag
4636 ,unrounded_entered_dr
4637 ,unrounded_entered_cr
4638 ,unrounded_accounted_dr
4639 ,unrounded_accounted_cr
4640 ,entered_currency_mau
4641 ,currency_code
4642 ,currency_conversion_date
4643 ,currency_conversion_rate
4644 ,currency_conversion_type
4645 ,statistical_amount
4646 ,party_id
4647 ,party_site_id
4648 ,party_type_code
4649 ,ussgl_transaction_code
4650 ,jgzz_recon_ref
4651 ,source_distribution_id_char_1
4652 ,source_distribution_id_char_2
4653 ,source_distribution_id_char_3
4654 ,source_distribution_id_char_4
4655 ,source_distribution_id_char_5
4656 ,source_distribution_id_num_1
4657 ,source_distribution_id_num_2
4658 ,source_distribution_id_num_3
4659 ,source_distribution_id_num_4
4660 ,source_distribution_id_num_5
4661 ,source_distribution_type
4662 ,reverse_dist_id_char_1
4663 ,reverse_dist_id_char_2
4664 ,reverse_dist_id_char_3
4665 ,reverse_dist_id_char_4
4666 ,reverse_dist_id_char_5
4667 ,reverse_dist_id_num_1
4668 ,reverse_dist_id_num_2
4669 ,reverse_dist_id_num_3
4670 ,reverse_dist_id_num_4
4671 ,reverse_dist_id_num_5
4672 ,reverse_distribution_type
4673 ,tax_line_ref_id
4674 ,tax_summary_line_ref_id
4675 ,tax_rec_nrec_dist_ref_id
4676 -- 4262811
4677 ,header_num
4678 ,mpa_accrual_entry_flag
4679 ,multiperiod_option_flag
4680 ,multiperiod_start_date
4681 ,multiperiod_end_date
4682 ,reversal_code
4683 ,inherit_desc_flag -- 4219869
4684 ,encumbrance_type_id -- 4458381
4685 ,accounting_entry_status_code
4686 ,accounting_date
4687 , BFLOW_APPLICATION_ID
4688 , BFLOW_ENTITY_CODE
4689 , APPLIED_TO_ENTITY_ID
4690 , BFLOW_SOURCE_ID_NUM_1
4691 , BFLOW_SOURCE_ID_NUM_2
4692 , BFLOW_SOURCE_ID_NUM_3
4693 , BFLOW_SOURCE_ID_NUM_4
4694 , BFLOW_SOURCE_ID_CHAR_1
4695 , BFLOW_SOURCE_ID_CHAR_2
4696 , BFLOW_SOURCE_ID_CHAR_3
4697 , BFLOW_SOURCE_ID_CHAR_4
4698 , BFLOW_DISTRIBUTION_TYPE
4699 , BFLOW_DIST_ID_NUM_1
4700 , BFLOW_DIST_ID_NUM_2
4701 , BFLOW_DIST_ID_NUM_3
4702 , BFLOW_DIST_ID_NUM_4
4703 , BFLOW_DIST_ID_NUM_5
4704 , BFLOW_DIST_ID_CHAR_1
4705 , BFLOW_DIST_ID_CHAR_2
4706 , BFLOW_DIST_ID_CHAR_3
4707 , BFLOW_DIST_ID_CHAR_4
4708 , BFLOW_DIST_ID_CHAR_5
4709 , alloc_to_application_id
4710 , alloc_to_entity_code
4711 , alloc_to_source_id_num_1
4712 , alloc_to_source_id_num_2
4713 , alloc_to_source_id_num_3
4714 , alloc_to_source_id_num_4
4715 , alloc_to_source_id_char_1
4716 , alloc_to_source_id_char_2
4717 , alloc_to_source_id_char_3
4718 , alloc_to_source_id_char_4
4719 , alloc_to_distribution_type
4720 , alloc_to_dist_id_char_1
4721 , alloc_to_dist_id_char_2
4722 , alloc_to_dist_id_char_3
4723 , alloc_to_dist_id_char_4
4724 , alloc_to_dist_id_char_5
4725 , alloc_to_dist_id_num_1
4726 , alloc_to_dist_id_num_2
4727 , alloc_to_dist_id_num_3
4728 , alloc_to_dist_id_num_4
4729 , alloc_to_dist_id_num_5 -- 4955764
4730 , analytical_balance_flag -- Bug 7382288
4731 , anc_id_1
4732 , anc_id_2
4733 , anc_id_3
4734 , anc_id_4
4735 , anc_id_5
4736 , anc_id_6
4737 , anc_id_7
4738 , anc_id_8
4739 , anc_id_9
4740 , anc_id_10
4741 , anc_id_11
4742 , anc_id_12
4743 , anc_id_13
4744 , anc_id_14
4745 , anc_id_15
4746 , anc_id_16
4747 , anc_id_17
4748 , anc_id_18
4749 , anc_id_19
4750 , anc_id_20
4751 , anc_id_21
4752 , anc_id_22
4753 , anc_id_23
4754 , anc_id_24
4755 , anc_id_25
4756 , anc_id_26
4757 , anc_id_27
4758 , anc_id_28
4759 , anc_id_29
4760 , anc_id_30
4761 , anc_id_31
4762 , anc_id_32
4763 , anc_id_33
4764 , anc_id_34
4765 , anc_id_35
4766 , anc_id_36
4767 , anc_id_37
4768 , anc_id_38
4769 , anc_id_39
4770 , anc_id_40
4771 , anc_id_41
4772 , anc_id_42
4773 , anc_id_43
4774 , anc_id_44
4775 , anc_id_45
4776 , anc_id_46
4777 , anc_id_47
4778 , anc_id_48
4779 , anc_id_49
4780 , anc_id_50
4781 , anc_id_51
4782 , anc_id_52
4783 , anc_id_53
4784 , anc_id_54
4785 , anc_id_55
4786 , anc_id_56
4787 , anc_id_57
4788 , anc_id_58
4789 , anc_id_59
4790 , anc_id_60
4791 , anc_id_61
4792 , anc_id_62
4793 , anc_id_63
4794 , anc_id_64
4795 , anc_id_65
4796 , anc_id_66
4797 , anc_id_67
4798 , anc_id_68
4799 , anc_id_69
4800 , anc_id_70
4801 , anc_id_71
4802 , anc_id_72
4803 , anc_id_73
4804 , anc_id_74
4805 , anc_id_75
4806 , anc_id_76
4807 , anc_id_77
4808 , anc_id_78
4809 , anc_id_79
4810 , anc_id_80
4811 , anc_id_81
4812 , anc_id_82
4813 , anc_id_83
4814 , anc_id_84
4815 , anc_id_85
4816 , anc_id_86
4817 , anc_id_87
4818 , anc_id_88
4819 , anc_id_89
4820 , anc_id_90
4821 , anc_id_91
4822 , anc_id_92
4823 , anc_id_93
4824 , anc_id_94
4825 , anc_id_95
4826 , anc_id_96
4827 , anc_id_97
4828 , anc_id_98
4829 , anc_id_99
4830 , anc_id_100)
4831 (SELECT
4832 ae_header_id
4833 ,temp_line_num
4834 ,event_id
4835 ,ref_ae_header_id
4836 ,ref_ae_line_num
4837 ,ref_temp_line_num
4838 ,ref_event_id
4839 ,ledger_id
4840 ,balance_type_code
4841 ,accounting_class_code
4842 ,event_class_code
4843 ,event_type_code
4844 ,line_definition_owner_code
4845 ,line_definition_code
4846 ,accounting_line_type_code
4847 ,accounting_line_code
4848 ,code_combination_status_code
4849 ,code_combination_id
4850 ,sl_coa_mapping_name
4851 ,dynamic_insert_flag
4852 ,source_coa_id
4853 ,ccid_coa_id
4854 ,calculate_acctd_amts_flag
4855 ,calculate_g_l_amts_flag
4856 ,gain_or_loss_flag
4857 ,rounding_class_code
4858 ,document_rounding_level
4859 ,doc_rounding_acctd_amt
4860 ,doc_rounding_entered_amt
4861 ,alt_ccid_status_code
4862 ,alt_code_combination_id
4863 ,alt_segment1
4864 ,alt_segment2
4865 ,alt_segment3
4866 ,alt_segment4
4867 ,alt_segment5
4868 ,alt_segment6
4869 ,alt_segment7
4870 ,alt_segment8
4871 ,alt_segment9
4872 ,alt_segment10
4873 ,alt_segment11
4874 ,alt_segment12
4875 ,alt_segment13
4876 ,alt_segment14
4877 ,alt_segment15
4878 ,alt_segment16
4879 ,alt_segment17
4880 ,alt_segment18
4881 ,alt_segment19
4882 ,alt_segment20
4883 ,alt_segment21
4884 ,alt_segment22
4885 ,alt_segment23
4886 ,alt_segment24
4887 ,alt_segment25
4888 ,alt_segment26
4889 ,alt_segment27
4890 ,alt_segment28
4891 ,alt_segment29
4892 ,alt_segment30
4893 ,segment1
4894 ,segment2
4895 ,segment3
4896 ,segment4
4897 ,segment5
4898 ,segment6
4899 ,segment7
4900 ,segment8
4901 ,segment9
4902 ,segment10
4903 ,segment11
4904 ,segment12
4905 ,segment13
4906 ,segment14
4907 ,segment15
4908 ,segment16
4909 ,segment17
4910 ,segment18
4911 ,segment19
4912 ,segment20
4913 ,segment21
4914 ,segment22
4915 ,segment23
4916 ,segment24
4917 ,segment25
4918 ,segment26
4919 ,segment27
4920 ,segment28
4921 ,segment29
4922 ,segment30
4923 ,description
4924 ,gl_transfer_mode_code
4925 ,merge_duplicate_code
4926 ,switch_side_flag
4927 ,unrounded_entered_dr
4928 ,unrounded_entered_cr
4929 ,unrounded_accounted_dr
4930 ,unrounded_accounted_cr
4931 ,entered_currency_mau
4932 ,currency_code
4933 ,currency_conversion_date
4934 ,currency_conversion_rate
4935 ,currency_conversion_type
4936 ,statistical_amount
4937 ,party_id
4938 ,party_site_id
4939 ,party_type_code
4940 ,ussgl_transaction_code
4941 ,jgzz_recon_ref
4942 ,source_distribution_id_char_1
4943 ,source_distribution_id_char_2
4944 ,source_distribution_id_char_3
4945 ,source_distribution_id_char_4
4946 ,source_distribution_id_char_5
4947 ,source_distribution_id_num_1
4948 ,source_distribution_id_num_2
4949 ,source_distribution_id_num_3
4950 ,source_distribution_id_num_4
4951 ,source_distribution_id_num_5
4952 ,source_distribution_type
4953 ,reverse_dist_id_char_1
4954 ,reverse_dist_id_char_2
4955 ,reverse_dist_id_char_3
4956 ,reverse_dist_id_char_4
4957 ,reverse_dist_id_char_5
4958 ,reverse_dist_id_num_1
4959 ,reverse_dist_id_num_2
4960 ,reverse_dist_id_num_3
4961 ,reverse_dist_id_num_4
4962 ,reverse_dist_id_num_5
4963 ,reverse_distribution_type
4964 ,tax_line_ref_id
4965 ,tax_summary_line_ref_id
4966 ,tax_rec_nrec_dist_ref_id
4967 ,header_num
4968 ,mpa_accrual_entry_flag
4969 ,multiperiod_option_flag
4970 ,multiperiod_start_date
4971 ,multiperiod_end_date
4972 ,reversal_code
4973 ,inherit_desc_flag
4974 ,encumbrance_type_id
4975 ,accounting_entry_status_code
4976 ,accounting_date
4977 , BFLOW_APPLICATION_ID
4978 , BFLOW_ENTITY_CODE
4979 , APPLIED_TO_ENTITY_ID
4980 , BFLOW_SOURCE_ID_NUM_1
4981 , BFLOW_SOURCE_ID_NUM_2
4982 , BFLOW_SOURCE_ID_NUM_3
4983 , BFLOW_SOURCE_ID_NUM_4
4984 , BFLOW_SOURCE_ID_CHAR_1
4985 , BFLOW_SOURCE_ID_CHAR_2
4986 , BFLOW_SOURCE_ID_CHAR_3
4987 , BFLOW_SOURCE_ID_CHAR_4
4988 , BFLOW_DISTRIBUTION_TYPE
4989 , BFLOW_DIST_ID_NUM_1
4990 , BFLOW_DIST_ID_NUM_2
4991 , BFLOW_DIST_ID_NUM_3
4992 , BFLOW_DIST_ID_NUM_4
4993 , BFLOW_DIST_ID_NUM_5
4994 , BFLOW_DIST_ID_CHAR_1
4995 , BFLOW_DIST_ID_CHAR_2
4996 , BFLOW_DIST_ID_CHAR_3
4997 , BFLOW_DIST_ID_CHAR_4
4998 , BFLOW_DIST_ID_CHAR_5
4999 , alloc_to_application_id
5000 , alloc_to_entity_code
5001 , alloc_to_source_id_num_1
5002 , alloc_to_source_id_num_2
5003 , alloc_to_source_id_num_3
5004 , alloc_to_source_id_num_4
5005 , alloc_to_source_id_char_1
5006 , alloc_to_source_id_char_2
5007 , alloc_to_source_id_char_3
5008 , alloc_to_source_id_char_4
5009 , alloc_to_distribution_type
5010 , alloc_to_dist_id_char_1
5011 , alloc_to_dist_id_char_2
5012 , alloc_to_dist_id_char_3
5013 , alloc_to_dist_id_char_4
5014 , alloc_to_dist_id_char_5
5015 , alloc_to_dist_id_num_1
5016 , alloc_to_dist_id_num_2
5017 , alloc_to_dist_id_num_3
5018 , alloc_to_dist_id_num_4
5019 , alloc_to_dist_id_num_5
5020 , analytical_balance_flag -- Bug 7382288 Included analytical criteria
5021 , anc_id_1
5022 , anc_id_2
5023 , anc_id_3
5024 , anc_id_4
5025 , anc_id_5
5026 , anc_id_6
5027 , anc_id_7
5028 , anc_id_8
5029 , anc_id_9
5030 , anc_id_10
5031 , anc_id_11
5032 , anc_id_12
5033 , anc_id_13
5034 , anc_id_14
5035 , anc_id_15
5036 , anc_id_16
5037 , anc_id_17
5038 , anc_id_18
5039 , anc_id_19
5040 , anc_id_20
5041 , anc_id_21
5042 , anc_id_22
5043 , anc_id_23
5044 , anc_id_24
5045 , anc_id_25
5046 , anc_id_26
5047 , anc_id_27
5048 , anc_id_28
5049 , anc_id_29
5050 , anc_id_30
5051 , anc_id_31
5052 , anc_id_32
5053 , anc_id_33
5054 , anc_id_34
5055 , anc_id_35
5056 , anc_id_36
5057 , anc_id_37
5058 , anc_id_38
5059 , anc_id_39
5060 , anc_id_40
5061 , anc_id_41
5062 , anc_id_42
5063 , anc_id_43
5064 , anc_id_44
5065 , anc_id_45
5066 , anc_id_46
5067 , anc_id_47
5068 , anc_id_48
5069 , anc_id_49
5070 , anc_id_50
5071 , anc_id_51
5072 , anc_id_52
5073 , anc_id_53
5074 , anc_id_54
5075 , anc_id_55
5076 , anc_id_56
5077 , anc_id_57
5078 , anc_id_58
5079 , anc_id_59
5080 , anc_id_60
5081 , anc_id_61
5082 , anc_id_62
5083 , anc_id_63
5084 , anc_id_64
5085 , anc_id_65
5086 , anc_id_66
5087 , anc_id_67
5088 , anc_id_68
5089 , anc_id_69
5090 , anc_id_70
5091 , anc_id_71
5092 , anc_id_72
5093 , anc_id_73
5094 , anc_id_74
5095 , anc_id_75
5096 , anc_id_76
5097 , anc_id_77
5098 , anc_id_78
5099 , anc_id_79
5100 , anc_id_80
5101 , anc_id_81
5102 , anc_id_82
5103 , anc_id_83
5104 , anc_id_84
5105 , anc_id_85
5106 , anc_id_86
5107 , anc_id_87
5108 , anc_id_88
5109 , anc_id_89
5110 , anc_id_90
5111 , anc_id_91
5112 , anc_id_92
5113 , anc_id_93
5114 , anc_id_94
5115 , anc_id_95
5116 , anc_id_96
5117 , anc_id_97
5118 , anc_id_98
5119 , anc_id_99
5120 , anc_id_100
5121 FROM
5122 (SELECT /*+ ORDERED USE_HASH(lgt2) USE_NL(hgt) */
5123 -- populates ae_header_id which is same as event_id till this point
5124 lgt1.event_id AE_HEADER_ID
5125 -- populates temp_line_num which is (-ve) of original line
5126 ,0-lgt2.temp_line_num TEMP_LINE_NUM
5127 -- populates event_id which is the event_id of event under process
5128 ,lgt1.event_id EVENT_ID
5129 -- populates ref_ae_header_id which is ae_header_id of original line
5130 ,hgt.ae_header_id REF_AE_HEADER_ID
5131 -- populates ref_ae_line_num which is ae_line_num of original line
5132 ,lgt2.ae_line_num REF_AE_LINE_NUM
5133 -- populates ref_temp_line_num which is ae_line_num of original line
5134 ,lgt2.temp_line_num REF_TEMP_LINE_NUM
5135 -- populates ref_event_id which is event_id of original line
5136 ,0-lgt2.event_id REF_EVENT_ID -- REF_EVENT_ID made negative for Bug:8277823
5137 ,lgt2.ledger_id LEDGER_ID
5138 ,lgt2.balance_type_code BALANCE_TYPE_CODE
5139 ,lgt2.accounting_class_code ACCOUNTING_CLASS_CODE
5140 ,lgt2.event_class_code EVENT_CLASS_CODE
5141 ,lgt2.event_type_code EVENT_TYPE_CODE
5142 ,lgt2.line_definition_owner_code LINE_DEFINITION_OWNER_CODE
5143 ,lgt2.line_definition_code LINE_DEFINITION_CODE
5144 ,lgt2.accounting_line_type_code ACCOUNTING_LINE_TYPE_CODE
5145 ,lgt2.accounting_line_code ACCOUNTING_LINE_CODE
5146 ,decode(lgt2.gain_or_loss_flag, 'Y'
5147 ,decode(lgt2.calculate_g_l_amts_flag,'Y'
5148 ,lgt2.alt_ccid_status_code,lgt2.code_combination_status_code)
5149 ,lgt2.code_combination_status_code)
5150 CODE_COMBINATION_STATUS_CODE
5151 ,decode(lgt2.gain_or_loss_flag, 'Y'
5152 ,decode(lgt2.calculate_g_l_amts_flag,'Y'
5153 ,lgt2.alt_code_combination_id, lgt2.code_combination_id)
5154 , lgt2.code_combination_id)
5155 CODE_COMBINATION_ID
5156 ,lgt2.sl_coa_mapping_name SL_COA_MAPPING_NAME
5157 ,lgt2.dynamic_insert_flag DYNAMIC_INSERT_FLAG
5158 ,lgt2.source_coa_id SOURCE_COA_ID
5159 ,lgt2.ccid_coa_id CCID_COA_ID
5160 ,lgt2.calculate_acctd_amts_flag CALCULATE_ACCTD_AMTS_FLAG
5161 ,lgt2.calculate_g_l_amts_flag CALCULATE_G_L_AMTS_FLAG
5162 ,lgt2.gain_or_loss_flag GAIN_OR_LOSS_FLAG
5163 ,lgt2.rounding_class_code ROUNDING_CLASS_CODE
5164 ,lgt2.document_rounding_level DOCUMENT_ROUNDING_LEVEL
5165 ,lgt2.doc_rounding_acctd_amt DOC_ROUNDING_ACCTD_AMT
5166 ,lgt2.doc_rounding_entered_amt DOC_ROUNDING_ENTERED_AMT
5167 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.code_combination_status_code ,lgt2.alt_ccid_status_code)
5168 ALT_CCID_STATUS_CODE
5169 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.code_combination_id ,lgt2.alt_code_combination_id)
5170 ALT_CODE_COMBINATION_ID
5171 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment1,lgt2.alt_segment1) ALT_SEGMENT1
5172 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment2,lgt2.alt_segment2) ALT_SEGMENT2
5173 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment3,lgt2.alt_segment3) ALT_SEGMENT3
5174 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment4,lgt2.alt_segment4) ALT_SEGMENT4
5175 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment5,lgt2.alt_segment5) ALT_SEGMENT5
5176 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment6,lgt2.alt_segment6) ALT_SEGMENT6
5177 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment7,lgt2.alt_segment7) ALT_SEGMENT7
5178 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment8,lgt2.alt_segment8) ALT_SEGMENT8
5179 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment9,lgt2.alt_segment9) ALT_SEGMENT9
5180 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment10,lgt2.alt_segment10) ALT_SEGMENT10
5181 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment11,lgt2.alt_segment11) ALT_SEGMENT11
5182 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment12,lgt2.alt_segment12) ALT_SEGMENT12
5183 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment13,lgt2.alt_segment13) ALT_SEGMENT13
5184 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment14,lgt2.alt_segment14) ALT_SEGMENT14
5185 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment15,lgt2.alt_segment15) ALT_SEGMENT15
5186 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment16,lgt2.alt_segment16) ALT_SEGMENT16
5187 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment17,lgt2.alt_segment17) ALT_SEGMENT17
5188 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment18,lgt2.alt_segment18) ALT_SEGMENT18
5189 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment19,lgt2.alt_segment19) ALT_SEGMENT19
5190 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment20,lgt2.alt_segment20) ALT_SEGMENT20
5191 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment21,lgt2.alt_segment21) ALT_SEGMENT21
5192 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment22,lgt2.alt_segment22) ALT_SEGMENT22
5193 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment23,lgt2.alt_segment23) ALT_SEGMENT23
5194 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment24,lgt2.alt_segment24) ALT_SEGMENT24
5195 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment25,lgt2.alt_segment25) ALT_SEGMENT25
5196 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment26,lgt2.alt_segment26) ALT_SEGMENT26
5197 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment27,lgt2.alt_segment27) ALT_SEGMENT27
5198 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment28,lgt2.alt_segment28) ALT_SEGMENT28
5199 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment29,lgt2.alt_segment29) ALT_SEGMENT29
5200 ,decode(lgt2.gain_or_loss_flag, 'Y', lgt2.segment30,lgt2.alt_segment30) ALT_SEGMENT30
5201 ,decode(lgt2.gain_or_loss_flag, 'Y'
5202 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment1,lgt2.segment1)
5203 ,lgt2.segment1) SEGMENT1
5204 ,decode(lgt2.gain_or_loss_flag, 'Y'
5205 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment2,lgt2.segment2)
5206 ,lgt2.segment2) SEGMENT2
5207
5208 ,decode(lgt2.gain_or_loss_flag, 'Y'
5209 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment3,lgt2.segment3)
5210 ,lgt2.segment3) SEGMENT3
5211
5212 ,decode(lgt2.gain_or_loss_flag, 'Y'
5213 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment4,lgt2.segment4)
5214 ,lgt2.segment4) SEGMENT4
5215
5216 ,decode(lgt2.gain_or_loss_flag, 'Y'
5217 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment5,lgt2.segment5)
5218 ,lgt2.segment5) SEGMENT5
5219
5220 ,decode(lgt2.gain_or_loss_flag, 'Y'
5221 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment6,lgt2.segment6)
5222 ,lgt2.segment6) SEGMENT6
5223
5224 ,decode(lgt2.gain_or_loss_flag, 'Y'
5225 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment7,lgt2.segment7)
5226 ,lgt2.segment7) SEGMENT7
5227
5228 ,decode(lgt2.gain_or_loss_flag, 'Y'
5229 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment8,lgt2.segment8)
5230 ,lgt2.segment8) SEGMENT8
5231
5232 ,decode(lgt2.gain_or_loss_flag, 'Y'
5233 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment9,lgt2.segment9)
5234 ,lgt2.segment9) SEGMENT9
5235
5236 ,decode(lgt2.gain_or_loss_flag, 'Y'
5237 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment10,lgt2.segment10)
5238 ,lgt2.segment10) SEGMENT10
5239
5240 ,decode(lgt2.gain_or_loss_flag, 'Y'
5241 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment11,lgt2.segment11)
5242 ,lgt2.segment11) SEGMENT11
5243
5244 ,decode(lgt2.gain_or_loss_flag, 'Y'
5245 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment12,lgt2.segment12)
5246 ,lgt2.segment12) SEGMENT12
5247
5248 ,decode(lgt2.gain_or_loss_flag, 'Y'
5249 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment13,lgt2.segment13)
5250 ,lgt2.segment13) SEGMENT13
5251
5252 ,decode(lgt2.gain_or_loss_flag, 'Y'
5253 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment14,lgt2.segment14)
5254 ,lgt2.segment14) SEGMENT14
5255
5256 ,decode(lgt2.gain_or_loss_flag, 'Y'
5257 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment15,lgt2.segment15)
5258 ,lgt2.segment15) SEGMENT15
5259
5260 ,decode(lgt2.gain_or_loss_flag, 'Y'
5261 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment16,lgt2.segment16)
5262 ,lgt2.segment16) SEGMENT16
5263
5264 ,decode(lgt2.gain_or_loss_flag, 'Y'
5265 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment17,lgt2.segment17)
5266 ,lgt2.segment17) SEGMENT17
5267
5268 ,decode(lgt2.gain_or_loss_flag, 'Y'
5269 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment18,lgt2.segment18)
5270 ,lgt2.segment18) SEGMENT18
5271
5272 ,decode(lgt2.gain_or_loss_flag, 'Y'
5273 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment19,lgt2.segment19)
5274 ,lgt2.segment19) SEGMENT19
5275
5276 ,decode(lgt2.gain_or_loss_flag, 'Y'
5277 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment20,lgt2.segment20)
5278 ,lgt2.segment20) SEGMENT20
5279
5280 ,decode(lgt2.gain_or_loss_flag, 'Y'
5281 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment21,lgt2.segment21)
5282 ,lgt2.segment21) SEGMENT21
5283
5284 ,decode(lgt2.gain_or_loss_flag, 'Y'
5285 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment22,lgt2.segment22)
5286 ,lgt2.segment22) SEGMENT22
5287
5288 ,decode(lgt2.gain_or_loss_flag, 'Y'
5289 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment23,lgt2.segment23)
5290 ,lgt2.segment23) SEGMENT23
5291
5292 ,decode(lgt2.gain_or_loss_flag, 'Y'
5293 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment24,lgt2.segment24)
5294 ,lgt2.segment24) SEGMENT24
5295
5296 ,decode(lgt2.gain_or_loss_flag, 'Y'
5297 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment25,lgt2.segment25)
5298 ,lgt2.segment25) SEGMENT25
5299
5300 ,decode(lgt2.gain_or_loss_flag, 'Y'
5301 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment26,lgt2.segment26)
5302 ,lgt2.segment26) SEGMENT26
5303
5304 ,decode(lgt2.gain_or_loss_flag, 'Y'
5305 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment27,lgt2.segment27)
5306 ,lgt2.segment27) SEGMENT27
5307
5308 ,decode(lgt2.gain_or_loss_flag, 'Y'
5309 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment28,lgt2.segment28)
5310 ,lgt2.segment28) SEGMENT28
5311
5312 ,decode(lgt2.gain_or_loss_flag, 'Y'
5313 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment29,lgt2.segment29)
5314 ,lgt2.segment29) SEGMENT29
5315
5316 ,decode(lgt2.gain_or_loss_flag, 'Y'
5317 ,decode(lgt2.calculate_g_l_amts_flag,'Y',lgt2.alt_segment30,lgt2.segment30)
5318 ,lgt2.segment30) SEGMENT30
5319 ,lgt2.description DESCRIPTION
5320 ,lgt2.gl_transfer_mode_code GL_TRANSFER_MODE_CODE
5321 ,lgt2.merge_duplicate_code MERGE_DUPLICATE_CODE
5322 -- commented for bug#11671933 to consider change sign even for gain/loss
5323 --,decode(lgt2.gain_or_loss_flag, 'Y', decode(lgt2.calculate_g_l_amts_flag, 'Y', 'Y', 'N'), lgt1.switch_side_flag)
5324 -- SWITCH_SIDE_FLAG -- bug:7337288 changed lgt2 to lgt1 for switch side flag
5325 ,lgt1.switch_side_flag -- added for bug#11671933
5326 -- 5055878 amounts modified for reversal method of SIDE or SIGN
5327 ,DECODE(lgt1.switch_side_flag,'Y',lgt2.unrounded_entered_cr, -lgt2.unrounded_entered_dr) UNROUNDED_ENTERED_DR
5328 ,DECODE(lgt1.switch_side_flag,'Y',lgt2.unrounded_entered_dr, -lgt2.unrounded_entered_cr) UNROUNDED_ENTERED_CR
5329 ,DECODE(lgt1.switch_side_flag,'Y',lgt2.unrounded_accounted_cr,-lgt2.unrounded_accounted_dr) UNROUNDED_ACCOUNTED_DR
5330 ,DECODE(lgt1.switch_side_flag,'Y',lgt2.unrounded_accounted_dr,-lgt2.unrounded_accounted_cr) UNROUNDED_ACCOUNTED_CR
5331 --
5332 ,lgt2.entered_currency_mau ENTERED_CURRENCY_MAU
5333 ,lgt2.currency_code CURRENCY_CODE
5334 ,lgt2.currency_conversion_date CURRENCY_CONVERSION_DATE
5335 ,lgt2.currency_conversion_rate CURRENCY_CONVERSION_RATE
5336 ,lgt2.currency_conversion_type CURRENCY_CONVERSION_TYPE
5337 --,DECODE(lgt1.switch_side_flag,'Y',lgt2.statistical_amount, -1 * lgt2.statistical_amount) STATISTICAL_AMOUNT --bug12726599
5338 ,-1 * lgt2.statistical_amount STATISTICAL_AMOUNT -- bug12823865
5339 ,lgt2.party_id PARTY_ID
5340 ,lgt2.party_site_id PARTY_SITE_ID
5341 ,lgt2.party_type_code PARTY_TYPE_CODE
5342 ,lgt2.ussgl_transaction_code USSGL_TRANSACTION_CODE
5343 ,lgt2.jgzz_recon_ref JGZZ_RECON_REF
5344 ,lgt1.source_distribution_id_char_1 SOURCE_DISTRIBUTION_ID_CHAR_1
5345 ,lgt1.source_distribution_id_char_2 SOURCE_DISTRIBUTION_ID_CHAR_2
5346 ,lgt1.source_distribution_id_char_3 SOURCE_DISTRIBUTION_ID_CHAR_3
5347 ,lgt1.source_distribution_id_char_4 SOURCE_DISTRIBUTION_ID_CHAR_4
5348 ,lgt1.source_distribution_id_char_5 SOURCE_DISTRIBUTION_ID_CHAR_5
5349 ,lgt1.source_distribution_id_num_1 SOURCE_DISTRIBUTION_ID_NUM_1
5350 ,lgt1.source_distribution_id_num_2 SOURCE_DISTRIBUTION_ID_NUM_2
5351 ,lgt1.source_distribution_id_num_3 SOURCE_DISTRIBUTION_ID_NUM_3
5352 ,lgt1.source_distribution_id_num_4 SOURCE_DISTRIBUTION_ID_NUM_4
5353 ,lgt1.source_distribution_id_num_5 SOURCE_DISTRIBUTION_ID_NUM_5
5354 ,lgt1.source_distribution_type SOURCE_DISTRIBUTION_TYPE
5355 ,lgt2.source_distribution_id_char_1 REVERSE_DIST_ID_CHAR_1
5356 ,lgt2.source_distribution_id_char_2 REVERSE_DIST_ID_CHAR_2
5357 ,lgt2.source_distribution_id_char_3 REVERSE_DIST_ID_CHAR_3
5358 ,lgt2.source_distribution_id_char_4 REVERSE_DIST_ID_CHAR_4
5359 ,lgt2.source_distribution_id_char_5 REVERSE_DIST_ID_CHAR_5
5360 ,lgt2.source_distribution_id_num_1 REVERSE_DIST_ID_NUM_1
5361 ,lgt2.source_distribution_id_num_2 REVERSE_DIST_ID_NUM_2
5362 ,lgt2.source_distribution_id_num_3 REVERSE_DIST_ID_NUM_3
5363 ,lgt2.source_distribution_id_num_4 REVERSE_DIST_ID_NUM_4
5364 ,lgt2.source_distribution_id_num_5 REVERSE_DIST_ID_NUM_5
5365 ,lgt2.source_distribution_type REVERSE_DISTRIBUTION_TYPE
5366 ,nvl(lgt1.tax_line_ref_id,lgt2.tax_line_ref_id) TAX_LINE_REF_ID -- bug 7159711
5367 ,nvl(lgt1.tax_summary_line_ref_id,lgt2.tax_summary_line_ref_id) TAX_SUMMARY_LINE_REF_ID -- bug 7159711
5368 ,nvl(lgt1.tax_rec_nrec_dist_ref_id,lgt2.tax_rec_nrec_dist_ref_id) TAX_REC_NREC_DIST_REF_ID -- bug 7159711
5369 ,NVL(lgt2.header_num,0) HEADER_NUM
5370 ,lgt2.mpa_accrual_entry_flag MPA_ACCRUAL_ENTRY_FLAG
5371 ,lgt2.multiperiod_option_flag MULTIPERIOD_OPTION_FLAG
5372 ,lgt2.multiperiod_start_date MULTIPERIOD_START_DATE
5373 ,lgt2.multiperiod_end_date MULTIPERIOD_END_DATE
5374 -- populate reversal_code indicating that line is result of reversal
5375 ,'REVERSAL' REVERSAL_CODE
5376 ,'N' INHERIT_DESC_FLAG
5377 ,lgt2.encumbrance_type_id ENCUMBRANCE_TYPE_ID
5378 -- denormalises entry status from headers to line to determine the status of entry being created
5379 ,hgt.accounting_entry_status_code ACCOUNTING_ENTRY_STATUS_CODE
5380 ,lgt1.accounting_date ACCOUNTING_DATE
5381 -- the following assigns duplicate rownum to reversal lines created from same
5382 -- original line. This is used to filter duplicate rows in the outer query.
5383 ,row_number() over
5384 (partition by lgt2.ref_ae_header_Id, lgt2.ledger_id,lgt2.temp_line_num
5385 order by lgt1.event_number
5386 ) rn
5387 , lgt2.BFLOW_APPLICATION_ID
5388 , lgt2.BFLOW_ENTITY_CODE
5389 , lgt2.APPLIED_TO_ENTITY_ID
5390 , lgt2.BFLOW_SOURCE_ID_NUM_1
5391 , lgt2.BFLOW_SOURCE_ID_NUM_2
5392 , lgt2.BFLOW_SOURCE_ID_NUM_3
5393 , lgt2.BFLOW_SOURCE_ID_NUM_4
5394 , lgt2.BFLOW_SOURCE_ID_CHAR_1
5395 , lgt2.BFLOW_SOURCE_ID_CHAR_2
5396 , lgt2.BFLOW_SOURCE_ID_CHAR_3
5397 , lgt2.BFLOW_SOURCE_ID_CHAR_4
5398 , lgt2.BFLOW_DISTRIBUTION_TYPE
5399 , lgt2.BFLOW_DIST_ID_NUM_1
5400 , lgt2.BFLOW_DIST_ID_NUM_2
5401 , lgt2.BFLOW_DIST_ID_NUM_3
5402 , lgt2.BFLOW_DIST_ID_NUM_4
5403 , lgt2.BFLOW_DIST_ID_NUM_5
5404 , lgt2.BFLOW_DIST_ID_CHAR_1
5405 , lgt2.BFLOW_DIST_ID_CHAR_2
5406 , lgt2.BFLOW_DIST_ID_CHAR_3
5407 , lgt2.BFLOW_DIST_ID_CHAR_4
5408 , lgt2.BFLOW_DIST_ID_CHAR_5
5409 , lgt2.alloc_to_application_id alloc_to_application_id
5410 , lgt2.alloc_to_entity_code alloc_to_entity_code
5411 , lgt2.alloc_to_source_id_num_1 alloc_to_source_id_num_1
5412 , lgt2.alloc_to_source_id_num_2 alloc_to_source_id_num_2
5413 , lgt2.alloc_to_source_id_num_3 alloc_to_source_id_num_3
5414 , lgt2.alloc_to_source_id_num_4 alloc_to_source_id_num_4
5415 , lgt2.alloc_to_source_id_char_1 alloc_to_source_id_char_1
5416 , lgt2.alloc_to_source_id_char_2 alloc_to_source_id_char_2
5417 , lgt2.alloc_to_source_id_char_3 alloc_to_source_id_char_3
5418 , lgt2.alloc_to_source_id_char_4 alloc_to_source_id_char_4
5419 , lgt2.alloc_to_distribution_type alloc_to_distribution_type
5420 , lgt2.alloc_to_dist_id_char_1 alloc_to_dist_id_char_1
5421 , lgt2.alloc_to_dist_id_char_2 alloc_to_dist_id_char_2
5422 , lgt2.alloc_to_dist_id_char_3 alloc_to_dist_id_char_3
5423 , lgt2.alloc_to_dist_id_char_4 alloc_to_dist_id_char_4
5424 , lgt2.alloc_to_dist_id_char_5 alloc_to_dist_id_char_5
5425 , lgt2.alloc_to_dist_id_num_1 alloc_to_dist_id_num_1
5426 , lgt2.alloc_to_dist_id_num_2 alloc_to_dist_id_num_2
5427 , lgt2.alloc_to_dist_id_num_3 alloc_to_dist_id_num_3
5428 , lgt2.alloc_to_dist_id_num_4 alloc_to_dist_id_num_4
5429 , lgt2.alloc_to_dist_id_num_5 alloc_to_dist_id_num_5
5430 , lgt2.analytical_balance_flag -- Bug 7382288- Included analytical criteria
5431 , lgt2.anc_id_1
5432 , lgt2.anc_id_2
5433 , lgt2.anc_id_3
5434 , lgt2.anc_id_4
5435 , lgt2.anc_id_5
5436 , lgt2.anc_id_6
5437 , lgt2.anc_id_7
5438 , lgt2.anc_id_8
5439 , lgt2.anc_id_9
5440 , lgt2.anc_id_10
5441 , lgt2.anc_id_11
5442 , lgt2.anc_id_12
5443 , lgt2.anc_id_13
5444 , lgt2.anc_id_14
5445 , lgt2.anc_id_15
5446 , lgt2.anc_id_16
5447 , lgt2.anc_id_17
5448 , lgt2.anc_id_18
5449 , lgt2.anc_id_19
5450 , lgt2.anc_id_20
5451 , lgt2.anc_id_21
5452 , lgt2.anc_id_22
5453 , lgt2.anc_id_23
5454 , lgt2.anc_id_24
5455 , lgt2.anc_id_25
5456 , lgt2.anc_id_26
5457 , lgt2.anc_id_27
5458 , lgt2.anc_id_28
5459 , lgt2.anc_id_29
5460 , lgt2.anc_id_30
5461 , lgt2.anc_id_31
5462 , lgt2.anc_id_32
5463 , lgt2.anc_id_33
5464 , lgt2.anc_id_34
5465 , lgt2.anc_id_35
5466 , lgt2.anc_id_36
5467 , lgt2.anc_id_37
5468 , lgt2.anc_id_38
5469 , lgt2.anc_id_39
5470 , lgt2.anc_id_40
5471 , lgt2.anc_id_41
5472 , lgt2.anc_id_42
5473 , lgt2.anc_id_43
5474 , lgt2.anc_id_44
5475 , lgt2.anc_id_45
5476 , lgt2.anc_id_46
5477 , lgt2.anc_id_47
5478 , lgt2.anc_id_48
5479 , lgt2.anc_id_49
5480 , lgt2.anc_id_50
5481 , lgt2.anc_id_51
5482 , lgt2.anc_id_52
5483 , lgt2.anc_id_53
5484 , lgt2.anc_id_54
5485 , lgt2.anc_id_55
5486 , lgt2.anc_id_56
5487 , lgt2.anc_id_57
5488 , lgt2.anc_id_58
5489 , lgt2.anc_id_59
5490 , lgt2.anc_id_60
5491 , lgt2.anc_id_61
5492 , lgt2.anc_id_62
5493 , lgt2.anc_id_63
5494 , lgt2.anc_id_64
5495 , lgt2.anc_id_65
5496 , lgt2.anc_id_66
5497 , lgt2.anc_id_67
5498 , lgt2.anc_id_68
5499 , lgt2.anc_id_69
5500 , lgt2.anc_id_70
5501 , lgt2.anc_id_71
5502 , lgt2.anc_id_72
5503 , lgt2.anc_id_73
5504 , lgt2.anc_id_74
5505 , lgt2.anc_id_75
5506 , lgt2.anc_id_76
5507 , lgt2.anc_id_77
5508 , lgt2.anc_id_78
5509 , lgt2.anc_id_79
5510 , lgt2.anc_id_80
5511 , lgt2.anc_id_81
5512 , lgt2.anc_id_82
5513 , lgt2.anc_id_83
5514 , lgt2.anc_id_84
5515 , lgt2.anc_id_85
5516 , lgt2.anc_id_86
5517 , lgt2.anc_id_87
5518 , lgt2.anc_id_88
5519 , lgt2.anc_id_89
5520 , lgt2.anc_id_90
5521 , lgt2.anc_id_91
5522 , lgt2.anc_id_92
5523 , lgt2.anc_id_93
5524 , lgt2.anc_id_94
5525 , lgt2.anc_id_95
5526 , lgt2.anc_id_96
5527 , lgt2.anc_id_97
5528 , lgt2.anc_id_98
5529 , lgt2.anc_id_99
5530 , lgt2.anc_id_100
5531 FROM
5532 xla_ae_lines_gt lgt1
5533 ,xla_ae_lines_gt lgt2
5534 ,xla_ae_headers_gt hgt
5535 WHERE lgt1.reversal_code = 'DUMMY_LR'
5536 AND lgt2.ledger_id = lgt1.ledger_id
5537 AND lgt2.source_distribution_type = lgt1.reverse_distribution_type
5538 AND nvl(lgt2.source_distribution_id_num_1,-99) = nvl(lgt1.reverse_dist_id_num_1,-99)
5539 AND nvl(lgt2.source_distribution_id_num_2,-99) = nvl(lgt1.reverse_dist_id_num_2,-99)
5540 AND nvl(lgt2.source_distribution_id_num_3,-99) = nvl(lgt1.reverse_dist_id_num_3,-99)
5541 AND nvl(lgt2.source_distribution_id_num_4,-99) = nvl(lgt1.reverse_dist_id_num_4,-99)
5542 AND nvl(lgt2.source_distribution_id_num_5,-99) = nvl(lgt1.reverse_dist_id_num_5,-99)
5543 AND nvl(lgt2.source_distribution_id_char_1,' ') = nvl(lgt1.reverse_dist_id_char_1,' ')
5544 AND nvl(lgt2.source_distribution_id_char_2,' ') = nvl(lgt1.reverse_dist_id_char_2,' ')
5545 AND nvl(lgt2.source_distribution_id_char_3,' ') = nvl(lgt1.reverse_dist_id_char_3,' ')
5546 AND nvl(lgt2.source_distribution_id_char_4,' ') = nvl(lgt1.reverse_dist_id_char_4,' ')
5547 AND nvl(lgt2.source_distribution_id_char_5,' ') = nvl(lgt1.reverse_dist_id_char_5,' ')
5548 AND hgt.event_id = lgt2.event_id
5549 AND hgt.ledger_id = lgt2.ledger_id
5550 AND hgt.balance_type_code = lgt2.balance_type_code
5551 AND hgt.entity_id = lgt1.entity_id
5552 -- lines for events with event number > current event number are not reversed.
5553 AND hgt.event_number < lgt1.event_number
5554 AND hgt.header_num = lgt2.header_num-- 4262811c Line Reversal (xla_ae_lines_gt_u1 error)
5555 AND hgt.ae_header_id = lgt2.ae_header_id
5556 )
5557 WHERE rn = 1
5558 );
5559
5560
5561 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
5562 trace
5563 (p_msg => 'Line Reversal - Reversal lines created from xla_ae_lines_gt = '||SQL%ROWCOUNT
5564 ,p_level => C_LEVEL_STATEMENT
5565 ,p_module => l_log_module);
5566 END IF;
5567
5568 --------------------------------------------------------------------------------------------------------
5569 -- 5108415 For Line Reversal, Store the incomplete MPA/AccRev entries to be used in DeleteIncompleteMPA
5570 --------------------------------------------------------------------------------------------------------
5571 IF p_accounting_mode IN ('F','RESERVE_FUNDS') THEN
5572
5573 SELECT /*+ Leading(LGT,XDL) use_nl(lgt xdl aeh ael)*/ -- 5262950
5574 ael.ae_header_id
5575 ,ael.ae_line_num
5576 ,aeh.parent_ae_header_id
5577 BULK COLLECT INTO
5578 g_incomplete_mpa_acc_LR.l_array_ae_header_id
5579 ,g_incomplete_mpa_acc_LR.l_array_ae_line_num
5580 ,g_incomplete_mpa_acc_LR.l_array_parent_ae_header
5581 FROM
5582 xla_ae_lines_gt lgt
5583 ,xla_ae_lines ael
5584 ,xla_ae_headers aeh
5585 ,xla_distribution_links xdl
5586 WHERE xdl.application_id = l_application_id
5587 AND xdl.source_distribution_type = lgt.reverse_distribution_type
5588 AND lgt.reversal_code = 'DUMMY_LR'
5589 AND xdl.source_distribution_id_num_1 = lgt.reverse_dist_id_num_1 -- 5479652
5590 AND nvl(xdl.source_distribution_id_num_2,-99) = nvl(lgt.reverse_dist_id_num_2,-99)
5591 AND nvl(xdl.source_distribution_id_num_3,-99) = nvl(lgt.reverse_dist_id_num_3,-99)
5592 AND nvl(xdl.source_distribution_id_num_4,-99) = nvl(lgt.reverse_dist_id_num_4,-99)
5593 AND nvl(xdl.source_distribution_id_num_5,-99) = nvl(lgt.reverse_dist_id_num_5,-99)
5594 AND nvl(xdl.source_distribution_id_char_1,' ') = nvl(lgt.reverse_dist_id_char_1,' ')
5595 AND nvl(xdl.source_distribution_id_char_2,' ') = nvl(lgt.reverse_dist_id_char_2,' ')
5596 AND nvl(xdl.source_distribution_id_char_3,' ') = nvl(lgt.reverse_dist_id_char_3,' ')
5597 AND nvl(xdl.source_distribution_id_char_4,' ') = nvl(lgt.reverse_dist_id_char_4,' ')
5598 AND nvl(xdl.source_distribution_id_char_5,' ') = nvl(lgt.reverse_dist_id_char_5,' ')
5599 AND aeh.application_id = xdl.application_id
5600 AND aeh.ae_header_id = xdl.ae_header_id
5601 AND aeh.ledger_id = lgt.ledger_id
5602 AND aeh.entity_id = lgt.entity_id
5603 AND ael.application_id = aeh.application_id
5604 AND ael.ae_header_id = aeh.ae_header_id
5605 AND ael.ae_line_num = xdl.ae_line_num
5606 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
5607
5608 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
5609 trace
5610 (p_msg => 'Incomplete mpa_acc_LR count='||g_incomplete_mpa_acc_LR.l_array_ae_header_id.COUNT
5611 ,p_level => C_LEVEL_STATEMENT
5612 ,p_module => l_log_module);
5613 FOR i in 1..g_incomplete_mpa_acc_LR.l_array_ae_header_id.COUNT LOOP
5614 trace
5615 (p_msg => 'Incomplete mpa_acc_LR ae_header='||g_incomplete_mpa_acc_LR.l_array_ae_header_id(i)||
5616 ' ae_line='||g_incomplete_mpa_acc_LR.l_array_ae_line_num(i)||
5617 ' parent='||g_incomplete_mpa_acc_LR.l_array_parent_ae_header(i)
5618 ,p_level => C_LEVEL_STATEMENT
5619 ,p_module => l_log_module);
5620 END LOOP;
5621 END IF;
5622 END IF;
5623 -------------------------------------------------------------------------------------------
5624
5625 --
5626 ---------------------------------------------------------------------------------------------------------
5627 -- Reverse the lines in xla_ae_lines table
5628 --
5629 -- Some for 4669308:
5630 -- For MPA entries, only reverse what is necessary , ie create reversal for Complete MPA only.
5631 -- Do not create reversal for incomplete entry (since it will get deleted anyway).
5632 -- Also, since the redundant lines will affect ROUNDING calculation.
5633 -- Need to create reversal in Draft mode also (so can be viewed).
5634 ---------------------------------------------------------------------------------------------------------
5635 --
5636 INSERT INTO xla_ae_lines_gt
5637 (ae_header_id
5638 ,temp_line_num
5639 ,event_id
5640 ,ref_ae_header_id
5641 ,ref_ae_line_num
5642 ,ref_temp_line_num
5643 ,ref_event_id
5644 ,ledger_id
5645 ,balance_type_code
5646 ,accounting_class_code
5647 ,event_class_code
5648 ,event_type_code
5649 ,line_definition_owner_code
5650 ,line_definition_code
5651 ,accounting_line_type_code
5652 ,accounting_line_code
5653 ,code_combination_status_code
5654 ,code_combination_id
5655 ,alt_ccid_status_code
5656 ,alt_code_combination_id
5657 ,description
5658 ,gl_transfer_mode_code
5659 ,merge_duplicate_code
5660 ,switch_side_flag -- 5055878
5661 ,unrounded_entered_dr
5662 ,unrounded_entered_cr
5663 ,unrounded_accounted_dr
5664 ,unrounded_accounted_cr
5665 ,calculate_acctd_amts_flag
5666 ,calculate_g_l_amts_flag
5667 ,gain_or_loss_flag
5668 ,rounding_class_code
5669 ,document_rounding_level
5670 ,doc_rounding_acctd_amt
5671 ,doc_rounding_entered_amt
5672 ,entered_currency_mau
5673 ,currency_code
5674 ,currency_conversion_date
5675 ,currency_conversion_rate
5676 ,currency_conversion_type
5677 ,statistical_amount
5678 ,party_id
5679 ,party_site_id
5680 ,party_type_code
5681 ,ussgl_transaction_code
5682 ,jgzz_recon_ref
5683 ,source_distribution_id_char_1
5684 ,source_distribution_id_char_2
5685 ,source_distribution_id_char_3
5686 ,source_distribution_id_char_4
5687 ,source_distribution_id_char_5
5688 ,source_distribution_id_num_1
5689 ,source_distribution_id_num_2
5690 ,source_distribution_id_num_3
5691 ,source_distribution_id_num_4
5692 ,source_distribution_id_num_5
5693 ,source_distribution_type
5694 ,reverse_dist_id_char_1
5695 ,reverse_dist_id_char_2
5696 ,reverse_dist_id_char_3
5697 ,reverse_dist_id_char_4
5698 ,reverse_dist_id_char_5
5699 ,reverse_dist_id_num_1
5700 ,reverse_dist_id_num_2
5701 ,reverse_dist_id_num_3
5702 ,reverse_dist_id_num_4
5703 ,reverse_dist_id_num_5
5704 ,reverse_distribution_type
5705 ,reversal_code
5706 ,accounting_entry_status_code
5707 ,inherit_desc_flag
5708 ,header_num
5709 ,encumbrance_type_id
5710 ,mpa_accrual_entry_flag
5711 ,accounting_date
5712 , BFLOW_APPLICATION_ID
5713 , BFLOW_ENTITY_CODE
5714 , APPLIED_TO_ENTITY_ID
5715 , BFLOW_SOURCE_ID_NUM_1
5716 , BFLOW_SOURCE_ID_NUM_2
5717 , BFLOW_SOURCE_ID_NUM_3
5718 , BFLOW_SOURCE_ID_NUM_4
5719 , BFLOW_SOURCE_ID_CHAR_1
5720 , BFLOW_SOURCE_ID_CHAR_2
5721 , BFLOW_SOURCE_ID_CHAR_3
5722 , BFLOW_SOURCE_ID_CHAR_4
5723 , BFLOW_DISTRIBUTION_TYPE
5724 , BFLOW_DIST_ID_NUM_1
5725 , BFLOW_DIST_ID_NUM_2
5726 , BFLOW_DIST_ID_NUM_3
5727 , BFLOW_DIST_ID_NUM_4
5728 , BFLOW_DIST_ID_NUM_5
5729 , BFLOW_DIST_ID_CHAR_1
5730 , BFLOW_DIST_ID_CHAR_2
5731 , BFLOW_DIST_ID_CHAR_3
5732 , BFLOW_DIST_ID_CHAR_4
5733 , BFLOW_DIST_ID_CHAR_5
5734 , alloc_to_application_id
5735 , alloc_to_entity_code
5736 , alloc_to_source_id_num_1
5737 , alloc_to_source_id_num_2
5738 , alloc_to_source_id_num_3
5739 , alloc_to_source_id_num_4
5740 , alloc_to_source_id_char_1
5741 , alloc_to_source_id_char_2
5742 , alloc_to_source_id_char_3
5743 , alloc_to_source_id_char_4
5744 , alloc_to_distribution_type
5745 , alloc_to_dist_id_char_1
5746 , alloc_to_dist_id_char_2
5747 , alloc_to_dist_id_char_3
5748 , alloc_to_dist_id_char_4
5749 , alloc_to_dist_id_char_5
5750 , alloc_to_dist_id_num_1
5751 , alloc_to_dist_id_num_2
5752 , alloc_to_dist_id_num_3
5753 , alloc_to_dist_id_num_4
5754 , alloc_to_dist_id_num_5
5755 ,TAX_LINE_REF_ID -- Bug 7159711
5756 ,TAX_SUMMARY_LINE_REF_ID -- Bug 7159711
5757 ,TAX_REC_NREC_DIST_REF_ID -- Bug 7159711
5758 ,analytical_balance_flag -- Bug 7382288
5759 ,ANC_ID_1 -- 8691573
5760 )
5761 (SELECT
5762 ae_header_id
5763 ,temp_line_num
5764 ,event_id
5765 ,ref_ae_header_id
5766 ,ref_ae_line_num
5767 ,ref_temp_line_num
5768 ,ref_event_id
5769 ,ledger_id
5770 ,balance_type_code
5771 ,accounting_class_code
5772 ,event_class_code
5773 ,event_type_code
5774 ,line_definition_owner_code
5775 ,line_definition_code
5776 ,accounting_line_type_code
5777 ,accounting_line_code
5778 ,code_combination_status_code
5779 ,code_combination_id
5780 ,code_combination_status_code
5781 ,code_combination_id
5782 ,description
5783 ,gl_transfer_mode_code
5784 ,merge_duplicate_code
5785 ,switch_side_flag -- 5055878
5786 ,unrounded_entered_dr
5787 ,unrounded_entered_cr
5788 ,unrounded_accounted_dr
5789 ,unrounded_accounted_cr
5790 ,calculate_acctd_amts_flag
5791 ,calculate_g_l_amts_flag
5792 ,gain_or_loss_flag
5793 ,rounding_class_code
5794 ,document_rounding_level
5795 ,doc_rounding_acctd_amt
5796 ,doc_rounding_entered_amt
5797 ,entered_currency_mau
5798 ,currency_code
5799 ,currency_conversion_date
5800 ,currency_conversion_rate
5801 ,currency_conversion_type
5802 ,statistical_amount
5803 ,party_id
5804 ,party_site_id
5805 ,party_type_code
5806 ,ussgl_transaction_code
5807 ,jgzz_recon_ref
5808 ,source_distribution_id_char_1
5809 ,source_distribution_id_char_2
5810 ,source_distribution_id_char_3
5811 ,source_distribution_id_char_4
5812 ,source_distribution_id_char_5
5813 ,source_distribution_id_num_1
5814 ,source_distribution_id_num_2
5815 ,source_distribution_id_num_3
5816 ,source_distribution_id_num_4
5817 ,source_distribution_id_num_5
5818 ,source_distribution_type
5819 ,reverse_dist_id_char_1
5820 ,reverse_dist_id_char_2
5821 ,reverse_dist_id_char_3
5822 ,reverse_dist_id_char_4
5823 ,reverse_dist_id_char_5
5824 ,reverse_dist_id_num_1
5825 ,reverse_dist_id_num_2
5826 ,reverse_dist_id_num_3
5827 ,reverse_dist_id_num_4
5828 ,reverse_dist_id_num_5
5829 ,reverse_distribution_type
5830 ,reversal_code
5831 ,accounting_entry_status_code
5832 ,inherit_desc_flag
5833 ,header_num
5834 ,encumbrance_type_id
5835 ,mpa_accrual_entry_flag
5836 ,accounting_date
5837 , APPLIED_TO_APPLICATION_ID
5838 , APPLIED_TO_ENTITY_CODE
5839 , APPLIED_TO_ENTITY_ID
5840 , APPLIED_TO_SOURCE_ID_NUM_1
5841 , APPLIED_TO_SOURCE_ID_NUM_2
5842 , APPLIED_TO_SOURCE_ID_NUM_3
5843 , APPLIED_TO_SOURCE_ID_NUM_4
5844 , APPLIED_TO_SOURCE_ID_CHAR_1
5845 , APPLIED_TO_SOURCE_ID_CHAR_2
5846 , APPLIED_TO_SOURCE_ID_CHAR_3
5847 , APPLIED_TO_SOURCE_ID_CHAR_4
5848 , APPLIED_TO_DISTRIBUTION_TYPE
5849 , APPLIED_TO_DIST_ID_NUM_1
5850 , APPLIED_TO_DIST_ID_NUM_2
5851 , APPLIED_TO_DIST_ID_NUM_3
5852 , APPLIED_TO_DIST_ID_NUM_4
5853 , APPLIED_TO_DIST_ID_NUM_5
5854 , APPLIED_TO_DIST_ID_CHAR_1
5855 , APPLIED_TO_DIST_ID_CHAR_2
5856 , APPLIED_TO_DIST_ID_CHAR_3
5857 , APPLIED_TO_DIST_ID_CHAR_4
5858 , APPLIED_TO_DIST_ID_CHAR_5
5859 , alloc_to_application_id
5860 , alloc_to_entity_code
5861 , alloc_to_source_id_num_1
5862 , alloc_to_source_id_num_2
5863 , alloc_to_source_id_num_3
5864 , alloc_to_source_id_num_4
5865 , alloc_to_source_id_char_1
5866 , alloc_to_source_id_char_2
5867 , alloc_to_source_id_char_3
5868 , alloc_to_source_id_char_4
5869 , alloc_to_distribution_type
5870 , alloc_to_dist_id_char_1
5871 , alloc_to_dist_id_char_2
5872 , alloc_to_dist_id_char_3
5873 , alloc_to_dist_id_char_4
5874 , alloc_to_dist_id_char_5
5875 , alloc_to_dist_id_num_1
5876 , alloc_to_dist_id_num_2
5877 , alloc_to_dist_id_num_3
5878 , alloc_to_dist_id_num_4
5879 , alloc_to_dist_id_num_5
5880 ,TAX_LINE_REF_ID -- Bug 7159711
5881 ,TAX_SUMMARY_LINE_REF_ID -- Bug 7159711
5882 ,TAX_REC_NREC_DIST_REF_ID -- Bug 7159711
5883 ,analytical_balance_flag -- Bug 7382288
5884 ,ANC_ID_1 -- 8691573
5885 FROM
5886 (SELECT /*+ leading(lgt) use_nl(xdl,ael,aeh) */
5887 -- populates ae_header_id which is same as event_id till this point
5888 lgt.event_id AE_HEADER_ID
5889 -- populates temp_line_num which is (-ve) of original line
5890 ,0 - xdl.temp_line_num TEMP_LINE_NUM
5891 -- populates event_id which is the event_id of event under process
5892 ,lgt.event_id EVENT_ID
5893 -- populates ref_ae_header_id which is ae_header_id of original line
5894 ,ael.ae_header_id REF_AE_HEADER_ID
5895 -- populates ref_ae_line_num which is ae_line_num of original line
5896 ,ael.ae_line_num REF_AE_LINE_NUM
5897 -- populates ref_temp_line_num which is ae_line_num of original line
5898 ,xdl.temp_line_num REF_TEMP_LINE_NUM
5899 -- populates ref_event_id which is event_id of original line
5900 ,xdl.event_id REF_EVENT_ID
5901 ,lgt.ledger_id LEDGER_ID
5902 ,aeh.balance_type_code BALANCE_TYPE_CODE
5903 ,ael.accounting_class_code ACCOUNTING_CLASS_CODE
5904 ,xdl.event_class_code EVENT_CLASS_CODE
5905 ,xdl.event_type_code EVENT_TYPE_CODE
5906 ,xdl.line_definition_owner_code LINE_DEFINITION_OWNER_CODE
5907 ,xdl.line_definition_code LINE_DEFINITION_CODE
5908 ,xdl.accounting_line_type_code ACCOUNTING_LINE_TYPE_CODE
5909 ,xdl.accounting_line_code ACCOUNTING_LINE_CODE
5910 ,C_CREATED CODE_COMBINATION_STATUS_CODE
5911 ,ael.code_combination_id CODE_COMBINATION_ID
5912 ,ael.description DESCRIPTION
5913 ,ael.gl_transfer_mode_code GL_TRANSFER_MODE_CODE
5914 ,xdl.merge_duplicate_code MERGE_DUPLICATE_CODE
5915 -- commented for bug#11671933 to consider change sign even for gain/loss
5916 --,decode(ael.gain_or_loss_flag, 'Y', decode(xdl.calculate_g_l_amts_flag, 'Y', 'Y', 'N'), lgt.switch_side_flag)
5917 -- SWITCH_SIDE_FLAG
5918 , lgt.switch_side_flag -- added for bug#11671933
5919 -- 5055878 amounts modified for reversal method of SIDE or SIGN
5920 ,DECODE(lgt.switch_side_flag,'Y',xdl.unrounded_entered_cr, -xdl.unrounded_entered_dr) UNROUNDED_ENTERED_DR
5921 ,DECODE(lgt.switch_side_flag,'Y',xdl.unrounded_entered_dr, -xdl.unrounded_entered_cr) UNROUNDED_ENTERED_CR
5922 ,DECODE(lgt.switch_side_flag,'Y',xdl.unrounded_accounted_cr,-xdl.unrounded_accounted_dr) UNROUNDED_ACCOUNTED_DR
5923 ,DECODE(lgt.switch_side_flag,'Y',xdl.unrounded_accounted_dr,-xdl.unrounded_accounted_cr) UNROUNDED_ACCOUNTED_CR
5924 --
5925 ,xdl.calculate_acctd_amts_flag CALCULATE_ACCTD_AMTS_FLAG
5926 ,xdl.calculate_g_l_amts_flag CALCULATE_G_L_AMTS_FLAG
5927 ,ael.gain_or_loss_flag GAIN_OR_LOSS_FLAG
5928 ,xdl.rounding_class_code ROUNDING_CLASS_CODE
5929 ,xdl.document_rounding_level DOCUMENT_ROUNDING_LEVEL
5930 ,NULL DOC_ROUNDING_ACCTD_AMT
5931 ,NULL DOC_ROUNDING_ENTERED_AMT
5932 -- bug8642358 ,nvl(fcu.minimum_accountable_unit, power(10, -1*fcu.precision)) ENTERED_CURRENCY_MAU
5933 ,decode(ael.gain_or_loss_flag, 'Y', 0.01, nvl(fcu.minimum_accountable_unit, power(10, -1* fcu.precision))) ENTERED_CURRENCY_MAU
5934 ,ael.currency_code CURRENCY_CODE
5935 ,ael.currency_conversion_date CURRENCY_CONVERSION_DATE
5936 ,ael.currency_conversion_rate CURRENCY_CONVERSION_RATE
5937 ,ael.currency_conversion_type CURRENCY_CONVERSION_TYPE
5938 --,DECODE(lgt.switch_side_flag,'Y',xdl.statistical_amount, -1 * xdl.statistical_amount ) STATISTICAL_AMOUNT -- changed from xal to xdl for bug12726599
5939 ,-1 * xdl.statistical_amount STATISTICAL_AMOUNT -- bug12823865
5940 ,ael.party_id PARTY_ID
5941 ,ael.party_site_id PARTY_SITE_ID
5942 ,ael.party_type_code PARTY_TYPE_CODE
5943 ,ael.ussgl_transaction_code USSGL_TRANSACTION_CODE
5944 ,ael.jgzz_recon_ref JGZZ_RECON_REF
5945 ,lgt.source_distribution_id_char_1 SOURCE_DISTRIBUTION_ID_CHAR_1
5946 ,lgt.source_distribution_id_char_2 SOURCE_DISTRIBUTION_ID_CHAR_2
5947 ,lgt.source_distribution_id_char_3 SOURCE_DISTRIBUTION_ID_CHAR_3
5948 ,lgt.source_distribution_id_char_4 SOURCE_DISTRIBUTION_ID_CHAR_4
5949 ,lgt.source_distribution_id_char_5 SOURCE_DISTRIBUTION_ID_CHAR_5
5950 ,lgt.source_distribution_id_num_1 SOURCE_DISTRIBUTION_ID_NUM_1
5951 ,lgt.source_distribution_id_num_2 SOURCE_DISTRIBUTION_ID_NUM_2
5952 ,lgt.source_distribution_id_num_3 SOURCE_DISTRIBUTION_ID_NUM_3
5953 ,lgt.source_distribution_id_num_4 SOURCE_DISTRIBUTION_ID_NUM_4
5954 ,lgt.source_distribution_id_num_5 SOURCE_DISTRIBUTION_ID_NUM_5
5955 ,lgt.source_distribution_type SOURCE_DISTRIBUTION_TYPE
5956 ,lgt.reverse_dist_id_char_1 REVERSE_DIST_ID_CHAR_1
5957 ,lgt.reverse_dist_id_char_2 REVERSE_DIST_ID_CHAR_2
5958 ,lgt.reverse_dist_id_char_3 REVERSE_DIST_ID_CHAR_3
5959 ,lgt.reverse_dist_id_char_4 REVERSE_DIST_ID_CHAR_4
5960 ,lgt.reverse_dist_id_char_5 REVERSE_DIST_ID_CHAR_5
5961 ,lgt.reverse_dist_id_num_1 REVERSE_DIST_ID_NUM_1
5962 ,lgt.reverse_dist_id_num_2 REVERSE_DIST_ID_NUM_2
5963 ,lgt.reverse_dist_id_num_3 REVERSE_DIST_ID_NUM_3
5964 ,lgt.reverse_dist_id_num_4 REVERSE_DIST_ID_NUM_4
5965 ,lgt.reverse_dist_id_num_5 REVERSE_DIST_ID_NUM_5
5966 ,lgt.reverse_distribution_type REVERSE_DISTRIBUTION_TYPE
5967 -- populate reversal_code indicating that line is result of reversal
5968 ,'REVERSAL' REVERSAL_CODE
5969 -- denormalises entry status from headers to line to determine the status of entry being created
5970 -- populates 0 for a valid entry (F or D) else poulates 1
5971 ,DECODE(aeh.accounting_entry_status_code,'F',0,'D',0,1) ACCOUNTING_ENTRY_STATUS_CODE
5972 ,'N' INHERIT_DESC_FLAG
5973 -- 4669308 combine header with reversal of original entry
5974 --,0 HEADER_NUM -- commented for bug8505463`
5975 , DECODE(aeh.parent_ae_header_id , NULL , 0 ,
5976 CASE
5977 WHEN aeh.accounting_date <= lgt.accounting_date
5978 THEN 0
5979 ELSE -1 * dense_rank() over ( partition by aeh.parent_ae_header_id , aeh.parent_ae_line_num
5980 order by aeh.ae_header_Id )
5981 END
5982 ) HEADER_NUM -- added for bug8505463 for MPA Cancellation
5983 ,ael.encumbrance_type_id ENCUMBRANCE_TYPE_ID
5984 ,'N' MPA_ACCRUAL_ENTRY_FLAG
5985 --,lgt.accounting_date ACCOUNTING_DATE -- commented for bug8505463
5986 , DECODE(aeh.parent_ae_header_id , NULL , lgt.accounting_date , -- Regular Cancellation, hence Cancellation Event Date
5987 CASE
5988 WHEN aeh.accounting_date <= lgt.accounting_date
5989 THEN lgt.accounting_date -- Accounting Date of Cancellation Event for prior Period's MPA Accounting
5990 ELSE aeh.accounting_date -- Accounting Date of Original MPA Accounting
5991 END
5992 ) ACCOUNTING_DATE -- added for bug8505463 for MPA Cancellation
5993 -- original line. This is used to filter duplicate rows in the outer query.
5994 ,row_number() over
5995 (partition by xdl.ae_header_Id,xdl.temp_line_num
5996 order by lgt.event_number
5997 ) rn
5998 , xdl.APPLIED_TO_APPLICATION_ID APPLIED_TO_APPLICATION_ID
5999 , xdl.APPLIED_TO_ENTITY_CODE APPLIED_TO_ENTITY_CODE
6000 , xdl.APPLIED_TO_ENTITY_ID APPLIED_TO_ENTITY_ID
6001 , xdl.APPLIED_TO_SOURCE_ID_NUM_1 APPLIED_TO_SOURCE_ID_NUM_1
6002 , xdl.APPLIED_TO_SOURCE_ID_NUM_2 APPLIED_TO_SOURCE_ID_NUM_2
6003 , xdl.APPLIED_TO_SOURCE_ID_NUM_3 APPLIED_TO_SOURCE_ID_NUM_3
6004 , xdl.APPLIED_TO_SOURCE_ID_NUM_4 APPLIED_TO_SOURCE_ID_NUM_4
6005 , xdl.APPLIED_TO_SOURCE_ID_CHAR_1 APPLIED_TO_SOURCE_ID_CHAR_1
6006 , xdl.APPLIED_TO_SOURCE_ID_CHAR_2 APPLIED_TO_SOURCE_ID_CHAR_2
6007 , xdl.APPLIED_TO_SOURCE_ID_CHAR_3 APPLIED_TO_SOURCE_ID_CHAR_3
6008 , xdl.APPLIED_TO_SOURCE_ID_CHAR_4 APPLIED_TO_SOURCE_ID_CHAR_4
6009 , xdl.APPLIED_TO_DISTRIBUTION_TYPE APPLIED_TO_DISTRIBUTION_TYPE
6010 , xdl.APPLIED_TO_DIST_ID_NUM_1 APPLIED_TO_DIST_ID_NUM_1
6011 , xdl.APPLIED_TO_DIST_ID_NUM_2 APPLIED_TO_DIST_ID_NUM_2
6012 , xdl.APPLIED_TO_DIST_ID_NUM_3 APPLIED_TO_DIST_ID_NUM_3
6013 , xdl.APPLIED_TO_DIST_ID_NUM_4 APPLIED_TO_DIST_ID_NUM_4
6014 , xdl.APPLIED_TO_DIST_ID_NUM_5 APPLIED_TO_DIST_ID_NUM_5
6015 , xdl.APPLIED_TO_DIST_ID_CHAR_1 APPLIED_TO_DIST_ID_CHAR_1
6016 , xdl.APPLIED_TO_DIST_ID_CHAR_2 APPLIED_TO_DIST_ID_CHAR_2
6017 , xdl.APPLIED_TO_DIST_ID_CHAR_3 APPLIED_TO_DIST_ID_CHAR_3
6018 , xdl.APPLIED_TO_DIST_ID_CHAR_4 APPLIED_TO_DIST_ID_CHAR_4
6019 , xdl.APPLIED_TO_DIST_ID_CHAR_5 APPLIED_TO_DIST_ID_CHAR_5
6020 , xdl.alloc_to_application_id alloc_to_application_id
6021 , xdl.alloc_to_entity_code alloc_to_entity_code
6022 , xdl.alloc_to_source_id_num_1 alloc_to_source_id_num_1
6023 , xdl.alloc_to_source_id_num_2 alloc_to_source_id_num_2
6024 , xdl.alloc_to_source_id_num_3 alloc_to_source_id_num_3
6025 , xdl.alloc_to_source_id_num_4 alloc_to_source_id_num_4
6026 , xdl.alloc_to_source_id_char_1 alloc_to_source_id_char_1
6027 , xdl.alloc_to_source_id_char_2 alloc_to_source_id_char_2
6028 , xdl.alloc_to_source_id_char_3 alloc_to_source_id_char_3
6029 , xdl.alloc_to_source_id_char_4 alloc_to_source_id_char_4
6030 , xdl.alloc_to_distribution_type alloc_to_distribution_type
6031 , xdl.alloc_to_dist_id_char_1 alloc_to_dist_id_char_1
6032 , xdl.alloc_to_dist_id_char_2 alloc_to_dist_id_char_2
6033 , xdl.alloc_to_dist_id_char_3 alloc_to_dist_id_char_3
6034 , xdl.alloc_to_dist_id_char_4 alloc_to_dist_id_char_4
6035 , xdl.alloc_to_dist_id_char_5 alloc_to_dist_id_char_5
6036 , xdl.alloc_to_dist_id_num_1 alloc_to_dist_id_num_1
6037 , xdl.alloc_to_dist_id_num_2 alloc_to_dist_id_num_2
6038 , xdl.alloc_to_dist_id_num_3 alloc_to_dist_id_num_3
6039 , xdl.alloc_to_dist_id_num_4 alloc_to_dist_id_num_4
6040 , xdl.alloc_to_dist_id_num_5 alloc_to_dist_id_num_5
6041 ,nvl(lgt.tax_line_ref_id, xdl.tax_line_ref_id) TAX_LINE_REF_ID -- Bug 7159711
6042 ,nvl(lgt.tax_summary_line_ref_id, xdl.tax_summary_line_ref_id) TAX_SUMMARY_LINE_REF_ID -- Bug 7159711
6043 ,nvl(lgt.tax_rec_nrec_dist_ref_id, xdl.tax_rec_nrec_dist_ref_id) TAX_REC_NREC_DIST_REF_ID -- Bug 7159711
6044 ,decode(ael.analytical_balance_flag, 'Y','P',
6045 'P','P',
6046 null) analytical_balance_flag -- Bug 7382288
6047 ,nvl2(ael.analytical_balance_flag, 'DUMMY_ANC_'||ael.ae_header_id||ael.ae_line_num,null) ANC_ID_1 --Bug 8691573
6048 FROM
6049 xla_ae_lines_gt lgt
6050 ,xla_distribution_links xdl
6051 ,xla_ae_lines ael
6052 ,xla_ae_headers aeh
6053 ,fnd_currencies fcu
6054 ,xla_events evt
6055 WHERE lgt.reversal_code = 'DUMMY_LR'
6056 AND xdl.application_id = l_application_id
6057 AND xdl.source_distribution_type = lgt.reverse_distribution_type
6058 AND xdl.source_distribution_id_num_1 = nvl(lgt.reverse_dist_id_num_1,-99)
6059 AND nvl(xdl.source_distribution_id_num_2,-99) = nvl(lgt.reverse_dist_id_num_2,-99)
6060 AND nvl(xdl.source_distribution_id_num_3,-99) = nvl(lgt.reverse_dist_id_num_3,-99)
6061 AND nvl(xdl.source_distribution_id_num_4,-99) = nvl(lgt.reverse_dist_id_num_4,-99)
6062 AND nvl(xdl.source_distribution_id_num_5,-99) = nvl(lgt.reverse_dist_id_num_5,-99)
6063 AND nvl(xdl.source_distribution_id_char_1,' ') = nvl(lgt.reverse_dist_id_char_1,' ')
6064 AND nvl(xdl.source_distribution_id_char_2,' ') = nvl(lgt.reverse_dist_id_char_2,' ')
6065 AND nvl(xdl.source_distribution_id_char_3,' ') = nvl(lgt.reverse_dist_id_char_3,' ')
6066 AND nvl(xdl.source_distribution_id_char_4,' ') = nvl(lgt.reverse_dist_id_char_4,' ')
6067 AND nvl(xdl.source_distribution_id_char_5,' ') = nvl(lgt.reverse_dist_id_char_5,' ')
6068 -- lines that are due to reversals are not reversed again
6069 AND NVL(xdl.temp_line_num,0) >= 0
6070 AND aeh.application_id = xdl.application_id
6071 AND aeh.ae_header_id = xdl.ae_header_id
6072 AND aeh.ledger_id = lgt.ledger_id
6073 AND aeh.entity_id = lgt.entity_id
6074 AND ael.application_id = aeh.application_id
6075 AND ael.ae_header_id = aeh.ae_header_id
6076 AND ael.ae_line_num = xdl.ae_line_num
6077 AND fcu.currency_code = ael.currency_code
6078 -- lines that have been reversed before in previous run are not reversed again
6079 AND NOT EXISTS (
6080 SELECT /*+ no_unnest */ 1
6081 FROM xla_distribution_links
6082 WHERE ref_ae_header_id = xdl.ae_header_id
6083 AND temp_line_num = xdl.temp_line_num * -1
6084 AND application_id = xdl.application_id
6085 )
6086 AND evt.application_id = aeh.application_id
6087 AND evt.event_id = aeh.event_id
6088 AND NVL(evt.budgetary_control_flag,'N') = DECODE(p_accounting_mode
6089 ,'FUNDS_CHECK','Y'
6090 ,'FUNDS_RESERVE','Y'
6091 ,'N'
6092 )
6093 AND ((aeh.parent_ae_header_id IS NOT NULL AND aeh.accounting_entry_status_code = 'F') OR
6094 (aeh.parent_ae_header_id IS NULL)
6095 )
6096 )
6097 WHERE rn = 1
6098 );
6099
6100 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6101 trace
6102 (p_msg => 'Line Reversal - Reversal lines created from xla_ae_lines = '||SQL%ROWCOUNT
6103 ,p_level => C_LEVEL_STATEMENT
6104 ,p_module => l_log_module);
6105 END IF;
6106
6107
6108 -- bug7135700 code change, case: reversal lines created for primary but not for secondary for same event.
6109 -- Note: This code may not, or may unnessecarily throw this warning for cash basis secondary legders also,
6110 -- that case has not been considered
6111
6112 l_upgrade_check := 0;
6113 xla_accounting_cache_pkg.GetLedgerArray(l_ledger_attrs);
6114
6115 FOR i in 1..l_ledger_attrs.array_ledger_id.COUNT
6116 LOOP
6117 IF l_ledger_attrs.array_ledger_type(i) = 'PRIMARY' THEN
6118 l_primary_ledger_id := l_ledger_attrs.array_ledger_id(i);
6119 END IF;
6120 END LOOP;
6121
6122
6123 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6124 trace
6125 (p_msg => 'l_primary_ledger_id = '|| l_primary_ledger_id
6126 ,p_level => C_LEVEL_STATEMENT
6127 ,p_module => l_log_module);
6128 END IF;
6129
6130
6131 BEGIN
6132 SELECT 1
6133 INTO l_upgrade_check
6134 FROM DUAL
6135 WHERE EXISTS
6136 (SELECT 1
6137 FROM gl_ledger_relationships
6138 WHERE hist_conv_status_code = 'SUCCESSFUL'
6139 AND primary_ledger_id = l_primary_ledger_id
6140 AND relationship_enabled_flag = 'Y');
6141 EXCEPTION WHEN OTHERS THEN
6142 l_upgrade_check := 0;
6143 END;
6144
6145
6146 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6147 trace
6148 (p_msg => 'l_upgrade_check = '|| l_upgrade_check
6149 ,p_level => C_LEVEL_STATEMENT
6150 ,p_module => l_log_module);
6151 END IF;
6152
6153
6154 IF l_upgrade_check = 1 THEN
6155
6156 -- find the latest 'first ledger open period name' of all the secondary/alc ledgers
6157
6158 SELECT max(glp.start_date)
6159 INTO l_max_first_open_period
6160 FROM gl_period_statuses glp,
6161 gl_ledgers gl,
6162 gl_ledger_relationships glr
6163 WHERE glp.period_name = gl.first_ledger_period_name
6164 AND glp.ledger_id = gl.ledger_id
6165 AND glp.application_id = 101
6166 AND gl.ledger_id = glr.target_ledger_id
6167 AND glr.primary_ledger_id = l_primary_ledger_id
6168 AND glr.relationship_enabled_flag = 'Y'
6169 AND gl.ledger_category_code <> 'PRIMARY';
6170
6171
6172 -- find the reference event (upstream entry exists for primary but not alc/secondary) with the least accounting date
6173
6174
6175 SELECT min(xla_ae_headers.accounting_date)
6176 INTO l_min_ref_event_date
6177 FROM xla_ae_lines_gt gt1, xla_ae_headers
6178 WHERE gt1.reversal_code = 'REVERSAL'
6179 AND gt1.ref_event_id = xla_ae_headers.event_id;
6180
6181
6182 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6183 trace
6184 (p_msg => 'l_max_first_open_period = '|| l_max_first_open_period
6185 ,p_level => C_LEVEL_STATEMENT
6186 ,p_module => l_log_module);
6187 END IF;
6188
6189
6190 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6191 trace
6192 (p_msg => 'l_min_ref_event_date = '|| l_min_ref_event_date
6193 ,p_level => C_LEVEL_STATEMENT
6194 ,p_module => l_log_module);
6195 END IF;
6196
6197
6198 END IF; --l_upgrade_check if end
6199
6200
6201 IF l_upgrade_check = 1 AND l_min_ref_event_date <= l_max_first_open_period THEN
6202
6203
6204 print_logfile('***************************************************************************************************');
6205 print_logfile('The following REVERSAL (LR) events do not have historic entries replicated in secondary/alc ledgers');
6206 print_logfile('Manual GL adjustments in the secondary/alc ledgers needs to be done for these events');
6207
6208
6209 FOR c_not_reversed_entries IN
6210 (SELECT DISTINCT gt1.event_id, gt1.ledger_id
6211 FROM xla_ae_lines_gt gt1, gl_ledgers gll
6212 WHERE gt1.reversal_code = 'DUMMY_LR'
6213 AND gll.ledger_id = gt1.ledger_id
6214 AND gll.ledger_category_code <> 'PRIMARY'
6215 AND NOT EXISTS (SELECT 1
6216 FROM xla_ae_lines_gt gt2
6217 WHERE gt2.reversal_code = 'REVERSAL'
6218 AND gt1.event_id = gt2.event_id
6219 AND gt1.ledger_id = gt2.ledger_id)
6220 AND EXISTS (SELECT 1
6221 FROM xla_ae_lines_gt gt3
6222 WHERE gt3.reversal_code = 'REVERSAL'
6223 AND gt1.event_id = gt3.event_id))
6224
6225 LOOP
6226 --IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6227 -- trace
6228 -- (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.'
6229 -- ,p_level => C_LEVEL_STATEMENT
6230 -- ,p_module => l_log_module);
6231 --END IF;
6232 print_logfile('Event ' || c_not_reversed_entries.event_id || ' of ledger ' || c_not_reversed_entries.ledger_id);
6233 l_error_count := l_error_count + 1;
6234 END LOOP;
6235
6236 IF l_error_count > 0 THEN
6237 g_hist_reversal_error_exists := TRUE;
6238 END IF;
6239
6240 IF l_error_count = 0 THEN
6241 print_logfile(' NO SUCH ENTRIES');
6242 END IF;
6243
6244 print_logfile('***************************************************************************************************');
6245
6246 END IF;
6247
6248
6249 -- bug7135700 code change end;
6250
6251
6252
6253
6254 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6255 trace
6256 (p_msg => 'Performing transaction level accounting reversal'
6257 ,p_level => C_LEVEL_STATEMENT
6258 ,p_module => l_log_module);
6259 END IF;
6260
6261
6262 --***************************************************************************************************************
6263 --***************************************************************************************************************
6264 --************* T R A N S A C T I O N R E V E R S A L ************************************************
6265 --***************************************************************************************************************
6266 --***************************************************************************************************************
6267
6268 --
6269 -- selecting all the dummy lines from xla_ae_lines_gt that are due to
6270 -- transaction level reversal option
6271 --
6272 SELECT event_id
6273 ,ledger_id
6274 ,event_number
6275 ,entity_id
6276 ,source_distribution_type
6277 ,source_distribution_id_num_1
6278 ,source_distribution_id_num_2
6279 ,source_distribution_id_num_3
6280 ,source_distribution_id_num_4
6281 ,source_distribution_id_num_5
6282 ,source_distribution_id_char_1
6283 ,source_distribution_id_char_2
6284 ,source_distribution_id_char_3
6285 ,source_distribution_id_char_4
6286 ,source_distribution_id_char_5
6287 ,switch_side_flag -- 5055878
6288 ,accounting_date -- 5189664
6289 ,tax_line_ref_id -- 7226263
6290 ,tax_summary_line_ref_id -- 7226263
6291 ,tax_rec_nrec_dist_ref_id -- 7226263
6292 BULK COLLECT INTO
6293 l_array_event_id
6294 ,l_array_ledger_id
6295 ,l_array_event_number
6296 ,l_array_entity_id
6297 ,l_array_source_dist_type
6298 ,l_array_source_dist_id_num_1
6299 ,l_array_source_dist_id_num_2
6300 ,l_array_source_dist_id_num_3
6301 ,l_array_source_dist_id_num_4
6302 ,l_array_source_dist_id_num_5
6303 ,l_array_source_dist_id_char_1
6304 ,l_array_source_dist_id_char_2
6305 ,l_array_source_dist_id_char_3
6306 ,l_array_source_dist_id_char_4
6307 ,l_array_source_dist_id_char_5
6308 ,l_array_switch_side_flag -- 5055878
6309 ,l_array_gl_date -- 5189664
6310 ,l_array_tax_line_ref -- 7226263
6311 ,l_array_tax_summary_line_ref -- 7226263
6312 ,l_array_tax_rec_nrec_dist_ref -- 7226263
6313 FROM xla_ae_lines_gt
6314 WHERE reversal_code = 'DUMMY_TR'
6315 ORDER by entity_id, event_number;
6316
6317 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
6318 trace
6319 (p_msg => 'Transaction Revesal - Events with reversal options set to Y = '||SQL%ROWCOUNT
6320 ,p_level => C_LEVEL_STATEMENT
6321 ,p_module => l_log_module);
6322 END IF;
6323
6324 --=======================================================================================================
6325 -- 4669308 Delete the MPA/Accrual Transaction Reversal (still in GT tables, not in distribution links yet)
6326 --=======================================================================================================
6327 --
6328 ---------------------------------------------------------------------------------------------------------
6329 -- 4669308 Delete the MPA/Accrual Transaction Reversal in xla_ae_lines_gt (not in distribution links yet)
6330 ---------------------------------------------------------------------------------------------------------
6331 --
6332 IF xla_accounting_pkg.g_mpa_accrual_exists = 'Y' THEN -- 5412560
6333 FORALL i IN 1..l_array_entity_id.count
6334 DELETE xla_ae_lines_gt lgt
6335 WHERE l_array_ledger_id(i) = lgt.ledger_id
6336 AND lgt.reversal_code IS NULL -- the lines created from reversal are not reversed again
6337 AND NOT EXISTS ( -- the lines already reversed are not reversed again
6338 SELECT 1
6339 FROM xla_ae_lines_gt
6340 WHERE ledger_id = lgt.ledger_id
6341 AND ref_ae_header_id = lgt.ae_header_id -- 5499367 lgt.ref_ae_header_id
6342 AND temp_line_num = lgt.temp_line_num * -1
6343 )
6344 AND NVL(lgt.header_num,0) > 0
6345 AND lgt.header_num IN
6346 (SELECT hgt.header_num
6347 FROM xla_ae_headers_gt hgt
6348 WHERE hgt.entity_id = l_array_entity_id(i)
6349 AND hgt.ledger_id = l_array_ledger_id(i)
6350 AND hgt.event_number < l_array_event_number(i)
6351 AND lgt.event_id = hgt.event_id
6352 AND lgt.ledger_id = hgt.ledger_id
6353 AND lgt.balance_type_code = hgt.balance_type_code
6354 AND lgt.header_num = hgt.header_num)
6355 ;
6356 --
6357 ---------------------------------------------------------------------------------------------------------
6358 -- 4669308 Delete the MPA/Accrual Transaction Reversal in xla_ae_headers_gt (not in distribution links yet)
6359 ---------------------------------------------------------------------------------------------------------
6360 --
6361 FORALL i IN 1..l_array_entity_id.count
6362 DELETE xla_ae_headers_gt hgt
6363 WHERE hgt.ledger_id = l_array_ledger_id(i)
6364 AND hgt.entity_id = l_array_entity_id(i)
6365 AND hgt.event_number < l_array_event_number(i)
6366 AND NVL(hgt.header_num,0) > 0
6367 ;
6368 END IF;
6369 ---------------------------------------------------------------------------------------------------------
6370
6371
6372 --
6373 -- reverse the lines in xla_ae_lines_gt table (not in distribution links yet)
6374 --
6375 FORALL i IN 1..l_array_event_id.count
6376 INSERT INTO xla_ae_lines_gt
6377 (ae_header_id
6378 ,temp_line_num
6379 ,event_id
6380 ,ref_ae_header_id
6381 ,ref_ae_line_num
6382 ,ref_temp_line_num
6383 ,ref_event_id
6384 ,ledger_id
6385 ,balance_type_code
6386 ,accounting_class_code
6387 ,event_class_code
6388 ,event_type_code
6389 ,line_definition_owner_code
6390 ,line_definition_code
6391 ,accounting_line_type_code
6392 ,accounting_line_code
6393 ,code_combination_status_code
6394 ,code_combination_id
6395 ,sl_coa_mapping_name
6396 ,dynamic_insert_flag
6397 ,source_coa_id
6398 ,ccid_coa_id
6399 ,segment1
6400 ,segment2
6401 ,segment3
6402 ,segment4
6403 ,segment5
6404 ,segment6
6405 ,segment7
6406 ,segment8
6407 ,segment9
6408 ,segment10
6409 ,segment11
6410 ,segment12
6411 ,segment13
6412 ,segment14
6413 ,segment15
6414 ,segment16
6415 ,segment17
6416 ,segment18
6417 ,segment19
6418 ,segment20
6419 ,segment21
6420 ,segment22
6421 ,segment23
6422 ,segment24
6423 ,segment25
6424 ,segment26
6425 ,segment27
6426 ,segment28
6427 ,segment29
6428 ,segment30
6429 , calculate_acctd_amts_flag
6430 , calculate_g_l_amts_flag
6431 , gain_or_loss_flag
6432 , rounding_class_code
6433 , document_rounding_level
6434 , doc_rounding_acctd_amt
6435 , doc_rounding_entered_amt
6436 ,alt_ccid_status_code
6437 ,alt_code_combination_id
6438 ,alt_segment1
6439 ,alt_segment2
6440 ,alt_segment3
6441 ,alt_segment4
6442 ,alt_segment5
6443 ,alt_segment6
6444 ,alt_segment7
6445 ,alt_segment8
6446 ,alt_segment9
6447 ,alt_segment10
6448 ,alt_segment11
6449 ,alt_segment12
6450 ,alt_segment13
6451 ,alt_segment14
6452 ,alt_segment15
6453 ,alt_segment16
6454 ,alt_segment17
6455 ,alt_segment18
6456 ,alt_segment19
6457 ,alt_segment20
6458 ,alt_segment21
6459 ,alt_segment22
6460 ,alt_segment23
6461 ,alt_segment24
6462 ,alt_segment25
6463 ,alt_segment26
6464 ,alt_segment27
6465 ,alt_segment28
6466 ,alt_segment29
6467 ,alt_segment30
6468 ,description
6469 ,gl_transfer_mode_code
6470 ,merge_duplicate_code
6471 ,switch_side_flag
6472 -- ,entered_amount
6473 -- ,ledger_amount
6474 ,unrounded_entered_dr
6475 ,unrounded_entered_cr
6476 ,unrounded_accounted_dr
6477 ,unrounded_accounted_cr
6478 ,entered_currency_mau
6479 ,currency_code
6480 ,currency_conversion_date
6481 ,currency_conversion_rate
6482 ,currency_conversion_type
6483 ,statistical_amount
6484 ,party_id
6485 ,party_site_id
6486 ,party_type_code
6487 ,ussgl_transaction_code
6488 ,jgzz_recon_ref
6489 ,source_distribution_id_char_1
6490 ,source_distribution_id_char_2
6491 ,source_distribution_id_char_3
6492 ,source_distribution_id_char_4
6493 ,source_distribution_id_char_5
6494 ,source_distribution_id_num_1
6495 ,source_distribution_id_num_2
6496 ,source_distribution_id_num_3
6497 ,source_distribution_id_num_4
6498 ,source_distribution_id_num_5
6499 ,source_distribution_type
6500 ,reverse_dist_id_char_1
6501 ,reverse_dist_id_char_2
6502 ,reverse_dist_id_char_3
6503 ,reverse_dist_id_char_4
6504 ,reverse_dist_id_char_5
6505 ,reverse_dist_id_num_1
6506 ,reverse_dist_id_num_2
6507 ,reverse_dist_id_num_3
6508 ,reverse_dist_id_num_4
6509 ,reverse_dist_id_num_5
6510 ,reverse_distribution_type
6511 ,tax_line_ref_id
6512 ,tax_summary_line_ref_id
6513 ,tax_rec_nrec_dist_ref_id
6514 -- 4262811
6515 ,header_num
6516 ,mpa_accrual_entry_flag
6517 ,multiperiod_option_flag
6518 ,multiperiod_start_date
6519 ,multiperiod_end_date
6520 --,deferred_indicator
6521 --,deferred_start_date
6522 --,deferred_end_date
6523 --,deferred_no_period
6524 --,deferred_period_type
6525 ,reversal_code
6526 ,accounting_entry_status_code
6527 ,encumbrance_type_id -- 4458381
6528 ,inherit_desc_flag -- 4219869
6529 ,accounting_date
6530 , BFLOW_APPLICATION_ID
6531 , BFLOW_ENTITY_CODE
6532 , APPLIED_TO_ENTITY_ID
6533 , BFLOW_SOURCE_ID_NUM_1
6534 , BFLOW_SOURCE_ID_NUM_2
6535 , BFLOW_SOURCE_ID_NUM_3
6536 , BFLOW_SOURCE_ID_NUM_4
6537 , BFLOW_SOURCE_ID_CHAR_1
6538 , BFLOW_SOURCE_ID_CHAR_2
6539 , BFLOW_SOURCE_ID_CHAR_3
6540 , BFLOW_SOURCE_ID_CHAR_4
6541 , BFLOW_DISTRIBUTION_TYPE
6542 , BFLOW_DIST_ID_NUM_1
6543 , BFLOW_DIST_ID_NUM_2
6544 , BFLOW_DIST_ID_NUM_3
6545 , BFLOW_DIST_ID_NUM_4
6546 , BFLOW_DIST_ID_NUM_5
6547 , BFLOW_DIST_ID_CHAR_1
6548 , BFLOW_DIST_ID_CHAR_2
6549 , BFLOW_DIST_ID_CHAR_3
6550 , BFLOW_DIST_ID_CHAR_4
6551 , BFLOW_DIST_ID_CHAR_5
6552 , alloc_to_application_id
6553 , alloc_to_entity_code
6554 , alloc_to_source_id_num_1
6555 , alloc_to_source_id_num_2
6556 , alloc_to_source_id_num_3
6557 , alloc_to_source_id_num_4
6558 , alloc_to_source_id_char_1
6559 , alloc_to_source_id_char_2
6560 , alloc_to_source_id_char_3
6561 , alloc_to_source_id_char_4
6562 , alloc_to_distribution_type
6563 , alloc_to_dist_id_char_1
6564 , alloc_to_dist_id_char_2
6565 , alloc_to_dist_id_char_3
6566 , alloc_to_dist_id_char_4
6567 , alloc_to_dist_id_char_5
6568 , alloc_to_dist_id_num_1
6569 , alloc_to_dist_id_num_2
6570 , alloc_to_dist_id_num_3
6571 , alloc_to_dist_id_num_4
6572 , alloc_to_dist_id_num_5
6573 , analytical_balance_flag --8417496
6574 , anc_id_1
6575 , anc_id_2
6576 , anc_id_3
6577 , anc_id_4
6578 , anc_id_5
6579 , anc_id_6
6580 , anc_id_7
6581 , anc_id_8
6582 , anc_id_9
6583 , anc_id_10
6584 , anc_id_11
6585 , anc_id_12
6586 , anc_id_13
6587 , anc_id_14
6588 , anc_id_15
6589 , anc_id_16
6590 , anc_id_17
6591 , anc_id_18
6592 , anc_id_19
6593 , anc_id_20
6594 , anc_id_21
6595 , anc_id_22
6596 , anc_id_23
6597 , anc_id_24
6598 , anc_id_25
6599 , anc_id_26
6600 , anc_id_27
6601 , anc_id_28
6602 , anc_id_29
6603 , anc_id_30
6604 , anc_id_31
6605 , anc_id_32
6606 , anc_id_33
6607 , anc_id_34
6608 , anc_id_35
6609 , anc_id_36
6610 , anc_id_37
6611 , anc_id_38
6612 , anc_id_39
6613 , anc_id_40
6614 , anc_id_41
6615 , anc_id_42
6616 , anc_id_43
6617 , anc_id_44
6618 , anc_id_45
6619 , anc_id_46
6620 , anc_id_47
6621 , anc_id_48
6622 , anc_id_49
6623 , anc_id_50
6624 , anc_id_51
6625 , anc_id_52
6626 , anc_id_53
6627 , anc_id_54
6628 , anc_id_55
6629 , anc_id_56
6630 , anc_id_57
6631 , anc_id_58
6632 , anc_id_59
6633 , anc_id_60
6634 , anc_id_61
6635 , anc_id_62
6636 , anc_id_63
6637 , anc_id_64
6638 , anc_id_65
6639 , anc_id_66
6640 , anc_id_67
6641 , anc_id_68
6642 , anc_id_69
6643 , anc_id_70
6644 , anc_id_71
6645 , anc_id_72
6646 , anc_id_73
6647 , anc_id_74
6648 , anc_id_75
6649 , anc_id_76
6650 , anc_id_77
6651 , anc_id_78
6652 , anc_id_79
6653 , anc_id_80
6654 , anc_id_81
6655 , anc_id_82
6656 , anc_id_83
6657 , anc_id_84
6658 , anc_id_85
6659 , anc_id_86
6660 , anc_id_87
6661 , anc_id_88
6662 , anc_id_89
6663 , anc_id_90
6664 , anc_id_91
6665 , anc_id_92
6666 , anc_id_93
6667 , anc_id_94
6668 , anc_id_95
6669 , anc_id_96
6670 , anc_id_97
6671 , anc_id_98
6672 , anc_id_99
6673 , anc_id_100)
6674
6675 SELECT
6676 -- populates ae_header_id which is same as event_id till this point
6677 l_array_event_id(i)
6678 -- populates temp_line_num which is (-ve) of original line
6679 ,0-lgt.temp_line_num
6680 -- populates event_id which is the event_id of event under process
6681 ,l_array_event_id(i)
6682 -- populates ref_ae_header_id which is ae_header_id of original line
6683 ,hgt.ae_header_id
6684 -- populates ref_ae_line_num which is ae_line_num of original line
6685 ,lgt.ae_line_num
6686 -- populates ref_temp_line_num which is ae_line_num of original line
6687 ,lgt.temp_line_num
6688 -- populates ref_event_id which is event_id of original line
6689 ,0-lgt.event_id -- REF_EVENT_ID made negative for Bug:8277823
6690 ,lgt.ledger_id
6691 ,lgt.balance_type_code
6692 ,lgt.accounting_class_code
6693 ,lgt.event_class_code
6694 ,lgt.event_type_code
6695 ,lgt.line_definition_owner_code
6696 ,lgt.line_definition_code
6697 ,lgt.accounting_line_type_code
6698 ,lgt.accounting_line_code
6699 ,decode(lgt.gain_or_loss_flag, 'Y'
6700 ,decode(lgt.calculate_g_l_amts_flag,'Y'
6701 ,lgt.alt_ccid_status_code,lgt.code_combination_status_code)
6702 ,lgt.code_combination_status_code)
6703 CODE_COMBINATION_STATUS_CODE
6704 ,decode(lgt.gain_or_loss_flag, 'Y'
6705 ,decode(lgt.calculate_g_l_amts_flag,'Y'
6706 ,lgt.alt_code_combination_id, lgt.code_combination_id)
6707 , lgt.code_combination_id)
6708 CODE_COMBINATION_ID
6709 ,lgt.sl_coa_mapping_name
6710 ,lgt.dynamic_insert_flag
6711 ,lgt.source_coa_id
6712 ,lgt.ccid_coa_id
6713 ,decode(lgt.gain_or_loss_flag, 'Y'
6714 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment1,lgt.segment1)
6715 ,lgt.segment1) SEGMENT1
6716 ,decode(lgt.gain_or_loss_flag, 'Y'
6717 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment2,lgt.segment2)
6718 ,lgt.segment2) SEGMENT2
6719
6720 ,decode(lgt.gain_or_loss_flag, 'Y'
6721 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment3,lgt.segment3)
6722 ,lgt.segment3) SEGMENT3
6723
6724 ,decode(lgt.gain_or_loss_flag, 'Y'
6725 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment4,lgt.segment4)
6726 ,lgt.segment4) SEGMENT4
6727
6728 ,decode(lgt.gain_or_loss_flag, 'Y'
6729 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment5,lgt.segment5)
6730 ,lgt.segment5) SEGMENT5
6731
6732 ,decode(lgt.gain_or_loss_flag, 'Y'
6733 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment6,lgt.segment6)
6734 ,lgt.segment6) SEGMENT6
6735
6736 ,decode(lgt.gain_or_loss_flag, 'Y'
6737 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment7,lgt.segment7)
6738 ,lgt.segment7) SEGMENT7
6739
6740 ,decode(lgt.gain_or_loss_flag, 'Y'
6741 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment8,lgt.segment8)
6742 ,lgt.segment8) SEGMENT8
6743
6744 ,decode(lgt.gain_or_loss_flag, 'Y'
6745 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment9,lgt.segment9)
6746 ,lgt.segment9) SEGMENT9
6747
6748 ,decode(lgt.gain_or_loss_flag, 'Y'
6749 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment10,lgt.segment10)
6750 ,lgt.segment10) SEGMENT10
6751
6752 ,decode(lgt.gain_or_loss_flag, 'Y'
6753 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment11,lgt.segment11)
6754 ,lgt.segment11) SEGMENT11
6755
6756 ,decode(lgt.gain_or_loss_flag, 'Y'
6757 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment12,lgt.segment12)
6758 ,lgt.segment12) SEGMENT12
6759
6760 ,decode(lgt.gain_or_loss_flag, 'Y'
6761 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment13,lgt.segment13)
6762 ,lgt.segment13) SEGMENT13
6763
6764 ,decode(lgt.gain_or_loss_flag, 'Y'
6765 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment14,lgt.segment14)
6766 ,lgt.segment14) SEGMENT14
6767
6768 ,decode(lgt.gain_or_loss_flag, 'Y'
6769 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment15,lgt.segment15)
6770 ,lgt.segment15) SEGMENT15
6771
6772 ,decode(lgt.gain_or_loss_flag, 'Y'
6773 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment16,lgt.segment16)
6774 ,lgt.segment16) SEGMENT16
6775
6776 ,decode(lgt.gain_or_loss_flag, 'Y'
6777 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment17,lgt.segment17)
6778 ,lgt.segment17) SEGMENT17
6779
6780 ,decode(lgt.gain_or_loss_flag, 'Y'
6781 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment18,lgt.segment18)
6782 ,lgt.segment18) SEGMENT18
6783
6784 ,decode(lgt.gain_or_loss_flag, 'Y'
6785 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment19,lgt.segment19)
6786 ,lgt.segment19) SEGMENT19
6787
6788 ,decode(lgt.gain_or_loss_flag, 'Y'
6789 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment20,lgt.segment20)
6790 ,lgt.segment20) SEGMENT20
6791
6792 ,decode(lgt.gain_or_loss_flag, 'Y'
6793 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment21,lgt.segment21)
6794 ,lgt.segment21) SEGMENT21
6795
6796 ,decode(lgt.gain_or_loss_flag, 'Y'
6797 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment22,lgt.segment22)
6798 ,lgt.segment22) SEGMENT22
6799
6800 ,decode(lgt.gain_or_loss_flag, 'Y'
6801 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment23,lgt.segment23)
6802 ,lgt.segment23) SEGMENT23
6803
6804 ,decode(lgt.gain_or_loss_flag, 'Y'
6805 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment24,lgt.segment24)
6806 ,lgt.segment24) SEGMENT24
6807
6808 ,decode(lgt.gain_or_loss_flag, 'Y'
6809 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment25,lgt.segment25)
6810 ,lgt.segment25) SEGMENT25
6811
6812 ,decode(lgt.gain_or_loss_flag, 'Y'
6813 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment26,lgt.segment26)
6814 ,lgt.segment26) SEGMENT26
6815
6816 ,decode(lgt.gain_or_loss_flag, 'Y'
6817 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment27,lgt.segment27)
6818 ,lgt.segment27) SEGMENT27
6819
6820 ,decode(lgt.gain_or_loss_flag, 'Y'
6821 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment28,lgt.segment28)
6822 ,lgt.segment28) SEGMENT28
6823
6824 ,decode(lgt.gain_or_loss_flag, 'Y'
6825 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment29,lgt.segment29)
6826 ,lgt.segment29) SEGMENT29
6827
6828 ,decode(lgt.gain_or_loss_flag, 'Y'
6829 ,decode(lgt.calculate_g_l_amts_flag,'Y',lgt.alt_segment30,lgt.segment30)
6830 ,lgt.segment30) SEGMENT30
6831 ,lgt.calculate_acctd_amts_flag
6832 ,lgt.calculate_g_l_amts_flag
6833 ,lgt.gain_or_loss_flag
6834 ,lgt.rounding_class_code
6835 ,lgt.document_rounding_level
6836 ,lgt.doc_rounding_acctd_amt
6837 ,lgt.doc_rounding_entered_amt
6838 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.code_combination_status_code ,lgt.alt_ccid_status_code)
6839 ALT_CCID_STATUS_CODE
6840 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.code_combination_id ,lgt.alt_code_combination_id)
6841 ALT_CODE_COMBINATION_ID
6842 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment1,lgt.alt_segment1) ALT_SEGMENT1
6843 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment2,lgt.alt_segment2) ALT_SEGMENT2
6844 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment3,lgt.alt_segment3) ALT_SEGMENT3
6845 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment4,lgt.alt_segment4) ALT_SEGMENT4
6846 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment5,lgt.alt_segment5) ALT_SEGMENT5
6847 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment6,lgt.alt_segment6) ALT_SEGMENT6
6848 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment7,lgt.alt_segment7) ALT_SEGMENT7
6849 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment8,lgt.alt_segment8) ALT_SEGMENT8
6850 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment9,lgt.alt_segment9) ALT_SEGMENT9
6851 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment10,lgt.alt_segment10) ALT_SEGMENT10
6852 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment11,lgt.alt_segment11) ALT_SEGMENT11
6853 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment12,lgt.alt_segment12) ALT_SEGMENT12
6854 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment13,lgt.alt_segment13) ALT_SEGMENT13
6855 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment14,lgt.alt_segment14) ALT_SEGMENT14
6856 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment15,lgt.alt_segment15) ALT_SEGMENT15
6857 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment16,lgt.alt_segment16) ALT_SEGMENT16
6858 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment17,lgt.alt_segment17) ALT_SEGMENT17
6859 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment18,lgt.alt_segment18) ALT_SEGMENT18
6860 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment19,lgt.alt_segment19) ALT_SEGMENT19
6861 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment20,lgt.alt_segment20) ALT_SEGMENT20
6862 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment21,lgt.alt_segment21) ALT_SEGMENT21
6863 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment22,lgt.alt_segment22) ALT_SEGMENT22
6864 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment23,lgt.alt_segment23) ALT_SEGMENT23
6865 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment24,lgt.alt_segment24) ALT_SEGMENT24
6866 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment25,lgt.alt_segment25) ALT_SEGMENT25
6867 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment26,lgt.alt_segment26) ALT_SEGMENT26
6868 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment27,lgt.alt_segment27) ALT_SEGMENT27
6869 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment28,lgt.alt_segment28) ALT_SEGMENT28
6870 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment29,lgt.alt_segment29) ALT_SEGMENT29
6871 ,decode(lgt.gain_or_loss_flag, 'Y', lgt.segment30,lgt.alt_segment30) ALT_SEGMENT30
6872 ,lgt.description
6873 ,lgt.gl_transfer_mode_code
6874 ,lgt.merge_duplicate_code
6875 -- commented for bug#11671933 to consider change sign even for gain/loss
6876 --,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
6877 , l_array_switch_side_flag(i) -- added for bug#11671933
6878 -- ,lgt.entered_amount
6879 -- ,lgt.ledger_amount
6880 -- 5055878 amounts modified for reversal method of SIDE or SIGN
6881 ,DECODE(l_array_switch_side_flag(i),'Y',lgt.unrounded_entered_cr, -lgt.unrounded_entered_dr)
6882 ,DECODE(l_array_switch_side_flag(i),'Y',lgt.unrounded_entered_dr, -lgt.unrounded_entered_cr)
6883 ,DECODE(l_array_switch_side_flag(i),'Y',lgt.unrounded_accounted_cr,-lgt.unrounded_accounted_dr)
6884 ,DECODE(l_array_switch_side_flag(i),'Y',lgt.unrounded_accounted_dr,-lgt.unrounded_accounted_cr)
6885 --
6886 /*
6887 ,DECODE(lgt.switch_side_flag
6888 ,C_NO_SWITCH, - lgt.entered_dr
6889 ,C_SWITCH, lgt.entered_cr
6890 )
6891 ,DECODE(lgt.switch_side_flag
6892 ,C_NO_SWITCH, - lgt.entered_cr
6893 ,C_SWITCH, lgt.entered_dr
6894 )
6895 ,DECODE(lgt.switch_side_flag
6896 ,C_NO_SWITCH, - lgt.unrounded_accounted_dr
6897 ,C_SWITCH,lgt.unrounded_accounted_cr
6898 )
6899 ,DECODE(lgt.switch_side_flag
6900 ,C_NO_SWITCH, - lgt.unrounded_accounted_cr
6901 ,C_SWITCH, lgt.unrounded_accounted_dr
6902 )
6903 */
6904 ,lgt.entered_currency_mau
6905 ,lgt.currency_code
6906 ,lgt.currency_conversion_date
6907 ,lgt.currency_conversion_rate
6908 ,lgt.currency_conversion_type
6909 --,DECODE(l_array_switch_side_flag(i),'Y',lgt.statistical_amount, -1 * lgt.statistical_amount ) -- bug12726599
6910 ,-1 * lgt.statistical_amount --bug12823865
6911 ,lgt.party_id
6912 ,lgt.party_site_id
6913 ,lgt.party_type_code
6914 ,lgt.ussgl_transaction_code
6915 ,lgt.jgzz_recon_ref
6916 -- if there are no distributions for this event
6917 -- populate with the distribution if lines that is being reversed
6918 ,NVL(l_array_source_dist_id_char_1(i),lgt.source_distribution_id_char_1)
6919 ,NVL(l_array_source_dist_id_char_2(i),lgt.source_distribution_id_char_2)
6920 ,NVL(l_array_source_dist_id_char_3(i),lgt.source_distribution_id_char_3)
6921 ,NVL(l_array_source_dist_id_char_4(i),lgt.source_distribution_id_char_4)
6922 ,NVL(l_array_source_dist_id_char_5(i),lgt.source_distribution_id_char_5)
6923 ,NVL(l_array_source_dist_id_num_1(i),lgt.source_distribution_id_num_1)
6924 ,NVL(l_array_source_dist_id_num_2(i),lgt.source_distribution_id_num_2)
6925 ,NVL(l_array_source_dist_id_num_3(i),lgt.source_distribution_id_num_3)
6926 ,NVL(l_array_source_dist_id_num_4(i),lgt.source_distribution_id_num_4)
6927 ,NVL(l_array_source_dist_id_num_5(i),lgt.source_distribution_id_num_5)
6928 ,NVL(l_array_source_dist_type(i),lgt.source_distribution_type)
6929 -- populate reverse distibutions from original line
6930 ,lgt.source_distribution_id_char_1
6931 ,lgt.source_distribution_id_char_2
6932 ,lgt.source_distribution_id_char_3
6933 ,lgt.source_distribution_id_char_4
6934 ,lgt.source_distribution_id_char_5
6935 ,lgt.source_distribution_id_num_1
6936 ,lgt.source_distribution_id_num_2
6937 ,lgt.source_distribution_id_num_3
6938 ,lgt.source_distribution_id_num_4
6939 ,lgt.source_distribution_id_num_5
6940 ,lgt.source_distribution_type
6941 ,lgt.tax_line_ref_id
6942 ,lgt.tax_summary_line_ref_id
6943 ,lgt.tax_rec_nrec_dist_ref_id
6944 -- 4262811
6945 ,NVL(lgt.header_num,0) -- 4963422
6946 ,lgt.mpa_accrual_entry_flag
6947 ,lgt.multiperiod_option_flag
6948 ,lgt.multiperiod_start_date
6949 ,lgt.multiperiod_end_date
6950 --,lgt.deferred_indicator
6951 --,lgt.deferred_start_date
6952 --,lgt.deferred_end_date
6953 --,lgt.deferred_no_period
6954 --,lgt.deferred_period_type
6955 -- populate reversal_code to indicate that line is due to a reversal
6956 ,'REVERSAL'
6957 -- denormalize entry status to lines from header to decide on status of new entry
6958 ,hgt.accounting_entry_status_code
6959 ,lgt.encumbrance_type_id -- 4458381
6960 ,'N' -- lgt.inherit_desc_flag -- 4219869 Should it be from l_array
6961 ,l_array_gl_date(i) -- 5189664 hgt.accounting_date -- 4955764
6962 , lgt.BFLOW_APPLICATION_ID
6963 , lgt.BFLOW_ENTITY_CODE
6964 , lgt.APPLIED_TO_ENTITY_ID
6965 , lgt.BFLOW_SOURCE_ID_NUM_1
6966 , lgt.BFLOW_SOURCE_ID_NUM_2
6967 , lgt.BFLOW_SOURCE_ID_NUM_3
6968 , lgt.BFLOW_SOURCE_ID_NUM_4
6969 , lgt.BFLOW_SOURCE_ID_CHAR_1
6970 , lgt.BFLOW_SOURCE_ID_CHAR_2
6971 , lgt.BFLOW_SOURCE_ID_CHAR_3
6972 , lgt.BFLOW_SOURCE_ID_CHAR_4
6973 , lgt.BFLOW_DISTRIBUTION_TYPE
6974 , lgt.BFLOW_DIST_ID_NUM_1
6975 , lgt.BFLOW_DIST_ID_NUM_2
6976 , lgt.BFLOW_DIST_ID_NUM_3
6977 , lgt.BFLOW_DIST_ID_NUM_4
6978 , lgt.BFLOW_DIST_ID_NUM_5
6979 , lgt.BFLOW_DIST_ID_CHAR_1
6980 , lgt.BFLOW_DIST_ID_CHAR_2
6981 , lgt.BFLOW_DIST_ID_CHAR_3
6982 , lgt.BFLOW_DIST_ID_CHAR_4
6983 , lgt.BFLOW_DIST_ID_CHAR_5
6984 , lgt.alloc_to_application_id alloc_to_application_id
6985 , lgt.alloc_to_entity_code alloc_to_entity_code
6986 , lgt.alloc_to_source_id_num_1 alloc_to_source_id_num_1
6987 , lgt.alloc_to_source_id_num_2 alloc_to_source_id_num_2
6988 , lgt.alloc_to_source_id_num_3 alloc_to_source_id_num_3
6989 , lgt.alloc_to_source_id_num_4 alloc_to_source_id_num_4
6990 , lgt.alloc_to_source_id_char_1 alloc_to_source_id_char_1
6991 , lgt.alloc_to_source_id_char_2 alloc_to_source_id_char_2
6992 , lgt.alloc_to_source_id_char_3 alloc_to_source_id_char_3
6993 , lgt.alloc_to_source_id_char_4 alloc_to_source_id_char_4
6994 , lgt.alloc_to_distribution_type alloc_to_distribution_type
6995 , lgt.alloc_to_dist_id_char_1 alloc_to_dist_id_char_1
6996 , lgt.alloc_to_dist_id_char_2 alloc_to_dist_id_char_2
6997 , lgt.alloc_to_dist_id_char_3 alloc_to_dist_id_char_3
6998 , lgt.alloc_to_dist_id_char_4 alloc_to_dist_id_char_4
6999 , lgt.alloc_to_dist_id_char_5 alloc_to_dist_id_char_5
7000 , lgt.alloc_to_dist_id_num_1 alloc_to_dist_id_num_1
7001 , lgt.alloc_to_dist_id_num_2 alloc_to_dist_id_num_2
7002 , lgt.alloc_to_dist_id_num_3 alloc_to_dist_id_num_3
7003 , lgt.alloc_to_dist_id_num_4 alloc_to_dist_id_num_4
7004 , lgt.alloc_to_dist_id_num_5 alloc_to_dist_id_num_5
7005 , lgt.analytical_balance_flag analytical_balance_flag --8417496
7006 , lgt.anc_id_1
7007 , lgt.anc_id_2
7008 , lgt.anc_id_3
7009 , lgt.anc_id_4
7010 , lgt.anc_id_5
7011 , lgt.anc_id_6
7012 , lgt.anc_id_7
7013 , lgt.anc_id_8
7014 , lgt.anc_id_9
7015 , lgt.anc_id_10
7016 , lgt.anc_id_11
7017 , lgt.anc_id_12
7018 , lgt.anc_id_13
7019 , lgt.anc_id_14
7020 , lgt.anc_id_15
7021 , lgt.anc_id_16
7022 , lgt.anc_id_17
7023 , lgt.anc_id_18
7024 , lgt.anc_id_19
7025 , lgt.anc_id_20
7026 , lgt.anc_id_21
7027 , lgt.anc_id_22
7028 , lgt.anc_id_23
7029 , lgt.anc_id_24
7030 , lgt.anc_id_25
7031 , lgt.anc_id_26
7032 , lgt.anc_id_27
7033 , lgt.anc_id_28
7034 , lgt.anc_id_29
7035 , lgt.anc_id_30
7036 , lgt.anc_id_31
7037 , lgt.anc_id_32
7038 , lgt.anc_id_33
7039 , lgt.anc_id_34
7040 , lgt.anc_id_35
7041 , lgt.anc_id_36
7042 , lgt.anc_id_37
7043 , lgt.anc_id_38
7044 , lgt.anc_id_39
7045 , lgt.anc_id_40
7046 , lgt.anc_id_41
7047 , lgt.anc_id_42
7048 , lgt.anc_id_43
7049 , lgt.anc_id_44
7050 , lgt.anc_id_45
7051 , lgt.anc_id_46
7052 , lgt.anc_id_47
7053 , lgt.anc_id_48
7054 , lgt.anc_id_49
7055 , lgt.anc_id_50
7056 , lgt.anc_id_51
7057 , lgt.anc_id_52
7058 , lgt.anc_id_53
7059 , lgt.anc_id_54
7060 , lgt.anc_id_55
7061 , lgt.anc_id_56
7062 , lgt.anc_id_57
7063 , lgt.anc_id_58
7064 , lgt.anc_id_59
7065 , lgt.anc_id_60
7066 , lgt.anc_id_61
7067 , lgt.anc_id_62
7068 , lgt.anc_id_63
7069 , lgt.anc_id_64
7070 , lgt.anc_id_65
7071 , lgt.anc_id_66
7072 , lgt.anc_id_67
7073 , lgt.anc_id_68
7074 , lgt.anc_id_69
7075 , lgt.anc_id_70
7076 , lgt.anc_id_71
7077 , lgt.anc_id_72
7078 , lgt.anc_id_73
7079 , lgt.anc_id_74
7080 , lgt.anc_id_75
7081 , lgt.anc_id_76
7082 , lgt.anc_id_77
7083 , lgt.anc_id_78
7084 , lgt.anc_id_79
7085 , lgt.anc_id_80
7086 , lgt.anc_id_81
7087 , lgt.anc_id_82
7088 , lgt.anc_id_83
7089 , lgt.anc_id_84
7090 , lgt.anc_id_85
7091 , lgt.anc_id_86
7092 , lgt.anc_id_87
7093 , lgt.anc_id_88
7094 , lgt.anc_id_89
7095 , lgt.anc_id_90
7096 , lgt.anc_id_91
7097 , lgt.anc_id_92
7098 , lgt.anc_id_93
7099 , lgt.anc_id_94
7100 , lgt.anc_id_95
7101 , lgt.anc_id_96
7102 , lgt.anc_id_97
7103 , lgt.anc_id_98
7104 , lgt.anc_id_99
7105 , lgt.anc_id_100
7106
7107 FROM xla_ae_lines_gt lgt
7108 ,xla_ae_headers_gt hgt
7109 WHERE hgt.entity_id = l_array_entity_id(i)
7110 AND hgt.ledger_id = l_array_ledger_id(i)
7111 AND hgt.event_number < l_array_event_number(i)
7112 AND lgt.event_id = hgt.event_id
7113 AND lgt.ledger_id = hgt.ledger_id
7114 AND lgt.balance_type_code = hgt.balance_type_code
7115 -- lines that are reversal lines are not revrsed again
7116 AND lgt.reversal_code IS NULL
7117 -- lines that are reversed earlier are not reversed again
7118 AND NOT EXISTS (
7119 SELECT 1
7120 FROM xla_ae_lines_gt
7121 WHERE ledger_id = lgt.ledger_id
7122 AND ref_ae_header_id = lgt.ae_header_id -- 5499367 lgt.ref_ae_header_id
7123 AND temp_line_num = lgt.temp_line_num * -1
7124 )
7125 AND lgt.header_num = hgt.header_num -- 4262811c Transaction Reversal (not yet finalised)
7126 ;
7127
7128 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7129 trace
7130 (p_msg => 'Transaction Reversal - Reversal lines created from xla_ae_lines_gt = '||SQL%ROWCOUNT
7131 ,p_level => C_LEVEL_STATEMENT
7132 ,p_module => l_log_module);
7133 END IF;
7134
7135
7136 --------------------------------------------------------------------------------------------------------------
7137 -- 5108415 For Transaction Reversal, Store the incomplete MPA/AccRev entries to be used in DeleteIncompleteMPA
7138 --------------------------------------------------------------------------------------------------------------
7139 IF p_accounting_mode IN ('F','RESERVE_FUNDS') THEN
7140
7141 SELECT /*+ Leading(LGT,XET) use_nl(lgt xet aeh ael)*/ -- 5262950
7142 ael.ae_header_id
7143 ,ael.ae_line_num
7144 ,aeh.parent_ae_header_id
7145 BULK COLLECT INTO
7146 g_incomplete_mpa_acc_TR.l_array_ae_header_id
7147 ,g_incomplete_mpa_acc_TR.l_array_ae_line_num
7148 ,g_incomplete_mpa_acc_TR.l_array_parent_ae_header
7149 FROM
7150 xla_ae_lines_gt lgt
7151 ,xla_ae_lines ael
7152 ,xla_ae_headers aeh
7153 ,xla_events xet -- 5262950
7154 WHERE aeh.application_id = l_application_id
7155 AND lgt.reversal_code = 'DUMMY_TR'
7156 AND xet.application_id = l_application_id -- 5262950
7157 AND xet.entity_id = lgt.entity_id -- 5262950
7158 AND aeh.event_id = xet.event_id -- 5262950
7159 AND aeh.ledger_id = lgt.ledger_id
7160 AND aeh.entity_id = xet.entity_id -- 5262950 lgt.entity_id
7161 -- AND aeh.entity_id = lgt.entity_id
7162 AND ael.application_id = aeh.application_id -- 5262950
7163 AND ael.ae_header_id = aeh.ae_header_id -- 5262950
7164 AND aeh.parent_ae_header_id IS NOT NULL AND aeh.accounting_entry_status_code IN ('D','N','I','R','RELATED_EVENT_ERROR'); -- 5262950
7165
7166 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7167 trace
7168 (p_msg => 'Incomplete mpa_acc_TR count='||g_incomplete_mpa_acc_TR.l_array_ae_header_id.COUNT
7169 ,p_level => C_LEVEL_STATEMENT
7170 ,p_module => l_log_module);
7171 FOR i in 1..g_incomplete_mpa_acc_TR.l_array_ae_header_id.COUNT LOOP
7172 trace
7173 (p_msg => 'Incomplete mpa_acc_TR ae_header='||g_incomplete_mpa_acc_TR.l_array_ae_header_id(i)||
7174 ' ae_line='||g_incomplete_mpa_acc_TR.l_array_ae_line_num(i)||
7175 ' parent='||g_incomplete_mpa_acc_TR.l_array_parent_ae_header(i)
7176 ,p_level => C_LEVEL_STATEMENT
7177 ,p_module => l_log_module);
7178 END LOOP;
7179 END IF;
7180
7181 END IF;
7182
7183 --bug#6933157 24-Apr-2008
7184 -- To consider switch_side_flag depending on the ledger reversal option when gain_or_loss_flag is not
7185 -- equal to 'Y'. In the following insert below it was defaulted to 'N' due to which the merge_index
7186 -- was getting calculated differently, leading to receivable being debited with double the amount in case
7187 -- of receipt reversals on create accounting.
7188
7189 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE' THEN
7190 l_default_switch_side_flag := 'Y';
7191 ELSE
7192 l_default_switch_side_flag := 'N';
7193 END IF;
7194
7195 --end bug#6933157 24-Apr-2008
7196
7197 --
7198 ---------------------------------------------------------------------------------------------------------
7199 -- reverse the lines in xla_ae_lines table
7200 --
7201 -- Some for 4669308:
7202 -- For MPA entries, only reverse what is necessary , ie create reversal for Complete MPA only.
7203 -- Do not create reversal for incomplete entry (since it will get deleted anyway).
7204 -- Also, since the redundant lines will affect ROUNDING calculation.
7205 -- Need to create reversal in Draft mode also (so can be viewed).
7206 ---------------------------------------------------------------------------------------------------------
7207 --
7208 FORALL i IN 1..l_array_event_id.count
7209 INSERT INTO xla_ae_lines_gt
7210 (ae_header_id
7211 ,temp_line_num
7212 ,event_id
7213 ,ref_ae_header_id
7214 ,ref_ae_line_num
7215 ,ref_temp_line_num
7216 ,ref_event_id
7217 ,balance_type_code
7218 ,ledger_id
7219 ,accounting_class_code
7220 ,event_class_code
7221 ,event_type_code
7222 ,line_definition_owner_code
7223 ,line_definition_code
7224 ,accounting_line_type_code
7225 ,accounting_line_code
7226 ,code_combination_status_code
7227 ,code_combination_id
7228 ,alt_ccid_status_code
7229 ,alt_code_combination_id
7230 ,description
7231 ,gl_transfer_mode_code
7232 ,merge_duplicate_code
7233 ,switch_side_flag -- 5055878
7234 -- ,entered_amount
7235 -- ,ledger_amount
7236 ,unrounded_entered_dr
7237 ,unrounded_entered_cr
7238 ,unrounded_accounted_dr
7239 ,unrounded_accounted_cr
7240 ,calculate_acctd_amts_flag
7241 ,calculate_g_l_amts_flag
7242 ,gain_or_loss_flag
7243 ,rounding_class_code
7244 ,document_rounding_level
7245 ,doc_rounding_acctd_amt
7246 ,doc_rounding_entered_amt
7247 ,entered_currency_mau
7248 ,currency_code
7249 ,currency_conversion_date
7250 ,currency_conversion_rate
7251 ,currency_conversion_type
7252 ,statistical_amount
7253 ,party_id
7254 ,party_site_id
7255 ,party_type_code
7256 ,ussgl_transaction_code
7257 ,jgzz_recon_ref
7258 ,tax_line_ref_id -- bug 7159711
7259 ,tax_summary_line_ref_id -- bug 7159711
7260 ,tax_rec_nrec_dist_ref_id -- bug 7159711
7261 ,source_distribution_id_char_1
7262 ,source_distribution_id_char_2
7263 ,source_distribution_id_char_3
7264 ,source_distribution_id_char_4
7265 ,source_distribution_id_char_5
7266 ,source_distribution_id_num_1
7267 ,source_distribution_id_num_2
7268 ,source_distribution_id_num_3
7269 ,source_distribution_id_num_4
7270 ,source_distribution_id_num_5
7271 ,source_distribution_type
7272 ,reverse_dist_id_char_1
7273 ,reverse_dist_id_char_2
7274 ,reverse_dist_id_char_3
7275 ,reverse_dist_id_char_4
7276 ,reverse_dist_id_char_5
7277 ,reverse_dist_id_num_1
7278 ,reverse_dist_id_num_2
7279 ,reverse_dist_id_num_3
7280 ,reverse_dist_id_num_4
7281 ,reverse_dist_id_num_5
7282 ,reverse_distribution_type
7283 ,reversal_code
7284 ,accounting_entry_status_code
7285 ,encumbrance_type_id -- 4458381
7286 ,inherit_desc_flag -- 4219869
7287 ,header_num -- 4669308
7288 ,mpa_accrual_entry_flag -- 4262811
7289 ,accounting_date
7290 , BFLOW_APPLICATION_ID
7291 , BFLOW_ENTITY_CODE
7292 , APPLIED_TO_ENTITY_ID
7293 , BFLOW_SOURCE_ID_NUM_1
7294 , BFLOW_SOURCE_ID_NUM_2
7295 , BFLOW_SOURCE_ID_NUM_3
7296 , BFLOW_SOURCE_ID_NUM_4
7297 , BFLOW_SOURCE_ID_CHAR_1
7298 , BFLOW_SOURCE_ID_CHAR_2
7299 , BFLOW_SOURCE_ID_CHAR_3
7300 , BFLOW_SOURCE_ID_CHAR_4
7301 , BFLOW_DISTRIBUTION_TYPE
7302 , BFLOW_DIST_ID_NUM_1
7303 , BFLOW_DIST_ID_NUM_2
7304 , BFLOW_DIST_ID_NUM_3
7305 , BFLOW_DIST_ID_NUM_4
7306 , BFLOW_DIST_ID_NUM_5
7307 , BFLOW_DIST_ID_CHAR_1
7308 , BFLOW_DIST_ID_CHAR_2
7309 , BFLOW_DIST_ID_CHAR_3
7310 , BFLOW_DIST_ID_CHAR_4
7311 , BFLOW_DIST_ID_CHAR_5
7312 , alloc_to_application_id
7313 , alloc_to_entity_code
7314 , alloc_to_source_id_num_1
7315 , alloc_to_source_id_num_2
7316 , alloc_to_source_id_num_3
7317 , alloc_to_source_id_num_4
7318 , alloc_to_source_id_char_1
7319 , alloc_to_source_id_char_2
7320 , alloc_to_source_id_char_3
7321 , alloc_to_source_id_char_4
7322 , alloc_to_distribution_type
7323 , alloc_to_dist_id_char_1
7324 , alloc_to_dist_id_char_2
7325 , alloc_to_dist_id_char_3
7326 , alloc_to_dist_id_char_4
7327 , alloc_to_dist_id_char_5
7328 , alloc_to_dist_id_num_1
7329 , alloc_to_dist_id_num_2
7330 , alloc_to_dist_id_num_3
7331 , alloc_to_dist_id_num_4
7332 , alloc_to_dist_id_num_5 -- 4955764
7333 , analytical_balance_flag --8417496
7334 ,ANC_ID_1 -- 8691573
7335 )
7336 SELECT /*+ index(xdl XLA_DISTRIBUTION_LINKS_N3) */
7337 -- populates ae_header_id which is same as event_id till this point
7338 l_array_event_id(i)
7339 -- populates temp_line_num which is (-ve) of original line
7340 ,0 - xdl.temp_line_num
7341 -- populates event_id which is the event_id of event under process
7342 ,l_array_event_id(i)
7343 -- populates ref_ae_header_id which is ae_header_id of original line
7344 ,ael.ae_header_id
7345 -- populates ref_ae_line_num which is ae_line_num of original line
7346 ,ael.ae_line_num
7347 -- populates ref_temp_line_num which is ae_line_num of original line
7348 ,xdl.temp_line_num
7349 -- populates ref_event_id which is event_id of original line
7350 ,xdl.event_id
7351 ,aeh.balance_type_code
7352 ,l_array_ledger_id(i)
7353 ,ael.accounting_class_code
7354 ,xdl.event_class_code
7355 ,xdl.event_type_code
7356 ,xdl.line_definition_owner_code
7357 ,xdl.line_definition_code
7358 ,xdl.accounting_line_type_code
7359 ,xdl.accounting_line_code
7360 ,C_CREATED
7361 ,ael.code_combination_id
7362 ,C_CREATED
7363 ,ael.code_combination_id
7364 ,ael.description
7365 ,ael.gl_transfer_mode_code
7366 ,xdl.merge_duplicate_code
7367 --,decode(ael.gain_or_loss_flag, 'Y', decode(xdl.calculate_g_l_amts_flag, 'Y', 'Y', 'N'), 'N')
7368 -- 5055878 switch_side_flag
7369 -- 5055878 amounts modified for reversal method of SIDE or SIGN
7370 -- commented for bug#11671933 to consider change sign even for gain/loss
7371 --, decode(ael.gain_or_loss_flag, 'Y', decode(xdl.calculate_g_l_amts_flag, 'Y', 'Y', 'N'), l_default_switch_side_flag)
7372 ,l_array_switch_side_flag(i) --added for bug#11671933
7373 --bug#6933157 24-Apr-2008
7374 ,DECODE(l_array_switch_side_flag(i),'Y',xdl.unrounded_entered_cr, -xdl.unrounded_entered_dr)
7375 ,DECODE(l_array_switch_side_flag(i),'Y',xdl.unrounded_entered_dr, -xdl.unrounded_entered_cr)
7376 ,DECODE(l_array_switch_side_flag(i),'Y',xdl.unrounded_accounted_cr,-xdl.unrounded_accounted_dr)
7377 ,DECODE(l_array_switch_side_flag(i),'Y',xdl.unrounded_accounted_dr,-xdl.unrounded_accounted_cr)
7378 --
7379 ,xdl.calculate_acctd_amts_flag
7380 ,xdl.calculate_g_l_amts_flag
7381 ,ael.gain_or_loss_flag
7382 ,xdl.rounding_class_code
7383 ,xdl.document_rounding_level
7384 ,NULL -- xdl.doc_rounding_acctd_amt 4669308 creates wrong ROUNDING line for MPA reversal
7385 ,NULL -- xdl.doc_rounding_entered_amt 4669308 creates wrong ROUNDING line for MPA reversal
7386 /*
7387 ,xdl.entered_amount
7388 ,xdl.ledger_amount
7389 -- populates entered_dr. amount should be equal to the entered amount in distribution links
7390 ,DECODE(ael.entered_cr,NULL,NULL,xdl.entered_amount)
7391 -- populates entered_cr. amount should be equal to the entered amount in distribution links
7392 ,DECODE(ael.entered_dr,NULL,NULL,xdl.entered_amount)
7393 -- populates accounted_dr. amount should be equal to the ledger amount in distribution links
7394 ,DECODE(ael.accounted_cr,NULL,NULL,xdl.ledger_amount)
7395 -- populates accounted_cr. amount should be equal to the ledger amount in distribution links
7396 ,DECODE(ael.accounted_dr,NULL,NULL,xdl.ledger_amount)
7397 */
7398 -- ,ael.entered_cr
7399 -- ,ael.entered_dr
7400 -- ,ael.accounted_cr
7401 -- ,ael.accounted_dr
7402 -- bug8642358 ,nvl(fcu.minimum_accountable_unit, power(10, -1* fcu.precision))
7403 ,decode(ael.gain_or_loss_flag, 'Y', 0.01, nvl(fcu.minimum_accountable_unit, power(10, -1* fcu.precision)))
7404 ,ael.currency_code
7405 ,ael.currency_conversion_date
7406 ,ael.currency_conversion_rate
7407 ,ael.currency_conversion_type
7408 --,DECODE(l_array_switch_side_flag(i),'Y',xdl.statistical_amount, -1 * xdl.statistical_amount) -- changed from xal to xdl for bug12726599
7409 ,-1 * xdl.statistical_amount --bug12823865
7410 ,ael.party_id
7411 ,ael.party_site_id
7412 ,ael.party_type_code
7413 ,ael.ussgl_transaction_code
7414 ,ael.jgzz_recon_ref
7415 -- if there are no distributions for this event
7416 -- populate with the distribution if lines that is being reversed
7417 ,NVL(l_array_tax_line_ref(i),xdl.tax_line_ref_id) -- bug7159711
7418 ,NVL(l_array_tax_summary_line_ref(i),xdl.tax_summary_line_ref_id) -- bug7159711
7419 ,NVL(l_array_tax_rec_nrec_dist_ref(i),xdl.tax_rec_nrec_dist_ref_id) -- bug7159711
7420 ,NVL(l_array_source_dist_id_char_1(i),xdl.source_distribution_id_char_1)
7421 ,NVL(l_array_source_dist_id_char_2(i),xdl.source_distribution_id_char_2)
7422 ,NVL(l_array_source_dist_id_char_3(i),xdl.source_distribution_id_char_3)
7423 ,NVL(l_array_source_dist_id_char_4(i),xdl.source_distribution_id_char_4)
7424 ,NVL(l_array_source_dist_id_char_5(i),xdl.source_distribution_id_char_5)
7425 ,NVL(l_array_source_dist_id_num_1(i),xdl.source_distribution_id_num_1)
7426 ,NVL(l_array_source_dist_id_num_2(i),xdl.source_distribution_id_num_2)
7427 ,NVL(l_array_source_dist_id_num_3(i),xdl.source_distribution_id_num_3)
7428 ,NVL(l_array_source_dist_id_num_4(i),xdl.source_distribution_id_num_4)
7429 ,NVL(l_array_source_dist_id_num_5(i),xdl.source_distribution_id_num_5)
7430 ,NVL(l_array_source_dist_type(i),xdl.source_distribution_type)
7431 ,xdl.source_distribution_id_char_1
7432 ,xdl.source_distribution_id_char_2
7433 ,xdl.source_distribution_id_char_3
7434 ,xdl.source_distribution_id_char_4
7435 ,xdl.source_distribution_id_char_5
7436 ,xdl.source_distribution_id_NUM_1
7437 ,xdl.source_distribution_id_NUM_2
7438 ,xdl.source_distribution_id_NUM_3
7439 ,xdl.source_distribution_id_NUM_4
7440 ,xdl.source_distribution_id_NUM_5
7441 ,xdl.source_distribution_type
7442 -- populate reversal_code indicating that line is result of reversal
7443 ,'REVERSAL'
7444 -- denormalises entry status from headers to line to determine the status of entry being created
7445 -- populates 0 for a valid entry (F or D) else poulates 1
7446 ,DECODE(aeh.accounting_entry_status_code,'F',0,'D',0,1)
7447 ,ael.encumbrance_type_id -- 4458381
7448 ,'N' -- 4219869 inherit_desc_flag Should it be from l_array?
7449 -- ,0 -- 4669308 combine header with reversal of original entry -- commented for bug8505463
7450 , DECODE(aeh.parent_ae_header_id , NULL , 0 ,
7451 CASE
7452 WHEN aeh.accounting_date <= l_array_gl_date(i)
7453 THEN 0
7454 ELSE -1 * dense_rank() over ( partition by aeh.parent_ae_header_id , aeh.parent_ae_line_num
7455 order by ael.ae_header_Id )
7456 END
7457 ) HEADER_NUM -- added for bug8505463 for MPA Cancellation
7458 ,'N' -- 4262811 mpa_accrual_entry_flag
7459 -- ,l_array_gl_date(i) -- 5189664 aeh.accounting_date -- 4955764 -- commented for bug8505463
7460 , DECODE(aeh.parent_ae_header_id , NULL , l_array_gl_date(i) , -- Regular Cancellation, hence Cancellation Event Date
7461 CASE
7462 WHEN aeh.accounting_date <= l_array_gl_date(i)
7463 THEN l_array_gl_date(i) -- Accounting Date of Cancellation Event for prior Period's MPA Accounting
7464 ELSE aeh.accounting_date -- Accounting Date of Original MPA Accounting
7465 END
7466 ) ACCOUNTING_DATE -- added for bug8505463 for MPA Cancellation
7467 , xdl.APPLIED_TO_APPLICATION_ID APPLIED_TO_APPLICATION_ID
7468 , xdl.APPLIED_TO_ENTITY_CODE APPLIED_TO_ENTITY_CODE
7469 , xdl.APPLIED_TO_ENTITY_ID APPLIED_TO_ENTITY_ID
7470 , xdl.APPLIED_TO_SOURCE_ID_NUM_1 APPLIED_TO_SOURCE_ID_NUM_1
7471 , xdl.APPLIED_TO_SOURCE_ID_NUM_2 APPLIED_TO_SOURCE_ID_NUM_2
7472 , xdl.APPLIED_TO_SOURCE_ID_NUM_3 APPLIED_TO_SOURCE_ID_NUM_3
7473 , xdl.APPLIED_TO_SOURCE_ID_NUM_4 APPLIED_TO_SOURCE_ID_NUM_4
7474 , xdl.APPLIED_TO_SOURCE_ID_CHAR_1 APPLIED_TO_SOURCE_ID_CHAR_1
7475 , xdl.APPLIED_TO_SOURCE_ID_CHAR_2 APPLIED_TO_SOURCE_ID_CHAR_2
7476 , xdl.APPLIED_TO_SOURCE_ID_CHAR_3 APPLIED_TO_SOURCE_ID_CHAR_3
7477 , xdl.APPLIED_TO_SOURCE_ID_CHAR_4 APPLIED_TO_SOURCE_ID_CHAR_4
7478 , xdl.APPLIED_TO_DISTRIBUTION_TYPE APPLIED_TO_DISTRIBUTION_TYPE
7479 , xdl.APPLIED_TO_DIST_ID_NUM_1 APPLIED_TO_DIST_ID_NUM_1
7480 , xdl.APPLIED_TO_DIST_ID_NUM_2 APPLIED_TO_DIST_ID_NUM_2
7481 , xdl.APPLIED_TO_DIST_ID_NUM_3 APPLIED_TO_DIST_ID_NUM_3
7482 , xdl.APPLIED_TO_DIST_ID_NUM_4 APPLIED_TO_DIST_ID_NUM_4
7483 , xdl.APPLIED_TO_DIST_ID_NUM_5 APPLIED_TO_DIST_ID_NUM_5
7484 , xdl.APPLIED_TO_DIST_ID_CHAR_1 APPLIED_TO_DIST_ID_CHAR_1
7485 , xdl.APPLIED_TO_DIST_ID_CHAR_2 APPLIED_TO_DIST_ID_CHAR_2
7486 , xdl.APPLIED_TO_DIST_ID_CHAR_3 APPLIED_TO_DIST_ID_CHAR_3
7487 , xdl.APPLIED_TO_DIST_ID_CHAR_4 APPLIED_TO_DIST_ID_CHAR_4
7488 , xdl.APPLIED_TO_DIST_ID_CHAR_5 APPLIED_TO_DIST_ID_CHAR_5
7489 , xdl.alloc_to_application_id alloc_to_application_id
7490 , xdl.alloc_to_entity_code alloc_to_entity_code
7491 , xdl.alloc_to_source_id_num_1 alloc_to_source_id_num_1
7492 , xdl.alloc_to_source_id_num_2 alloc_to_source_id_num_2
7493 , xdl.alloc_to_source_id_num_3 alloc_to_source_id_num_3
7494 , xdl.alloc_to_source_id_num_4 alloc_to_source_id_num_4
7495 , xdl.alloc_to_source_id_char_1 alloc_to_source_id_char_1
7496 , xdl.alloc_to_source_id_char_2 alloc_to_source_id_char_2
7497 , xdl.alloc_to_source_id_char_3 alloc_to_source_id_char_3
7498 , xdl.alloc_to_source_id_char_4 alloc_to_source_id_char_4
7499 , xdl.alloc_to_distribution_type alloc_to_distribution_type
7500 , xdl.alloc_to_dist_id_char_1 alloc_to_dist_id_char_1
7501 , xdl.alloc_to_dist_id_char_2 alloc_to_dist_id_char_2
7502 , xdl.alloc_to_dist_id_char_3 alloc_to_dist_id_char_3
7503 , xdl.alloc_to_dist_id_char_4 alloc_to_dist_id_char_4
7504 , xdl.alloc_to_dist_id_char_5 alloc_to_dist_id_char_5
7505 , xdl.alloc_to_dist_id_num_1 alloc_to_dist_id_num_1
7506 , xdl.alloc_to_dist_id_num_2 alloc_to_dist_id_num_2
7507 , xdl.alloc_to_dist_id_num_3 alloc_to_dist_id_num_3
7508 , xdl.alloc_to_dist_id_num_4 alloc_to_dist_id_num_4
7509 , xdl.alloc_to_dist_id_num_5 alloc_to_dist_id_num_5
7510 , decode(ael.analytical_balance_flag, 'Y','P',
7511 'P','P',
7512 null) analytical_balance_flag --8417496
7513 ,nvl2(ael.analytical_balance_flag,'DUMMY_ANC_'||ael.ae_header_id||ael.ae_line_num,null) ANC_ID_1 --Bug 8691573
7514
7515 FROM
7516 xla_ae_lines ael
7517 ,xla_ae_headers aeh
7518 ,xla_distribution_links xdl
7519 ,fnd_currencies fcu
7520 ,xla_events xe
7521 WHERE aeh.application_id = l_application_id
7522 AND aeh.ledger_id = l_array_ledger_id(i)
7523 AND aeh.entity_id = l_array_entity_id(i)
7524 AND aeh.ae_header_id = ael.ae_header_id /* bug 9194744 */
7525 -- AND aeh.event_number < l_array_event_number(i)
7526 AND xdl.application_id = aeh.application_id
7527 AND xdl.ae_header_id = aeh.ae_header_id -- 5499367
7528 -- AND xdl.ref_temp_line_num IS NULL -- 5019460 old
7529 AND NVL(xdl.temp_line_num,0) >= 0 -- 5019460 new
7530 AND ael.application_id = xdl.application_id
7531 AND ael.ae_header_id = xdl.ae_header_id -- 5499367
7532 AND ael.ae_line_num = xdl.ae_line_num
7533 AND ael.currency_code = fcu.currency_code
7534 AND NOT EXISTS (
7535 SELECT /*+ no_unnest */ 1
7536 FROM xla_distribution_links
7537 WHERE ref_ae_header_id = xdl.ae_header_id
7538 AND temp_line_num = xdl.temp_line_num * -1
7539 AND application_id = xdl.application_id
7540 )
7541 AND NOT EXISTS (
7542 SELECT /*+ no_unnest */ 1
7543 FROM xla_ae_lines_gt
7544 WHERE ref_ae_header_id = xdl.ae_header_id
7545 AND temp_line_num = xdl.temp_line_num * -1
7546 AND ledger_id = l_array_ledger_id(i)
7547 )
7548 AND xe.application_id = aeh.application_id
7549 AND xe.event_id = aeh.event_id
7550 AND NVL(xe.budgetary_control_flag,'N') = DECODE(p_accounting_mode
7551 ,'FUNDS_CHECK','Y'
7552 ,'FUNDS_RESERVE','Y'
7553 ,'N')
7554 AND ((aeh.parent_ae_header_id IS NOT NULL AND aeh.accounting_entry_status_code = 'F') OR -- 4669308
7555 (aeh.parent_ae_header_id IS NULL)) -- 4669308
7556 GROUP BY
7557 (0 - xdl.temp_line_num)
7558 ,ael.ae_header_id
7559 ,ael.ae_line_num
7560 ,xdl.temp_line_num
7561 ,xdl.event_id
7562 ,aeh.balance_type_code
7563 ,ael.accounting_class_code
7564 ,xdl.event_class_code
7565 ,xdl.event_type_code
7566 ,xdl.line_definition_owner_code
7567 ,xdl.line_definition_code
7568 ,xdl.accounting_line_type_code
7569 ,xdl.accounting_line_code
7570 ,xdl.unrounded_entered_cr
7571 ,xdl.unrounded_entered_dr
7572 ,xdl.unrounded_accounted_cr
7573 ,xdl.unrounded_accounted_dr
7574 ,xdl.calculate_acctd_amts_flag
7575 ,xdl.calculate_g_l_amts_flag
7576 ,ael.gain_or_loss_flag
7577 ,xdl.rounding_class_code
7578 ,xdl.document_rounding_level
7579 ,xdl.doc_rounding_acctd_amt
7580 ,xdl.doc_rounding_entered_amt
7581 ,ael.code_combination_id
7582 ,ael.description
7583 ,ael.gl_transfer_mode_code
7584 ,xdl.merge_duplicate_code
7585 -- ,ael.entered_cr
7586 -- ,ael.entered_dr
7587 -- ,ael.accounted_cr
7588 -- ,ael.accounted_dr
7589 ,nvl(fcu.minimum_accountable_unit, power(10, -1* fcu.precision))
7590 ,ael.currency_code
7591 ,ael.currency_conversion_date
7592 ,ael.currency_conversion_rate
7593 ,ael.currency_conversion_type
7594 ,xdl.statistical_amount -- changed from xal to xdl for bug12726599
7595 ,ael.party_id
7596 ,ael.party_site_id
7597 ,ael.party_type_code
7598 ,ael.ussgl_transaction_code
7599 ,ael.jgzz_recon_ref
7600 ,aeh.accounting_entry_status_code
7601 ,ael.encumbrance_type_id
7602 ,xdl.tax_line_ref_id -- bug7226263
7603 ,xdl.tax_summary_line_ref_id -- bug7226263
7604 ,xdl.tax_rec_nrec_dist_ref_id -- bug7226263
7605 ,xdl.source_distribution_id_char_1
7606 ,xdl.source_distribution_id_char_2
7607 ,xdl.source_distribution_id_char_3
7608 ,xdl.source_distribution_id_char_4
7609 ,xdl.source_distribution_id_char_5
7610 ,xdl.source_distribution_id_NUM_1
7611 ,xdl.source_distribution_id_NUM_2
7612 ,xdl.source_distribution_id_NUM_3
7613 ,xdl.source_distribution_id_NUM_4
7614 ,xdl.source_distribution_id_NUM_5
7615 ,xdl.source_distribution_type
7616 ,aeh.accounting_date
7617 , aeh.parent_ae_header_id -- added for bug8505463
7618 , aeh.parent_ae_line_num -- added for bug8505463
7619 , xdl.APPLIED_TO_APPLICATION_ID
7620 , xdl.APPLIED_TO_ENTITY_CODE
7621 , xdl.APPLIED_TO_ENTITY_ID
7622 , xdl.APPLIED_TO_SOURCE_ID_NUM_1
7623 , xdl.APPLIED_TO_SOURCE_ID_NUM_2
7624 , xdl.APPLIED_TO_SOURCE_ID_NUM_3
7625 , xdl.APPLIED_TO_SOURCE_ID_NUM_4
7626 , xdl.APPLIED_TO_SOURCE_ID_CHAR_1
7627 , xdl.APPLIED_TO_SOURCE_ID_CHAR_2
7628 , xdl.APPLIED_TO_SOURCE_ID_CHAR_3
7629 , xdl.APPLIED_TO_SOURCE_ID_CHAR_4
7630 , xdl.APPLIED_TO_DISTRIBUTION_TYPE
7631 , xdl.APPLIED_TO_DIST_ID_NUM_1
7632 , xdl.APPLIED_TO_DIST_ID_NUM_2
7633 , xdl.APPLIED_TO_DIST_ID_NUM_3
7634 , xdl.APPLIED_TO_DIST_ID_NUM_4
7635 , xdl.APPLIED_TO_DIST_ID_NUM_5
7636 , xdl.APPLIED_TO_DIST_ID_CHAR_1
7637 , xdl.APPLIED_TO_DIST_ID_CHAR_2
7638 , xdl.APPLIED_TO_DIST_ID_CHAR_3
7639 , xdl.APPLIED_TO_DIST_ID_CHAR_4
7640 , xdl.APPLIED_TO_DIST_ID_CHAR_5
7641 , xdl.alloc_to_application_id
7642 , xdl.alloc_to_entity_code
7643 , xdl.alloc_to_source_id_num_1
7644 , xdl.alloc_to_source_id_num_2
7645 , xdl.alloc_to_source_id_num_3
7646 , xdl.alloc_to_source_id_num_4
7647 , xdl.alloc_to_source_id_char_1
7648 , xdl.alloc_to_source_id_char_2
7649 , xdl.alloc_to_source_id_char_3
7650 , xdl.alloc_to_source_id_char_4
7651 , xdl.alloc_to_distribution_type
7652 , xdl.alloc_to_dist_id_char_1
7653 , xdl.alloc_to_dist_id_char_2
7654 , xdl.alloc_to_dist_id_char_3
7655 , xdl.alloc_to_dist_id_char_4
7656 , xdl.alloc_to_dist_id_char_5
7657 , xdl.alloc_to_dist_id_num_1
7658 , xdl.alloc_to_dist_id_num_2
7659 , xdl.alloc_to_dist_id_num_3
7660 , xdl.alloc_to_dist_id_num_4
7661 , xdl.alloc_to_dist_id_num_5
7662 , ael.analytical_balance_flag --8417496
7663 , nvl2(ael.analytical_balance_flag,'DUMMY_ANC_'||ael.ae_header_id||ael.ae_line_num,null) --Bug 8691573
7664 ;
7665
7666 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7667 trace
7668 (p_msg => 'Transaction Reversal - Reversal lines created from xla_ae_lines = '||SQL%ROWCOUNT
7669 ,p_level => C_LEVEL_STATEMENT
7670 ,p_module => l_log_module);
7671 END IF;
7672
7673 -- 8919497 : update DUMMY value into anc_id_1 column in xla_ae_lines_gt to avoid merging of lines which has supporting reference details.
7674 update xla_ae_lines_gt gt
7675 set anc_id_1 = (select 'DUMMY_ANC_'||xac.ae_header_id||xac.ae_line_num
7676 from xla_ae_line_acs xac
7677 where gt.ref_ae_header_id= xac.ae_header_id
7678 and gt.ref_ae_line_num=xac.ae_line_num
7679 and rownum<2
7680 )
7681 where gt.temp_line_num <0
7682 and gt.reversal_code='REVERSAL'
7683 --and gt.ref_ae_header_id<> gt.ae_header_id
7684 and anc_id_1 is null; --bug 9668528
7685
7686 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7687 trace
7688 (p_msg => 'Supporting Reference - Lines updated in xla_ae_lines_gt = '||SQL%ROWCOUNT
7689 ,p_level => C_LEVEL_STATEMENT
7690 ,p_module => l_log_module);
7691 END IF;
7692
7693 -- bug7135700 code change, case: reversal lines created for primary but not for secondary for same event.
7694
7695 IF l_upgrade_check = 1 THEN
7696
7697 SELECT min(xla_ae_headers.accounting_date)
7698 INTO l_min_ref_event_date
7699 FROM xla_ae_lines_gt gt1, xla_ae_headers
7700 WHERE gt1.reversal_code = 'REVERSAL'
7701 AND gt1.ref_event_id = xla_ae_headers.event_id;
7702
7703 l_error_count := 0;
7704
7705
7706
7707 IF l_min_ref_event_date <= l_max_first_open_period THEN
7708
7709 print_logfile('***************************************************************************************************');
7710 print_logfile('The following REVERSAL (TR) events do not have historic entries replicated in secondary/alc ledgers');
7711 print_logfile('Manual GL adjustments in the secondary/alc ledgers needs to be done for these events');
7712
7713
7714 FOR c_not_reversed_entries IN
7715 (SELECT DISTINCT gt1.event_id, gt1.ledger_id
7716 FROM xla_ae_lines_gt gt1, gl_ledgers gll
7717 WHERE gt1.reversal_code = 'DUMMY_TR'
7718 AND gll.ledger_id = gt1.ledger_id
7719 AND gll.ledger_category_code <> 'PRIMARY'
7720 AND NOT EXISTS (SELECT 1
7721 FROM xla_ae_lines_gt gt2
7722 WHERE gt2.reversal_code = 'REVERSAL'
7723 AND gt1.event_id = gt2.event_id
7724 AND gt1.ledger_id = gt2.ledger_id)
7725 AND EXISTS (SELECT 1
7726 FROM xla_ae_lines_gt gt3
7727 WHERE gt3.reversal_code = 'REVERSAL'
7728 AND gt1.event_id = gt3.event_id))
7729
7730 LOOP
7731 --IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7732 -- trace
7733 -- (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.'
7734 -- ,p_level => C_LEVEL_STATEMENT
7735 -- ,p_module => l_log_module);
7736 --END IF;
7737 print_logfile('Event ' || c_not_reversed_entries.event_id || ' of ledger ' || c_not_reversed_entries.ledger_id);
7738 l_error_count := l_error_count + 1;
7739 END LOOP;
7740
7741 IF l_error_count > 0 THEN
7742 g_hist_reversal_error_exists := TRUE;
7743 END IF;
7744
7745 IF l_error_count = 0 THEN
7746 print_logfile(' NO SUCH ENTRIES');
7747 END IF;
7748
7749 print_logfile('***************************************************************************************************');
7750
7751 END IF;
7752 END IF;
7753
7754 -- bug7135700 code change end
7755
7756
7757 --
7758 -- select all the reversal lines that do not have a header in xla_ae_headers_gt
7759 --
7760 SELECT event_id
7761 ,ledger_id
7762 ,balance_type_code
7763 ,max(accounting_entry_status_code)
7764 ,NVL(header_num,0) -- 4262811c missing mpa reversal lines, 4963422 set header_num to 0
7765 ,accounting_date -- added for bug8505463
7766 BULK COLLECT INTO
7767 l_array_event_id
7768 ,l_array_ledger_id
7769 ,l_array_balance_type_code
7770 ,l_array_entry_status_code
7771 ,l_array_header_num -- 4262811c missing mpa reversal lines
7772 ,l_array_accounting_date -- added for bug8505463
7773 FROM xla_ae_lines_gt lgt
7774 WHERE reversal_code = 'REVERSAL'
7775 AND NOT EXISTS
7776 (SELECT 1
7777 FROM xla_ae_headers_gt
7778 WHERE event_id = lgt.event_id
7779 AND ledger_id = lgt.ledger_id
7780 -- AND nvl(header_num, -1) = nvl(lgt.header_num, -1) -- 4262811c missing mpa reversal lines
7781 -- 4669308 NVL(-1) give separate headers for MPA
7782 -- also causing XLA_AE_LINES_U1 error
7783 AND nvl(header_num, 0) = nvl(lgt.header_num, 0) -- 4669308 NVL(0) combine replacement and MPA to 1 header
7784 AND balance_type_code = lgt.balance_type_code
7785 AND accounting_date = lgt.accounting_date ) -- added for bug8505463
7786 GROUP BY event_id
7787 ,ledger_id
7788 ,header_num -- 4262811c missing mpa reversal lines
7789 ,balance_type_code
7790 ,accounting_date
7791 ORDER BY event_id
7792 ,ledger_id
7793 ,balance_type_code
7794 ,accounting_date
7795 ,header_num ; -- added for bug 8505463 to sequence the headers based on accounting_date when multiple headers
7796
7797 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7798 trace
7799 (p_msg => 'Number of Headers that need to be created for reversal lines = '||SQL%ROWCOUNT
7800 ,p_level => C_LEVEL_STATEMENT
7801 ,p_module => l_log_module);
7802 END IF;
7803
7804 --
7805 -- inserting new rows in xla_ae_headers_gt for the reversal lines that did not have a header
7806 --
7807 FORALL I IN 1..l_array_event_id.count
7808 INSERT INTO xla_ae_headers_gt
7809 ( ae_header_id
7810 , accounting_entry_status_code
7811 , accounting_entry_type_code
7812 , ledger_id
7813 , entity_id
7814 , event_id
7815 , event_type_code
7816 , accounting_date
7817 , product_rule_type_code
7818 , product_rule_code
7819 , product_rule_version
7820 , je_category_name
7821 , period_name
7822 , doc_sequence_id
7823 , doc_sequence_value
7824 , description
7825 , budget_version_id
7826 --, encumbrance_type_id
7827 , balance_type_code
7828 , amb_context_code
7829 , doc_category_code
7830 , gl_transfer_status_code
7831 , event_status_code
7832 , header_num -- 4262811c MPA header for line reversal
7833 ,accrual_reversal_flag) -- 4262811
7834 (SELECT
7835 ae_header_id
7836 , l_array_entry_status_code(i)
7837 , accounting_entry_type_code
7838 , ledger_id
7839 , entity_id
7840 , event_id
7841 , event_type_code
7842 --, accounting_date commented for bug8505463
7843 , CASE
7844 WHEN l_array_header_num(i) <> 0
7845 THEN l_array_accounting_date(i)
7846 ELSE accounting_date
7847 END -- added for bug8505463
7848 , product_rule_type_code
7849 , product_rule_code
7850 , product_rule_version
7851 , je_category_name
7852 , period_name
7853 , doc_sequence_id
7854 , doc_sequence_value
7855 , description
7856 , DECODE(l_array_balance_type_code(i),'B',budget_version_id,NULL) -- 4924492
7857 --, encumbrance_type_id
7858 , l_array_balance_type_code(i)
7859 , amb_context_code
7860 , doc_category_code
7861 , gl_transfer_status_code
7862 , decode(l_array_entry_status_code(i),XLA_AE_JOURNAL_ENTRY_PKG.C_VALID,'X','I')
7863 , l_array_header_num(i) -- 4262811c MPA header for line reversal
7864 , accrual_reversal_flag -- 4262811a
7865 FROM xla_ae_headers_gt
7866 WHERE event_id = l_array_event_id(i)
7867 AND ledger_id = l_array_ledger_id(i)
7868 AND balance_type_code = 'X'
7869 AND NVL(header_num,0) = 0); -- 5183946 xla_ae_headers_gt_u1 error
7870
7871
7872 IF (C_LEVEL_EVENT >= g_log_level) THEN
7873 trace
7874 (p_msg => 'Headers inserted in xla_ae_headers_gt = '||TO_CHAR(SQL%ROWCOUNT)
7875 ,p_level => C_LEVEL_EVENT
7876 ,p_module => l_log_module);
7877 END IF;
7878 --
7879
7880 -- bug 7253269 reversal error start
7881
7882 l_error_count := 0;
7883
7884 /* Commented bug 11687439
7885 print_logfile('***************************************************************************************************');
7886 print_logfile('The following REVERSAL events could not be processed. The event/process status is U/U: ');
7887 print_logfile('Note: this warning may be ignored for any events whose ledger is a cash-basis ledger');*/
7888
7889
7890
7891 FOR c_not_reversed_entries IN
7892 (SELECT DISTINCT gt1.event_id, gt1.ledger_id
7893 FROM xla_ae_lines_gt gt1
7894 WHERE gt1.reversal_code IN ('DUMMY_LR', 'DUMMY_TR')
7895 AND NOT EXISTS (SELECT 1
7896 FROM xla_ae_lines_gt gt2
7897 WHERE gt2.reversal_code = 'REVERSAL'
7898 AND gt1.event_id = gt2.event_id
7899 AND gt1.ledger_id = gt2.ledger_id))
7900
7901
7902 LOOP
7903 --added bug 11687439
7904 IF l_error_count = 0 THEN
7905 print_logfile('***************************************************************************************************');
7906 print_logfile('The following REVERSAL events could not be processed. The event/process status is U/U: ');
7907 print_logfile('Note: this warning may be ignored for any events whose ledger is a cash-basis ledger');
7908 END IF;
7909 -- end bug 11687439
7910
7911 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
7912 trace
7913 (p_msg => 'EVENT not reversed ' || c_not_reversed_entries.event_id || ' of ledger ' || c_not_reversed_entries.ledger_id
7914 ,p_level => C_LEVEL_STATEMENT
7915 ,p_module => l_log_module);
7916 END IF;
7917 print_logfile('Event ' || c_not_reversed_entries.event_id || ' of ledger ' || c_not_reversed_entries.ledger_id);
7918 l_error_count := l_error_count + 1;
7919 END LOOP;
7920
7921 IF l_error_count > 0 THEN
7922 xla_accounting_cache_pkg.g_reversal_error := TRUE;
7923 --added bug 11687439
7924 print_logfile('***************************************************************************************************');
7925 -- end bug 11687439
7926 END IF;
7927
7928 IF l_error_count = 0 THEN
7929 -- commented bug 11687439
7930 -- print_logfile('-------NO SUCH EVENTS-----------');
7931 IF (C_LEVEL_EVENT >= g_log_level) THEN
7932 trace
7933 (p_msg => 'No errors related to reversal'
7934 ,p_level => C_LEVEL_EVENT
7935 ,p_module => l_log_module);
7936 END IF;
7937 END IF;
7938
7939 -- commented bug 11687439
7940 --print_logfile('***************************************************************************************************');
7941
7942
7943
7944 -- bug 7253269 reversal error end
7945
7946
7947
7948 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7949 trace
7950 (p_msg => 'END of AccountingReversal'
7951 ,p_level => C_LEVEL_PROCEDURE
7952 ,p_module => l_log_module);
7953 END IF;
7954 EXCEPTION
7955 WHEN xla_exceptions_pkg.application_exception THEN
7956 RAISE;
7957 WHEN OTHERS THEN
7958 xla_exceptions_pkg.raise_message
7959 (p_location => 'xla_ae_lines_pkg.AccountingReversal');
7960 END AccountingReversal;
7961 --
7962 /*======================================================================+
7963 | |
7964 | PUBLIC Procedure |
7965 | |
7966 | |
7967 +======================================================================*/
7968 FUNCTION SetLineNum(
7969 p_balance_type_code IN VARCHAR2
7970 )
7971 RETURN NUMBER
7972 IS
7973 l_line_num NUMBER;
7974 l_log_module VARCHAR2(240);
7975 BEGIN
7976 --
7977 IF g_log_enabled THEN
7978 l_log_module := C_DEFAULT_MODULE||'.SetLineNum';
7979 END IF;
7980 --
7981 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7982
7983 trace
7984 (p_msg => 'BEGIN of SetLineNum'
7985 ,p_level => C_LEVEL_PROCEDURE
7986 ,p_module => l_log_module);
7987
7988 trace
7989 (p_msg => 'p_balance_type_code = '||p_balance_type_code
7990 ,p_level => C_LEVEL_PROCEDURE
7991 ,p_module => l_log_module);
7992 END IF;
7993 --
7994 CASE p_balance_type_code
7995 --
7996 WHEN C_ACTUAL THEN
7997 --
7998 g_ActualLineNum := NVL(g_ActualLineNum,0) + 1 ;
7999 l_line_num := g_ActualLineNum;
8000 --
8001 WHEN C_BUDGET THEN
8002 --
8003 g_BudgetLineNum := NVL(g_BudgetLineNum,0) + 1 ;
8004 l_line_num := g_BudgetLineNum;
8005 --
8006 WHEN C_ENCUMBRANCE THEN
8007 --
8008 g_EncumbLineNum := NVL(g_EncumbLineNum,0) + 1 ;
8009 l_line_num := g_EncumbLineNum;
8010 --
8011 ELSE null;
8012 --
8013 END CASE;
8014 --
8015 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8016 trace
8017 (p_msg => 'return value. = '||TO_CHAR(l_line_num)
8018 ,p_level => C_LEVEL_PROCEDURE
8019 ,p_module => l_log_module);
8020 trace
8021 (p_msg => 'END of SetLineNum'
8022 ,p_level => C_LEVEL_PROCEDURE
8023 ,p_module => l_log_module);
8024
8025 END IF;
8026
8027 RETURN l_line_num;
8028 EXCEPTION
8029 WHEN xla_exceptions_pkg.application_exception THEN
8030 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
8031 RAISE;
8032 WHEN OTHERS THEN
8033 xla_exceptions_pkg.raise_message
8034 (p_location => 'XLA_AE_LINES_PKG.SetLineNum');
8035 --
8036 END SetLineNum;
8037 --
8038 --
8039 /*======================================================================+
8040 | |
8041 | Public Procedure |
8042 | |
8043 | |
8044 +======================================================================*/
8045 PROCEDURE SetRevAccountingSource (
8046 p_accounting_source IN VARCHAR2
8047 , p_standard_source IN VARCHAR2
8048 , p_source_code IN VARCHAR2
8049 , p_source_type_code IN VARCHAR2
8050 , p_source_application_id IN NUMBER
8051 )
8052 IS
8053 l_log_module VARCHAR2(240);
8054 BEGIN
8055 --
8056 IF g_log_enabled THEN
8057 l_log_module := C_DEFAULT_MODULE||'.SetRevAccountingSource';
8058 END IF;
8059 --
8060 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8061 trace
8062 (p_msg => 'BEGIN of SetRevAccountingSource'
8063 ,p_level => C_LEVEL_PROCEDURE
8064 ,p_module => l_log_module);
8065
8066 trace
8067 (p_msg => 'p_accounting_source = '||p_accounting_source
8068 ,p_level => C_LEVEL_PROCEDURE
8069 ,p_module => l_log_module);
8070
8071 trace
8072 (p_msg => 'p_standard_source = '||p_standard_source
8073 ,p_level => C_LEVEL_PROCEDURE
8074 ,p_module => l_log_module);
8075 END IF;
8076
8077 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8078
8079 trace
8080 (p_msg => 'p_source_code = '||p_source_code
8081 ,p_level => C_LEVEL_STATEMENT
8082 ,p_module => l_log_module);
8083
8084 trace
8085 (p_msg => 'p_source_type_code = '||p_source_type_code
8086 ,p_level => C_LEVEL_STATEMENT
8087 ,p_module => l_log_module);
8088
8089 trace
8090 (p_msg => 'p_source_application_id = '||p_source_application_id
8091 ,p_level => C_LEVEL_STATEMENT
8092 ,p_module => l_log_module);
8093
8094 END IF;
8095 --
8096 CASE p_accounting_source
8097 --
8098 -- line accounting sources
8099 --
8100 WHEN 'PARTY_TYPE' THEN
8101
8102 g_reverse_lines.party_type_code := p_standard_source;
8103
8104 WHEN 'ENTERED_CURRENCY_CODE' THEN g_reverse_lines.currency_code := p_standard_source;
8105 --
8106 -- accounting reversal
8107 --
8108 WHEN 'ACCOUNTING_REVERSAL_OPTION' THEN g_reverse_lines.acc_reversal_option := p_standard_source;
8109 WHEN 'REVERSED_DISTRIBUTION_TYPE' THEN g_reverse_lines.sys_distribution_type := p_standard_source;
8110 WHEN 'DISTRIBUTION_TYPE' THEN g_reverse_lines.rev_sys_distribution_type := p_standard_source;
8111 WHEN 'REVERSED_DISTRIBUTION_ID1' THEN g_reverse_lines.distribution_id_char_1 := p_standard_source;
8112 WHEN 'REVERSED_DISTRIBUTION_ID2' THEN g_reverse_lines.distribution_id_char_2 := p_standard_source;
8113 WHEN 'REVERSED_DISTRIBUTION_ID3' THEN g_reverse_lines.distribution_id_char_3 := p_standard_source;
8114 WHEN 'REVERSED_DISTRIBUTION_ID4' THEN g_reverse_lines.distribution_id_char_4 := p_standard_source;
8115 WHEN 'REVERSED_DISTRIBUTION_ID5' THEN g_reverse_lines.distribution_id_char_5 := p_standard_source;
8116 --
8117 WHEN 'DISTRIBUTION_IDENTIFIER_1' THEN g_reverse_lines.rev_distrib_id_char_1 := p_standard_source;
8118 WHEN 'DISTRIBUTION_IDENTIFIER_2' THEN g_reverse_lines.rev_distrib_id_char_2 := p_standard_source;
8119 WHEN 'DISTRIBUTION_IDENTIFIER_3' THEN g_reverse_lines.rev_distrib_id_char_3 := p_standard_source;
8120 WHEN 'DISTRIBUTION_IDENTIFIER_4' THEN g_reverse_lines.rev_distrib_id_char_4 := p_standard_source;
8121 WHEN 'DISTRIBUTION_IDENTIFIER_5' THEN g_reverse_lines.rev_distrib_id_char_5 := p_standard_source;
8122 --
8123 -- line base currency accounting sources
8124 --
8125 WHEN 'EXCHANGE_RATE_TYPE' THEN g_reverse_lines.curr_conversion_type := p_standard_source;
8126 WHEN 'USSGL_TRANSACTION_CODE' THEN g_reverse_lines.ussgl_transaction := p_standard_source;
8127 WHEN 'RECON_REF' THEN g_reverse_lines.jgzz_recon_ref := p_standard_source;
8128
8129 ELSE null;
8130 --
8131 END CASE;
8132 --
8133 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8134
8135 trace
8136 (p_msg => 'END of SetRevAccountingSource'
8137 ,p_level => C_LEVEL_PROCEDURE
8138 ,p_module => l_log_module);
8139
8140 END IF;
8141 EXCEPTION
8142 WHEN xla_exceptions_pkg.application_exception THEN
8143 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
8144 RAISE;
8145 WHEN OTHERS THEN
8146 xla_exceptions_pkg.raise_message
8147 (p_location => 'XLA_AE_LINES_PKG.SetRevAccountingSource');
8148 --
8149 END SetRevAccountingSource;
8150 --
8151 --
8152 /*======================================================================+
8153 | |
8154 | Public Procedure |
8155 | |
8156 | |
8157 +======================================================================*/
8158 PROCEDURE SetRevAccountingSource (
8159 p_accounting_source IN VARCHAR2
8160 , p_standard_source IN NUMBER
8161 , p_source_code IN VARCHAR2
8162 , p_source_type_code IN VARCHAR2
8163 , p_source_application_id IN NUMBER
8164 )
8165 IS
8166 l_log_module VARCHAR2(240);
8167 BEGIN
8168 --
8169 IF g_log_enabled THEN
8170 l_log_module := C_DEFAULT_MODULE||'.SetRevAccountingSource';
8171 END IF;
8172 --
8173 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8174 trace
8175 (p_msg => 'BEGIN of SetRevAccountingSource'
8176 ,p_level => C_LEVEL_PROCEDURE
8177 ,p_module => l_log_module);
8178
8179 trace
8180 (p_msg => 'p_accounting_source = '||p_accounting_source
8181 ,p_level => C_LEVEL_PROCEDURE
8182 ,p_module => l_log_module);
8183
8184 trace
8185 (p_msg => 'p_standard_source = '||p_standard_source
8186 ,p_level => C_LEVEL_PROCEDURE
8187 ,p_module => l_log_module);
8188 END IF;
8189
8190 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8191
8192 trace
8193 (p_msg => 'p_source_code = '||p_source_code
8194 ,p_level => C_LEVEL_STATEMENT
8195 ,p_module => l_log_module);
8196
8197 trace
8198 (p_msg => 'p_source_type_code = '||p_source_type_code
8199 ,p_level => C_LEVEL_STATEMENT
8200 ,p_module => l_log_module);
8201
8202 trace
8203 (p_msg => 'p_source_application_id = '||p_source_application_id
8204 ,p_level => C_LEVEL_STATEMENT
8205 ,p_module => l_log_module);
8206
8207 END IF;
8208
8209 --
8210 CASE p_accounting_source
8211
8212 WHEN 'LEDGER_AMOUNT' THEN g_reverse_lines.ledger_amount := p_standard_source;
8213 WHEN 'EXCHANGE_RATE' THEN g_reverse_lines.curr_conversion_rate := p_standard_source;
8214 WHEN 'PARTY_ID' THEN g_reverse_lines.party_id := p_standard_source;
8215 WHEN 'PARTY_SITE_ID' THEN g_reverse_lines.party_site_id := p_standard_source;
8216 WHEN 'ENTERED_CURRENCY_AMOUNT' THEN g_reverse_lines.entered_amount := p_standard_source;
8217 WHEN 'STATISTICAL_AMOUNT' THEN g_reverse_lines.statistical_amount := p_standard_source;
8218
8219
8220 WHEN 'TAX_LINE_REF_ID' THEN g_reverse_lines.tax_line_ref := p_standard_source;
8221 WHEN 'TAX_SUMMARY_LINE_REF_ID' THEN g_reverse_lines.tax_summary_line_ref := p_standard_source;
8222 WHEN 'TAX_REC_NREC_DIST_REF_ID' THEN g_reverse_lines.tax_rec_nrec_dist_ref := p_standard_source;
8223 --
8224 WHEN 'REVERSED_DISTRIBUTION_ID1' THEN g_reverse_lines.distribution_id_num_1 := p_standard_source;
8225 WHEN 'REVERSED_DISTRIBUTION_ID2' THEN g_reverse_lines.distribution_id_num_2 := p_standard_source;
8226 WHEN 'REVERSED_DISTRIBUTION_ID3' THEN g_reverse_lines.distribution_id_num_3 := p_standard_source;
8227 WHEN 'REVERSED_DISTRIBUTION_ID4' THEN g_reverse_lines.distribution_id_num_4 := p_standard_source;
8228 WHEN 'REVERSED_DISTRIBUTION_ID5' THEN g_reverse_lines.distribution_id_num_5 := p_standard_source;
8229 --
8230 WHEN 'DISTRIBUTION_IDENTIFIER_1' THEN g_reverse_lines.rev_distrib_id_num_1 := p_standard_source;
8231 WHEN 'DISTRIBUTION_IDENTIFIER_2' THEN g_reverse_lines.rev_distrib_id_num_2 := p_standard_source;
8232 WHEN 'DISTRIBUTION_IDENTIFIER_3' THEN g_reverse_lines.rev_distrib_id_num_3 := p_standard_source;
8233 WHEN 'DISTRIBUTION_IDENTIFIER_4' THEN g_reverse_lines.rev_distrib_id_num_4 := p_standard_source;
8234 WHEN 'DISTRIBUTION_IDENTIFIER_5' THEN g_reverse_lines.rev_distrib_id_num_5 := p_standard_source;
8235 --
8236 WHEN 'REVERSED_UPGRADE_DEBIT_CCID' THEN g_reverse_lines.reversal_debit_ccid := p_standard_source;
8237 WHEN 'REVERSED_UPGRADE_CREDIT_CCID' THEN g_reverse_lines.reversal_credit_ccid := p_standard_source;
8238 --
8239 ELSE null;
8240 --
8241 END CASE;
8242 --
8243 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8244
8245 trace
8246 (p_msg => 'END of SetRevAccountingSource'
8247 ,p_level => C_LEVEL_PROCEDURE
8248 ,p_module => l_log_module);
8249
8250 END IF;
8251 --
8252 EXCEPTION
8253 WHEN xla_exceptions_pkg.application_exception THEN
8254 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
8255 RAISE;
8256 WHEN OTHERS THEN
8257 xla_exceptions_pkg.raise_message
8258 (p_location => 'XLA_AE_LINES_PKG.SetRevAccountingSource');
8259 --
8260 END SetRevAccountingSource;
8261 --
8262 /*======================================================================+
8263 | |
8264 | Public Procedure |
8265 | |
8266 | |
8267 +======================================================================*/
8268 PROCEDURE SetRevAccountingSource (
8269 p_accounting_source IN VARCHAR2
8270 , p_standard_source IN DATE
8271 , p_source_code IN VARCHAR2
8272 , p_source_type_code IN VARCHAR2
8273 , p_source_application_id IN NUMBER
8274 )
8275 IS
8276 l_log_module VARCHAR2(240);
8277 BEGIN
8278 --
8279 IF g_log_enabled THEN
8280 l_log_module := C_DEFAULT_MODULE||'.SetRevAccountingSource';
8281 END IF;
8282 --
8283 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8284 trace
8285 (p_msg => 'BEGIN of SetRevAccountingSource'
8286 ,p_level => C_LEVEL_PROCEDURE
8287 ,p_module => l_log_module);
8288
8289 trace
8290 (p_msg => 'p_accounting_source = '||p_accounting_source
8291 ,p_level => C_LEVEL_PROCEDURE
8292 ,p_module => l_log_module);
8293
8294 trace
8295 (p_msg => 'p_standard_source = '||p_standard_source
8296 ,p_level => C_LEVEL_PROCEDURE
8297 ,p_module => l_log_module);
8298 END IF;
8299
8300 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8301
8302 trace
8303 (p_msg => 'p_source_code = '||p_source_code
8304 ,p_level => C_LEVEL_STATEMENT
8305 ,p_module => l_log_module);
8306
8307 trace
8308 (p_msg => 'p_source_type_code = '||p_source_type_code
8309 ,p_level => C_LEVEL_STATEMENT
8310 ,p_module => l_log_module);
8311
8312 trace
8313 (p_msg => 'p_source_application_id = '||p_source_application_id
8314 ,p_level => C_LEVEL_STATEMENT
8315 ,p_module => l_log_module);
8316
8317 END IF;
8318 --
8319 CASE p_accounting_source
8320 --
8321 -- line accounting sources
8322 --
8323 -- 4262811 MPA ------------------------------------------------------------------------------------
8324 WHEN 'MULTIPERIOD_START_DATE' THEN g_reverse_lines.mpa_start_date := p_standard_source;
8325 WHEN 'MULTIPERIOD_END_DATE' THEN g_reverse_lines.mpa_end_date := p_standard_source;
8326 --WHEN 'DEFERRED_START_DATE' THEN g_reverse_lines.deferred_start_date := p_standard_source;
8327 --WHEN 'DEFERRED_END_DATE' THEN g_reverse_lines.deferred_end_date := p_standard_source;
8328 ---------------------------------------------------------------------------------------------------
8329 WHEN 'EXCHANGE_DATE' THEN g_reverse_lines.curr_conversion_date:= p_standard_source;
8330 --
8331 ELSE null;
8332 --
8333 END CASE;
8334 --
8335 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8336
8337 trace
8338 (p_msg => 'END of SetRevAccountingSource'
8339 ,p_level => C_LEVEL_PROCEDURE
8340 ,p_module => l_log_module);
8341
8342 END IF;
8343 --
8344 EXCEPTION
8345 WHEN xla_exceptions_pkg.application_exception THEN
8346 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
8347 RAISE;
8348 WHEN OTHERS THEN
8349 xla_exceptions_pkg.raise_message
8350 (p_location => 'XLA_AE_LINES_PKG.SetRevAccountingSource');
8351 END SetRevAccountingSource;
8352 --
8353 --
8354 /*======================================================================+
8355 | |
8356 | Public Procedure |
8357 | This procedure is no longer used after attribute enhancement project |
8358 | |
8359 +======================================================================*/
8360 --
8361 -- This might not be needed with bulk perfromance changes
8362 --
8363 /*
8364 PROCEDURE accounting_reversal(p_accounting_reversal_option IN VARCHAR2
8365 ,p_transaction_reversal IN OUT NOCOPY NUMBER)
8366 IS
8367 l_null_rev_line t_rec_reverse_line;
8368 l_transaction_reversal NUMBER;
8369 l_log_module VARCHAR2(240);
8370 BEGIN
8371 --
8372 IF g_log_enabled THEN
8373 l_log_module := C_DEFAULT_MODULE||'.accounting_reversal';
8374 END IF;
8375 --
8376 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8377
8378 trace
8379 (p_msg => 'BEGIN of accounting_reversal'
8380 ,p_level => C_LEVEL_PROCEDURE
8381 ,p_module => l_log_module);
8382
8383 trace
8384 (p_msg => 'p_accounting_reversal_option = '||p_accounting_reversal_option
8385 ,p_level => C_LEVEL_PROCEDURE
8386 ,p_module => l_log_module);
8387
8388 trace
8389 (p_msg => 'p_transaction_reversal = '||p_transaction_reversal
8390 ,p_level => C_LEVEL_PROCEDURE
8391 ,p_module => l_log_module);
8392
8393 END IF;
8394
8395 l_transaction_reversal:= p_transaction_reversal ;
8396 --
8397
8398 IF p_accounting_reversal_option IN ('Y','B','Z','C') AND
8399 g_reverse_lines.sys_distribution_type IS NULL AND
8400 l_transaction_reversal = 0 THEN
8401
8402 -- TransactionReversal;
8403 l_transaction_reversal:= 1;
8404
8405 ELSIF p_accounting_reversal_option IN ('Y','B','Z','C') AND
8406 g_reverse_lines.sys_distribution_type IS NOT NULL AND
8407 l_transaction_reversal IN (0,2) THEN
8408
8409 -- StandardAccountingReversal;
8410 -- (p_accounting_reversal_option => p_accounting_reversal_option
8411 -- );
8412 l_transaction_reversal:= 2;
8413
8414
8415 ELSIF p_accounting_reversal_option = 'U' THEN
8416
8417 UpgradeAccountingReversal;
8418
8419 ELSIF p_accounting_reversal_option IN ('Y','B','Z','C') AND
8420 g_reverse_lines.sys_distribution_type IS NULL AND
8421 l_transaction_reversal = 1
8422 THEN
8423 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
8424
8425 xla_accounting_err_pkg.build_message
8426 (p_appli_s_name => 'XLA'
8427 ,p_msg_name => 'XLA_AP_TRANS_REVERSAL_INCONST'
8428 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8429 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8430 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8431 );
8432
8433 IF (C_LEVEL_ERROR >= g_log_level) THEN
8434 trace
8435 (p_msg => 'ERROR: XLA_AP_TRANS_REVERSAL_INCONST'
8436 ,p_level => C_LEVEL_ERROR
8437 ,p_module => l_log_module);
8438 END IF;
8439
8440 ELSE
8441 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
8442
8443 xla_accounting_err_pkg.build_message
8444 (p_appli_s_name => 'XLA'
8445 ,p_msg_name => 'XLA_AP_REVERSAL_INCONSISTENT'
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 );
8450
8451 IF (C_LEVEL_ERROR >= g_log_level) THEN
8452 trace
8453 (p_msg => 'ERROR: XLA_AP_REVERSAL_INCONSISTENT'
8454 ,p_level => C_LEVEL_ERROR
8455 ,p_module => l_log_module);
8456 END IF;
8457
8458 END IF;
8459
8460 p_transaction_reversal:= l_transaction_reversal ;
8461 --
8462 -- Reset reverse line record
8463 --
8464 g_reverse_lines := l_null_rev_line;
8465 --
8466 --
8467 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8468 trace
8469 (p_msg => 'return value. p_transaction_reversal = '||p_transaction_reversal
8470 ,p_level => C_LEVEL_PROCEDURE
8471 ,p_module => l_log_module);
8472
8473 trace
8474 (p_msg => 'END of accounting_reversal'
8475 ,p_level => C_LEVEL_PROCEDURE
8476 ,p_module => l_log_module);
8477
8478 END IF;
8479 --
8480 EXCEPTION
8481 WHEN xla_exceptions_pkg.application_exception THEN
8482 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
8483 RAISE;
8484 WHEN OTHERS THEN
8485 xla_exceptions_pkg.raise_message
8486 (p_location => 'XLA_AE_LINES_PKG.accounting_reversal');
8487 --
8488 END accounting_reversal;
8489 --
8490 */
8491 --
8492 /*======================================================================+
8493 | |
8494 | Public Procedure |
8495 | |
8496 +======================================================================*/
8497 --
8498 --bulk performance
8499 --
8500 procedure set_ae_header_id
8501 (p_ae_header_id in number
8502 ,p_header_num in number) is -- 4262811
8503
8504 l_log_module varchar2(240);
8505 begin
8506 IF g_log_enabled THEN
8507 l_log_module := C_DEFAULT_MODULE||'.set_ae_header_id';
8508 END IF;
8509 --
8510 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8511 trace
8512 (p_msg => 'BEGIN of set_ae_header_id'
8513 ,p_level => C_LEVEL_PROCEDURE
8514 ,p_module => l_log_module);
8515 trace
8516 (p_msg => 'p_ae_header_id = '||p_ae_header_id
8517 ,p_level => C_LEVEL_PROCEDURE
8518 ,p_module => l_log_module);
8519
8520 END IF;
8521 --
8522 g_rec_lines.array_ae_header_id(g_LineNumber) := p_ae_header_id;
8523 g_rec_lines.array_header_num(g_LineNumber) := p_header_num; -- 4262811
8524
8525 --
8526 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8527 trace
8528 (p_msg => 'END of set_ae_header_id'
8529 ,p_level => C_LEVEL_PROCEDURE
8530 ,p_module => l_log_module);
8531
8532 END IF;
8533 end set_ae_header_id;
8534 --
8535 /*======================================================================+
8536 | |
8537 | |
8538 | |
8539 +======================================================================*/
8540 procedure SetLineAcctAttrs
8541 (p_rec_acct_attrs in t_rec_acct_attrs) is
8542 l_log_module VARCHAR2(240);
8543 l_attr_error VARCHAR2(30);
8544 l_invalid_attr VARCHAR2(30) := 'XLA_AP_INVALID_LINE_ATTR';
8545 l_missing_attr VARCHAR2(30) := 'XLA_AP_MISSING_LINE_ATTR';
8546
8547 BEGIN
8548
8549 IF g_log_enabled THEN
8550 l_log_module := C_DEFAULT_MODULE||'.SetLineAcctAttrs';
8551 END IF;
8552
8553 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8554 trace
8555 (p_msg => 'BEGIN of SetLineAcctAttrs'
8556 ,p_level => C_LEVEL_PROCEDURE
8557 ,p_module => l_log_module);
8558 END IF;
8559
8560 FOR i in 1..p_rec_acct_attrs.array_acct_attr_code.count loop
8561
8562 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8563 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8564 trace(p_msg => 'Loop count = '||i||
8565 ' (char) : '||p_rec_acct_attrs.array_acct_attr_code(i)||
8566 ' = '||p_rec_acct_attrs.array_char_value(i)
8567 ,p_level => C_LEVEL_STATEMENT
8568 ,p_module => l_log_module);
8569 ELSIF p_rec_acct_attrs.array_date_value.EXISTS(i) THEN
8570 trace(p_msg => 'Loop count = '||i||
8571 ' (date) : '||p_rec_acct_attrs.array_acct_attr_code(i)||
8572 ' = '||p_rec_acct_attrs.array_date_value(i)
8573 ,p_level => C_LEVEL_STATEMENT
8574 ,p_module => l_log_module);
8575 ELSE
8576 trace(p_msg => 'Loop count = '||i||
8577 ' (num) : '||p_rec_acct_attrs.array_acct_attr_code(i)||
8578 ' = '||p_rec_acct_attrs.array_num_value(i)
8579 ,p_level => C_LEVEL_STATEMENT
8580 ,p_module => l_log_module);
8581 END IF;
8582 END IF;
8583
8584 l_attr_error := NULL; -- 5162408
8585
8586 CASE p_rec_acct_attrs.array_acct_attr_code(i)
8587
8588 WHEN 'PARTY_TYPE' THEN
8589
8590 -- 4693816 Do not assign if size is more than 1
8591 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8592 IF length(p_rec_acct_attrs.array_char_value(i)) > 1 THEN
8593 g_rec_lines.array_party_type_code(g_LineNumber) := 'X';
8594 l_attr_error := l_invalid_attr;
8595 ELSE
8596 g_rec_lines.array_party_type_code(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8597 END IF;
8598 ELSE
8599 -- 5162408
8600 g_rec_lines.array_party_type_code(g_LineNumber) := NULL;
8601 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8602 l_attr_error := l_invalid_attr;
8603 END IF;
8604 END IF;
8605
8606 WHEN 'ENTERED_CURRENCY_CODE' THEN
8607 IF p_rec_acct_attrs.array_char_value.EXISTS(i) AND length(p_rec_acct_attrs.array_char_value(i)) <= 15 THEN
8608 g_rec_lines.array_currency_code(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8609 g_rec_lines.array_currency_mau(g_LineNumber) := xla_accounting_cache_pkg.GetCurrencyMau(p_rec_acct_attrs.array_char_value(i));
8610 ELSE
8611 -- 5162408
8612 g_rec_lines.array_currency_code(g_LineNumber) := ' '; -- otherwise insert NULL error in currency_code
8613 g_rec_lines.array_currency_mau(g_LineNumber) := 0.01; -- dummy MAU
8614 IF (p_rec_acct_attrs.array_num_value.EXISTS(i)) OR
8615 (p_rec_acct_attrs.array_char_value.EXISTS(i) AND p_rec_acct_attrs.array_char_value(i) IS NOT NULL) THEN
8616 l_attr_error := l_invalid_attr; -- wrong datatype or too long
8617 ELSE
8618 l_attr_error := l_missing_attr; -- required
8619 END IF;
8620 END IF;
8621
8622 -------------------------------------------------------------------
8623 -- 4262811 - replaced DEFERRED
8624 -------------------------------------------------------------------
8625 --WHEN 'DEFERRED_INDICATOR' THEN
8626 -- g_rec_lines.array_deferred_indicator(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8627 --WHEN 'DEFERRED_PERIOD_TYPE' THEN
8628 -- g_rec_lines.array_deferred_period_type(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8629 WHEN 'MULTIPERIOD_OPTION' THEN
8630 IF p_rec_acct_attrs.array_char_value.EXISTS(i) AND p_rec_acct_attrs.array_char_value(i) IS NOT NULL THEN
8631 IF length(p_rec_acct_attrs.array_char_value(i)) = 1 THEN
8632 g_rec_lines.array_mpa_option(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8633 ELSE
8634 g_rec_lines.array_mpa_option(g_LineNumber) := NULL;
8635 END IF;
8636
8637 IF NVL(g_rec_lines.array_mpa_option(g_LineNumber),'N') NOT IN ('Y','N') OR
8638 length(p_rec_acct_attrs.array_char_value(i)) > 1 THEN
8639 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
8640 xla_accounting_err_pkg.build_message
8641 (p_appli_s_name => 'XLA'
8642 ,p_msg_name => 'XLA_MA_INVALID_OPTION' -- 4262811a XLA_AP_INV_DEFERRED_OPTION'
8643 ,p_token_1 => 'LINE_NUMBER'
8644 ,p_value_1 => g_ExtractLine
8645 ,p_token_2 => 'ACCOUNTING_SOURCE_NAME'
8646 ,p_value_2 => XLA_AE_SOURCES_PKG.GetAccountingSourceName
8647 (p_rec_acct_attrs.array_acct_attr_code(i))
8648 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8649 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8650 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
8651 END IF;
8652 ELSE
8653 -- 5162408
8654 g_rec_lines.array_mpa_option(g_LineNumber) := NULL;
8655 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8656 l_attr_error := l_invalid_attr;
8657 END IF;
8658 END IF;
8659
8660 WHEN 'DISTRIBUTION_TYPE' THEN
8661 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8662 g_rec_lines.array_sys_distribution_type(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8663 ELSE
8664 g_rec_lines.array_sys_distribution_type(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8665 END IF;
8666
8667 IF g_rec_lines.array_sys_distribution_type(g_LineNumber) IS NULL THEN
8668 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
8669 xla_accounting_err_pkg.build_message
8670 (p_appli_s_name => 'XLA'
8671 ,p_msg_name => 'XLA_AP_NO_DIST_LINK_TYPE'
8672 ,p_token_1 => 'LINE_NUMBER'
8673 ,p_value_1 => g_ExtractLine
8674 ,p_token_2 => 'ACCOUNTING_SOURCE_NAME'
8675 ,p_value_2 => XLA_AE_SOURCES_PKG.GetAccountingSourceName
8676 (p_rec_acct_attrs.array_acct_attr_code(i))
8677 ,p_token_3 => 'SOURCE_NAME'
8678 ,p_value_3 => NULL
8679 ,p_token_4 => 'LINE_TYPE_NAME'
8680 ,p_value_4 => XLA_AE_SOURCES_PKG.GetComponentName (
8681 g_accounting_line.component_type
8682 , g_accounting_line.accounting_line_code
8683 , g_accounting_line.accounting_line_type_code
8684 , g_accounting_line.accounting_line_appl_id
8685 , g_accounting_line.amb_context_code
8686 , g_accounting_line.entity_code
8687 , g_accounting_line.event_class_code
8688 )
8689 ,p_token_5 => 'OWNER'
8690 ,p_value_5 => xla_lookups_pkg.get_meaning(
8691 'XLA_OWNER_TYPE'
8692 , g_rec_lines.array_accounting_line_type(g_LineNumber)
8693 )
8694 ,p_token_6 => 'PRODUCT_NAME'
8695 ,p_value_6 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8696 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8697 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8698 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
8699 END IF;
8700
8701 WHEN 'ACCOUNTING_REVERSAL_OPTION' THEN
8702 -- 5162408
8703 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8704 IF length(p_rec_acct_attrs.array_char_value(i)) = 1 THEN
8705 g_rec_lines.array_acc_reversal_option(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8706 ELSE
8707 g_rec_lines.array_acc_reversal_option(g_LineNumber) := NULL;
8708 END IF;
8709 IF NVL(g_rec_lines.array_acc_reversal_option(g_LineNumber),'N') NOT IN ('Y','N','B') OR
8710 length(p_rec_acct_attrs.array_char_value(i)) > 1 THEN
8711 l_attr_error := l_invalid_attr;
8712 END IF;
8713 ELSE
8714 g_rec_lines.array_acc_reversal_option(g_LineNumber) := NULL;
8715 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8716 l_attr_error := l_invalid_attr;
8717 END IF;
8718 END IF;
8719
8720 WHEN 'EXCHANGE_RATE_TYPE' THEN
8721 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8722 g_rec_lines.array_curr_conversion_type(g_LineNumber):= p_rec_acct_attrs.array_char_value(i);
8723 ELSE
8724 g_rec_lines.array_curr_conversion_type(g_LineNumber):= p_rec_acct_attrs.array_num_value(i);
8725 END IF;
8726
8727 WHEN 'USSGL_TRANSACTION_CODE' THEN
8728 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8729 g_rec_lines.array_ussgl_transaction(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8730 ELSE
8731 g_rec_lines.array_ussgl_transaction(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8732 END IF;
8733
8734 WHEN 'RECON_REF' THEN
8735 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8736 g_rec_lines.array_jgzz_recon_ref(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8737 ELSE
8738 g_rec_lines.array_jgzz_recon_ref(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8739 END IF;
8740
8741 WHEN 'OVERRIDE_ACCTD_AMT_FLAG' THEN
8742 -- 5162408
8743 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8744 IF length(p_rec_acct_attrs.array_char_value(i)) = 1 THEN
8745 g_override_acctd_amt_flag := p_rec_acct_attrs.array_char_value(i);
8746 g_rec_lines.array_override_acctd_amt_flag(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8747 ELSE
8748 g_override_acctd_amt_flag := NULL;
8749 g_rec_lines.array_override_acctd_amt_flag(g_LineNumber) := NULL;
8750 END IF;
8751 IF NVL(g_override_acctd_amt_flag,'N') NOT IN ('Y','N') OR
8752 length(p_rec_acct_attrs.array_char_value(i)) > 1 THEN
8753 l_attr_error := l_invalid_attr;
8754 END IF;
8755 ELSE
8756 g_override_acctd_amt_flag := NULL;
8757 g_rec_lines.array_override_acctd_amt_flag(g_LineNumber) := NULL;
8758 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8759 l_attr_error := l_invalid_attr;
8760 END IF;
8761 END IF;
8762 -- Bug 7044870
8763 -- Bug 8238617 set g_override_acctd_amt_flag to null only if the currency_code of secondary,ALC is different from primary
8764 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code IN ('SECONDARY','ALC')
8765 AND xla_accounting_cache_pkg.g_primary_ledger_currency <> XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.currency_code
8766 THEN
8767 g_override_acctd_amt_flag := NULL;
8768 g_rec_lines.array_override_acctd_amt_flag(g_LineNumber) := NULL;
8769 END IF;
8770 --
8771
8772 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8773 trace
8774 (p_msg => 'g_primary_ledger_currency : ' || xla_accounting_cache_pkg.g_primary_ledger_currency
8775 || 'Secondary Ledger Currency code : '|| XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.currency_code
8776 || 'g_override_acctd_amt_flag : ' || g_override_acctd_amt_flag
8777 ,p_level => C_LEVEL_STATEMENT
8778 ,p_module => l_log_module);
8779 END IF;
8780
8781
8782 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
8783 trace
8784 (p_msg => 'override_acctd_amt_flag= '||g_override_acctd_amt_flag
8785 ,p_level => C_LEVEL_STATEMENT
8786 ,p_module => l_log_module);
8787 END IF;
8788
8789 WHEN 'GAIN_LOSS_REFERENCE' THEN
8790 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8791 g_rec_lines.array_gain_or_loss_ref(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8792 ELSE
8793 g_rec_lines.array_gain_or_loss_ref(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8794 END IF;
8795
8796 WHEN 'TRX_ROUNDING_REF' THEN
8797 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8798 g_rec_lines.array_doc_rounding_level(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8799 ELSE
8800 g_rec_lines.array_doc_rounding_level(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8801 END IF;
8802
8803 WHEN 'DISTRIBUTION_IDENTIFIER_1' THEN
8804 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8805 g_rec_lines.array_distribution_id_char_1(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8806 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8807 g_rec_lines.array_distribution_id_num_1(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8808 END IF;
8809
8810 WHEN 'DISTRIBUTION_IDENTIFIER_2' THEN
8811 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8812 g_rec_lines.array_distribution_id_char_2(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8813 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8814 g_rec_lines.array_distribution_id_num_2(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8815 END IF;
8816
8817 WHEN 'DISTRIBUTION_IDENTIFIER_3' THEN
8818 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8819 g_rec_lines.array_distribution_id_char_3(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8820 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8821 g_rec_lines.array_distribution_id_num_3(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8822 END IF;
8823
8824 WHEN 'DISTRIBUTION_IDENTIFIER_4' THEN
8825 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8826 g_rec_lines.array_distribution_id_char_4(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8827 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8828 g_rec_lines.array_distribution_id_num_4(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8829 END IF;
8830
8831 WHEN 'DISTRIBUTION_IDENTIFIER_5' THEN
8832 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8833 g_rec_lines.array_distribution_id_char_5(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8834 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8835 g_rec_lines.array_distribution_id_num_5(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8836 END IF;
8837
8838 WHEN 'PARTY_ID' THEN
8839 g_rec_lines.array_party_id(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8840
8841 WHEN 'PARTY_SITE_ID' THEN
8842 g_rec_lines.array_party_site_id(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8843
8844 WHEN 'ENTERED_CURRENCY_AMOUNT' THEN
8845 g_rec_lines.array_entered_amount(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8846
8847 WHEN 'STATISTICAL_AMOUNT' THEN
8848 g_rec_lines.array_statistical_amount(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8849
8850 -- 4262811
8851 --WHEN 'DEFERRED_NO_OF_PERIODS' THEN
8852 -- g_rec_lines.array_deferred_no_period(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8853
8854 WHEN 'TAX_LINE_REF_ID' THEN
8855 g_rec_lines.array_tax_line_ref(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8856
8857 WHEN 'TAX_SUMMARY_LINE_REF_ID' THEN
8858 g_rec_lines.array_tax_summary_line_ref(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8859
8860 WHEN 'TAX_REC_NREC_DIST_REF_ID' THEN
8861 g_rec_lines.array_tax_rec_nrec_dist_ref(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8862
8863 WHEN 'LEDGER_AMOUNT' THEN
8864 g_rec_lines.array_ledger_amount(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8865
8866 /* Since now after ledger currency project, the ledger amount could be null
8867 this validation is moved to SetDebitCreditAmounts
8868 IF p_rec_acct_attrs.array_num_value(i) IS NULL THEN
8869 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
8870 xla_accounting_err_pkg.build_message
8871 (p_appli_s_name => 'XLA'
8872 ,p_msg_name => 'XLA_AP_NO_LEDGER_AMOUNT'
8873 ,p_token_1 => 'LINE_NUMBER'
8874 ,p_value_1 => g_ExtractLine
8875 ,p_token_2 => 'SOURCE_NAME'
8876 ,p_value_2 => NULL
8877 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8878 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8879 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
8880 END IF;
8881 */
8882
8883 WHEN 'EXCHANGE_RATE' THEN
8884 g_rec_lines.array_curr_conversion_rate(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8885
8886 -- 4262811 ------------------------------------------------------------------------------------
8887 --WHEN 'DEFERRED_START_DATE' THEN
8888 -- g_rec_lines.array_deferred_start_date(g_LineNumber) := p_rec_acct_attrs.array_date_value(i);
8889 --WHEN 'DEFERRED_END_DATE' THEN
8890 -- g_rec_lines.array_deferred_end_date(g_LineNumber) := p_rec_acct_attrs.array_date_value(i);
8891 WHEN 'MULTIPERIOD_START_DATE' THEN
8892 g_rec_lines.array_mpa_start_date(g_LineNumber) := p_rec_acct_attrs.array_date_value(i);
8893
8894 WHEN 'MULTIPERIOD_END_DATE' THEN
8895 g_rec_lines.array_mpa_end_date(g_LineNumber) := p_rec_acct_attrs.array_date_value(i);
8896
8897
8898 WHEN 'EXCHANGE_DATE' THEN
8899 g_rec_lines.array_curr_conversion_date(g_LineNumber):= p_rec_acct_attrs.array_date_value(i);
8900
8901 ----------------------------------------------------------------------------------------------------
8902 -- 4219869
8903 -- Business Flow Applied To attributes - code must match those in Accounting Attribute in AAA form.
8904 -- See xla11iass.ldt for seeded data.
8905 ----------------------------------------------------------------------------------------------------
8906 WHEN 'APPLIED_TO_APPLICATION_ID' THEN
8907 g_rec_lines.array_bflow_application_id(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8908
8909 WHEN 'APPLIED_TO_ENTITY_CODE' THEN
8910 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8911 g_rec_lines.array_bflow_entity_code(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8912 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8913 g_rec_lines.array_bflow_entity_code(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8914 END IF;
8915
8916 WHEN 'APPLIED_TO_FIRST_SYS_TRAN_ID' THEN
8917 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8918 g_rec_lines.array_bflow_source_id_num_1(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8919 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8920 g_rec_lines.array_bflow_source_id_char_1(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8921 END IF;
8922
8923 WHEN 'APPLIED_TO_SECOND_SYS_TRAN_ID' THEN
8924 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8925 g_rec_lines.array_bflow_source_id_num_2(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8926 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8927 g_rec_lines.array_bflow_source_id_char_2(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8928 END IF;
8929
8930 WHEN 'APPLIED_TO_THIRD_SYS_TRAN_ID' THEN
8931 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8932 g_rec_lines.array_bflow_source_id_num_3(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8933 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8934 g_rec_lines.array_bflow_source_id_char_3(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8935 END IF;
8936 WHEN 'APPLIED_TO_FOURTH_SYS_TRAN_ID' THEN
8937 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8938 g_rec_lines.array_bflow_source_id_num_4(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8939 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8940 g_rec_lines.array_bflow_source_id_char_4(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8941 END IF;
8942
8943 WHEN 'APPLIED_TO_DISTRIBUTION_TYPE' THEN
8944 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8945 g_rec_lines.array_bflow_distribution_type(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8946 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8947 g_rec_lines.array_bflow_distribution_type(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8948 END IF;
8949
8950 WHEN 'APPLIED_TO_FIRST_DIST_ID' THEN
8951 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8952 g_rec_lines.array_bflow_dist_id_num_1(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8953 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8954 g_rec_lines.array_bflow_dist_id_char_1(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8955 END IF;
8956
8957 WHEN 'APPLIED_TO_SECOND_DIST_ID' THEN
8958 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8959 g_rec_lines.array_bflow_dist_id_num_2(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8960 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8961 g_rec_lines.array_bflow_dist_id_char_2(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8962 END IF;
8963
8964 WHEN 'APPLIED_TO_THIRD_DIST_ID' THEN
8965 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8966 g_rec_lines.array_bflow_dist_id_num_3(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8967 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8968 g_rec_lines.array_bflow_dist_id_char_3(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8969 END IF;
8970
8971 WHEN 'APPLIED_TO_FOURTH_DIST_ID' THEN
8972 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8973 g_rec_lines.array_bflow_dist_id_num_4(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8974 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8975 g_rec_lines.array_bflow_dist_id_char_4(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8976 END IF;
8977
8978 WHEN 'APPLIED_TO_FIFTH_DIST_ID' THEN
8979 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
8980 g_rec_lines.array_bflow_dist_id_num_5(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8981 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
8982 g_rec_lines.array_bflow_dist_id_char_5(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8983 END IF;
8984
8985 WHEN 'APPLIED_TO_AMOUNT' THEN -- 5132302
8986 g_rec_lines.array_bflow_applied_to_amt(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8987
8988 --
8989 -- Upgrade attributes
8990 --
8991
8992 WHEN 'ACTUAL_UPG_OPTION' THEN
8993 g_rec_lines.array_actual_upg_option(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
8994
8995 WHEN 'ACTUAL_UPG_DR_CCID' THEN
8996 g_rec_lines.array_actual_upg_dr_ccid(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
8997
8998 WHEN 'ACTUAL_UPG_CR_CCID' THEN
8999 g_rec_lines.array_actual_upg_cr_ccid(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9000
9001 WHEN 'ACTUAL_UPG_DR_ENTERED_AMT' THEN
9002 g_rec_lines.array_actual_upg_dr_ent_amt(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9003
9004 WHEN 'ACTUAL_UPG_CR_ENTERED_AMT' THEN
9005 g_rec_lines.array_actual_upg_cr_ent_amt(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9006
9007 WHEN 'ACTUAL_UPG_DR_ENTERED_CURR' THEN
9008 g_rec_lines.array_actual_upg_dr_ent_curr(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9009
9010 WHEN 'ACTUAL_UPG_CR_ENTERED_CURR' THEN
9011 g_rec_lines.array_actual_upg_cr_ent_curr(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9012
9013 WHEN 'ACTUAL_UPG_DR_LEDGER_AMT' THEN
9014 g_rec_lines.array_actual_upg_dr_ledger_amt(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9015
9016 WHEN 'ACTUAL_UPG_CR_LEDGER_AMT' THEN
9017 g_rec_lines.array_actual_upg_cr_ledger_amt(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9018
9019 WHEN 'ACTUAL_UPG_DR_ACCT_CLASS' THEN
9020 g_rec_lines.array_actual_upg_dr_acct_class(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9021
9022 WHEN 'ACTUAL_UPG_CR_ACCT_CLASS' THEN
9023 g_rec_lines.array_actual_upg_dr_acct_class(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9024
9025 WHEN 'ACTUAL_UPG_DR_XRATE' THEN
9026 g_rec_lines.array_actual_upg_dr_xrate(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9027
9028 WHEN 'ACTUAL_UPG_DR_XRATE_TYPE' THEN
9029 g_rec_lines.array_actual_upg_dr_xrate_type(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9030
9031 WHEN 'ACTUAL_UPG_DR_XDATE' THEN
9032 g_rec_lines.array_actual_upg_dr_xdate(g_LineNumber) := p_rec_acct_attrs.array_date_value(i);
9033
9034 WHEN 'ACTUAL_UPG_CR_XRATE' THEN
9035 g_rec_lines.array_actual_upg_cr_xrate(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9036
9037 WHEN 'ACTUAL_UPG_CR_XRATE_TYPE' THEN
9038 g_rec_lines.array_actual_upg_cr_xrate_type(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9039
9040 WHEN 'ACTUAL_UPG_CR_XDATE' THEN
9041 g_rec_lines.array_actual_upg_cr_xdate(g_LineNumber) := p_rec_acct_attrs.array_date_value(i);
9042
9043 WHEN 'ENC_UPG_OPTION' THEN
9044 g_rec_lines.array_enc_upg_option(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9045
9046 WHEN 'ENC_UPG_DR_CCID' THEN
9047 g_rec_lines.array_enc_upg_dr_ccid(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9048
9049 WHEN 'ENC_UPG_CR_CCID' THEN
9050 g_rec_lines.array_enc_upg_cr_ccid(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9051
9052 WHEN 'UPG_DR_ENC_TYPE_ID' THEN
9053 g_rec_lines.array_upg_dr_enc_type_id(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9054
9055 WHEN 'UPG_CR_ENC_TYPE_ID' THEN
9056 g_rec_lines.array_upg_cr_enc_type_id(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9057
9058 WHEN 'ENC_UPG_DR_ENTERED_AMT' THEN
9059 g_rec_lines.array_enc_upg_dr_ent_amt(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9060
9061 WHEN 'ENC_UPG_CR_ENTERED_AMT' THEN
9062 g_rec_lines.array_enc_upg_cr_ent_amt(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9063
9064 WHEN 'ENC_UPG_DR_ENTERED_CURR' THEN
9065 g_rec_lines.array_enc_upg_dr_ent_curr(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9066
9067 WHEN 'ENC_UPG_CR_ENTERED_CURR' THEN
9068 g_rec_lines.array_enc_upg_cr_ent_curr(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9069
9070 WHEN 'ENC_UPG_DR_LEDGER_AMT' THEN
9071 g_rec_lines.array_enc_upg_dr_ledger_amt(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9072
9073 WHEN 'ENC_UPG_CR_LEDGER_AMT' THEN
9074 g_rec_lines.array_enc_upg_cr_ledger_amt(g_linenumber) := p_rec_acct_attrs.array_num_value(i);
9075
9076 WHEN 'ENC_UPG_DR_ACCT_CLASS' THEN
9077 g_rec_lines.array_enc_upg_dr_acct_class(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9078
9079 WHEN 'ENC_UPG_CR_ACCT_CLASS' THEN
9080 g_rec_lines.array_enc_upg_cr_acct_class(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9081 -- 5845547
9082 WHEN 'UPG_PARTY_TYPE' THEN
9083 g_rec_lines.array_upg_party_type_code(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9084
9085 WHEN 'UPG_PARTY_ID' THEN
9086 g_rec_lines.array_upg_party_id(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9087
9088 WHEN 'UPG_PARTY_SITE_ID' THEN
9089 g_rec_lines.array_upg_party_site_id(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9090 --
9091 -- end upgrade attributes
9092 --
9093
9094 --
9095 -- Allocation Attributes
9096 --
9097 WHEN 'ALLOC_TO_APPLICATION_ID' THEN
9098 g_rec_lines.array_alloct_application_id(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9099
9100 WHEN 'ALLOC_TO_ENTITY_CODE' THEN
9101 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9102 g_rec_lines.array_alloct_entity_code(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9103 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
9104 g_rec_lines.array_alloct_entity_code(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9105 END IF;
9106
9107 WHEN 'ALLOC_TO_FIRST_SYS_TRAN_ID' THEN
9108 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
9109 g_rec_lines.array_alloct_source_id_num_1(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9110 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9111 g_rec_lines.array_alloct_source_id_char_1(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9112 END IF;
9113
9114 WHEN 'ALLOC_TO_SECOND_SYS_TRAN_ID' THEN
9115 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
9116 g_rec_lines.array_alloct_source_id_num_2(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9117 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9118 g_rec_lines.array_alloct_source_id_char_2(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9119 END IF;
9120
9121 WHEN 'ALLOC_TO_THIRD_SYS_TRAN_ID' THEN
9122 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
9123 g_rec_lines.array_alloct_source_id_num_3(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9124 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9125 g_rec_lines.array_alloct_source_id_char_3(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9126 END IF;
9127 WHEN 'ALLOC_TO_FOURTH_SYS_TRAN_ID' THEN
9128 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
9129 g_rec_lines.array_alloct_source_id_num_4(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9130 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9131 g_rec_lines.array_alloct_source_id_char_4(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9132 END IF;
9133
9134 WHEN 'ALLOC_TO_DISTRIBUTION_TYPE' THEN
9135 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
9136 g_rec_lines.array_alloct_distribution_type(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9137 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9138 g_rec_lines.array_alloct_distribution_type(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9139 END IF;
9140
9141 WHEN 'ALLOC_TO_FIRST_DIST_ID' THEN
9142 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
9143 g_rec_lines.array_alloct_dist_id_num_1(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9144 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9145 g_rec_lines.array_alloct_dist_id_char_1(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9146 END IF;
9147
9148 WHEN 'ALLOC_TO_SECOND_DIST_ID' THEN
9149 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
9150 g_rec_lines.array_alloct_dist_id_num_2(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9151 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9152 g_rec_lines.array_alloct_dist_id_char_2(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9153 END IF;
9154
9155 WHEN 'ALLOC_TO_THIRD_DIST_ID' THEN
9156 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
9157 g_rec_lines.array_alloct_dist_id_num_3(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9158 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9159 g_rec_lines.array_alloct_dist_id_char_3(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9160 END IF;
9161
9162 WHEN 'ALLOC_TO_FOURTH_DIST_ID' THEN
9163 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
9164 g_rec_lines.array_alloct_dist_id_num_4(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9165 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9166 g_rec_lines.array_alloct_dist_id_char_4(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9167 END IF;
9168
9169 WHEN 'ALLOC_TO_FIFTH_DIST_ID' THEN
9170 IF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
9171 g_rec_lines.array_alloct_dist_id_num_5(g_LineNumber) := p_rec_acct_attrs.array_num_value(i);
9172 ELSIF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9173 g_rec_lines.array_alloct_dist_id_char_5(g_LineNumber) := p_rec_acct_attrs.array_char_value(i);
9174 END IF;
9175 --
9176 -- End of Allocation Attributes
9177 --
9178
9179
9180 ELSE NULL;
9181 END CASE;
9182
9183 -- 5162408 log error for attribute
9184 IF l_attr_error IS NOT NULL THEN
9185 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
9186 xla_accounting_err_pkg.build_message
9187 (p_appli_s_name => 'XLA'
9188 ,p_msg_name => l_attr_error
9189 ,p_token_1 => 'ACCT_ATTR_NAME'
9190 ,p_value_1 => XLA_AE_SOURCES_PKG.GetAccountingSourceName
9191 (p_rec_acct_attrs.array_acct_attr_code(i))
9192 ,p_token_2 => 'LINE_TYPE_NAME'
9193 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
9194 g_accounting_line.component_type
9195 , g_accounting_line.accounting_line_code
9196 , g_accounting_line.accounting_line_type_code
9197 , g_accounting_line.accounting_line_appl_id
9198 , g_accounting_line.amb_context_code
9199 , g_accounting_line.entity_code
9200 , g_accounting_line.event_class_code
9201 )
9202 ,p_token_3 => 'OWNER'
9203 ,p_value_3 => xla_lookups_pkg.get_meaning(
9204 'XLA_OWNER_TYPE'
9205 , g_rec_lines.array_accounting_line_type(g_LineNumber)
9206 )
9207 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9208 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9209 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
9210 END IF;
9211
9212 end loop;
9213
9214 EXCEPTION
9215 WHEN xla_exceptions_pkg.application_exception THEN
9216 RAISE;
9217 WHEN OTHERS THEN
9218 xla_exceptions_pkg.raise_message
9219 (p_location => 'XLA_AE_HEADER_PKG.SetLineAcctAttrs');
9220 --
9221 end SetLineAcctAttrs;
9222
9223 /*======================================================================+
9224 | |
9225 | Public Procedure |
9226 | |
9227 | |
9228 +======================================================================*/
9229 PROCEDURE SetAcctReversalAttrs
9230 (p_event_id IN NUMBER
9231 ,p_rec_acct_attrs IN XLA_AE_LINES_PKG.t_rec_acct_attrs
9232 ,p_calculate_acctd_flag IN VARCHAR2
9233 ,p_calculate_g_l_flag IN VARCHAR2) IS
9234
9235 l_sys_distribution_type VARCHAR2(30);
9236 l_acc_reversal_option VARCHAR2(30);
9237 l_distribution_id_char_1 VARCHAR2(80);
9238 l_distribution_id_char_2 VARCHAR2(80);
9239 l_distribution_id_char_3 VARCHAR2(80);
9240 l_distribution_id_char_4 VARCHAR2(80);
9241 l_distribution_id_char_5 VARCHAR2(80);
9242 l_distribution_id_num_1 NUMBER;
9243 l_distribution_id_num_2 NUMBER;
9244 l_distribution_id_num_3 NUMBER;
9245 l_distribution_id_num_4 NUMBER;
9246 l_distribution_id_num_5 NUMBER;
9247 l_rev_dist_id_char_1 VARCHAR2(30);
9248 l_rev_dist_id_char_2 VARCHAR2(30);
9249 l_rev_dist_id_char_3 VARCHAR2(30);
9250 l_rev_dist_id_char_4 VARCHAR2(30);
9251 l_rev_dist_id_char_5 VARCHAR2(30);
9252 l_rev_dist_id_num_1 NUMBER;
9253 l_rev_dist_id_num_2 NUMBER;
9254 l_rev_dist_id_num_3 NUMBER;
9255 l_rev_dist_id_num_4 NUMBER;
9256 l_rev_dist_id_num_5 NUMBER;
9257 l_rev_dist_type VARCHAR2(30);
9258 l_actual_upg_option VARCHAR2(30);
9259 l_actual_upg_dr_ccid NUMBER;
9260 l_actual_upg_cr_ccid NUMBER;
9261 l_actual_upg_dr_entered_amt NUMBER;
9262 l_actual_upg_cr_entered_amt NUMBER;
9263 l_actual_upg_dr_entered_curr VARCHAR2(30);
9264 l_actual_upg_cr_entered_curr VARCHAR2(30);
9265 l_actual_upg_dr_ledger_amt NUMBER;
9266 l_actual_upg_cr_ledger_amt NUMBER;
9267 l_actual_upg_dr_acct_class VARCHAR2(30);
9268 l_actual_upg_cr_acct_class VARCHAR2(30);
9269 l_actual_upg_dr_xrate NUMBER;
9270 l_actual_upg_dr_xrate_type VARCHAR2(30);
9271 l_actual_upg_dr_xdate DATE;
9272 l_actual_upg_cr_xrate NUMBER;
9273 l_actual_upg_cr_xrate_type VARCHAR2(30);
9274 l_actual_upg_cr_xdate DATE;
9275 l_enc_upg_option VARCHAR2(30);
9276 l_enc_upg_dr_ccid NUMBER;
9277 l_enc_upg_cr_ccid NUMBER;
9278 l_upg_dr_enc_type_id NUMBER;
9279 l_upg_cr_enc_type_id NUMBER;
9280 l_enc_upg_dr_entered_amt NUMBER;
9281 l_enc_upg_cr_entered_amt NUMBER;
9282 l_enc_upg_dr_entered_curr VARCHAR2(30);
9283 l_enc_upg_cr_entered_curr VARCHAR2(30);
9284 l_enc_upg_dr_ledger_amt NUMBER;
9285 l_enc_upg_cr_ledger_amt NUMBER;
9286 l_enc_upg_dr_acct_class VARCHAR2(30);
9287 l_enc_upg_cr_acct_class VARCHAR2(30);
9288 l_gl_date DATE;
9289
9290 l_upg_party_type VARCHAR2(1); -- 5845547
9291 l_upg_party_id NUMBER; -- 5845547
9292 l_upg_party_site_id NUMBER; -- 5845547
9293
9294
9295 l_tax_line_ref NUMBER(15,0); --7159711
9296 l_tax_summary_line_ref NUMBER(15,0); --7159711
9297 l_tax_rec_nrec_dist_ref NUMBER(15,0); --7159711
9298
9299
9300 l_log_module VARCHAR2(240);
9301
9302 BEGIN
9303 IF g_log_enabled THEN
9304 l_log_module := C_DEFAULT_MODULE||'.SetAcctReversalAttrs';
9305 END IF;
9306
9307 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9308 trace
9309 (p_msg => 'BEGIN of SetAcctReversalAttrs'
9310 ,p_level => C_LEVEL_PROCEDURE
9311 ,p_module => l_log_module);
9312 END IF;
9313
9314 FOR i IN 1..p_rec_acct_attrs.array_acct_attr_code.COUNT LOOP
9315 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
9316 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9317 trace(p_msg => 'Loop count = '||i||
9318 ' (char) : '||p_rec_acct_attrs.array_acct_attr_code(i)||
9319 ' = '||p_rec_acct_attrs.array_char_value(i)
9320 ,p_level => C_LEVEL_STATEMENT
9321 ,p_module => l_log_module);
9322 ELSIF p_rec_acct_attrs.array_date_value.EXISTS(i) THEN
9323 trace(p_msg => 'Loop count = '||i||
9324 ' (date) : '||p_rec_acct_attrs.array_acct_attr_code(i)||
9325 ' = '||p_rec_acct_attrs.array_date_value(i)
9326 ,p_level => C_LEVEL_STATEMENT
9327 ,p_module => l_log_module);
9328 ELSE
9329 trace(p_msg => 'Loop count = '||i||
9330 ' (num) : '||p_rec_acct_attrs.array_acct_attr_code(i)||
9331 ' = '||p_rec_acct_attrs.array_num_value(i)
9332 ,p_level => C_LEVEL_STATEMENT
9333 ,p_module => l_log_module);
9334 END IF;
9335
9336 END IF;
9337
9338 CASE p_rec_acct_attrs.array_acct_attr_code(i)
9339
9340 WHEN 'GL_DATE' THEN
9341 l_gl_date := p_rec_acct_attrs.array_date_value(i);
9342
9343 WHEN 'DISTRIBUTION_TYPE' THEN
9344 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9345 l_sys_distribution_type := p_rec_acct_attrs.array_char_value(i);
9346 ELSE
9347 l_sys_distribution_type := p_rec_acct_attrs.array_num_value(i);
9348 END IF;
9349
9350 WHEN 'ACCOUNTING_REVERSAL_OPTION' THEN
9351 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9352 l_acc_reversal_option := p_rec_acct_attrs.array_char_value(i);
9353 ELSE
9354 l_acc_reversal_option := p_rec_acct_attrs.array_num_value(i);
9355 END IF;
9356
9357 WHEN 'DISTRIBUTION_IDENTIFIER_1' THEN
9358 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9359 l_distribution_id_char_1 := p_rec_acct_attrs.array_char_value(i);
9360 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
9361 l_distribution_id_num_1 := p_rec_acct_attrs.array_num_value(i);
9362 END IF;
9363
9364 WHEN 'DISTRIBUTION_IDENTIFIER_2' THEN
9365 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9366 l_distribution_id_char_2 := p_rec_acct_attrs.array_char_value(i);
9367 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
9368 l_distribution_id_num_2 := p_rec_acct_attrs.array_num_value(i);
9369 END IF;
9370
9371 WHEN 'DISTRIBUTION_IDENTIFIER_3' THEN
9372 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9373 l_distribution_id_char_3 := p_rec_acct_attrs.array_char_value(i);
9374 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
9375 l_distribution_id_num_3 := p_rec_acct_attrs.array_num_value(i);
9376 END IF;
9377
9378 WHEN 'DISTRIBUTION_IDENTIFIER_4' THEN
9379 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9380 l_distribution_id_char_4 := p_rec_acct_attrs.array_char_value(i);
9381 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
9382 l_distribution_id_num_4 := p_rec_acct_attrs.array_num_value(i);
9383 END IF;
9384
9385 WHEN 'DISTRIBUTION_IDENTIFIER_5' THEN
9386 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9387 l_distribution_id_char_5 := p_rec_acct_attrs.array_char_value(i);
9388 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
9389 l_distribution_id_num_5 := p_rec_acct_attrs.array_num_value(i);
9390 END IF;
9391
9392 WHEN 'REVERSED_DISTRIBUTION_ID1' THEN
9393 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9394 l_rev_dist_id_char_1 := p_rec_acct_attrs.array_char_value(i);
9395 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
9396 l_rev_dist_id_num_1 := p_rec_acct_attrs.array_num_value(i);
9397 END IF;
9398
9399 WHEN 'REVERSED_DISTRIBUTION_ID2' THEN
9400 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9401 l_rev_dist_id_char_2 := p_rec_acct_attrs.array_char_value(i);
9402 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
9403 l_rev_dist_id_num_2 := p_rec_acct_attrs.array_num_value(i);
9404 END IF;
9405
9406 WHEN 'REVERSED_DISTRIBUTION_ID3' THEN
9407 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9408 l_rev_dist_id_char_3 := p_rec_acct_attrs.array_char_value(i);
9409 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
9410 l_rev_dist_id_num_3 := p_rec_acct_attrs.array_num_value(i);
9411 END IF;
9412
9413 WHEN 'REVERSED_DISTRIBUTION_ID4' THEN
9414 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9415 l_rev_dist_id_char_4 := p_rec_acct_attrs.array_char_value(i);
9416 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
9417 l_rev_dist_id_num_4 := p_rec_acct_attrs.array_num_value(i);
9418 END IF;
9419
9420 WHEN 'REVERSED_DISTRIBUTION_ID5' THEN
9421 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9422 l_rev_dist_id_char_5 := p_rec_acct_attrs.array_char_value(i);
9423 ELSIF p_rec_acct_attrs.array_num_value.EXISTS(i) THEN
9424 l_rev_dist_id_num_5 := p_rec_acct_attrs.array_num_value(i);
9425 END IF;
9426
9427 WHEN 'REVERSED_DISTRIBUTION_TYPE' THEN
9428 IF p_rec_acct_attrs.array_char_value.EXISTS(i) THEN
9429 l_rev_dist_type := p_rec_acct_attrs.array_char_value(i);
9430 ELSE
9431 l_rev_dist_type := p_rec_acct_attrs.array_num_value(i);
9432 END IF;
9433 --
9434 -- Upgrade attributes
9435 --
9436 WHEN 'ACTUAL_UPG_OPTION' THEN
9437 l_actual_upg_option := p_rec_acct_attrs.array_char_value(i);
9438
9439 WHEN 'ACTUAL_UPG_DR_CCID' THEN
9440 l_actual_upg_dr_ccid := p_rec_acct_attrs.array_num_value(i);
9441
9442 WHEN 'ACTUAL_UPG_CR_CCID' THEN
9443 l_actual_upg_cr_ccid := p_rec_acct_attrs.array_num_value(i);
9444
9445 WHEN 'ACTUAL_UPG_DR_ENTERED_AMT' THEN
9446 l_actual_upg_dr_entered_amt := p_rec_acct_attrs.array_num_value(i);
9447
9448 WHEN 'ACTUAL_UPG_CR_ENTERED_AMT' THEN
9449 l_actual_upg_cr_entered_amt := p_rec_acct_attrs.array_num_value(i);
9450
9451 WHEN 'ACTUAL_UPG_DR_ENTERED_CURR' THEN
9452 l_actual_upg_dr_entered_curr := p_rec_acct_attrs.array_char_value(i);
9453
9454 WHEN 'ACTUAL_UPG_CR_ENTERED_CURR' THEN
9455 l_actual_upg_cr_entered_curr := p_rec_acct_attrs.array_char_value(i);
9456
9457 WHEN 'ACTUAL_UPG_DR_LEDGER_AMT' THEN
9458 l_actual_upg_dr_ledger_amt := p_rec_acct_attrs.array_num_value(i);
9459
9460 WHEN 'ACTUAL_UPG_CR_LEDGER_AMT' THEN
9461 l_actual_upg_cr_ledger_amt := p_rec_acct_attrs.array_num_value(i);
9462
9463 WHEN 'ACTUAL_UPG_DR_ACCT_CLASS' THEN
9464 l_actual_upg_dr_acct_class := p_rec_acct_attrs.array_char_value(i);
9465
9466 WHEN 'ACTUAL_UPG_CR_ACCT_CLASS' THEN
9467 l_actual_upg_cr_acct_class := p_rec_acct_attrs.array_char_value(i);
9468
9469 WHEN 'ACTUAL_UPG_DR_XRATE' THEN
9470 l_actual_upg_dr_xrate := p_rec_acct_attrs.array_num_value(i);
9471
9472 WHEN 'ACTUAL_UPG_DR_XRATE_TYPE' THEN
9473 l_actual_upg_dr_xrate_type := p_rec_acct_attrs.array_char_value(i);
9474
9475 WHEN 'ACTUAL_UPG_DR_XDATE' THEN
9476 l_actual_upg_dr_xdate := p_rec_acct_attrs.array_date_value(i);
9477
9478 WHEN 'ACTUAL_UPG_CR_XRATE' THEN
9479 l_actual_upg_cr_xrate := p_rec_acct_attrs.array_num_value(i);
9480
9481 WHEN 'ACTUAL_UPG_CR_XRATE_TYPE' THEN
9482 l_actual_upg_cr_xrate_type := p_rec_acct_attrs.array_char_value(i);
9483
9484 WHEN 'ACTUAL_UPG_CR_XDATE' THEN
9485 l_actual_upg_cr_xdate := p_rec_acct_attrs.array_date_value(i);
9486
9487 WHEN 'ENC_UPG_OPTION' THEN
9488 l_enc_upg_option := p_rec_acct_attrs.array_char_value(i);
9489
9490 WHEN 'ENC_UPG_DR_CCID' THEN
9491 l_enc_upg_dr_ccid := p_rec_acct_attrs.array_num_value(i);
9492
9493 WHEN 'ENC_UPG_CR_CCID' THEN
9494 l_enc_upg_cr_ccid := p_rec_acct_attrs.array_num_value(i);
9495
9496 WHEN 'UPG_DR_ENC_TYPE_ID' THEN
9497 l_upg_dr_enc_type_id := p_rec_acct_attrs.array_num_value(i);
9498
9499 WHEN 'UPG_CR_ENC_TYPE_ID' THEN
9500 l_upg_cr_enc_type_id := p_rec_acct_attrs.array_num_value(i);
9501
9502 WHEN 'ENC_UPG_DR_ENTERED_AMT' THEN
9503 l_enc_upg_dr_entered_amt := p_rec_acct_attrs.array_num_value(i);
9504
9505 WHEN 'ENC_UPG_CR_ENTERED_AMT' THEN
9506 l_enc_upg_cr_entered_amt := p_rec_acct_attrs.array_num_value(i);
9507
9508 WHEN 'ENC_UPG_DR_ENTERED_CURR' THEN
9509 l_enc_upg_dr_entered_curr := p_rec_acct_attrs.array_char_value(i);
9510
9511 WHEN 'ENC_UPG_CR_ENTERED_CURR' THEN
9512 l_enc_upg_cr_entered_curr := p_rec_acct_attrs.array_char_value(i);
9513
9514 WHEN 'ENC_UPG_DR_LEDGER_AMT' THEN
9515 l_enc_upg_dr_ledger_amt := p_rec_acct_attrs.array_num_value(i);
9516
9517 WHEN 'ENC_UPG_CR_LEDGER_AMT' THEN
9518 l_enc_upg_cr_ledger_amt := p_rec_acct_attrs.array_num_value(i);
9519
9520 WHEN 'ENC_UPG_DR_ACCT_CLASS' THEN
9521 l_enc_upg_dr_acct_class := p_rec_acct_attrs.array_char_value(i);
9522
9523 WHEN 'ENC_UPG_CR_ACCT_CLASS' THEN
9524 l_enc_upg_cr_acct_class := p_rec_acct_attrs.array_char_value(i);
9525 -- 5845547 for reversal
9526 WHEN 'UPG_PARTY_TYPE' THEN
9527 l_upg_party_type := p_rec_acct_attrs.array_char_value(i);
9528
9529 WHEN 'UPG_PARTY_ID' THEN
9530 l_upg_party_id := p_rec_acct_attrs.array_num_value(i);
9531
9532 WHEN 'UPG_PARTY_SITE_ID' THEN
9533 l_upg_party_site_id := p_rec_acct_attrs.array_num_value(i);
9534 --
9535 -- end upgrade attributes
9536 --
9537
9538 -- bug 7159711
9539 WHEN 'TAX_LINE_REF_ID' THEN
9540 l_tax_line_ref := p_rec_acct_attrs.array_num_value(i);
9541
9542 WHEN 'TAX_SUMMARY_LINE_REF_ID' THEN
9543 l_tax_summary_line_ref := p_rec_acct_attrs.array_num_value(i);
9544
9545 WHEN 'TAX_REC_NREC_DIST_REF_ID' THEN
9546 l_tax_rec_nrec_dist_ref := p_rec_acct_attrs.array_num_value(i);
9547
9548
9549 ELSE null;
9550 END CASE;
9551 END LOOP;
9552
9553 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
9554 trace
9555 (p_msg => 'l_actual_upg_option = '||l_actual_upg_option
9556 ,p_level => C_LEVEL_STATEMENT
9557 ,p_module => l_log_module);
9558 trace
9559 (p_msg => 'l_enc_upg_option = '||l_enc_upg_option
9560 ,p_level => C_LEVEL_STATEMENT
9561 ,p_module => l_log_module);
9562 END IF;
9563
9564 IF xla_accounting_cache_pkg.GetValueChar
9565 (p_source_code => 'LEDGER_CATEGORY_CODE'
9566 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('SECONDARY')
9567 OR (NVL(l_actual_upg_option,'N') = 'N' OR NVL(l_enc_upg_option,'N') = 'N')
9568 THEN
9569
9570 SetNewLine;
9571
9572 set_ae_header_id (p_ae_header_id => p_event_id,
9573 p_header_num => 0); -- 4262811 by default all zero. 1,2,.. are used by Accl Reversal or MPA.
9574
9575 g_rec_lines.array_balance_type_code(g_LineNumber) := 'X';
9576
9577 g_rec_lines.array_ledger_id(g_LineNumber) :=
9578 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9579
9580 g_rec_lines.array_event_number(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_number;
9581
9582 g_rec_lines.array_entity_id(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id;
9583
9584 g_rec_lines.array_reversal_code(g_LineNumber) := 'DUMMY_LR';
9585
9586 ------------------------------------------------------------------------------------------
9587 -- 5055878 Handle line reversal method option - SIDE and SIGN
9588 ------------------------------------------------------------------------------------------
9589 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE' THEN
9590 g_rec_lines.array_switch_side_flag(g_LineNumber) := 'Y';
9591 ELSE
9592 g_rec_lines.array_switch_side_flag(g_LineNumber) := 'N';
9593 END IF;
9594 ------------------------------------------------------------------------------------------
9595
9596 g_rec_lines.array_sys_distribution_type(g_LineNumber) := l_sys_distribution_type;
9597 g_rec_lines.array_acc_reversal_option(g_LineNumber) := l_acc_reversal_option;
9598 g_rec_lines.array_distribution_id_char_1(g_LineNumber) := l_distribution_id_char_1;
9599 g_rec_lines.array_distribution_id_num_1(g_LineNumber) := l_distribution_id_num_1;
9600 g_rec_lines.array_distribution_id_char_2(g_LineNumber) := l_distribution_id_char_2;
9601 g_rec_lines.array_distribution_id_num_2(g_LineNumber) := l_distribution_id_num_2;
9602 g_rec_lines.array_distribution_id_char_3(g_LineNumber) := l_distribution_id_char_3;
9603 g_rec_lines.array_distribution_id_num_3(g_LineNumber) := l_distribution_id_num_3;
9604 g_rec_lines.array_distribution_id_char_4(g_LineNumber) := l_distribution_id_char_4;
9605 g_rec_lines.array_distribution_id_num_4(g_LineNumber) := l_distribution_id_num_4;
9606 g_rec_lines.array_distribution_id_char_5(g_LineNumber) := l_distribution_id_char_5;
9607 g_rec_lines.array_distribution_id_num_5(g_LineNumber) := l_distribution_id_num_5;
9608 g_rec_lines.array_rev_dist_id_char_1(g_LineNumber) := l_rev_dist_id_char_1;
9609 g_rec_lines.array_rev_dist_id_num_1(g_LineNumber) := l_rev_dist_id_num_1;
9610 g_rec_lines.array_rev_dist_id_char_2(g_LineNumber) := l_rev_dist_id_char_2;
9611 g_rec_lines.array_rev_dist_id_num_2(g_LineNumber) := l_rev_dist_id_num_2;
9612 g_rec_lines.array_rev_dist_id_char_3(g_LineNumber) := l_rev_dist_id_char_3;
9613 g_rec_lines.array_rev_dist_id_num_3(g_LineNumber) := l_rev_dist_id_num_3;
9614 g_rec_lines.array_rev_dist_id_char_4(g_LineNumber) := l_rev_dist_id_char_4;
9615 g_rec_lines.array_rev_dist_id_num_4(g_LineNumber) := l_rev_dist_id_num_4;
9616 g_rec_lines.array_rev_dist_id_char_5(g_LineNumber) := l_rev_dist_id_char_5;
9617 g_rec_lines.array_rev_dist_id_num_5(g_LineNumber) := l_rev_dist_id_num_5;
9618 g_rec_lines.array_rev_dist_type(g_LineNumber) := l_rev_dist_type;
9619 g_rec_lines.array_gl_date(g_LineNumber) := l_gl_date; --5194849
9620
9621 g_rec_lines.array_tax_line_ref(g_LineNumber) := l_tax_line_ref; -- Bug7159711
9622 g_rec_lines.array_tax_summary_line_ref(g_LineNumber) := l_tax_summary_line_ref; -- Bug7159711
9623 g_rec_lines.array_tax_rec_nrec_dist_ref(g_LineNumber) := l_tax_rec_nrec_dist_ref; -- Bug7159711
9624
9625
9626 --
9627 -- Validate the distribution links for the extract line
9628 -- if the validation fails, mark the dummy line as 'DUMMY_LR_ERROR'
9629 --
9630 IF NOT ValidateRevLinks THEN
9631 g_rec_lines.array_reversal_code(g_LineNumber) := 'DUMMY_LR_ERROR';
9632 END IF;
9633 END IF;
9634
9635
9636 IF xla_accounting_cache_pkg.GetValueChar
9637 (p_source_code => 'LEDGER_CATEGORY_CODE'
9638 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9639 AND (NVL(l_actual_upg_option,'N') = 'Y')
9640 THEN
9641
9642 SetNewLine;
9643
9644 set_ae_header_id
9645 (p_ae_header_id => p_event_id
9646 ,p_header_num => 0);
9647
9648 g_rec_lines.array_gl_date(g_LineNumber) := l_gl_date;
9649 g_rec_lines.array_ledger_id(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9650 g_rec_lines.array_event_number(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_number;
9651 g_rec_lines.array_reversal_code(g_LineNumber) := 'REVERSAL';
9652 g_rec_lines.array_entity_id(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id;
9653 g_rec_lines.array_balance_type_code(g_LineNumber) := 'A';
9654 g_rec_lines.array_calculate_acctd_flag(g_LineNumber) := p_calculate_acctd_flag;
9655 g_rec_lines.array_calculate_g_l_flag(g_LineNumber) := p_calculate_g_l_flag;
9656
9657 g_rec_lines.array_sys_distribution_type(g_LineNumber) := l_sys_distribution_type;
9658 g_rec_lines.array_distribution_id_char_1(g_LineNumber) := l_distribution_id_char_1;
9659 g_rec_lines.array_distribution_id_num_1(g_LineNumber) := l_distribution_id_num_1;
9660 g_rec_lines.array_distribution_id_char_2(g_LineNumber) := l_distribution_id_char_2;
9661 g_rec_lines.array_distribution_id_num_2(g_LineNumber) := l_distribution_id_num_2;
9662 g_rec_lines.array_distribution_id_char_3(g_LineNumber) := l_distribution_id_char_3;
9663 g_rec_lines.array_distribution_id_num_3(g_LineNumber) := l_distribution_id_num_3;
9664 g_rec_lines.array_distribution_id_char_4(g_LineNumber) := l_distribution_id_char_4;
9665 g_rec_lines.array_distribution_id_num_4(g_LineNumber) := l_distribution_id_num_4;
9666 g_rec_lines.array_distribution_id_char_5(g_LineNumber) := l_distribution_id_char_5;
9667 g_rec_lines.array_distribution_id_num_5(g_LineNumber) := l_distribution_id_num_5;
9668 g_rec_lines.array_rev_dist_id_char_1(g_LineNumber) := l_rev_dist_id_char_1;
9669 g_rec_lines.array_rev_dist_id_num_1(g_LineNumber) := l_rev_dist_id_num_1;
9670 g_rec_lines.array_rev_dist_id_char_2(g_LineNumber) := l_rev_dist_id_char_2;
9671 g_rec_lines.array_rev_dist_id_num_2(g_LineNumber) := l_rev_dist_id_num_2;
9672 g_rec_lines.array_rev_dist_id_char_3(g_LineNumber) := l_rev_dist_id_char_3;
9673 g_rec_lines.array_rev_dist_id_num_3(g_LineNumber) := l_rev_dist_id_num_3;
9674 g_rec_lines.array_rev_dist_id_char_4(g_LineNumber) := l_rev_dist_id_char_4;
9675 g_rec_lines.array_rev_dist_id_num_4(g_LineNumber) := l_rev_dist_id_num_4;
9676 g_rec_lines.array_rev_dist_id_char_5(g_LineNumber) := l_rev_dist_id_char_5;
9677 g_rec_lines.array_rev_dist_id_num_5(g_LineNumber) := l_rev_dist_id_num_5;
9678 g_rec_lines.array_rev_dist_type(g_LineNumber) := l_rev_dist_type;
9679
9680 g_rec_lines.array_entered_amount(g_LineNumber) := l_actual_upg_dr_entered_amt;
9681 g_rec_lines.array_currency_code(g_LineNumber) := l_actual_upg_dr_entered_curr;
9682 g_rec_lines.array_ledger_amount(g_LineNumber) := l_actual_upg_dr_ledger_amt;
9683 g_rec_lines.array_accounting_class(g_LineNumber) := l_actual_upg_dr_acct_class;
9684 g_rec_lines.array_curr_conversion_rate(g_LineNumber) := l_actual_upg_dr_xrate;
9685 g_rec_lines.array_curr_conversion_date(g_LineNumber) := l_actual_upg_dr_xdate;
9686 g_rec_lines.array_curr_conversion_type(g_LineNumber) := l_actual_upg_dr_xrate_type;
9687
9688 -- 5845547 upgrade party attributes
9689 g_rec_lines.array_party_type_code(g_LineNumber) := l_upg_party_type;
9690 g_rec_lines.array_party_id(g_LineNumber) := l_upg_party_id;
9691 g_rec_lines.array_party_site_id(g_LineNumber) := l_upg_party_site_id;
9692
9693 g_rec_lines.array_natural_side_code(g_LineNumber) := 'D';
9694 g_rec_lines.array_acct_entry_type_code(g_LineNumber) := 'A';
9695 g_rec_lines.array_switch_side_flag(g_LineNumber) := 'Y';
9696 g_rec_lines.array_merge_duplicate_code(g_LineNumber) := 'N';
9697 g_rec_lines.array_gl_transfer_mode(g_LineNumber) := 'S';
9698
9699 g_rec_lines.array_currency_mau(g_LineNumber) :=
9700 xla_accounting_cache_pkg.GetCurrencyMau(g_rec_lines.array_currency_code(g_LineNumber));
9701
9702 xla_ae_lines_pkg.set_ccid(
9703 p_code_combination_id => l_actual_upg_dr_ccid
9704 , p_value_type_code => 'S' --l_adr_value_type_code
9705 , p_transaction_coa_id => NULL --l_adr_transaction_coa_id
9706 , p_accounting_coa_id => NULL --l_adr_accounting_coa_id
9707 , p_adr_code => NULL --'SS_TEST'
9708 , p_adr_type_code => NULL --'C'
9709 , p_component_type => g_accounting_line.component_type --l_component_type
9710 , p_component_code => g_accounting_line.accounting_line_code --l_component_code
9711 , p_component_type_code => g_accounting_line.accounting_line_type_code --l_component_type_code
9712 , p_component_appl_id => g_accounting_line.accounting_line_appl_id --l_component_appl_id
9713 , p_amb_context_code => g_accounting_line.amb_context_code --l_amb_context_code
9714 , p_side => 'NA'
9715 );
9716
9717 SetDebitCreditAmounts;
9718
9719 SetNewLine;
9720
9721 set_ae_header_id
9722 (p_ae_header_id => p_event_id
9723 ,p_header_num => 0);
9724
9725 g_rec_lines.array_gl_date(g_LineNumber) := l_gl_date;
9726 g_rec_lines.array_ledger_id(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9727 g_rec_lines.array_event_number(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_number;
9728 g_rec_lines.array_reversal_code(g_LineNumber) := 'REVERSAL';
9729 g_rec_lines.array_entity_id(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id;
9730 g_rec_lines.array_balance_type_code(g_LineNumber) := 'A';
9731 g_rec_lines.array_calculate_acctd_flag(g_LineNumber) := p_calculate_acctd_flag;
9732 g_rec_lines.array_calculate_g_l_flag(g_LineNumber) := p_calculate_g_l_flag;
9733
9734 g_rec_lines.array_sys_distribution_type(g_LineNumber) := l_sys_distribution_type;
9735 g_rec_lines.array_distribution_id_char_1(g_LineNumber) := l_distribution_id_char_1;
9736 g_rec_lines.array_distribution_id_num_1(g_LineNumber) := l_distribution_id_num_1;
9737 g_rec_lines.array_distribution_id_char_2(g_LineNumber) := l_distribution_id_char_2;
9738 g_rec_lines.array_distribution_id_num_2(g_LineNumber) := l_distribution_id_num_2;
9739 g_rec_lines.array_distribution_id_char_3(g_LineNumber) := l_distribution_id_char_3;
9740 g_rec_lines.array_distribution_id_num_3(g_LineNumber) := l_distribution_id_num_3;
9741 g_rec_lines.array_distribution_id_char_4(g_LineNumber) := l_distribution_id_char_4;
9742 g_rec_lines.array_distribution_id_num_4(g_LineNumber) := l_distribution_id_num_4;
9743 g_rec_lines.array_distribution_id_char_5(g_LineNumber) := l_distribution_id_char_5;
9744 g_rec_lines.array_distribution_id_num_5(g_LineNumber) := l_distribution_id_num_5;
9745 g_rec_lines.array_rev_dist_id_char_1(g_LineNumber) := l_rev_dist_id_char_1;
9746 g_rec_lines.array_rev_dist_id_num_1(g_LineNumber) := l_rev_dist_id_num_1;
9747 g_rec_lines.array_rev_dist_id_char_2(g_LineNumber) := l_rev_dist_id_char_2;
9748 g_rec_lines.array_rev_dist_id_num_2(g_LineNumber) := l_rev_dist_id_num_2;
9749 g_rec_lines.array_rev_dist_id_char_3(g_LineNumber) := l_rev_dist_id_char_3;
9750 g_rec_lines.array_rev_dist_id_num_3(g_LineNumber) := l_rev_dist_id_num_3;
9751 g_rec_lines.array_rev_dist_id_char_4(g_LineNumber) := l_rev_dist_id_char_4;
9752 g_rec_lines.array_rev_dist_id_num_4(g_LineNumber) := l_rev_dist_id_num_4;
9753 g_rec_lines.array_rev_dist_id_char_5(g_LineNumber) := l_rev_dist_id_char_5;
9754 g_rec_lines.array_rev_dist_id_num_5(g_LineNumber) := l_rev_dist_id_num_5;
9755 g_rec_lines.array_rev_dist_type(g_LineNumber) := l_rev_dist_type;
9756
9757 g_rec_lines.array_entered_amount(g_LineNumber) := l_actual_upg_cr_entered_amt;
9758 g_rec_lines.array_currency_code(g_LineNumber) := l_actual_upg_cr_entered_curr;
9759 g_rec_lines.array_ledger_amount(g_LineNumber) := l_actual_upg_cr_ledger_amt;
9760 g_rec_lines.array_accounting_class(g_LineNumber) := l_actual_upg_cr_acct_class;
9761 g_rec_lines.array_curr_conversion_rate(g_LineNumber) := l_actual_upg_cr_xrate;
9762 g_rec_lines.array_curr_conversion_date(g_LineNumber) := l_actual_upg_cr_xdate;
9763 g_rec_lines.array_curr_conversion_type(g_LineNumber) := l_actual_upg_cr_xrate_type;
9764
9765 -- 5845547 upgrade party attributes
9766 g_rec_lines.array_party_type_code(g_LineNumber) := l_upg_party_type;
9767 g_rec_lines.array_party_id(g_LineNumber) := l_upg_party_id;
9768 g_rec_lines.array_party_site_id(g_LineNumber) := l_upg_party_site_id;
9769
9770 g_rec_lines.array_natural_side_code(g_LineNumber) := 'C';
9771 g_rec_lines.array_acct_entry_type_code(g_LineNumber) := 'A';
9772 g_rec_lines.array_switch_side_flag(g_LineNumber) := 'Y';
9773 g_rec_lines.array_merge_duplicate_code(g_LineNumber) := 'N';
9774 g_rec_lines.array_gl_transfer_mode(g_LineNumber) := 'S';
9775
9776 g_rec_lines.array_currency_mau(g_LineNumber) :=
9777 xla_accounting_cache_pkg.GetCurrencyMau(g_rec_lines.array_currency_code(g_LineNumber));
9778
9779 xla_ae_lines_pkg.set_ccid(
9780 p_code_combination_id => l_actual_upg_cr_ccid
9781 , p_value_type_code => 'S' --l_adr_value_type_code
9782 , p_transaction_coa_id => NULL --l_adr_transaction_coa_id
9783 , p_accounting_coa_id => NULL --l_adr_accounting_coa_id
9784 , p_adr_code => NULL --'SS_TEST'
9785 , p_adr_type_code => NULL --'C'
9786 , p_component_type => g_accounting_line.component_type --l_component_type
9787 , p_component_code => g_accounting_line.accounting_line_code --l_component_code
9788 , p_component_type_code => g_accounting_line.accounting_line_type_code --l_component_type_code
9789 , p_component_appl_id => g_accounting_line.accounting_line_appl_id --l_component_appl_id
9790 , p_amb_context_code => g_accounting_line.amb_context_code --l_amb_context_code
9791 , p_side => 'NA'
9792 );
9793
9794 SetDebitCreditAmounts;
9795
9796 --
9797 -- Validate the distribution links for the extract line
9798 -- if the validation fails, mark the dummy line as 'DUMMY_LR_ERROR'
9799 --
9800 -- IF NOT ValidateRevLinks THEN
9801 -- g_rec_lines.array_reversal_code(g_LineNumber) := 'DUMMY_LR_ERROR';
9802 -- END IF;
9803 END IF;
9804
9805 IF xla_accounting_cache_pkg.GetValueChar
9806 (p_source_code => 'LEDGER_CATEGORY_CODE'
9807 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9808 AND (l_enc_upg_option = 'Y')
9809 THEN
9810
9811 IF l_upg_dr_enc_type_id IS NOT NULL THEN
9812 SetNewLine;
9813
9814 set_ae_header_id
9815 (p_ae_header_id => p_event_id
9816 ,p_header_num => 0);
9817
9818 g_rec_lines.array_gl_date(g_LineNumber) := l_gl_date;
9819 g_rec_lines.array_ledger_id(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9820 g_rec_lines.array_event_number(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_number;
9821 g_rec_lines.array_reversal_code(g_LineNumber) := 'REVERSAL';
9822 g_rec_lines.array_entity_id(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id;
9823 g_rec_lines.array_balance_type_code(g_LineNumber) := 'E';
9824 g_rec_lines.array_calculate_acctd_flag(g_LineNumber) := 'N';
9825 g_rec_lines.array_calculate_g_l_flag(g_LineNumber) := 'N';
9826
9827 g_rec_lines.array_sys_distribution_type(g_LineNumber) := l_sys_distribution_type;
9828 g_rec_lines.array_distribution_id_char_1(g_LineNumber) := l_distribution_id_char_1;
9829 g_rec_lines.array_distribution_id_num_1(g_LineNumber) := l_distribution_id_num_1;
9830 g_rec_lines.array_distribution_id_char_2(g_LineNumber) := l_distribution_id_char_2;
9831 g_rec_lines.array_distribution_id_num_2(g_LineNumber) := l_distribution_id_num_2;
9832 g_rec_lines.array_distribution_id_char_3(g_LineNumber) := l_distribution_id_char_3;
9833 g_rec_lines.array_distribution_id_num_3(g_LineNumber) := l_distribution_id_num_3;
9834 g_rec_lines.array_distribution_id_char_4(g_LineNumber) := l_distribution_id_char_4;
9835 g_rec_lines.array_distribution_id_num_4(g_LineNumber) := l_distribution_id_num_4;
9836 g_rec_lines.array_distribution_id_char_5(g_LineNumber) := l_distribution_id_char_5;
9837 g_rec_lines.array_distribution_id_num_5(g_LineNumber) := l_distribution_id_num_5;
9838 g_rec_lines.array_rev_dist_id_char_1(g_LineNumber) := l_rev_dist_id_char_1;
9839 g_rec_lines.array_rev_dist_id_num_1(g_LineNumber) := l_rev_dist_id_num_1;
9840 g_rec_lines.array_rev_dist_id_char_2(g_LineNumber) := l_rev_dist_id_char_2;
9841 g_rec_lines.array_rev_dist_id_num_2(g_LineNumber) := l_rev_dist_id_num_2;
9842 g_rec_lines.array_rev_dist_id_char_3(g_LineNumber) := l_rev_dist_id_char_3;
9843 g_rec_lines.array_rev_dist_id_num_3(g_LineNumber) := l_rev_dist_id_num_3;
9844 g_rec_lines.array_rev_dist_id_char_4(g_LineNumber) := l_rev_dist_id_char_4;
9845 g_rec_lines.array_rev_dist_id_num_4(g_LineNumber) := l_rev_dist_id_num_4;
9846 g_rec_lines.array_rev_dist_id_char_5(g_LineNumber) := l_rev_dist_id_char_5;
9847 g_rec_lines.array_rev_dist_id_num_5(g_LineNumber) := l_rev_dist_id_num_5;
9848 g_rec_lines.array_rev_dist_type(g_LineNumber) := l_rev_dist_type;
9849
9850 g_rec_lines.array_entered_amount(g_LineNumber) := l_enc_upg_dr_entered_amt;
9851 g_rec_lines.array_currency_code(g_LineNumber) := l_enc_upg_dr_entered_curr;
9852 g_rec_lines.array_ledger_amount(g_LineNumber) := l_enc_upg_dr_ledger_amt;
9853 g_rec_lines.array_accounting_class(g_LineNumber) := l_enc_upg_dr_acct_class;
9854 g_rec_lines.array_encumbrance_type_id(g_LineNumber) := l_upg_dr_enc_type_id; -- 5845547
9855
9856 -- 5845547 upgrade party attributes
9857 g_rec_lines.array_party_type_code(g_LineNumber) := l_upg_party_type;
9858 g_rec_lines.array_party_id(g_LineNumber) := l_upg_party_id;
9859 g_rec_lines.array_party_site_id(g_LineNumber) := l_upg_party_site_id;
9860
9861 g_rec_lines.array_natural_side_code(g_LineNumber) := 'D';
9862 g_rec_lines.array_acct_entry_type_code(g_LineNumber) := 'E';
9863 g_rec_lines.array_switch_side_flag(g_LineNumber) := 'Y';
9864 g_rec_lines.array_merge_duplicate_code(g_LineNumber) := 'N';
9865 g_rec_lines.array_gl_transfer_mode(g_LineNumber) := 'S';
9866
9867 g_rec_lines.array_currency_mau(g_LineNumber) :=
9868 xla_accounting_cache_pkg.GetCurrencyMau(g_rec_lines.array_currency_code(g_LineNumber));
9869
9870 xla_ae_lines_pkg.set_ccid(
9871 p_code_combination_id => l_enc_upg_dr_ccid
9872 , p_value_type_code => 'S' --l_adr_value_type_code
9873 , p_transaction_coa_id => NULL --l_adr_transaction_coa_id
9874 , p_accounting_coa_id => NULL --l_adr_accounting_coa_id
9875 , p_adr_code => NULL --'SS_TEST'
9876 , p_adr_type_code => NULL --'C'
9877 , p_component_type => g_accounting_line.component_type --l_component_type
9878 , p_component_code => g_accounting_line.accounting_line_code --l_component_code
9879 , p_component_type_code => g_accounting_line.accounting_line_type_code --l_component_type_code
9880 , p_component_appl_id => g_accounting_line.accounting_line_appl_id --l_component_appl_id
9881 , p_amb_context_code => g_accounting_line.amb_context_code --l_amb_context_code
9882 , p_side => 'NA'
9883 );
9884
9885 SetDebitCreditAmounts;
9886 END IF;
9887
9888 IF l_upg_cr_enc_type_id IS NOT NULL THEN
9889 SetNewLine;
9890
9891 set_ae_header_id
9892 (p_ae_header_id => p_event_id
9893 ,p_header_num => 0);
9894
9895 g_rec_lines.array_gl_date(g_LineNumber) := l_gl_date;
9896 g_rec_lines.array_ledger_id(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9897 g_rec_lines.array_event_number(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_number;
9898 g_rec_lines.array_reversal_code(g_LineNumber) := 'REVERSAL';
9899 g_rec_lines.array_entity_id(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id;
9900 g_rec_lines.array_balance_type_code(g_LineNumber) := 'E';
9901 g_rec_lines.array_calculate_acctd_flag(g_LineNumber) := 'N';
9902 g_rec_lines.array_calculate_g_l_flag(g_LineNumber) := 'N';
9903
9904 g_rec_lines.array_sys_distribution_type(g_LineNumber) := l_sys_distribution_type;
9905 g_rec_lines.array_distribution_id_char_1(g_LineNumber) := l_distribution_id_char_1;
9906 g_rec_lines.array_distribution_id_num_1(g_LineNumber) := l_distribution_id_num_1;
9907 g_rec_lines.array_distribution_id_char_2(g_LineNumber) := l_distribution_id_char_2;
9908 g_rec_lines.array_distribution_id_num_2(g_LineNumber) := l_distribution_id_num_2;
9909 g_rec_lines.array_distribution_id_char_3(g_LineNumber) := l_distribution_id_char_3;
9910 g_rec_lines.array_distribution_id_num_3(g_LineNumber) := l_distribution_id_num_3;
9911 g_rec_lines.array_distribution_id_char_4(g_LineNumber) := l_distribution_id_char_4;
9912 g_rec_lines.array_distribution_id_num_4(g_LineNumber) := l_distribution_id_num_4;
9913 g_rec_lines.array_distribution_id_char_5(g_LineNumber) := l_distribution_id_char_5;
9914 g_rec_lines.array_distribution_id_num_5(g_LineNumber) := l_distribution_id_num_5;
9915 g_rec_lines.array_rev_dist_id_char_1(g_LineNumber) := l_rev_dist_id_char_1;
9916 g_rec_lines.array_rev_dist_id_num_1(g_LineNumber) := l_rev_dist_id_num_1;
9917 g_rec_lines.array_rev_dist_id_char_2(g_LineNumber) := l_rev_dist_id_char_2;
9918 g_rec_lines.array_rev_dist_id_num_2(g_LineNumber) := l_rev_dist_id_num_2;
9919 g_rec_lines.array_rev_dist_id_char_3(g_LineNumber) := l_rev_dist_id_char_3;
9920 g_rec_lines.array_rev_dist_id_num_3(g_LineNumber) := l_rev_dist_id_num_3;
9921 g_rec_lines.array_rev_dist_id_char_4(g_LineNumber) := l_rev_dist_id_char_4;
9922 g_rec_lines.array_rev_dist_id_num_4(g_LineNumber) := l_rev_dist_id_num_4;
9923 g_rec_lines.array_rev_dist_id_char_5(g_LineNumber) := l_rev_dist_id_char_5;
9924 g_rec_lines.array_rev_dist_id_num_5(g_LineNumber) := l_rev_dist_id_num_5;
9925 g_rec_lines.array_rev_dist_type(g_LineNumber) := l_rev_dist_type;
9926
9927 g_rec_lines.array_entered_amount(g_LineNumber) := l_enc_upg_cr_entered_amt;
9928 g_rec_lines.array_currency_code(g_LineNumber) := l_enc_upg_cr_entered_curr;
9929 g_rec_lines.array_ledger_amount(g_LineNumber) := l_enc_upg_cr_ledger_amt;
9930 g_rec_lines.array_accounting_class(g_LineNumber) := l_enc_upg_cr_acct_class;
9931 g_rec_lines.array_encumbrance_type_id(g_LineNumber) := l_upg_cr_enc_type_id; -- 5845547
9932
9933 -- 5845547 upgrade party attributes
9934 g_rec_lines.array_party_type_code(g_LineNumber) := l_upg_party_type;
9935 g_rec_lines.array_party_id(g_LineNumber) := l_upg_party_id;
9936 g_rec_lines.array_party_site_id(g_LineNumber) := l_upg_party_site_id;
9937
9938
9939 g_rec_lines.array_natural_side_code(g_LineNumber) := 'C';
9940 g_rec_lines.array_acct_entry_type_code(g_LineNumber) := 'E';
9941 g_rec_lines.array_switch_side_flag(g_LineNumber) := 'Y';
9942 g_rec_lines.array_merge_duplicate_code(g_LineNumber) := 'N';
9943 g_rec_lines.array_gl_transfer_mode(g_LineNumber) := 'S';
9944
9945 g_rec_lines.array_currency_mau(g_LineNumber) :=
9946 xla_accounting_cache_pkg.GetCurrencyMau(g_rec_lines.array_currency_code(g_LineNumber));
9947
9948 xla_ae_lines_pkg.set_ccid(
9949 p_code_combination_id => l_enc_upg_cr_ccid
9950 , p_value_type_code => 'S' --l_adr_value_type_code
9951 , p_transaction_coa_id => NULL --l_adr_transaction_coa_id
9952 , p_accounting_coa_id => NULL --l_adr_accounting_coa_id
9953 , p_adr_code => NULL --'SS_TEST'
9954 , p_adr_type_code => NULL --'C'
9955 , p_component_type => g_accounting_line.component_type --l_component_type
9956 , p_component_code => g_accounting_line.accounting_line_code --l_component_code
9957 , p_component_type_code => g_accounting_line.accounting_line_type_code --l_component_type_code
9958 , p_component_appl_id => g_accounting_line.accounting_line_appl_id --l_component_appl_id
9959 , p_amb_context_code => g_accounting_line.amb_context_code --l_amb_context_code
9960 , p_side => 'NA'
9961 );
9962
9963 SetDebitCreditAmounts;
9964 END IF;
9965
9966 --
9967 -- Validate the distribution links for the extract line
9968 -- if the validation fails, mark the dummy line as 'DUMMY_LR_ERROR'
9969 --
9970 -- IF NOT ValidateRevLinks THEN
9971 -- g_rec_lines.array_reversal_code(g_LineNumber) := 'DUMMY_LR_ERROR';
9972 -- END IF;
9973 END IF;
9974
9975 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9976 trace
9977 (p_msg => 'END of SetAcctReversalAttrs'
9978 ,p_level => C_LEVEL_PROCEDURE
9979 ,p_module => l_log_module);
9980 END IF;
9981 END SetAcctReversalAttrs;
9982
9983
9984 /*======================================================================+
9985 | |
9986 | Public Procedure |
9987 | |
9988 | |
9989 +======================================================================*/
9990 PROCEDURE SetTrxReversalAttrs
9991 (p_event_id IN NUMBER
9992 ,p_gl_date IN DATE
9993 ,p_trx_reversal_source IN VARCHAR2) IS
9994 l_log_module VARCHAR2(240);
9995 BEGIN
9996 IF g_log_enabled THEN
9997 l_log_module := C_DEFAULT_MODULE||'.SetTrxReversalAttrs';
9998 END IF;
9999
10000 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10001 trace
10002 (p_msg => 'BEGIN of SetTrxReversalAttrs'
10003 ,p_level => C_LEVEL_PROCEDURE
10004 ,p_module => l_log_module);
10005 END IF;
10006
10007 g_temp_line_num := -1;
10008
10009 SetNewLine;
10010
10011 set_ae_header_id (p_ae_header_id => p_event_id,
10012 p_header_num => 0); -- 4262811 by default all zero. 1,2,.. are used by Accl Reversal or MPA.
10013
10014 g_rec_lines.array_balance_type_code(g_LineNumber) := 'X';
10015
10016 g_rec_lines.array_ledger_id(g_LineNumber) :=
10017 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10018
10019 g_rec_lines.array_event_number(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_number;
10020
10021 g_rec_lines.array_entity_id(g_LineNumber) := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id;
10022
10023 g_rec_lines.array_reversal_code(g_LineNumber) := 'DUMMY_TR';
10024
10025 g_rec_lines.array_gl_date(g_LineNumber) := p_gl_date;
10026
10027 ------------------------------------------------------------------------------------------
10028 -- 5055878 Handle transaction reversal method option - SIDE and SIGN
10029 ------------------------------------------------------------------------------------------
10030 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE' THEN
10031 g_rec_lines.array_switch_side_flag(g_LineNumber) := 'Y';
10032 ELSE
10033 g_rec_lines.array_switch_side_flag(g_LineNumber) := 'N';
10034 END IF;
10035 ------------------------------------------------------------------------------------------
10036
10037 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10038 trace
10039 (p_msg => 'END of SetTrxReversalAttrs'
10040 ,p_level => C_LEVEL_PROCEDURE
10041 ,p_module => l_log_module);
10042 END IF;
10043 END SetTrxReversalAttrs;
10044
10045
10046 PROCEDURE CalculateUnroundedAmounts
10047 is
10048 l_log_module VARCHAR2(240);
10049 l_ledger_attrs xla_accounting_cache_pkg.t_array_ledger_attrs;
10050 l_ledger_attrs1 xla_accounting_cache_pkg.t_array_ledger_attrs;
10051 l_primary_ledger_currency VARCHAR2(30):=null;
10052 l_primary_ledger_id NUMBER;
10053 l_secondary_ledger_currency VARCHAR2(30);
10054 l_secondary_ledger_id NUMBER;
10055 l_ledger_id NUMBER;
10056 l_count number;
10057 l_max_ledger_index NUMBER;
10058 l_euro VARCHAR2(30);
10059
10060 /*
10061 type t_array_derive_type table of FND_CURRENCY.derive_type%TYPE index by binary_integer;
10062 l_array_from_derive_type t_array_derive_type;
10063 l_array_to_derive_type t_array_derive_type;
10064 l_array_from_rate xla_ae_journal_entry_pkg.t_array_Num;
10065 l_array_to_rate xla_ae_journal_entry_pkg.t_array_Num;
10066 l_array_from_curr xla_ae_journal_entry_pkg.t_array_V30L;
10067 l_array_to_curr xla_ae_journal_entry_pkg.t_array_V30L;
10068 */
10069
10070 l_array_calculate_amts_flag xla_ae_journal_entry_pkg.t_array_V1L;
10071 l_array_conversion_type xla_ae_journal_entry_pkg.t_array_V30L;
10072 l_array_entered_curr xla_ae_journal_entry_pkg.t_array_V30L;
10073 l_array_conversion_date xla_ae_journal_entry_pkg.t_array_Date;
10074 l_array_conversion_rate xla_ae_journal_entry_pkg.t_array_Num;
10075 l_array_new_rate xla_ae_journal_entry_pkg.t_array_Num;
10076 l_array_new_type xla_ae_journal_entry_pkg.t_array_V30L;
10077 l_array_ledger_id xla_ae_journal_entry_pkg.t_array_Int;
10078 l_array_from_type xla_ae_journal_entry_pkg.t_array_V30L;
10079 l_array_to_type xla_ae_journal_entry_pkg.t_array_V30L;
10080 l_array_primary_type xla_ae_journal_entry_pkg.t_array_V30L;
10081
10082 l_rate NUMBER;
10083 i NUMBER;
10084
10085 cursor csr_lines is
10086 SELECT xal.calculate_acctd_amts_flag
10087 ,xal.currency_conversion_type
10088 ,TRUNC(nvl(xal.currency_conversion_date, xeg.transaction_date))
10089 ,decode(xal.currency_conversion_type, 'User', xal.currency_conversion_rate, -1)
10090 ,xal.currency_code
10091 ,xal.ledger_id
10092 ,decode( fc.derive_type, 'EURO', 'EURO', 'EMU',
10093 decode( sign( trunc(nvl(xal.currency_conversion_date, xeg.transaction_date)) -
10094 trunc(fc.derive_effective)), -1, 'OTHER', 'EMU'), 'OTHER' ) from_type
10095 ,decode( fc1.derive_type, 'EURO', 'EURO', 'EMU',
10096 decode( sign( trunc(nvl(xal.currency_conversion_date, xeg.transaction_date)) -
10097 trunc(fc1.derive_effective)), -1, 'OTHER', 'EMU'), 'OTHER' ) to_type
10098 ,decode( fc2.derive_type, 'EURO', 'EURO', 'EMU',
10099 decode( sign( trunc(nvl(xal.currency_conversion_date, xeg.transaction_date)) -
10100 trunc(fc2.derive_effective)), -1, 'OTHER', 'EMU'), 'OTHER' ) primary_type
10101 FROM xla_ae_lines_gt xal
10102 ,gl_ledgers gl
10103 ,fnd_currencies fc
10104 ,fnd_currencies fc1
10105 ,fnd_currencies fc2
10106 ,xla_events_gt xeg
10107 WHERE xal.ledger_id = gl.ledger_id
10108 AND gl.object_type_code = 'L' /* only ledgers (not ledger sets) */
10109 AND gl.le_ledger_type_code = 'L' /* only legal ledgers */
10110 AND xal.currency_code <> gl.currency_code
10111 AND xal.gain_or_loss_flag = 'N'
10112 AND xal.balance_type_code <> 'X'
10113 AND xal.calculate_acctd_amts_flag = 'Y'
10114 AND fc.currency_code = xal.currency_code
10115 AND fc1.currency_code = gl.currency_code
10116 AND fc2.currency_code = l_primary_ledger_currency
10117 AND xal.event_id = xeg.event_id
10118 AND nvl(xal.reversal_code,C_CHAR) <> C_DUMMY_PRIOR
10119 GROUP BY
10120 xal.calculate_acctd_amts_flag
10121 ,xal.currency_conversion_type
10122 ,TRUNC(nvl(xal.currency_conversion_date, xeg.transaction_date))
10123 ,xal.currency_conversion_rate
10124 ,xal.currency_code
10125 ,xal.ledger_id
10126 ,fc.derive_type
10127 ,fc.derive_effective
10128 ,fc1.derive_type
10129 ,fc1.derive_effective
10130 ,fc2.derive_type
10131 ,fc2.derive_effective
10132 ,decode(xal.currency_conversion_type, 'User', xal.currency_conversion_rate, -1)
10133 ;
10134
10135 BEGIN
10136 IF g_log_enabled THEN
10137 l_log_module := C_DEFAULT_MODULE||'.CalculateUnroundedAmounts';
10138 END IF;
10139
10140 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10141 trace
10142 (p_msg => 'BEGIN of CalculateUnroundedAmounts'
10143 ,p_level => C_LEVEL_PROCEDURE
10144 ,p_module => l_log_module);
10145 END IF;
10146
10147 l_euro :='EUR';
10148
10149 xla_accounting_cache_pkg.BuildLedgerArray(l_ledger_attrs1);
10150
10151 l_max_ledger_index := l_ledger_attrs1.array_ledger_id.COUNT;
10152 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
10153 trace
10154 (p_msg => 'l_max_ledger_index:'||to_char(l_max_ledger_index)
10155 ,p_level => C_LEVEL_STATEMENT
10156 ,p_module => l_log_module);
10157 END IF;
10158 For i in 1..l_max_ledger_index LOOP
10159 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
10160 trace
10161 (p_msg => 'i:'||to_char(i)
10162 ,p_level => C_LEVEL_STATEMENT
10163 ,p_module => l_log_module);
10164 END IF;
10165 l_ledger_id := l_ledger_attrs1.array_ledger_id(i);
10166 IF(l_ledger_attrs1.array_ledger_type(i) = 'PRIMARY') THEN
10167 l_primary_ledger_currency:= l_ledger_attrs1.array_ledger_currency_code(i);
10168 l_primary_ledger_id := l_ledger_id;
10169 ELSIF(l_ledger_attrs1.array_ledger_type(i) = 'SECONDARY') THEN
10170 l_secondary_ledger_currency:= l_ledger_attrs1.array_ledger_currency_code(i);
10171 l_secondary_ledger_id := l_ledger_id;
10172 END IF;
10173 l_ledger_attrs.array_ledger_currency_code(l_ledger_id)
10174 := l_ledger_attrs1.array_ledger_currency_code(i);
10175 l_ledger_attrs.array_ledger_type(l_ledger_id)
10176 := l_ledger_attrs1.array_ledger_type(i);
10177 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
10178 trace
10179 (p_msg => 'middle of loop, i:'||to_char(i)
10180 ,p_level => C_LEVEL_STATEMENT
10181 ,p_module => l_log_module);
10182 END IF;
10183 l_ledger_attrs.array_default_rate_type(l_ledger_id)
10184 := l_ledger_attrs1.array_default_rate_type(i);
10185 l_ledger_attrs.array_inhert_type_flag(l_ledger_id)
10186 := l_ledger_attrs1.array_inhert_type_flag(i);
10187 l_ledger_attrs.array_max_roll_date(l_ledger_id)
10188 := l_ledger_attrs1.array_max_roll_date(i);
10189 END LOOP;
10190
10191 IF l_primary_ledger_currency is null THEN
10192 l_primary_ledger_currency:=l_secondary_ledger_currency;
10193 l_primary_ledger_id:=l_secondary_ledger_id;
10194 END IF;
10195
10196 OPEN csr_lines;
10197
10198 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
10199 trace
10200 (p_msg => 'Starting Loop'
10201 ,p_level => C_LEVEL_STATEMENT
10202 ,p_module => l_log_module);
10203 END IF;
10204 LOOP
10205 FETCH csr_lines
10206 BULK COLLECT INTO
10207 l_array_calculate_amts_flag
10208 ,l_array_conversion_type
10209 ,l_array_conversion_date
10210 ,l_array_conversion_rate
10211 ,l_array_entered_curr
10212 ,l_array_ledger_id
10213 ,l_array_from_type
10214 ,l_array_to_type
10215 ,l_array_primary_type
10216 LIMIT C_BULK_LIMIT;
10217
10218 IF l_array_conversion_type.COUNT = 0 THEN
10219 EXIT;
10220 END IF;
10221 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
10222 trace
10223 (p_msg => 'Loop Count:'||to_char(l_array_conversion_type.COUNT)
10224 ,p_level => C_LEVEL_STATEMENT
10225 ,p_module => l_log_module);
10226 END IF;
10227
10228 FOR i in 1..l_array_conversion_type.COUNT LOOP
10229 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
10230 trace
10231 (p_msg => 'i:'||to_char(i) || ' ledger id:'|| to_char(l_array_ledger_id (i))
10232 ,p_level => C_LEVEL_STATEMENT
10233 ,p_module => l_log_module);
10234 trace
10235 (p_msg => 'ledger currency code:'||l_ledger_attrs.array_ledger_currency_code(l_array_ledger_id (i)) ||' entered curr:'|| l_array_entered_curr(i)
10236 ,p_level => C_LEVEL_STATEMENT
10237 ,p_module => l_log_module);
10238 trace
10239 (p_msg => 'from type:'||l_array_from_type(i) || ' tto type:'||l_array_to_type(i)
10240 ,p_level => C_LEVEL_STATEMENT
10241 ,p_module => l_log_module);
10242 END IF;
10243 BEGIN
10244 -- added for bug13018249
10245 IF ( l_array_entered_curr(i) = 'STAT' )
10246 THEN
10247 l_array_new_rate(i) := 1 ;
10248 l_array_new_type(i) := 'User' ;
10249 ELSE
10250 IF(l_array_from_type(i) in ('EMU', 'EURO')
10251 AND l_array_to_type(i) in ('EMU', 'EURO')) THEN
10252 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
10253 trace
10254 (p_msg => 'if block1'
10255 ,p_level => C_LEVEL_STATEMENT
10256 ,p_module => l_log_module);
10257 END IF;
10258
10259 l_array_new_type(i) :='EMU Fixed';
10260 l_array_new_rate(i) :=gl_currency_api.get_closest_rate(
10261 x_from_currency => l_array_entered_curr(i)
10262 ,x_to_currency => l_ledger_attrs.array_ledger_currency_code(l_array_ledger_id (i))
10263 ,x_conversion_date => l_array_conversion_date(i)
10264 ,x_conversion_type => 'EMU Fixed'
10265 ,x_max_roll_days => l_ledger_attrs.array_max_roll_date(l_primary_ledger_id));
10266 ELSIF(l_array_ledger_id (i) = l_primary_ledger_id) THEN
10267 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
10268 trace
10269 (p_msg => 'if block2'
10270 ,p_level => C_LEVEL_STATEMENT
10271 ,p_module => l_log_module);
10272 END IF;
10273 l_array_new_type(i) :=l_array_conversion_type(i);
10274 IF (l_array_conversion_type(i) = 'User') THEN
10275 l_array_new_rate(i) := l_array_conversion_rate(i);
10276 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
10277 trace
10278 (p_msg => 'if block2:'||to_char(l_array_new_rate(i))
10279 ,p_level => C_LEVEL_STATEMENT
10280 ,p_module => l_log_module);
10281 END IF;
10282
10283 ELSE
10284 l_array_new_rate(i):=gl_currency_api.get_closest_rate(
10285 x_from_currency => l_array_entered_curr(i)
10286 ,x_to_currency => l_primary_ledger_currency
10287 ,x_conversion_date => l_array_conversion_date(i)
10288 ,x_conversion_type => l_array_conversion_type(i)
10289 ,x_max_roll_days => l_ledger_attrs.array_max_roll_date(l_primary_ledger_id));
10290 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
10291 trace
10292 (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)
10293 ,p_level => C_LEVEL_STATEMENT
10294 ,p_module => l_log_module);
10295 END IF;
10296 END IF;
10297 ELSE
10298 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
10299 trace
10300 (p_msg => 'if block3'
10301 ,p_level => C_LEVEL_STATEMENT
10302 ,p_module => l_log_module);
10303 END IF;
10304 IF(l_array_conversion_type(i) = 'User' ) THEN
10305 IF(l_array_primary_type(i) in ('EMU', 'EURO')
10306 AND l_array_from_type(i) in ('EMU', 'EURO')) THEN
10307 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
10308 trace
10309 (p_msg => 'if block4'
10310 ,p_level => C_LEVEL_STATEMENT
10311 ,p_module => l_log_module);
10312 END IF;
10313 l_array_new_type(i) :=l_ledger_attrs.array_default_rate_type(l_array_ledger_id (i));
10314 l_array_new_rate(i):=gl_currency_api.get_closest_rate(
10315 x_from_currency => l_array_entered_curr(i)
10316 ,x_to_currency => l_ledger_attrs.array_ledger_currency_code(l_array_ledger_id (i))
10317 ,x_conversion_date => l_array_conversion_date(i)
10318 ,x_conversion_type => l_array_new_type(i)
10319 ,x_max_roll_days => l_ledger_attrs.array_max_roll_date(l_array_ledger_id (i)));
10320 ELSE
10321 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
10322 trace
10323 (p_msg => 'if block5'
10324 ,p_level => C_LEVEL_STATEMENT
10325 ,p_module => l_log_module);
10326 END IF;
10327 l_array_new_type(i) :=l_array_conversion_type(i);
10328 l_rate:=gl_currency_api.get_closest_rate(
10329 x_from_currency => l_primary_ledger_currency
10330 ,x_to_currency => l_ledger_attrs.array_ledger_currency_code(l_array_ledger_id (i))
10331 ,x_conversion_date => l_array_conversion_date(i)
10332 ,x_conversion_type => l_ledger_attrs.array_default_rate_type(l_array_ledger_id (i))
10333 ,x_max_roll_days => l_ledger_attrs.array_max_roll_date(l_array_ledger_id (i)));
10334 l_array_new_rate(i):= l_array_conversion_rate(i) * l_rate;
10335 END IF;
10336 ELSIF(l_ledger_attrs.array_inhert_type_flag(l_array_ledger_id (i))='Y'and l_array_conversion_type(i) is not null) THEN
10337 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
10338 trace
10339 (p_msg => 'if block6'
10340 ,p_level => C_LEVEL_STATEMENT
10341 ,p_module => l_log_module);
10342 END IF;
10343 l_array_new_type(i) :=l_array_conversion_type(i);
10344 l_array_new_rate(i):=gl_currency_api.get_closest_rate(
10345 x_from_currency => l_array_entered_curr(i)
10346 ,x_to_currency => l_ledger_attrs.array_ledger_currency_code(l_array_ledger_id (i))
10347 ,x_conversion_date => l_array_conversion_date(i)
10348 ,x_conversion_type => l_array_conversion_type(i)
10349 ,x_max_roll_days => l_ledger_attrs.array_max_roll_date(l_array_ledger_id (i)));
10350 ELSE
10351 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
10352 trace
10353 (p_msg => 'if block7'
10354 ,p_level => C_LEVEL_STATEMENT
10355 ,p_module => l_log_module);
10356 END IF;
10357 l_array_new_type(i) :=l_ledger_attrs.array_default_rate_type(l_array_ledger_id (i));
10358 l_array_new_rate(i):=gl_currency_api.get_closest_rate(
10359 x_from_currency => l_array_entered_curr(i)
10360 ,x_to_currency => l_ledger_attrs.array_ledger_currency_code(l_array_ledger_id (i))
10361 ,x_conversion_date => l_array_conversion_date(i)
10362 ,x_conversion_type => l_array_new_type(i)
10363 ,x_max_roll_days => l_ledger_attrs.array_max_roll_date(l_array_ledger_id (i)));
10364 END IF;
10365 END IF;
10366 END IF; -- added for bug13018249
10367 EXCEPTION
10368 WHEN gl_currency_api.NO_RATE THEN
10369 IF (C_LEVEL_EXCEPTION>= g_log_level) THEN
10370 trace
10371 (p_msg => 'No rate for:'
10372 ,p_level => C_LEVEL_EXCEPTION
10373 ,p_module => l_log_module);
10374 trace
10375 (p_msg => 'entered:'||l_array_entered_curr(i)
10376 ,p_level => C_LEVEL_EXCEPTION
10377 ,p_module => l_log_module);
10378 trace
10379 (p_msg => 'accounting curr:'||l_ledger_attrs.array_ledger_currency_code(l_array_ledger_id(i))
10380 ,p_level => C_LEVEL_EXCEPTION
10381 ,p_module => l_log_module);
10382 trace
10383 (p_msg => 'date:'||to_char(l_array_conversion_date(i))
10384 ,p_level => C_LEVEL_EXCEPTION
10385 ,p_module => l_log_module);
10386 trace
10387 (p_msg => 'type:'||l_array_conversion_type(i)
10388 ,p_level => C_LEVEL_EXCEPTION
10389 ,p_module => l_log_module);
10390 trace
10391 (p_msg => 'ledger ID:'||to_char(l_array_ledger_id (i))
10392 ,p_level => C_LEVEL_EXCEPTION
10393 ,p_module => l_log_module);
10394 END IF;
10395 l_array_new_rate(i) := null;
10396 WHEN others THEN
10397 IF (C_LEVEL_EXCEPTION>= g_log_level) THEN
10398 trace
10399 (p_msg => 'Exception:'
10400 ,p_level => C_LEVEL_EXCEPTION
10401 ,p_module => l_log_module);
10402 trace
10403 (p_msg => 'entered:'||l_array_entered_curr(i)
10404 ,p_level => C_LEVEL_EXCEPTION
10405 ,p_module => l_log_module);
10406 trace
10407 (p_msg => 'accounting curr:'||l_ledger_attrs.array_ledger_currency_code(l_array_ledger_id(i))
10408 ,p_level => C_LEVEL_EXCEPTION
10409 ,p_module => l_log_module);
10410 trace
10411 (p_msg => 'date:'||to_char(l_array_conversion_date(i))
10412 ,p_level => C_LEVEL_EXCEPTION
10413 ,p_module => l_log_module);
10414 trace
10415 (p_msg => 'type:'||l_array_conversion_type(i)
10416 ,p_level => C_LEVEL_EXCEPTION
10417 ,p_module => l_log_module);
10418 trace
10419 (p_msg => 'ledger ID:'||to_char(l_array_ledger_id (i))
10420 ,p_level => C_LEVEL_EXCEPTION
10421 ,p_module => l_log_module);
10422 END IF;
10423 RAISE;
10424 END;
10425 END LOOP;
10426
10427 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
10428 trace
10429 (p_msg => 'ending Loop'
10430 ,p_level => C_LEVEL_STATEMENT
10431 ,p_module => l_log_module);
10432
10433 /*
10434 FOR i in 1..l_array_conversion_type.COUNT LOOP
10435 trace
10436 (p_msg => 'i:'||to_char(i)|| ' new rate:'||to_char(l_array_new_rate(i))||' type:'||l_array_new_type(i)
10437 ,p_level => C_LEVEL_STATEMENT
10438 ,p_module => l_log_module);
10439 trace
10440 (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))
10441 ,p_level => C_LEVEL_STATEMENT
10442 ,p_module => l_log_module);
10443 END LOOP;
10444 */
10445
10446 END IF;
10447 FORALL i in 1..l_array_conversion_type.COUNT
10448 UPDATE xla_ae_lines_gt xal
10449 SET currency_conversion_rate = l_array_new_rate(i)
10450 ,currency_conversion_type = l_array_new_type(i)
10451 ,currency_conversion_date = DECODE(xal.currency_code , 'STAT',xal.accounting_date,l_array_conversion_date(i)) -- added for bug13018249
10452 ,unrounded_accounted_cr = unrounded_entered_cr * l_array_new_rate(i)
10453 ,unrounded_accounted_dr = unrounded_entered_dr * l_array_new_rate(i)
10454 WHERE xal.ledger_id = l_array_ledger_id(i)
10455 AND xal.currency_code = l_array_entered_curr(i)
10456 AND xal.gain_or_loss_flag = 'N'
10457 AND xal.balance_type_code <> 'X'
10458 AND xal.calculate_acctd_amts_flag = 'Y'
10459 AND (xal.currency_conversion_type = l_array_conversion_type(i)
10460 or (xal.currency_conversion_type is null and l_array_conversion_type(i) is null))
10461 AND l_array_conversion_date(i) =
10462 (select TRUNC(nvl(xal.currency_conversion_date, xeg.transaction_date))
10463 from xla_events_gt xeg
10464 where xal.event_id = xeg.event_id)
10465 AND decode(currency_conversion_type, 'User', currency_conversion_rate, -1) = l_array_conversion_rate(i)
10466 AND nvl(xal.reversal_code,'dd') <> C_DUMMY_PRIOR
10467 ;
10468
10469 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
10470 trace
10471 (p_msg => 'ending update'
10472 ,p_level => C_LEVEL_STATEMENT
10473 ,p_module => l_log_module);
10474 END IF;
10475
10476 END LOOP;
10477 IF (C_LEVEL_STATEMENT>= g_log_level) THEN
10478 trace
10479 (p_msg => 'ending loop outside'
10480 ,p_level => C_LEVEL_STATEMENT
10481 ,p_module => l_log_module);
10482 END IF;
10483
10484 CLOSE csr_lines;
10485
10486 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
10487 trace
10488 (p_msg => 'Before the assignment of unrounded amount and conversion rate'
10489 ,p_level => C_LEVEL_STATEMENT
10490 ,p_module => l_log_module);
10491 trace
10492 (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)
10493 ,p_level => C_LEVEL_STATEMENT
10494 ,p_module => l_log_module);
10495 END IF;
10496
10497 /*
10498 FORALL i in 1..l_max_ledger_index
10499 UPDATE xla_ae_lines_gt xal
10500 SET (xal.unrounded_accounted_dr
10501 ,xal.unrounded_accounted_cr
10502 ,xal.currency_conversion_rate
10503 )
10504 =
10505 (SELECT
10506 CASE xal.currency_code
10507 WHEN l_ledger_attrs.array_ledger_currency_code(i) THEN
10508 xal.entered_dr
10509 ELSE
10510 CASE l_ledger_attrs.array_ledger_type(i)
10511 WHEN 'PRIMARY' THEN
10512 CASE calculate_acctd_amts_flag
10513 WHEN 'Y' THEN
10514 CASE xal.currency_conversion_type
10515 WHEN 'User' THEN
10516 xal.entered_dr * xal.currency_conversion_rate
10517 ELSE
10518 xal.entered_dr *
10519 CASE decode( fc.derive_type,'EURO', 'EURO',
10520 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10521 trunc(xah.accounting_date)) -trunc(fc.derive_effective)),
10522 -1, 'OTHER','EMU'),'OTHER' )
10523 WHEN 'EMU' THEN
10524 CASE decode( fc1.derive_type,'EURO', 'EURO',
10525 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10526 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10527 -1, 'OTHER','EMU'),'OTHER' )
10528 WHEN 'EMU' THEN
10529 decode( fc1.derive_type, 'EURO', 1,
10530 'EMU', fc1.derive_factor,'OTHER', -1 )/
10531 decode( fc.derive_type, 'EURO', 1,
10532 'EMU', fc.derive_factor,'OTHER', -1 )
10533 WHEN 'EURO' THEN
10534 1/decode( fc.derive_type, 'EURO', 1,
10535 'EMU', fc.derive_factor,'OTHER', -1 )
10536 ELSE ra.conversion_rate/decode( fc.derive_type, 'EURO', 1,
10537 'EMU', fc.derive_factor,'OTHER', -1 )
10538 END
10539 WHEN 'EURO' THEN
10540 CASE decode( fc1.derive_type,'EURO', 'EURO',
10541 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10542 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10543 -1, 'OTHER','EMU'),'OTHER' )
10544 WHEN 'EMU' THEN
10545 decode( fc1.derive_type, 'EURO', 1,
10546 'EMU', fc1.derive_factor,'OTHER', -1 )
10547 ELSE ra.conversion_rate
10548 END
10549 ELSE
10550 CASE decode( fc1.derive_type,'EURO', 'EURO',
10551 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10552 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
10553 -1, 'OTHER','EMU'),'OTHER' )
10554 WHEN 'EMU' THEN
10555 ra.conversion_rate*decode( fc1.derive_type, 'EURO', 1,
10556 'EMU', fc1.derive_factor,'OTHER', -1 )
10557 ELSE ra.conversion_rate
10558 END
10559 END
10560 END
10561 ELSE
10562 xal.unrounded_accounted_dr
10563 END
10564 ELSE
10565 CASE xal.currency_conversion_type
10566 WHEN 'User' THEN
10567 xal.entered_dr * xal.currency_conversion_rate *
10568 CASE decode( fc.derive_type,'EURO', 'EURO',
10569 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10570 trunc(xah.accounting_date)) -trunc(fc.derive_effective)),
10571 -1, 'OTHER','EMU'),'OTHER' )
10572 WHEN 'EMU' THEN
10573 CASE decode( fc1.derive_type,'EURO', 'EURO',
10574 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10575 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10576 -1, 'OTHER','EMU'),'OTHER' )
10577 WHEN 'EMU' THEN
10578 decode( fc1.derive_type, 'EURO', 1,
10579 'EMU', fc1.derive_factor,'OTHER', -1 )/
10580 decode( fc.derive_type, 'EURO', 1,
10581 'EMU', fc.derive_factor,'OTHER', -1 )
10582 WHEN 'EURO' THEN
10583 1/decode( fc.derive_type, 'EURO', 1,
10584 'EMU', fc.derive_factor,'OTHER', -1 )
10585 ELSE ra.conversion_rate/decode( fc.derive_type, 'EURO', 1,
10586 'EMU', fc.derive_factor,'OTHER', -1 )
10587 END
10588 WHEN 'EURO' THEN
10589 CASE decode( fc1.derive_type,'EURO', 'EURO',
10590 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10591 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10592 -1, 'OTHER','EMU'),'OTHER' )
10593 WHEN 'EMU' THEN
10594 decode( fc1.derive_type, 'EURO', 1,
10595 'EMU', fc1.derive_factor,'OTHER', -1 )
10596 ELSE ra.conversion_rate
10597 END
10598 ELSE
10599 CASE decode( fc1.derive_type,'EURO', 'EURO',
10600 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10601 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
10602 -1, 'OTHER','EMU'),'OTHER' )
10603 WHEN 'EMU' THEN
10604 ra.conversion_rate*decode( fc1.derive_type, 'EURO', 1,
10605 'EMU', fc1.derive_factor,'OTHER', -1 )
10606 ELSE ra.conversion_rate
10607 END
10608 END
10609 ELSE
10610 xal.entered_dr *
10611 CASE decode( fc.derive_type,'EURO', 'EURO',
10612 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10613 trunc(xah.accounting_date)) -trunc(fc.derive_effective)),
10614 -1, 'OTHER','EMU'),'OTHER' )
10615 WHEN 'EMU' THEN
10616 CASE decode( fc1.derive_type,'EURO', 'EURO',
10617 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10618 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10619 -1, 'OTHER','EMU'),'OTHER' )
10620 WHEN 'EMU' THEN
10621 decode( fc1.derive_type, 'EURO', 1,
10622 'EMU', fc1.derive_factor,'OTHER', -1 )/
10623 decode( fc.derive_type, 'EURO', 1,
10624 'EMU', fc.derive_factor,'OTHER', -1 )
10625 WHEN 'EURO' THEN
10626 1/decode( fc.derive_type, 'EURO', 1,
10627 'EMU', fc.derive_factor,'OTHER', -1 )
10628 ELSE ra.conversion_rate/decode( fc.derive_type, 'EURO', 1,
10629 'EMU', fc.derive_factor,'OTHER', -1 )
10630 END
10631 WHEN 'EURO' THEN
10632 CASE decode( fc1.derive_type,'EURO', 'EURO',
10633 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10634 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10635 -1, 'OTHER','EMU'),'OTHER' )
10636 WHEN 'EMU' THEN
10637 decode( fc1.derive_type, 'EURO', 1,
10638 'EMU', fc1.derive_factor,'OTHER', -1 )
10639 ELSE ra.conversion_rate
10640 END
10641 ELSE
10642 CASE decode( fc1.derive_type,'EURO', 'EURO',
10643 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10644 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
10645 -1, 'OTHER','EMU'),'OTHER' )
10646 WHEN 'EMU' THEN
10647 ra.conversion_rate*decode( fc1.derive_type, 'EURO', 1,
10648 'EMU', fc1.derive_factor,'OTHER', -1 )
10649 ELSE ra.conversion_rate
10650 END
10651 END
10652 END
10653 END
10654 END,
10655 CASE xal.currency_code
10656 WHEN l_ledger_attrs.array_ledger_currency_code(i) THEN
10657 xal.entered_cr
10658 ELSE
10659 CASE l_ledger_attrs.array_ledger_type(i)
10660 WHEN 'PRIMARY' THEN
10661 CASE calculate_acctd_amts_flag
10662 WHEN 'Y' THEN
10663 CASE xal.currency_conversion_type
10664 WHEN 'User' THEN
10665 xal.entered_cr * xal.currency_conversion_rate
10666 ELSE
10667 xal.entered_cr *
10668 CASE decode( fc.derive_type,'EURO', 'EURO',
10669 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10670 trunc(xah.accounting_date)) -trunc(fc.derive_effective)),
10671 -1, 'OTHER','EMU'),'OTHER' )
10672 WHEN 'EMU' THEN
10673 CASE decode( fc1.derive_type,'EURO', 'EURO',
10674 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10675 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10676 -1, 'OTHER','EMU'),'OTHER' )
10677 WHEN 'EMU' THEN
10678 decode( fc1.derive_type, 'EURO', 1,
10679 'EMU', fc1.derive_factor,'OTHER', -1 )/
10680 decode( fc.derive_type, 'EURO', 1,
10681 'EMU', fc.derive_factor,'OTHER', -1 )
10682 WHEN 'EURO' THEN
10683 1/decode( fc.derive_type, 'EURO', 1,
10684 'EMU', fc.derive_factor,'OTHER', -1 )
10685 ELSE ra.conversion_rate/decode( fc.derive_type, 'EURO', 1,
10686 'EMU', fc.derive_factor,'OTHER', -1 )
10687 END
10688 WHEN 'EURO' THEN
10689 CASE decode( fc1.derive_type,'EURO', 'EURO',
10690 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10691 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10692 -1, 'OTHER','EMU'),'OTHER' )
10693 WHEN 'EMU' THEN
10694 decode( fc1.derive_type, 'EURO', 1,
10695 'EMU', fc1.derive_factor,'OTHER', -1 )
10696 ELSE ra.conversion_rate
10697 END
10698 ELSE
10699 CASE decode( fc1.derive_type,'EURO', 'EURO',
10700 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10701 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
10702 -1, 'OTHER','EMU'),'OTHER' )
10703 WHEN 'EMU' THEN
10704 ra.conversion_rate*decode( fc1.derive_type, 'EURO', 1,
10705 'EMU', fc1.derive_factor,'OTHER', -1 )
10706 ELSE ra.conversion_rate
10707 END
10708 END
10709 END
10710 ELSE
10711 xal.unrounded_accounted_cr
10712 END
10713 ELSE
10714 CASE xal.currency_conversion_type
10715 WHEN 'User' THEN
10716 xal.entered_cr * xal.currency_conversion_rate *
10717 CASE decode( fc.derive_type,'EURO', 'EURO',
10718 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10719 trunc(xah.accounting_date)) -trunc(fc.derive_effective)),
10720 -1, 'OTHER','EMU'),'OTHER' )
10721 WHEN 'EMU' THEN
10722 CASE decode( fc1.derive_type,'EURO', 'EURO',
10723 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10724 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10725 -1, 'OTHER','EMU'),'OTHER' )
10726 WHEN 'EMU' THEN
10727 decode( fc1.derive_type, 'EURO', 1,
10728 'EMU', fc1.derive_factor,'OTHER', -1 )/
10729 decode( fc.derive_type, 'EURO', 1,
10730 'EMU', fc.derive_factor,'OTHER', -1 )
10731 WHEN 'EURO' THEN
10732 1/decode( fc.derive_type, 'EURO', 1,
10733 'EMU', fc.derive_factor,'OTHER', -1 )
10734 ELSE ra.conversion_rate/decode( fc.derive_type, 'EURO', 1,
10735 'EMU', fc.derive_factor,'OTHER', -1 )
10736 END
10737 WHEN 'EURO' THEN
10738 CASE decode( fc1.derive_type,'EURO', 'EURO',
10739 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10740 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10741 -1, 'OTHER','EMU'),'OTHER' )
10742 WHEN 'EMU' THEN
10743 decode( fc1.derive_type, 'EURO', 1,
10744 'EMU', fc1.derive_factor,'OTHER', -1 )
10745 ELSE ra.conversion_rate
10746 END
10747 ELSE
10748 CASE decode( fc1.derive_type,'EURO', 'EURO',
10749 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10750 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
10751 -1, 'OTHER','EMU'),'OTHER' )
10752 WHEN 'EMU' THEN
10753 ra.conversion_rate*decode( fc1.derive_type, 'EURO', 1,
10754 'EMU', fc1.derive_factor,'OTHER', -1 )
10755 ELSE ra.conversion_rate
10756 END
10757 END
10758 ELSE
10759 xal.entered_cr *
10760 CASE decode( fc.derive_type,'EURO', 'EURO',
10761 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10762 trunc(xah.accounting_date)) -trunc(fc.derive_effective)),
10763 -1, 'OTHER','EMU'),'OTHER' )
10764 WHEN 'EMU' THEN
10765 CASE decode( fc1.derive_type,'EURO', 'EURO',
10766 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10767 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10768 -1, 'OTHER','EMU'),'OTHER' )
10769 WHEN 'EMU' THEN
10770 decode( fc1.derive_type, 'EURO', 1,
10771 'EMU', fc1.derive_factor,'OTHER', -1 )/
10772 decode( fc.derive_type, 'EURO', 1,
10773 'EMU', fc.derive_factor,'OTHER', -1 )
10774 WHEN 'EURO' THEN
10775 1/decode( fc.derive_type, 'EURO', 1,
10776 'EMU', fc.derive_factor,'OTHER', -1 )
10777 ELSE ra.conversion_rate/decode( fc.derive_type, 'EURO', 1,
10778 'EMU', fc.derive_factor,'OTHER', -1 )
10779 END
10780 WHEN 'EURO' THEN
10781 CASE decode( fc1.derive_type,'EURO', 'EURO',
10782 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10783 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10784 -1, 'OTHER','EMU'),'OTHER' )
10785 WHEN 'EMU' THEN
10786 decode( fc1.derive_type, 'EURO', 1,
10787 'EMU', fc1.derive_factor,'OTHER', -1 )
10788 ELSE ra.conversion_rate
10789 END
10790 ELSE
10791 CASE decode( fc1.derive_type,'EURO', 'EURO',
10792 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10793 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
10794 -1, 'OTHER','EMU'),'OTHER' )
10795 WHEN 'EMU' THEN
10796 ra.conversion_rate*decode( fc1.derive_type, 'EURO', 1,
10797 'EMU', fc1.derive_factor,'OTHER', -1 )
10798 ELSE ra.conversion_rate
10799 END
10800 END
10801 END
10802 END
10803 END,
10804 CASE xal.currency_code
10805 WHEN l_ledger_attrs.array_ledger_currency_code(i) THEN
10806 null
10807 ELSE
10808 CASE l_ledger_attrs.array_ledger_type(i)
10809 WHEN 'PRIMARY' THEN
10810 CASE calculate_acctd_amts_flag
10811 WHEN 'Y' THEN
10812 CASE xal.currency_conversion_type
10813 WHEN 'User' THEN
10814 xal.currency_conversion_rate
10815 ELSE
10816 CASE decode( fc.derive_type,'EURO', 'EURO',
10817 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10818 trunc(xah.accounting_date)) -trunc(fc.derive_effective)),
10819 -1, 'OTHER','EMU'),'OTHER' )
10820 WHEN 'EMU' THEN
10821 CASE decode( fc1.derive_type,'EURO', 'EURO',
10822 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10823 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10824 -1, 'OTHER','EMU'),'OTHER' )
10825 WHEN 'EMU' THEN
10826 decode( fc1.derive_type, 'EURO', 1,
10827 'EMU', fc1.derive_factor,'OTHER', -1 )/
10828 decode( fc.derive_type, 'EURO', 1,
10829 'EMU', fc.derive_factor,'OTHER', -1 )
10830 WHEN 'EURO' THEN
10831 1/decode( fc.derive_type, 'EURO', 1,
10832 'EMU', fc.derive_factor,'OTHER', -1 )
10833 ELSE ra.conversion_rate/decode( fc.derive_type, 'EURO', 1,
10834 'EMU', fc.derive_factor,'OTHER', -1 )
10835 END
10836 WHEN 'EURO' THEN
10837 CASE decode( fc1.derive_type,'EURO', 'EURO',
10838 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10839 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10840 -1, 'OTHER','EMU'),'OTHER' )
10841 WHEN 'EMU' THEN
10842 decode( fc1.derive_type, 'EURO', 1,
10843 'EMU', fc1.derive_factor,'OTHER', -1 )
10844 ELSE ra.conversion_rate
10845 END
10846 ELSE
10847 CASE decode( fc1.derive_type,'EURO', 'EURO',
10848 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10849 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
10850 -1, 'OTHER','EMU'),'OTHER' )
10851 WHEN 'EMU' THEN
10852 ra.conversion_rate*decode( fc1.derive_type, 'EURO', 1,
10853 'EMU', fc1.derive_factor,'OTHER', -1 )
10854 ELSE ra.conversion_rate
10855 END
10856 END
10857 END
10858 ELSE
10859 xal.currency_conversion_rate
10860 END
10861 ELSE
10862 CASE xal.currency_conversion_type
10863 WHEN 'User' THEN
10864 xal.currency_conversion_rate *
10865 CASE decode( fc.derive_type,'EURO', 'EURO',
10866 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10867 trunc(xah.accounting_date)) -trunc(fc.derive_effective)),
10868 -1, 'OTHER','EMU'),'OTHER' )
10869 WHEN 'EMU' THEN
10870 CASE decode( fc1.derive_type,'EURO', 'EURO',
10871 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10872 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10873 -1, 'OTHER','EMU'),'OTHER' )
10874 WHEN 'EMU' THEN
10875 decode( fc1.derive_type, 'EURO', 1,
10876 'EMU', fc1.derive_factor,'OTHER', -1 )/
10877 decode( fc.derive_type, 'EURO', 1,
10878 'EMU', fc.derive_factor,'OTHER', -1 )
10879 WHEN 'EURO' THEN
10880 1/decode( fc.derive_type, 'EURO', 1,
10881 'EMU', fc.derive_factor,'OTHER', -1 )
10882 ELSE ra.conversion_rate/decode( fc.derive_type, 'EURO', 1,
10883 'EMU', fc.derive_factor,'OTHER', -1 )
10884 END
10885 WHEN 'EURO' THEN
10886 CASE decode( fc1.derive_type,'EURO', 'EURO',
10887 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10888 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10889 -1, 'OTHER','EMU'),'OTHER' )
10890 WHEN 'EMU' THEN
10891 decode( fc1.derive_type, 'EURO', 1,
10892 'EMU', fc1.derive_factor,'OTHER', -1 )
10893 ELSE ra.conversion_rate
10894 END
10895 ELSE
10896 CASE decode( fc1.derive_type,'EURO', 'EURO',
10897 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10898 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
10899 -1, 'OTHER','EMU'),'OTHER' )
10900 WHEN 'EMU' THEN
10901 ra.conversion_rate*decode( fc1.derive_type, 'EURO', 1,
10902 'EMU', fc1.derive_factor,'OTHER', -1 )
10903 ELSE ra.conversion_rate
10904 END
10905 END
10906 ELSE
10907
10908 CASE decode( fc.derive_type,'EURO', 'EURO',
10909 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10910 trunc(xah.accounting_date)) -trunc(fc.derive_effective)),
10911 -1, 'OTHER','EMU'),'OTHER' )
10912 WHEN 'EMU' THEN
10913 CASE decode( fc1.derive_type,'EURO', 'EURO',
10914 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10915 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10916 -1, 'OTHER','EMU'),'OTHER' )
10917 WHEN 'EMU' THEN
10918 decode( fc1.derive_type, 'EURO', 1,
10919 'EMU', fc1.derive_factor,'OTHER', -1 )/
10920 decode( fc.derive_type, 'EURO', 1,
10921 'EMU', fc.derive_factor,'OTHER', -1 )
10922 WHEN 'EURO' THEN
10923 1/decode( fc.derive_type, 'EURO', 1,
10924 'EMU', fc.derive_factor,'OTHER', -1 )
10925 ELSE ra.conversion_rate/decode( fc.derive_type, 'EURO', 1,
10926 'EMU', fc.derive_factor,'OTHER', -1 )
10927 END
10928 WHEN 'EURO' THEN
10929 CASE decode( fc1.derive_type,'EURO', 'EURO',
10930 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10931 trunc(xah.accounting_date)) -trunc(fc1.derive_effective)),
10932 -1, 'OTHER','EMU'),'OTHER' )
10933 WHEN 'EMU' THEN
10934 decode( fc1.derive_type, 'EURO', 1,
10935 'EMU', fc1.derive_factor,'OTHER', -1 )
10936 ELSE ra.conversion_rate
10937 END
10938 ELSE
10939 CASE decode( fc1.derive_type,'EURO', 'EURO',
10940 'EMU', decode( sign(nvl(trunc(xal.currency_conversion_date),
10941 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
10942 -1, 'OTHER','EMU'),'OTHER' )
10943 WHEN 'EMU' THEN
10944 ra.conversion_rate*decode( fc1.derive_type, 'EURO', 1,
10945 'EMU', fc1.derive_factor,'OTHER', -1 )
10946 ELSE ra.conversion_rate
10947 END
10948 END
10949
10950 END
10951 END
10952 END
10953 FROM gl_daily_rates ra
10954 ,xla_ae_headers_gt xah
10955 ,FND_CURRENCIES fc
10956 ,FND_CURRENCIES fc1
10957 WHERE ra.conversion_date(+)=
10958 nvl(trunc(xal.currency_conversion_date), trunc(xah.accounting_date))
10959 AND ra.conversion_type (+)=
10960 CASE l_ledger_attrs.array_ledger_type(i)
10961 WHEN 'PRIMARY' THEN xal.currency_conversion_type
10962 ELSE
10963 CASE xal.currency_conversion_type
10964 WHEN 'User' THEN l_ledger_attrs.array_default_rate_type(i)
10965 ELSE
10966 CASE l_ledger_attrs.array_inhert_type_flag(i)
10967 WHEN 'Y' THEN
10968 CASE xal.currency_code
10969 WHEN l_primary_ledger_currency THEN
10970 l_ledger_attrs.array_default_rate_type(i)
10971 ELSE xal.currency_conversion_type
10972 END
10973 ELSE l_ledger_attrs.array_default_rate_type(i)
10974 END
10975 END
10976 END
10977 AND ra.from_currency (+)=
10978 CASE decode( fc.derive_type,'EURO', 'EURO','EMU',
10979 decode( sign(nvl(trunc(xal.currency_conversion_date),
10980 trunc(xah.accounting_date)) - trunc(fc.derive_effective)),
10981 -1, 'OTHER','EMU'),'OTHER' )
10982 WHEN 'EMU' THEN
10983 CASE decode( fc1.derive_type,'EURO', 'EURO','EMU',
10984 decode( sign(nvl(trunc(xal.currency_conversion_date),
10985 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
10986 -1, 'OTHER','EMU'),'OTHER' )
10987 WHEN 'OTHER' THEN l_euro
10988 ELSE decode(xal.currency_conversion_type, 'User',
10989 l_primary_ledger_currency, xal.currency_code)
10990 END
10991 ELSE decode(xal.currency_conversion_type, 'User',
10992 l_primary_ledger_currency, xal.currency_code)
10993 END
10994 AND ra.to_currency (+)=
10995 CASE decode( fc.derive_type,'EURO', 'EURO','EMU',
10996 decode( sign(nvl(trunc(xal.currency_conversion_date),
10997 trunc(xah.accounting_date)) - trunc(fc.derive_effective)),
10998 -1, 'OTHER','EMU'),'OTHER' )
10999 WHEN 'OTHER' THEN
11000 CASE decode( fc1.derive_type,'EURO', 'EURO','EMU',
11001 decode( sign(nvl(trunc(xal.currency_conversion_date),
11002 trunc(xah.accounting_date)) - trunc(fc1.derive_effective)),
11003 -1, 'OTHER','EMU'),'OTHER' )
11004 WHEN 'EMU' THEN l_euro
11005 ELSE l_ledger_attrs.array_ledger_currency_code(i)
11006 END
11007 ELSE l_ledger_attrs.array_ledger_currency_code(i)
11008 END
11009 AND xal.ae_header_id = xah.ae_header_id
11010 AND xal.ledger_id = xah.ledger_id
11011 AND xal.balance_type_code = xah.balance_type_code
11012 AND xah.balance_type_code <> 'X'
11013 )
11014 WHERE xal.gain_or_loss_flag = 'N'
11015 AND xal.ledger_id = l_ledger_attrs.array_ledger_id(i)
11016 -- AND xal.ledger_amount is null
11017 AND xal.balance_type_code <> 'X'
11018 AND xal.reversal_code is null;
11019 */
11020 /*
11021
11022 FORALL i in 1..l_max_ledger_index
11023 UPDATE xla_ae_lines_gt xal
11024 SET (xal.unrounded_accounted_dr
11025 ,xal.unrounded_accounted_cr
11026 ,xal.currency_conversion_rate
11027 )
11028 =
11029 (SELECT
11030 CASE xal.currency_code
11031 WHEN l_ledger_attrs.array_ledger_currency_code(i) THEN
11032 xal.entered_dr
11033 ELSE
11034 CASE l_ledger_attrs.array_ledger_type(i)
11035 WHEN 'PRIMARY' THEN
11036 CASE calculate_acctd_amts_flag
11037 WHEN 'Y' THEN
11038 CASE xal.currency_conversion_type
11039 WHEN 'User' THEN
11040 xal.entered_dr * xal.currency_conversion_rate
11041 ELSE
11042 xal.entered_dr * ra.conversion_rate
11043 END
11044 ELSE
11045 xal.unrounded_accounted_dr
11046 END
11047 ELSE
11048 CASE xal.currency_conversion_type
11049 WHEN 'User' THEN
11050 xal.entered_dr * xal.currency_conversion_rate * ra.conversion_rate
11051 ELSE
11052 xal.entered_dr * ra.conversion_rate
11053 END
11054 END
11055 END,
11056 CASE xal.currency_code
11057 WHEN l_ledger_attrs.array_ledger_currency_code(i) THEN
11058 xal.entered_cr
11059 ELSE
11060 CASE l_ledger_attrs.array_ledger_type(i)
11061 WHEN 'PRIMARY' THEN
11062 CASE calculate_acctd_amts_flag
11063 WHEN 'Y' THEN
11064 CASE xal.currency_conversion_type
11065 WHEN 'User' THEN
11066 xal.entered_cr * xal.currency_conversion_rate
11067 ELSE
11068 xal.entered_cr * ra.conversion_rate
11069 END
11070 ELSE
11071 xal.unrounded_accounted_cr
11072 END
11073 ELSE
11074 CASE xal.currency_conversion_type
11075 WHEN 'User' THEN
11076 xal.entered_cr * xal.currency_conversion_rate * ra.conversion_rate
11077 ELSE
11078 xal.entered_cr * ra.conversion_rate
11079 END
11080 END
11081 END,
11082 CASE xal.currency_code
11083 WHEN l_ledger_attrs.array_ledger_currency_code(i) THEN
11084 null
11085 ELSE
11086 CASE l_ledger_attrs.array_ledger_type(i)
11087 WHEN 'PRIMARY' THEN
11088 CASE calculate_acctd_amts_flag
11089 WHEN 'Y' THEN
11090 CASE xal.currency_conversion_type
11091 WHEN 'User' THEN
11092 xal.currency_conversion_rate
11093 ELSE
11094 ra.conversion_rate
11095 END
11096 ELSE
11097 xal.currency_conversion_rate
11098 END
11099 ELSE
11100 CASE xal.currency_conversion_type
11101 WHEN 'User' THEN
11102 xal.currency_conversion_rate * ra.conversion_rate
11103 ELSE
11104 ra.conversion_rate
11105 END
11106 END
11107 END
11108 FROM gl_daily_rates ra
11109 ,xla_ae_headers_gt xah
11110 WHERE ra.conversion_date(+)=
11111 nvl(trunc(xal.currency_conversion_date), trunc(xah.accounting_date))
11112 AND ra.conversion_type (+)=
11113 CASE l_ledger_attrs.array_ledger_type(i)
11114 WHEN 'PRIMARY' THEN xal.currency_conversion_type
11115 ELSE
11116 CASE xal.currency_conversion_type
11117 WHEN 'User' THEN l_ledger_attrs.array_default_rate_type(i)
11118 ELSE
11119 CASE l_ledger_attrs.array_inhert_type_flag(i)
11120 WHEN 'Y' THEN
11121 CASE xal.currency_code
11122 WHEN l_primary_ledger_currency THEN
11123 l_ledger_attrs.array_default_rate_type(i)
11124 ELSE xal.currency_conversion_type
11125 END
11126 ELSE l_ledger_attrs.array_default_rate_type(i)
11127 END
11128 END
11129 END
11130 AND ra.from_currency (+)= decode(xal.currency_conversion_type, 'User',
11131 l_primary_ledger_currency, xal.currency_code)
11132 AND ra.to_currency (+)= l_ledger_attrs.array_ledger_currency_code(i)
11133 AND xal.ae_header_id = xah.ae_header_id
11134 AND xal.ledger_id = xah.ledger_id
11135 AND xal.balance_type_code = xah.balance_type_code
11136 AND xah.balance_type_code <> 'X'
11137 )
11138 WHERE xal.gain_or_loss_flag = 'N'
11139 AND xal.ledger_id = l_ledger_attrs.array_ledger_id(i)
11140 AND xal.balance_type_code <> 'X'
11141 AND xal.reversal_code is null;
11142 */
11143
11144
11145 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11146 trace
11147 (p_msg => 'END of CalculateUnroundedAmounts'
11148 ,p_level => C_LEVEL_PROCEDURE
11149 ,p_module => l_log_module);
11150 END IF;
11151
11152 Exception
11153 When OTHERS THEN
11154 IF (C_LEVEL_UNEXPECTED>= g_log_level) THEN
11155 trace
11156 (p_msg => 'ERROR HERE:'||sqlerrm
11157 ,p_level => C_LEVEL_UNEXPECTED
11158 ,p_module => l_log_module);
11159 END IF;
11160
11161 raise;
11162
11163 END CalculateUnroundedAmounts;
11164
11165 -- bug 8773083 Modified CalculateGainLossAmounts
11166
11167 PROCEDURE CalculateGainLossAmounts
11168 is
11169 l_log_module VARCHAR2(240);
11170 l_ledger_attrs xla_accounting_cache_pkg.t_array_ledger_attrs;
11171 l_ledger_currency xla_accounting_cache_pkg.t_array_varchar;
11172 --l_primary_ledger_id NUMBER;
11173 l_temp number;
11174
11175 l_array_accounted_amount t_array_number;
11176 l_array_entered_amount t_array_number;
11177 l_array_currency_code t_array_char30;
11178 l_array_balance_type_code t_array_char1;
11179 l_array_ae_header_id t_array_number;
11180 l_array_gain_or_loss_ref t_array_char30;
11181 l_array_ledger_id t_array_number;
11182 l_array_event_id t_array_number;
11183 l_array_gain_or_loss_flag t_array_char1;
11184 l_array_cal_g_l_flag t_array_char1;
11185
11186 l_res_array_ledger_id t_array_number;
11187 l_res_array_ae_header_id t_array_number;
11188 l_res_array_temp_line_num t_array_number;
11189 l_res_array_ref_ae_header_id t_array_number;
11190 l_res_array_header_num t_array_number;
11191 l_res_array_accounted_amount t_array_number;
11192 l_res_array_entered_amount t_array_number;
11193 l_res_array_min_currency_code t_array_char30;
11194 l_res_array_max_currency_code t_array_char30;
11195 l_res_array_extract_line_num t_array_number;
11196
11197 -- 13717941: Rewritten the below sql logic.
11198 CURSOR csr_gain_loss_amts IS
11199 SELECT
11200 /*+ ordered use_hash(xal2) */
11201 NVL(SUM(xal2.unrounded_accounted_dr), 0) - NVL(SUM(xal2.unrounded_accounted_cr), 0) ,
11202 MIN(xal2.currency_code) ,
11203 MAX(xal2.currency_code) ,
11204 MIN(xal2.extract_line_num) ,
11205 iv.ledger_id ,
11206 iv.ae_header_id ,
11207 balance_type_code ,
11208 gain_or_loss_ref ,
11209 event_id
11210 FROM
11211 (SELECT
11212 /*+ NO_MERGE LEADING(gl) USE_HASH(xal) */
11213 xal.ae_header_id ,
11214 xal.ledger_id
11215 FROM xla_ae_lines_gt xal ,
11216 gl_ledgers gl
11217 WHERE xal.reversal_code IS NULL
11218 AND xal.balance_type_code <> 'X'
11219 AND xal.ledger_id = gl.ledger_id
11220 GROUP BY xal.ae_header_id ,
11221 xal.ledger_id
11222 HAVING ( SUM(
11223 CASE
11224 WHEN (xal.currency_code <> 'STAT'
11225 AND xal.currency_code <> gl.currency_code)
11226 THEN 1
11227 ELSE 0
11228 END) > 0
11229 AND SUM(
11230 CASE
11231 WHEN (NVL(xal.gain_or_loss_flag, 'N') = 'Y'
11232 AND xal.calculate_g_l_amts_flag = 'Y' )
11233 THEN 1
11234 ELSE 0
11235 END) > 0 )
11236 ) iv,
11237 XLA_AE_LINES_GT xal2
11238 WHERE NVL(xal2.gain_or_loss_flag, 'N') = 'N'
11239 AND xal2.balance_type_code <> 'X'
11240 AND (xal2.reversal_code IS NULL
11241 OR xal2.reversal_code =C_DUMMY_SAME )
11242 AND xal2.ae_header_id = iv.ae_header_id
11243 AND xal2.ledger_id = iv.ledger_id
11244 HAVING NVL(SUM(xal2.unrounded_accounted_dr), 0) <> NVL(SUM(xal2.unrounded_accounted_cr), 0)
11245 GROUP BY iv.ledger_id,
11246 iv.ae_header_id,
11247 balance_type_code,
11248 gain_or_loss_ref,
11249 event_id ;
11250
11251 BEGIN
11252 IF g_log_enabled THEN
11253 l_log_module := C_DEFAULT_MODULE||'.CalculateGainLossAmounts';
11254 END IF;
11255 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11256 trace
11257 (p_msg => 'BEGIN of CalculateGainLossAmounts'
11258 ,p_level => C_LEVEL_PROCEDURE
11259 ,p_module => l_log_module);
11260 END IF;
11261
11262
11263 --redoing code changes to multiple fixes bug 6675871 and
11264 --perf fixes via 6658161,6727907 ,5745199,5394727,6332205
11265 /* final understanding:
11266 Per distribution we'd have a DR row, a CR row and a row which is the gain/loss row (if XLA is asked to cal G/L)
11267 The demarcation is via gain_or_loss_flag. effectively the gain_or_loss_ref is either passed by subledgers or we stamp it to #extract line num,
11268 and we calculate the sum (dr-cr) for rows with GAIN_OR_LOSS_FLAG=N and then update that amount to row with GAIN_OR_LOSS_FLAG=Y
11269 of the same gain_or_loss_ref value (under the same header/ledger..).
11270 this is how we are calculating the gain loss. And we need to do this calculation ONLY when gain_or_loss_flag=Y row exists
11271 code is now similar to 120.175 except the HINTs and CURSOR.
11272 */
11273 OPEN csr_gain_loss_amts;
11274 LOOP
11275 FETCH csr_gain_loss_amts BULK COLLECT INTO l_res_array_accounted_amount
11276 ,l_res_array_min_currency_code
11277 ,l_res_array_max_currency_code
11278 ,l_res_array_extract_line_num
11279 ,l_array_ledger_id
11280 ,l_array_ae_header_id
11281 ,l_array_balance_type_code
11282 ,l_array_gain_or_loss_ref
11283 ,l_array_event_id
11284 LIMIT C_BULK_LIMIT;
11285
11286 IF l_res_array_accounted_amount.COUNT = 0 THEN
11287 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11288 trace
11289 (p_msg => 'Count 0 EXIT CalculateGainLossAmounts'
11290 ,p_level => C_LEVEL_PROCEDURE
11291 ,p_module => l_log_module);
11292 END IF;
11293 EXIT;
11294 END IF;
11295
11296 FORALL Idx IN 1 .. l_array_ae_header_id.COUNT
11297 UPDATE /*+ index(xal XLA_AE_LINES_GT_N4)*/ xla_ae_lines_gt xal --9483834 incorrect alias in the hint.
11298 SET xal.unrounded_accounted_cr =
11299 CASE sign(l_res_array_accounted_amount(Idx))
11300 WHEN -1 THEN NULL
11301 ELSE l_res_array_accounted_amount(Idx)
11302 END
11303 ,xal.unrounded_entered_cr =
11304 CASE sign(l_res_array_accounted_amount(Idx))
11305 WHEN -1 THEN NULL
11306 ELSE 0
11307 END
11308 ,xal.unrounded_accounted_dr =
11309 CASE sign(l_res_array_accounted_amount(Idx))
11310 WHEN -1 THEN 0-l_res_array_accounted_amount(Idx)
11311 ELSE NULL
11312 END
11313 ,xal.unrounded_entered_dr =
11314 CASE sign(l_res_array_accounted_amount(Idx))
11315 WHEN -1 THEN 0
11316 ELSE NULL
11317 END
11318 ,xal.currency_code =
11319 DECODE (l_res_array_min_currency_code(Idx),
11320 xal.currency_code,
11321 l_res_array_max_currency_code(Idx),
11322 l_res_array_min_currency_code(Idx))
11323 ,xal.balance_type_code = decode(l_res_array_accounted_amount(Idx), 0, 'X',
11324 decode(xal.extract_line_num,
11325 l_res_array_extract_line_num(Idx),
11326 xal.balance_type_code,
11327 'X'))
11328 WHERE nvl(xal.gain_or_loss_flag, 'N') = 'Y'
11329 AND balance_type_code <> 'X'
11330 AND xal.calculate_g_l_amts_flag = 'Y'
11331 AND xal.reversal_code is NULL
11332 AND xal.ae_header_id = l_array_ae_header_id(Idx)
11333 AND xal.balance_type_code = l_array_balance_type_code(Idx)
11334 AND xal.gain_or_loss_ref = l_array_gain_or_loss_ref(Idx)
11335 AND xal.ledger_id = l_array_ledger_id(Idx)
11336 AND (xal.currency_code <> l_res_array_min_currency_code(Idx)
11337 OR xal.currency_code <> l_res_array_max_currency_code(Idx))
11338 -- this OR condition was added in 120.173
11339 AND xal.event_id = l_array_event_id(Idx);
11340
11341 END LOOP;
11342 CLOSE csr_gain_loss_amts;
11343
11344 IF (g_num_bflow_prior_entries > 0) THEN
11345 UPDATE /*+ index(xal XLA_AE_LINES_GT_N3)*/ xla_ae_lines_gt xal --9483834 incorrect alias in the hint.
11346 SET xal.currency_code =
11347 (SELECT /*+ index(xal2 XLA_AE_LINES_GT_N4)*/ max(currency_code)
11348 FROM xla_ae_lines_gt xal2
11349 WHERE xal2.ae_header_id = xal.ae_header_id
11350 AND xal2.balance_type_code <> 'X'
11351 AND xal2.currency_code <> 'STAT' -- added for 13018249
11352 AND xal2.gain_or_loss_ref = xal.gain_or_loss_ref
11353 AND xal2.ledger_id = xal.ledger_id
11354 AND xal2.event_id = xal.event_id
11355 AND nvl(xal2.gain_or_loss_flag, 'N') = 'N'
11356 AND xal2.reversal_code = C_DUMMY_PRIOR)
11357 WHERE xal.gain_or_loss_flag = 'Y'
11358 AND balance_type_code <> 'X'
11359 AND xal.calculate_g_l_amts_flag = 'Y'
11360 AND xal.currency_code <> 'STAT' -- added for 13018249
11361 AND xal.reversal_code is NULL
11362 and (xal.ae_header_id, balance_type_code, gain_or_loss_ref, ledger_id, event_id)
11363 in
11364 (select /*+ index(xal3 XLA_AE_LINES_GT_N4)*/ ae_header_id, balance_type_code, gain_or_loss_ref, ledger_id, event_id
11365 --9483834 incorrect alias in the hint.
11366 from xla_ae_lines_gt xal3
11367 where xal3.ae_header_id = xal.ae_header_id
11368 AND xal3.balance_type_code <> 'X'
11369 AND xal3.currency_code <> 'STAT' -- added for 13018249
11370 AND xal3.gain_or_loss_ref = xal.gain_or_loss_ref
11371 AND xal3.ledger_id = xal.ledger_id
11372 AND xal3.event_id = xal.event_id
11373 AND nvl(xal3.gain_or_loss_flag, 'N') = 'N'
11374 and xal3.reversal_code = C_DUMMY_PRIOR);
11375 END IF;
11376
11377
11378 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11379 trace
11380 (p_msg => 'END of CalculateGainLossAmounts'
11381 ,p_level => C_LEVEL_PROCEDURE
11382 ,p_module => l_log_module);
11383 END IF;
11384 Exception
11385 When OTHERS THEN
11386 raise;
11387
11388 END CalculateGainLossAmounts;
11389
11390
11391
11392
11393 /*======================================================================+
11394 | |
11395 | Public Procedure- Business Flow Validaton - 4219869 |
11396 | |
11397 | |
11398 +======================================================================*/
11399 PROCEDURE Business_Flow_Validation
11400 (p_business_method_code IN VARCHAR2
11401 ,p_business_class_code IN VARCHAR2
11402 ,p_inherit_description_flag IN VARCHAR2) IS
11403
11404 l_log_module VARCHAR2(240);
11405 l_ledger_ccy VARCHAR2(30);
11406 BEGIN
11407 IF g_log_enabled THEN
11408 l_log_module := C_DEFAULT_MODULE||'.Business_Flow_Validation';
11409 END IF;
11410 --
11411 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11412 trace
11413 (p_msg => 'BEGIN of Business_Flow_Validation'
11414 ,p_level => C_LEVEL_PROCEDURE
11415 ,p_module => l_log_module);
11416 END IF;
11417
11418 g_rec_lines.array_business_method_code(g_LineNumber) := p_business_method_code;
11419 --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
11420 g_rec_lines.array_inherit_desc_flag(g_LineNumber) := p_inherit_description_flag;
11421
11422 IF p_inherit_description_flag = 'Y' THEN
11423 g_rec_lines.array_description(g_LineNumber) := NULL;
11424 END IF;
11425
11426 IF p_business_method_code = C_METHOD_PRIOR THEN
11427
11428 ------------------------------------------------
11429 -- Validate the applied-to accounting attributes
11430 ------------------------------------------------
11431 ValidateBFlowLinks;
11432
11433 -------------------------------------------------
11434 -- Reset values for certain fields in g_rec_lines
11435 -------------------------------------------------
11436 /* 4482069 This will be set in xla_cmp_acct_line_type_pkg.GetAccountingSources
11437 l_ledger_ccy := xla_accounting_cache_pkg.GetValueChar(
11438 p_source_code => 'XLA_CURRENCY_CODE'
11439 ,p_target_ledger_id=> g_rec_lines.array_ledger_id(g_LineNumber));
11440 g_rec_lines.array_currency_code(g_LineNumber) := l_ledger_ccy;
11441 */
11442
11443 --g_rec_lines.array_currency_mau(g_LineNumber) := xla_accounting_cache_pkg.GetCurrencyMau(l_ledger_ccy);
11444 g_rec_lines.array_curr_conversion_date(g_LineNumber) := NULL;
11445 g_rec_lines.array_curr_conversion_rate(g_LineNumber) := NULL;
11446 g_rec_lines.array_curr_conversion_type(g_LineNumber) := NULL;
11447 g_rec_lines.array_party_type_code(g_LineNumber) := NULL;
11448 g_rec_lines.array_party_id(g_LineNumber) := NULL;
11449 g_rec_lines.array_party_site_id(g_LineNumber) := NULL;
11450 g_rec_lines.array_encumbrance_type_id(g_LineNumber) := NULL;
11451
11452 ----------------------------------
11453 -- Set reversal code to DUMMY_BFPE
11454 ----------------------------------
11455 g_rec_lines.array_reversal_code(g_LineNumber) := C_DUMMY_PRIOR;
11456
11457 ------------------------------------------------------
11458 -- Increment number of business flow prior entry lines
11459 ------------------------------------------------------
11460 g_num_bflow_prior_entries := g_num_bflow_prior_entries + 1;
11461
11462 ELSIF p_business_method_code = C_METHOD_SAME THEN
11463
11464 ----------------------------------
11465 -- Set reversal code to DUMMY_BFSE
11466 ----------------------------------
11467 g_rec_lines.array_reversal_code(g_LineNumber) := C_DUMMY_SAME;
11468
11469 -----------------------------------------------------
11470 -- Increment number of business flow same entry lines
11471 -----------------------------------------------------
11472 g_num_bflow_same_entries := g_num_bflow_same_entries + 1;
11473
11474 END IF;
11475
11476
11477 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11478 trace
11479 (p_msg => 'END of Business_Flow_Validation'
11480 ,p_level => C_LEVEL_PROCEDURE
11481 ,p_module => l_log_module);
11482 END IF;
11483
11484 EXCEPTION
11485 --
11486 WHEN xla_exceptions_pkg.application_exception THEN
11487 RAISE;
11488 WHEN OTHERS THEN
11489 xla_exceptions_pkg.raise_message
11490 (p_location => 'xla_ae_lines_pkg.Business_Flow_Validation');
11491 --
11492 END Business_Flow_Validation;
11493
11494
11495 /*======================================================================+
11496 | |
11497 | Public Procedure- Business Flow Prior Entry - 4219869 |
11498 | |
11499 | |
11500 +======================================================================*/
11501 PROCEDURE BusinessFlowPriorEntries
11502 (p_accounting_mode IN VARCHAR2
11503 ,p_ledger_id IN NUMBER
11504 ,p_bc_mode IN VARCHAR2)
11505 IS
11506
11507 --------------------------------------------------------------------------------
11508 -- 5357406 - prior entry performance fix
11509 l_array_row_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11510 l_array_ccid XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11511 l_array_description XLA_AE_JOURNAL_ENTRY_PKG.t_array_V4000L;
11512 l_array_currency_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V15L;
11513 l_array_curr_conversion_rate XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11514 l_array_curr_conversion_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11515 l_array_curr_conversion_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
11516 l_array_currency_mau XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11517 l_array_unrounded_entered_cr XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11518 l_array_unrounded_entered_dr XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11519 l_array_party_type_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V1L;
11520 l_array_party_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11521 l_array_party_site_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11522 l_array_encumbrance_type_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Int;
11523 l_array_ccid_status_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11524 l_array_ref_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11525 l_array_temp_ref_ae_header_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11526 l_array_ref_ae_line_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11527 l_array_ref_temp_line_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11528 l_array_bflow_pe_status_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11529 l_array_pe_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11530 l_array_pe_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11531
11532
11533 CURSOR c_bflow_ae_lines IS
11534 SELECT gt.ROW_ID
11535 ,gt.code_combination_id
11536 ,gt.description
11537 ,gt.currency_code
11538 ,gt.currency_conversion_rate
11539 ,gt.currency_conversion_type
11540 ,gt.currency_conversion_date
11541 ,gt.entered_currency_mau
11542 ,gt.unrounded_entered_cr
11543 ,gt.unrounded_entered_dr
11544 ,gt.party_type_code
11545 ,gt.party_id
11546 ,gt.party_site_id
11547 ,gt.encumbrance_type_id
11548 ,gt.code_combination_status_code
11549 ,gt.ref_event_id
11550 ,gt.temp_ref_ae_header_id
11551 ,gt.ref_ae_line_num
11552 ,gt.ref_temp_line_num
11553 ,gt.bflow_prior_entry_status_code
11554 ,gt.applied_to_entity_id
11555 --Added for 9352035
11556 ,gt.DERIVED_EXCH_RATE
11557 FROM (SELECT /*+Leading(xalg xte) use_nl(xalg xte xah xal xdl) */
11558 -- Bug 8250875 changed hint to xah xal and xdl
11559 -- Bug 12689818 changed leading hint to xalg xte
11560 xalg.ROWID ROW_ID
11561 --Added for bug 12379106
11562 , RANK() OVER ( PARTITION BY xalg.ROWID
11563 ORDER BY xe.event_number desc, xdl.ae_header_id desc, xdl.ae_line_num ASC ) line_rank
11564 ,(NVL(xal.merge_code_combination_id,xal.code_combination_id)) code_combination_id
11565 ,(DECODE(xalg.inherit_desc_flag, 'Y', xal.description, xalg.description)) description
11566 ,(xal.currency_code) currency_code
11567 ,(DECODE(xal.currency_code
11568 ,xla_accounting_cache_pkg.GetValueChar('XLA_CURRENCY_CODE',xalg.ledger_id)
11569 ,NULL
11570 ,xal.currency_conversion_rate)) currency_conversion_rate
11571 ,(DECODE(xal.currency_code
11572 ,xla_accounting_cache_pkg.GetValueChar('XLA_CURRENCY_CODE',xalg.ledger_id)
11573 ,NULL
11574 ,xal.currency_conversion_type)) currency_conversion_type
11575 ,(DECODE(xal.currency_code
11576 ,xla_accounting_cache_pkg.GetValueChar('XLA_CURRENCY_CODE',xalg.ledger_id)
11577 ,NULL
11578 ,xal.currency_conversion_date)) currency_conversion_date
11579 ,(xla_accounting_cache_pkg.GetCurrencyMau(xal.currency_code)) entered_currency_mau
11580 ,(DECODE(xdl.calculate_acctd_amts_flag
11581 ,'N', DECODE(xalg.currency_code
11582 ,xla_accounting_cache_pkg.GetValueChar('XLA_CURRENCY_CODE',xalg.ledger_id)
11583 ,NVL(xalg.unrounded_accounted_cr,xalg.unrounded_entered_cr)
11584 ,xalg.unrounded_entered_cr)
11585 ,xalg.unrounded_entered_cr) ) unrounded_entered_cr
11586 ,(DECODE(xdl.calculate_acctd_amts_flag
11587 ,'N', DECODE(xalg.currency_code
11588 ,xla_accounting_cache_pkg.GetValueChar('XLA_CURRENCY_CODE',xalg.ledger_id)
11589 ,NVL(xalg.unrounded_accounted_dr,xalg.unrounded_entered_dr)
11590 ,xalg.unrounded_entered_dr)
11591 ,xalg.unrounded_entered_dr)) unrounded_entered_dr
11592 ,(xal.party_type_code) party_type_code
11593 ,(NVL(xal.merge_party_id,xal.party_id)) party_id
11594 ,(NVL(xal.merge_party_site_id,xal.party_site_id)) party_site_id
11595 ,(xal.encumbrance_type_id) encumbrance_type_id
11596 ,C_CREATED code_combination_status_code
11597 ,(xdl.event_id) ref_event_id
11598 ,(xdl.ae_header_id) temp_ref_ae_header_id
11599 ,(xal.ae_line_num) ref_ae_line_num
11600 ,(xdl.temp_line_num) ref_temp_line_num
11601 ,(DECODE(xalg.currency_code,xal.currency_code,xah.accounting_entry_status_code,
11602 DECODE(xalg.bflow_applied_to_amount, NULL, 'X', xah.accounting_entry_status_code))) bflow_prior_entry_status_code
11603 ,(xah.entity_id) applied_to_entity_id
11604 --Added for 9352035
11605 ,(DECODE(xal.currency_code
11606 ,xla_accounting_cache_pkg.GetValueChar('XLA_CURRENCY_CODE',xalg.ledger_id)
11607 ,NULL
11608 ,DECODE (xdl.unrounded_accounted_dr,NULL
11609 ,CASE WHEN nvl(xdl.unrounded_entered_cr,0) <> 0
11610 THEN
11611 (xdl.unrounded_accounted_cr/xdl.unrounded_entered_cr)
11612 ELSE xal.currency_conversion_rate END
11613 ,CASE WHEN nvl(xdl.unrounded_entered_dr,0) <> 0
11614 THEN
11615 (xdl.unrounded_accounted_dr/xdl.unrounded_entered_dr)
11616 ELSE xal.currency_conversion_rate END
11617 )
11618 )
11619 ) DERIVED_EXCH_RATE
11620 FROM xla_ae_lines_gt xalg
11621 ,xla_transaction_entities xte
11622 ,xla_ae_headers xah
11623 ,xla_distribution_links xdl
11624 ,xla_ae_lines xal
11625 --Added for bug 12379106
11626 ,xla_events xe
11627 -- ,xla_ledger_relationships_v xlr
11628 -- ,xla_gl_ledgers_v xgl
11629 -- ,xla_ledger_options xlo
11630 WHERE xah.application_id = xdl.application_id
11631 AND xah.ae_header_id = xdl.ae_header_id
11632 -- Bug 8250875 join headers to lines also
11633 AND xah.application_id = xal.application_id
11634 AND xah.ae_header_id = xal.ae_header_id
11635 AND xal.application_id = xdl.application_id
11636 AND xal.ae_header_id = xdl.ae_header_id
11637 AND xal.ae_line_num = xdl.ae_line_num
11638 AND xal.business_class_code = xalg.business_class_code
11639 AND xdl.source_distribution_type = xalg.bflow_distribution_type
11640 AND xdl.source_distribution_id_num_1 = NVL(xalg.bflow_dist_id_num_1,-99)
11641 AND NVL(xdl.source_distribution_id_num_2,-99) = NVL(xalg.bflow_dist_id_num_2,-99)
11642 AND NVL(xdl.source_distribution_id_num_3,-99) = NVL(xalg.bflow_dist_id_num_3,-99)
11643 AND NVL(xdl.source_distribution_id_num_4,-99) = NVL(xalg.bflow_dist_id_num_4,-99)
11644 AND NVL(xdl.source_distribution_id_num_5,-99) = NVL(xalg.bflow_dist_id_num_5,-99)
11645 AND NVL(xdl.source_distribution_id_char_1,' ') = NVL(xalg.bflow_dist_id_char_1,' ')
11646 AND NVL(xdl.source_distribution_id_char_2,' ') = NVL(xalg.bflow_dist_id_char_2,' ')
11647 AND NVL(xdl.source_distribution_id_char_3,' ') = NVL(xalg.bflow_dist_id_char_3,' ')
11648 AND NVL(xdl.source_distribution_id_char_4,' ') = NVL(xalg.bflow_dist_id_char_4,' ')
11649 AND NVL(xdl.source_distribution_id_char_5,' ') = NVL(xalg.bflow_dist_id_char_5,' ')
11650 AND xah.parent_ae_header_id IS NULL
11651 --Added for bug 12379106
11652 AND xe.application_id = xah.application_id
11653 AND xe.event_id = xah.event_id
11654 --
11655 -- exclude reversed entries
11656 -- When running in BC mode, draft reversal entries are not considered
11657 -- ignore exclude reversal for AP.6647974/6614418
11658 AND NOT EXISTS (SELECT /*+ no_unnest */ 1
11659 FROM xla_distribution_links xdl4
11660 , xla_ae_headers xah4
11661 WHERE xdl4.ref_ae_header_id = xdl.ae_header_id
11662 AND xdl4.application_id = xdl.application_id
11663 AND xdl4.temp_line_num = xdl.temp_line_num * -1
11664 AND xah4.application_id = xdl4.application_id
11665 AND xah4.ae_header_id = xdl4.ae_header_id
11666 AND xah4.application_id <> 200
11667 AND xdl4.application_id <> 200
11668 AND (xah4.accounting_entry_status_code = 'F' OR
11669 (xah4.accounting_entry_status_code = 'D' AND
11670 p_accounting_mode = 'D' AND
11671 p_bc_mode = 'NONE')))
11672 AND xdl.application_id = xalg.bflow_application_id
11673 --
11674 -- AND xgl.ledger_id = xalg.ledger_id
11675 -- AND xlr.ledger_id = xgl.ledger_id
11676 AND xte.application_id = xalg.bflow_application_id
11677 AND xte.entity_code = xalg.bflow_entity_code
11678 AND xte.ledger_id = p_ledger_id
11679 -- AND xte.ledger_id = DECODE(xla_accounting_cache_pkg.GetValueChar('VALUATION_METHOD_FLAG'),
11680 -- 'N', xlr.primary_ledger_id,
11681 -- DECODE(xlr.ledger_category_code
11682 -- ,'ALC', xlr.primary_ledger_id
11683 -- ,DECODE(NVL(xlo.capture_event_flag,'N'),'N',xlr.primary_ledger_id
11684 -- ,xlr.ledger_id))) -- 5204178 requires secondary ledger event
11685 -- AND xlo.ledger_id (+) = xgl.ledger_id
11686 -- AND xlo.application_id (+) = g_application_id
11687 --
11688 AND NVL(xte.source_id_int_1,-99) = NVL(xalg.bflow_source_id_num_1,-99)
11689 AND NVL(xte.source_id_int_2,-99) = NVL(xalg.bflow_source_id_num_2,-99)
11690 AND NVL(xte.source_id_int_3,-99) = NVL(xalg.bflow_source_id_num_3,-99)
11691 AND NVL(xte.source_id_int_4,-99) = NVL(xalg.bflow_source_id_num_4,-99)
11692 AND NVL(xte.source_id_char_1,' ') = NVL(xalg.bflow_source_id_char_1,' ')
11693 AND NVL(xte.source_id_char_2,' ') = NVL(xalg.bflow_source_id_char_2,' ')
11694 AND NVL(xte.source_id_char_3,' ') = NVL(xalg.bflow_source_id_char_3,' ')
11695 AND NVL(xte.source_id_char_4,' ') = NVL(xalg.bflow_source_id_char_4,' ')
11696 --
11697 AND xah.application_id = xte.application_id
11698 AND xah.ledger_id = xalg.ledger_id
11699 AND xah.entity_id = xte.entity_id
11700 AND xah.balance_type_code = xalg.balance_type_code
11701 --
11702 AND xdl.event_id = xah.event_id
11703 --
11704 AND xah.accounting_entry_status_code IN ('F', DECODE(p_bc_mode,'NONE',p_accounting_mode,'F'))
11705 AND xalg.reversal_code = C_DUMMY_PRIOR
11706 ) gt
11707 WHERE gt.line_rank = 1;
11708 --------------------------------------------------------------------------------
11709
11710 CURSOR c_bflow_valid_lines IS
11711 SELECT ae_header_id,
11712 event_id,
11713 ledger_id,
11714 balance_type_code,
11715 temp_line_num
11716 FROM xla_ae_lines_gt
11717 WHERE reversal_code = C_DUMMY_PRIOR
11718 AND bflow_prior_entry_status_code IS NOT NULL AND bflow_prior_entry_status_code <> 'X'; -- 5132302 if applied to amt is null
11719 --AND (bflow_prior_entry_status_code IN ('F', DECODE(p_accounting_mode, 'D', 'D', 'F')));
11720
11721 l_array_line_num xla_cmp_source_pkg.t_array_Num;
11722
11723
11724 CURSOR c_bflow_err_lines IS
11725 SELECT /*+ index(xte xla_transaction_entities_n1) */ xal.ae_header_id
11726 ,xal.temp_line_num
11727 ,xal.event_id
11728 ,xal.ledger_id
11729 ,xal.bflow_prior_entry_status_code
11730 ,xal.balance_type_code
11731 ,xal.entity_id
11732 ,fav.application_name
11733 ,fav.application_id -- 11776012
11734 ,'N'
11735 ,gl.ledger_category_code
11736 ,glp.start_date
11737 ,xte.entity_id xte_entity_id
11738 ,xte.entity_code
11739 FROM xla_ae_lines_gt xal
11740 ,fnd_application_vl fav
11741 ,gl_ledgers gl
11742 ,gl_period_statuses glp
11743 ,xla_transaction_entities_upg xte
11744 WHERE ((reversal_code = C_DUMMY_PRIOR
11745 AND NVL(bflow_prior_entry_status_code,'X') = 'X') -- 5132302
11746 OR reversal_code = C_MPA_PRIOR_ENTRY) -- 4655713b
11747 AND fav.application_id(+) = xal.bflow_application_id
11748 AND xal.ledger_id = gl.ledger_id
11749 AND glp.period_name = gl.first_ledger_period_name
11750 AND glp.ledger_id = gl.ledger_id
11751 AND glp.application_id = 101
11752 AND NVL(xte.source_id_int_1(+),-99) = NVL(xal.bflow_source_id_num_1,-99)
11753 AND NVL(xte.source_id_int_2(+),-99) = NVL(xal.bflow_source_id_num_2,-99)
11754 AND NVL(xte.source_id_int_3(+),-99) = NVL(xal.bflow_source_id_num_3,-99)
11755 AND NVL(xte.source_id_int_4(+),-99) = NVL(xal.bflow_source_id_num_4,-99)
11756 AND NVL(xte.source_id_char_1(+),' ') = NVL(xal.bflow_source_id_char_1,' ')
11757 AND NVL(xte.source_id_char_2(+),' ') = NVL(xal.bflow_source_id_char_2,' ')
11758 AND NVL(xte.source_id_char_3(+),' ') = NVL(xal.bflow_source_id_char_3,' ')
11759 AND NVL(xte.source_id_char_4(+),' ') = NVL(xal.bflow_source_id_char_4,' ')
11760 AND xte.ledger_id (+) = p_ledger_id
11761 AND xte.application_id (+)= xal.bflow_application_id
11762 AND xte.entity_code (+) = xal.bflow_entity_code;
11763
11764 l_log_module VARCHAR2(240);
11765 l_array_ae_header_id xla_cmp_source_pkg.t_array_Num;
11766 l_array_event_id xla_cmp_source_pkg.t_array_Num;
11767 l_array_ledger_id xla_cmp_source_pkg.t_array_Num;
11768 l_array_bflow_prior_status xla_cmp_source_pkg.t_array_VL30;
11769 l_array_balance_type_code xla_cmp_source_pkg.t_array_VL30;
11770 l_array_entity_id xla_cmp_source_pkg.t_array_Num;
11771 l_array_app_name xla_cmp_source_pkg.t_array_VL240;
11772 l_array_app_id xla_cmp_source_pkg.t_array_Num; -- 11776012
11773 l_array_hist_bflow_err xla_cmp_source_pkg.t_array_Num;
11774
11775 -- 4655713b MPA and Accrual Reversal
11776 l_array_mpa_segment1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11777 l_array_mpa_segment2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11778 l_array_mpa_segment3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11779 l_array_mpa_segment4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11780 l_array_mpa_segment5 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11781 l_array_mpa_segment6 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11782 l_array_mpa_segment7 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11783 l_array_mpa_segment8 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11784 l_array_mpa_segment9 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11785 l_array_mpa_segment10 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11786 l_array_mpa_segment11 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11787 l_array_mpa_segment12 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11788 l_array_mpa_segment13 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11789 l_array_mpa_segment14 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11790 l_array_mpa_segment15 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11791 l_array_mpa_segment16 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11792 l_array_mpa_segment17 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11793 l_array_mpa_segment18 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11794 l_array_mpa_segment19 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11795 l_array_mpa_segment20 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11796 l_array_mpa_segment21 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11797 l_array_mpa_segment22 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11798 l_array_mpa_segment23 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11799 l_array_mpa_segment24 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11800 l_array_mpa_segment25 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11801 l_array_mpa_segment26 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11802 l_array_mpa_segment27 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11803 l_array_mpa_segment28 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11804 l_array_mpa_segment29 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11805 l_array_mpa_segment30 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11806 l_array_mpa_ccid XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11807 l_array_mpa_ccid_status_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11808 l_array_mpa_description XLA_AE_JOURNAL_ENTRY_PKG.t_array_V4000L;
11809 l_array_mpa_currency_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V15L;
11810 l_array_mpa_currency_code_pe XLA_AE_JOURNAL_ENTRY_PKG.t_array_V15L; -- 5132302
11811 l_array_mpa_curr_conv_rate XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11812 l_array_mpa_curr_conv_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11813 l_array_mpa_curr_conv_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
11814 l_array_mpa_currency_mau XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11815 l_array_mpa_party_type_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V1L;
11816 l_array_mpa_party_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11817 l_array_mpa_party_site_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11818 l_array_mpa_encum_type_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Int;
11819 l_array_mpa_acct_cr_ratio XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11820 l_array_mpa_acct_dr_ratio XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11821 l_array_mpa_ledger_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
11822 l_array_mpa_ref_ae_header_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
11823 l_array_mpa_temp_line_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
11824 l_array_mpa_ae_header_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
11825 l_array_mpa_header_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
11826 l_array_acc_rev_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V1L; -- join conditions
11827 --Added for 9352035
11828 l_DERIVED_EXCH_RATE XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
11829
11830 -- Historic upgrade
11831 l_array_ledger_category XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11832 l_array_period_start_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
11833 l_array_bflow_historic XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
11834 l_primary_start_date DATE;
11835 l_hist_count NUMBER :=0;
11836
11837 BEGIN
11838 IF g_log_enabled THEN
11839 l_log_module := C_DEFAULT_MODULE||'.BusinessFlowPriorEntries';
11840 END IF;
11841 --
11842 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11843 trace
11844 (p_msg => 'BEGIN of BusinessFlowPriorEntries'
11845 ,p_level => C_LEVEL_PROCEDURE
11846 ,p_module => l_log_module);
11847 trace
11848 (p_msg => 'p_accounting_mode = '||p_accounting_mode
11849 ,p_level => C_LEVEL_PROCEDURE
11850 ,p_module => l_log_module);
11851 trace
11852 (p_msg => 'p_bc_mode = '||p_bc_mode
11853 ,p_level => C_LEVEL_PROCEDURE
11854 ,p_module => l_log_module);
11855 trace
11856 (p_msg => 'method = '||xla_accounting_cache_pkg.GetValueChar('VALUATION_METHOD_FLAG')
11857 ,p_level => C_LEVEL_PROCEDURE
11858 ,p_module => l_log_module);
11859 trace
11860 (p_msg => 'g_mpa_accrual_exists = '||xla_accounting_pkg.g_mpa_accrual_exists
11861 ,p_level => C_LEVEL_PROCEDURE
11862 ,p_module => l_log_module);
11863 END IF;
11864
11865 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
11866 trace
11867 (p_msg => 'g_num_bflow_prior_entries = '||g_num_bflow_prior_entries
11868 ,p_level => C_LEVEL_STATEMENT
11869 ,p_module => l_log_module);
11870 END IF;
11871
11872
11873 IF (g_num_bflow_prior_entries > 0) THEN
11874
11875 --
11876 -- Update DUMMY_BFPE rows based on upstream journal lines in XLA_AE_LINES
11877 --
11878
11879 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
11880
11881 FOR c IN c_bflow_ae_lines LOOP
11882 trace
11883 (p_msg => 'ae_header='||c.temp_ref_ae_header_id||
11884 ' ae_line='||c.ref_ae_line_num
11885 ,p_level => C_LEVEL_EVENT
11886 ,p_module => l_log_module);
11887 END LOOP;
11888
11889 FOR l IN (SELECT * FROM xla_ae_lines_gt WHERE reversal_code = C_DUMMY_PRIOR) LOOP
11890 trace(p_msg => 'event_id='||l.event_id||
11891 ' ae_header_id='||l.ae_header_id
11892 ,p_level => C_LEVEL_STATEMENT
11893 ,p_module => l_log_module);
11894 trace(p_msg => ' business_class_code='||l.business_class_code||
11895 ' bflow_application_id='||l.bflow_application_id||
11896 ' ledger_id='||l.ledger_id||
11897 ' bflow_entity_code='||l.bflow_entity_code||
11898 ' balance_type_code='||l.balance_type_code||
11899 ' bflow_applied_to_amt='||l.bflow_applied_to_amount|| -- 5132302
11900 ' currency_code='||l.currency_code|| -- 5132302
11901 ' source_distribution_type='||l.source_distribution_type||
11902 ' bflow_distribution_type='||l.bflow_distribution_type
11903 ,p_level => C_LEVEL_STATEMENT
11904 ,p_module => l_log_module);
11905 trace (p_msg => ' bflow_dist_id_num_1='||l.bflow_dist_id_num_1||
11906 ' bflow_dist_id_num_2='||l.bflow_dist_id_num_2||
11907 ' bflow_dist_id_num_3='||l.bflow_dist_id_num_3||
11908 ' bflow_dist_id_num_4='||l.bflow_dist_id_num_4||
11909 ' bflow_dist_id_num_5='||l.bflow_dist_id_num_5||
11910 ' bflow_dist_id_char_1='||l.bflow_dist_id_char_1||
11911 ' bflow_dist_id_char_2='||l.bflow_dist_id_char_2||
11912 ' bflow_dist_id_char_3='||l.bflow_dist_id_char_3||
11913 ' bflow_dist_id_char_4='||l.bflow_dist_id_char_4||
11914 ' bflow_dist_id_char_5='||l.bflow_dist_id_char_5||
11915 ' override_acctd_amt_flag='||l.override_acctd_amt_flag
11916 ,p_level => C_LEVEL_STATEMENT
11917 ,p_module => l_log_module);
11918 trace
11919 (p_msg => ' bflow_source_id_num_1='||l.bflow_source_id_num_1||
11920 ' bflow_source_id_num_2='||l.bflow_source_id_num_2||
11921 ' bflow_source_id_num_3='||l.bflow_source_id_num_3||
11922 ' bflow_source_id_num_4='||l.bflow_source_id_num_4||
11923 ' bflow_source_id_char_1='||l.bflow_source_id_char_1||
11924 ' bflow_source_id_char_2='||l.bflow_source_id_char_2||
11925 ' bflow_source_id_char_3='||l.bflow_source_id_char_3||
11926 ' bflow_source_id_char_4='||l.bflow_source_id_char_4
11927 ,p_level => C_LEVEL_STATEMENT
11928 ,p_module => l_log_module);
11929 END LOOP;
11930 END IF;
11931
11932 ----------------------------------------------------------------
11933 -- 5357406 - prior entry performance fix
11934 OPEN c_bflow_ae_lines;
11935
11936 LOOP FETCH c_bflow_ae_lines BULK COLLECT INTO
11937 l_array_row_id
11938 ,l_array_ccid
11939 ,l_array_description
11940 ,l_array_currency_code
11941 ,l_array_curr_conversion_rate
11942 ,l_array_curr_conversion_type
11943 ,l_array_curr_conversion_date
11944 ,l_array_currency_mau
11945 ,l_array_unrounded_entered_cr
11946 ,l_array_unrounded_entered_dr
11947 ,l_array_party_type_code
11948 ,l_array_party_id
11949 ,l_array_party_site_id
11950 ,l_array_encumbrance_type_id
11951 ,l_array_ccid_status_code
11952 ,l_array_ref_event_id
11953 ,l_array_temp_ref_ae_header_id
11954 ,l_array_ref_ae_line_num
11955 ,l_array_ref_temp_line_num
11956 ,l_array_bflow_pe_status_code
11957 ,l_array_pe_entity_id
11958 ,l_DERIVED_EXCH_RATE --Added for 9352035
11959 LIMIT C_BULK_LIMIT;
11960
11961 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
11962 trace
11963 (p_module => l_log_module
11964 ,p_msg => 'Count of prior entry =' || l_array_row_id.COUNT
11965 ,p_level => C_LEVEL_STATEMENT
11966 );
11967 END IF;
11968
11969 IF l_array_row_id.COUNT = 0 THEN
11970 EXIT;
11971 END IF;
11972
11973 FORALL i IN 1..l_array_row_id.LAST
11974 UPDATE xla_ae_lines_gt
11975 SET code_combination_id = l_array_ccid (i)
11976 ,description = l_array_description (i)
11977 ,temp_currency_code = l_array_currency_code (i) -- upstream currency code
11978 ,currency_conversion_rate = l_array_curr_conversion_rate (i)
11979 ,currency_conversion_type = l_array_curr_conversion_type (i)
11980 ,currency_conversion_date = TRUNC(l_array_curr_conversion_date (i))
11981 ,entered_currency_mau = l_array_currency_mau (i)
11982 ,unrounded_entered_cr = l_array_unrounded_entered_cr (i)
11983 ,unrounded_entered_dr = l_array_unrounded_entered_dr (i)
11984 ,party_type_code = l_array_party_type_code (i)
11985 ,party_id = l_array_party_id (i)
11986 ,party_site_id = l_array_party_site_id (i)
11987 ,encumbrance_type_id = l_array_encumbrance_type_id (i)
11988 ,code_combination_status_code = l_array_ccid_status_code (i)
11989 ,ref_event_id = l_array_ref_event_id (i)
11990 ,temp_ref_ae_header_id = l_array_temp_ref_ae_header_id (i)
11991 ,ref_ae_line_num = l_array_ref_ae_line_num (i)
11992 ,ref_temp_line_num = l_array_ref_temp_line_num (i)
11993 ,bflow_prior_entry_status_code = l_array_bflow_pe_status_code (i)
11994 ,applied_to_entity_id = l_array_pe_entity_id (i)
11995 ,DERIVED_EXCH_RATE = l_DERIVED_EXCH_RATE(i) --Added for 9352035
11996 WHERE rowid = l_array_row_id (i);
11997 END LOOP;
11998 CLOSE c_bflow_ae_lines;
11999 ----------------------------------------------------------------
12000
12001 ----------------------------------------------------------------
12002 /* performance bug 5357406
12003 UPDATE xla_ae_lines_gt xalg
12004 SET (code_combination_id
12005 ,description
12006 ,temp_currency_code -- upstream currency code
12007 ,currency_conversion_rate
12008 ,currency_conversion_type
12009 ,currency_conversion_date
12010 ,entered_currency_mau -- 4482069
12011 ,unrounded_entered_cr -- 4482069
12012 ,unrounded_entered_dr -- 4482069
12013 ,party_type_code
12014 ,party_id
12015 ,party_site_id
12016 ,encumbrance_type_id
12017 ,code_combination_status_code
12018 ,ref_event_id
12019 ,temp_ref_ae_header_id
12020 ,ref_ae_line_num
12021 ,ref_temp_line_num
12022 ,bflow_prior_entry_status_code
12023 ,applied_to_entity_id
12024 ) =
12025 (SELECT MIN(NVL(xal3.merge_code_combination_id,xal3.code_combination_id)) -- 4967526
12026 ,MIN(DECODE(xalg.inherit_desc_flag, 'Y', xal3.description, xalg.description))
12027 ,MIN(xal3.currency_code)
12028 ,MIN(DECODE(xal3.currency_code
12029 ,xla_accounting_cache_pkg.GetValueChar('XLA_CURRENCY_CODE',xalg.ledger_id)
12030 ,NULL
12031 ,xal3.currency_conversion_rate))
12032 ,MIN(DECODE(xal3.currency_code
12033 ,xla_accounting_cache_pkg.GetValueChar('XLA_CURRENCY_CODE',xalg.ledger_id)
12034 ,NULL
12035 ,xal3.currency_conversion_type))
12036 ,MIN(DECODE(xal3.currency_code
12037 ,xla_accounting_cache_pkg.GetValueChar('XLA_CURRENCY_CODE',xalg.ledger_id)
12038 ,NULL
12039 ,xal3.currency_conversion_date))
12040 ---------------------------------------------------------------------------
12041 -- 4482069 error XLA_AP_INVALID_AMT_BASE
12042 -- Occurs when upstream is invalid so c_bflow_valid_lines
12043 -- is not found hence entered amounts will not calc.
12044 -- Upstream invalid need not prevent this value to be assigned.
12045 ---------------------------------------------------------------------------
12046 ,MIN(xla_accounting_cache_pkg.GetCurrencyMau(xal3.currency_code))
12047 ---------------------------------------------------------------------------
12048 -- 4482069 based on calculate_acctd_amts_flag and transaction currency
12049 -- Note: In theory, when calculate_acctd_amts_flag is 'No', entered and
12050 -- accounted amt should be the same (therefore we need not recalc
12051 -- accounted amt.) But just in case, perform the following copy to
12052 -- make sure they will be the same.
12053 ---------------------------------------------------------------------------
12054 ,MIN(DECODE(calculate_acctd_amts_flag
12055 ,'N', DECODE(xalg.currency_code
12056 ,xla_accounting_cache_pkg.GetValueChar('XLA_CURRENCY_CODE',xalg.ledger_id)
12057 ,NVL(xalg.unrounded_accounted_cr,xalg.unrounded_entered_cr)
12058 ,xalg.unrounded_entered_cr)
12059 ,xalg.unrounded_entered_cr) )
12060 ---------------------------------------------------------------------------
12061 -- 4482069 based on calculate_acctd_amts_flag and transaction currency
12062 ---------------------------------------------------------------------------
12063 ,MIN(DECODE(calculate_acctd_amts_flag
12064 ,'N', DECODE(xalg.currency_code
12065 ,xla_accounting_cache_pkg.GetValueChar('XLA_CURRENCY_CODE',xalg.ledger_id)
12066 ,NVL(xalg.unrounded_accounted_dr,xalg.unrounded_entered_dr)
12067 ,xalg.unrounded_entered_dr)
12068 ,xalg.unrounded_entered_dr))
12069 ,MIN(xal3.party_type_code)
12070 ,MIN(NVL(xal3.merge_party_id,xal3.party_id)) -- 4967526
12071 ,MIN(NVL(xal3.merge_party_site_id,xal3.party_site_id)) -- 4967526
12072 ,MIN(xal3.encumbrance_type_id)
12073 ,C_CREATED
12074 ,MIN(xdl3.event_id)
12075 ,MIN(xdl3.ae_header_id)
12076 ,MIN(xal3.ae_line_num)
12077 ,MIN(xdl3.temp_line_num)
12078 --,MIN(xah3.accounting_entry_status_code)
12079 ,MIN(DECODE(xalg.currency_code,xal3.currency_code,xah3.accounting_entry_status_code, -- 5132302
12080 DECODE(xalg.bflow_applied_to_amount, NULL, 'X', xah3.accounting_entry_status_code))) -- 5132302
12081 ,MIN(xah3.entity_id)
12082 FROM xla_ae_lines xal3
12083 , xla_ae_headers xah3
12084 , xla_distribution_links xdl3
12085 WHERE xah3.application_id = xdl3.application_id
12086 AND xah3.ae_header_id = xdl3.ae_header_id
12087 AND xal3.application_id = xdl3.application_id
12088 AND xal3.ae_header_id = xdl3.ae_header_id
12089 AND xal3.ae_line_num = xdl3.ae_line_num
12090 AND xal3.business_class_code = xalg.business_class_code -- 4336173
12091 AND xdl3.source_distribution_type = xalg.bflow_distribution_type
12092 AND NVL(xdl3.source_distribution_id_num_1,C_NUM) = NVL(xalg.bflow_dist_id_num_1,C_NUM)
12093 AND NVL(xdl3.source_distribution_id_num_2,C_NUM) = NVL(xalg.bflow_dist_id_num_2,C_NUM)
12094 AND NVL(xdl3.source_distribution_id_num_3,C_NUM) = NVL(xalg.bflow_dist_id_num_3,C_NUM)
12095 AND NVL(xdl3.source_distribution_id_num_4,C_NUM) = NVL(xalg.bflow_dist_id_num_4,C_NUM)
12096 AND NVL(xdl3.source_distribution_id_num_5,C_NUM) = NVL(xalg.bflow_dist_id_num_5,C_NUM)
12097 AND NVL(xdl3.source_distribution_id_char_1,C_CHAR) = NVL(xalg.bflow_dist_id_char_1,C_CHAR)
12098 AND NVL(xdl3.source_distribution_id_char_2,C_CHAR) = NVL(xalg.bflow_dist_id_char_2,C_CHAR)
12099 AND NVL(xdl3.source_distribution_id_char_3,C_CHAR) = NVL(xalg.bflow_dist_id_char_3,C_CHAR)
12100 AND NVL(xdl3.source_distribution_id_char_4,C_CHAR) = NVL(xalg.bflow_dist_id_char_4,C_CHAR)
12101 AND NVL(xdl3.source_distribution_id_char_5,C_CHAR) = NVL(xalg.bflow_dist_id_char_5,C_CHAR)
12102 AND xah3.parent_ae_header_id IS NULL -- 4655713b MPA/Accrual Reversal lines cannot be used as prior entries
12103 -- exclude reversed entries
12104 AND NOT EXISTS (SELECT 1
12105 FROM xla_distribution_links xdl4
12106 , xla_ae_headers xah4
12107 WHERE xdl4.ref_ae_header_id = xdl3.ae_header_id
12108 AND xdl4.temp_line_num = xdl3.temp_line_num * -1
12109 AND xah4.application_id = xdl4.application_id
12110 AND xah4.ae_header_id = xdl4.ae_header_id
12111 AND (xah4.accounting_entry_status_code = 'F' OR
12112 (xah4.accounting_entry_status_code = 'D' AND
12113 p_accounting_mode = 'D' AND
12114 p_bc_mode = 'NONE')))
12115 AND xdl3.application_id = xalg.bflow_application_id
12116 AND xdl3.ae_header_id =
12117 (SELECT MAX(xdl.ae_header_id)
12118 FROM xla_transaction_entities xte
12119 , xla_ae_headers xah
12120 , xla_distribution_links xdl
12121 , xla_ae_lines xal
12122 , xla_ledger_relationships_v xlr -- 4478604
12123 , xla_gl_ledgers_v xgl -- 4478604
12124 , xla_ledger_options xlo -- 5204178
12125 WHERE xgl.ledger_id = xalg.ledger_id -- 4478604
12126 AND xlr.ledger_id = xgl.ledger_id -- 4478604
12127 AND xte.application_id = xalg.bflow_application_id
12128 AND xte.entity_code = xalg.bflow_entity_code
12129 AND xte.ledger_id = DECODE(xla_accounting_cache_pkg.GetValueChar('VALUATION_METHOD_FLAG'),
12130 'N', xlr.primary_ledger_id,
12131 DECODE(xlr.ledger_category_code
12132 ,'ALC', xlr.primary_ledger_id
12133 ,DECODE(NVL(xlo.capture_event_flag,'N'),'N',xlr.primary_ledger_id
12134 ,xlr.ledger_id))) -- 5204178 requires secondary ledger event
12135 AND xlo.ledger_id (+) = xgl.ledger_id
12136 AND xlo.application_id (+) = g_application_id
12137 --
12138 AND NVL(xte.source_id_int_1,C_NUM) = NVL(xalg.bflow_source_id_num_1,C_NUM)
12139 AND NVL(xte.source_id_int_2,C_NUM) = NVL(xalg.bflow_source_id_num_2,C_NUM)
12140 AND NVL(xte.source_id_int_3,C_NUM) = NVL(xalg.bflow_source_id_num_3,C_NUM)
12141 AND NVL(xte.source_id_int_4,C_NUM) = NVL(xalg.bflow_source_id_num_4,C_NUM)
12142 AND NVL(xte.source_id_char_1,C_CHAR) = NVL(xalg.bflow_source_id_char_1,C_CHAR)
12143 AND NVL(xte.source_id_char_2,C_CHAR) = NVL(xalg.bflow_source_id_char_2,C_CHAR)
12144 AND NVL(xte.source_id_char_3,C_CHAR) = NVL(xalg.bflow_source_id_char_3,C_CHAR)
12145 AND NVL(xte.source_id_char_4,C_CHAR) = NVL(xalg.bflow_source_id_char_4,C_CHAR)
12146 --
12147 AND xah.application_id = xte.application_id
12148 AND xah.ledger_id = xalg.ledger_id
12149 AND xah.entity_id = xte.entity_id
12150 AND xah.balance_type_code = xalg.balance_type_code
12151 --
12152 AND xdl.application_id = xah.application_id
12153 AND xdl.event_id = xah.event_id
12154 AND xdl.ae_header_id = xah.ae_header_id
12155 AND xdl.source_distribution_type = xalg.bflow_distribution_type
12156 AND NVL(xdl.source_distribution_id_num_1,C_NUM) = NVL(xalg.bflow_dist_id_num_1,C_NUM)
12157 AND NVL(xdl.source_distribution_id_num_2,C_NUM) = NVL(xalg.bflow_dist_id_num_2,C_NUM)
12158 AND NVL(xdl.source_distribution_id_num_3,C_NUM) = NVL(xalg.bflow_dist_id_num_3,C_NUM)
12159 AND NVL(xdl.source_distribution_id_num_4,C_NUM) = NVL(xalg.bflow_dist_id_num_4,C_NUM)
12160 AND NVL(xdl.source_distribution_id_num_5,C_NUM) = NVL(xalg.bflow_dist_id_num_5,C_NUM)
12161 AND NVL(xdl.source_distribution_id_char_1,C_CHAR) = NVL(xalg.bflow_dist_id_char_1,C_CHAR)
12162 AND NVL(xdl.source_distribution_id_char_2,C_CHAR) = NVL(xalg.bflow_dist_id_char_2,C_CHAR)
12163 AND NVL(xdl.source_distribution_id_char_3,C_CHAR) = NVL(xalg.bflow_dist_id_char_3,C_CHAR)
12164 AND NVL(xdl.source_distribution_id_char_4,C_CHAR) = NVL(xalg.bflow_dist_id_char_4,C_CHAR)
12165 AND NVL(xdl.source_distribution_id_char_5,C_CHAR) = NVL(xalg.bflow_dist_id_char_5,C_CHAR)
12166 --
12167 AND xal.business_class_code = xalg.business_class_code -- 4336173
12168 AND xal.application_id = xdl.application_id
12169 AND xal.ae_header_id = xdl.ae_header_id
12170 AND xal.ae_line_num = xdl.ae_line_num
12171 -- bug 4946123 - limit the status of the prior entry
12172 -- Final entries are always considered
12173 -- If running in BC mode, draft is not considered
12174 -- Otherwise, draft is considered only if running in draft mode
12175 AND xah.accounting_entry_status_code IN ('F', DECODE(p_bc_mode,'NONE',p_accounting_mode,'F'))
12176 -- exclude reversed entries
12177 -- When running in BC mode, draft reversal entries are not considered
12178 AND NOT EXISTS (SELECT 1
12179 FROM xla_distribution_links xdl2
12180 , xla_ae_headers xah2
12181 WHERE xdl2.ref_ae_header_id = xdl.ae_header_id
12182 AND xdl2.temp_line_num = xdl.temp_line_num * -1
12183 AND xah2.application_id = xdl2.application_id
12184 AND xah2.ae_header_id = xdl2.ae_header_id
12185 AND (xah2.accounting_entry_status_code = 'F' OR
12186 (xah2.accounting_entry_status_code = 'D' AND
12187 p_accounting_mode = 'D' AND
12188 p_bc_mode = 'NONE')))
12189 ))
12190 WHERE xalg.reversal_code = C_DUMMY_PRIOR;
12191 */
12192
12193 -------------------------------------------------------------------------
12194 -- Update the ref_ae_header_id of the line where the prior entry is found
12195 -------------------------------------------------------------------------
12196 OPEN c_bflow_valid_lines;
12197 FETCH c_bflow_valid_lines BULK COLLECT INTO l_array_ae_header_id
12198 ,l_array_event_id
12199 ,l_array_ledger_id
12200 ,l_array_balance_type_code
12201 ,l_array_line_num;
12202 CLOSE c_bflow_valid_lines;
12203
12204 IF (C_LEVEL_EVENT >= g_log_level) THEN
12205 trace
12206 (p_msg => '# bflow valid lines = '||l_array_balance_type_code.COUNT
12207 ,p_level => C_LEVEL_EVENT
12208 ,p_module => l_log_module);
12209 END IF;
12210
12211 IF (l_array_balance_type_code.COUNT > 0) THEN
12212 FORALL i IN 1..l_array_balance_type_code.COUNT
12213 UPDATE /*+ index(xalg xla_ae_lines_gt_n2) */ xla_ae_lines_gt xalg -- 6990256
12214 SET ref_ae_header_id = temp_ref_ae_header_id,
12215 currency_code = temp_currency_code,
12216 reversal_code = null, -- 5499367
12217 (unrounded_entered_cr -- 5132302
12218 ,unrounded_entered_dr -- 5132302
12219 ,analytical_balance_flag
12220 ,unrounded_accounted_cr
12221 ,unrounded_accounted_dr) =
12222 ----------------------------------------------------------------------------------------------------------
12223 -- Modified for bug 4482069
12224 -- Normally, business flow should be setup between different sides. So just in case, we first try
12225 -- to use the amount from the opposite side. And if it is null, take amount from same side.
12226 --
12227 -- Modify for bug 4656703
12228 -- Modify for bug 4873615 - Handle the 'divided by zero' error
12229 --
12230 -- Modify for bug 5132302 - calculate accounted amt from applied_to_amt if currencies are different
12231 ----------------------------------------------------------------------------------------------------------
12232 (SELECT DECODE(xalg.currency_code,xalg.temp_currency_code, xalg.unrounded_entered_cr,
12233 DECODE(xalg.unrounded_entered_cr,NULL,NULL,NVL(xalg.bflow_applied_to_amount,xalg.unrounded_entered_cr)))
12234 ,DECODE(xalg.currency_code,xalg.temp_currency_code, xalg.unrounded_entered_dr,
12235 DECODE(xalg.unrounded_entered_dr,NULL,NULL,NVL(xalg.bflow_applied_to_amount,xalg.unrounded_entered_dr)))
12236 ,DECODE (xal.analytical_balance_flag,'P','P'
12237 ,'Y','P',null) analytical_balance_flag
12238 ,DECODE(xalg.override_acctd_amt_flag,'Y'
12239 ,xalg.unrounded_accounted_cr,
12240 (DECODE (xal.unrounded_accounted_dr,NULL
12241 ,CASE WHEN xal.unrounded_entered_cr <> 0
12242 THEN DECODE(xalg.currency_code,xalg.temp_currency_code,
12243 (xal.unrounded_accounted_cr/xal.unrounded_entered_cr)*xalg.unrounded_entered_cr,
12244 (xal.unrounded_accounted_cr/xal.unrounded_entered_cr)* DECODE(xalg.unrounded_entered_cr,NULL,NULL,
12245 NVL(xalg.bflow_applied_to_amount,xalg.unrounded_entered_cr)))
12246 --Changed for bug 9352035
12247 -- ELSE xalg.unrounded_entered_cr END
12248 ELSE xalg.unrounded_entered_cr * nvl(xalg.DERIVED_EXCH_RATE,1) END
12249 ,CASE WHEN xal.unrounded_entered_dr <> 0
12250 THEN DECODE(xalg.currency_code,xalg.temp_currency_code,
12251 (xal.unrounded_accounted_dr/xal.unrounded_entered_dr)*xalg.unrounded_entered_cr,
12252 (xal.unrounded_accounted_dr/xal.unrounded_entered_dr)* DECODE(xalg.unrounded_entered_cr,NULL,NULL,
12253 NVL(xalg.bflow_applied_to_amount,xalg.unrounded_entered_cr)))
12254 --Changed for bug 9352035
12255 --ELSE xalg.unrounded_entered_cr END))
12256 ELSE xalg.unrounded_entered_cr * nvl(xalg.DERIVED_EXCH_RATE,1) END))
12257 )
12258 ,DECODE(xalg.override_acctd_amt_flag,'Y'
12259 ,xalg.unrounded_accounted_dr,
12260 (DECODE (xal.unrounded_accounted_cr,NULL
12261 ,CASE WHEN xal.unrounded_entered_dr <> 0
12262 THEN DECODE(xalg.currency_code,xalg.temp_currency_code,
12263 (xal.unrounded_accounted_dr/xal.unrounded_entered_dr)*xalg.unrounded_entered_dr,
12264 (xal.unrounded_accounted_dr/xal.unrounded_entered_dr)* DECODE(xalg.unrounded_entered_dr,NULL,NULL,
12265 NVL(xalg.bflow_applied_to_amount,xalg.unrounded_entered_dr)))
12266 --Changed for bug 9352035
12267 --ELSE xalg.unrounded_entered_dr END
12268 ELSE xalg.unrounded_entered_dr * nvl(xalg.DERIVED_EXCH_RATE,1) END
12269 ,CASE WHEN xal.unrounded_entered_cr <> 0
12270 THEN DECODE(xalg.currency_code,xalg.temp_currency_code,
12271 (xal.unrounded_accounted_cr/xal.unrounded_entered_cr)*xalg.unrounded_entered_dr,
12272 (xal.unrounded_accounted_cr/xal.unrounded_entered_cr)* DECODE(xalg.unrounded_entered_dr,NULL,NULL,
12273 NVL(xalg.bflow_applied_to_amount,xalg.unrounded_entered_dr)))
12274 --Changed for bug 9352035
12275 --ELSE xalg.unrounded_entered_dr END))
12276 ELSE xalg.unrounded_entered_dr * nvl(xalg.DERIVED_EXCH_RATE,1) END))
12277 )
12278
12279 FROM xla_ae_lines xal
12280 WHERE xal.application_id = xalg.bflow_application_id
12281 AND xal.ae_header_id = xalg.temp_ref_ae_header_id
12282 AND xal.ae_line_num = xalg.ref_ae_line_num),
12283 entered_currency_mau = xla_accounting_cache_pkg.GetCurrencyMau(temp_currency_code),
12284 (segment1, segment2, segment3, segment4, segment5, segment6, segment7, segment8, segment9, segment10
12285 ,segment11, segment12, segment13, segment14, segment15, segment16, segment17, segment18, segment19, segment20
12286 ,segment21, segment22, segment23, segment24, segment25, segment26, segment27, segment28, segment29, segment30) =
12287 (SELECT gcc.segment1, gcc.segment2, gcc.segment3, gcc.segment4, gcc.segment5
12288 ,gcc.segment6, gcc.segment7, gcc.segment8, gcc.segment9, gcc.segment10
12289 ,gcc.segment11, gcc.segment12, gcc.segment13, gcc.segment14, gcc.segment15
12290 ,gcc.segment16, gcc.segment17, gcc.segment18, gcc.segment19, gcc.segment20
12291 ,gcc.segment21, gcc.segment22, gcc.segment23, gcc.segment24, gcc.segment25
12292 ,gcc.segment26, gcc.segment27, gcc.segment28, gcc.segment29, gcc.segment30
12293 FROM gl_code_combinations gcc
12294 WHERE gcc.code_combination_id = xalg.code_combination_id),
12295 (anc_id_1, anc_id_2, anc_id_3, anc_id_4, anc_id_5
12296 ,anc_id_6, anc_id_7, anc_id_8, anc_id_9, anc_id_10
12297 ,anc_id_11, anc_id_12, anc_id_13, anc_id_14, anc_id_15
12298 ,anc_id_16, anc_id_17, anc_id_18, anc_id_19, anc_id_20
12299 ,anc_id_21, anc_id_22, anc_id_23, anc_id_24, anc_id_25
12300 ,anc_id_26, anc_id_27, anc_id_28, anc_id_29, anc_id_30
12301 ,anc_id_31, anc_id_32, anc_id_33, anc_id_34, anc_id_35
12302 ,anc_id_36, anc_id_37, anc_id_38, anc_id_39, anc_id_40
12303 ,anc_id_41, anc_id_42, anc_id_43, anc_id_44, anc_id_45
12304 ,anc_id_46, anc_id_47, anc_id_48, anc_id_49, anc_id_50
12305 ,anc_id_51, anc_id_52, anc_id_53, anc_id_54, anc_id_55
12306 ,anc_id_56, anc_id_57, anc_id_58, anc_id_59, anc_id_60
12307 ,anc_id_61, anc_id_62, anc_id_63, anc_id_64, anc_id_65
12308 ,anc_id_66, anc_id_67, anc_id_68, anc_id_69, anc_id_70
12309 ,anc_id_71, anc_id_72, anc_id_73, anc_id_74, anc_id_75
12310 ,anc_id_76, anc_id_77, anc_id_78, anc_id_79, anc_id_80
12311 ,anc_id_81, anc_id_82, anc_id_83, anc_id_84, anc_id_85
12312 ,anc_id_86, anc_id_87, anc_id_88, anc_id_89, anc_id_90
12313 ,anc_id_91, anc_id_92, anc_id_93, anc_id_94, anc_id_95
12314 ,anc_id_96, anc_id_97, anc_id_98, anc_id_99, anc_id_100) =
12315 (SELECT
12316 MAX(DECODE(rank,1,anc_id)) ,MAX(DECODE(rank,2,anc_id))
12317 ,MAX(DECODE(rank,3,anc_id)) ,MAX(DECODE(rank,4,anc_id))
12318 ,MAX(DECODE(rank,5,anc_id)) ,MAX(DECODE(rank,6,anc_id))
12319 ,MAX(DECODE(rank,7,anc_id)) ,MAX(DECODE(rank,8,anc_id))
12320 ,MAX(DECODE(rank,9,anc_id)) ,MAX(DECODE(rank,10,anc_id))
12321 ,MAX(DECODE(rank,11,anc_id)) ,MAX(DECODE(rank,12,anc_id))
12322 ,MAX(DECODE(rank,13,anc_id)) ,MAX(DECODE(rank,14,anc_id))
12323 ,MAX(DECODE(rank,15,anc_id)) ,MAX(DECODE(rank,16,anc_id))
12324 ,MAX(DECODE(rank,17,anc_id)) ,MAX(DECODE(rank,18,anc_id))
12325 ,MAX(DECODE(rank,19,anc_id)) ,MAX(DECODE(rank,20,anc_id))
12326 ,MAX(DECODE(rank,21,anc_id)) ,MAX(DECODE(rank,22,anc_id))
12327 ,MAX(DECODE(rank,23,anc_id)) ,MAX(DECODE(rank,24,anc_id))
12328 ,MAX(DECODE(rank,25,anc_id)) ,MAX(DECODE(rank,26,anc_id))
12329 ,MAX(DECODE(rank,27,anc_id)) ,MAX(DECODE(rank,28,anc_id))
12330 ,MAX(DECODE(rank,29,anc_id)) ,MAX(DECODE(rank,30,anc_id))
12331 ,MAX(DECODE(rank,31,anc_id)) ,MAX(DECODE(rank,32,anc_id))
12332 ,MAX(DECODE(rank,33,anc_id)) ,MAX(DECODE(rank,34,anc_id))
12333 ,MAX(DECODE(rank,35,anc_id)) ,MAX(DECODE(rank,36,anc_id))
12334 ,MAX(DECODE(rank,37,anc_id)) ,MAX(DECODE(rank,38,anc_id))
12335 ,MAX(DECODE(rank,39,anc_id)) ,MAX(DECODE(rank,40,anc_id))
12336 ,MAX(DECODE(rank,41,anc_id)) ,MAX(DECODE(rank,42,anc_id))
12337 ,MAX(DECODE(rank,43,anc_id)) ,MAX(DECODE(rank,44,anc_id))
12338 ,MAX(DECODE(rank,45,anc_id)) ,MAX(DECODE(rank,46,anc_id))
12339 ,MAX(DECODE(rank,47,anc_id)) ,MAX(DECODE(rank,48,anc_id))
12340 ,MAX(DECODE(rank,49,anc_id)) ,MAX(DECODE(rank,50,anc_id))
12341 ,MAX(DECODE(rank,51,anc_id)) ,MAX(DECODE(rank,52,anc_id))
12342 ,MAX(DECODE(rank,53,anc_id)) ,MAX(DECODE(rank,54,anc_id))
12343 ,MAX(DECODE(rank,55,anc_id)) ,MAX(DECODE(rank,56,anc_id))
12344 ,MAX(DECODE(rank,57,anc_id)) ,MAX(DECODE(rank,58,anc_id))
12345 ,MAX(DECODE(rank,59,anc_id)) ,MAX(DECODE(rank,60,anc_id))
12346 ,MAX(DECODE(rank,61,anc_id)) ,MAX(DECODE(rank,62,anc_id))
12347 ,MAX(DECODE(rank,63,anc_id)) ,MAX(DECODE(rank,64,anc_id))
12348 ,MAX(DECODE(rank,65,anc_id)) ,MAX(DECODE(rank,66,anc_id))
12349 ,MAX(DECODE(rank,67,anc_id)) ,MAX(DECODE(rank,68,anc_id))
12350 ,MAX(DECODE(rank,69,anc_id)) ,MAX(DECODE(rank,70,anc_id))
12351 ,MAX(DECODE(rank,71,anc_id)) ,MAX(DECODE(rank,72,anc_id))
12352 ,MAX(DECODE(rank,73,anc_id)) ,MAX(DECODE(rank,74,anc_id))
12353 ,MAX(DECODE(rank,75,anc_id)) ,MAX(DECODE(rank,76,anc_id))
12354 ,MAX(DECODE(rank,77,anc_id)) ,MAX(DECODE(rank,78,anc_id))
12355 ,MAX(DECODE(rank,79,anc_id)) ,MAX(DECODE(rank,80,anc_id))
12356 ,MAX(DECODE(rank,81,anc_id)) ,MAX(DECODE(rank,82,anc_id))
12357 ,MAX(DECODE(rank,83,anc_id)) ,MAX(DECODE(rank,84,anc_id))
12358 ,MAX(DECODE(rank,85,anc_id)) ,MAX(DECODE(rank,86,anc_id))
12359 ,MAX(DECODE(rank,87,anc_id)) ,MAX(DECODE(rank,88,anc_id))
12360 ,MAX(DECODE(rank,89,anc_id)) ,MAX(DECODE(rank,90,anc_id))
12361 ,MAX(DECODE(rank,91,anc_id)) ,MAX(DECODE(rank,92,anc_id))
12362 ,MAX(DECODE(rank,93,anc_id)) ,MAX(DECODE(rank,94,anc_id))
12363 ,MAX(DECODE(rank,95,anc_id)) ,MAX(DECODE(rank,96,anc_id))
12364 ,MAX(DECODE(rank,97,anc_id)) ,MAX(DECODE(rank,98,anc_id))
12365 ,MAX(DECODE(rank,99,anc_id)) ,MAX(DECODE(rank,100,anc_id))
12366 FROM (SELECT ae_header_id
12367 ,ae_line_num
12368 ,analytical_criterion_code || '(]' ||
12369 analytical_criterion_type_code || '(]' ||
12370 amb_context_code || '(]' ||
12371 ac1 || '(]' ||
12372 ac2 || '(]' ||
12373 ac3 || '(]' ||
12374 ac4 || '(]' ||
12375 ac5 anc_id
12376 ,RANK() OVER (
12377 PARTITION BY ae_header_id, ae_line_num
12378 ORDER BY analytical_criterion_code
12379 ,analytical_criterion_type_code
12380 ,amb_context_code
12381 ,ac1
12382 ,ac2
12383 ,ac3
12384 ,ac4
12385 ,ac5) rank
12386 FROM xla_ae_line_acs) aed
12387 WHERE aed.ae_header_id = xalg.temp_ref_ae_header_id
12388 AND aed.ae_line_num = xalg.ref_ae_line_num)
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 AND temp_line_num = l_array_line_num(i);
12394 END IF;
12395
12396
12397 -------------------------------------------------------------------------------------------------------------------------
12398 -- 4655713b Update MPA and Accrual Reversal lines with Prior Entry
12399 -------------------------------------------------------------------------------------------------------------------------
12400 IF xla_accounting_pkg.g_mpa_accrual_exists = 'Y' THEN -- 5666366
12401 SELECT /*+ Leading (xal1,xah1,xal2) index(xah1 XLA_AE_HEADERS_GT_U1) index(xal2 XLA_AE_LINES_GT_N2) no_expand */ -- 5666366
12402 xal2.segment1, xal2.segment2, xal2.segment3, xal2.segment4, xal2.segment5
12403 ,xal2.segment6, xal2.segment7, xal2.segment8, xal2.segment9, xal2.segment10
12404 ,xal2.segment11, xal2.segment12, xal2.segment13, xal2.segment14, xal2.segment15
12405 ,xal2.segment16, xal2.segment17, xal2.segment18, xal2.segment19, xal2.segment20
12406 ,xal2.segment21, xal2.segment22, xal2.segment23, xal2.segment24, xal2.segment25
12407 ,xal2.segment26, xal2.segment27, xal2.segment28, xal2.segment29, xal2.segment30
12408 ,xal2.code_combination_id
12409 ,xal2.code_combination_status_code
12410 ,DECODE(NVL(xal1.inherit_desc_flag,'N'), 'Y', xal2.description, xal1.description)
12411 ,xal2.currency_code -- upstream
12412 ,xal1.currency_code -- downstream 5132302
12413 ,xal2.currency_conversion_rate
12414 ,xal2.currency_conversion_type
12415 ,xal2.currency_conversion_date
12416 ,xal2.entered_currency_mau
12417 ,xal2.party_type_code
12418 ,xal2.party_id
12419 ,xal2.party_site_id
12420 ,xal2.encumbrance_type_id
12421 -- CALCULATE_ACCTD_AMTS_FLAG is ignored for Prior Entry (see bug 4482069 for details). Same applies to MPA lines.
12422 ,DECODE (xal3.unrounded_accounted_dr,NULL
12423 ,CASE WHEN xal3.unrounded_entered_cr <> 0
12424 THEN xal3.unrounded_accounted_cr/xal3.unrounded_entered_cr
12425 ELSE 1 END
12426 ,CASE WHEN xal3.unrounded_entered_dr <> 0
12427 THEN xal3.unrounded_accounted_dr/xal3.unrounded_entered_dr
12428 ELSE 1 END)
12429 ,DECODE (xal3.unrounded_accounted_cr,NULL
12430 ,CASE WHEN xal3.unrounded_entered_dr <> 0
12431 THEN xal3.unrounded_accounted_dr/xal3.unrounded_entered_dr
12432 ELSE 1 END
12433 ,CASE WHEN xal3.unrounded_entered_cr <> 0
12434 THEN xal3.unrounded_accounted_cr/xal3.unrounded_entered_cr
12435 ELSE 1 END)
12436 -- join conditions
12437 ,xal1.ledger_id
12438 ,xal1.ref_ae_header_id
12439 ,xal1.temp_line_num
12440 ,xal1.ae_header_id
12441 ,xal1.header_num
12442 ,DECODE(xah1.parent_ae_line_num,NULL,'Y','N') -- accrual_reversal_flag
12443 BULK COLLECT INTO
12444 l_array_mpa_segment1 ,l_array_mpa_segment2 ,l_array_mpa_segment3 ,l_array_mpa_segment4 ,l_array_mpa_segment5
12445 ,l_array_mpa_segment6 ,l_array_mpa_segment7 ,l_array_mpa_segment8 ,l_array_mpa_segment9 ,l_array_mpa_segment10
12446 ,l_array_mpa_segment11 ,l_array_mpa_segment12 ,l_array_mpa_segment13 ,l_array_mpa_segment14 ,l_array_mpa_segment15
12447 ,l_array_mpa_segment16 ,l_array_mpa_segment17 ,l_array_mpa_segment18 ,l_array_mpa_segment19 ,l_array_mpa_segment20
12448 ,l_array_mpa_segment21 ,l_array_mpa_segment22 ,l_array_mpa_segment23 ,l_array_mpa_segment24 ,l_array_mpa_segment25
12449 ,l_array_mpa_segment26 ,l_array_mpa_segment27 ,l_array_mpa_segment28 ,l_array_mpa_segment29 ,l_array_mpa_segment30
12450 ,l_array_mpa_ccid
12451 ,l_array_mpa_ccid_status_code
12452 ,l_array_mpa_description
12453 ,l_array_mpa_currency_code
12454 ,l_array_mpa_currency_code_pe -- 5132302
12455 ,l_array_mpa_curr_conv_rate
12456 ,l_array_mpa_curr_conv_type
12457 ,l_array_mpa_curr_conv_date
12458 ,l_array_mpa_currency_mau
12459 ,l_array_mpa_party_type_code
12460 ,l_array_mpa_party_id
12461 ,l_array_mpa_party_site_id
12462 ,l_array_mpa_encum_type_id
12463 ,l_array_mpa_acct_cr_ratio
12464 ,l_array_mpa_acct_dr_ratio
12465 -- join conditions
12466 ,l_array_mpa_ledger_id
12467 ,l_array_mpa_ref_ae_header_id
12468 ,l_array_mpa_temp_line_num
12469 ,l_array_mpa_ae_header_id
12470 ,l_array_mpa_header_num
12471 ,l_array_acc_rev_flag
12472 FROM xla_ae_lines_gt xal2 -- original downstream line
12473 ,xla_ae_headers_gt xah1 -- original downstream header
12474 ,xla_ae_lines_gt xal1 -- recognition lines
12475 ,xla_ae_lines xal3 -- upstream line
12476 WHERE xal2.source_distribution_type = xal1.source_distribution_type
12477 AND NVL(xal2.source_distribution_id_num_1,C_NUM) = NVL(xal1.source_distribution_id_num_1,C_NUM)
12478 AND NVL(xal2.source_distribution_id_num_2,C_NUM) = NVL(xal1.source_distribution_id_num_2,C_NUM)
12479 AND NVL(xal2.source_distribution_id_num_3,C_NUM) = NVL(xal1.source_distribution_id_num_3,C_NUM)
12480 AND NVL(xal2.source_distribution_id_num_4,C_NUM) = NVL(xal1.source_distribution_id_num_4,C_NUM)
12481 AND NVL(xal2.source_distribution_id_num_5,C_NUM) = NVL(xal1.source_distribution_id_num_5,C_NUM)
12482 AND NVL(xal2.source_distribution_id_char_1,C_CHAR) = NVL(xal1.source_distribution_id_char_1,C_CHAR)
12483 AND NVL(xal2.source_distribution_id_char_2,C_CHAR) = NVL(xal1.source_distribution_id_char_2,C_CHAR)
12484 AND NVL(xal2.source_distribution_id_char_3,C_CHAR) = NVL(xal1.source_distribution_id_char_3,C_CHAR)
12485 AND NVL(xal2.source_distribution_id_char_4,C_CHAR) = NVL(xal1.source_distribution_id_char_4,C_CHAR)
12486 AND NVL(xal2.source_distribution_id_char_5,C_CHAR) = NVL(xal1.source_distribution_id_char_5,C_CHAR)
12487 AND xal2.event_id = xal1.event_id
12488 AND xal2.ledger_id = xal1.ledger_id
12489 AND xal2.balance_type_code = xal1.balance_type_code
12490 AND xal2.event_class_code = xal1.event_class_code
12491 AND xal2.event_type_code = xal1.event_type_code
12492 AND xal2.line_definition_owner_code = xal1.line_definition_owner_code
12493 AND xal2.line_definition_code = xal1.line_definition_code
12494 AND xal2.ACCOUNTING_LINE_TYPE_CODE = xal1.ACCOUNTING_LINE_TYPE_CODE
12495 AND xal2.ACCOUNTING_LINE_CODE = xal1.ACCOUNTING_LINE_CODE
12496 --
12497 AND xah1.ledger_id = xal1.ledger_id
12498 AND xah1.ae_header_id = xal1.ae_header_id
12499 AND xah1.header_num = xal1.header_num
12500 AND ((xah1.parent_ae_line_num IS NOT NULL AND xal2.temp_line_num = xah1.parent_ae_line_num) -- MPA
12501 OR xah1.parent_ae_line_num IS NULL) -- Accrual Reversal
12502 -- 5666366 -------------------------------------
12503 AND XAL1.BALANCE_TYPE_CODE = XAH1.BALANCE_TYPE_CODE
12504 AND XAL2.AE_HEADER_ID = XAL1.AE_HEADER_ID
12505 --------------------------------------------------
12506 AND xal2.header_num = 0
12507 AND xal1.reversal_code = C_MPA_PRIOR_ENTRY
12508 --
12509 AND xal2.bflow_prior_entry_status_code IS NOT NULL AND xal2.bflow_prior_entry_status_code <> 'X' -- 5132302
12510 --
12511 AND xal3.application_id = xal2.bflow_application_id
12512 AND xal3.ae_header_id = xal2.temp_ref_ae_header_id
12513 AND xal3.ae_line_num = xal2.ref_ae_line_num;
12514
12515 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
12516 trace
12517 (p_msg => 'BusinessFlowPriorEntries - no of MPA/AccRev rows found = '||l_array_mpa_ledger_id.COUNT
12518 ,p_level => C_LEVEL_STATEMENT
12519 ,p_module => l_log_module);
12520 FOR i IN 1..l_array_mpa_ledger_id.COUNT LOOP
12521 trace
12522 (p_msg => 'BusinessFlowPriorEntries - mpa lines ledger='||l_array_mpa_ledger_id(i)||
12523 ' ref_header='||l_array_mpa_ref_ae_header_id(i)||
12524 ' temp_line='||l_array_mpa_temp_line_num(i)||
12525 ' ae_header='||l_array_mpa_ae_header_id(i)||
12526 ' header_num='||l_array_mpa_header_num(i)||
12527 ' up_curr='||l_array_mpa_currency_code(i)||
12528 ' dn_curr='||l_array_mpa_currency_code_pe(i)||
12529 ' acc_rev='||l_array_acc_rev_flag(i)
12530 ,p_level => C_LEVEL_STATEMENT
12531 ,p_module => l_log_module);
12532 END LOOP;
12533
12534 FOR i IN (select * from xla_ae_Lines_gt where reversal_code=C_MPA_PRIOR_ENTRY) LOOP
12535 trace
12536 (p_msg => 'ae_lines_gt PE dist ledger='||i.ledger_id||' ref_ae_header='||i.ref_ae_header_id||
12537 ' temp_line='||i.temp_line_num||' ae_header='||i.ae_header_id||' header_num='||i.header_num||
12538 ' bflow='||i.business_method_code||
12539 ' curr='||i.currency_code||' applied_amt='||i.bflow_applied_to_amount|| -- 5132302
12540 ' conv_type='||i.currency_conversion_type||' conv_rate='||i.currency_conversion_rate||
12541 ' udr='||i.unrounded_ACCOUNTED_DR||' ucr='||i.unrounded_ACCOUNTED_CR||' switch='||i.switch_side_flag||
12542 ' line='||i.line_definition_code|| ' dist='||i.source_distribution_type||' rev='||i.reversal_code||
12543 ' n1='||i.source_distribution_id_num_1|| ' n2='||i.source_distribution_id_num_2||
12544 ' n3='||i.source_distribution_id_num_3|| ' n4='||i.source_distribution_id_num_4||
12545 ' n5='||i.source_distribution_id_num_5|| ' c1='||i.source_distribution_id_char_1||
12546 ' c2='||i.source_distribution_id_char_2|| ' c3='||i.source_distribution_id_char_3||
12547 ' c4='||i.source_distribution_id_char_4|| ' c5='||i.source_distribution_id_char_5||
12548 ' bal='||i.balance_type_code|| ' side='||i.natural_side_code||
12549 ' rev='||i.reversal_code
12550 ,p_level => C_LEVEL_STATEMENT
12551 ,p_module => l_log_module);
12552 END LOOP;
12553
12554 FOR i IN (select * from xla_ae_Lines_gt where reversal_code=C_MPA_PRIOR_ENTRY) LOOP
12555 trace
12556 (p_msg => ' seg s1='||i.segment1||' s2='||i.segment2|| ' s3='||i.segment3||' s4='||i.segment4||
12557 ' s5='||i.segment5||' s6='||i.segment6|| ' s7='||i.segment7||' s8='||i.segment8||
12558 ' s9='||i.segment9||' s10='||i.segment10|| ' s11='||i.segment11||' s12='||i.segment12||
12559 ' s13='||i.segment13||' s14='||i.segment14|| ' s15='||i.segment15||' s16='||i.segment16||
12560 ' s17='||i.segment17||' s18='||i.segment18|| ' s19='||i.segment19||' s20='||i.segment20||
12561 ' s21='||i.segment21||' s22='||i.segment22|| ' s23='||i.segment23||' s24='||i.segment24||
12562 ' s25='||i.segment25||' s26='||i.segment26|| ' s27='||i.segment27||' s28='||i.segment28||
12563 ' s29='||i.segment29||' s30='||i.segment30||' ccid='||i.code_combination_id
12564 ,p_level => C_LEVEL_STATEMENT
12565 ,p_module => l_log_module);
12566 END LOOP;
12567
12568 END IF;
12569
12570 ---------------------------------------------------------------------------------------------------------------
12571 -- Updates only the Accrual-Reversal or MPA-Accrual line which is a PRIOR_ENTRY.
12572 -- NOTE: for Accrual-Reversal, one line may be Prior Entry and the rest may not, so update only Prior Entry line.
12573 ---------------------------------------------------------------------------------------------------------------
12574 FORALL i in 1..l_array_mpa_ledger_id.COUNT
12575 -- added hint for 8920369
12576 UPDATE /*+ INDEX(xal, XLA_AE_LINES_GT_U1)*/ xla_ae_lines_gt xal
12577 SET segment1 = l_array_mpa_segment1(i)
12578 , segment2 = l_array_mpa_segment2(i)
12579 , segment3 = l_array_mpa_segment3(i)
12580 , segment4 = l_array_mpa_segment4(i)
12581 , segment5 = l_array_mpa_segment5(i)
12582 , segment6 = l_array_mpa_segment6(i)
12583 , segment7 = l_array_mpa_segment7(i)
12584 , segment8 = l_array_mpa_segment8(i)
12585 , segment9 = l_array_mpa_segment9(i)
12586 , segment10 = l_array_mpa_segment10(i)
12587 , segment11 = l_array_mpa_segment11(i)
12588 , segment12 = l_array_mpa_segment12(i)
12589 , segment13 = l_array_mpa_segment13(i)
12590 , segment14 = l_array_mpa_segment14(i)
12591 , segment15 = l_array_mpa_segment15(i)
12592 , segment16 = l_array_mpa_segment16(i)
12593 , segment17 = l_array_mpa_segment17(i)
12594 , segment18 = l_array_mpa_segment18(i)
12595 , segment19 = l_array_mpa_segment19(i)
12596 , segment20 = l_array_mpa_segment20(i)
12597 , segment21 = l_array_mpa_segment21(i)
12598 , segment22 = l_array_mpa_segment22(i)
12599 , segment23 = l_array_mpa_segment23(i)
12600 , segment24 = l_array_mpa_segment24(i)
12601 , segment25 = l_array_mpa_segment25(i)
12602 , segment26 = l_array_mpa_segment26(i)
12603 , segment27 = l_array_mpa_segment27(i)
12604 , segment28 = l_array_mpa_segment28(i)
12605 , segment29 = l_array_mpa_segment29(i)
12606 , segment30 = l_array_mpa_segment30(i)
12607 , description = l_array_mpa_description(i)
12608 , code_combination_id = l_array_mpa_ccid(i)
12609 , code_combination_status_code = DECODE(l_array_mpa_ccid(i),NULL,C_PROCESSING -- 4655713b used in Create_CCID
12610 ,l_array_mpa_ccid_status_code(i))
12611 , reversal_code = null
12612 --
12613 , currency_code = l_array_mpa_currency_code(i)
12614 , currency_conversion_rate = l_array_mpa_curr_conv_rate(i)
12615 , currency_conversion_type = l_array_mpa_curr_conv_type(i)
12616 , currency_conversion_date = TRUNC(l_array_mpa_curr_conv_date(i))
12617 , party_type_code = l_array_mpa_party_type_code(i)
12618 , party_id = l_array_mpa_party_id(i)
12619 , party_site_id = l_array_mpa_party_site_id(i)
12620 , encumbrance_type_id = l_array_mpa_encum_type_id(i)
12621 , unrounded_entered_cr = DECODE(l_array_mpa_currency_code(i),l_array_mpa_currency_code_pe(i), -- 5132302
12622 unrounded_entered_cr,
12623 DECODE(unrounded_entered_cr,NULL,NULL,NVL(bflow_applied_to_amount,unrounded_entered_cr)))
12624 , unrounded_entered_dr = DECODE(l_array_mpa_currency_code(i),l_array_mpa_currency_code_pe(i), -- 5132302
12625 unrounded_entered_dr,
12626 DECODE(unrounded_entered_dr,NULL,NULL,NVL(bflow_applied_to_amount,unrounded_entered_dr)))
12627 , unrounded_accounted_cr = DECODE(l_array_mpa_currency_code(i),l_array_mpa_currency_code_pe(i), -- 5132302
12628 unrounded_entered_cr*l_array_mpa_acct_cr_ratio(i),
12629 DECODE(unrounded_entered_cr,NULL,NULL,
12630 NVL(bflow_applied_to_amount,unrounded_entered_cr))*l_array_mpa_acct_cr_ratio(i))
12631 , unrounded_accounted_dr = DECODE(l_array_mpa_currency_code(i),l_array_mpa_currency_code_pe(i), -- 5132302
12632 unrounded_entered_dr*l_array_mpa_acct_dr_ratio(i),
12633 DECODE(unrounded_entered_dr,NULL,NULL,
12634 NVL(bflow_applied_to_amount,unrounded_entered_dr))*l_array_mpa_acct_dr_ratio(i))
12635 WHERE xal.ledger_id = l_array_mpa_ledger_id(i)
12636 AND xal.ref_ae_header_id = l_array_mpa_ref_ae_header_id(i)
12637 AND xal.temp_line_num = l_array_mpa_temp_line_num(i) -- Acc-Rev or MPA-Accrual line which is a PRIOR_ENTR
12638 AND xal.ae_header_id = l_array_mpa_ae_header_id(i)
12639 AND NVL(xal.header_num,0) = l_array_mpa_header_num(i);
12640
12641
12642 ---------------------------------------------------------------------------------------------------------------
12643 -- a) Updates MPA-Recognition lines only (MPA-Accrual and Accrual-Reversal lines are updated above.)
12644 -- b) Both MPA-Accrual and MPA-Recognition lines need to inherit values from Prior Entry.
12645 -- c) GetRecognitionEntries sets unrounded_accounted amounts to NULL when CALCULATE_ACCTD_AMTS_FLAG is 'Y'
12646 -- which is correct for non-bflow MPA. When it is bflow, flag is ignored.
12647 --
12648 -- NOTE: some columns are set to NULL during Business_Flow_Validation
12649 ---------------------------------------------------------------------------------------------------------------
12650 FORALL i in 1..l_array_mpa_ledger_id.COUNT
12651 UPDATE xla_ae_lines_gt xal
12652 SET currency_code = DECODE(l_array_acc_rev_flag(i),'N',l_array_mpa_currency_code(i)
12653 ,currency_code)
12654 , currency_conversion_rate = DECODE(l_array_acc_rev_flag(i),'N',l_array_mpa_curr_conv_rate(i)
12655 ,currency_conversion_rate)
12656 , currency_conversion_type = DECODE(l_array_acc_rev_flag(i),'N',l_array_mpa_curr_conv_type(i)
12657 ,currency_conversion_type)
12658 , currency_conversion_date = DECODE(l_array_acc_rev_flag(i),'N',TRUNC(l_array_mpa_curr_conv_date(i))
12659 ,TRUNC(currency_conversion_date))
12660 , party_type_code = DECODE(l_array_acc_rev_flag(i),'N',l_array_mpa_party_type_code(i)
12661 ,party_type_code)
12662 , party_id = DECODE(l_array_acc_rev_flag(i),'N',l_array_mpa_party_id(i)
12663 ,party_id)
12664 , party_site_id = DECODE(l_array_acc_rev_flag(i),'N',l_array_mpa_party_site_id(i)
12665 ,party_site_id)
12666 -- , encumbrance_type_id = DECODE(l_array_acc_rev_flag(i),'N',encumbrance_type_id,l_array_mpa_encum_type_id(i)
12667 -- ,encumbrance_type_id)
12668 , entered_currency_mau = DECODE(l_array_acc_rev_flag(i),'N',l_array_mpa_currency_mau(i)
12669 ,entered_currency_mau)
12670 , 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
12671 unrounded_entered_cr,
12672 DECODE(unrounded_entered_cr,NULL,NULL,NVL(bflow_applied_to_amount,unrounded_entered_cr)))
12673 ,unrounded_entered_cr)
12674 , 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
12675 unrounded_entered_dr,
12676 DECODE(unrounded_entered_dr,NULL,NULL,NVL(bflow_applied_to_amount,unrounded_entered_dr)))
12677 ,unrounded_entered_dr)
12678 , 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
12679 unrounded_entered_cr*l_array_mpa_acct_cr_ratio(i),
12680 DECODE(unrounded_entered_cr,NULL,NULL,
12681 NVL(bflow_applied_to_amount,unrounded_entered_cr)*l_array_mpa_acct_cr_ratio(i)))
12682 ,unrounded_accounted_cr)
12683 , 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
12684 unrounded_entered_dr*l_array_mpa_acct_dr_ratio(i),
12685 DECODE(unrounded_entered_dr,NULL,NULL,
12686 NVL(bflow_applied_to_amount,unrounded_entered_dr)*l_array_mpa_acct_dr_ratio(i)))
12687 ,unrounded_accounted_dr)
12688 WHERE xal.ledger_id = l_array_mpa_ledger_id(i)
12689 AND xal.ref_ae_header_id = l_array_mpa_ref_ae_header_id(i)
12690 AND xal.ae_header_id = l_array_mpa_ae_header_id(i)
12691 AND NVL(xal.header_num,0) = l_array_mpa_header_num(i);
12692 END IF; -- 5666366 xla_accounting_pkg.g_mpa_accrual_exists = 'Y'
12693 -------------------------------------------------------------------------------------------------------------------------
12694
12695
12696 -------------------------------------------------------------------------
12697 -- Log error messages for the rows still with DUMMY_BFPE
12698 -------------------------------------------------------------------------
12699
12700 OPEN c_bflow_err_lines;
12701 FETCH c_bflow_err_lines BULK COLLECT INTO l_array_ae_header_id
12702 ,l_array_line_num
12703 ,l_array_event_id
12704 ,l_array_ledger_id
12705 ,l_array_bflow_prior_status
12706 ,l_array_balance_type_code
12707 ,l_array_entity_id
12708 ,l_array_app_name
12709 ,l_array_app_id -- 11776012
12710 ,l_array_bflow_historic
12711 ,l_array_ledger_category
12712 ,l_array_period_start_date
12713 ,l_array_pe_entity_id
12714 ,l_array_pe_entity_code;
12715 CLOSE c_bflow_err_lines;
12716
12717 IF (C_LEVEL_EVENT >= g_log_level) THEN
12718 trace
12719 (p_msg => '# bflow error lines = '||l_array_balance_type_code.COUNT
12720 ,p_level => C_LEVEL_EVENT
12721 ,p_module => l_log_module);
12722 END IF;
12723
12724 -------------------------------------------------------------------------
12725 -- Historic Upgrade enhancement
12726 -------------------------------------------------------------------------
12727
12728 -- Get the start_date of the Primary ledger
12729 SELECT glp.start_date
12730 INTO l_primary_start_date
12731 FROM gl_period_statuses glp
12732 ,gl_ledgers gl
12733 WHERE glp.period_name = gl.first_ledger_period_name
12734 AND glp.ledger_id = gl.ledger_id
12735 AND glp.application_id = 101
12736 AND gl.ledger_id = p_ledger_id;
12737
12738 IF (l_array_bflow_prior_status.COUNT > 0) THEN -- prior entry status
12739
12740 FOR i IN 1..l_array_bflow_prior_status.COUNT LOOP
12741 IF NVL(l_array_bflow_prior_status(i),'N') = 'X' THEN -- 5132302
12742
12743 xla_accounting_err_pkg.build_message
12744 (p_appli_s_name => 'XLA'
12745 ,p_msg_name => 'XLA_AP_BFLOW_PE_NO_APPLIED_AMT'
12746 ,p_entity_id => l_array_entity_id(i)
12747 ,p_event_id => l_array_event_id(i)
12748 ,p_ledger_id => l_array_ledger_id(i));
12749
12750 ELSE
12751
12752 -- If the errored line belongs to primary ledger,
12753 -- throw the error 'prior entry not found'.
12754
12755 IF(l_array_ledger_category (i) = 'PRIMARY') THEN
12756 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
12757
12758 IF (C_LEVEL_EVENT >= g_log_level) THEN
12759 trace
12760 (p_msg => 'l_array_event_id(i):'||l_array_event_id(i)
12761 ,p_level => C_LEVEL_EVENT
12762 ,p_module => l_log_module);
12763 trace
12764 (p_msg => 'l_array_pe_entity_id(i):'||l_array_pe_entity_id(i)
12765 ,p_level => C_LEVEL_EVENT
12766 ,p_module => l_log_module);
12767 END IF;
12768
12769 IF l_array_pe_entity_id(i) IS NOT NULL THEN
12770 xla_accounting_errors_pkg.modify_message
12771 (p_application_id => g_application_id
12772 ,p_appli_s_name => 'XLA'
12773 ,p_msg_name => 'XLA_AP_BFLOW_PE_NOT_FOUND'
12774 ,p_token_1 => 'APPLICATION_NAME'
12775 ,p_value_1 => l_array_app_name(i)
12776 ,p_token_2 => 'APPLIED_TO_ENTITY_ID'
12777 ,p_value_2 => l_array_pe_entity_id(i)
12778 ,p_token_3 => 'APPLIED_TO_ENTITY_CODE'
12779 ,p_value_3 => l_array_pe_entity_code(i)
12780 ,p_token_4 => 'APPLICATION_ID' -- 11776012
12781 ,p_value_4 => l_array_app_id(i) -- 11776012
12782 ,p_entity_id => l_array_entity_id(i)
12783 ,p_event_id => l_array_event_id(i)
12784 ,p_ledger_id => l_array_ledger_id(i));
12785 ELSE
12786 xla_accounting_err_pkg.build_message
12787 (p_appli_s_name => 'XLA'
12788 ,p_msg_name => 'XLA_AP_BFLOW_PE_NOT_FOUND'
12789 ,p_token_1 => 'APPLICATION_NAME'
12790 ,p_value_1 => l_array_app_name(i)
12791 ,p_entity_id => l_array_entity_id(i)
12792 ,p_event_id => l_array_event_id(i)
12793 ,p_ledger_id => l_array_ledger_id(i));
12794 END IF;
12795
12796
12797
12798 ELSE -- for secondary/alc
12799
12800 -- If the problematic line belongs to secondary/alc ledger, compare the startdate
12801 -- of the first open period for that ledger with that of primary ledger. If it is
12802 -- less than or equal to the start date of primary, throw the error. Else,
12803 -- assume that historic upgrade process is run, and don't raise any error.
12804 -- Bug 5339999
12805
12806
12807 IF (l_array_period_start_date(i) <= l_primary_start_date) then
12808 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
12809 IF (C_LEVEL_EVENT >= g_log_level) THEN
12810 trace
12811 (p_msg => 'l_array_event_id(i):'||l_array_event_id(i)
12812 ,p_level => C_LEVEL_EVENT
12813 ,p_module => l_log_module);
12814 trace
12815 (p_msg => 'l_array_pe_entity_id(i):'||l_array_pe_entity_id(i)
12816 ,p_level => C_LEVEL_EVENT
12817 ,p_module => l_log_module);
12818 END IF;
12819
12820 IF l_array_pe_entity_id(i) IS NOT NULL THEN
12821 xla_accounting_errors_pkg.modify_message
12822 (p_application_id => g_application_id
12823 ,p_appli_s_name => 'XLA'
12824 ,p_msg_name => 'XLA_AP_BFLOW_PE_NOT_FOUND'
12825 ,p_token_1 => 'APPLICATION_NAME'
12826 ,p_value_1 => l_array_app_name(i)
12827 ,p_token_2 => 'APPLIED_TO_ENTITY_ID'
12828 ,p_value_2 => l_array_pe_entity_id(i)
12829 ,p_token_3 => 'APPLIED_TO_ENTITY_CODE'
12830 ,p_value_3 => l_array_pe_entity_code(i)
12831 ,p_token_4 => 'APPLICATION_ID' -- 11776012
12832 ,p_value_4 => l_array_app_id(i) -- 11776012
12833 ,p_entity_id => l_array_entity_id(i)
12834 ,p_event_id => l_array_event_id(i)
12835 ,p_ledger_id => l_array_ledger_id(i));
12836 ELSE
12837 xla_accounting_err_pkg.build_message
12838 (p_appli_s_name => 'XLA'
12839 ,p_msg_name => 'XLA_AP_BFLOW_PE_NOT_FOUND'
12840 ,p_token_1 => 'APPLICATION_NAME'
12841 ,p_value_1 => l_array_app_name(i)
12842 ,p_entity_id => l_array_entity_id(i)
12843 ,p_event_id => l_array_event_id(i)
12844 ,p_ledger_id => l_array_ledger_id(i));
12845 END IF;
12846
12847
12848
12849 ELSE
12850 l_array_bflow_historic (i) :='Y'; -- This line belongs to historic upgraded data.
12851 l_array_hist_bflow_err(l_array_event_id(i)) :=1;
12852 xla_accounting_cache_pkg.g_hist_bflow_error_exists := TRUE;
12853 END IF;
12854
12855 END IF; -- for secondary
12856 END IF; -- 5132302
12857
12858 END LOOP;
12859
12860 -- Print out all the events whose upstream entries are not upgraded in secondary/alc ledgers.
12861 IF l_array_hist_bflow_err.COUNT>0 THEN
12862 print_logfile('******************************************************************************');
12863 print_logfile('The following events do not have historic entries replicated in secondary/alc ledgers');
12864 print_logfile('Manual gl adjustments in the secondary/alc ledgers needs to be done for these events');
12865 print_logfile('==============================================================================');
12866 l_hist_count := l_array_hist_bflow_err.FIRST;
12867 WHILE (l_hist_count <= l_array_hist_bflow_err.LAST) LOOP
12868 print_logfile('event_id :'||l_hist_count);
12869 l_hist_count := l_array_hist_bflow_err.next(l_hist_count);
12870 END LOOP;
12871 print_logfile('==============================================================================');
12872 END IF;
12873
12874
12875
12876
12877 --
12878 -- Bug 5339999 Delete the problematic lines from xla_ae_lines_gt.
12879 --
12880 FORALL i IN 1..l_array_balance_type_code.COUNT
12881 DELETE FROM XLA_AE_LINES_GT
12882 WHERE ae_header_id = l_array_ae_header_id(i)
12883 AND event_id = l_array_event_id(i)
12884 AND ledger_id = l_array_ledger_id(i)
12885 AND 'Y' = l_array_bflow_historic (i);
12886
12887 --
12888 -- Bug 5339999 Delete the problematic lines from xla_ae_headers_gt.
12889 --
12890
12891 FORALL i IN 1..l_array_balance_type_code.COUNT
12892 DELETE FROM XLA_AE_HEADERS_GT
12893 WHERE ae_header_id = l_array_ae_header_id(i)
12894 AND event_id = l_array_event_id(i)
12895 AND ledger_id = l_array_ledger_id(i)
12896 AND 'Y' = l_array_bflow_historic (i);
12897
12898
12899
12900
12901
12902 -------------------------------------------------------------------------
12903 -- Update JE header status for invalid entries
12904 -------------------------------------------------------------------------
12905
12906 FORALL i IN 1..l_array_balance_type_code.COUNT
12907
12908 UPDATE xla_ae_headers_gt
12909 SET accounting_entry_status_code = XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID, -- C_INVALID_STATUS
12910 event_status_code='I' --Bug 13493286
12911 WHERE balance_type_code = l_array_balance_type_code(i)
12912 AND ae_header_id = l_array_ae_header_id(i)
12913 AND event_id = l_array_event_id(i)
12914 AND ledger_id = l_array_ledger_id(i);
12915
12916
12917 -------------------------------------------------------------------------
12918 -- Update JE line for invalid entries
12919 -------------------------------------------------------------------------
12920
12921 FORALL i IN 1..l_array_balance_type_code.COUNT
12922 UPDATE /*+ index(xalg xla_ae_lines_gt_n2) */ xla_ae_lines_gt xalg
12923 SET xalg.code_combination_status_code = C_INVALID
12924 , xalg.code_combination_id = -1
12925 WHERE xalg.balance_type_code = l_array_balance_type_code(i)
12926 AND xalg.ae_header_id = l_array_ae_header_id(i)
12927 AND xalg.temp_line_num = l_array_line_num(i)
12928 AND xalg.event_id = l_array_event_id(i)
12929 AND xalg.ledger_id = l_array_ledger_id(i);
12930
12931 END IF;
12932 END IF;
12933
12934
12935 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12936 trace(p_msg => 'END of BusinessFlowPriorEntries'
12937 ,p_level => C_LEVEL_PROCEDURE
12938 ,p_module => l_log_module);
12939 END IF;
12940
12941 EXCEPTION
12942 --
12943 WHEN xla_exceptions_pkg.application_exception THEN
12944 RAISE;
12945 WHEN OTHERS THEN
12946 xla_exceptions_pkg.raise_message
12947 (p_location => 'xla_ae_lines_pkg.BusinessFlowPriorEntries');
12948 --
12949 END BusinessFlowPriorEntries;
12950
12951 /*======================================================================+
12952 | |
12953 | Public Procedure- Business Flow Same Entry - 4219869 |
12954 | |
12955 | |
12956 +======================================================================*/
12957 PROCEDURE BusinessFlowSameEntries IS
12958
12959 l_log_module VARCHAR2(240);
12960 --
12961 -- Define local variables
12962 --
12963 l_err_count INTEGER;
12964 l_array_ae_header_id xla_cmp_source_pkg.t_array_Num;
12965 l_array_temp_line_num xla_cmp_source_pkg.t_array_Num; -- 5443083 l_array_ae_line_num
12966 l_array_event_id xla_cmp_source_pkg.t_array_Num;
12967 l_array_ledger_id xla_cmp_source_pkg.t_array_Num;
12968 l_array_balance_type_code xla_cmp_source_pkg.t_array_VL30;
12969 l_array_entity_id xla_cmp_source_pkg.t_array_Num;
12970 l_array_ref_ae_header_id xla_cmp_source_pkg.t_array_Num; -- 5443083
12971 l_array_header_num xla_cmp_source_pkg.t_array_Num; -- 5443083
12972 l_array_ledger_category xla_cmp_source_pkg.t_array_VL30; -- 5443083
12973 l_array_zero_amount_flag xla_cmp_source_pkg.t_array_VL1; -- 5443083
12974 --
12975 -- Cursor to return the same entry lines that are not processed
12976 --
12977 CURSOR c_bflow_unprocessed_lines IS
12978 SELECT /*+ LEADING(L) USE_NL(L XLR)*/ l.ae_header_id --added comment for bug 14246749
12979 , l.temp_line_num -- 5443083 l.ae_line_num
12980 , l.event_id
12981 , l.ledger_id
12982 , l.balance_type_code
12983 , h.entity_id
12984 , l.ref_ae_header_id -- 5443083
12985 , l.header_num -- 5443083
12986 , xlr.ledger_category_code -- 5443083
12987 , DECODE(NVL(l.unrounded_entered_dr,0)
12988 ,0, DECODE(NVL(l.unrounded_entered_cr,0)
12989 ,0, DECODE(NVL(l.unrounded_accounted_dr,0)
12990 ,0, DECODE(NVL(l.unrounded_accounted_cr,0)
12991 ,0,'Y'
12992 ,'N')
12993 ,'N')
12994 ,'N')
12995 ,'N') -- 5443083
12996 FROM xla_ae_lines_gt l
12997 ,xla_ae_headers_gt h
12998 ,xla_gl_ledgers_v xlr
12999 WHERE (reversal_code = C_DUMMY_SAME
13000 OR reversal_code = C_MPA_SAME_ENTRY) -- 4655713b
13001 AND l.ae_header_id = h.ae_header_id
13002 AND l.ledger_id = h.ledger_id -- 5443083
13003 AND l.balance_type_code = h.balance_type_code -- 5443083
13004 AND l.header_num = h.header_num -- 5443083
13005 AND l.ledger_id = xlr.ledger_id -- 5443083
13006 ORDER BY l.ae_header_id;
13007
13008 -- Cursor to return all Headers that still have unprocessed lines bug#11066172
13009 CURSOR c_bflowsame_error_headers IS
13010 SELECT DISTINCT l.ae_header_id
13011 , l.event_id
13012 , l.ledger_id
13013 , l.balance_type_code
13014 , l.header_num
13015 FROM xla_ae_lines_gt l
13016 WHERE (reversal_code = C_DUMMY_SAME
13017 OR reversal_code = C_MPA_SAME_ENTRY)
13018 ORDER BY l.ae_header_id;
13019
13020
13021 -- 4913967 for performance fix
13022 l_array_same_segment1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13023 l_array_same_segment2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13024 l_array_same_segment3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13025 l_array_same_segment4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13026 l_array_same_segment5 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13027 l_array_same_segment6 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13028 l_array_same_segment7 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13029 l_array_same_segment8 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13030 l_array_same_segment9 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13031 l_array_same_segment10 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13032 l_array_same_segment11 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13033 l_array_same_segment12 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13034 l_array_same_segment13 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13035 l_array_same_segment14 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13036 l_array_same_segment15 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13037 l_array_same_segment16 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13038 l_array_same_segment17 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13039 l_array_same_segment18 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13040 l_array_same_segment19 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13041 l_array_same_segment20 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13042 l_array_same_segment21 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13043 l_array_same_segment22 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13044 l_array_same_segment23 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13045 l_array_same_segment24 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13046 l_array_same_segment25 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13047 l_array_same_segment26 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13048 l_array_same_segment27 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13049 l_array_same_segment28 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13050 l_array_same_segment29 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13051 l_array_same_segment30 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13052 l_array_same_ccid XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
13053 l_array_same_description XLA_AE_JOURNAL_ENTRY_PKG.t_array_V4000L;
13054 l_array_same_reversal_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13055 l_array_join_ledger_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
13056 l_array_join_ref_ae_header_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
13057 l_array_join_temp_line_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
13058 l_array_join_ae_header_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
13059 l_array_join_header_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
13060
13061 -- 4655713b MPA and Accrual Reversal
13062 l_array_mpa_segment1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13063 l_array_mpa_segment2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13064 l_array_mpa_segment3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13065 l_array_mpa_segment4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13066 l_array_mpa_segment5 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13067 l_array_mpa_segment6 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13068 l_array_mpa_segment7 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13069 l_array_mpa_segment8 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13070 l_array_mpa_segment9 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13071 l_array_mpa_segment10 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13072 l_array_mpa_segment11 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13073 l_array_mpa_segment12 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13074 l_array_mpa_segment13 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13075 l_array_mpa_segment14 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13076 l_array_mpa_segment15 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13077 l_array_mpa_segment16 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13078 l_array_mpa_segment17 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13079 l_array_mpa_segment18 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13080 l_array_mpa_segment19 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13081 l_array_mpa_segment20 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13082 l_array_mpa_segment21 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13083 l_array_mpa_segment22 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13084 l_array_mpa_segment23 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13085 l_array_mpa_segment24 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13086 l_array_mpa_segment25 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13087 l_array_mpa_segment26 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13088 l_array_mpa_segment27 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13089 l_array_mpa_segment28 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13090 l_array_mpa_segment29 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13091 l_array_mpa_segment30 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13092 l_array_mpa_ccid XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
13093 l_array_mpa_ccid_status_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
13094 l_array_mpa_description XLA_AE_JOURNAL_ENTRY_PKG.t_array_V4000L;
13095 l_array_mpa_ledger_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
13096 l_array_mpa_ref_ae_header_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
13097 l_array_mpa_temp_line_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
13098 l_array_mpa_ae_header_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
13099 l_array_mpa_header_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; -- join conditions
13100
13101 BEGIN
13102
13103 IF g_log_enabled THEN
13104 l_log_module := C_DEFAULT_MODULE||'.BusinessFlowSameEntries';
13105 END IF;
13106 --
13107 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13108 trace
13109 (p_msg => 'BEGIN of BusinessFlowSameEntries'
13110 ,p_level => C_LEVEL_PROCEDURE
13111 ,p_module => l_log_module);
13112 END IF;
13113
13114 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13115 trace
13116 (p_msg => 'g_num_bflow_same_entries = '||g_num_bflow_same_entries
13117 ,p_level => C_LEVEL_STATEMENT
13118 ,p_module => l_log_module);
13119 END IF;
13120
13121
13122 IF (g_num_bflow_same_entries > 0) THEN
13123 --
13124 -- Update DUMMY_BFSE rows based on the other line in the same entry
13125 -- If not exactly one line is found for the same entry, it is an error
13126 --
13127 --
13128 -- Fix bug4384869 - if segment values is null from the same entry, determine
13129 -- the segment from the ccid of the prior entry
13130
13131 -----------------------------------------------------------------------------------------------------------
13132 -- 4913967 Modify for performance
13133 -----------------------------------------------------------------------------------------------------------
13134 SELECT CASE WHEN count(*) = 1
13135 THEN MIN(DECODE(xal.segment1, C_CHAR, NVL(xal2.segment1,gcc.segment1), xal.segment1))
13136 ELSE MIN(DECODE(xal.segment1, C_CHAR, NULL, xal.segment1)) END
13137 , CASE WHEN count(*) = 1
13138 THEN MIN(DECODE(xal.segment2, C_CHAR, NVL(xal2.segment2,gcc.segment2), xal.segment2))
13139 ELSE MIN(DECODE(xal.segment2, C_CHAR, NULL, xal.segment2)) END
13140 , CASE WHEN count(*) = 1
13141 THEN MIN(DECODE(xal.segment3, C_CHAR, NVL(xal2.segment3,gcc.segment3), xal.segment3))
13142 ELSE MIN(DECODE(xal.segment3, C_CHAR, NULL, xal.segment3)) END
13143 , CASE WHEN count(*) = 1
13144 THEN MIN(DECODE(xal.segment4, C_CHAR, NVL(xal2.segment4,gcc.segment4), xal.segment4))
13145 ELSE MIN(DECODE(xal.segment4, C_CHAR, NULL, xal.segment4)) END
13146 , CASE WHEN count(*) = 1
13147 THEN MIN(DECODE(xal.segment5, C_CHAR, NVL(xal2.segment5,gcc.segment5), xal.segment5))
13148 ELSE MIN(DECODE(xal.segment5, C_CHAR, NULL, xal.segment5)) END
13149 , CASE WHEN count(*) = 1
13150 THEN MIN(DECODE(xal.segment6, C_CHAR, NVL(xal2.segment6,gcc.segment6), xal.segment6))
13151 ELSE MIN(DECODE(xal.segment6, C_CHAR, NULL, xal.segment6)) END
13152 , CASE WHEN count(*) = 1
13153 THEN MIN(DECODE(xal.segment7, C_CHAR, NVL(xal2.segment7,gcc.segment7), xal.segment7))
13154 ELSE MIN(DECODE(xal.segment7, C_CHAR, NULL, xal.segment7)) END
13155 , CASE WHEN count(*) = 1
13156 THEN MIN(DECODE(xal.segment8, C_CHAR, NVL(xal2.segment8,gcc.segment8), xal.segment8))
13157 ELSE MIN(DECODE(xal.segment8, C_CHAR, NULL, xal.segment8)) END
13158 , CASE WHEN count(*) = 1
13159 THEN MIN(DECODE(xal.segment9, C_CHAR, NVL(xal2.segment9,gcc.segment9), xal.segment9))
13160 ELSE MIN(DECODE(xal.segment9, C_CHAR, NULL, xal.segment9)) END
13161 , CASE WHEN count(*) = 1
13162 THEN MIN(DECODE(xal.segment10, C_CHAR, NVL(xal2.segment10,gcc.segment10), xal.segment10))
13163 ELSE MIN(DECODE(xal.segment10, C_CHAR, NULL, xal.segment10)) END
13164 , CASE WHEN count(*) = 1
13165 THEN MIN(DECODE(xal.segment11, C_CHAR, NVL(xal2.segment11,gcc.segment11), xal.segment11))
13166 ELSE MIN(DECODE(xal.segment11, C_CHAR, NULL, xal.segment11)) END
13167 , CASE WHEN count(*) = 1
13168 THEN MIN(DECODE(xal.segment12, C_CHAR, NVL(xal2.segment12,gcc.segment12), xal.segment12))
13169 ELSE MIN(DECODE(xal.segment12, C_CHAR, NULL, xal.segment12)) END
13170 , CASE WHEN count(*) = 1
13171 THEN MIN(DECODE(xal.segment13, C_CHAR, NVL(xal2.segment13,gcc.segment13), xal.segment13))
13172 ELSE MIN(DECODE(xal.segment13, C_CHAR, NULL, xal.segment13)) END
13173 , CASE WHEN count(*) = 1
13174 THEN MIN(DECODE(xal.segment14, C_CHAR, NVL(xal2.segment14,gcc.segment14), xal.segment14))
13175 ELSE MIN(DECODE(xal.segment14, C_CHAR, NULL, xal.segment14)) END
13176 , CASE WHEN count(*) = 1
13177 THEN MIN(DECODE(xal.segment15, C_CHAR, NVL(xal2.segment15,gcc.segment15), xal.segment15))
13178 ELSE MIN(DECODE(xal.segment15, C_CHAR, NULL, xal.segment15)) END
13179 , CASE WHEN count(*) = 1
13180 THEN MIN(DECODE(xal.segment16, C_CHAR, NVL(xal2.segment16,gcc.segment16), xal.segment16))
13181 ELSE MIN(DECODE(xal.segment16, C_CHAR, NULL, xal.segment16)) END
13182 , CASE WHEN count(*) = 1
13183 THEN MIN(DECODE(xal.segment17, C_CHAR, NVL(xal2.segment17,gcc.segment17), xal.segment17))
13184 ELSE MIN(DECODE(xal.segment17, C_CHAR, NULL, xal.segment17)) END
13185 , CASE WHEN count(*) = 1
13186 THEN MIN(DECODE(xal.segment18, C_CHAR, NVL(xal2.segment18,gcc.segment18), xal.segment18))
13187 ELSE MIN(DECODE(xal.segment18, C_CHAR, NULL, xal.segment18)) END
13188 , CASE WHEN count(*) = 1
13189 THEN MIN(DECODE(xal.segment19, C_CHAR, NVL(xal2.segment19,gcc.segment19), xal.segment19))
13190 ELSE MIN(DECODE(xal.segment19, C_CHAR, NULL, xal.segment19)) END
13191 , CASE WHEN count(*) = 1
13192 THEN MIN(DECODE(xal.segment20, C_CHAR, NVL(xal2.segment20,gcc.segment20), xal.segment20))
13193 ELSE MIN(DECODE(xal.segment20, C_CHAR, NULL, xal.segment20)) END
13194 , CASE WHEN count(*) = 1
13195 THEN MIN(DECODE(xal.segment21, C_CHAR, NVL(xal2.segment21,gcc.segment21), xal.segment21))
13196 ELSE MIN(DECODE(xal.segment21, C_CHAR, NULL, xal.segment21)) END
13197 , CASE WHEN count(*) = 1
13198 THEN MIN(DECODE(xal.segment22, C_CHAR, NVL(xal2.segment22,gcc.segment22), xal.segment22))
13199 ELSE MIN(DECODE(xal.segment22, C_CHAR, NULL, xal.segment22)) END
13200 , CASE WHEN count(*) = 1
13201 THEN MIN(DECODE(xal.segment23, C_CHAR, NVL(xal2.segment23,gcc.segment23), xal.segment23))
13202 ELSE MIN(DECODE(xal.segment23, C_CHAR, NULL, xal.segment23)) END
13203 , CASE WHEN count(*) = 1
13204 THEN MIN(DECODE(xal.segment24, C_CHAR, NVL(xal2.segment24,gcc.segment24), xal.segment24))
13205 ELSE MIN(DECODE(xal.segment24, C_CHAR, NULL, xal.segment24)) END
13206 , CASE WHEN count(*) = 1
13207 THEN MIN(DECODE(xal.segment25, C_CHAR, NVL(xal2.segment25,gcc.segment25), xal.segment25))
13208 ELSE MIN(DECODE(xal.segment25, C_CHAR, NULL, xal.segment25)) END
13209 , CASE WHEN count(*) = 1
13210 THEN MIN(DECODE(xal.segment26, C_CHAR, NVL(xal2.segment26,gcc.segment26), xal.segment26))
13211 ELSE MIN(DECODE(xal.segment26, C_CHAR, NULL, xal.segment26)) END
13212 , CASE WHEN count(*) = 1
13213 THEN MIN(DECODE(xal.segment27, C_CHAR, NVL(xal2.segment27,gcc.segment27), xal.segment27))
13214 ELSE MIN(DECODE(xal.segment27, C_CHAR, NULL, xal.segment27)) END
13215 , CASE WHEN count(*) = 1
13216 THEN MIN(DECODE(xal.segment28, C_CHAR, NVL(xal2.segment28,gcc.segment28), xal.segment28))
13217 ELSE MIN(DECODE(xal.segment28, C_CHAR, NULL, xal.segment28)) END
13218 , CASE WHEN count(*) = 1
13219 THEN MIN(DECODE(xal.segment29, C_CHAR, NVL(xal2.segment29,gcc.segment29), xal.segment29))
13220 ELSE MIN(DECODE(xal.segment29, C_CHAR, NULL, xal.segment29)) END
13221 , CASE WHEN count(*) = 1
13222 THEN MIN(DECODE(xal.segment30, C_CHAR, NVL(xal2.segment30,gcc.segment30), xal.segment30))
13223 ELSE MIN(DECODE(xal.segment30, C_CHAR, NULL, xal.segment30)) END
13224 , CASE WHEN count(*) = 1
13225 THEN MIN(DECODE(xal.code_combination_id, C_NUM, xal2.code_combination_id, xal.code_combination_id))
13226 ELSE -1 END
13227 , CASE WHEN count(*) = 1
13228 THEN MIN(DECODE(xal.inherit_desc_flag, 'Y', xal2.description, xal.description)) ELSE NULL END
13229 , CASE WHEN count(*) = 1
13230 THEN NULL ELSE MIN(xal.reversal_code) END
13231 -- join conditions
13232 , CASE WHEN count(*) = 1
13233 THEN xal.ledger_id ELSE NULL END
13234 , CASE WHEN count(*) = 1
13235 THEN xal.ref_ae_header_id ELSE NULL END
13236 , CASE WHEN count(*) = 1
13237 THEN xal.temp_line_num ELSE NULL END
13238 , CASE WHEN count(*) = 1
13239 THEN xal.ae_header_id ELSE NULL END
13240 , CASE WHEN count(*) = 1
13241 THEN NVL(xal.header_num,0) ELSE NULL END
13242 BULK COLLECT INTO
13243 l_array_same_segment1
13244 , l_array_same_segment2
13245 , l_array_same_segment3
13246 , l_array_same_segment4
13247 , l_array_same_segment5
13248 , l_array_same_segment6
13249 , l_array_same_segment7
13250 , l_array_same_segment8
13251 , l_array_same_segment9
13252 , l_array_same_segment10
13253 , l_array_same_segment11
13254 , l_array_same_segment12
13255 , l_array_same_segment13
13256 , l_array_same_segment14
13257 , l_array_same_segment15
13258 , l_array_same_segment16
13259 , l_array_same_segment17
13260 , l_array_same_segment18
13261 , l_array_same_segment19
13262 , l_array_same_segment20
13263 , l_array_same_segment21
13264 , l_array_same_segment22
13265 , l_array_same_segment23
13266 , l_array_same_segment24
13267 , l_array_same_segment25
13268 , l_array_same_segment26
13269 , l_array_same_segment27
13270 , l_array_same_segment28
13271 , l_array_same_segment29
13272 , l_array_same_segment30
13273 , l_array_same_ccid
13274 , l_array_same_description
13275 , l_array_same_reversal_code
13276 -- join conditions
13277 , l_array_join_ledger_id
13278 , l_array_join_ref_ae_header_id
13279 , l_array_join_temp_line_num
13280 , l_array_join_ae_header_id
13281 , l_array_join_header_num
13282 FROM xla_ae_lines_gt xal2
13283 , xla_ae_lines_gt xal
13284 , gl_code_combinations gcc
13285 WHERE xal2.source_distribution_type = xal.source_distribution_type
13286 AND NVL(xal2.source_distribution_id_num_1,C_NUM) = NVL(xal.source_distribution_id_num_1,C_NUM)
13287 AND NVL(xal2.source_distribution_id_num_2,C_NUM) = NVL(xal.source_distribution_id_num_2,C_NUM)
13288 AND NVL(xal2.source_distribution_id_num_3,C_NUM) = NVL(xal.source_distribution_id_num_3,C_NUM)
13289 AND NVL(xal2.source_distribution_id_num_4,C_NUM) = NVL(xal.source_distribution_id_num_4,C_NUM)
13290 AND NVL(xal2.source_distribution_id_num_5,C_NUM) = NVL(xal.source_distribution_id_num_5,C_NUM)
13291 AND NVL(xal2.source_distribution_id_char_1,C_CHAR) = NVL(xal.source_distribution_id_char_1,C_CHAR)
13292 AND NVL(xal2.source_distribution_id_char_2,C_CHAR) = NVL(xal.source_distribution_id_char_2,C_CHAR)
13293 AND NVL(xal2.source_distribution_id_char_3,C_CHAR) = NVL(xal.source_distribution_id_char_3,C_CHAR)
13294 AND NVL(xal2.source_distribution_id_char_4,C_CHAR) = NVL(xal.source_distribution_id_char_4,C_CHAR)
13295 AND NVL(xal2.source_distribution_id_char_5,C_CHAR) = NVL(xal.source_distribution_id_char_5,C_CHAR)
13296 AND xal2.event_id = xal.event_id
13297 AND xal2.ledger_id = xal.ledger_id
13298 AND xal2.balance_type_code = xal.balance_type_code
13299 AND xal2.event_class_code = xal.event_class_code
13300 AND xal2.event_type_code = xal.event_type_code
13301 AND xal2.line_definition_owner_code = xal.line_definition_owner_code
13302 AND xal2.line_definition_code = xal.line_definition_code
13303 AND xal2.natural_side_code = DECODE(xal.natural_side_code, 'C', 'D', 'C')
13304 AND gcc.code_combination_id(+) = xal2.code_combination_id -- bug4384869
13305 -- AND nvl(xal2.reversal_code, 'A') not in (C_DUMMY_SAME, C_DUMMY_PRIOR) -- 5001981
13306 AND xal.reversal_code = C_DUMMY_SAME
13307 AND NVL(xal2.header_num,0) = 0 -- 4655713b excludes MPA/Accrual Reversal lines,cannot be used for bflow
13308 GROUP BY xal.ledger_id -- 5068675
13309 ,xal.ref_ae_header_id
13310 ,xal.temp_line_num
13311 ,xal.ae_header_id
13312 ,xal.header_num;
13313
13314 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13315 trace
13316 (p_msg => 'Number of events = '||l_array_join_ledger_id.COUNT
13317 ,p_level => C_LEVEL_STATEMENT
13318 ,p_module => l_log_module);
13319
13320 FOR i IN 1..l_array_join_ledger_id.COUNT LOOP
13321 trace
13322 (p_msg => 'from array ledger='||l_array_join_ledger_id(i)|| ' ref_ae_header='||l_array_join_ref_ae_header_id(i)||
13323 ' temp_line='||l_array_join_temp_line_num(i)|| ' ae_header='||l_array_join_ae_header_id(i)||
13324 ' header_num='||l_array_join_header_num(i)||
13325 ' s1='||l_array_same_segment1(i)||' s2='||l_array_same_segment2(i)||
13326 ' s3='||l_array_same_segment3(i)||' s4='||l_array_same_segment4(i)||
13327 ' s5='||l_array_same_segment5(i)||' s6='||l_array_same_segment6(i)||
13328 ' s7='||l_array_same_segment7(i)||' s8='||l_array_same_segment8(i)||
13329 ' s9='||l_array_same_segment9(i)||' s10='||l_array_same_segment10(i)||
13330 ' s11='||l_array_same_segment11(i)||' s12='||l_array_same_segment12(i)||
13331 ' s13='||l_array_same_segment13(i)||' s14='||l_array_same_segment14(i)||
13332 ' s15='||l_array_same_segment15(i)||' s16='||l_array_same_segment16(i)||
13333 ' s17='||l_array_same_segment17(i)||' s18='||l_array_same_segment18(i)||
13334 ' s19='||l_array_same_segment19(i)||' s20='||l_array_same_segment20(i)||
13335 ' s21='||l_array_same_segment21(i)||' s22='||l_array_same_segment22(i)||
13336 ' s23='||l_array_same_segment23(i)||' s24='||l_array_same_segment24(i)||
13337 ' s25='||l_array_same_segment25(i)||' s26='||l_array_same_segment26(i)||
13338 ' s27='||l_array_same_segment27(i)||' s28='||l_array_same_segment28(i)||
13339 ' s29='||l_array_same_segment29(i)||' s30='||l_array_same_segment30(i)||
13340 ' ccid='||l_array_same_ccid(i)
13341 ,p_level => C_LEVEL_STATEMENT
13342 ,p_module => l_log_module);
13343 END LOOP;
13344
13345 FOR i IN (select * from xla_ae_Lines_gt where reversal_code=C_DUMMY_SAME) LOOP
13346 trace
13347 (p_msg => 'ae_lines_gt SE dist ledger='||i.ledger_id||' ref_ae_header='||i.ref_ae_header_id||
13348 ' temp_line='||i.temp_line_num||' ae_header='||i.ae_header_id||' header_num='||i.header_num||
13349 ' bflow='||i.business_method_code||
13350 ' line='||i.line_definition_code|| ' dist='||i.source_distribution_type||' rev='||i.reversal_code||
13351 ' n1='||i.source_distribution_id_num_1|| ' n2='||i.source_distribution_id_num_2||
13352 ' n3='||i.source_distribution_id_num_3|| ' n4='||i.source_distribution_id_num_4||
13353 ' n5='||i.source_distribution_id_num_5|| ' c1='||i.source_distribution_id_char_1||
13354 ' c2='||i.source_distribution_id_char_2|| ' c3='||i.source_distribution_id_char_3||
13355 ' c4='||i.source_distribution_id_char_4|| ' c5='||i.source_distribution_id_char_5||
13356 ' bal='||i.balance_type_code|| ' side='||i.natural_side_code||
13357 ' rev='||i.reversal_code
13358 ,p_level => C_LEVEL_STATEMENT
13359 ,p_module => l_log_module);
13360 END LOOP;
13361
13362 FOR i IN (select * from xla_ae_Lines_gt where reversal_code=C_DUMMY_SAME) LOOP
13363 trace
13364 (p_msg => ' seg s1='||i.segment1||' s2='||i.segment2|| ' s3='||i.segment3||' s4='||i.segment4||
13365 ' s5='||i.segment5||' s6='||i.segment6|| ' s7='||i.segment7||' s8='||i.segment8||
13366 ' s9='||i.segment9||' s10='||i.segment10|| ' s11='||i.segment11||' s12='||i.segment12||
13367 ' s13='||i.segment13||' s14='||i.segment14|| ' s15='||i.segment15||' s16='||i.segment16||
13368 ' s17='||i.segment17||' s18='||i.segment18|| ' s19='||i.segment19||' s20='||i.segment20||
13369 ' s21='||i.segment21||' s22='||i.segment22|| ' s23='||i.segment23||' s24='||i.segment24||
13370 ' s25='||i.segment25||' s26='||i.segment26|| ' s27='||i.segment27||' s28='||i.segment28||
13371 ' s29='||i.segment29||' s30='||i.segment30||' ccid='||i.code_combination_id
13372 ,p_level => C_LEVEL_STATEMENT
13373 ,p_module => l_log_module);
13374 END LOOP;
13375
13376 END IF;
13377
13378 FORALL i IN 1..l_array_join_ledger_id.COUNT
13379 UPDATE /*+ INDEX(xal, XLA_AE_LINES_GT_U1)*/ xla_ae_lines_gt xal
13380 -- added hint for 8920369
13381 SET segment1 = l_array_same_segment1(i)
13382 , segment2 = l_array_same_segment2(i)
13383 , segment3 = l_array_same_segment3(i)
13384 , segment4 = l_array_same_segment4(i)
13385 , segment5 = l_array_same_segment5(i)
13386 , segment6 = l_array_same_segment6(i)
13387 , segment7 = l_array_same_segment7(i)
13388 , segment8 = l_array_same_segment8(i)
13389 , segment9 = l_array_same_segment9(i)
13390 , segment10 = l_array_same_segment10(i)
13391 , segment11 = l_array_same_segment11(i)
13392 , segment12 = l_array_same_segment12(i)
13393 , segment13 = l_array_same_segment13(i)
13394 , segment14 = l_array_same_segment14(i)
13395 , segment15 = l_array_same_segment15(i)
13396 , segment16 = l_array_same_segment16(i)
13397 , segment17 = l_array_same_segment17(i)
13398 , segment18 = l_array_same_segment18(i)
13399 , segment19 = l_array_same_segment19(i)
13400 , segment20 = l_array_same_segment20(i)
13401 , segment21 = l_array_same_segment21(i)
13402 , segment22 = l_array_same_segment22(i)
13403 , segment23 = l_array_same_segment23(i)
13404 , segment24 = l_array_same_segment24(i)
13405 , segment25 = l_array_same_segment25(i)
13406 , segment26 = l_array_same_segment26(i)
13407 , segment27 = l_array_same_segment27(i)
13408 , segment28 = l_array_same_segment28(i)
13409 , segment29 = l_array_same_segment29(i)
13410 , segment30 = l_array_same_segment30(i)
13411 , code_combination_id = l_array_same_ccid(i)
13412 , code_combination_status_code = DECODE(l_array_same_ccid(i),NULL,C_PROCESSING -- 4655713b used in Create_CCID
13413 ,C_NOT_PROCESSED) -- 4655713 used in Override_CCID
13414 , description = l_array_same_description(i)
13415 , reversal_code = l_array_same_reversal_code(i)
13416 WHERE xal.ledger_id = l_array_join_ledger_id(i)
13417 AND xal.ref_ae_header_id = l_array_join_ref_ae_header_id(i)
13418 AND xal.temp_line_num = l_array_join_temp_line_num(i)
13419 AND xal.ae_header_id = l_array_join_ae_header_id(i)
13420 AND NVL(xal.header_num,0) = l_array_join_header_num(i);
13421
13422 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13423 trace
13424 (p_msg => 'BusinessFlowSameEntries - no of rows updated = '||SQL%ROWCOUNT
13425 ,p_level => C_LEVEL_STATEMENT
13426 ,p_module => l_log_module);
13427 END IF;
13428
13429 -------------------------------------------------------------------------------------------------------------------------
13430 -- 4655713b Updates MPA-Accrual (not MPA-Recognition) and Accrual Reversal lines with Same Entry
13431 -------------------------------------------------------------------------------------------------------------------------
13432 IF xla_accounting_pkg.g_mpa_accrual_exists = 'Y' THEN -- 7128871
13433 SELECT /*+ Leading (xal1,xah1,xal2) index(xah1 XLA_AE_HEADERS_GT_U1) index(xal2 XLA_AE_LINES_GT_N2) no_expand */ -- 7128871
13434 xal2.segment1, xal2.segment2, xal2.segment3, xal2.segment4, xal2.segment5
13435 ,xal2.segment6, xal2.segment7, xal2.segment8, xal2.segment9, xal2.segment10
13436 ,xal2.segment11, xal2.segment12, xal2.segment13, xal2.segment14, xal2.segment15
13437 ,xal2.segment16, xal2.segment17, xal2.segment18, xal2.segment19, xal2.segment20
13438 ,xal2.segment21, xal2.segment22, xal2.segment23, xal2.segment24, xal2.segment25
13439 ,xal2.segment26, xal2.segment27, xal2.segment28, xal2.segment29, xal2.segment30
13440 ,xal2.code_combination_id
13441 ,xal2.code_combination_status_code
13442 ,DECODE(NVL(xal1.inherit_desc_flag,'N'), 'Y', xal2.description, xal1.description)
13443 -- join conditions
13444 ,xal1.ledger_id
13445 ,xal1.ref_ae_header_id
13446 ,xal1.temp_line_num
13447 ,xal1.ae_header_id
13448 ,xal1.header_num
13449 BULK COLLECT INTO
13450 l_array_mpa_segment1 ,l_array_mpa_segment2 ,l_array_mpa_segment3 ,l_array_mpa_segment4 ,l_array_mpa_segment5
13451 ,l_array_mpa_segment6 ,l_array_mpa_segment7 ,l_array_mpa_segment8 ,l_array_mpa_segment9 ,l_array_mpa_segment10
13452 ,l_array_mpa_segment11 ,l_array_mpa_segment12 ,l_array_mpa_segment13 ,l_array_mpa_segment14 ,l_array_mpa_segment15
13453 ,l_array_mpa_segment16 ,l_array_mpa_segment17 ,l_array_mpa_segment18 ,l_array_mpa_segment19 ,l_array_mpa_segment20
13454 ,l_array_mpa_segment21 ,l_array_mpa_segment22 ,l_array_mpa_segment23 ,l_array_mpa_segment24 ,l_array_mpa_segment25
13455 ,l_array_mpa_segment26 ,l_array_mpa_segment27 ,l_array_mpa_segment28 ,l_array_mpa_segment29 ,l_array_mpa_segment30
13456 ,l_array_mpa_ccid
13457 ,l_array_mpa_ccid_status_code
13458 ,l_array_mpa_description
13459 -- join conditions
13460 ,l_array_mpa_ledger_id
13461 ,l_array_mpa_ref_ae_header_id
13462 ,l_array_mpa_temp_line_num
13463 ,l_array_mpa_ae_header_id
13464 ,l_array_mpa_header_num
13465 FROM xla_ae_lines_gt xal2 -- Original line
13466 ,xla_ae_headers_gt xah1
13467 ,xla_ae_lines_gt xal1 -- MPA line
13468 WHERE xal2.source_distribution_type = xal1.source_distribution_type
13469 AND NVL(xal2.source_distribution_id_num_1,C_NUM) = NVL(xal1.source_distribution_id_num_1,C_NUM)
13470 AND NVL(xal2.source_distribution_id_num_2,C_NUM) = NVL(xal1.source_distribution_id_num_2,C_NUM)
13471 AND NVL(xal2.source_distribution_id_num_3,C_NUM) = NVL(xal1.source_distribution_id_num_3,C_NUM)
13472 AND NVL(xal2.source_distribution_id_num_4,C_NUM) = NVL(xal1.source_distribution_id_num_4,C_NUM)
13473 AND NVL(xal2.source_distribution_id_num_5,C_NUM) = NVL(xal1.source_distribution_id_num_5,C_NUM)
13474 AND NVL(xal2.source_distribution_id_char_1,C_CHAR) = NVL(xal1.source_distribution_id_char_1,C_CHAR)
13475 AND NVL(xal2.source_distribution_id_char_2,C_CHAR) = NVL(xal1.source_distribution_id_char_2,C_CHAR)
13476 AND NVL(xal2.source_distribution_id_char_3,C_CHAR) = NVL(xal1.source_distribution_id_char_3,C_CHAR)
13477 AND NVL(xal2.source_distribution_id_char_4,C_CHAR) = NVL(xal1.source_distribution_id_char_4,C_CHAR)
13478 AND NVL(xal2.source_distribution_id_char_5,C_CHAR) = NVL(xal1.source_distribution_id_char_5,C_CHAR)
13479 AND xal2.event_id = xal1.event_id
13480 AND xal2.ledger_id = xal1.ledger_id
13481 AND xal2.balance_type_code = xal1.balance_type_code
13482 AND xal2.event_class_code = xal1.event_class_code
13483 AND xal2.event_type_code = xal1.event_type_code
13484 AND xal2.line_definition_owner_code = xal1.line_definition_owner_code
13485 AND xal2.line_definition_code = xal1.line_definition_code
13486 AND xal2.ACCOUNTING_LINE_TYPE_CODE = xal1.ACCOUNTING_LINE_TYPE_CODE
13487 AND xal2.ACCOUNTING_LINE_CODE = xal1.ACCOUNTING_LINE_CODE
13488 --
13489 AND xah1.ledger_id = xal1.ledger_id
13490 AND xah1.ae_header_id = xal1.ae_header_id
13491 AND xah1.header_num = xal1.header_num
13492 AND ((xah1.parent_ae_line_num IS NOT NULL AND xal2.temp_line_num = xah1.parent_ae_line_num) -- MPA
13493 OR xah1.parent_ae_line_num IS NULL) -- Accrual Reversal
13494 -- 7128871 -------------------------------------
13495 AND XAL1.BALANCE_TYPE_CODE = XAH1.BALANCE_TYPE_CODE
13496 AND XAL2.AE_HEADER_ID = XAL1.AE_HEADER_ID
13497 --------------------------------------------------
13498 AND xal2.header_num = 0
13499 AND xal2.reversal_code IS NULL -- 5443083 found the same entry
13500 AND xal1.reversal_code = C_MPA_SAME_ENTRY;
13501
13502 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13503 trace
13504 (p_msg => 'BusinessFlowSameEntries - no of MPA/AccRev rows found = '||l_array_mpa_ledger_id.COUNT
13505 ,p_level => C_LEVEL_STATEMENT
13506 ,p_module => l_log_module);
13507 FOR i IN 1..l_array_mpa_ledger_id.COUNT LOOP
13508 trace
13509 (p_msg => 'BusinessFlowSameEntries - mpa lines ledger='||l_array_mpa_ledger_id(i)||
13510 ' ref_header='||l_array_mpa_ref_ae_header_id(i)||
13511 ' temp_line='||l_array_mpa_temp_line_num(i)||
13512 ' ae_header='||l_array_mpa_ae_header_id(i)||
13513 ' header_num='||l_array_mpa_header_num(i)
13514 ,p_level => C_LEVEL_STATEMENT
13515 ,p_module => l_log_module);
13516 END LOOP;
13517 END IF;
13518
13519 FORALL i in 1..l_array_mpa_ledger_id.COUNT
13520 -- added hint for 8920369
13521 UPDATE /*+ INDEX(xal, XLA_AE_LINES_GT_U1)*/ xla_ae_lines_gt xal
13522 SET segment1 = l_array_mpa_segment1(i)
13523 , segment2 = l_array_mpa_segment2(i)
13524 , segment3 = l_array_mpa_segment3(i)
13525 , segment4 = l_array_mpa_segment4(i)
13526 , segment5 = l_array_mpa_segment5(i)
13527 , segment6 = l_array_mpa_segment6(i)
13528 , segment7 = l_array_mpa_segment7(i)
13529 , segment8 = l_array_mpa_segment8(i)
13530 , segment9 = l_array_mpa_segment9(i)
13531 , segment10 = l_array_mpa_segment10(i)
13532 , segment11 = l_array_mpa_segment11(i)
13533 , segment12 = l_array_mpa_segment12(i)
13534 , segment13 = l_array_mpa_segment13(i)
13535 , segment14 = l_array_mpa_segment14(i)
13536 , segment15 = l_array_mpa_segment15(i)
13537 , segment16 = l_array_mpa_segment16(i)
13538 , segment17 = l_array_mpa_segment17(i)
13539 , segment18 = l_array_mpa_segment18(i)
13540 , segment19 = l_array_mpa_segment19(i)
13541 , segment20 = l_array_mpa_segment20(i)
13542 , segment21 = l_array_mpa_segment21(i)
13543 , segment22 = l_array_mpa_segment22(i)
13544 , segment23 = l_array_mpa_segment23(i)
13545 , segment24 = l_array_mpa_segment24(i)
13546 , segment25 = l_array_mpa_segment25(i)
13547 , segment26 = l_array_mpa_segment26(i)
13548 , segment27 = l_array_mpa_segment27(i)
13549 , segment28 = l_array_mpa_segment28(i)
13550 , segment29 = l_array_mpa_segment29(i)
13551 , segment30 = l_array_mpa_segment30(i)
13552 , code_combination_id = l_array_mpa_ccid(i)
13553 , code_combination_status_code = l_array_mpa_ccid_status_code(i) -- 4655713 used in Override_CCID
13554 , description = l_array_mpa_description(i)
13555 , reversal_code = null
13556 WHERE xal.ledger_id = l_array_mpa_ledger_id(i)
13557 AND xal.ref_ae_header_id = l_array_mpa_ref_ae_header_id(i)
13558 AND xal.temp_line_num = l_array_mpa_temp_line_num(i)
13559 AND xal.ae_header_id = l_array_mpa_ae_header_id(i)
13560 AND NVL(xal.header_num,0) = l_array_mpa_header_num(i);
13561 -------------------------------------------------------------------------------------------------------------------------
13562 END IF; -- 7128871 xla_accounting_pkg.g_mpa_accrual_exists = 'Y'
13563
13564
13565 /*-------------------------------------------------------------------------------------------------------------------
13566 -- Replaced for performance fix above
13567 ---------------------------------------------------------------------------------------------------------------------
13568 UPDATE xla_ae_lines_gt xal
13569 SET (segment1, segment2, segment3, segment4, segment5, segment6, segment7, segment8, segment9, segment10
13570 ,segment11, segment12, segment13, segment14, segment15, segment16, segment17, segment18, segment19, segment20
13571 ,segment21, segment22, segment23, segment24, segment25, segment26, segment27, segment28, segment29, segment30
13572 ,code_combination_id
13573 ,description
13574 ,reversal_code) =
13575 (SELECT CASE WHEN count(*) = 1
13576 THEN MIN(DECODE(xal.segment1, C_CHAR, NVL(xal2.segment1,gcc.segment1), xal.segment1))
13577 ELSE MIN(DECODE(xal.segment1, C_CHAR, NULL, xal.segment1)) END
13578 , CASE WHEN count(*) = 1
13579 THEN MIN(DECODE(xal.segment2, C_CHAR, NVL(xal2.segment2,gcc.segment2), xal.segment2))
13580 ELSE MIN(DECODE(xal.segment2, C_CHAR, NULL, xal.segment2)) END
13581 , CASE WHEN count(*) = 1
13582 THEN MIN(DECODE(xal.segment3, C_CHAR, NVL(xal2.segment3,gcc.segment3), xal.segment3))
13583 ELSE MIN(DECODE(xal.segment3, C_CHAR, NULL, xal.segment3)) END
13584 , CASE WHEN count(*) = 1
13585 THEN MIN(DECODE(xal.segment4, C_CHAR, NVL(xal2.segment4,gcc.segment4), xal.segment4))
13586 ELSE MIN(DECODE(xal.segment4, C_CHAR, NULL, xal.segment4)) END
13587 , CASE WHEN count(*) = 1
13588 THEN MIN(DECODE(xal.segment5, C_CHAR, NVL(xal2.segment5,gcc.segment5), xal.segment5))
13589 ELSE MIN(DECODE(xal.segment5, C_CHAR, NULL, xal.segment5)) END
13590 , CASE WHEN count(*) = 1
13591 THEN MIN(DECODE(xal.segment6, C_CHAR, NVL(xal2.segment6,gcc.segment6), xal.segment6))
13592 ELSE MIN(DECODE(xal.segment6, C_CHAR, NULL, xal.segment6)) END
13593 , CASE WHEN count(*) = 1
13594 THEN MIN(DECODE(xal.segment7, C_CHAR, NVL(xal2.segment7,gcc.segment7), xal.segment7))
13595 ELSE MIN(DECODE(xal.segment7, C_CHAR, NULL, xal.segment7)) END
13596 , CASE WHEN count(*) = 1
13597 THEN MIN(DECODE(xal.segment8, C_CHAR, NVL(xal2.segment8,gcc.segment8), xal.segment8))
13598 ELSE MIN(DECODE(xal.segment8, C_CHAR, NULL, xal.segment8)) END
13599 , CASE WHEN count(*) = 1
13600 THEN MIN(DECODE(xal.segment9, C_CHAR, NVL(xal2.segment9,gcc.segment9), xal.segment9))
13601 ELSE MIN(DECODE(xal.segment9, C_CHAR, NULL, xal.segment9)) END
13602 , CASE WHEN count(*) = 1
13603 THEN MIN(DECODE(xal.segment10, C_CHAR, NVL(xal2.segment10,gcc.segment10), xal.segment10))
13604 ELSE MIN(DECODE(xal.segment10, C_CHAR, NULL, xal.segment10)) END
13605 , CASE WHEN count(*) = 1
13606 THEN MIN(DECODE(xal.segment11, C_CHAR, NVL(xal2.segment11,gcc.segment11), xal.segment11))
13607 ELSE MIN(DECODE(xal.segment11, C_CHAR, NULL, xal.segment11)) END
13608 , CASE WHEN count(*) = 1
13609 THEN MIN(DECODE(xal.segment12, C_CHAR, NVL(xal2.segment12,gcc.segment12), xal.segment12))
13610 ELSE MIN(DECODE(xal.segment12, C_CHAR, NULL, xal.segment12)) END
13611 , CASE WHEN count(*) = 1
13612 THEN MIN(DECODE(xal.segment13, C_CHAR, NVL(xal2.segment13,gcc.segment13), xal.segment13))
13613 ELSE MIN(DECODE(xal.segment13, C_CHAR, NULL, xal.segment13)) END
13614 , CASE WHEN count(*) = 1
13615 THEN MIN(DECODE(xal.segment14, C_CHAR, NVL(xal2.segment14,gcc.segment14), xal.segment14))
13616 ELSE MIN(DECODE(xal.segment14, C_CHAR, NULL, xal.segment14)) END
13617 , CASE WHEN count(*) = 1
13618 THEN MIN(DECODE(xal.segment15, C_CHAR, NVL(xal2.segment15,gcc.segment15), xal.segment15))
13619 ELSE MIN(DECODE(xal.segment15, C_CHAR, NULL, xal.segment15)) END
13620 , CASE WHEN count(*) = 1
13621 THEN MIN(DECODE(xal.segment16, C_CHAR, NVL(xal2.segment16,gcc.segment16), xal.segment16))
13622 ELSE MIN(DECODE(xal.segment16, C_CHAR, NULL, xal.segment16)) END
13623 , CASE WHEN count(*) = 1
13624 THEN MIN(DECODE(xal.segment17, C_CHAR, NVL(xal2.segment17,gcc.segment17), xal.segment17))
13625 ELSE MIN(DECODE(xal.segment17, C_CHAR, NULL, xal.segment17)) END
13626 , CASE WHEN count(*) = 1
13627 THEN MIN(DECODE(xal.segment18, C_CHAR, NVL(xal2.segment18,gcc.segment18), xal.segment18))
13628 ELSE MIN(DECODE(xal.segment18, C_CHAR, NULL, xal.segment18)) END
13629 , CASE WHEN count(*) = 1
13630 THEN MIN(DECODE(xal.segment19, C_CHAR, NVL(xal2.segment19,gcc.segment19), xal.segment19))
13631 ELSE MIN(DECODE(xal.segment19, C_CHAR, NULL, xal.segment19)) END
13632 , CASE WHEN count(*) = 1
13633 THEN MIN(DECODE(xal.segment20, C_CHAR, NVL(xal2.segment20,gcc.segment20), xal.segment20))
13634 ELSE MIN(DECODE(xal.segment20, C_CHAR, NULL, xal.segment20)) END
13635 , CASE WHEN count(*) = 1
13636 THEN MIN(DECODE(xal.segment21, C_CHAR, NVL(xal2.segment21,gcc.segment21), xal.segment21))
13637 ELSE MIN(DECODE(xal.segment21, C_CHAR, NULL, xal.segment21)) END
13638 , CASE WHEN count(*) = 1
13639 THEN MIN(DECODE(xal.segment22, C_CHAR, NVL(xal2.segment22,gcc.segment22), xal.segment22))
13640 ELSE MIN(DECODE(xal.segment22, C_CHAR, NULL, xal.segment22)) END
13641 , CASE WHEN count(*) = 1
13642 THEN MIN(DECODE(xal.segment23, C_CHAR, NVL(xal2.segment23,gcc.segment23), xal.segment23))
13643 ELSE MIN(DECODE(xal.segment23, C_CHAR, NULL, xal.segment23)) END
13644 , CASE WHEN count(*) = 1
13645 THEN MIN(DECODE(xal.segment24, C_CHAR, NVL(xal2.segment24,gcc.segment24), xal.segment24))
13646 ELSE MIN(DECODE(xal.segment24, C_CHAR, NULL, xal.segment24)) END
13647 , CASE WHEN count(*) = 1
13648 THEN MIN(DECODE(xal.segment25, C_CHAR, NVL(xal2.segment25,gcc.segment25), xal.segment25))
13649 ELSE MIN(DECODE(xal.segment25, C_CHAR, NULL, xal.segment25)) END
13650 , CASE WHEN count(*) = 1
13651 THEN MIN(DECODE(xal.segment26, C_CHAR, NVL(xal2.segment26,gcc.segment26), xal.segment26))
13652 ELSE MIN(DECODE(xal.segment26, C_CHAR, NULL, xal.segment26)) END
13653 , CASE WHEN count(*) = 1
13654 THEN MIN(DECODE(xal.segment27, C_CHAR, NVL(xal2.segment27,gcc.segment27), xal.segment27))
13655 ELSE MIN(DECODE(xal.segment27, C_CHAR, NULL, xal.segment27)) END
13656 , CASE WHEN count(*) = 1
13657 THEN MIN(DECODE(xal.segment28, C_CHAR, NVL(xal2.segment28,gcc.segment28), xal.segment28))
13658 ELSE MIN(DECODE(xal.segment28, C_CHAR, NULL, xal.segment28)) END
13659 , CASE WHEN count(*) = 1
13660 THEN MIN(DECODE(xal.segment29, C_CHAR, NVL(xal2.segment29,gcc.segment29), xal.segment29))
13661 ELSE MIN(DECODE(xal.segment29, C_CHAR, NULL, xal.segment29)) END
13662 , CASE WHEN count(*) = 1
13663 THEN MIN(DECODE(xal.segment30, C_CHAR, NVL(xal2.segment30,gcc.segment30), xal.segment30))
13664 ELSE MIN(DECODE(xal.segment30, C_CHAR, NULL, xal.segment30)) END
13665 , CASE WHEN count(*) = 1
13666 THEN MIN(DECODE(xal.code_combination_id, C_NUM, xal2.code_combination_id, xal.code_combination_id))
13667 ELSE -1 END
13668 , CASE WHEN count(*) = 1
13669 THEN MIN(DECODE(xal.inherit_desc_flag, 'Y', xal2.description, xal.description)) ELSE NULL END
13670 , CASE WHEN count(*) = 1
13671 THEN NULL ELSE xal.reversal_code END
13672 FROM xla_ae_lines_gt xal2
13673 , gl_code_combinations gcc -- bug4384869
13674 WHERE xal2.source_distribution_type = xal.source_distribution_type
13675 AND NVL(xal2.source_distribution_id_num_1,C_NUM) = NVL(xal.source_distribution_id_num_1,C_NUM)
13676 AND NVL(xal2.source_distribution_id_num_2,C_NUM) = NVL(xal.source_distribution_id_num_2,C_NUM)
13677 AND NVL(xal2.source_distribution_id_num_3,C_NUM) = NVL(xal.source_distribution_id_num_3,C_NUM)
13678 AND NVL(xal2.source_distribution_id_num_4,C_NUM) = NVL(xal.source_distribution_id_num_4,C_NUM)
13679 AND NVL(xal2.source_distribution_id_num_5,C_NUM) = NVL(xal.source_distribution_id_num_5,C_NUM)
13680 AND NVL(xal2.source_distribution_id_char_1,C_CHAR) = NVL(xal.source_distribution_id_char_1,C_CHAR)
13681 AND NVL(xal2.source_distribution_id_char_2,C_CHAR) = NVL(xal.source_distribution_id_char_2,C_CHAR)
13682 AND NVL(xal2.source_distribution_id_char_3,C_CHAR) = NVL(xal.source_distribution_id_char_3,C_CHAR)
13683 AND NVL(xal2.source_distribution_id_char_4,C_CHAR) = NVL(xal.source_distribution_id_char_4,C_CHAR)
13684 AND NVL(xal2.source_distribution_id_char_5,C_CHAR) = NVL(xal.source_distribution_id_char_5,C_CHAR)
13685 AND xal2.event_id = xal.event_id
13686 AND xal2.ledger_id = xal.ledger_id
13687 AND xal2.balance_type_code = xal.balance_type_code
13688 AND xal2.event_class_code = xal.event_class_code
13689 AND xal2.event_type_code = xal.event_type_code
13690 AND xal2.line_definition_owner_code = xal.line_definition_owner_code
13691 AND xal2.line_definition_code = xal.line_definition_code
13692 AND xal2.natural_side_code = DECODE(xal.natural_side_code, 'C', 'D', 'C')
13693 AND gcc.code_combination_id(+) = xal2.code_combination_id -- bug4384869
13694 AND nvl(xal2.reversal_code, 'A') not in (C_DUMMY_SAME, C_DUMMY_PRIOR)
13695 )
13696 WHERE xal.reversal_code = C_DUMMY_SAME;
13697 -------------------------------------------------------------------------------------------------------------------*/
13698
13699 --
13700 -- Handle the same entry line that are not processed - ERROR
13701 --
13702 OPEN c_bflow_unprocessed_lines;
13703 LOOP FETCH c_bflow_unprocessed_lines BULK COLLECT INTO l_array_ae_header_id,
13704 l_array_temp_line_num, -- 5443083 l_array_ae_line_num
13705 l_array_event_id,
13706 l_array_ledger_id,
13707 l_array_balance_type_code,
13708 l_array_entity_id,
13709 l_array_ref_ae_header_id, -- 5443083
13710 l_array_header_num, -- 5443083
13711 l_array_ledger_category, -- 5443083
13712 l_array_zero_amount_flag -- 5443083
13713 LIMIT C_BULK_LIMIT;
13714
13715 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13716 trace
13717 (p_module => l_log_module
13718 ,p_msg => 'Count of unprocessed same entry =' || l_array_ae_header_id.COUNT
13719 ,p_level => C_LEVEL_STATEMENT
13720 );
13721 END IF;
13722
13723 IF l_array_ae_header_id.COUNT = 0 THEN
13724 EXIT;
13725 END IF;
13726
13727
13728 FOR i IN 1..l_array_ae_header_id.COUNT LOOP
13729
13730 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13731 trace
13732 (p_module => l_log_module
13733 ,p_msg => 'same entry ledger='||l_array_ledger_id(i)||
13734 ' category='||l_array_ledger_category(i)||
13735 ' ref_ae_header='||l_array_ref_ae_header_id(i)||
13736 ' line='||l_array_temp_line_num(i)||
13737 ' ae_header='||l_array_ae_header_id(i)||
13738 ' header_num='||l_array_header_num(i)||
13739 ' zero='||l_array_zero_amount_flag(i)||
13740 ' event='||l_array_event_id(i)||
13741 ' bal_type='||l_array_balance_type_code(i)
13742 ,p_level => C_LEVEL_STATEMENT
13743 );
13744 END IF;
13745
13746 IF l_array_zero_amount_flag(i) = 'Y' AND l_array_ledger_category(i) IN ('ALC','SECONDARY') THEN -- 5443083
13747
13748 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13749 trace
13750 (p_module => l_log_module
13751 ,p_msg => 'zero amt same entry ledger='||l_array_ledger_id(i)||
13752 ' ref_ae_header='||l_array_ref_ae_header_id(i)||
13753 ' temp_line='||l_array_temp_line_num(i)||
13754 ' ae_header='||l_array_ae_header_id(i)||
13755 ' header_num='||l_array_header_num(i)||
13756 ' event='||l_array_event_id(i)
13757 ,p_level => C_LEVEL_STATEMENT
13758 );
13759 END IF;
13760
13761 DELETE xla_ae_lines_gt
13762 WHERE ledger_id = l_array_ledger_id(i)
13763 AND ref_ae_header_id = l_array_ref_ae_header_id(i)
13764 AND temp_line_num = l_array_temp_line_num(i)
13765 AND ae_header_id = l_array_ae_header_id(i)
13766 AND header_num = l_array_header_num(i);
13767
13768 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13769 trace
13770 (p_module => l_log_module
13771 ,p_msg => ' zero amt line deleted='||SQL%ROWCOUNT
13772 ,p_level => C_LEVEL_STATEMENT
13773 );
13774 END IF;
13775
13776 DELETE xla_ae_headers_gt hgt
13777 WHERE ledger_id = l_array_ledger_id(i)
13778 AND ae_header_id = l_array_ae_header_id(i)
13779 AND balance_type_code = l_array_balance_type_code(i)
13780 AND header_num = l_array_header_num(i)
13781 AND NOT EXISTS (SELECT /*+ index(lgt XLA_AE_LINES_GT_N2) */ 1
13782 FROM xla_ae_lines_gt lgt
13783 WHERE lgt.ledger_id = hgt.ledger_id
13784 AND lgt.ae_header_id = hgt.ae_header_id
13785 AND lgt.header_num = hgt.header_num
13786 AND lgt.balance_type_code = hgt.balance_type_code);
13787
13788 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13789 trace
13790 (p_module => l_log_module
13791 ,p_msg => ' zero amt header deleted='||SQL%ROWCOUNT
13792 ,p_level => C_LEVEL_STATEMENT
13793 );
13794 END IF;
13795
13796 ELSE
13797 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
13798 xla_accounting_err_pkg.build_message
13799 (p_appli_s_name => 'XLA'
13800 ,p_msg_name => 'XLA_AP_BFLOW_SE_NOT_FOUND'
13801 ,p_entity_id => l_array_entity_id(i) -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13802 ,p_event_id => l_array_event_id(i) -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13803 ,p_ledger_id => l_array_ledger_id(i)); -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13804 END IF;
13805 END LOOP;
13806
13807 --
13808 -- Update JE lines for those that encountered error
13809 --
13810 FORALL i IN 1..l_array_balance_type_code.COUNT
13811 UPDATE /*+ INDEX(xla_ae_lines_gt, XLA_AE_LINES_GT_U1)*/ xla_ae_lines_gt
13812 SET description = DECODE(description, C_CHAR, NULL, description)
13813 , code_combination_id = DECODE(code_combination_id, C_NUM, -1, code_combination_id)
13814 , code_combination_status_code = C_INVALID -- 4655713
13815 , segment1 = DECODE(segment1, C_CHAR, NULL, segment1)
13816 , segment2 = DECODE(segment2, C_CHAR, NULL, segment2)
13817 , segment3 = DECODE(segment3, C_CHAR, NULL, segment3)
13818 , segment4 = DECODE(segment4, C_CHAR, NULL, segment4)
13819 , segment5 = DECODE(segment5, C_CHAR, NULL, segment5)
13820 , segment6 = DECODE(segment6, C_CHAR, NULL, segment6)
13821 , segment7 = DECODE(segment7, C_CHAR, NULL, segment7)
13822 , segment8 = DECODE(segment8, C_CHAR, NULL, segment8)
13823 , segment9 = DECODE(segment9, C_CHAR, NULL, segment9)
13824 , segment10 = DECODE(segment10, C_CHAR, NULL, segment10)
13825 , segment11 = DECODE(segment11, C_CHAR, NULL, segment11)
13826 , segment12 = DECODE(segment12, C_CHAR, NULL, segment12)
13827 , segment13 = DECODE(segment13, C_CHAR, NULL, segment13)
13828 , segment14 = DECODE(segment14, C_CHAR, NULL, segment14)
13829 , segment15 = DECODE(segment15, C_CHAR, NULL, segment15)
13830 , segment16 = DECODE(segment16, C_CHAR, NULL, segment16)
13831 , segment17 = DECODE(segment17, C_CHAR, NULL, segment17)
13832 , segment18 = DECODE(segment18, C_CHAR, NULL, segment18)
13833 , segment19 = DECODE(segment19, C_CHAR, NULL, segment19)
13834 , segment20 = DECODE(segment20, C_CHAR, NULL, segment20)
13835 , segment21 = DECODE(segment21, C_CHAR, NULL, segment21)
13836 , segment22 = DECODE(segment22, C_CHAR, NULL, segment22)
13837 , segment23 = DECODE(segment23, C_CHAR, NULL, segment23)
13838 , segment24 = DECODE(segment24, C_CHAR, NULL, segment24)
13839 , segment25 = DECODE(segment25, C_CHAR, NULL, segment25)
13840 , segment26 = DECODE(segment26, C_CHAR, NULL, segment26)
13841 , segment27 = DECODE(segment27, C_CHAR, NULL, segment27)
13842 , segment28 = DECODE(segment28, C_CHAR, NULL, segment28)
13843 , segment29 = DECODE(segment29, C_CHAR, NULL, segment29)
13844 , segment30 = DECODE(segment30, C_CHAR, NULL, segment30)
13845 WHERE ae_header_id = l_array_ae_header_id(i)
13846 -- AND ae_line_num = l_array_ae_line_num(i) -- 5443083
13847 AND temp_line_num = l_array_temp_line_num(i) -- 5443083
13848 AND ref_ae_header_id = l_array_ref_ae_header_id(i) -- 5443083
13849 AND header_num = l_array_header_num(i) -- 5443083
13850 AND event_id = l_array_event_id(i)
13851 AND ledger_id = l_array_ledger_id(i)
13852 AND balance_type_code = l_array_balance_type_code(i);
13853
13854 END LOOP;
13855 CLOSE c_bflow_unprocessed_lines;
13856
13857 -- start of changes for bug#11066172
13858 OPEN c_bflowsame_error_headers;
13859 LOOP FETCH c_bflowsame_error_headers BULK COLLECT INTO l_array_ae_header_id,
13860 l_array_event_id,
13861 l_array_ledger_id,
13862 l_array_balance_type_code,
13863 l_array_header_num
13864 LIMIT C_BULK_LIMIT;
13865
13866 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13867 trace
13868 (p_module => l_log_module
13869 ,p_msg => 'Count of Same Entry HEADER ERRORS =' || l_array_ae_header_id.COUNT
13870 ,p_level => C_LEVEL_STATEMENT
13871 );
13872 END IF;
13873
13874 IF l_array_ae_header_id.COUNT = 0 THEN
13875 EXIT;
13876 END IF;
13877
13878 -- Update JE header status for invalid entries
13879 --
13880 FORALL i IN 1..l_array_balance_type_code.COUNT
13881 UPDATE xla_ae_headers_gt hgt
13882 SET accounting_entry_status_code = XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID, -- C_INVALID_STATUS
13883 event_status_code='I' -- Bug 13493286
13884 WHERE ae_header_id = l_array_ae_header_id(i)
13885 AND event_id = l_array_event_id(i)
13886 AND ledger_id = l_array_ledger_id(i)
13887 AND header_num = l_array_header_num(i) -- 5443083
13888 AND balance_type_code = l_array_balance_type_code(i)
13889 AND EXISTS (SELECT /*+ index(lgt XLA_AE_LINES_GT_N2) */ 1 - 5443083
13890 FROM xla_ae_lines_gt lgt
13891 WHERE lgt.ledger_id = hgt.ledger_id
13892 AND lgt.ae_header_id = hgt.ae_header_id
13893 AND lgt.header_num = hgt.header_num
13894 AND lgt.balance_type_code = hgt.balance_type_code
13895 AND (lgt.reversal_code = C_DUMMY_SAME
13896 OR lgt.reversal_code = C_MPA_SAME_ENTRY));
13897
13898 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
13899 FOR i IN 1..l_array_balance_type_code.COUNT
13900 LOOP
13901 trace (p_module => l_log_module
13902 ,p_msg => ' ERROR: EVENT_ID: ' || l_array_event_id(i)
13903 ||' BALANCE_TYPE: '||l_array_balance_type_code(i)
13904 ||' HEADER_NUM: '||l_array_header_num(i)
13905 ||' LEDGER: '||l_array_ledger_id(i)
13906 ||' Count: '||SQL%BULK_ROWCOUNT(i)
13907 ,p_level => C_LEVEL_STATEMENT
13908 );
13909 END LOOP;
13910 END IF;
13911
13912 END LOOP;
13913 CLOSE c_bflowsame_error_headers ;
13914 -- end of changes for bug#11066172
13915
13916 END IF; -- g_num_bflow_same_entries > 0
13917
13918
13919 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13920 trace
13921 (p_msg => 'END of BusinessFlowSameEntries'
13922 ,p_level => C_LEVEL_PROCEDURE
13923 ,p_module => l_log_module);
13924 END IF;
13925
13926 EXCEPTION
13927 --
13928 WHEN xla_exceptions_pkg.application_exception THEN
13929 RAISE;
13930 WHEN OTHERS THEN
13931 xla_exceptions_pkg.raise_message
13932 (p_location => 'xla_ae_lines_pkg.BusinessFlowSameEntries');
13933 --
13934 END BusinessFlowSameEntries;
13935
13936 /*======================================================================+
13937 | |
13938 | Public Procedure- Validate Business Flow Applied To Links - 4219869 |
13939 | (Refer to ValidateLinks for similar logic.) |
13940 | |
13941 +======================================================================*/
13942 PROCEDURE ValidateBFlowLinks IS
13943
13944 l_log_module VARCHAR2(240);
13945 l_source_temp NUMBER;
13946 l_dist_temp NUMBER;
13947 l_app_name VARCHAR2(240);
13948
13949 BEGIN
13950 IF g_log_enabled THEN
13951 l_log_module := C_DEFAULT_MODULE||'.ValidateBFlowLinks';
13952 END IF;
13953
13954 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13955 trace
13956 (p_msg => 'BEGIN of ValidateBFlowLinks'
13957 ,p_level => C_LEVEL_PROCEDURE
13958 ,p_module => l_log_module);
13959 END IF;
13960
13961
13962 --IF g_rec_lines.array_bflow_application_id(g_LineNumber) IS NOT NULL THEN
13963
13964 IF g_rec_lines.array_bflow_application_id(g_LineNumber) IS NULL OR -- log error if application id is null
13965 g_rec_lines.array_bflow_entity_code(g_LineNumber) IS NULL OR
13966 g_rec_lines.array_bflow_distribution_type(g_LineNumber) IS NULL OR
13967 (g_rec_lines.array_bflow_source_id_char_1(g_LineNumber) IS NULL AND
13968 g_rec_lines.array_bflow_source_id_num_1(g_LineNumber) IS NULL) OR
13969 (g_rec_lines.array_bflow_dist_id_char_1(g_LineNumber) IS NULL AND
13970 g_rec_lines.array_bflow_dist_id_num_1(g_LineNumber) IS NULL) THEN
13971
13972 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
13973 xla_accounting_err_pkg.build_message
13974 (p_appli_s_name => 'XLA'
13975 ,p_msg_name => 'XLA_AP_BFPE_INVALID_APPLIED_TO'
13976 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13977 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13978 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
13979
13980 ELSE
13981
13982 l_app_name := xla_accounting_cache_pkg.GetSessionValueChar('XLA_EVENT_APPL_NAME');
13983
13984 ---------------------------------------------------------------------
13985 -- Verify applied-to system transaction ids
13986 ---------------------------------------------------------------------
13987 IF g_rec_lines.array_bflow_source_id_char_4(g_LineNumber) IS NULL AND
13988 g_rec_lines.array_bflow_source_id_num_4(g_LineNumber) IS NULL THEN
13989 l_source_temp := 0;
13990 ELSE
13991 l_source_temp := 1;
13992 END IF;
13993 IF g_rec_lines.array_bflow_source_id_char_3(g_LineNumber) IS NOT NULL OR
13994 g_rec_lines.array_bflow_source_id_num_3(g_LineNumber) IS NOT NULL THEN
13995 l_source_temp := 2+l_source_temp;
13996 END IF;
13997 IF g_rec_lines.array_bflow_source_id_char_2(g_LineNumber) IS NOT NULL OR
13998 g_rec_lines.array_bflow_source_id_num_2(g_LineNumber) IS NOT NULL THEN
13999 l_source_temp := 4+l_source_temp;
14000 END IF;
14001
14002 IF (g_rec_lines.array_bflow_source_id_char_1(g_LineNumber) IS NULL AND
14003 g_rec_lines.array_bflow_source_id_num_1(g_LineNumber) IS NULL) OR
14004 l_source_temp not in (0, 4, 6, 7) THEN
14005
14006 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
14007 xla_accounting_err_pkg.build_message
14008 (p_appli_s_name => 'XLA'
14009 ,p_msg_name => 'XLA_AP_BFLOW_NO_SYS_TRX_ID'
14010 ,p_token_1 => 'LINE_NUMBER'
14011 ,p_value_1 => g_ExtractLine
14012 ,p_token_2 => 'LINE_TYPE_NAME'
14013 ,p_value_2 => xla_ae_sources_pkg.GetComponentName (
14014 g_accounting_line.component_type
14015 , g_accounting_line.accounting_line_code
14016 , g_accounting_line.accounting_line_type_code
14017 , g_accounting_line.accounting_line_appl_id
14018 , g_accounting_line.amb_context_code
14019 , g_accounting_line.entity_code
14020 , g_accounting_line.event_class_code)
14021 ,p_token_3 => 'OWNER'
14022 ,p_value_3 => xla_lookups_pkg.get_meaning(
14023 'XLA_OWNER_TYPE'
14024 , g_rec_lines.array_accounting_line_type(g_LineNumber))
14025 ,p_token_4 => 'PRODUCT_NAME'
14026 --,p_value_4 => xla_ae_journal_entry_pkg.g_cache_event.application_name
14027 ,p_value_4 => l_app_name
14028 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
14029 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
14030 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
14031 ,p_ae_header_id => NULL);
14032
14033 IF (C_LEVEL_ERROR >= g_log_level) THEN
14034 trace
14035 (p_msg => 'ERROR: XLA_AP_BFLOW_NO_SYS_TRX_ID'
14036 ,p_level => C_LEVEL_ERROR
14037 ,p_module => l_log_module);
14038 END IF;
14039
14040 END IF; -- g_rec_lines.array_bflow_source_id_char_1(g_LineNumber) IS NULL
14041
14042 ---------------------------------------------------------------------
14043 -- Verify applied-to distribution ids
14044 ---------------------------------------------------------------------
14045 IF g_rec_lines.array_bflow_dist_id_char_5(g_LineNumber) IS NULL AND
14046 g_rec_lines.array_bflow_dist_id_num_5(g_LineNumber) IS NULL THEN
14047 l_dist_temp := 0;
14048 ELSE
14049 l_dist_temp := 1;
14050 END IF;
14051 IF g_rec_lines.array_bflow_dist_id_char_4(g_LineNumber) IS NOT NULL OR
14052 g_rec_lines.array_bflow_dist_id_num_4(g_LineNumber) IS NOT NULL THEN
14053 l_dist_temp := 2+l_dist_temp;
14054 END IF;
14055 IF g_rec_lines.array_bflow_dist_id_char_3(g_LineNumber) IS NOT NULL OR
14056 g_rec_lines.array_bflow_dist_id_num_3(g_LineNumber) IS NOT NULL THEN
14057 l_dist_temp := 4+l_dist_temp;
14058 END IF;
14059 IF g_rec_lines.array_bflow_dist_id_char_2(g_LineNumber) IS NOT NULL OR
14060 g_rec_lines.array_bflow_dist_id_num_2(g_LineNumber) IS NOT NULL THEN
14061 l_dist_temp := 8+l_dist_temp;
14062 END IF;
14063
14064 IF (g_rec_lines.array_bflow_dist_id_char_1(g_LineNumber) IS NULL AND
14065 g_rec_lines.array_bflow_dist_id_num_1(g_LineNumber) IS NULL) OR
14066 l_dist_temp not in (0, 8, 12, 14, 15) THEN
14067
14068 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
14069 xla_accounting_err_pkg.build_message
14070 (p_appli_s_name => 'XLA'
14071 ,p_msg_name => 'XLA_AP_BFLOW_NO_DIST_LINK_ID'
14072 ,p_token_1 => 'LINE_NUMBER'
14073 ,p_value_1 => g_ExtractLine
14074 ,p_token_2 => 'LINE_TYPE_NAME'
14075 ,p_value_2 => xla_ae_sources_pkg.GetComponentName (
14076 g_accounting_line.component_type
14077 , g_accounting_line.accounting_line_code
14078 , g_accounting_line.accounting_line_type_code
14079 , g_accounting_line.accounting_line_appl_id
14080 , g_accounting_line.amb_context_code
14081 , g_accounting_line.entity_code
14082 , g_accounting_line.event_class_code)
14083 ,p_token_3 => 'OWNER'
14084 ,p_value_3 => xla_lookups_pkg.get_meaning(
14085 'XLA_OWNER_TYPE'
14086 , g_rec_lines.array_accounting_line_type(g_LineNumber))
14087 ,p_token_4 => 'PRODUCT_NAME'
14088 --,p_value_4 => xla_ae_journal_entry_pkg.g_cache_event.application_name
14089 ,p_value_4 => l_app_name
14090 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
14091 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
14092 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
14093 ,p_ae_header_id => NULL);
14094
14095 IF (C_LEVEL_ERROR >= g_log_level) THEN
14096 trace
14097 (p_msg => 'ERROR: XLA_AP_BFLOW_NO_DIST_LINK_ID'
14098 ,p_level => C_LEVEL_ERROR
14099 ,p_module => l_log_module);
14100 END IF;
14101 END IF; -- (g_rec_lines.array_bflow_dist_id_char_1(g_LineNumber) IS NULL
14102
14103 END IF; -- if bflow_entity_code is null
14104
14105 --END IF; -- if bflow_application_id is not null
14106
14107 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14108 trace
14109 (p_msg => 'END of ValidateBFlowLinks'
14110 ,p_level => C_LEVEL_PROCEDURE
14111 ,p_module => l_log_module);
14112 END IF;
14113
14114 EXCEPTION
14115 --
14116 WHEN xla_exceptions_pkg.application_exception THEN
14117 RAISE;
14118 WHEN OTHERS THEN
14119 xla_exceptions_pkg.raise_message
14120 (p_location => 'xla_ae_lines_pkg.ValidateBFlowLinks');
14121 --
14122 END ValidateBFlowLinks;
14123
14124 /*======================================================================+
14125 | |
14126 | Public Procedure- 4262811 |
14127 | |
14128 | |
14129 +======================================================================*/
14130 PROCEDURE CopyLineInfo(
14131 p_line_num NUMBER
14132 ) IS
14133
14134 l_log_module VARCHAR2(240);
14135
14136 BEGIN
14137 IF g_log_enabled THEN
14138 l_log_module := C_DEFAULT_MODULE||'.CopyLineInfo';
14139 END IF;
14140
14141 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14142 trace
14143 (p_msg => 'BEGIN of CopyLineInfo'
14144 ,p_level => C_LEVEL_PROCEDURE
14145 ,p_module => l_log_module);
14146 END IF;
14147
14148 -- added the call to overloaded procedure with source as G_REC_LINES as per bug: 7109881
14149 CopyLineInfo(p_line_num,g_rec_lines);
14150
14151 -- commented the code, as code moved to overloaded procedure
14152
14153 /* SetNewLine;
14154
14155 -------------------------------------------------------------------------------------------------------
14156 -- Copy all information in g_rec_lines from p_line_num to g_LineNumber with the following exceptions:
14157 -------------------------------------------------------------------------------------------------------
14158 --
14159 --
14160 -------------------------------------------------------------------------------------------------------
14161 -- Skipped a TEMP_LINE_NUM in distribution links for MPA as SetNewLine also increased by 1
14162 --
14163 -- following sets the temp line number
14164 -- g_rec_lines.array_line_num(g_LineNumber) := NVL(g_temp_line_num ,0) + 1;
14165 -------------------------------------------------------------------------------------------------------
14166 --
14167 g_rec_lines.array_ae_header_id(g_LineNumber) := g_rec_lines.array_ae_header_id(p_line_num);
14168 g_rec_lines.array_header_num(g_LineNumber) := g_rec_lines.array_header_num(p_line_num);
14169
14170 -- =================================================================================================
14171 g_rec_lines.array_accounting_class(g_LineNumber) := g_rec_lines.array_accounting_class(p_line_num);
14172 g_rec_lines.array_rounding_class(g_LineNumber) := g_rec_lines.array_rounding_class(p_line_num);
14173 g_rec_lines.array_doc_rounding_level(g_LineNumber) := g_rec_lines.array_doc_rounding_level(p_line_num);
14174 g_rec_lines.array_gain_or_loss_ref(g_LineNumber):= g_rec_lines.array_gain_or_loss_ref(p_line_num);
14175 g_rec_lines.array_event_class_code(g_LineNumber) := g_rec_lines.array_event_class_code(p_line_num);
14176 g_rec_lines.array_event_type_code(g_LineNumber) := g_rec_lines.array_event_type_code(p_line_num);
14177 g_rec_lines.array_line_defn_owner_code(g_LineNumber) := g_rec_lines.array_line_defn_owner_code(p_line_num);
14178 g_rec_lines.array_line_defn_code(g_LineNumber) := g_rec_lines.array_line_defn_code(p_line_num);
14179 g_rec_lines.array_accounting_line_code(g_LineNumber) := g_rec_lines.array_accounting_line_code(p_line_num);
14180 g_rec_lines.array_accounting_line_type(g_LineNumber) := g_rec_lines.array_accounting_line_type(p_line_num);
14181 g_rec_lines.array_calculate_acctd_flag(g_LineNumber) := g_rec_lines.array_calculate_acctd_flag(p_line_num);
14182 g_rec_lines.array_calculate_g_l_flag(g_LineNumber) := g_rec_lines.array_calculate_g_l_flag(p_line_num);
14183 g_rec_lines.array_gain_or_loss_flag(g_LineNumber) := g_rec_lines.array_gain_or_loss_flag(p_line_num);
14184
14185 --
14186 -- following sets the extract line number
14187 --
14188 g_rec_lines.array_extract_line_num(g_LineNumber) := g_rec_lines.array_extract_line_num(p_line_num);
14189
14190 --
14191 -- line flexfield accounts
14192 --
14193 g_rec_lines.array_ccid_flag(g_LineNumber) := g_rec_lines.array_ccid_flag(p_line_num);
14194 g_rec_lines.array_ccid(g_LineNumber) := g_rec_lines.array_ccid(p_line_num);
14195 --
14196 g_rec_lines.array_accounting_coa_id(g_LineNumber) := g_rec_lines.array_accounting_coa_id(p_line_num);
14197 g_rec_lines.array_transaction_coa_id(g_LineNumber) := g_rec_lines.array_transaction_coa_id(p_line_num);
14198 g_rec_lines.array_sl_coa_mapping_name(g_LineNumber) := g_rec_lines.array_sl_coa_mapping_name(p_line_num);
14199 --
14200 g_rec_lines.array_segment1(g_LineNumber) := g_rec_lines.array_segment1(p_line_num);
14201 g_rec_lines.array_segment2(g_LineNumber) := g_rec_lines.array_segment2(p_line_num);
14202 g_rec_lines.array_segment3(g_LineNumber) := g_rec_lines.array_segment3(p_line_num);
14203 g_rec_lines.array_segment4(g_LineNumber) := g_rec_lines.array_segment4(p_line_num);
14204 g_rec_lines.array_segment5(g_LineNumber) := g_rec_lines.array_segment5(p_line_num);
14205 g_rec_lines.array_segment6(g_LineNumber) := g_rec_lines.array_segment6(p_line_num);
14206 g_rec_lines.array_segment7(g_LineNumber) := g_rec_lines.array_segment7(p_line_num);
14207 g_rec_lines.array_segment8(g_LineNumber) := g_rec_lines.array_segment8(p_line_num);
14208 g_rec_lines.array_segment9(g_LineNumber) := g_rec_lines.array_segment9(p_line_num);
14209 g_rec_lines.array_segment10(g_LineNumber) := g_rec_lines.array_segment10(p_line_num);
14210 g_rec_lines.array_segment11(g_LineNumber) := g_rec_lines.array_segment11(p_line_num);
14211 g_rec_lines.array_segment12(g_LineNumber) := g_rec_lines.array_segment12(p_line_num);
14212 g_rec_lines.array_segment13(g_LineNumber) := g_rec_lines.array_segment13(p_line_num);
14213 g_rec_lines.array_segment14(g_LineNumber) := g_rec_lines.array_segment14(p_line_num);
14214 g_rec_lines.array_segment15(g_LineNumber) := g_rec_lines.array_segment15(p_line_num);
14215 g_rec_lines.array_segment16(g_LineNumber) := g_rec_lines.array_segment16(p_line_num);
14216 g_rec_lines.array_segment17(g_LineNumber) := g_rec_lines.array_segment17(p_line_num);
14217 g_rec_lines.array_segment18(g_LineNumber) := g_rec_lines.array_segment18(p_line_num);
14218 g_rec_lines.array_segment19(g_LineNumber) := g_rec_lines.array_segment19(p_line_num);
14219 g_rec_lines.array_segment20(g_LineNumber) := g_rec_lines.array_segment20(p_line_num);
14220 g_rec_lines.array_segment21(g_LineNumber) := g_rec_lines.array_segment21(p_line_num);
14221 g_rec_lines.array_segment22(g_LineNumber) := g_rec_lines.array_segment22(p_line_num);
14222 g_rec_lines.array_segment23(g_LineNumber) := g_rec_lines.array_segment23(p_line_num);
14223 g_rec_lines.array_segment24(g_LineNumber) := g_rec_lines.array_segment24(p_line_num);
14224 g_rec_lines.array_segment25(g_LineNumber) := g_rec_lines.array_segment25(p_line_num);
14225 g_rec_lines.array_segment26(g_LineNumber) := g_rec_lines.array_segment26(p_line_num);
14226 g_rec_lines.array_segment27(g_LineNumber) := g_rec_lines.array_segment27(p_line_num);
14227 g_rec_lines.array_segment28(g_LineNumber) := g_rec_lines.array_segment28(p_line_num);
14228 g_rec_lines.array_segment29(g_LineNumber) := g_rec_lines.array_segment29(p_line_num);
14229 g_rec_lines.array_segment30(g_LineNumber) := g_rec_lines.array_segment30(p_line_num);
14230 --
14231 g_rec_lines.alt_array_ccid_flag(g_LineNumber) := g_rec_lines.alt_array_ccid_flag(p_line_num);
14232 g_rec_lines.alt_array_ccid(g_LineNumber) := g_rec_lines.alt_array_ccid(p_line_num);
14233 g_rec_lines.alt_array_segment1(g_LineNumber) := g_rec_lines.alt_array_segment1(p_line_num);
14234 g_rec_lines.alt_array_segment2(g_LineNumber) := g_rec_lines.alt_array_segment2(p_line_num);
14235 g_rec_lines.alt_array_segment3(g_LineNumber) := g_rec_lines.alt_array_segment3(p_line_num);
14236 g_rec_lines.alt_array_segment4(g_LineNumber) := g_rec_lines.alt_array_segment4(p_line_num);
14237 g_rec_lines.alt_array_segment5(g_LineNumber) := g_rec_lines.alt_array_segment5(p_line_num);
14238 g_rec_lines.alt_array_segment6(g_LineNumber) := g_rec_lines.alt_array_segment6(p_line_num);
14239 g_rec_lines.alt_array_segment7(g_LineNumber) := g_rec_lines.alt_array_segment7(p_line_num);
14240 g_rec_lines.alt_array_segment8(g_LineNumber) := g_rec_lines.alt_array_segment8(p_line_num);
14241 g_rec_lines.alt_array_segment9(g_LineNumber) := g_rec_lines.alt_array_segment9(p_line_num);
14242 g_rec_lines.alt_array_segment10(g_LineNumber) := g_rec_lines.alt_array_segment10(p_line_num);
14243 g_rec_lines.alt_array_segment11(g_LineNumber) := g_rec_lines.alt_array_segment11(p_line_num);
14244 g_rec_lines.alt_array_segment12(g_LineNumber) := g_rec_lines.alt_array_segment12(p_line_num);
14245 g_rec_lines.alt_array_segment13(g_LineNumber) := g_rec_lines.alt_array_segment13(p_line_num);
14246 g_rec_lines.alt_array_segment14(g_LineNumber) := g_rec_lines.alt_array_segment14(p_line_num);
14247 g_rec_lines.alt_array_segment15(g_LineNumber) := g_rec_lines.alt_array_segment15(p_line_num);
14248 g_rec_lines.alt_array_segment16(g_LineNumber) := g_rec_lines.alt_array_segment16(p_line_num);
14249 g_rec_lines.alt_array_segment17(g_LineNumber) := g_rec_lines.alt_array_segment17(p_line_num);
14250 g_rec_lines.alt_array_segment18(g_LineNumber) := g_rec_lines.alt_array_segment18(p_line_num);
14251 g_rec_lines.alt_array_segment19(g_LineNumber) := g_rec_lines.alt_array_segment19(p_line_num);
14252 g_rec_lines.alt_array_segment20(g_LineNumber) := g_rec_lines.alt_array_segment20(p_line_num);
14253 g_rec_lines.alt_array_segment21(g_LineNumber) := g_rec_lines.alt_array_segment21(p_line_num);
14254 g_rec_lines.alt_array_segment22(g_LineNumber) := g_rec_lines.alt_array_segment22(p_line_num);
14255 g_rec_lines.alt_array_segment23(g_LineNumber) := g_rec_lines.alt_array_segment23(p_line_num);
14256 g_rec_lines.alt_array_segment24(g_LineNumber) := g_rec_lines.alt_array_segment24(p_line_num);
14257 g_rec_lines.alt_array_segment25(g_LineNumber) := g_rec_lines.alt_array_segment25(p_line_num);
14258 g_rec_lines.alt_array_segment26(g_LineNumber) := g_rec_lines.alt_array_segment26(p_line_num);
14259 g_rec_lines.alt_array_segment27(g_LineNumber) := g_rec_lines.alt_array_segment27(p_line_num);
14260 g_rec_lines.alt_array_segment28(g_LineNumber) := g_rec_lines.alt_array_segment28(p_line_num);
14261 g_rec_lines.alt_array_segment29(g_LineNumber) := g_rec_lines.alt_array_segment29(p_line_num);
14262 g_rec_lines.alt_array_segment30(g_LineNumber) := g_rec_lines.alt_array_segment30(p_line_num);
14263 --
14264 -- Option lines
14265 --
14266 g_rec_lines.array_gl_transfer_mode(g_LineNumber) := g_rec_lines.array_gl_transfer_mode(p_line_num);
14267 g_rec_lines.array_natural_side_code(g_LineNumber) := g_rec_lines.array_natural_side_code(p_line_num);
14268 g_rec_lines.array_acct_entry_type_code(g_LineNumber) := g_rec_lines.array_acct_entry_type_code(p_line_num);
14269 g_rec_lines.array_switch_side_flag(g_LineNumber) := g_rec_lines.array_switch_side_flag(p_line_num);
14270 g_rec_lines.array_merge_duplicate_code(g_LineNumber) := g_rec_lines.array_merge_duplicate_code(p_line_num);
14271 --
14272 -- line amounts
14273 --
14274 g_rec_lines.array_entered_amount(g_LineNumber) := g_rec_lines.array_entered_amount(p_line_num);
14275 g_rec_lines.array_ledger_amount(g_LineNumber) := g_rec_lines.array_ledger_amount(p_line_num);
14276 g_rec_lines.array_entered_dr(g_LineNumber) := g_rec_lines.array_entered_dr(p_line_num);
14277 g_rec_lines.array_entered_cr(g_LineNumber) := g_rec_lines.array_entered_cr(p_line_num);
14278 g_rec_lines.array_accounted_dr(g_LineNumber) := g_rec_lines.array_accounted_dr(p_line_num);
14279 g_rec_lines.array_accounted_cr(g_LineNumber) := g_rec_lines.array_accounted_cr(p_line_num);
14280 g_rec_lines.array_currency_code(g_LineNumber) := g_rec_lines.array_currency_code(p_line_num);
14281 g_rec_lines.array_currency_mau(g_LineNumber) := xla_accounting_cache_pkg.GetCurrencyMau(g_rec_lines.array_currency_code(g_LineNumber));
14282 g_rec_lines.array_curr_conversion_date(g_LineNumber) := g_rec_lines.array_curr_conversion_date(p_line_num);
14283 g_rec_lines.array_curr_conversion_rate(g_LineNumber) := g_rec_lines.array_curr_conversion_rate(p_line_num);
14284 g_rec_lines.array_curr_conversion_type(g_LineNumber) := g_rec_lines.array_curr_conversion_type(p_line_num);
14285 g_rec_lines.array_description(g_LineNumber) := g_rec_lines.array_description(p_line_num);
14286 --
14287 -- line descriptions
14288 --
14289 g_rec_lines.array_party_id(g_LineNumber) := g_rec_lines.array_party_id(p_line_num);
14290 g_rec_lines.array_party_site_id(g_LineNumber) := g_rec_lines.array_party_site_id(p_line_num);
14291 g_rec_lines.array_party_type_code(g_LineNumber) := g_rec_lines.array_party_type_code(p_line_num);
14292 --
14293 g_rec_lines.array_statistical_amount(g_LineNumber) := g_rec_lines.array_statistical_amount(p_line_num);
14294 g_rec_lines.array_ussgl_transaction(g_LineNumber) := g_rec_lines.array_ussgl_transaction(p_line_num);
14295 --
14296 g_rec_lines.array_jgzz_recon_ref(g_LineNumber) := g_rec_lines.array_jgzz_recon_ref(p_line_num);
14297 --
14298 -- distribution links
14299 --
14300 g_rec_lines.array_distribution_id_char_1(g_LineNumber) := g_rec_lines.array_distribution_id_char_1(p_line_num);
14301 g_rec_lines.array_distribution_id_char_2(g_LineNumber) := g_rec_lines.array_distribution_id_char_2(p_line_num);
14302 g_rec_lines.array_distribution_id_char_3(g_LineNumber) := g_rec_lines.array_distribution_id_char_3(p_line_num);
14303 g_rec_lines.array_distribution_id_char_4(g_LineNumber) := g_rec_lines.array_distribution_id_char_4(p_line_num);
14304 g_rec_lines.array_distribution_id_char_5(g_LineNumber) := g_rec_lines.array_distribution_id_char_5(p_line_num);
14305 g_rec_lines.array_distribution_id_num_1(g_LineNumber) := g_rec_lines.array_distribution_id_num_1(p_line_num);
14306 g_rec_lines.array_distribution_id_num_2(g_LineNumber) := g_rec_lines.array_distribution_id_num_2(p_line_num);
14307 g_rec_lines.array_distribution_id_num_3(g_LineNumber) := g_rec_lines.array_distribution_id_num_3(p_line_num);
14308 g_rec_lines.array_distribution_id_num_4(g_LineNumber) := g_rec_lines.array_distribution_id_num_4(p_line_num);
14309 g_rec_lines.array_distribution_id_num_5(g_LineNumber) := g_rec_lines.array_distribution_id_num_5(p_line_num);
14310 g_rec_lines.array_sys_distribution_type(g_LineNumber) := g_rec_lines.array_sys_distribution_type(p_line_num);
14311 --
14312 -- reverse distribution links
14313 --
14314 g_rec_lines.array_rev_dist_id_char_1(g_LineNumber) := g_rec_lines.array_rev_dist_id_char_1(p_line_num);
14315 g_rec_lines.array_rev_dist_id_char_2(g_LineNumber) := g_rec_lines.array_rev_dist_id_char_2(p_line_num);
14316 g_rec_lines.array_rev_dist_id_char_3(g_LineNumber) := g_rec_lines.array_rev_dist_id_char_3(p_line_num);
14317 g_rec_lines.array_rev_dist_id_char_4(g_LineNumber) := g_rec_lines.array_rev_dist_id_char_4(p_line_num);
14318 g_rec_lines.array_rev_dist_id_char_5(g_LineNumber) := g_rec_lines.array_rev_dist_id_char_5(p_line_num);
14319 g_rec_lines.array_rev_dist_id_num_1(g_LineNumber) := g_rec_lines.array_rev_dist_id_num_1(p_line_num);
14320 g_rec_lines.array_rev_dist_id_num_2(g_LineNumber) := g_rec_lines.array_rev_dist_id_num_2(p_line_num);
14321 g_rec_lines.array_rev_dist_id_num_3(g_LineNumber) := g_rec_lines.array_rev_dist_id_num_3(p_line_num);
14322 g_rec_lines.array_rev_dist_id_num_4(g_LineNumber) := g_rec_lines.array_rev_dist_id_num_4(p_line_num);
14323 g_rec_lines.array_rev_dist_id_num_5(g_LineNumber) := g_rec_lines.array_rev_dist_id_num_5(p_line_num);
14324 g_rec_lines.array_rev_dist_type(g_LineNumber) := g_rec_lines.array_rev_dist_type(p_line_num);
14325 --
14326 -- multiperiod accounting
14327 --
14328 -- DO NOT COPY g_rec_lines.array_mpa_acc_entry_flag
14329 g_rec_lines.array_header_num(g_LineNumber) := g_rec_lines.array_header_num(p_line_num);
14330 g_rec_lines.array_mpa_option(g_LineNumber) := g_rec_lines.array_mpa_option(p_line_num);
14331 g_rec_lines.array_mpa_start_date(g_LineNumber) := g_rec_lines.array_mpa_start_date(p_line_num);
14332 g_rec_lines.array_mpa_end_date(g_LineNumber) := g_rec_lines.array_mpa_end_date(p_line_num);
14333 --
14334 -- reversal info
14335 --
14336 g_rec_lines.array_acc_reversal_option(g_LineNumber) := g_rec_lines.array_acc_reversal_option(p_line_num);
14337 --
14338 -- tax info
14339 --
14340 g_rec_lines.array_tax_line_ref(g_LineNumber) := g_rec_lines.array_tax_line_ref(p_line_num);
14341 g_rec_lines.array_tax_summary_line_ref(g_LineNumber) := g_rec_lines.array_tax_summary_line_ref(p_line_num);
14342 g_rec_lines.array_tax_rec_nrec_dist_ref(g_LineNumber) := g_rec_lines.array_tax_rec_nrec_dist_ref(p_line_num);
14343 --
14344 --
14345 g_rec_lines.array_anc_balance_flag(g_LineNumber) := g_rec_lines.array_anc_balance_flag(p_line_num);
14346 g_rec_lines.array_anc_id_1(g_LineNumber) := g_rec_lines.array_anc_id_1(p_line_num);
14347 g_rec_lines.array_anc_id_2(g_LineNumber) := g_rec_lines.array_anc_id_2(p_line_num);
14348 g_rec_lines.array_anc_id_3(g_LineNumber) := g_rec_lines.array_anc_id_3(p_line_num);
14349 g_rec_lines.array_anc_id_4(g_LineNumber) := g_rec_lines.array_anc_id_4(p_line_num);
14350 g_rec_lines.array_anc_id_5(g_LineNumber) := g_rec_lines.array_anc_id_5(p_line_num);
14351 g_rec_lines.array_anc_id_6(g_LineNumber) := g_rec_lines.array_anc_id_6(p_line_num);
14352 g_rec_lines.array_anc_id_7(g_LineNumber) := g_rec_lines.array_anc_id_7(p_line_num);
14353 g_rec_lines.array_anc_id_8(g_LineNumber) := g_rec_lines.array_anc_id_8(p_line_num);
14354 g_rec_lines.array_anc_id_9(g_LineNumber) := g_rec_lines.array_anc_id_9(p_line_num);
14355 g_rec_lines.array_anc_id_10(g_LineNumber) := g_rec_lines.array_anc_id_10(p_line_num);
14356 g_rec_lines.array_anc_id_11(g_LineNumber) := g_rec_lines.array_anc_id_11(p_line_num);
14357 g_rec_lines.array_anc_id_12(g_LineNumber) := g_rec_lines.array_anc_id_12(p_line_num);
14358 g_rec_lines.array_anc_id_13(g_LineNumber) := g_rec_lines.array_anc_id_13(p_line_num);
14359 g_rec_lines.array_anc_id_14(g_LineNumber) := g_rec_lines.array_anc_id_14(p_line_num);
14360 g_rec_lines.array_anc_id_15(g_LineNumber) := g_rec_lines.array_anc_id_15(p_line_num);
14361 g_rec_lines.array_anc_id_16(g_LineNumber) := g_rec_lines.array_anc_id_16(p_line_num);
14362 g_rec_lines.array_anc_id_17(g_LineNumber) := g_rec_lines.array_anc_id_17(p_line_num);
14363 g_rec_lines.array_anc_id_18(g_LineNumber) := g_rec_lines.array_anc_id_18(p_line_num);
14364 g_rec_lines.array_anc_id_19(g_LineNumber) := g_rec_lines.array_anc_id_19(p_line_num);
14365 g_rec_lines.array_anc_id_20(g_LineNumber) := g_rec_lines.array_anc_id_20(p_line_num);
14366 g_rec_lines.array_anc_id_21(g_LineNumber) := g_rec_lines.array_anc_id_21(p_line_num);
14367 g_rec_lines.array_anc_id_22(g_LineNumber) := g_rec_lines.array_anc_id_22(p_line_num);
14368 g_rec_lines.array_anc_id_23(g_LineNumber) := g_rec_lines.array_anc_id_23(p_line_num);
14369 g_rec_lines.array_anc_id_24(g_LineNumber) := g_rec_lines.array_anc_id_24(p_line_num);
14370 g_rec_lines.array_anc_id_25(g_LineNumber) := g_rec_lines.array_anc_id_25(p_line_num);
14371 g_rec_lines.array_anc_id_26(g_LineNumber) := g_rec_lines.array_anc_id_26(p_line_num);
14372 g_rec_lines.array_anc_id_27(g_LineNumber) := g_rec_lines.array_anc_id_27(p_line_num);
14373 g_rec_lines.array_anc_id_28(g_LineNumber) := g_rec_lines.array_anc_id_28(p_line_num);
14374 g_rec_lines.array_anc_id_29(g_LineNumber) := g_rec_lines.array_anc_id_29(p_line_num);
14375 g_rec_lines.array_anc_id_30(g_LineNumber) := g_rec_lines.array_anc_id_30(p_line_num);
14376 g_rec_lines.array_anc_id_31(g_LineNumber) := g_rec_lines.array_anc_id_31(p_line_num);
14377 g_rec_lines.array_anc_id_32(g_LineNumber) := g_rec_lines.array_anc_id_32(p_line_num);
14378 g_rec_lines.array_anc_id_33(g_LineNumber) := g_rec_lines.array_anc_id_33(p_line_num);
14379 g_rec_lines.array_anc_id_34(g_LineNumber) := g_rec_lines.array_anc_id_34(p_line_num);
14380 g_rec_lines.array_anc_id_35(g_LineNumber) := g_rec_lines.array_anc_id_35(p_line_num);
14381 g_rec_lines.array_anc_id_36(g_LineNumber) := g_rec_lines.array_anc_id_36(p_line_num);
14382 g_rec_lines.array_anc_id_37(g_LineNumber) := g_rec_lines.array_anc_id_37(p_line_num);
14383 g_rec_lines.array_anc_id_38(g_LineNumber) := g_rec_lines.array_anc_id_38(p_line_num);
14384 g_rec_lines.array_anc_id_39(g_LineNumber) := g_rec_lines.array_anc_id_39(p_line_num);
14385 g_rec_lines.array_anc_id_40(g_LineNumber) := g_rec_lines.array_anc_id_40(p_line_num);
14386 g_rec_lines.array_anc_id_41(g_LineNumber) := g_rec_lines.array_anc_id_41(p_line_num);
14387 g_rec_lines.array_anc_id_42(g_LineNumber) := g_rec_lines.array_anc_id_42(p_line_num);
14388 g_rec_lines.array_anc_id_43(g_LineNumber) := g_rec_lines.array_anc_id_43(p_line_num);
14389 g_rec_lines.array_anc_id_44(g_LineNumber) := g_rec_lines.array_anc_id_44(p_line_num);
14390 g_rec_lines.array_anc_id_45(g_LineNumber) := g_rec_lines.array_anc_id_45(p_line_num);
14391 g_rec_lines.array_anc_id_46(g_LineNumber) := g_rec_lines.array_anc_id_46(p_line_num);
14392 g_rec_lines.array_anc_id_47(g_LineNumber) := g_rec_lines.array_anc_id_47(p_line_num);
14393 g_rec_lines.array_anc_id_48(g_LineNumber) := g_rec_lines.array_anc_id_48(p_line_num);
14394 g_rec_lines.array_anc_id_49(g_LineNumber) := g_rec_lines.array_anc_id_49(p_line_num);
14395 g_rec_lines.array_anc_id_50(g_LineNumber) := g_rec_lines.array_anc_id_50(p_line_num);
14396 g_rec_lines.array_anc_id_51(g_LineNumber) := g_rec_lines.array_anc_id_51(p_line_num);
14397 g_rec_lines.array_anc_id_52(g_LineNumber) := g_rec_lines.array_anc_id_52(p_line_num);
14398 g_rec_lines.array_anc_id_53(g_LineNumber) := g_rec_lines.array_anc_id_53(p_line_num);
14399 g_rec_lines.array_anc_id_54(g_LineNumber) := g_rec_lines.array_anc_id_54(p_line_num);
14400 g_rec_lines.array_anc_id_55(g_LineNumber) := g_rec_lines.array_anc_id_55(p_line_num);
14401 g_rec_lines.array_anc_id_56(g_LineNumber) := g_rec_lines.array_anc_id_56(p_line_num);
14402 g_rec_lines.array_anc_id_57(g_LineNumber) := g_rec_lines.array_anc_id_57(p_line_num);
14403 g_rec_lines.array_anc_id_58(g_LineNumber) := g_rec_lines.array_anc_id_58(p_line_num);
14404 g_rec_lines.array_anc_id_59(g_LineNumber) := g_rec_lines.array_anc_id_59(p_line_num);
14405 g_rec_lines.array_anc_id_60(g_LineNumber) := g_rec_lines.array_anc_id_60(p_line_num);
14406 g_rec_lines.array_anc_id_61(g_LineNumber) := g_rec_lines.array_anc_id_61(p_line_num);
14407 g_rec_lines.array_anc_id_62(g_LineNumber) := g_rec_lines.array_anc_id_62(p_line_num);
14408 g_rec_lines.array_anc_id_63(g_LineNumber) := g_rec_lines.array_anc_id_63(p_line_num);
14409 g_rec_lines.array_anc_id_64(g_LineNumber) := g_rec_lines.array_anc_id_64(p_line_num);
14410 g_rec_lines.array_anc_id_65(g_LineNumber) := g_rec_lines.array_anc_id_65(p_line_num);
14411 g_rec_lines.array_anc_id_66(g_LineNumber) := g_rec_lines.array_anc_id_66(p_line_num);
14412 g_rec_lines.array_anc_id_67(g_LineNumber) := g_rec_lines.array_anc_id_67(p_line_num);
14413 g_rec_lines.array_anc_id_68(g_LineNumber) := g_rec_lines.array_anc_id_68(p_line_num);
14414 g_rec_lines.array_anc_id_69(g_LineNumber) := g_rec_lines.array_anc_id_69(p_line_num);
14415 g_rec_lines.array_anc_id_70(g_LineNumber) := g_rec_lines.array_anc_id_70(p_line_num);
14416 g_rec_lines.array_anc_id_71(g_LineNumber) := g_rec_lines.array_anc_id_71(p_line_num);
14417 g_rec_lines.array_anc_id_72(g_LineNumber) := g_rec_lines.array_anc_id_72(p_line_num);
14418 g_rec_lines.array_anc_id_73(g_LineNumber) := g_rec_lines.array_anc_id_73(p_line_num);
14419 g_rec_lines.array_anc_id_74(g_LineNumber) := g_rec_lines.array_anc_id_74(p_line_num);
14420 g_rec_lines.array_anc_id_75(g_LineNumber) := g_rec_lines.array_anc_id_75(p_line_num);
14421 g_rec_lines.array_anc_id_76(g_LineNumber) := g_rec_lines.array_anc_id_76(p_line_num);
14422 g_rec_lines.array_anc_id_77(g_LineNumber) := g_rec_lines.array_anc_id_77(p_line_num);
14423 g_rec_lines.array_anc_id_78(g_LineNumber) := g_rec_lines.array_anc_id_78(p_line_num);
14424 g_rec_lines.array_anc_id_79(g_LineNumber) := g_rec_lines.array_anc_id_79(p_line_num);
14425 g_rec_lines.array_anc_id_80(g_LineNumber) := g_rec_lines.array_anc_id_80(p_line_num);
14426 g_rec_lines.array_anc_id_81(g_LineNumber) := g_rec_lines.array_anc_id_81(p_line_num);
14427 g_rec_lines.array_anc_id_82(g_LineNumber) := g_rec_lines.array_anc_id_82(p_line_num);
14428 g_rec_lines.array_anc_id_83(g_LineNumber) := g_rec_lines.array_anc_id_83(p_line_num);
14429 g_rec_lines.array_anc_id_84(g_LineNumber) := g_rec_lines.array_anc_id_84(p_line_num);
14430 g_rec_lines.array_anc_id_85(g_LineNumber) := g_rec_lines.array_anc_id_85(p_line_num);
14431 g_rec_lines.array_anc_id_86(g_LineNumber) := g_rec_lines.array_anc_id_86(p_line_num);
14432 g_rec_lines.array_anc_id_87(g_LineNumber) := g_rec_lines.array_anc_id_87(p_line_num);
14433 g_rec_lines.array_anc_id_88(g_LineNumber) := g_rec_lines.array_anc_id_88(p_line_num);
14434 g_rec_lines.array_anc_id_89(g_LineNumber) := g_rec_lines.array_anc_id_89(p_line_num);
14435 g_rec_lines.array_anc_id_90(g_LineNumber) := g_rec_lines.array_anc_id_90(p_line_num);
14436 g_rec_lines.array_anc_id_91(g_LineNumber) := g_rec_lines.array_anc_id_91(p_line_num);
14437 g_rec_lines.array_anc_id_92(g_LineNumber) := g_rec_lines.array_anc_id_92(p_line_num);
14438 g_rec_lines.array_anc_id_93(g_LineNumber) := g_rec_lines.array_anc_id_93(p_line_num);
14439 g_rec_lines.array_anc_id_94(g_LineNumber) := g_rec_lines.array_anc_id_94(p_line_num);
14440 g_rec_lines.array_anc_id_95(g_LineNumber) := g_rec_lines.array_anc_id_95(p_line_num);
14441 g_rec_lines.array_anc_id_96(g_LineNumber) := g_rec_lines.array_anc_id_96(p_line_num);
14442 g_rec_lines.array_anc_id_97(g_LineNumber) := g_rec_lines.array_anc_id_97(p_line_num);
14443 g_rec_lines.array_anc_id_98(g_LineNumber) := g_rec_lines.array_anc_id_98(p_line_num);
14444 g_rec_lines.array_anc_id_99(g_LineNumber) := g_rec_lines.array_anc_id_99(p_line_num);
14445 g_rec_lines.array_anc_id_100(g_LineNumber) := g_rec_lines.array_anc_id_100(p_line_num);
14446 --
14447 --
14448 g_rec_lines.array_event_number(g_LineNumber) := g_rec_lines.array_event_number(p_line_num);
14449 g_rec_lines.array_entity_id(g_LineNumber) := g_rec_lines.array_entity_id(p_line_num);
14450 g_rec_lines.array_reversal_code(g_LineNumber) := g_rec_lines.array_reversal_code(p_line_num);
14451 g_rec_lines.array_balance_type_code(g_LineNumber) := g_rec_lines.array_balance_type_code(p_line_num);
14452 g_rec_lines.array_ledger_id(g_LineNumber) := g_rec_lines.array_ledger_id(p_line_num);
14453 --
14454 -- business flow
14455 --
14456 g_rec_lines.array_business_method_code(g_LineNumber) := g_rec_lines.array_business_method_code(p_line_num);
14457 g_rec_lines.array_business_class_code(g_LineNumber) := g_rec_lines.array_business_class_code(p_line_num);
14458 g_rec_lines.array_inherit_desc_flag(g_LineNumber) := g_rec_lines.array_inherit_desc_flag(p_line_num);
14459 g_rec_lines.array_bflow_application_id(g_LineNumber) := g_rec_lines.array_bflow_application_id(p_line_num);
14460
14461 g_rec_lines.array_bflow_entity_code(g_LineNumber) := g_rec_lines.array_bflow_entity_code(p_line_num);
14462 g_rec_lines.array_bflow_source_id_num_1(g_LineNumber) := g_rec_lines.array_bflow_source_id_num_1(p_line_num);
14463 g_rec_lines.array_bflow_source_id_num_2(g_LineNumber) := g_rec_lines.array_bflow_source_id_num_2(p_line_num);
14464 g_rec_lines.array_bflow_source_id_num_3(g_LineNumber) := g_rec_lines.array_bflow_source_id_num_3(p_line_num);
14465 g_rec_lines.array_bflow_source_id_num_4(g_LineNumber) := g_rec_lines.array_bflow_source_id_num_4(p_line_num);
14466 g_rec_lines.array_bflow_source_id_char_1(g_LineNumber) := g_rec_lines.array_bflow_source_id_char_1(p_line_num);
14467 g_rec_lines.array_bflow_source_id_char_2(g_LineNumber) := g_rec_lines.array_bflow_source_id_char_2(p_line_num);
14468 g_rec_lines.array_bflow_source_id_char_3(g_LineNumber) := g_rec_lines.array_bflow_source_id_char_3(p_line_num);
14469 g_rec_lines.array_bflow_source_id_char_4(g_LineNumber) := g_rec_lines.array_bflow_source_id_char_4(p_line_num);
14470
14471 g_rec_lines.array_bflow_distribution_type(g_LineNumber):= g_rec_lines.array_bflow_distribution_type(p_line_num);
14472 g_rec_lines.array_bflow_dist_id_num_1(g_LineNumber) := g_rec_lines.array_bflow_dist_id_num_1(p_line_num);
14473 g_rec_lines.array_bflow_dist_id_num_2(g_LineNumber) := g_rec_lines.array_bflow_dist_id_num_2(p_line_num);
14474 g_rec_lines.array_bflow_dist_id_num_3(g_LineNumber) := g_rec_lines.array_bflow_dist_id_num_3(p_line_num);
14475 g_rec_lines.array_bflow_dist_id_num_4(g_LineNumber) := g_rec_lines.array_bflow_dist_id_num_4(p_line_num);
14476 g_rec_lines.array_bflow_dist_id_num_5(g_LineNumber) := g_rec_lines.array_bflow_dist_id_num_5(p_line_num);
14477 g_rec_lines.array_bflow_dist_id_char_1(g_LineNumber) := g_rec_lines.array_bflow_dist_id_char_1(p_line_num);
14478 g_rec_lines.array_bflow_dist_id_char_2(g_LineNumber) := g_rec_lines.array_bflow_dist_id_char_2(p_line_num);
14479 g_rec_lines.array_bflow_dist_id_char_3(g_LineNumber) := g_rec_lines.array_bflow_dist_id_char_3(p_line_num);
14480 g_rec_lines.array_bflow_dist_id_char_4(g_LineNumber) := g_rec_lines.array_bflow_dist_id_char_4(p_line_num);
14481 g_rec_lines.array_bflow_dist_id_char_5(g_LineNumber) := g_rec_lines.array_bflow_dist_id_char_5(p_line_num);
14482
14483 g_rec_lines.array_override_acctd_amt_flag(g_LineNumber) := g_rec_lines.array_override_acctd_amt_flag(p_line_num);
14484
14485
14486 g_rec_lines.array_bflow_applied_to_amt(g_LineNumber) := g_rec_lines.array_bflow_applied_to_amt(p_line_num); -- 5132302
14487 --
14488 -- Allocation Attributes
14489 --
14490 g_rec_lines.array_alloct_application_id(g_LineNumber) := g_rec_lines.array_alloct_application_id(p_line_num);
14491
14492 g_rec_lines.array_alloct_entity_code(g_LineNumber) := g_rec_lines.array_alloct_entity_code(p_line_num);
14493 g_rec_lines.array_alloct_source_id_num_1(g_LineNumber) := g_rec_lines.array_alloct_source_id_num_1(p_line_num);
14494 g_rec_lines.array_alloct_source_id_num_2(g_LineNumber) := g_rec_lines.array_alloct_source_id_num_2(p_line_num);
14495 g_rec_lines.array_alloct_source_id_num_3(g_LineNumber) := g_rec_lines.array_alloct_source_id_num_3(p_line_num);
14496 g_rec_lines.array_alloct_source_id_num_4(g_LineNumber) := g_rec_lines.array_alloct_source_id_num_4(p_line_num);
14497 g_rec_lines.array_alloct_source_id_char_1(g_LineNumber) := g_rec_lines.array_alloct_source_id_char_1(p_line_num);
14498 g_rec_lines.array_alloct_source_id_char_2(g_LineNumber) := g_rec_lines.array_alloct_source_id_char_2(p_line_num);
14499 g_rec_lines.array_alloct_source_id_char_3(g_LineNumber) := g_rec_lines.array_alloct_source_id_char_3(p_line_num);
14500 g_rec_lines.array_alloct_source_id_char_4(g_LineNumber) := g_rec_lines.array_alloct_source_id_char_4(p_line_num);
14501
14502 g_rec_lines.array_alloct_distribution_type(g_LineNumber):= g_rec_lines.array_alloct_distribution_type(p_line_num);
14503 g_rec_lines.array_alloct_dist_id_num_1(g_LineNumber) := g_rec_lines.array_alloct_dist_id_num_1(p_line_num);
14504 g_rec_lines.array_alloct_dist_id_num_2(g_LineNumber) := g_rec_lines.array_alloct_dist_id_num_2(p_line_num);
14505 g_rec_lines.array_alloct_dist_id_num_3(g_LineNumber) := g_rec_lines.array_alloct_dist_id_num_3(p_line_num);
14506 g_rec_lines.array_alloct_dist_id_num_4(g_LineNumber) := g_rec_lines.array_alloct_dist_id_num_4(p_line_num);
14507 g_rec_lines.array_alloct_dist_id_num_5(g_LineNumber) := g_rec_lines.array_alloct_dist_id_num_5(p_line_num);
14508 g_rec_lines.array_alloct_dist_id_char_1(g_LineNumber) := g_rec_lines.array_alloct_dist_id_char_1(p_line_num);
14509 g_rec_lines.array_alloct_dist_id_char_2(g_LineNumber) := g_rec_lines.array_alloct_dist_id_char_2(p_line_num);
14510 g_rec_lines.array_alloct_dist_id_char_3(g_LineNumber) := g_rec_lines.array_alloct_dist_id_char_3(p_line_num);
14511 g_rec_lines.array_alloct_dist_id_char_4(g_LineNumber) := g_rec_lines.array_alloct_dist_id_char_4(p_line_num);
14512 g_rec_lines.array_alloct_dist_id_char_5(g_LineNumber) := g_rec_lines.array_alloct_dist_id_char_5(p_line_num);
14513 -- =================================================================================================
14514 --
14515 -- for 7029018
14516 IF NVL(g_rec_lines.array_balance_type_code(g_LineNumber),'N')='E' THEN
14517 IF ((NVL(g_rec_lines.array_actual_upg_option(p_line_num), 'N') = 'Y') OR
14518 (NVL(g_rec_lines.array_enc_upg_option(p_line_num), 'N') = 'Y')) THEN
14519 --temp fix for Period End Accrual Encumbrance for Upgraded Entries.
14520 g_rec_lines.array_encumbrance_type_id(g_LineNumber) := nvl(g_rec_lines.array_upg_cr_enc_type_id(p_line_num),
14521 g_rec_lines.array_upg_dr_enc_type_id(p_line_num));
14522 IF (C_LEVEL_EVENT >= g_log_level) THEN
14523 trace
14524 (p_msg => 'Period End Accrual Encumbrance for Upgraded Entries'
14525 ,p_level => C_LEVEL_EVENT
14526 ,p_module => l_log_module);
14527 END IF;
14528 END IF;
14529 END IF;
14530
14531 --
14532 -- Validate line accounting attributes
14533 --
14534 IF g_rec_lines.array_mpa_option(g_LineNumber) NOT IN ('Y','N') THEN
14535 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
14536 xla_accounting_err_pkg.build_message
14537 (p_appli_s_name => 'XLA'
14538 ,p_msg_name => 'XLA_MA_INVALID_OPTION' -- 4262811a
14539 ,p_token_1 => 'LINE_NUMBER'
14540 ,p_value_1 => g_ExtractLine
14541 ,p_token_2 => 'ACCOUNTING_SOURCE_NAME'
14542 ,p_value_2 => XLA_AE_SOURCES_PKG.GetAccountingSourceName('MULTIPERIOD_OPTION')
14543 --(g_rec_lines.array_acct_attr_code(p_line_num))
14544 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14545 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14546 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
14547 END IF;
14548
14549 IF g_rec_lines.array_sys_distribution_type(g_LineNumber) IS NULL THEN
14550 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
14551 xla_accounting_err_pkg.build_message
14552 (p_appli_s_name => 'XLA'
14553 ,p_msg_name => 'XLA_AP_NO_DIST_LINK_TYPE'
14554 ,p_token_1 => 'LINE_NUMBER'
14555 ,p_value_1 => g_ExtractLine
14556 ,p_token_2 => 'ACCOUNTING_SOURCE_NAME'
14557 ,p_value_2 => XLA_AE_SOURCES_PKG.GetAccountingSourceName('DISTRIBUTION_TYPE')
14558 --(p_rec_acct_attrs.array_acct_attr_code(i))
14559 ,p_token_3 => 'SOURCE_NAME'
14560 ,p_value_3 => NULL
14561 ,p_token_4 => 'LINE_TYPE_NAME'
14562 ,p_value_4 => XLA_AE_SOURCES_PKG.GetComponentName (
14563 g_accounting_line.component_type
14564 , g_accounting_line.accounting_line_code
14565 , g_accounting_line.accounting_line_type_code
14566 , g_accounting_line.accounting_line_appl_id
14567 , g_accounting_line.amb_context_code
14568 , g_accounting_line.entity_code
14569 , g_accounting_line.event_class_code
14570 )
14571 ,p_token_5 => 'OWNER'
14572 ,p_value_5 => xla_lookups_pkg.get_meaning(
14573 'XLA_OWNER_TYPE'
14574 , g_rec_lines.array_accounting_line_type(g_LineNumber)
14575 )
14576 ,p_token_6 => 'PRODUCT_NAME'
14577 ,p_value_6 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
14578 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14579 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14580 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
14581 END IF;
14582
14583 ----------------------------------------------
14584 -- 4623638 This change is on top of 120.85
14585 ----------------------------------------------
14586 IF nvl(g_rec_lines.array_calculate_acctd_flag(g_LineNumber), 'N')= 'N' OR
14587 (nvl(g_rec_lines.array_calculate_g_l_flag(g_LineNumber), 'N')='N' AND
14588 g_rec_lines.array_natural_side_code(g_LineNumber) = 'G') THEN
14589
14590 IF g_rec_lines.array_ledger_amount(g_LineNumber) IS NULL THEN
14591 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
14592 xla_accounting_err_pkg.build_message
14593 (p_appli_s_name => 'XLA'
14594 ,p_msg_name => 'XLA_AP_NO_LEDGER_AMOUNT'
14595 ,p_token_1 => 'LINE_NUMBER'
14596 ,p_value_1 => g_ExtractLine
14597 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14598 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14599 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
14600 END IF;
14601
14602 END IF;
14603 */
14604
14605 EXCEPTION
14606 --
14607 WHEN xla_exceptions_pkg.application_exception THEN
14608 RAISE;
14609 WHEN OTHERS THEN
14610 xla_exceptions_pkg.raise_message
14611 (p_location => 'xla_ae_lines_pkg.CopyLineInfo');
14612 --
14613 END CopyLineInfo;
14614
14615 /*======================================================================+
14616 | |
14617 | Public Procedure- CopyLineInfo 7109881 |
14618 | |
14619 | |
14620 +======================================================================*/
14621 PROCEDURE CopyLineInfo(
14622 p_line_num NUMBER,
14623 p_rec_lines t_rec_lines
14624 ) IS
14625
14626 l_log_module VARCHAR2(240);
14627 l_rec_lines t_rec_lines; -- added for bug:7109881
14628
14629 BEGIN
14630 IF g_log_enabled THEN
14631 l_log_module := C_DEFAULT_MODULE||'.CopyLineInfo';
14632 END IF;
14633
14634 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14635 trace
14636 (p_msg => 'BEGIN of CopyLineInfo(OverLoaded)'
14637 ,p_level => C_LEVEL_PROCEDURE
14638 ,p_module => l_log_module);
14639 END IF;
14640
14641 --------------------------------------------------------------------------------------------------------------------
14642 -- g_mpa_recog_lines g_rec_lines --
14643 -- | | --
14644 -- ----> p_rec_lines <----- --
14645 -- | --
14646 -- IF ( g_LineNumber = C_BULK_LIMIT ) --
14647 -- | --
14648 -- --<--TRUE----|----FALSE-->-- --
14649 -- | | --
14650 -- | | --
14651 -- l_rec_lines --->----<------------ --
14652 -- | --
14653 -- | --
14654 -- g_rec_lines --
14655 -- --
14656 --------------------------------------------------------------------------------------------------------------------
14657
14658 IF( NVL(g_LineNumber,0) = C_BULK_LIMIT)
14659 THEN
14660 -------------------------------------------------------------------------------------------------------
14661 -- Copy all information in p_rec_lines from p_line_num to l_rec_lines p_line_num with the following exceptions:
14662 -------------------------------------------------------------------------------------------------------
14663 --
14664 --
14665 l_rec_lines.array_ae_header_id(p_line_num) := p_rec_lines.array_ae_header_id(p_line_num);
14666 l_rec_lines.array_header_num(p_line_num) := p_rec_lines.array_header_num(p_line_num);
14667
14668 -- =================================================================================================
14669 l_rec_lines.array_accounting_class(p_line_num) := p_rec_lines.array_accounting_class(p_line_num);
14670 l_rec_lines.array_rounding_class(p_line_num) := p_rec_lines.array_rounding_class(p_line_num);
14671 l_rec_lines.array_doc_rounding_level(p_line_num) := p_rec_lines.array_doc_rounding_level(p_line_num);
14672 l_rec_lines.array_gain_or_loss_ref(p_line_num):= p_rec_lines.array_gain_or_loss_ref(p_line_num);
14673 l_rec_lines.array_event_class_code(p_line_num) := p_rec_lines.array_event_class_code(p_line_num);
14674 l_rec_lines.array_event_type_code(p_line_num) := p_rec_lines.array_event_type_code(p_line_num);
14675 l_rec_lines.array_line_defn_owner_code(p_line_num) := p_rec_lines.array_line_defn_owner_code(p_line_num);
14676 l_rec_lines.array_line_defn_code(p_line_num) := p_rec_lines.array_line_defn_code(p_line_num);
14677 l_rec_lines.array_accounting_line_code(p_line_num) := p_rec_lines.array_accounting_line_code(p_line_num);
14678 l_rec_lines.array_accounting_line_type(p_line_num) := p_rec_lines.array_accounting_line_type(p_line_num);
14679 l_rec_lines.array_calculate_acctd_flag(p_line_num) := p_rec_lines.array_calculate_acctd_flag(p_line_num);
14680 l_rec_lines.array_calculate_g_l_flag(p_line_num) := p_rec_lines.array_calculate_g_l_flag(p_line_num);
14681 l_rec_lines.array_gain_or_loss_flag(p_line_num) := p_rec_lines.array_gain_or_loss_flag(p_line_num);
14682
14683 --
14684 -- following sets the extract line number
14685 --
14686 l_rec_lines.array_extract_line_num(p_line_num) := p_rec_lines.array_extract_line_num(p_line_num);
14687
14688 --
14689 -- line flexfield accounts
14690 --
14691 l_rec_lines.array_ccid_flag(p_line_num) := p_rec_lines.array_ccid_flag(p_line_num);
14692 l_rec_lines.array_ccid(p_line_num) := p_rec_lines.array_ccid(p_line_num);
14693 --
14694 l_rec_lines.array_accounting_coa_id(p_line_num) := p_rec_lines.array_accounting_coa_id(p_line_num);
14695 l_rec_lines.array_transaction_coa_id(p_line_num) := p_rec_lines.array_transaction_coa_id(p_line_num);
14696 l_rec_lines.array_sl_coa_mapping_name(p_line_num) := p_rec_lines.array_sl_coa_mapping_name(p_line_num);
14697 --
14698 l_rec_lines.array_segment1(p_line_num) := p_rec_lines.array_segment1(p_line_num);
14699 l_rec_lines.array_segment2(p_line_num) := p_rec_lines.array_segment2(p_line_num);
14700 l_rec_lines.array_segment3(p_line_num) := p_rec_lines.array_segment3(p_line_num);
14701 l_rec_lines.array_segment4(p_line_num) := p_rec_lines.array_segment4(p_line_num);
14702 l_rec_lines.array_segment5(p_line_num) := p_rec_lines.array_segment5(p_line_num);
14703 l_rec_lines.array_segment6(p_line_num) := p_rec_lines.array_segment6(p_line_num);
14704 l_rec_lines.array_segment7(p_line_num) := p_rec_lines.array_segment7(p_line_num);
14705 l_rec_lines.array_segment8(p_line_num) := p_rec_lines.array_segment8(p_line_num);
14706 l_rec_lines.array_segment9(p_line_num) := p_rec_lines.array_segment9(p_line_num);
14707 l_rec_lines.array_segment10(p_line_num) := p_rec_lines.array_segment10(p_line_num);
14708 l_rec_lines.array_segment11(p_line_num) := p_rec_lines.array_segment11(p_line_num);
14709 l_rec_lines.array_segment12(p_line_num) := p_rec_lines.array_segment12(p_line_num);
14710 l_rec_lines.array_segment13(p_line_num) := p_rec_lines.array_segment13(p_line_num);
14711 l_rec_lines.array_segment14(p_line_num) := p_rec_lines.array_segment14(p_line_num);
14712 l_rec_lines.array_segment15(p_line_num) := p_rec_lines.array_segment15(p_line_num);
14713 l_rec_lines.array_segment16(p_line_num) := p_rec_lines.array_segment16(p_line_num);
14714 l_rec_lines.array_segment17(p_line_num) := p_rec_lines.array_segment17(p_line_num);
14715 l_rec_lines.array_segment18(p_line_num) := p_rec_lines.array_segment18(p_line_num);
14716 l_rec_lines.array_segment19(p_line_num) := p_rec_lines.array_segment19(p_line_num);
14717 l_rec_lines.array_segment20(p_line_num) := p_rec_lines.array_segment20(p_line_num);
14718 l_rec_lines.array_segment21(p_line_num) := p_rec_lines.array_segment21(p_line_num);
14719 l_rec_lines.array_segment22(p_line_num) := p_rec_lines.array_segment22(p_line_num);
14720 l_rec_lines.array_segment23(p_line_num) := p_rec_lines.array_segment23(p_line_num);
14721 l_rec_lines.array_segment24(p_line_num) := p_rec_lines.array_segment24(p_line_num);
14722 l_rec_lines.array_segment25(p_line_num) := p_rec_lines.array_segment25(p_line_num);
14723 l_rec_lines.array_segment26(p_line_num) := p_rec_lines.array_segment26(p_line_num);
14724 l_rec_lines.array_segment27(p_line_num) := p_rec_lines.array_segment27(p_line_num);
14725 l_rec_lines.array_segment28(p_line_num) := p_rec_lines.array_segment28(p_line_num);
14726 l_rec_lines.array_segment29(p_line_num) := p_rec_lines.array_segment29(p_line_num);
14727 l_rec_lines.array_segment30(p_line_num) := p_rec_lines.array_segment30(p_line_num);
14728 --
14729 l_rec_lines.alt_array_ccid_flag(p_line_num) := p_rec_lines.alt_array_ccid_flag(p_line_num);
14730 l_rec_lines.alt_array_ccid(p_line_num) := p_rec_lines.alt_array_ccid(p_line_num);
14731 l_rec_lines.alt_array_segment1(p_line_num) := p_rec_lines.alt_array_segment1(p_line_num);
14732 l_rec_lines.alt_array_segment2(p_line_num) := p_rec_lines.alt_array_segment2(p_line_num);
14733 l_rec_lines.alt_array_segment3(p_line_num) := p_rec_lines.alt_array_segment3(p_line_num);
14734 l_rec_lines.alt_array_segment4(p_line_num) := p_rec_lines.alt_array_segment4(p_line_num);
14735 l_rec_lines.alt_array_segment5(p_line_num) := p_rec_lines.alt_array_segment5(p_line_num);
14736 l_rec_lines.alt_array_segment6(p_line_num) := p_rec_lines.alt_array_segment6(p_line_num);
14737 l_rec_lines.alt_array_segment7(p_line_num) := p_rec_lines.alt_array_segment7(p_line_num);
14738 l_rec_lines.alt_array_segment8(p_line_num) := p_rec_lines.alt_array_segment8(p_line_num);
14739 l_rec_lines.alt_array_segment9(p_line_num) := p_rec_lines.alt_array_segment9(p_line_num);
14740 l_rec_lines.alt_array_segment10(p_line_num) := p_rec_lines.alt_array_segment10(p_line_num);
14741 l_rec_lines.alt_array_segment11(p_line_num) := p_rec_lines.alt_array_segment11(p_line_num);
14742 l_rec_lines.alt_array_segment12(p_line_num) := p_rec_lines.alt_array_segment12(p_line_num);
14743 l_rec_lines.alt_array_segment13(p_line_num) := p_rec_lines.alt_array_segment13(p_line_num);
14744 l_rec_lines.alt_array_segment14(p_line_num) := p_rec_lines.alt_array_segment14(p_line_num);
14745 l_rec_lines.alt_array_segment15(p_line_num) := p_rec_lines.alt_array_segment15(p_line_num);
14746 l_rec_lines.alt_array_segment16(p_line_num) := p_rec_lines.alt_array_segment16(p_line_num);
14747 l_rec_lines.alt_array_segment17(p_line_num) := p_rec_lines.alt_array_segment17(p_line_num);
14748 l_rec_lines.alt_array_segment18(p_line_num) := p_rec_lines.alt_array_segment18(p_line_num);
14749 l_rec_lines.alt_array_segment19(p_line_num) := p_rec_lines.alt_array_segment19(p_line_num);
14750 l_rec_lines.alt_array_segment20(p_line_num) := p_rec_lines.alt_array_segment20(p_line_num);
14751 l_rec_lines.alt_array_segment21(p_line_num) := p_rec_lines.alt_array_segment21(p_line_num);
14752 l_rec_lines.alt_array_segment22(p_line_num) := p_rec_lines.alt_array_segment22(p_line_num);
14753 l_rec_lines.alt_array_segment23(p_line_num) := p_rec_lines.alt_array_segment23(p_line_num);
14754 l_rec_lines.alt_array_segment24(p_line_num) := p_rec_lines.alt_array_segment24(p_line_num);
14755 l_rec_lines.alt_array_segment25(p_line_num) := p_rec_lines.alt_array_segment25(p_line_num);
14756 l_rec_lines.alt_array_segment26(p_line_num) := p_rec_lines.alt_array_segment26(p_line_num);
14757 l_rec_lines.alt_array_segment27(p_line_num) := p_rec_lines.alt_array_segment27(p_line_num);
14758 l_rec_lines.alt_array_segment28(p_line_num) := p_rec_lines.alt_array_segment28(p_line_num);
14759 l_rec_lines.alt_array_segment29(p_line_num) := p_rec_lines.alt_array_segment29(p_line_num);
14760 l_rec_lines.alt_array_segment30(p_line_num) := p_rec_lines.alt_array_segment30(p_line_num);
14761 --
14762 -- Option lines
14763 --
14764 l_rec_lines.array_gl_transfer_mode(p_line_num) := p_rec_lines.array_gl_transfer_mode(p_line_num);
14765 l_rec_lines.array_natural_side_code(p_line_num) := p_rec_lines.array_natural_side_code(p_line_num);
14766 l_rec_lines.array_acct_entry_type_code(p_line_num) := p_rec_lines.array_acct_entry_type_code(p_line_num);
14767 l_rec_lines.array_switch_side_flag(p_line_num) := p_rec_lines.array_switch_side_flag(p_line_num);
14768 l_rec_lines.array_merge_duplicate_code(p_line_num) := p_rec_lines.array_merge_duplicate_code(p_line_num);
14769 --
14770 -- line amounts
14771 --
14772 l_rec_lines.array_entered_amount(p_line_num) := p_rec_lines.array_entered_amount(p_line_num);
14773 l_rec_lines.array_ledger_amount(p_line_num) := p_rec_lines.array_ledger_amount(p_line_num);
14774 l_rec_lines.array_entered_dr(p_line_num) := p_rec_lines.array_entered_dr(p_line_num);
14775 l_rec_lines.array_entered_cr(p_line_num) := p_rec_lines.array_entered_cr(p_line_num);
14776 l_rec_lines.array_accounted_dr(p_line_num) := p_rec_lines.array_accounted_dr(p_line_num);
14777 l_rec_lines.array_accounted_cr(p_line_num) := p_rec_lines.array_accounted_cr(p_line_num);
14778 l_rec_lines.array_currency_code(p_line_num) := p_rec_lines.array_currency_code(p_line_num);
14779 l_rec_lines.array_currency_mau(p_line_num) := xla_accounting_cache_pkg.GetCurrencyMau(p_rec_lines.array_currency_code(p_line_num));
14780 l_rec_lines.array_curr_conversion_date(p_line_num) := p_rec_lines.array_curr_conversion_date(p_line_num);
14781 l_rec_lines.array_curr_conversion_rate(p_line_num) := p_rec_lines.array_curr_conversion_rate(p_line_num);
14782 l_rec_lines.array_curr_conversion_type(p_line_num) := p_rec_lines.array_curr_conversion_type(p_line_num);
14783 l_rec_lines.array_description(p_line_num) := p_rec_lines.array_description(p_line_num);
14784 --
14785 -- line descriptions
14786 --
14787 l_rec_lines.array_party_id(p_line_num) := p_rec_lines.array_party_id(p_line_num);
14788 l_rec_lines.array_party_site_id(p_line_num) := p_rec_lines.array_party_site_id(p_line_num);
14789 l_rec_lines.array_party_type_code(p_line_num) := p_rec_lines.array_party_type_code(p_line_num);
14790 --
14791 l_rec_lines.array_statistical_amount(p_line_num) := p_rec_lines.array_statistical_amount(p_line_num);
14792 l_rec_lines.array_ussgl_transaction(p_line_num) := p_rec_lines.array_ussgl_transaction(p_line_num);
14793 --
14794 l_rec_lines.array_jgzz_recon_ref(p_line_num) := p_rec_lines.array_jgzz_recon_ref(p_line_num);
14795 --
14796 -- distribution links
14797 --
14798 l_rec_lines.array_distribution_id_char_1(p_line_num) := p_rec_lines.array_distribution_id_char_1(p_line_num);
14799 l_rec_lines.array_distribution_id_char_2(p_line_num) := p_rec_lines.array_distribution_id_char_2(p_line_num);
14800 l_rec_lines.array_distribution_id_char_3(p_line_num) := p_rec_lines.array_distribution_id_char_3(p_line_num);
14801 l_rec_lines.array_distribution_id_char_4(p_line_num) := p_rec_lines.array_distribution_id_char_4(p_line_num);
14802 l_rec_lines.array_distribution_id_char_5(p_line_num) := p_rec_lines.array_distribution_id_char_5(p_line_num);
14803 l_rec_lines.array_distribution_id_num_1(p_line_num) := p_rec_lines.array_distribution_id_num_1(p_line_num);
14804 l_rec_lines.array_distribution_id_num_2(p_line_num) := p_rec_lines.array_distribution_id_num_2(p_line_num);
14805 l_rec_lines.array_distribution_id_num_3(p_line_num) := p_rec_lines.array_distribution_id_num_3(p_line_num);
14806 l_rec_lines.array_distribution_id_num_4(p_line_num) := p_rec_lines.array_distribution_id_num_4(p_line_num);
14807 l_rec_lines.array_distribution_id_num_5(p_line_num) := p_rec_lines.array_distribution_id_num_5(p_line_num);
14808 l_rec_lines.array_sys_distribution_type(p_line_num) := p_rec_lines.array_sys_distribution_type(p_line_num);
14809 --
14810 -- reverse distribution links
14811 --
14812 l_rec_lines.array_rev_dist_id_char_1(p_line_num) := p_rec_lines.array_rev_dist_id_char_1(p_line_num);
14813 l_rec_lines.array_rev_dist_id_char_2(p_line_num) := p_rec_lines.array_rev_dist_id_char_2(p_line_num);
14814 l_rec_lines.array_rev_dist_id_char_3(p_line_num) := p_rec_lines.array_rev_dist_id_char_3(p_line_num);
14815 l_rec_lines.array_rev_dist_id_char_4(p_line_num) := p_rec_lines.array_rev_dist_id_char_4(p_line_num);
14816 l_rec_lines.array_rev_dist_id_char_5(p_line_num) := p_rec_lines.array_rev_dist_id_char_5(p_line_num);
14817 l_rec_lines.array_rev_dist_id_num_1(p_line_num) := p_rec_lines.array_rev_dist_id_num_1(p_line_num);
14818 l_rec_lines.array_rev_dist_id_num_2(p_line_num) := p_rec_lines.array_rev_dist_id_num_2(p_line_num);
14819 l_rec_lines.array_rev_dist_id_num_3(p_line_num) := p_rec_lines.array_rev_dist_id_num_3(p_line_num);
14820 l_rec_lines.array_rev_dist_id_num_4(p_line_num) := p_rec_lines.array_rev_dist_id_num_4(p_line_num);
14821 l_rec_lines.array_rev_dist_id_num_5(p_line_num) := p_rec_lines.array_rev_dist_id_num_5(p_line_num);
14822 l_rec_lines.array_rev_dist_type(p_line_num) := p_rec_lines.array_rev_dist_type(p_line_num);
14823 --
14824 -- multiperiod accounting
14825 --
14826 -- DO NOT COPY p_rec_lines.array_mpa_acc_entry_flag
14827 l_rec_lines.array_header_num(p_line_num) := p_rec_lines.array_header_num(p_line_num);
14828 l_rec_lines.array_mpa_option(p_line_num) := p_rec_lines.array_mpa_option(p_line_num);
14829 l_rec_lines.array_mpa_start_date(p_line_num) := p_rec_lines.array_mpa_start_date(p_line_num);
14830 l_rec_lines.array_mpa_end_date(p_line_num) := p_rec_lines.array_mpa_end_date(p_line_num);
14831 --
14832 -- reversal info
14833 --
14834 l_rec_lines.array_acc_reversal_option(p_line_num) := p_rec_lines.array_acc_reversal_option(p_line_num);
14835 --
14836 -- tax info
14837 --
14838 l_rec_lines.array_tax_line_ref(p_line_num) := p_rec_lines.array_tax_line_ref(p_line_num);
14839 l_rec_lines.array_tax_summary_line_ref(p_line_num) := p_rec_lines.array_tax_summary_line_ref(p_line_num);
14840 l_rec_lines.array_tax_rec_nrec_dist_ref(p_line_num) := p_rec_lines.array_tax_rec_nrec_dist_ref(p_line_num);
14841 --
14842 --
14843 l_rec_lines.array_anc_balance_flag(p_line_num) := p_rec_lines.array_anc_balance_flag(p_line_num);
14844 l_rec_lines.array_anc_id_1(p_line_num) := p_rec_lines.array_anc_id_1(p_line_num);
14845 l_rec_lines.array_anc_id_2(p_line_num) := p_rec_lines.array_anc_id_2(p_line_num);
14846 l_rec_lines.array_anc_id_3(p_line_num) := p_rec_lines.array_anc_id_3(p_line_num);
14847 l_rec_lines.array_anc_id_4(p_line_num) := p_rec_lines.array_anc_id_4(p_line_num);
14848 l_rec_lines.array_anc_id_5(p_line_num) := p_rec_lines.array_anc_id_5(p_line_num);
14849 l_rec_lines.array_anc_id_6(p_line_num) := p_rec_lines.array_anc_id_6(p_line_num);
14850 l_rec_lines.array_anc_id_7(p_line_num) := p_rec_lines.array_anc_id_7(p_line_num);
14851 l_rec_lines.array_anc_id_8(p_line_num) := p_rec_lines.array_anc_id_8(p_line_num);
14852 l_rec_lines.array_anc_id_9(p_line_num) := p_rec_lines.array_anc_id_9(p_line_num);
14853 l_rec_lines.array_anc_id_10(p_line_num) := p_rec_lines.array_anc_id_10(p_line_num);
14854 l_rec_lines.array_anc_id_11(p_line_num) := p_rec_lines.array_anc_id_11(p_line_num);
14855 l_rec_lines.array_anc_id_12(p_line_num) := p_rec_lines.array_anc_id_12(p_line_num);
14856 l_rec_lines.array_anc_id_13(p_line_num) := p_rec_lines.array_anc_id_13(p_line_num);
14857 l_rec_lines.array_anc_id_14(p_line_num) := p_rec_lines.array_anc_id_14(p_line_num);
14858 l_rec_lines.array_anc_id_15(p_line_num) := p_rec_lines.array_anc_id_15(p_line_num);
14859 l_rec_lines.array_anc_id_16(p_line_num) := p_rec_lines.array_anc_id_16(p_line_num);
14860 l_rec_lines.array_anc_id_17(p_line_num) := p_rec_lines.array_anc_id_17(p_line_num);
14861 l_rec_lines.array_anc_id_18(p_line_num) := p_rec_lines.array_anc_id_18(p_line_num);
14862 l_rec_lines.array_anc_id_19(p_line_num) := p_rec_lines.array_anc_id_19(p_line_num);
14863 l_rec_lines.array_anc_id_20(p_line_num) := p_rec_lines.array_anc_id_20(p_line_num);
14864 l_rec_lines.array_anc_id_21(p_line_num) := p_rec_lines.array_anc_id_21(p_line_num);
14865 l_rec_lines.array_anc_id_22(p_line_num) := p_rec_lines.array_anc_id_22(p_line_num);
14866 l_rec_lines.array_anc_id_23(p_line_num) := p_rec_lines.array_anc_id_23(p_line_num);
14867 l_rec_lines.array_anc_id_24(p_line_num) := p_rec_lines.array_anc_id_24(p_line_num);
14868 l_rec_lines.array_anc_id_25(p_line_num) := p_rec_lines.array_anc_id_25(p_line_num);
14869 l_rec_lines.array_anc_id_26(p_line_num) := p_rec_lines.array_anc_id_26(p_line_num);
14870 l_rec_lines.array_anc_id_27(p_line_num) := p_rec_lines.array_anc_id_27(p_line_num);
14871 l_rec_lines.array_anc_id_28(p_line_num) := p_rec_lines.array_anc_id_28(p_line_num);
14872 l_rec_lines.array_anc_id_29(p_line_num) := p_rec_lines.array_anc_id_29(p_line_num);
14873 l_rec_lines.array_anc_id_30(p_line_num) := p_rec_lines.array_anc_id_30(p_line_num);
14874 l_rec_lines.array_anc_id_31(p_line_num) := p_rec_lines.array_anc_id_31(p_line_num);
14875 l_rec_lines.array_anc_id_32(p_line_num) := p_rec_lines.array_anc_id_32(p_line_num);
14876 l_rec_lines.array_anc_id_33(p_line_num) := p_rec_lines.array_anc_id_33(p_line_num);
14877 l_rec_lines.array_anc_id_34(p_line_num) := p_rec_lines.array_anc_id_34(p_line_num);
14878 l_rec_lines.array_anc_id_35(p_line_num) := p_rec_lines.array_anc_id_35(p_line_num);
14879 l_rec_lines.array_anc_id_36(p_line_num) := p_rec_lines.array_anc_id_36(p_line_num);
14880 l_rec_lines.array_anc_id_37(p_line_num) := p_rec_lines.array_anc_id_37(p_line_num);
14881 l_rec_lines.array_anc_id_38(p_line_num) := p_rec_lines.array_anc_id_38(p_line_num);
14882 l_rec_lines.array_anc_id_39(p_line_num) := p_rec_lines.array_anc_id_39(p_line_num);
14883 l_rec_lines.array_anc_id_40(p_line_num) := p_rec_lines.array_anc_id_40(p_line_num);
14884 l_rec_lines.array_anc_id_41(p_line_num) := p_rec_lines.array_anc_id_41(p_line_num);
14885 l_rec_lines.array_anc_id_42(p_line_num) := p_rec_lines.array_anc_id_42(p_line_num);
14886 l_rec_lines.array_anc_id_43(p_line_num) := p_rec_lines.array_anc_id_43(p_line_num);
14887 l_rec_lines.array_anc_id_44(p_line_num) := p_rec_lines.array_anc_id_44(p_line_num);
14888 l_rec_lines.array_anc_id_45(p_line_num) := p_rec_lines.array_anc_id_45(p_line_num);
14889 l_rec_lines.array_anc_id_46(p_line_num) := p_rec_lines.array_anc_id_46(p_line_num);
14890 l_rec_lines.array_anc_id_47(p_line_num) := p_rec_lines.array_anc_id_47(p_line_num);
14891 l_rec_lines.array_anc_id_48(p_line_num) := p_rec_lines.array_anc_id_48(p_line_num);
14892 l_rec_lines.array_anc_id_49(p_line_num) := p_rec_lines.array_anc_id_49(p_line_num);
14893 l_rec_lines.array_anc_id_50(p_line_num) := p_rec_lines.array_anc_id_50(p_line_num);
14894 l_rec_lines.array_anc_id_51(p_line_num) := p_rec_lines.array_anc_id_51(p_line_num);
14895 l_rec_lines.array_anc_id_52(p_line_num) := p_rec_lines.array_anc_id_52(p_line_num);
14896 l_rec_lines.array_anc_id_53(p_line_num) := p_rec_lines.array_anc_id_53(p_line_num);
14897 l_rec_lines.array_anc_id_54(p_line_num) := p_rec_lines.array_anc_id_54(p_line_num);
14898 l_rec_lines.array_anc_id_55(p_line_num) := p_rec_lines.array_anc_id_55(p_line_num);
14899 l_rec_lines.array_anc_id_56(p_line_num) := p_rec_lines.array_anc_id_56(p_line_num);
14900 l_rec_lines.array_anc_id_57(p_line_num) := p_rec_lines.array_anc_id_57(p_line_num);
14901 l_rec_lines.array_anc_id_58(p_line_num) := p_rec_lines.array_anc_id_58(p_line_num);
14902 l_rec_lines.array_anc_id_59(p_line_num) := p_rec_lines.array_anc_id_59(p_line_num);
14903 l_rec_lines.array_anc_id_60(p_line_num) := p_rec_lines.array_anc_id_60(p_line_num);
14904 l_rec_lines.array_anc_id_61(p_line_num) := p_rec_lines.array_anc_id_61(p_line_num);
14905 l_rec_lines.array_anc_id_62(p_line_num) := p_rec_lines.array_anc_id_62(p_line_num);
14906 l_rec_lines.array_anc_id_63(p_line_num) := p_rec_lines.array_anc_id_63(p_line_num);
14907 l_rec_lines.array_anc_id_64(p_line_num) := p_rec_lines.array_anc_id_64(p_line_num);
14908 l_rec_lines.array_anc_id_65(p_line_num) := p_rec_lines.array_anc_id_65(p_line_num);
14909 l_rec_lines.array_anc_id_66(p_line_num) := p_rec_lines.array_anc_id_66(p_line_num);
14910 l_rec_lines.array_anc_id_67(p_line_num) := p_rec_lines.array_anc_id_67(p_line_num);
14911 l_rec_lines.array_anc_id_68(p_line_num) := p_rec_lines.array_anc_id_68(p_line_num);
14912 l_rec_lines.array_anc_id_69(p_line_num) := p_rec_lines.array_anc_id_69(p_line_num);
14913 l_rec_lines.array_anc_id_70(p_line_num) := p_rec_lines.array_anc_id_70(p_line_num);
14914 l_rec_lines.array_anc_id_71(p_line_num) := p_rec_lines.array_anc_id_71(p_line_num);
14915 l_rec_lines.array_anc_id_72(p_line_num) := p_rec_lines.array_anc_id_72(p_line_num);
14916 l_rec_lines.array_anc_id_73(p_line_num) := p_rec_lines.array_anc_id_73(p_line_num);
14917 l_rec_lines.array_anc_id_74(p_line_num) := p_rec_lines.array_anc_id_74(p_line_num);
14918 l_rec_lines.array_anc_id_75(p_line_num) := p_rec_lines.array_anc_id_75(p_line_num);
14919 l_rec_lines.array_anc_id_76(p_line_num) := p_rec_lines.array_anc_id_76(p_line_num);
14920 l_rec_lines.array_anc_id_77(p_line_num) := p_rec_lines.array_anc_id_77(p_line_num);
14921 l_rec_lines.array_anc_id_78(p_line_num) := p_rec_lines.array_anc_id_78(p_line_num);
14922 l_rec_lines.array_anc_id_79(p_line_num) := p_rec_lines.array_anc_id_79(p_line_num);
14923 l_rec_lines.array_anc_id_80(p_line_num) := p_rec_lines.array_anc_id_80(p_line_num);
14924 l_rec_lines.array_anc_id_81(p_line_num) := p_rec_lines.array_anc_id_81(p_line_num);
14925 l_rec_lines.array_anc_id_82(p_line_num) := p_rec_lines.array_anc_id_82(p_line_num);
14926 l_rec_lines.array_anc_id_83(p_line_num) := p_rec_lines.array_anc_id_83(p_line_num);
14927 l_rec_lines.array_anc_id_84(p_line_num) := p_rec_lines.array_anc_id_84(p_line_num);
14928 l_rec_lines.array_anc_id_85(p_line_num) := p_rec_lines.array_anc_id_85(p_line_num);
14929 l_rec_lines.array_anc_id_86(p_line_num) := p_rec_lines.array_anc_id_86(p_line_num);
14930 l_rec_lines.array_anc_id_87(p_line_num) := p_rec_lines.array_anc_id_87(p_line_num);
14931 l_rec_lines.array_anc_id_88(p_line_num) := p_rec_lines.array_anc_id_88(p_line_num);
14932 l_rec_lines.array_anc_id_89(p_line_num) := p_rec_lines.array_anc_id_89(p_line_num);
14933 l_rec_lines.array_anc_id_90(p_line_num) := p_rec_lines.array_anc_id_90(p_line_num);
14934 l_rec_lines.array_anc_id_91(p_line_num) := p_rec_lines.array_anc_id_91(p_line_num);
14935 l_rec_lines.array_anc_id_92(p_line_num) := p_rec_lines.array_anc_id_92(p_line_num);
14936 l_rec_lines.array_anc_id_93(p_line_num) := p_rec_lines.array_anc_id_93(p_line_num);
14937 l_rec_lines.array_anc_id_94(p_line_num) := p_rec_lines.array_anc_id_94(p_line_num);
14938 l_rec_lines.array_anc_id_95(p_line_num) := p_rec_lines.array_anc_id_95(p_line_num);
14939 l_rec_lines.array_anc_id_96(p_line_num) := p_rec_lines.array_anc_id_96(p_line_num);
14940 l_rec_lines.array_anc_id_97(p_line_num) := p_rec_lines.array_anc_id_97(p_line_num);
14941 l_rec_lines.array_anc_id_98(p_line_num) := p_rec_lines.array_anc_id_98(p_line_num);
14942 l_rec_lines.array_anc_id_99(p_line_num) := p_rec_lines.array_anc_id_99(p_line_num);
14943 l_rec_lines.array_anc_id_100(p_line_num) := p_rec_lines.array_anc_id_100(p_line_num);
14944 --
14945 --
14946 l_rec_lines.array_event_number(p_line_num) := p_rec_lines.array_event_number(p_line_num);
14947 l_rec_lines.array_entity_id(p_line_num) := p_rec_lines.array_entity_id(p_line_num);
14948 l_rec_lines.array_reversal_code(p_line_num) := p_rec_lines.array_reversal_code(p_line_num);
14949 l_rec_lines.array_balance_type_code(p_line_num) := p_rec_lines.array_balance_type_code(p_line_num);
14950 l_rec_lines.array_ledger_id(p_line_num) := p_rec_lines.array_ledger_id(p_line_num);
14951 --
14952 -- business flow
14953 --
14954 l_rec_lines.array_business_method_code(p_line_num) := p_rec_lines.array_business_method_code(p_line_num);
14955 l_rec_lines.array_business_class_code(p_line_num) := p_rec_lines.array_business_class_code(p_line_num);
14956 l_rec_lines.array_inherit_desc_flag(p_line_num) := p_rec_lines.array_inherit_desc_flag(p_line_num);
14957 l_rec_lines.array_bflow_application_id(p_line_num) := p_rec_lines.array_bflow_application_id(p_line_num);
14958
14959 l_rec_lines.array_bflow_entity_code(p_line_num) := p_rec_lines.array_bflow_entity_code(p_line_num);
14960 l_rec_lines.array_bflow_source_id_num_1(p_line_num) := p_rec_lines.array_bflow_source_id_num_1(p_line_num);
14961 l_rec_lines.array_bflow_source_id_num_2(p_line_num) := p_rec_lines.array_bflow_source_id_num_2(p_line_num);
14962 l_rec_lines.array_bflow_source_id_num_3(p_line_num) := p_rec_lines.array_bflow_source_id_num_3(p_line_num);
14963 l_rec_lines.array_bflow_source_id_num_4(p_line_num) := p_rec_lines.array_bflow_source_id_num_4(p_line_num);
14964 l_rec_lines.array_bflow_source_id_char_1(p_line_num) := p_rec_lines.array_bflow_source_id_char_1(p_line_num);
14965 l_rec_lines.array_bflow_source_id_char_2(p_line_num) := p_rec_lines.array_bflow_source_id_char_2(p_line_num);
14966 l_rec_lines.array_bflow_source_id_char_3(p_line_num) := p_rec_lines.array_bflow_source_id_char_3(p_line_num);
14967 l_rec_lines.array_bflow_source_id_char_4(p_line_num) := p_rec_lines.array_bflow_source_id_char_4(p_line_num);
14968
14969 l_rec_lines.array_bflow_distribution_type(p_line_num):= p_rec_lines.array_bflow_distribution_type(p_line_num);
14970 l_rec_lines.array_bflow_dist_id_num_1(p_line_num) := p_rec_lines.array_bflow_dist_id_num_1(p_line_num);
14971 l_rec_lines.array_bflow_dist_id_num_2(p_line_num) := p_rec_lines.array_bflow_dist_id_num_2(p_line_num);
14972 l_rec_lines.array_bflow_dist_id_num_3(p_line_num) := p_rec_lines.array_bflow_dist_id_num_3(p_line_num);
14973 l_rec_lines.array_bflow_dist_id_num_4(p_line_num) := p_rec_lines.array_bflow_dist_id_num_4(p_line_num);
14974 l_rec_lines.array_bflow_dist_id_num_5(p_line_num) := p_rec_lines.array_bflow_dist_id_num_5(p_line_num);
14975 l_rec_lines.array_bflow_dist_id_char_1(p_line_num) := p_rec_lines.array_bflow_dist_id_char_1(p_line_num);
14976 l_rec_lines.array_bflow_dist_id_char_2(p_line_num) := p_rec_lines.array_bflow_dist_id_char_2(p_line_num);
14977 l_rec_lines.array_bflow_dist_id_char_3(p_line_num) := p_rec_lines.array_bflow_dist_id_char_3(p_line_num);
14978 l_rec_lines.array_bflow_dist_id_char_4(p_line_num) := p_rec_lines.array_bflow_dist_id_char_4(p_line_num);
14979 l_rec_lines.array_bflow_dist_id_char_5(p_line_num) := p_rec_lines.array_bflow_dist_id_char_5(p_line_num);
14980
14981 l_rec_lines.array_override_acctd_amt_flag(p_line_num) := p_rec_lines.array_override_acctd_amt_flag(p_line_num);
14982
14983
14984 l_rec_lines.array_bflow_applied_to_amt(p_line_num) := p_rec_lines.array_bflow_applied_to_amt(p_line_num); -- 5132302
14985 --
14986 -- Allocation Attributes
14987 --
14988 l_rec_lines.array_alloct_application_id(p_line_num) := p_rec_lines.array_alloct_application_id(p_line_num);
14989
14990 l_rec_lines.array_alloct_entity_code(p_line_num) := p_rec_lines.array_alloct_entity_code(p_line_num);
14991 l_rec_lines.array_alloct_source_id_num_1(p_line_num) := p_rec_lines.array_alloct_source_id_num_1(p_line_num);
14992 l_rec_lines.array_alloct_source_id_num_2(p_line_num) := p_rec_lines.array_alloct_source_id_num_2(p_line_num);
14993 l_rec_lines.array_alloct_source_id_num_3(p_line_num) := p_rec_lines.array_alloct_source_id_num_3(p_line_num);
14994 l_rec_lines.array_alloct_source_id_num_4(p_line_num) := p_rec_lines.array_alloct_source_id_num_4(p_line_num);
14995 l_rec_lines.array_alloct_source_id_char_1(p_line_num) := p_rec_lines.array_alloct_source_id_char_1(p_line_num);
14996 l_rec_lines.array_alloct_source_id_char_2(p_line_num) := p_rec_lines.array_alloct_source_id_char_2(p_line_num);
14997 l_rec_lines.array_alloct_source_id_char_3(p_line_num) := p_rec_lines.array_alloct_source_id_char_3(p_line_num);
14998 l_rec_lines.array_alloct_source_id_char_4(p_line_num) := p_rec_lines.array_alloct_source_id_char_4(p_line_num);
14999
15000 l_rec_lines.array_alloct_distribution_type(p_line_num):= p_rec_lines.array_alloct_distribution_type(p_line_num);
15001 l_rec_lines.array_alloct_dist_id_num_1(p_line_num) := p_rec_lines.array_alloct_dist_id_num_1(p_line_num);
15002 l_rec_lines.array_alloct_dist_id_num_2(p_line_num) := p_rec_lines.array_alloct_dist_id_num_2(p_line_num);
15003 l_rec_lines.array_alloct_dist_id_num_3(p_line_num) := p_rec_lines.array_alloct_dist_id_num_3(p_line_num);
15004 l_rec_lines.array_alloct_dist_id_num_4(p_line_num) := p_rec_lines.array_alloct_dist_id_num_4(p_line_num);
15005 l_rec_lines.array_alloct_dist_id_num_5(p_line_num) := p_rec_lines.array_alloct_dist_id_num_5(p_line_num);
15006 l_rec_lines.array_alloct_dist_id_char_1(p_line_num) := p_rec_lines.array_alloct_dist_id_char_1(p_line_num);
15007 l_rec_lines.array_alloct_dist_id_char_2(p_line_num) := p_rec_lines.array_alloct_dist_id_char_2(p_line_num);
15008 l_rec_lines.array_alloct_dist_id_char_3(p_line_num) := p_rec_lines.array_alloct_dist_id_char_3(p_line_num);
15009 l_rec_lines.array_alloct_dist_id_char_4(p_line_num) := p_rec_lines.array_alloct_dist_id_char_4(p_line_num);
15010 l_rec_lines.array_alloct_dist_id_char_5(p_line_num) := p_rec_lines.array_alloct_dist_id_char_5(p_line_num);
15011
15012 l_rec_lines.array_upg_cr_enc_type_id(p_line_num) := p_rec_lines.array_upg_cr_enc_type_id(p_line_num);
15013 l_rec_lines.array_upg_dr_enc_type_id(p_line_num) := p_rec_lines.array_upg_dr_enc_type_id(p_line_num);
15014 l_rec_lines.array_actual_upg_option(p_line_num) := p_rec_lines.array_actual_upg_option(p_line_num);
15015 l_rec_lines.array_enc_upg_option(p_line_num) := p_rec_lines.array_enc_upg_option(p_line_num);
15016
15017 ELSE
15018
15019 l_rec_lines := p_rec_lines ;
15020
15021 END IF ;
15022
15023 SetNewLine;
15024
15025
15026 -------------------------------------------------------------------------------------------------------
15027 -- Copy all information in l_rec_lines from p_line_num to g_LineNumber
15028 -------------------------------------------------------------------------------------------------------
15029
15030 g_rec_lines.array_ae_header_id(g_LineNumber) := l_rec_lines.array_ae_header_id(p_line_num);
15031 g_rec_lines.array_header_num(g_LineNumber) := l_rec_lines.array_header_num(p_line_num);
15032
15033 -- =================================================================================================
15034 g_rec_lines.array_accounting_class(g_LineNumber) := l_rec_lines.array_accounting_class(p_line_num);
15035 g_rec_lines.array_rounding_class(g_LineNumber) := l_rec_lines.array_rounding_class(p_line_num);
15036 g_rec_lines.array_doc_rounding_level(g_LineNumber) := l_rec_lines.array_doc_rounding_level(p_line_num);
15037 g_rec_lines.array_gain_or_loss_ref(g_LineNumber):= l_rec_lines.array_gain_or_loss_ref(p_line_num);
15038 g_rec_lines.array_event_class_code(g_LineNumber) := l_rec_lines.array_event_class_code(p_line_num);
15039 g_rec_lines.array_event_type_code(g_LineNumber) := l_rec_lines.array_event_type_code(p_line_num);
15040 g_rec_lines.array_line_defn_owner_code(g_LineNumber) := l_rec_lines.array_line_defn_owner_code(p_line_num);
15041 g_rec_lines.array_line_defn_code(g_LineNumber) := l_rec_lines.array_line_defn_code(p_line_num);
15042 g_rec_lines.array_accounting_line_code(g_LineNumber) := l_rec_lines.array_accounting_line_code(p_line_num);
15043 g_rec_lines.array_accounting_line_type(g_LineNumber) := l_rec_lines.array_accounting_line_type(p_line_num);
15044 g_rec_lines.array_calculate_acctd_flag(g_LineNumber) := l_rec_lines.array_calculate_acctd_flag(p_line_num);
15045 g_rec_lines.array_calculate_g_l_flag(g_LineNumber) := l_rec_lines.array_calculate_g_l_flag(p_line_num);
15046 g_rec_lines.array_gain_or_loss_flag(g_LineNumber) := l_rec_lines.array_gain_or_loss_flag(p_line_num);
15047
15048 --
15049 -- following sets the extract line number
15050 --
15051 g_rec_lines.array_extract_line_num(g_LineNumber) := l_rec_lines.array_extract_line_num(p_line_num);
15052
15053 --
15054 -- line flexfield accounts
15055 --
15056 g_rec_lines.array_ccid_flag(g_LineNumber) := l_rec_lines.array_ccid_flag(p_line_num);
15057 g_rec_lines.array_ccid(g_LineNumber) := l_rec_lines.array_ccid(p_line_num);
15058 --
15059 g_rec_lines.array_accounting_coa_id(g_LineNumber) := l_rec_lines.array_accounting_coa_id(p_line_num);
15060 g_rec_lines.array_transaction_coa_id(g_LineNumber) := l_rec_lines.array_transaction_coa_id(p_line_num);
15061 g_rec_lines.array_sl_coa_mapping_name(g_LineNumber) := l_rec_lines.array_sl_coa_mapping_name(p_line_num);
15062 --
15063 g_rec_lines.array_segment1(g_LineNumber) := l_rec_lines.array_segment1(p_line_num);
15064 g_rec_lines.array_segment2(g_LineNumber) := l_rec_lines.array_segment2(p_line_num);
15065 g_rec_lines.array_segment3(g_LineNumber) := l_rec_lines.array_segment3(p_line_num);
15066 g_rec_lines.array_segment4(g_LineNumber) := l_rec_lines.array_segment4(p_line_num);
15067 g_rec_lines.array_segment5(g_LineNumber) := l_rec_lines.array_segment5(p_line_num);
15068 g_rec_lines.array_segment6(g_LineNumber) := l_rec_lines.array_segment6(p_line_num);
15069 g_rec_lines.array_segment7(g_LineNumber) := l_rec_lines.array_segment7(p_line_num);
15070 g_rec_lines.array_segment8(g_LineNumber) := l_rec_lines.array_segment8(p_line_num);
15071 g_rec_lines.array_segment9(g_LineNumber) := l_rec_lines.array_segment9(p_line_num);
15072 g_rec_lines.array_segment10(g_LineNumber) := l_rec_lines.array_segment10(p_line_num);
15073 g_rec_lines.array_segment11(g_LineNumber) := l_rec_lines.array_segment11(p_line_num);
15074 g_rec_lines.array_segment12(g_LineNumber) := l_rec_lines.array_segment12(p_line_num);
15075 g_rec_lines.array_segment13(g_LineNumber) := l_rec_lines.array_segment13(p_line_num);
15076 g_rec_lines.array_segment14(g_LineNumber) := l_rec_lines.array_segment14(p_line_num);
15077 g_rec_lines.array_segment15(g_LineNumber) := l_rec_lines.array_segment15(p_line_num);
15078 g_rec_lines.array_segment16(g_LineNumber) := l_rec_lines.array_segment16(p_line_num);
15079 g_rec_lines.array_segment17(g_LineNumber) := l_rec_lines.array_segment17(p_line_num);
15080 g_rec_lines.array_segment18(g_LineNumber) := l_rec_lines.array_segment18(p_line_num);
15081 g_rec_lines.array_segment19(g_LineNumber) := l_rec_lines.array_segment19(p_line_num);
15082 g_rec_lines.array_segment20(g_LineNumber) := l_rec_lines.array_segment20(p_line_num);
15083 g_rec_lines.array_segment21(g_LineNumber) := l_rec_lines.array_segment21(p_line_num);
15084 g_rec_lines.array_segment22(g_LineNumber) := l_rec_lines.array_segment22(p_line_num);
15085 g_rec_lines.array_segment23(g_LineNumber) := l_rec_lines.array_segment23(p_line_num);
15086 g_rec_lines.array_segment24(g_LineNumber) := l_rec_lines.array_segment24(p_line_num);
15087 g_rec_lines.array_segment25(g_LineNumber) := l_rec_lines.array_segment25(p_line_num);
15088 g_rec_lines.array_segment26(g_LineNumber) := l_rec_lines.array_segment26(p_line_num);
15089 g_rec_lines.array_segment27(g_LineNumber) := l_rec_lines.array_segment27(p_line_num);
15090 g_rec_lines.array_segment28(g_LineNumber) := l_rec_lines.array_segment28(p_line_num);
15091 g_rec_lines.array_segment29(g_LineNumber) := l_rec_lines.array_segment29(p_line_num);
15092 g_rec_lines.array_segment30(g_LineNumber) := l_rec_lines.array_segment30(p_line_num);
15093 --
15094 g_rec_lines.alt_array_ccid_flag(g_LineNumber) := l_rec_lines.alt_array_ccid_flag(p_line_num);
15095 g_rec_lines.alt_array_ccid(g_LineNumber) := l_rec_lines.alt_array_ccid(p_line_num);
15096 g_rec_lines.alt_array_segment1(g_LineNumber) := l_rec_lines.alt_array_segment1(p_line_num);
15097 g_rec_lines.alt_array_segment2(g_LineNumber) := l_rec_lines.alt_array_segment2(p_line_num);
15098 g_rec_lines.alt_array_segment3(g_LineNumber) := l_rec_lines.alt_array_segment3(p_line_num);
15099 g_rec_lines.alt_array_segment4(g_LineNumber) := l_rec_lines.alt_array_segment4(p_line_num);
15100 g_rec_lines.alt_array_segment5(g_LineNumber) := l_rec_lines.alt_array_segment5(p_line_num);
15101 g_rec_lines.alt_array_segment6(g_LineNumber) := l_rec_lines.alt_array_segment6(p_line_num);
15102 g_rec_lines.alt_array_segment7(g_LineNumber) := l_rec_lines.alt_array_segment7(p_line_num);
15103 g_rec_lines.alt_array_segment8(g_LineNumber) := l_rec_lines.alt_array_segment8(p_line_num);
15104 g_rec_lines.alt_array_segment9(g_LineNumber) := l_rec_lines.alt_array_segment9(p_line_num);
15105 g_rec_lines.alt_array_segment10(g_LineNumber) := l_rec_lines.alt_array_segment10(p_line_num);
15106 g_rec_lines.alt_array_segment11(g_LineNumber) := l_rec_lines.alt_array_segment11(p_line_num);
15107 g_rec_lines.alt_array_segment12(g_LineNumber) := l_rec_lines.alt_array_segment12(p_line_num);
15108 g_rec_lines.alt_array_segment13(g_LineNumber) := l_rec_lines.alt_array_segment13(p_line_num);
15109 g_rec_lines.alt_array_segment14(g_LineNumber) := l_rec_lines.alt_array_segment14(p_line_num);
15110 g_rec_lines.alt_array_segment15(g_LineNumber) := l_rec_lines.alt_array_segment15(p_line_num);
15111 g_rec_lines.alt_array_segment16(g_LineNumber) := l_rec_lines.alt_array_segment16(p_line_num);
15112 g_rec_lines.alt_array_segment17(g_LineNumber) := l_rec_lines.alt_array_segment17(p_line_num);
15113 g_rec_lines.alt_array_segment18(g_LineNumber) := l_rec_lines.alt_array_segment18(p_line_num);
15114 g_rec_lines.alt_array_segment19(g_LineNumber) := l_rec_lines.alt_array_segment19(p_line_num);
15115 g_rec_lines.alt_array_segment20(g_LineNumber) := l_rec_lines.alt_array_segment20(p_line_num);
15116 g_rec_lines.alt_array_segment21(g_LineNumber) := l_rec_lines.alt_array_segment21(p_line_num);
15117 g_rec_lines.alt_array_segment22(g_LineNumber) := l_rec_lines.alt_array_segment22(p_line_num);
15118 g_rec_lines.alt_array_segment23(g_LineNumber) := l_rec_lines.alt_array_segment23(p_line_num);
15119 g_rec_lines.alt_array_segment24(g_LineNumber) := l_rec_lines.alt_array_segment24(p_line_num);
15120 g_rec_lines.alt_array_segment25(g_LineNumber) := l_rec_lines.alt_array_segment25(p_line_num);
15121 g_rec_lines.alt_array_segment26(g_LineNumber) := l_rec_lines.alt_array_segment26(p_line_num);
15122 g_rec_lines.alt_array_segment27(g_LineNumber) := l_rec_lines.alt_array_segment27(p_line_num);
15123 g_rec_lines.alt_array_segment28(g_LineNumber) := l_rec_lines.alt_array_segment28(p_line_num);
15124 g_rec_lines.alt_array_segment29(g_LineNumber) := l_rec_lines.alt_array_segment29(p_line_num);
15125 g_rec_lines.alt_array_segment30(g_LineNumber) := l_rec_lines.alt_array_segment30(p_line_num);
15126 --
15127 -- Option lines
15128 --
15129 g_rec_lines.array_gl_transfer_mode(g_LineNumber) := l_rec_lines.array_gl_transfer_mode(p_line_num);
15130 g_rec_lines.array_natural_side_code(g_LineNumber) := l_rec_lines.array_natural_side_code(p_line_num);
15131 g_rec_lines.array_acct_entry_type_code(g_LineNumber) := l_rec_lines.array_acct_entry_type_code(p_line_num);
15132 g_rec_lines.array_switch_side_flag(g_LineNumber) := l_rec_lines.array_switch_side_flag(p_line_num);
15133 g_rec_lines.array_merge_duplicate_code(g_LineNumber) := l_rec_lines.array_merge_duplicate_code(p_line_num);
15134 --
15135 -- line amounts
15136 --
15137 g_rec_lines.array_entered_amount(g_LineNumber) := l_rec_lines.array_entered_amount(p_line_num);
15138 g_rec_lines.array_ledger_amount(g_LineNumber) := l_rec_lines.array_ledger_amount(p_line_num);
15139 g_rec_lines.array_entered_dr(g_LineNumber) := l_rec_lines.array_entered_dr(p_line_num);
15140 g_rec_lines.array_entered_cr(g_LineNumber) := l_rec_lines.array_entered_cr(p_line_num);
15141 g_rec_lines.array_accounted_dr(g_LineNumber) := l_rec_lines.array_accounted_dr(p_line_num);
15142 g_rec_lines.array_accounted_cr(g_LineNumber) := l_rec_lines.array_accounted_cr(p_line_num);
15143 g_rec_lines.array_currency_code(g_LineNumber) := l_rec_lines.array_currency_code(p_line_num);
15144 g_rec_lines.array_currency_mau(g_LineNumber) := xla_accounting_cache_pkg.GetCurrencyMau(g_rec_lines.array_currency_code(g_LineNumber));
15145 g_rec_lines.array_curr_conversion_date(g_LineNumber) := l_rec_lines.array_curr_conversion_date(p_line_num);
15146 g_rec_lines.array_curr_conversion_rate(g_LineNumber) := l_rec_lines.array_curr_conversion_rate(p_line_num);
15147 g_rec_lines.array_curr_conversion_type(g_LineNumber) := l_rec_lines.array_curr_conversion_type(p_line_num);
15148 g_rec_lines.array_description(g_LineNumber) := l_rec_lines.array_description(p_line_num);
15149 --
15150 -- line descriptions
15151 --
15152 g_rec_lines.array_party_id(g_LineNumber) := l_rec_lines.array_party_id(p_line_num);
15153 g_rec_lines.array_party_site_id(g_LineNumber) := l_rec_lines.array_party_site_id(p_line_num);
15154 g_rec_lines.array_party_type_code(g_LineNumber) := l_rec_lines.array_party_type_code(p_line_num);
15155 --
15156 g_rec_lines.array_statistical_amount(g_LineNumber) := l_rec_lines.array_statistical_amount(p_line_num);
15157 g_rec_lines.array_ussgl_transaction(g_LineNumber) := l_rec_lines.array_ussgl_transaction(p_line_num);
15158 --
15159 g_rec_lines.array_jgzz_recon_ref(g_LineNumber) := l_rec_lines.array_jgzz_recon_ref(p_line_num);
15160 --
15161 -- distribution links
15162 --
15163 g_rec_lines.array_distribution_id_char_1(g_LineNumber) := l_rec_lines.array_distribution_id_char_1(p_line_num);
15164 g_rec_lines.array_distribution_id_char_2(g_LineNumber) := l_rec_lines.array_distribution_id_char_2(p_line_num);
15165 g_rec_lines.array_distribution_id_char_3(g_LineNumber) := l_rec_lines.array_distribution_id_char_3(p_line_num);
15166 g_rec_lines.array_distribution_id_char_4(g_LineNumber) := l_rec_lines.array_distribution_id_char_4(p_line_num);
15167 g_rec_lines.array_distribution_id_char_5(g_LineNumber) := l_rec_lines.array_distribution_id_char_5(p_line_num);
15168 g_rec_lines.array_distribution_id_num_1(g_LineNumber) := l_rec_lines.array_distribution_id_num_1(p_line_num);
15169 g_rec_lines.array_distribution_id_num_2(g_LineNumber) := l_rec_lines.array_distribution_id_num_2(p_line_num);
15170 g_rec_lines.array_distribution_id_num_3(g_LineNumber) := l_rec_lines.array_distribution_id_num_3(p_line_num);
15171 g_rec_lines.array_distribution_id_num_4(g_LineNumber) := l_rec_lines.array_distribution_id_num_4(p_line_num);
15172 g_rec_lines.array_distribution_id_num_5(g_LineNumber) := l_rec_lines.array_distribution_id_num_5(p_line_num);
15173 g_rec_lines.array_sys_distribution_type(g_LineNumber) := l_rec_lines.array_sys_distribution_type(p_line_num);
15174 --
15175 -- reverse distribution links
15176 --
15177 g_rec_lines.array_rev_dist_id_char_1(g_LineNumber) := l_rec_lines.array_rev_dist_id_char_1(p_line_num);
15178 g_rec_lines.array_rev_dist_id_char_2(g_LineNumber) := l_rec_lines.array_rev_dist_id_char_2(p_line_num);
15179 g_rec_lines.array_rev_dist_id_char_3(g_LineNumber) := l_rec_lines.array_rev_dist_id_char_3(p_line_num);
15180 g_rec_lines.array_rev_dist_id_char_4(g_LineNumber) := l_rec_lines.array_rev_dist_id_char_4(p_line_num);
15181 g_rec_lines.array_rev_dist_id_char_5(g_LineNumber) := l_rec_lines.array_rev_dist_id_char_5(p_line_num);
15182 g_rec_lines.array_rev_dist_id_num_1(g_LineNumber) := l_rec_lines.array_rev_dist_id_num_1(p_line_num);
15183 g_rec_lines.array_rev_dist_id_num_2(g_LineNumber) := l_rec_lines.array_rev_dist_id_num_2(p_line_num);
15184 g_rec_lines.array_rev_dist_id_num_3(g_LineNumber) := l_rec_lines.array_rev_dist_id_num_3(p_line_num);
15185 g_rec_lines.array_rev_dist_id_num_4(g_LineNumber) := l_rec_lines.array_rev_dist_id_num_4(p_line_num);
15186 g_rec_lines.array_rev_dist_id_num_5(g_LineNumber) := l_rec_lines.array_rev_dist_id_num_5(p_line_num);
15187 g_rec_lines.array_rev_dist_type(g_LineNumber) := l_rec_lines.array_rev_dist_type(p_line_num);
15188 --
15189 -- multiperiod accounting
15190 --
15191 -- DO NOT COPY g_rec_lines.array_mpa_acc_entry_flag
15192 g_rec_lines.array_header_num(g_LineNumber) := l_rec_lines.array_header_num(p_line_num);
15193 g_rec_lines.array_mpa_option(g_LineNumber) := l_rec_lines.array_mpa_option(p_line_num);
15194 g_rec_lines.array_mpa_start_date(g_LineNumber) := l_rec_lines.array_mpa_start_date(p_line_num);
15195 g_rec_lines.array_mpa_end_date(g_LineNumber) := l_rec_lines.array_mpa_end_date(p_line_num);
15196 --
15197 -- reversal info
15198 --
15199 g_rec_lines.array_acc_reversal_option(g_LineNumber) := l_rec_lines.array_acc_reversal_option(p_line_num);
15200 --
15201 -- tax info
15202 --
15203 g_rec_lines.array_tax_line_ref(g_LineNumber) := l_rec_lines.array_tax_line_ref(p_line_num);
15204 g_rec_lines.array_tax_summary_line_ref(g_LineNumber) := l_rec_lines.array_tax_summary_line_ref(p_line_num);
15205 g_rec_lines.array_tax_rec_nrec_dist_ref(g_LineNumber) := l_rec_lines.array_tax_rec_nrec_dist_ref(p_line_num);
15206 --
15207 --
15208 g_rec_lines.array_anc_balance_flag(g_LineNumber) := l_rec_lines.array_anc_balance_flag(p_line_num);
15209 g_rec_lines.array_anc_id_1(g_LineNumber) := l_rec_lines.array_anc_id_1(p_line_num);
15210 g_rec_lines.array_anc_id_2(g_LineNumber) := l_rec_lines.array_anc_id_2(p_line_num);
15211 g_rec_lines.array_anc_id_3(g_LineNumber) := l_rec_lines.array_anc_id_3(p_line_num);
15212 g_rec_lines.array_anc_id_4(g_LineNumber) := l_rec_lines.array_anc_id_4(p_line_num);
15213 g_rec_lines.array_anc_id_5(g_LineNumber) := l_rec_lines.array_anc_id_5(p_line_num);
15214 g_rec_lines.array_anc_id_6(g_LineNumber) := l_rec_lines.array_anc_id_6(p_line_num);
15215 g_rec_lines.array_anc_id_7(g_LineNumber) := l_rec_lines.array_anc_id_7(p_line_num);
15216 g_rec_lines.array_anc_id_8(g_LineNumber) := l_rec_lines.array_anc_id_8(p_line_num);
15217 g_rec_lines.array_anc_id_9(g_LineNumber) := l_rec_lines.array_anc_id_9(p_line_num);
15218 g_rec_lines.array_anc_id_10(g_LineNumber) := l_rec_lines.array_anc_id_10(p_line_num);
15219 g_rec_lines.array_anc_id_11(g_LineNumber) := l_rec_lines.array_anc_id_11(p_line_num);
15220 g_rec_lines.array_anc_id_12(g_LineNumber) := l_rec_lines.array_anc_id_12(p_line_num);
15221 g_rec_lines.array_anc_id_13(g_LineNumber) := l_rec_lines.array_anc_id_13(p_line_num);
15222 g_rec_lines.array_anc_id_14(g_LineNumber) := l_rec_lines.array_anc_id_14(p_line_num);
15223 g_rec_lines.array_anc_id_15(g_LineNumber) := l_rec_lines.array_anc_id_15(p_line_num);
15224 g_rec_lines.array_anc_id_16(g_LineNumber) := l_rec_lines.array_anc_id_16(p_line_num);
15225 g_rec_lines.array_anc_id_17(g_LineNumber) := l_rec_lines.array_anc_id_17(p_line_num);
15226 g_rec_lines.array_anc_id_18(g_LineNumber) := l_rec_lines.array_anc_id_18(p_line_num);
15227 g_rec_lines.array_anc_id_19(g_LineNumber) := l_rec_lines.array_anc_id_19(p_line_num);
15228 g_rec_lines.array_anc_id_20(g_LineNumber) := l_rec_lines.array_anc_id_20(p_line_num);
15229 g_rec_lines.array_anc_id_21(g_LineNumber) := l_rec_lines.array_anc_id_21(p_line_num);
15230 g_rec_lines.array_anc_id_22(g_LineNumber) := l_rec_lines.array_anc_id_22(p_line_num);
15231 g_rec_lines.array_anc_id_23(g_LineNumber) := l_rec_lines.array_anc_id_23(p_line_num);
15232 g_rec_lines.array_anc_id_24(g_LineNumber) := l_rec_lines.array_anc_id_24(p_line_num);
15233 g_rec_lines.array_anc_id_25(g_LineNumber) := l_rec_lines.array_anc_id_25(p_line_num);
15234 g_rec_lines.array_anc_id_26(g_LineNumber) := l_rec_lines.array_anc_id_26(p_line_num);
15235 g_rec_lines.array_anc_id_27(g_LineNumber) := l_rec_lines.array_anc_id_27(p_line_num);
15236 g_rec_lines.array_anc_id_28(g_LineNumber) := l_rec_lines.array_anc_id_28(p_line_num);
15237 g_rec_lines.array_anc_id_29(g_LineNumber) := l_rec_lines.array_anc_id_29(p_line_num);
15238 g_rec_lines.array_anc_id_30(g_LineNumber) := l_rec_lines.array_anc_id_30(p_line_num);
15239 g_rec_lines.array_anc_id_31(g_LineNumber) := l_rec_lines.array_anc_id_31(p_line_num);
15240 g_rec_lines.array_anc_id_32(g_LineNumber) := l_rec_lines.array_anc_id_32(p_line_num);
15241 g_rec_lines.array_anc_id_33(g_LineNumber) := l_rec_lines.array_anc_id_33(p_line_num);
15242 g_rec_lines.array_anc_id_34(g_LineNumber) := l_rec_lines.array_anc_id_34(p_line_num);
15243 g_rec_lines.array_anc_id_35(g_LineNumber) := l_rec_lines.array_anc_id_35(p_line_num);
15244 g_rec_lines.array_anc_id_36(g_LineNumber) := l_rec_lines.array_anc_id_36(p_line_num);
15245 g_rec_lines.array_anc_id_37(g_LineNumber) := l_rec_lines.array_anc_id_37(p_line_num);
15246 g_rec_lines.array_anc_id_38(g_LineNumber) := l_rec_lines.array_anc_id_38(p_line_num);
15247 g_rec_lines.array_anc_id_39(g_LineNumber) := l_rec_lines.array_anc_id_39(p_line_num);
15248 g_rec_lines.array_anc_id_40(g_LineNumber) := l_rec_lines.array_anc_id_40(p_line_num);
15249 g_rec_lines.array_anc_id_41(g_LineNumber) := l_rec_lines.array_anc_id_41(p_line_num);
15250 g_rec_lines.array_anc_id_42(g_LineNumber) := l_rec_lines.array_anc_id_42(p_line_num);
15251 g_rec_lines.array_anc_id_43(g_LineNumber) := l_rec_lines.array_anc_id_43(p_line_num);
15252 g_rec_lines.array_anc_id_44(g_LineNumber) := l_rec_lines.array_anc_id_44(p_line_num);
15253 g_rec_lines.array_anc_id_45(g_LineNumber) := l_rec_lines.array_anc_id_45(p_line_num);
15254 g_rec_lines.array_anc_id_46(g_LineNumber) := l_rec_lines.array_anc_id_46(p_line_num);
15255 g_rec_lines.array_anc_id_47(g_LineNumber) := l_rec_lines.array_anc_id_47(p_line_num);
15256 g_rec_lines.array_anc_id_48(g_LineNumber) := l_rec_lines.array_anc_id_48(p_line_num);
15257 g_rec_lines.array_anc_id_49(g_LineNumber) := l_rec_lines.array_anc_id_49(p_line_num);
15258 g_rec_lines.array_anc_id_50(g_LineNumber) := l_rec_lines.array_anc_id_50(p_line_num);
15259 g_rec_lines.array_anc_id_51(g_LineNumber) := l_rec_lines.array_anc_id_51(p_line_num);
15260 g_rec_lines.array_anc_id_52(g_LineNumber) := l_rec_lines.array_anc_id_52(p_line_num);
15261 g_rec_lines.array_anc_id_53(g_LineNumber) := l_rec_lines.array_anc_id_53(p_line_num);
15262 g_rec_lines.array_anc_id_54(g_LineNumber) := l_rec_lines.array_anc_id_54(p_line_num);
15263 g_rec_lines.array_anc_id_55(g_LineNumber) := l_rec_lines.array_anc_id_55(p_line_num);
15264 g_rec_lines.array_anc_id_56(g_LineNumber) := l_rec_lines.array_anc_id_56(p_line_num);
15265 g_rec_lines.array_anc_id_57(g_LineNumber) := l_rec_lines.array_anc_id_57(p_line_num);
15266 g_rec_lines.array_anc_id_58(g_LineNumber) := l_rec_lines.array_anc_id_58(p_line_num);
15267 g_rec_lines.array_anc_id_59(g_LineNumber) := l_rec_lines.array_anc_id_59(p_line_num);
15268 g_rec_lines.array_anc_id_60(g_LineNumber) := l_rec_lines.array_anc_id_60(p_line_num);
15269 g_rec_lines.array_anc_id_61(g_LineNumber) := l_rec_lines.array_anc_id_61(p_line_num);
15270 g_rec_lines.array_anc_id_62(g_LineNumber) := l_rec_lines.array_anc_id_62(p_line_num);
15271 g_rec_lines.array_anc_id_63(g_LineNumber) := l_rec_lines.array_anc_id_63(p_line_num);
15272 g_rec_lines.array_anc_id_64(g_LineNumber) := l_rec_lines.array_anc_id_64(p_line_num);
15273 g_rec_lines.array_anc_id_65(g_LineNumber) := l_rec_lines.array_anc_id_65(p_line_num);
15274 g_rec_lines.array_anc_id_66(g_LineNumber) := l_rec_lines.array_anc_id_66(p_line_num);
15275 g_rec_lines.array_anc_id_67(g_LineNumber) := l_rec_lines.array_anc_id_67(p_line_num);
15276 g_rec_lines.array_anc_id_68(g_LineNumber) := l_rec_lines.array_anc_id_68(p_line_num);
15277 g_rec_lines.array_anc_id_69(g_LineNumber) := l_rec_lines.array_anc_id_69(p_line_num);
15278 g_rec_lines.array_anc_id_70(g_LineNumber) := l_rec_lines.array_anc_id_70(p_line_num);
15279 g_rec_lines.array_anc_id_71(g_LineNumber) := l_rec_lines.array_anc_id_71(p_line_num);
15280 g_rec_lines.array_anc_id_72(g_LineNumber) := l_rec_lines.array_anc_id_72(p_line_num);
15281 g_rec_lines.array_anc_id_73(g_LineNumber) := l_rec_lines.array_anc_id_73(p_line_num);
15282 g_rec_lines.array_anc_id_74(g_LineNumber) := l_rec_lines.array_anc_id_74(p_line_num);
15283 g_rec_lines.array_anc_id_75(g_LineNumber) := l_rec_lines.array_anc_id_75(p_line_num);
15284 g_rec_lines.array_anc_id_76(g_LineNumber) := l_rec_lines.array_anc_id_76(p_line_num);
15285 g_rec_lines.array_anc_id_77(g_LineNumber) := l_rec_lines.array_anc_id_77(p_line_num);
15286 g_rec_lines.array_anc_id_78(g_LineNumber) := l_rec_lines.array_anc_id_78(p_line_num);
15287 g_rec_lines.array_anc_id_79(g_LineNumber) := l_rec_lines.array_anc_id_79(p_line_num);
15288 g_rec_lines.array_anc_id_80(g_LineNumber) := l_rec_lines.array_anc_id_80(p_line_num);
15289 g_rec_lines.array_anc_id_81(g_LineNumber) := l_rec_lines.array_anc_id_81(p_line_num);
15290 g_rec_lines.array_anc_id_82(g_LineNumber) := l_rec_lines.array_anc_id_82(p_line_num);
15291 g_rec_lines.array_anc_id_83(g_LineNumber) := l_rec_lines.array_anc_id_83(p_line_num);
15292 g_rec_lines.array_anc_id_84(g_LineNumber) := l_rec_lines.array_anc_id_84(p_line_num);
15293 g_rec_lines.array_anc_id_85(g_LineNumber) := l_rec_lines.array_anc_id_85(p_line_num);
15294 g_rec_lines.array_anc_id_86(g_LineNumber) := l_rec_lines.array_anc_id_86(p_line_num);
15295 g_rec_lines.array_anc_id_87(g_LineNumber) := l_rec_lines.array_anc_id_87(p_line_num);
15296 g_rec_lines.array_anc_id_88(g_LineNumber) := l_rec_lines.array_anc_id_88(p_line_num);
15297 g_rec_lines.array_anc_id_89(g_LineNumber) := l_rec_lines.array_anc_id_89(p_line_num);
15298 g_rec_lines.array_anc_id_90(g_LineNumber) := l_rec_lines.array_anc_id_90(p_line_num);
15299 g_rec_lines.array_anc_id_91(g_LineNumber) := l_rec_lines.array_anc_id_91(p_line_num);
15300 g_rec_lines.array_anc_id_92(g_LineNumber) := l_rec_lines.array_anc_id_92(p_line_num);
15301 g_rec_lines.array_anc_id_93(g_LineNumber) := l_rec_lines.array_anc_id_93(p_line_num);
15302 g_rec_lines.array_anc_id_94(g_LineNumber) := l_rec_lines.array_anc_id_94(p_line_num);
15303 g_rec_lines.array_anc_id_95(g_LineNumber) := l_rec_lines.array_anc_id_95(p_line_num);
15304 g_rec_lines.array_anc_id_96(g_LineNumber) := l_rec_lines.array_anc_id_96(p_line_num);
15305 g_rec_lines.array_anc_id_97(g_LineNumber) := l_rec_lines.array_anc_id_97(p_line_num);
15306 g_rec_lines.array_anc_id_98(g_LineNumber) := l_rec_lines.array_anc_id_98(p_line_num);
15307 g_rec_lines.array_anc_id_99(g_LineNumber) := l_rec_lines.array_anc_id_99(p_line_num);
15308 g_rec_lines.array_anc_id_100(g_LineNumber) := l_rec_lines.array_anc_id_100(p_line_num);
15309 --
15310 --
15311 g_rec_lines.array_event_number(g_LineNumber) := l_rec_lines.array_event_number(p_line_num);
15312 g_rec_lines.array_entity_id(g_LineNumber) := l_rec_lines.array_entity_id(p_line_num);
15313 g_rec_lines.array_reversal_code(g_LineNumber) := l_rec_lines.array_reversal_code(p_line_num);
15314 g_rec_lines.array_balance_type_code(g_LineNumber) := l_rec_lines.array_balance_type_code(p_line_num);
15315 g_rec_lines.array_ledger_id(g_LineNumber) := l_rec_lines.array_ledger_id(p_line_num);
15316 --
15317 -- business flow
15318 --
15319 g_rec_lines.array_business_method_code(g_LineNumber) := l_rec_lines.array_business_method_code(p_line_num);
15320 g_rec_lines.array_business_class_code(g_LineNumber) := l_rec_lines.array_business_class_code(p_line_num);
15321 g_rec_lines.array_inherit_desc_flag(g_LineNumber) := l_rec_lines.array_inherit_desc_flag(p_line_num);
15322 g_rec_lines.array_bflow_application_id(g_LineNumber) := l_rec_lines.array_bflow_application_id(p_line_num);
15323
15324 g_rec_lines.array_bflow_entity_code(g_LineNumber) := l_rec_lines.array_bflow_entity_code(p_line_num);
15325 g_rec_lines.array_bflow_source_id_num_1(g_LineNumber) := l_rec_lines.array_bflow_source_id_num_1(p_line_num);
15326 g_rec_lines.array_bflow_source_id_num_2(g_LineNumber) := l_rec_lines.array_bflow_source_id_num_2(p_line_num);
15327 g_rec_lines.array_bflow_source_id_num_3(g_LineNumber) := l_rec_lines.array_bflow_source_id_num_3(p_line_num);
15328 g_rec_lines.array_bflow_source_id_num_4(g_LineNumber) := l_rec_lines.array_bflow_source_id_num_4(p_line_num);
15329 g_rec_lines.array_bflow_source_id_char_1(g_LineNumber) := l_rec_lines.array_bflow_source_id_char_1(p_line_num);
15330 g_rec_lines.array_bflow_source_id_char_2(g_LineNumber) := l_rec_lines.array_bflow_source_id_char_2(p_line_num);
15331 g_rec_lines.array_bflow_source_id_char_3(g_LineNumber) := l_rec_lines.array_bflow_source_id_char_3(p_line_num);
15332 g_rec_lines.array_bflow_source_id_char_4(g_LineNumber) := l_rec_lines.array_bflow_source_id_char_4(p_line_num);
15333
15334 g_rec_lines.array_bflow_distribution_type(g_LineNumber):= l_rec_lines.array_bflow_distribution_type(p_line_num);
15335 g_rec_lines.array_bflow_dist_id_num_1(g_LineNumber) := l_rec_lines.array_bflow_dist_id_num_1(p_line_num);
15336 g_rec_lines.array_bflow_dist_id_num_2(g_LineNumber) := l_rec_lines.array_bflow_dist_id_num_2(p_line_num);
15337 g_rec_lines.array_bflow_dist_id_num_3(g_LineNumber) := l_rec_lines.array_bflow_dist_id_num_3(p_line_num);
15338 g_rec_lines.array_bflow_dist_id_num_4(g_LineNumber) := l_rec_lines.array_bflow_dist_id_num_4(p_line_num);
15339 g_rec_lines.array_bflow_dist_id_num_5(g_LineNumber) := l_rec_lines.array_bflow_dist_id_num_5(p_line_num);
15340 g_rec_lines.array_bflow_dist_id_char_1(g_LineNumber) := l_rec_lines.array_bflow_dist_id_char_1(p_line_num);
15341 g_rec_lines.array_bflow_dist_id_char_2(g_LineNumber) := l_rec_lines.array_bflow_dist_id_char_2(p_line_num);
15342 g_rec_lines.array_bflow_dist_id_char_3(g_LineNumber) := l_rec_lines.array_bflow_dist_id_char_3(p_line_num);
15343 g_rec_lines.array_bflow_dist_id_char_4(g_LineNumber) := l_rec_lines.array_bflow_dist_id_char_4(p_line_num);
15344 g_rec_lines.array_bflow_dist_id_char_5(g_LineNumber) := l_rec_lines.array_bflow_dist_id_char_5(p_line_num);
15345
15346 g_rec_lines.array_override_acctd_amt_flag(g_LineNumber) := l_rec_lines.array_override_acctd_amt_flag(p_line_num);
15347
15348
15349 g_rec_lines.array_bflow_applied_to_amt(g_LineNumber) := l_rec_lines.array_bflow_applied_to_amt(p_line_num); -- 5132302
15350 --
15351 -- Allocation Attributes
15352 --
15353 g_rec_lines.array_alloct_application_id(g_LineNumber) := l_rec_lines.array_alloct_application_id(p_line_num);
15354
15355 g_rec_lines.array_alloct_entity_code(g_LineNumber) := l_rec_lines.array_alloct_entity_code(p_line_num);
15356 g_rec_lines.array_alloct_source_id_num_1(g_LineNumber) := l_rec_lines.array_alloct_source_id_num_1(p_line_num);
15357 g_rec_lines.array_alloct_source_id_num_2(g_LineNumber) := l_rec_lines.array_alloct_source_id_num_2(p_line_num);
15358 g_rec_lines.array_alloct_source_id_num_3(g_LineNumber) := l_rec_lines.array_alloct_source_id_num_3(p_line_num);
15359 g_rec_lines.array_alloct_source_id_num_4(g_LineNumber) := l_rec_lines.array_alloct_source_id_num_4(p_line_num);
15360 g_rec_lines.array_alloct_source_id_char_1(g_LineNumber) := l_rec_lines.array_alloct_source_id_char_1(p_line_num);
15361 g_rec_lines.array_alloct_source_id_char_2(g_LineNumber) := l_rec_lines.array_alloct_source_id_char_2(p_line_num);
15362 g_rec_lines.array_alloct_source_id_char_3(g_LineNumber) := l_rec_lines.array_alloct_source_id_char_3(p_line_num);
15363 g_rec_lines.array_alloct_source_id_char_4(g_LineNumber) := l_rec_lines.array_alloct_source_id_char_4(p_line_num);
15364
15365 g_rec_lines.array_alloct_distribution_type(g_LineNumber):= l_rec_lines.array_alloct_distribution_type(p_line_num);
15366 g_rec_lines.array_alloct_dist_id_num_1(g_LineNumber) := l_rec_lines.array_alloct_dist_id_num_1(p_line_num);
15367 g_rec_lines.array_alloct_dist_id_num_2(g_LineNumber) := l_rec_lines.array_alloct_dist_id_num_2(p_line_num);
15368 g_rec_lines.array_alloct_dist_id_num_3(g_LineNumber) := l_rec_lines.array_alloct_dist_id_num_3(p_line_num);
15369 g_rec_lines.array_alloct_dist_id_num_4(g_LineNumber) := l_rec_lines.array_alloct_dist_id_num_4(p_line_num);
15370 g_rec_lines.array_alloct_dist_id_num_5(g_LineNumber) := l_rec_lines.array_alloct_dist_id_num_5(p_line_num);
15371 g_rec_lines.array_alloct_dist_id_char_1(g_LineNumber) := l_rec_lines.array_alloct_dist_id_char_1(p_line_num);
15372 g_rec_lines.array_alloct_dist_id_char_2(g_LineNumber) := l_rec_lines.array_alloct_dist_id_char_2(p_line_num);
15373 g_rec_lines.array_alloct_dist_id_char_3(g_LineNumber) := l_rec_lines.array_alloct_dist_id_char_3(p_line_num);
15374 g_rec_lines.array_alloct_dist_id_char_4(g_LineNumber) := l_rec_lines.array_alloct_dist_id_char_4(p_line_num);
15375 g_rec_lines.array_alloct_dist_id_char_5(g_LineNumber) := l_rec_lines.array_alloct_dist_id_char_5(p_line_num);
15376 -- =================================================================================================
15377 --
15378 -- for 7029018
15379 IF NVL(g_rec_lines.array_balance_type_code(g_LineNumber),'N')='E' THEN
15380
15381 IF ((NVL(l_rec_lines.array_actual_upg_option(p_line_num), 'N') = 'Y') OR
15382 (NVL(l_rec_lines.array_enc_upg_option(p_line_num), 'N') = 'Y')) THEN
15383
15384 --temp fix for Period End Accrual Encumbrance for Upgraded Entries.
15385 g_rec_lines.array_encumbrance_type_id(g_LineNumber) := nvl(l_rec_lines.array_upg_cr_enc_type_id(p_line_num),
15386 l_rec_lines.array_upg_dr_enc_type_id(p_line_num));
15387 IF (C_LEVEL_EVENT >= g_log_level) THEN
15388 trace
15389 (p_msg => 'Period End Accrual Encumbrance for Upgraded Entries'
15390 ,p_level => C_LEVEL_EVENT
15391 ,p_module => l_log_module);
15392 END IF;
15393 ELSE
15394 -- bug9325101
15395 g_rec_lines.array_encumbrance_type_id(g_LineNumber) := l_rec_lines.array_encumbrance_type_id(p_line_num);
15396
15397 IF (C_LEVEL_EVENT >= g_log_level) THEN
15398 trace
15399 (p_msg => 'Period End Accrual Encumbrance for Non-Upgraded Entries'
15400 ,p_level => C_LEVEL_EVENT
15401 ,p_module => l_log_module);
15402 END IF;
15403
15404 END IF;
15405
15406 END IF;
15407 --
15408 -- Validate line accounting attributes
15409 --
15410 IF g_rec_lines.array_mpa_option(g_LineNumber) NOT IN ('Y','N') THEN
15411 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
15412 xla_accounting_err_pkg.build_message
15413 (p_appli_s_name => 'XLA'
15414 ,p_msg_name => 'XLA_MA_INVALID_OPTION' -- 4262811a
15415 ,p_token_1 => 'LINE_NUMBER'
15416 ,p_value_1 => g_ExtractLine
15417 ,p_token_2 => 'ACCOUNTING_SOURCE_NAME'
15418 ,p_value_2 => XLA_AE_SOURCES_PKG.GetAccountingSourceName('MULTIPERIOD_OPTION')
15419 --(l_rec_lines.array_acct_attr_code(p_line_num))
15420 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15421 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15422 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
15423 END IF;
15424
15425 IF g_rec_lines.array_sys_distribution_type(g_LineNumber) IS NULL THEN
15426 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
15427 xla_accounting_err_pkg.build_message
15428 (p_appli_s_name => 'XLA'
15429 ,p_msg_name => 'XLA_AP_NO_DIST_LINK_TYPE'
15430 ,p_token_1 => 'LINE_NUMBER'
15431 ,p_value_1 => g_ExtractLine
15432 ,p_token_2 => 'ACCOUNTING_SOURCE_NAME'
15433 ,p_value_2 => XLA_AE_SOURCES_PKG.GetAccountingSourceName('DISTRIBUTION_TYPE')
15434 --(p_rec_acct_attrs.array_acct_attr_code(i))
15435 ,p_token_3 => 'SOURCE_NAME'
15436 ,p_value_3 => NULL
15437 ,p_token_4 => 'LINE_TYPE_NAME'
15438 ,p_value_4 => XLA_AE_SOURCES_PKG.GetComponentName (
15439 g_accounting_line.component_type
15440 , g_accounting_line.accounting_line_code
15441 , g_accounting_line.accounting_line_type_code
15442 , g_accounting_line.accounting_line_appl_id
15443 , g_accounting_line.amb_context_code
15444 , g_accounting_line.entity_code
15445 , g_accounting_line.event_class_code
15446 )
15447 ,p_token_5 => 'OWNER'
15448 ,p_value_5 => xla_lookups_pkg.get_meaning(
15449 'XLA_OWNER_TYPE'
15450 , g_rec_lines.array_accounting_line_type(g_LineNumber)
15451 )
15452 ,p_token_6 => 'PRODUCT_NAME'
15453 ,p_value_6 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15454 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15455 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15456 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
15457 END IF;
15458
15459 ----------------------------------------------
15460 -- 4623638 This change is on top of 120.85
15461 ----------------------------------------------
15462 IF nvl(g_rec_lines.array_calculate_acctd_flag(g_LineNumber), 'N')= 'N' OR
15463 (nvl(g_rec_lines.array_calculate_g_l_flag(g_LineNumber), 'N')='N' AND
15464 g_rec_lines.array_natural_side_code(g_LineNumber) = 'G') THEN
15465
15466 IF g_rec_lines.array_ledger_amount(g_LineNumber) IS NULL THEN
15467 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_INVALID;
15468 xla_accounting_err_pkg.build_message
15469 (p_appli_s_name => 'XLA'
15470 ,p_msg_name => 'XLA_AP_NO_LEDGER_AMOUNT'
15471 ,p_token_1 => 'LINE_NUMBER'
15472 ,p_value_1 => g_ExtractLine
15473 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15474 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15475 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
15476 END IF;
15477
15478 END IF;
15479
15480 l_rec_lines := NULL ;
15481
15482 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15483 trace
15484 (p_msg => 'END CopyLineInfo(OverLoaded)'
15485 ,p_level => C_LEVEL_PROCEDURE
15486 ,p_module => l_log_module);
15487 END IF;
15488
15489 EXCEPTION
15490 --
15491 WHEN xla_exceptions_pkg.application_exception THEN
15492 RAISE;
15493 WHEN OTHERS THEN
15494 xla_exceptions_pkg.raise_message
15495 (p_location => 'xla_ae_lines_pkg.CopyLineInfo(OverLoaded)');
15496 --
15497 END CopyLineInfo;
15498
15499
15500 /*======================================================================+
15501 | |
15502 | Public Procedure- Business Flow Upgrade Entries |
15503 | |
15504 | |
15505 +======================================================================*/
15506
15507 PROCEDURE BflowUpgEntry
15508 (p_business_method_code IN VARCHAR2
15509 ,p_business_class_code IN VARCHAR2
15510 ,p_balance_type IN VARCHAR2) IS
15511 l_ledger_ccy VARCHAR2(30);
15512 l_ccid NUMBER;
15513 l_enc_type_id NUMBER;
15514 l_entered_amt NUMBER;
15515 l_accounted_amt NUMBER;
15516 l_entered_curr VARCHAR2(30);
15517 l_xchange_rate NUMBER;
15518 l_xchange_type VARCHAR2(30);
15519 l_xchange_date DATE;
15520
15521 l_log_module VARCHAR2(240); -- Bug 4922099
15522
15523 BEGIN
15524 -- Bug 4922099
15525 IF g_log_enabled THEN
15526 l_log_module := C_DEFAULT_MODULE || '.BflowUpgEntry';
15527 END IF;
15528
15529 --8238617 Added FND Debug statements
15530 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15531 trace
15532 (p_msg => 'BEGIN of BflowUpgEntry'
15533 ,p_level => C_LEVEL_PROCEDURE
15534 ,p_module => l_log_module);
15535 END IF;
15536
15537
15538 g_rec_lines.array_business_method_code(g_LineNumber) := p_business_method_code;
15539
15540 -- Bug 4922099
15541 IF ((g_rec_lines.array_actual_upg_option(g_LineNumber) = 'O' OR g_rec_lines.array_enc_upg_option(g_LineNumber) = 'O')
15542 AND g_rec_lines.array_acc_reversal_option(g_LineNumber) IN ('Y', 'B')) THEN
15543 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
15544 xla_accounting_err_pkg.build_message
15545 (p_appli_s_name => 'XLA'
15546 ,p_msg_name => 'XLA_UPG_OVERRIDE_NA_REVERSAL'
15547 ,p_token_1 => 'LINE_NUMBER'
15548 ,p_value_1 => g_ExtractLine
15549 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15550 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15551 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id);
15552
15553 IF (C_LEVEL_ERROR >= g_log_level) THEN
15554 trace
15555 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_NA_REVERSAL'
15556 ,p_level => C_LEVEL_ERROR
15557 ,p_module => l_log_module);
15558 END IF;
15559 END IF;
15560
15561
15562 ------------------------------------------------
15563 -- Validate the applied-to accounting attributes
15564 ------------------------------------------------
15565 ValidateBFlowLinks;
15566
15567 -------------------------------------------------
15568 -- Reset values for certain fields in g_rec_lines
15569 -------------------------------------------------
15570
15571 IF p_balance_type = 'A' THEN
15572 IF g_rec_lines.array_natural_side_code(g_LineNumber) = C_CREDIT THEN
15573 -- Bug 4922099
15574 IF (NVL(g_rec_lines.array_actual_upg_option(g_LineNumber), 'N') = 'Y') THEN
15575 l_ccid := g_rec_lines.array_actual_upg_cr_ccid(g_LineNumber);
15576 END IF;
15577 l_enc_type_id := NULL;
15578 l_entered_amt := g_rec_lines.array_actual_upg_cr_ent_amt(g_LineNumber);
15579 l_accounted_amt := g_rec_lines.array_actual_upg_cr_ledger_amt(g_LineNumber);
15580 l_entered_curr := g_rec_lines.array_actual_upg_cr_ent_curr(g_LineNumber);
15581 l_xchange_rate := g_rec_lines.array_actual_upg_cr_xrate(g_LineNumber);
15582 l_xchange_type := g_rec_lines.array_actual_upg_cr_xrate_type(g_LineNumber);
15583 l_xchange_date := g_rec_lines.array_actual_upg_cr_xdate(g_LineNumber);
15584 ELSE
15585 -- Bug 4922099
15586 IF (NVL(g_rec_lines.array_actual_upg_option(g_LineNumber), 'N') = 'Y') THEN
15587 l_ccid := g_rec_lines.array_actual_upg_dr_ccid(g_LineNumber);
15588 END IF;
15589 l_enc_type_id := NULL;
15590 l_entered_amt := g_rec_lines.array_actual_upg_dr_ent_amt(g_LineNumber);
15591 l_accounted_amt := g_rec_lines.array_actual_upg_dr_ledger_amt(g_LineNumber);
15592 l_entered_curr := g_rec_lines.array_actual_upg_dr_ent_curr(g_LineNumber);
15593 l_xchange_rate := g_rec_lines.array_actual_upg_dr_xrate(g_LineNumber);
15594 l_xchange_type := g_rec_lines.array_actual_upg_dr_xrate_type(g_LineNumber);
15595 l_xchange_date := g_rec_lines.array_actual_upg_dr_xdate(g_LineNumber);
15596 END IF;
15597 ELSIF p_balance_type = 'E' THEN
15598 IF g_rec_lines.array_natural_side_code(g_LineNumber) = C_CREDIT THEN
15599 -- Bug 4922099
15600 IF (NVL(g_rec_lines.array_enc_upg_option(g_LineNumber), 'N') = 'Y') THEN
15601 l_ccid := g_rec_lines.array_enc_upg_cr_ccid(g_LineNumber);
15602 END IF;
15603 l_enc_type_id := g_rec_lines.array_upg_cr_enc_type_id(g_LineNumber);
15604 l_entered_amt := g_rec_lines.array_enc_upg_cr_ent_amt(g_LineNumber);
15605 l_accounted_amt := g_rec_lines.array_enc_upg_cr_ledger_amt(g_LineNumber);
15606 l_entered_curr := g_rec_lines.array_enc_upg_cr_ent_curr(g_LineNumber);
15607 ELSE
15608 -- Bug 4922099
15609 IF (NVL(g_rec_lines.array_enc_upg_option(g_LineNumber), 'N') = 'Y') THEN
15610 l_ccid := g_rec_lines.array_enc_upg_dr_ccid(g_LineNumber);
15611 END IF;
15612 l_enc_type_id := g_rec_lines.array_upg_dr_enc_type_id(g_LineNumber);
15613 l_entered_amt := g_rec_lines.array_enc_upg_dr_ent_amt(g_LineNumber);
15614 l_accounted_amt := g_rec_lines.array_enc_upg_dr_ledger_amt(g_LineNumber);
15615 l_entered_curr := g_rec_lines.array_enc_upg_dr_ent_curr(g_LineNumber);
15616 END IF;
15617
15618 g_override_acctd_amt_flag := 'Y';
15619 END IF;
15620
15621 g_rec_lines.array_encumbrance_type_id(g_LineNumber) := l_enc_type_id;
15622 g_rec_lines.array_entered_amount(g_LineNumber) := l_entered_amt;
15623 g_rec_lines.array_ledger_amount(g_LineNumber) := l_accounted_amt;
15624 g_rec_lines.array_currency_code(g_LineNumber) := l_entered_curr;
15625 g_rec_lines.array_curr_conversion_date(g_LineNumber):= l_xchange_date;
15626 g_rec_lines.array_curr_conversion_rate(g_LineNumber):= l_xchange_rate;
15627 g_rec_lines.array_curr_conversion_type(g_LineNumber):= l_xchange_type;
15628 -- 5845547
15629 g_rec_lines.array_party_type_code(g_LineNumber) := g_rec_lines.array_upg_party_type_code(g_LineNumber);
15630 g_rec_lines.array_party_id(g_LineNumber) := g_rec_lines.array_upg_party_id(g_LineNumber);
15631 g_rec_lines.array_party_site_id(g_LineNumber) := g_rec_lines.array_upg_party_site_id(g_LineNumber);
15632
15633 --8238617 Added debug statements
15634 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
15635 trace
15636 (p_msg => 'p_balance_type = '||p_balance_type
15637 ,p_level => C_LEVEL_STATEMENT
15638 ,p_module => l_log_module);
15639
15640 trace
15641 (p_msg => 'Natural Side = '||g_rec_lines.array_natural_side_code(g_LineNumber)
15642 ,p_level => C_LEVEL_STATEMENT
15643 ,p_module => l_log_module);
15644
15645 trace
15646 (p_msg => 'ccid = '||l_ccid
15647 ,p_level => C_LEVEL_STATEMENT
15648 ,p_module => l_log_module);
15649
15650 trace
15651 (p_msg => 'Encumbrance_type_id = '||g_rec_lines.array_encumbrance_type_id(g_LineNumber)
15652 ,p_level => C_LEVEL_STATEMENT
15653 ,p_module => l_log_module);
15654
15655 trace
15656 (p_msg => 'Entered Amount = '||g_rec_lines.array_entered_amount(g_LineNumber)
15657 ,p_level => C_LEVEL_STATEMENT
15658 ,p_module => l_log_module);
15659
15660 trace
15661 (p_msg => 'Ledger Amount = '|| g_rec_lines.array_ledger_amount(g_LineNumber)
15662 ,p_level => C_LEVEL_STATEMENT
15663 ,p_module => l_log_module);
15664
15665 trace
15666 (p_msg => 'Currency Code = '|| g_rec_lines.array_currency_code(g_LineNumber)
15667 ,p_level => C_LEVEL_STATEMENT
15668 ,p_module => l_log_module);
15669
15670 trace
15671 (p_msg => 'curr_conversion_date = '|| g_rec_lines.array_curr_conversion_date(g_LineNumber)
15672 ,p_level => C_LEVEL_STATEMENT
15673 ,p_module => l_log_module);
15674
15675 trace
15676 (p_msg => 'curr_conversion_rate = '|| g_rec_lines.array_curr_conversion_rate(g_LineNumber)
15677 ,p_level => C_LEVEL_STATEMENT
15678 ,p_module => l_log_module);
15679
15680 trace
15681 (p_msg => 'curr_conversion_type = '|| g_rec_lines.array_curr_conversion_type(g_LineNumber)
15682 ,p_level => C_LEVEL_STATEMENT
15683 ,p_module => l_log_module);
15684
15685 trace
15686 (p_msg => 'party_type_code = '|| g_rec_lines.array_party_type_code(g_LineNumber)
15687 ,p_level => C_LEVEL_STATEMENT
15688 ,p_module => l_log_module);
15689
15690 trace
15691 (p_msg => 'party_id = '||g_rec_lines.array_party_id(g_LineNumber)
15692 ,p_level => C_LEVEL_STATEMENT
15693 ,p_module => l_log_module);
15694
15695 trace
15696 (p_msg => 'party_site_id = '||g_rec_lines.array_party_site_id(g_LineNumber)
15697 ,p_level => C_LEVEL_STATEMENT
15698 ,p_module => l_log_module);
15699 END IF; --8238617 Added debug statements.
15700
15701
15702 -- Bug 4922099
15703 IF ((NVL(g_rec_lines.array_actual_upg_option(g_LineNumber), 'N') = 'Y') OR
15704 (NVL(g_rec_lines.array_enc_upg_option(g_LineNumber), 'N') = 'Y')) THEN
15705 xla_ae_lines_pkg.set_ccid(
15706 p_code_combination_id => l_ccid
15707 , p_value_type_code => 'S' --l_adr_value_type_code
15708 , p_transaction_coa_id => NULL --l_adr_transaction_coa_id
15709 , p_accounting_coa_id => NULL --l_adr_accounting_coa_id
15710 , p_adr_code => NULL --'SS_TEST'
15711 , p_adr_type_code => NULL --'C'
15712 , p_component_type => g_accounting_line.component_type --l_component_type
15713 , p_component_code => g_accounting_line.accounting_line_code --l_component_code
15714 , p_component_type_code => g_accounting_line.accounting_line_type_code --l_component_type_code
15715 , p_component_appl_id => g_accounting_line.accounting_line_appl_id --l_component_appl_id
15716 , p_amb_context_code => g_accounting_line.amb_context_code --l_amb_context_code
15717 , p_side => 'NA'
15718 );
15719 END IF;
15720
15721 --8238617 Added FND Debug statements
15722 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15723 trace
15724 (p_msg => 'End of BflowUpgEntry'
15725 ,p_level => C_LEVEL_PROCEDURE
15726 ,p_module => l_log_module);
15727 END IF;
15728
15729
15730 END BflowUpgEntry;
15731
15732 PROCEDURE CreateGainOrLossLine
15733 (p_event_id IN NUMBER
15734 ,p_application_id IN NUMBER
15735 ,p_amb_context_code IN VARCHAR2
15736 ,p_entity_code IN VARCHAR2
15737 ,p_event_class_code IN VARCHAR2
15738 ,p_event_type_code IN VARCHAR2
15739 ,p_gain_ccid IN NUMBER
15740 ,p_loss_ccid IN NUMBER
15741 /*
15742 ,p_rounding_class IN VARCHAR2
15743 ,p_doc_rounding_level IN VARCHAR2
15744 ,p_merge_duplicate_code IN VARCHAR2
15745 ,p_gl_transfer_mode_code IN VARCHAR2
15746 */
15747 ,p_distribution_id_char_1 IN VARCHAR2
15748 ,p_distribution_id_char_2 IN VARCHAR2
15749 ,p_distribution_id_char_3 IN VARCHAR2
15750 ,p_distribution_id_char_4 IN VARCHAR2
15751 ,p_distribution_id_char_5 IN VARCHAR2
15752 ,p_distribution_id_num_1 IN NUMBER
15753 ,p_distribution_id_num_2 IN NUMBER
15754 ,p_distribution_id_num_3 IN NUMBER
15755 ,p_distribution_id_num_4 IN NUMBER
15756 ,p_distribution_id_num_5 IN NUMBER
15757 ,p_distribution_type IN VARCHAR2
15758 ,p_gl_date IN DATE
15759 ,p_gain_loss_ref IN VARCHAR2
15760 ,p_balance_type_flag IN VARCHAR2
15761 ) IS
15762 l_ledger_ccy VARCHAR2(30);
15763 l_ccid NUMBER;
15764 l_enc_type_id NUMBER;
15765 l_entered_amt NUMBER;
15766 l_accounted_amt NUMBER;
15767 l_entered_curr VARCHAR2(30);
15768 l_ae_header_id NUMBER;
15769 l_Idx NUMBER;
15770
15771 l_log_module VARCHAR2(240);
15772 -- extract line num is in g_ExtractLine
15773 BEGIN
15774 IF g_log_enabled THEN
15775 l_log_module := C_DEFAULT_MODULE || '.CreateGainOrLossLine';
15776 END IF;
15777 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15778 trace
15779 (p_msg => 'BEGIN of CreateGainOrLossLine'
15780 ,p_level => C_LEVEL_PROCEDURE
15781 ,p_module => l_log_module);
15782 trace
15783 (p_msg => 'p_gain_ccid:'||to_char(p_gain_ccid)||' p_loss_ccid:'||to_char(p_loss_ccid)
15784 ,p_level => C_LEVEL_PROCEDURE
15785 ,p_module => l_log_module);
15786 END IF;
15787
15788 -- this need to be called before SetNewLine
15789 SetNewLine;
15790
15791 set_ae_header_id (p_ae_header_id => p_event_id ,
15792 p_header_num => 0);
15793
15794 -- this is a gain/loss line
15795 l_ae_header_id := SetAcctLineOption(
15796 p_natural_side_code => 'G'
15797 , p_gain_or_loss_flag => 'Y'
15798 , p_gl_transfer_mode_code => 'D' -- always use detail
15799 , p_acct_entry_type_code => 'A'
15800 , p_switch_side_flag => 'Y'
15801 , p_merge_duplicate_code => 'A' --p_merge_duplicate_code
15802 );
15803 SetAcctLineType
15804 (p_component_type => 'AUTO_GEN_GAIN_LOSS'
15805 ,p_event_type_code => p_event_type_code
15806 ,p_line_definition_owner_code => 'O'
15807 ,p_line_definition_code => 'AUTO_GEN_GAIN_LOSS'
15808 ,p_accounting_line_code => 'AUTO_GEN_GAIN_LOSS'
15809 ,p_accounting_line_type_code => 'S'
15810 ,p_accounting_line_appl_id => p_application_id
15811 ,p_amb_context_code => p_amb_context_code
15812 ,p_entity_code => p_entity_code
15813 ,p_event_class_code => p_event_class_code);
15814 SetAcctClass(
15815 p_accounting_class_code => 'DUMMY_EXCHANGE_GAIN_LOSS_DUMMY'
15816 -- p_accounting_class_code => 'EXCHANGE_GAIN_LOSS'
15817 , p_ae_header_id => l_ae_header_id
15818 );
15819
15820 g_rec_lines.array_calculate_acctd_flag(g_LineNumber) := 'Y';
15821 g_rec_lines.array_calculate_g_l_flag(g_LineNumber) := 'Y';
15822 g_rec_lines.array_balance_type_code(g_LineNumber) := p_balance_type_flag;
15823
15824 g_rec_lines.array_ledger_id(g_LineNumber) :=
15825 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15826
15827 g_rec_lines.array_gl_date(g_LineNumber) := p_gl_date;
15828
15829 g_rec_lines.array_distribution_id_char_1(g_LineNumber) := p_distribution_id_char_1;
15830 g_rec_lines.array_distribution_id_char_2(g_LineNumber) := p_distribution_id_char_2;
15831 g_rec_lines.array_distribution_id_char_3(g_LineNumber) := p_distribution_id_char_3;
15832 g_rec_lines.array_distribution_id_char_4(g_LineNumber) := p_distribution_id_char_4;
15833 g_rec_lines.array_distribution_id_char_5(g_LineNumber) := p_distribution_id_char_5;
15834 g_rec_lines.array_distribution_id_num_1(g_LineNumber) := p_distribution_id_num_1;
15835 g_rec_lines.array_distribution_id_num_2(g_LineNumber) := p_distribution_id_num_2;
15836 g_rec_lines.array_distribution_id_num_3(g_LineNumber) := p_distribution_id_num_3;
15837 g_rec_lines.array_distribution_id_num_4(g_LineNumber) := p_distribution_id_num_4;
15838 g_rec_lines.array_distribution_id_num_5(g_LineNumber) := p_distribution_id_num_5;
15839 g_rec_lines.array_sys_distribution_type(g_LineNumber) := p_distribution_type;
15840 g_rec_lines.array_sys_distribution_type(g_LineNumber) := p_distribution_type;
15841 g_rec_lines.array_gain_or_loss_ref(g_LineNumber) := p_gain_loss_ref;
15842 g_rec_lines.array_currency_code(g_LineNumber) :=
15843 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.currency_code;
15844
15845 IF(p_gain_ccid is null or p_gain_ccid = -1 ) THEN
15846 g_rec_lines.array_ccid(g_LineNumber) := -1;
15847 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
15848 ELSIF( XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.target_coa_id <>
15849 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.source_coa_id ) THEN
15850 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15851 trace
15852 (p_msg => 'credit map here, sl_coa_mapping_id is:'||XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.sl_coa_mapping_id
15853 ,p_level => C_LEVEL_PROCEDURE
15854 ,p_module => l_log_module);
15855 trace
15856 (p_msg => 'map here, ledger_id is:'||XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15857 ,p_level => C_LEVEL_PROCEDURE
15858 ,p_module => l_log_module);
15859 trace
15860 (p_msg => 'map here, array_ae_header_id is:'||g_rec_lines.array_ae_header_id(g_LineNumber)
15861 ,p_level => C_LEVEL_PROCEDURE
15862 ,p_module => l_log_module);
15863 trace
15864 (p_msg => 'map here, temp_line_num is:'||g_rec_lines.array_line_num(g_LineNumber)
15865 ,p_level => C_LEVEL_PROCEDURE
15866 ,p_module => l_log_module);
15867 trace
15868 (p_msg => 'map here, ccid is:'||p_gain_ccid
15869 ,p_level => C_LEVEL_PROCEDURE
15870 ,p_module => l_log_module);
15871 END IF;
15872 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
15873 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.sl_coa_mapping_id IS NULL THEN
15874 null;
15875 ELSE
15876 l_Idx := NVL(g_transaction_accounts.array_ae_header_id.COUNT,0) + 1;
15877 g_transaction_accounts.array_line_num(l_Idx) := l_Idx ;
15878 g_transaction_accounts.array_ae_header_id(l_Idx) := g_rec_lines.array_ae_header_id(g_LineNumber);
15879 g_transaction_accounts.array_temp_line_num(l_Idx) := g_rec_lines.array_line_num(g_LineNumber);
15880 g_transaction_accounts.array_code_combination_id (l_Idx) := p_gain_ccid;
15881 g_transaction_accounts.array_segment(l_Idx) := NULL;
15882 g_transaction_accounts.array_from_segment_code(l_Idx) := NULL;
15883 g_transaction_accounts.array_to_segment_code(l_Idx) := NULL;
15884 g_transaction_accounts.array_processing_status_code(l_Idx) := C_MAP_CCID;
15885 g_transaction_accounts.array_side_code(l_Idx) := 'CREDIT';
15886 END IF;
15887 ELSE
15888 g_rec_lines.array_ccid(g_LineNumber) := p_gain_ccid;
15889 g_rec_lines.array_ccid_flag(g_LineNumber) := C_CREATED;
15890 END IF;
15891
15892 IF(p_loss_ccid is null or p_loss_ccid = -1) THEN
15893 g_rec_lines.alt_array_ccid(g_LineNumber) := -1;
15894 g_rec_lines.alt_array_ccid_flag(g_LineNumber) := C_INVALID;
15895 ELSIF( XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.target_coa_id <>
15896 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.source_coa_id ) THEN
15897
15898 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15899 trace
15900 (p_msg => 'debit map here, sl_coa_mapping_id is:'||XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.sl_coa_mapping_id
15901 ,p_level => C_LEVEL_PROCEDURE
15902 ,p_module => l_log_module);
15903 trace
15904 (p_msg => 'map here, ledger_id is:'||XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15905 ,p_level => C_LEVEL_PROCEDURE
15906 ,p_module => l_log_module);
15907 trace
15908 (p_msg => 'map here, array_ae_header_id is:'||g_rec_lines.array_ae_header_id(g_LineNumber)
15909 ,p_level => C_LEVEL_PROCEDURE
15910 ,p_module => l_log_module);
15911 trace
15912 (p_msg => 'map here, temp_line_num is:'||g_rec_lines.array_line_num(g_LineNumber)
15913 ,p_level => C_LEVEL_PROCEDURE
15914 ,p_module => l_log_module);
15915 trace
15916 (p_msg => 'map here, ccid is:'||p_loss_ccid
15917 ,p_level => C_LEVEL_PROCEDURE
15918 ,p_module => l_log_module);
15919 END IF;
15920 g_rec_lines.array_ccid_flag(g_LineNumber) := C_INVALID;
15921 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.sl_coa_mapping_id IS NULL THEN
15922 null;
15923 ELSE
15924 l_Idx := NVL(g_transaction_accounts.array_ae_header_id.COUNT,0) + 1;
15925 g_transaction_accounts.array_line_num(l_Idx) := l_Idx ;
15926 g_transaction_accounts.array_ae_header_id(l_Idx) := g_rec_lines.array_ae_header_id(g_LineNumber);
15927 g_transaction_accounts.array_temp_line_num(l_Idx) := g_rec_lines.array_line_num(g_LineNumber);
15928 g_transaction_accounts.array_code_combination_id (l_Idx) := p_loss_ccid;
15929 g_transaction_accounts.array_segment(l_Idx) := NULL;
15930 g_transaction_accounts.array_from_segment_code(l_Idx) := NULL;
15931 g_transaction_accounts.array_to_segment_code(l_Idx) := NULL;
15932 g_transaction_accounts.array_processing_status_code(l_Idx) := C_MAP_CCID;
15933 g_transaction_accounts.array_side_code(l_Idx) := 'DEBIT';
15934 END IF;
15935 ELSE
15936 g_rec_lines.alt_array_ccid(g_LineNumber) := p_loss_ccid;
15937 g_rec_lines.alt_array_ccid_flag(g_LineNumber) := C_CREATED;
15938 END IF;
15939
15940 g_rec_lines.array_entered_cr(g_LineNumber) := 0;
15941
15942 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15943 trace
15944 (p_msg => 'END of CreateGainOrLossLine'
15945 ,p_level => C_LEVEL_PROCEDURE
15946 ,p_module => l_log_module);
15947 END IF;
15948 END CreateGainOrLossLine;
15949
15950
15951 PROCEDURE CreateGainOrLossLines
15952 (p_event_id IN NUMBER
15953 ,p_application_id IN NUMBER
15954 ,p_amb_context_code IN VARCHAR2
15955 ,p_entity_code IN VARCHAR2
15956 ,p_event_class_code IN VARCHAR2
15957 ,p_event_type_code IN VARCHAR2
15958 ,p_gain_ccid IN NUMBER
15959 ,p_loss_ccid IN NUMBER
15960 ,p_actual_flag IN VARCHAR2
15961 ,p_enc_flag IN VARCHAR2
15962 ,p_actual_g_l_ref IN VARCHAR2
15963 ,p_enc_g_l_ref IN VARCHAR2
15964 ) IS
15965 l_ledger_ccy VARCHAR2(30);
15966 l_ccid NUMBER;
15967 l_enc_type_id NUMBER;
15968 l_entered_amt NUMBER;
15969 l_accounted_amt NUMBER;
15970 l_entered_curr VARCHAR2(30);
15971 l_ae_header_id NUMBER;
15972 l_rounding_class VARCHAR2(30);
15973 l_doc_rounding_level VARCHAR2(30);
15974 l_gain_or_loss_ref VARCHAR2(30);
15975 l_merge_duplicate_code VARCHAR2(30);
15976 l_gl_transfer_mode_code VARCHAR2(30);
15977
15978 l_distribution_id_char_1 VARCHAR2(80);
15979 l_distribution_id_char_2 VARCHAR2(80);
15980 l_distribution_id_char_3 VARCHAR2(80);
15981 l_distribution_id_char_4 VARCHAR2(80);
15982 l_distribution_id_char_5 VARCHAR2(80);
15983 l_distribution_id_num_1 NUMBER;
15984 l_distribution_id_num_2 NUMBER;
15985 l_distribution_id_num_3 NUMBER;
15986 l_distribution_id_num_4 NUMBER;
15987 l_distribution_id_num_5 NUMBER;
15988 l_distribution_type VARCHAR2(30);
15989 l_gl_date DATE;
15990
15991 l_log_module VARCHAR2(240);
15992 -- extract line num is in g_ExtractLine
15993 BEGIN
15994 IF g_log_enabled THEN
15995 l_log_module := C_DEFAULT_MODULE || '.CreateGainOrLossLines';
15996 END IF;
15997 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15998 trace
15999 (p_msg => 'BEGIN of CreateGainOrLossLines'
16000 ,p_level => C_LEVEL_PROCEDURE
16001 ,p_module => l_log_module);
16002 END IF;
16003
16004 IF(p_actual_flag = 'A') THEN
16005
16006 -- this need to be called before SetNewLine
16007 l_rounding_class := g_rec_lines.array_rounding_class(g_LineNumber);
16008 l_doc_rounding_level:= g_rec_lines.array_doc_rounding_level(g_LineNumber);
16009 l_gain_or_loss_ref:= g_rec_lines.array_gain_or_loss_ref(g_LineNumber);
16010 l_merge_duplicate_code := g_rec_lines.array_merge_duplicate_code(g_LineNumber);
16011 l_gl_transfer_mode_code := g_rec_lines.array_gl_transfer_mode(g_LineNumber);
16012 l_distribution_id_char_1 := g_rec_lines.array_distribution_id_char_1(g_LineNumber);
16013 l_distribution_id_char_2 := g_rec_lines.array_distribution_id_char_2(g_LineNumber);
16014 l_distribution_id_char_3 := g_rec_lines.array_distribution_id_char_3(g_LineNumber);
16015 l_distribution_id_char_4 := g_rec_lines.array_distribution_id_char_4(g_LineNumber);
16016 l_distribution_id_char_5 := g_rec_lines.array_distribution_id_char_5(g_LineNumber);
16017 l_distribution_id_num_1 := g_rec_lines.array_distribution_id_num_1(g_LineNumber);
16018 l_distribution_id_num_2 := g_rec_lines.array_distribution_id_num_2(g_LineNumber);
16019 l_distribution_id_num_3 := g_rec_lines.array_distribution_id_num_3(g_LineNumber);
16020 l_distribution_id_num_4 := g_rec_lines.array_distribution_id_num_4(g_LineNumber);
16021 l_distribution_id_num_5 := g_rec_lines.array_distribution_id_num_5(g_LineNumber);
16022 l_distribution_type := g_rec_lines.array_sys_distribution_type(g_LineNumber);
16023 l_gl_date := g_rec_lines.array_gl_date(g_LineNumber);
16024
16025 -- need create a gain/loss for actual lines
16026 CreateGainOrLossLine
16027 (p_event_id => p_event_id
16028 ,p_application_id => p_application_id
16029 ,p_amb_context_code => p_amb_context_code
16030 ,p_entity_code => p_entity_code
16031 ,p_event_class_code => p_event_class_code
16032 ,p_event_type_code => p_event_type_code
16033 ,p_gain_ccid => p_gain_ccid
16034 ,p_loss_ccid => p_loss_ccid
16035 ,p_distribution_id_char_1 => l_distribution_id_char_1
16036 ,p_distribution_id_char_2 => l_distribution_id_char_2
16037 ,p_distribution_id_char_3 => l_distribution_id_char_3
16038 ,p_distribution_id_char_4 => l_distribution_id_char_4
16039 ,p_distribution_id_char_5 => l_distribution_id_char_5
16040 ,p_distribution_id_num_1 => l_distribution_id_num_1
16041 ,p_distribution_id_num_2 => l_distribution_id_num_2
16042 ,p_distribution_id_num_3 => l_distribution_id_num_3
16043 ,p_distribution_id_num_4 => l_distribution_id_num_4
16044 ,p_distribution_id_num_5 => l_distribution_id_num_5
16045 ,p_distribution_type => l_distribution_type
16046 ,p_gl_date => l_gl_date
16047 ,p_gain_loss_ref => p_actual_g_l_ref
16048 ,p_balance_type_flag => 'A');
16049 END IF;
16050 /*
16051
16052 IF(p_enc_flag = 'E') THEN
16053 -- need create a gain/loss for actual lines
16054 CreateGainOrLossLine
16055 (p_event_id => p_event_id
16056 ,p_application_id => p_application_id
16057 ,p_amb_context_code => p_amb_context_code
16058 ,p_entity_code => p_entity_code
16059 ,p_event_class_code => p_event_class_code
16060 ,p_event_type_code => p_event_type_code
16061 ,p_gain_ccid => p_gain_ccid
16062 ,p_loss_ccid => p_loss_ccid
16063 ,p_distribution_id_char_1 => l_distribution_id_char_1
16064 ,p_distribution_id_char_2 => l_distribution_id_char_2
16065 ,p_distribution_id_char_3 => l_distribution_id_char_3
16066 ,p_distribution_id_char_4 => l_distribution_id_char_4
16067 ,p_distribution_id_char_5 => l_distribution_id_char_5
16068 ,p_distribution_id_num_1 => l_distribution_id_num_1
16069 ,p_distribution_id_num_2 => l_distribution_id_num_2
16070 ,p_distribution_id_num_3 => l_distribution_id_num_3
16071 ,p_distribution_id_num_4 => l_distribution_id_num_4
16072 ,p_distribution_id_num_5 => l_distribution_id_num_5
16073 ,p_distribution_type => l_distribution_type
16074 ,p_gl_date => l_gl_date
16075 ,p_gain_loss_ref => p_enc_g_l_ref
16076 ,p_balance_type_flag => 'E');
16077 END IF;
16078 */
16079
16080 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16081 trace
16082 (p_msg => 'END of CreateGainOrLossLines'
16083 ,p_level => C_LEVEL_PROCEDURE
16084 ,p_module => l_log_module);
16085 END IF;
16086 END CreateGainOrLossLines;
16087
16088 /*======================================================================+
16089 | |
16090 | Public Procedure- InsertMPARecogLineInfo 7109881 |
16091 | |
16092 | |
16093 +======================================================================*/
16094 PROCEDURE InsertMPARecogLineInfo(
16095 p_line_num NUMBER
16096 ) IS
16097
16098 l_log_module VARCHAR2(240);
16099
16100 BEGIN
16101 IF g_log_enabled THEN
16102 l_log_module := C_DEFAULT_MODULE||'.InsertMPARecogLineInfo';
16103 END IF;
16104
16105 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16106 trace
16107 (p_msg => 'BEGIN of InsertMPARecogLineInfo '
16108 ,p_level => C_LEVEL_PROCEDURE
16109 ,p_module => l_log_module);
16110 trace
16111 (p_msg => 'Recognition Line(p_line_num): ' || p_line_num
16112 ,p_level => C_LEVEL_PROCEDURE
16113 ,p_module => l_log_module);
16114 END IF;
16115 -- Copy all the data from G_REC_LINES to G_MPA_RECOG_LINES for a given Recognition Line
16116 g_mpa_recog_lines.array_ae_header_id(p_line_num) := g_rec_lines.array_ae_header_id(p_line_num) ;
16117 g_mpa_recog_lines.array_line_num(p_line_num) := g_rec_lines.array_line_num(p_line_num) ;
16118 g_mpa_recog_lines.array_extract_line_num(p_line_num) := g_rec_lines.array_extract_line_num(p_line_num) ;
16119 g_mpa_recog_lines.array_accounting_class(p_line_num) := g_rec_lines.array_accounting_class(p_line_num) ;
16120 g_mpa_recog_lines.array_rounding_class(p_line_num) := g_rec_lines.array_rounding_class(p_line_num) ;
16121 g_mpa_recog_lines.array_doc_rounding_level(p_line_num) := g_rec_lines.array_doc_rounding_level(p_line_num) ;
16122 g_mpa_recog_lines.array_gain_or_loss_ref(p_line_num) := g_rec_lines.array_gain_or_loss_ref(p_line_num) ;
16123 g_mpa_recog_lines.array_event_class_code(p_line_num) := g_rec_lines.array_event_class_code(p_line_num) ;
16124 g_mpa_recog_lines.array_event_type_code(p_line_num) := g_rec_lines.array_event_type_code(p_line_num) ;
16125 g_mpa_recog_lines.array_line_defn_owner_code(p_line_num) := g_rec_lines.array_line_defn_owner_code(p_line_num) ;
16126 g_mpa_recog_lines.array_line_defn_code(p_line_num) := g_rec_lines.array_line_defn_code(p_line_num) ;
16127 g_mpa_recog_lines.array_accounting_line_code(p_line_num) := g_rec_lines.array_accounting_line_code(p_line_num) ;
16128 g_mpa_recog_lines.array_accounting_line_type(p_line_num) := g_rec_lines.array_accounting_line_type(p_line_num) ;
16129 g_mpa_recog_lines.array_calculate_acctd_flag(p_line_num) := g_rec_lines.array_calculate_acctd_flag(p_line_num) ;
16130 g_mpa_recog_lines.array_calculate_g_l_flag(p_line_num) := g_rec_lines.array_calculate_g_l_flag(p_line_num) ;
16131 g_mpa_recog_lines.array_gain_or_loss_flag(p_line_num) := g_rec_lines.array_gain_or_loss_flag(p_line_num) ;
16132 --
16133 -- line flexfield accounts
16134 --
16135 g_mpa_recog_lines.array_accounting_coa_id(p_line_num) := g_rec_lines.array_accounting_coa_id(p_line_num) ;
16136 g_mpa_recog_lines.array_transaction_coa_id(p_line_num) := g_rec_lines.array_transaction_coa_id(p_line_num) ;
16137 g_mpa_recog_lines.array_sl_coa_mapping_name(p_line_num) := g_rec_lines.array_sl_coa_mapping_name(p_line_num) ;
16138 g_mpa_recog_lines.array_ccid_flag(p_line_num) := g_rec_lines.array_ccid_flag(p_line_num) ;
16139 g_mpa_recog_lines.array_ccid(p_line_num) := g_rec_lines.array_ccid(p_line_num) ;
16140 -- --
16141 g_mpa_recog_lines.array_segment1(p_line_num) := g_rec_lines.array_segment1(p_line_num) ;
16142 g_mpa_recog_lines.array_segment2(p_line_num) := g_rec_lines.array_segment2(p_line_num) ;
16143 g_mpa_recog_lines.array_segment3(p_line_num) := g_rec_lines.array_segment3(p_line_num) ;
16144 g_mpa_recog_lines.array_segment4(p_line_num) := g_rec_lines.array_segment4(p_line_num) ;
16145 g_mpa_recog_lines.array_segment5(p_line_num) := g_rec_lines.array_segment5(p_line_num) ;
16146 g_mpa_recog_lines.array_segment6(p_line_num) := g_rec_lines.array_segment6(p_line_num) ;
16147 g_mpa_recog_lines.array_segment7(p_line_num) := g_rec_lines.array_segment7(p_line_num) ;
16148 g_mpa_recog_lines.array_segment8(p_line_num) := g_rec_lines.array_segment8(p_line_num) ;
16149 g_mpa_recog_lines.array_segment9(p_line_num) := g_rec_lines.array_segment9(p_line_num) ;
16150 g_mpa_recog_lines.array_segment10(p_line_num) := g_rec_lines.array_segment10(p_line_num) ;
16151 g_mpa_recog_lines.array_segment11(p_line_num) := g_rec_lines.array_segment11(p_line_num) ;
16152 g_mpa_recog_lines.array_segment12(p_line_num) := g_rec_lines.array_segment12(p_line_num) ;
16153 g_mpa_recog_lines.array_segment13(p_line_num) := g_rec_lines.array_segment13(p_line_num) ;
16154 g_mpa_recog_lines.array_segment14(p_line_num) := g_rec_lines.array_segment14(p_line_num) ;
16155 g_mpa_recog_lines.array_segment15(p_line_num) := g_rec_lines.array_segment15(p_line_num) ;
16156 g_mpa_recog_lines.array_segment16(p_line_num) := g_rec_lines.array_segment16(p_line_num) ;
16157 g_mpa_recog_lines.array_segment17(p_line_num) := g_rec_lines.array_segment17(p_line_num) ;
16158 g_mpa_recog_lines.array_segment18(p_line_num) := g_rec_lines.array_segment18(p_line_num) ;
16159 g_mpa_recog_lines.array_segment19(p_line_num) := g_rec_lines.array_segment19(p_line_num) ;
16160 g_mpa_recog_lines.array_segment20(p_line_num) := g_rec_lines.array_segment20(p_line_num) ;
16161 g_mpa_recog_lines.array_segment21(p_line_num) := g_rec_lines.array_segment21(p_line_num) ;
16162 g_mpa_recog_lines.array_segment22(p_line_num) := g_rec_lines.array_segment22(p_line_num) ;
16163 g_mpa_recog_lines.array_segment23(p_line_num) := g_rec_lines.array_segment23(p_line_num) ;
16164 g_mpa_recog_lines.array_segment24(p_line_num) := g_rec_lines.array_segment24(p_line_num) ;
16165 g_mpa_recog_lines.array_segment25(p_line_num) := g_rec_lines.array_segment25(p_line_num) ;
16166 g_mpa_recog_lines.array_segment26(p_line_num) := g_rec_lines.array_segment26(p_line_num) ;
16167 g_mpa_recog_lines.array_segment27(p_line_num) := g_rec_lines.array_segment27(p_line_num) ;
16168 g_mpa_recog_lines.array_segment28(p_line_num) := g_rec_lines.array_segment28(p_line_num) ;
16169 g_mpa_recog_lines.array_segment29(p_line_num) := g_rec_lines.array_segment29(p_line_num) ;
16170 g_mpa_recog_lines.array_segment30(p_line_num) := g_rec_lines.array_segment30(p_line_num) ;
16171 g_mpa_recog_lines.alt_array_ccid_flag(p_line_num) := g_rec_lines.alt_array_ccid_flag(p_line_num) ;
16172 g_mpa_recog_lines.alt_array_ccid(p_line_num) := g_rec_lines.alt_array_ccid(p_line_num) ;
16173 g_mpa_recog_lines.alt_array_segment1(p_line_num) := g_rec_lines.alt_array_segment1(p_line_num) ;
16174 g_mpa_recog_lines.alt_array_segment2(p_line_num) := g_rec_lines.alt_array_segment2(p_line_num) ;
16175 g_mpa_recog_lines.alt_array_segment3(p_line_num) := g_rec_lines.alt_array_segment3(p_line_num) ;
16176 g_mpa_recog_lines.alt_array_segment4(p_line_num) := g_rec_lines.alt_array_segment4(p_line_num) ;
16177 g_mpa_recog_lines.alt_array_segment5(p_line_num) := g_rec_lines.alt_array_segment5(p_line_num) ;
16178 g_mpa_recog_lines.alt_array_segment6(p_line_num) := g_rec_lines.alt_array_segment6(p_line_num) ;
16179 g_mpa_recog_lines.alt_array_segment7(p_line_num) := g_rec_lines.alt_array_segment7(p_line_num) ;
16180 g_mpa_recog_lines.alt_array_segment8(p_line_num) := g_rec_lines.alt_array_segment8(p_line_num) ;
16181 g_mpa_recog_lines.alt_array_segment9(p_line_num) := g_rec_lines.alt_array_segment9(p_line_num) ;
16182 g_mpa_recog_lines.alt_array_segment10(p_line_num) := g_rec_lines.alt_array_segment10(p_line_num) ;
16183 g_mpa_recog_lines.alt_array_segment11(p_line_num) := g_rec_lines.alt_array_segment11(p_line_num) ;
16184 g_mpa_recog_lines.alt_array_segment12(p_line_num) := g_rec_lines.alt_array_segment12(p_line_num) ;
16185 g_mpa_recog_lines.alt_array_segment13(p_line_num) := g_rec_lines.alt_array_segment13(p_line_num) ;
16186 g_mpa_recog_lines.alt_array_segment14(p_line_num) := g_rec_lines.alt_array_segment14(p_line_num) ;
16187 g_mpa_recog_lines.alt_array_segment15(p_line_num) := g_rec_lines.alt_array_segment15(p_line_num) ;
16188 g_mpa_recog_lines.alt_array_segment16(p_line_num) := g_rec_lines.alt_array_segment16(p_line_num) ;
16189 g_mpa_recog_lines.alt_array_segment17(p_line_num) := g_rec_lines.alt_array_segment17(p_line_num) ;
16190 g_mpa_recog_lines.alt_array_segment18(p_line_num) := g_rec_lines.alt_array_segment18(p_line_num) ;
16191 g_mpa_recog_lines.alt_array_segment19(p_line_num) := g_rec_lines.alt_array_segment19(p_line_num) ;
16192 g_mpa_recog_lines.alt_array_segment20(p_line_num) := g_rec_lines.alt_array_segment20(p_line_num) ;
16193 g_mpa_recog_lines.alt_array_segment21(p_line_num) := g_rec_lines.alt_array_segment21(p_line_num) ;
16194 g_mpa_recog_lines.alt_array_segment22(p_line_num) := g_rec_lines.alt_array_segment22(p_line_num) ;
16195 g_mpa_recog_lines.alt_array_segment23(p_line_num) := g_rec_lines.alt_array_segment23(p_line_num) ;
16196 g_mpa_recog_lines.alt_array_segment24(p_line_num) := g_rec_lines.alt_array_segment24(p_line_num) ;
16197 g_mpa_recog_lines.alt_array_segment25(p_line_num) := g_rec_lines.alt_array_segment25(p_line_num) ;
16198 g_mpa_recog_lines.alt_array_segment26(p_line_num) := g_rec_lines.alt_array_segment26(p_line_num) ;
16199 g_mpa_recog_lines.alt_array_segment27(p_line_num) := g_rec_lines.alt_array_segment27(p_line_num) ;
16200 g_mpa_recog_lines.alt_array_segment28(p_line_num) := g_rec_lines.alt_array_segment28(p_line_num) ;
16201 g_mpa_recog_lines.alt_array_segment29(p_line_num) := g_rec_lines.alt_array_segment29(p_line_num) ;
16202 g_mpa_recog_lines.alt_array_segment30(p_line_num) := g_rec_lines.alt_array_segment30(p_line_num) ;
16203 --
16204 -- Option lines
16205 --
16206 g_mpa_recog_lines.array_gl_transfer_mode(p_line_num) := g_rec_lines.array_gl_transfer_mode(p_line_num) ;
16207 g_mpa_recog_lines.array_natural_side_code(p_line_num) := g_rec_lines.array_natural_side_code(p_line_num) ;
16208 g_mpa_recog_lines.array_acct_entry_type_code(p_line_num) := g_rec_lines.array_acct_entry_type_code(p_line_num) ;
16209 g_mpa_recog_lines.array_switch_side_flag(p_line_num) := g_rec_lines.array_switch_side_flag(p_line_num) ;
16210 g_mpa_recog_lines.array_merge_duplicate_code(p_line_num) := g_rec_lines.array_merge_duplicate_code(p_line_num) ;
16211 --
16212 -- line amounts
16213 --
16214 g_mpa_recog_lines.array_entered_amount(p_line_num) := g_rec_lines.array_entered_amount(p_line_num) ;
16215 g_mpa_recog_lines.array_ledger_amount(p_line_num) := g_rec_lines.array_ledger_amount(p_line_num) ;
16216 g_mpa_recog_lines.array_entered_dr(p_line_num) := g_rec_lines.array_entered_dr(p_line_num) ;
16217 g_mpa_recog_lines.array_entered_cr(p_line_num) := g_rec_lines.array_entered_cr(p_line_num) ;
16218 g_mpa_recog_lines.array_accounted_dr(p_line_num) := g_rec_lines.array_accounted_dr(p_line_num) ;
16219 g_mpa_recog_lines.array_accounted_cr(p_line_num) := g_rec_lines.array_accounted_cr(p_line_num) ;
16220 g_mpa_recog_lines.array_currency_code(p_line_num) := g_rec_lines.array_currency_code(p_line_num) ;
16221 g_mpa_recog_lines.array_currency_mau(p_line_num) := g_rec_lines.array_currency_mau(p_line_num) ;
16222 g_mpa_recog_lines.array_curr_conversion_date(p_line_num) := g_rec_lines.array_curr_conversion_date(p_line_num) ;
16223 g_mpa_recog_lines.array_curr_conversion_rate(p_line_num) := g_rec_lines.array_curr_conversion_rate(p_line_num) ;
16224 g_mpa_recog_lines.array_curr_conversion_type(p_line_num) := g_rec_lines.array_curr_conversion_type(p_line_num) ;
16225 g_mpa_recog_lines.array_description(p_line_num) := g_rec_lines.array_description(p_line_num) ;
16226 --
16227 -- line descriptions
16228 --
16229 g_mpa_recog_lines.array_party_id(p_line_num) := g_rec_lines.array_party_id(p_line_num) ;
16230 g_mpa_recog_lines.array_party_site_id(p_line_num) := g_rec_lines.array_party_site_id(p_line_num) ;
16231 g_mpa_recog_lines.array_party_type_code(p_line_num) := g_rec_lines.array_party_type_code(p_line_num) ;
16232 --
16233 g_mpa_recog_lines.array_statistical_amount(p_line_num) := g_rec_lines.array_statistical_amount(p_line_num) ;
16234 g_mpa_recog_lines.array_ussgl_transaction(p_line_num) := g_rec_lines.array_ussgl_transaction(p_line_num) ;
16235 --
16236 g_mpa_recog_lines.array_jgzz_recon_ref(p_line_num) := g_rec_lines.array_jgzz_recon_ref(p_line_num) ;
16237 -- distribution links
16238 --
16239 g_mpa_recog_lines.array_distribution_id_char_1(p_line_num) := g_rec_lines.array_distribution_id_char_1(p_line_num) ;
16240 g_mpa_recog_lines.array_distribution_id_char_2(p_line_num) := g_rec_lines.array_distribution_id_char_2(p_line_num) ;
16241 g_mpa_recog_lines.array_distribution_id_char_3(p_line_num) := g_rec_lines.array_distribution_id_char_3(p_line_num) ;
16242 g_mpa_recog_lines.array_distribution_id_char_4(p_line_num) := g_rec_lines.array_distribution_id_char_4(p_line_num) ;
16243 g_mpa_recog_lines.array_distribution_id_char_5(p_line_num) := g_rec_lines.array_distribution_id_char_5(p_line_num) ;
16244 g_mpa_recog_lines.array_sys_distribution_type(p_line_num) := g_rec_lines.array_sys_distribution_type(p_line_num) ;
16245 g_mpa_recog_lines.array_distribution_id_num_1(p_line_num) := g_rec_lines.array_distribution_id_num_1(p_line_num) ;
16246 g_mpa_recog_lines.array_distribution_id_num_2(p_line_num) := g_rec_lines.array_distribution_id_num_2(p_line_num) ;
16247 g_mpa_recog_lines.array_distribution_id_num_3(p_line_num) := g_rec_lines.array_distribution_id_num_3(p_line_num) ;
16248 g_mpa_recog_lines.array_distribution_id_num_4(p_line_num) := g_rec_lines.array_distribution_id_num_4(p_line_num) ;
16249 g_mpa_recog_lines.array_distribution_id_num_5(p_line_num) := g_rec_lines.array_distribution_id_num_5(p_line_num) ;
16250 --
16251 -- reversal attributes
16252 --
16253 g_mpa_recog_lines.array_rev_dist_id_char_1(p_line_num) := g_rec_lines.array_rev_dist_id_char_1(p_line_num) ;
16254 g_mpa_recog_lines.array_rev_dist_id_char_2(p_line_num) := g_rec_lines.array_rev_dist_id_char_2(p_line_num) ;
16255 g_mpa_recog_lines.array_rev_dist_id_char_3(p_line_num) := g_rec_lines.array_rev_dist_id_char_3(p_line_num) ;
16256 g_mpa_recog_lines.array_rev_dist_id_char_4(p_line_num) := g_rec_lines.array_rev_dist_id_char_4(p_line_num) ;
16257 g_mpa_recog_lines.array_rev_dist_id_char_5(p_line_num) := g_rec_lines.array_rev_dist_id_char_5(p_line_num) ;
16258 g_mpa_recog_lines.array_rev_dist_id_num_1(p_line_num) := g_rec_lines.array_rev_dist_id_num_1(p_line_num) ;
16259 g_mpa_recog_lines.array_rev_dist_id_num_2(p_line_num) := g_rec_lines.array_rev_dist_id_num_2(p_line_num) ;
16260 g_mpa_recog_lines.array_rev_dist_id_num_3(p_line_num) := g_rec_lines.array_rev_dist_id_num_3(p_line_num) ;
16261 g_mpa_recog_lines.array_rev_dist_id_num_4(p_line_num) := g_rec_lines.array_rev_dist_id_num_4(p_line_num) ;
16262 g_mpa_recog_lines.array_rev_dist_id_num_5(p_line_num) := g_rec_lines.array_rev_dist_id_num_5(p_line_num) ;
16263 g_mpa_recog_lines.array_rev_dist_type(p_line_num) := g_rec_lines.array_rev_dist_type(p_line_num) ;
16264 --
16265 ---------------------------------------
16266 -- 4262811 MPA
16267 ---------------------------------------
16268 g_mpa_recog_lines.array_header_num(p_line_num) := g_rec_lines.array_header_num(p_line_num) ;
16269 g_mpa_recog_lines.array_mpa_acc_entry_flag(p_line_num) := g_rec_lines.array_mpa_acc_entry_flag(p_line_num) ;
16270 g_mpa_recog_lines.array_mpa_option(p_line_num) := g_rec_lines.array_mpa_option(p_line_num) ;
16271 g_mpa_recog_lines.array_mpa_start_date(p_line_num) := g_rec_lines.array_mpa_start_date(p_line_num) ;
16272 g_mpa_recog_lines.array_mpa_end_date(p_line_num) := g_rec_lines.array_mpa_end_date(p_line_num) ;
16273 -- deferred info -- REMOVED for 426281
16274 --
16275 -- array_deferred_indicator
16276 -- array_deferred_start_date
16277 -- array_deferred_end_date
16278 -- array_deferred_no_period
16279 -- array_deferred_period_type
16280 --
16281 -- reversal info
16282 --
16283 g_mpa_recog_lines.array_acc_reversal_option(p_line_num) := g_rec_lines.array_acc_reversal_option(p_line_num) ;
16284 --
16285 -- tax info
16286 --
16287 g_mpa_recog_lines.array_tax_line_ref(p_line_num) := g_rec_lines.array_tax_line_ref(p_line_num) ;
16288 g_mpa_recog_lines.array_tax_summary_line_ref(p_line_num) := g_rec_lines.array_tax_summary_line_ref(p_line_num) ;
16289 g_mpa_recog_lines.array_tax_rec_nrec_dist_ref(p_line_num) := g_rec_lines.array_tax_rec_nrec_dist_ref(p_line_num) ;
16290 --
16291 -- bulk performance(p_line_num)
16292 g_mpa_recog_lines.array_balance_type_code(p_line_num) := g_rec_lines.array_balance_type_code(p_line_num) ;
16293 g_mpa_recog_lines.array_ledger_id(p_line_num) := g_rec_lines.array_ledger_id(p_line_num) ;
16294 --
16295 g_mpa_recog_lines.array_anc_balance_flag(p_line_num) := g_rec_lines.array_anc_balance_flag(p_line_num) ;
16296 g_mpa_recog_lines.array_anc_id_1(p_line_num) := g_rec_lines.array_anc_id_1(p_line_num) ;
16297 g_mpa_recog_lines.array_anc_id_2(p_line_num) := g_rec_lines.array_anc_id_2(p_line_num) ;
16298 g_mpa_recog_lines.array_anc_id_3(p_line_num) := g_rec_lines.array_anc_id_3(p_line_num) ;
16299 g_mpa_recog_lines.array_anc_id_4(p_line_num) := g_rec_lines.array_anc_id_4(p_line_num) ;
16300 g_mpa_recog_lines.array_anc_id_5(p_line_num) := g_rec_lines.array_anc_id_5(p_line_num) ;
16301 g_mpa_recog_lines.array_anc_id_6(p_line_num) := g_rec_lines.array_anc_id_6(p_line_num) ;
16302 g_mpa_recog_lines.array_anc_id_7(p_line_num) := g_rec_lines.array_anc_id_7(p_line_num) ;
16303 g_mpa_recog_lines.array_anc_id_8(p_line_num) := g_rec_lines.array_anc_id_8(p_line_num) ;
16304 g_mpa_recog_lines.array_anc_id_9(p_line_num) := g_rec_lines.array_anc_id_9(p_line_num) ;
16305 g_mpa_recog_lines.array_anc_id_10(p_line_num) := g_rec_lines.array_anc_id_10(p_line_num) ;
16306 g_mpa_recog_lines.array_anc_id_11(p_line_num) := g_rec_lines.array_anc_id_11(p_line_num) ;
16307 g_mpa_recog_lines.array_anc_id_12(p_line_num) := g_rec_lines.array_anc_id_12(p_line_num) ;
16308 g_mpa_recog_lines.array_anc_id_13(p_line_num) := g_rec_lines.array_anc_id_13(p_line_num) ;
16309 g_mpa_recog_lines.array_anc_id_14(p_line_num) := g_rec_lines.array_anc_id_14(p_line_num) ;
16310 g_mpa_recog_lines.array_anc_id_15(p_line_num) := g_rec_lines.array_anc_id_15(p_line_num) ;
16311 g_mpa_recog_lines.array_anc_id_16(p_line_num) := g_rec_lines.array_anc_id_16(p_line_num) ;
16312 g_mpa_recog_lines.array_anc_id_17(p_line_num) := g_rec_lines.array_anc_id_17(p_line_num) ;
16313 g_mpa_recog_lines.array_anc_id_18(p_line_num) := g_rec_lines.array_anc_id_18(p_line_num) ;
16314 g_mpa_recog_lines.array_anc_id_19(p_line_num) := g_rec_lines.array_anc_id_19(p_line_num) ;
16315 g_mpa_recog_lines.array_anc_id_20(p_line_num) := g_rec_lines.array_anc_id_20(p_line_num) ;
16316 g_mpa_recog_lines.array_anc_id_21(p_line_num) := g_rec_lines.array_anc_id_21(p_line_num) ;
16317 g_mpa_recog_lines.array_anc_id_22(p_line_num) := g_rec_lines.array_anc_id_22(p_line_num) ;
16318 g_mpa_recog_lines.array_anc_id_23(p_line_num) := g_rec_lines.array_anc_id_23(p_line_num) ;
16319 g_mpa_recog_lines.array_anc_id_24(p_line_num) := g_rec_lines.array_anc_id_24(p_line_num) ;
16320 g_mpa_recog_lines.array_anc_id_25(p_line_num) := g_rec_lines.array_anc_id_25(p_line_num) ;
16321 g_mpa_recog_lines.array_anc_id_26(p_line_num) := g_rec_lines.array_anc_id_26(p_line_num) ;
16322 g_mpa_recog_lines.array_anc_id_27(p_line_num) := g_rec_lines.array_anc_id_27(p_line_num) ;
16323 g_mpa_recog_lines.array_anc_id_28(p_line_num) := g_rec_lines.array_anc_id_28(p_line_num) ;
16324 g_mpa_recog_lines.array_anc_id_29(p_line_num) := g_rec_lines.array_anc_id_29(p_line_num) ;
16325 g_mpa_recog_lines.array_anc_id_30(p_line_num) := g_rec_lines.array_anc_id_30(p_line_num) ;
16326 g_mpa_recog_lines.array_anc_id_31(p_line_num) := g_rec_lines.array_anc_id_31(p_line_num) ;
16327 g_mpa_recog_lines.array_anc_id_32(p_line_num) := g_rec_lines.array_anc_id_32(p_line_num) ;
16328 g_mpa_recog_lines.array_anc_id_33(p_line_num) := g_rec_lines.array_anc_id_33(p_line_num) ;
16329 g_mpa_recog_lines.array_anc_id_34(p_line_num) := g_rec_lines.array_anc_id_34(p_line_num) ;
16330 g_mpa_recog_lines.array_anc_id_35(p_line_num) := g_rec_lines.array_anc_id_35(p_line_num) ;
16331 g_mpa_recog_lines.array_anc_id_36(p_line_num) := g_rec_lines.array_anc_id_36(p_line_num) ;
16332 g_mpa_recog_lines.array_anc_id_37(p_line_num) := g_rec_lines.array_anc_id_37(p_line_num) ;
16333 g_mpa_recog_lines.array_anc_id_38(p_line_num) := g_rec_lines.array_anc_id_38(p_line_num) ;
16334 g_mpa_recog_lines.array_anc_id_39(p_line_num) := g_rec_lines.array_anc_id_39(p_line_num) ;
16335 g_mpa_recog_lines.array_anc_id_40(p_line_num) := g_rec_lines.array_anc_id_40(p_line_num) ;
16336 g_mpa_recog_lines.array_anc_id_41(p_line_num) := g_rec_lines.array_anc_id_41(p_line_num) ;
16337 g_mpa_recog_lines.array_anc_id_42(p_line_num) := g_rec_lines.array_anc_id_42(p_line_num) ;
16338 g_mpa_recog_lines.array_anc_id_43(p_line_num) := g_rec_lines.array_anc_id_43(p_line_num) ;
16339 g_mpa_recog_lines.array_anc_id_44(p_line_num) := g_rec_lines.array_anc_id_44(p_line_num) ;
16340 g_mpa_recog_lines.array_anc_id_45(p_line_num) := g_rec_lines.array_anc_id_45(p_line_num) ;
16341 g_mpa_recog_lines.array_anc_id_46(p_line_num) := g_rec_lines.array_anc_id_46(p_line_num) ;
16342 g_mpa_recog_lines.array_anc_id_47(p_line_num) := g_rec_lines.array_anc_id_47(p_line_num) ;
16343 g_mpa_recog_lines.array_anc_id_48(p_line_num) := g_rec_lines.array_anc_id_48(p_line_num) ;
16344 g_mpa_recog_lines.array_anc_id_49(p_line_num) := g_rec_lines.array_anc_id_49(p_line_num) ;
16345 g_mpa_recog_lines.array_anc_id_50(p_line_num) := g_rec_lines.array_anc_id_50(p_line_num) ;
16346 g_mpa_recog_lines.array_anc_id_51(p_line_num) := g_rec_lines.array_anc_id_51(p_line_num) ;
16347 g_mpa_recog_lines.array_anc_id_52(p_line_num) := g_rec_lines.array_anc_id_52(p_line_num) ;
16348 g_mpa_recog_lines.array_anc_id_53(p_line_num) := g_rec_lines.array_anc_id_53(p_line_num) ;
16349 g_mpa_recog_lines.array_anc_id_54(p_line_num) := g_rec_lines.array_anc_id_54(p_line_num) ;
16350 g_mpa_recog_lines.array_anc_id_55(p_line_num) := g_rec_lines.array_anc_id_55(p_line_num) ;
16351 g_mpa_recog_lines.array_anc_id_56(p_line_num) := g_rec_lines.array_anc_id_56(p_line_num) ;
16352 g_mpa_recog_lines.array_anc_id_57(p_line_num) := g_rec_lines.array_anc_id_57(p_line_num) ;
16353 g_mpa_recog_lines.array_anc_id_58(p_line_num) := g_rec_lines.array_anc_id_58(p_line_num) ;
16354 g_mpa_recog_lines.array_anc_id_59(p_line_num) := g_rec_lines.array_anc_id_59(p_line_num) ;
16355 g_mpa_recog_lines.array_anc_id_60(p_line_num) := g_rec_lines.array_anc_id_60(p_line_num) ;
16356 g_mpa_recog_lines.array_anc_id_61(p_line_num) := g_rec_lines.array_anc_id_61(p_line_num) ;
16357 g_mpa_recog_lines.array_anc_id_62(p_line_num) := g_rec_lines.array_anc_id_62(p_line_num) ;
16358 g_mpa_recog_lines.array_anc_id_63(p_line_num) := g_rec_lines.array_anc_id_63(p_line_num) ;
16359 g_mpa_recog_lines.array_anc_id_64(p_line_num) := g_rec_lines.array_anc_id_64(p_line_num) ;
16360 g_mpa_recog_lines.array_anc_id_65(p_line_num) := g_rec_lines.array_anc_id_65(p_line_num) ;
16361 g_mpa_recog_lines.array_anc_id_66(p_line_num) := g_rec_lines.array_anc_id_66(p_line_num) ;
16362 g_mpa_recog_lines.array_anc_id_67(p_line_num) := g_rec_lines.array_anc_id_67(p_line_num) ;
16363 g_mpa_recog_lines.array_anc_id_68(p_line_num) := g_rec_lines.array_anc_id_68(p_line_num) ;
16364 g_mpa_recog_lines.array_anc_id_69(p_line_num) := g_rec_lines.array_anc_id_69(p_line_num) ;
16365 g_mpa_recog_lines.array_anc_id_70(p_line_num) := g_rec_lines.array_anc_id_70(p_line_num) ;
16366 g_mpa_recog_lines.array_anc_id_71(p_line_num) := g_rec_lines.array_anc_id_71(p_line_num) ;
16367 g_mpa_recog_lines.array_anc_id_72(p_line_num) := g_rec_lines.array_anc_id_72(p_line_num) ;
16368 g_mpa_recog_lines.array_anc_id_73(p_line_num) := g_rec_lines.array_anc_id_73(p_line_num) ;
16369 g_mpa_recog_lines.array_anc_id_74(p_line_num) := g_rec_lines.array_anc_id_74(p_line_num) ;
16370 g_mpa_recog_lines.array_anc_id_75(p_line_num) := g_rec_lines.array_anc_id_75(p_line_num) ;
16371 g_mpa_recog_lines.array_anc_id_76(p_line_num) := g_rec_lines.array_anc_id_76(p_line_num) ;
16372 g_mpa_recog_lines.array_anc_id_77(p_line_num) := g_rec_lines.array_anc_id_77(p_line_num) ;
16373 g_mpa_recog_lines.array_anc_id_78(p_line_num) := g_rec_lines.array_anc_id_78(p_line_num) ;
16374 g_mpa_recog_lines.array_anc_id_79(p_line_num) := g_rec_lines.array_anc_id_79(p_line_num) ;
16375 g_mpa_recog_lines.array_anc_id_80(p_line_num) := g_rec_lines.array_anc_id_80(p_line_num) ;
16376 g_mpa_recog_lines.array_anc_id_81(p_line_num) := g_rec_lines.array_anc_id_81(p_line_num) ;
16377 g_mpa_recog_lines.array_anc_id_82(p_line_num) := g_rec_lines.array_anc_id_82(p_line_num) ;
16378 g_mpa_recog_lines.array_anc_id_83(p_line_num) := g_rec_lines.array_anc_id_83(p_line_num) ;
16379 g_mpa_recog_lines.array_anc_id_84(p_line_num) := g_rec_lines.array_anc_id_84(p_line_num) ;
16380 g_mpa_recog_lines.array_anc_id_85(p_line_num) := g_rec_lines.array_anc_id_85(p_line_num) ;
16381 g_mpa_recog_lines.array_anc_id_86(p_line_num) := g_rec_lines.array_anc_id_86(p_line_num) ;
16382 g_mpa_recog_lines.array_anc_id_87(p_line_num) := g_rec_lines.array_anc_id_87(p_line_num) ;
16383 g_mpa_recog_lines.array_anc_id_88(p_line_num) := g_rec_lines.array_anc_id_88(p_line_num) ;
16384 g_mpa_recog_lines.array_anc_id_89(p_line_num) := g_rec_lines.array_anc_id_89(p_line_num) ;
16385 g_mpa_recog_lines.array_anc_id_90(p_line_num) := g_rec_lines.array_anc_id_90(p_line_num) ;
16386 g_mpa_recog_lines.array_anc_id_91(p_line_num) := g_rec_lines.array_anc_id_91(p_line_num) ;
16387 g_mpa_recog_lines.array_anc_id_92(p_line_num) := g_rec_lines.array_anc_id_92(p_line_num) ;
16388 g_mpa_recog_lines.array_anc_id_93(p_line_num) := g_rec_lines.array_anc_id_93(p_line_num) ;
16389 g_mpa_recog_lines.array_anc_id_94(p_line_num) := g_rec_lines.array_anc_id_94(p_line_num) ;
16390 g_mpa_recog_lines.array_anc_id_95(p_line_num) := g_rec_lines.array_anc_id_95(p_line_num) ;
16391 g_mpa_recog_lines.array_anc_id_96(p_line_num) := g_rec_lines.array_anc_id_96(p_line_num) ;
16392 g_mpa_recog_lines.array_anc_id_97(p_line_num) := g_rec_lines.array_anc_id_97(p_line_num) ;
16393 g_mpa_recog_lines.array_anc_id_98(p_line_num) := g_rec_lines.array_anc_id_98(p_line_num) ;
16394 g_mpa_recog_lines.array_anc_id_99(p_line_num) := g_rec_lines.array_anc_id_99(p_line_num) ;
16395 g_mpa_recog_lines.array_anc_id_100(p_line_num) := g_rec_lines.array_anc_id_100(p_line_num) ;
16396 --
16397 g_mpa_recog_lines.array_event_number(p_line_num) := g_rec_lines.array_event_number(p_line_num) ;
16398 g_mpa_recog_lines.array_entity_id(p_line_num) := g_rec_lines.array_entity_id(p_line_num) ;
16399 g_mpa_recog_lines.array_reversal_code(p_line_num) := g_rec_lines.array_reversal_code(p_line_num) ;
16400 --------------------------------------
16401 -- 4219869
16402 -- Business Flow Applied To Attributes
16403 --------------------------------------
16404 g_mpa_recog_lines.array_business_method_code(p_line_num) := g_rec_lines.array_business_method_code(p_line_num) ;
16405 g_mpa_recog_lines.array_business_class_code(p_line_num) := g_rec_lines.array_business_class_code(p_line_num) ;
16406 g_mpa_recog_lines.array_inherit_desc_flag(p_line_num) := g_rec_lines.array_inherit_desc_flag(p_line_num) ;
16407 g_mpa_recog_lines.array_bflow_application_id(p_line_num) := g_rec_lines.array_bflow_application_id(p_line_num) ;
16408 g_mpa_recog_lines.array_bflow_entity_code(p_line_num) := g_rec_lines.array_bflow_entity_code(p_line_num) ;
16409 g_mpa_recog_lines.array_bflow_source_id_num_1(p_line_num) := g_rec_lines.array_bflow_source_id_num_1(p_line_num) ;
16410 g_mpa_recog_lines.array_bflow_source_id_num_2(p_line_num) := g_rec_lines.array_bflow_source_id_num_2(p_line_num) ;
16411 g_mpa_recog_lines.array_bflow_source_id_num_3(p_line_num) := g_rec_lines.array_bflow_source_id_num_3(p_line_num) ;
16412 g_mpa_recog_lines.array_bflow_source_id_num_4(p_line_num) := g_rec_lines.array_bflow_source_id_num_4(p_line_num) ;
16413 g_mpa_recog_lines.array_bflow_source_id_char_1(p_line_num) := g_rec_lines.array_bflow_source_id_char_1(p_line_num) ;
16414 g_mpa_recog_lines.array_bflow_source_id_char_2(p_line_num) := g_rec_lines.array_bflow_source_id_char_2(p_line_num) ;
16415 g_mpa_recog_lines.array_bflow_source_id_char_3(p_line_num) := g_rec_lines.array_bflow_source_id_char_3(p_line_num) ;
16416 g_mpa_recog_lines.array_bflow_source_id_char_4(p_line_num) := g_rec_lines.array_bflow_source_id_char_4(p_line_num) ;
16417 g_mpa_recog_lines.array_bflow_distribution_type(p_line_num) := g_rec_lines.array_bflow_distribution_type(p_line_num);
16418 g_mpa_recog_lines.array_bflow_dist_id_num_1(p_line_num) := g_rec_lines.array_bflow_dist_id_num_1(p_line_num) ;
16419 g_mpa_recog_lines.array_bflow_dist_id_num_2(p_line_num) := g_rec_lines.array_bflow_dist_id_num_2(p_line_num) ;
16420 g_mpa_recog_lines.array_bflow_dist_id_num_3(p_line_num) := g_rec_lines.array_bflow_dist_id_num_3(p_line_num) ;
16421 g_mpa_recog_lines.array_bflow_dist_id_num_4(p_line_num) := g_rec_lines.array_bflow_dist_id_num_4(p_line_num) ;
16422 g_mpa_recog_lines.array_bflow_dist_id_num_5(p_line_num) := g_rec_lines.array_bflow_dist_id_num_5(p_line_num) ;
16423 g_mpa_recog_lines.array_bflow_dist_id_char_1(p_line_num) := g_rec_lines.array_bflow_dist_id_char_1(p_line_num) ;
16424 g_mpa_recog_lines.array_bflow_dist_id_char_2(p_line_num) := g_rec_lines.array_bflow_dist_id_char_2(p_line_num) ;
16425 g_mpa_recog_lines.array_bflow_dist_id_char_3(p_line_num) := g_rec_lines.array_bflow_dist_id_char_3(p_line_num) ;
16426 g_mpa_recog_lines.array_bflow_dist_id_char_4(p_line_num) := g_rec_lines.array_bflow_dist_id_char_4(p_line_num) ;
16427 g_mpa_recog_lines.array_bflow_dist_id_char_5(p_line_num) := g_rec_lines.array_bflow_dist_id_char_5(p_line_num) ;
16428 g_mpa_recog_lines.array_override_acctd_amt_flag(p_line_num) := g_rec_lines.array_override_acctd_amt_flag(p_line_num);
16429 g_mpa_recog_lines.array_bflow_applied_to_amt(p_line_num) := g_rec_lines.array_bflow_applied_to_amt(p_line_num) ;
16430
16431 g_mpa_recog_lines.array_encumbrance_type_id(p_line_num) := g_rec_lines.array_encumbrance_type_id(p_line_num) ;
16432 g_mpa_recog_lines.array_gl_date(p_line_num) := g_rec_lines.array_gl_date(p_line_num) ;
16433
16434 ---------------------------------------
16435 --
16436 --Upgrade Attributes
16437 --
16438 ---------------------------------------
16439
16440 g_mpa_recog_lines.array_actual_upg_option(p_line_num) := g_rec_lines.array_actual_upg_option(p_line_num) ;
16441 g_mpa_recog_lines.array_actual_upg_dr_ccid(p_line_num) := g_rec_lines.array_actual_upg_dr_ccid(p_line_num) ;
16442 g_mpa_recog_lines.array_actual_upg_cr_ccid(p_line_num) := g_rec_lines.array_actual_upg_cr_ccid(p_line_num) ;
16443 g_mpa_recog_lines.array_actual_upg_dr_ent_amt(p_line_num) := g_rec_lines.array_actual_upg_dr_ent_amt(p_line_num) ;
16444 g_mpa_recog_lines.array_actual_upg_cr_ent_amt(p_line_num) := g_rec_lines.array_actual_upg_cr_ent_amt(p_line_num) ;
16445 g_mpa_recog_lines.array_actual_upg_dr_ent_curr(p_line_num) := g_rec_lines.array_actual_upg_dr_ent_curr(p_line_num) ;
16446 g_mpa_recog_lines.array_actual_upg_cr_ent_curr(p_line_num) := g_rec_lines.array_actual_upg_cr_ent_curr(p_line_num) ;
16447 g_mpa_recog_lines.array_actual_upg_dr_ledger_amt(p_line_num) := g_rec_lines.array_actual_upg_dr_ledger_amt(p_line_num);
16448 g_mpa_recog_lines.array_actual_upg_cr_ledger_amt(p_line_num) := g_rec_lines.array_actual_upg_cr_ledger_amt(p_line_num);
16449 g_mpa_recog_lines.array_actual_upg_dr_acct_class(p_line_num) := g_rec_lines.array_actual_upg_dr_acct_class(p_line_num);
16450 g_mpa_recog_lines.array_actual_upg_cr_acct_class(p_line_num) := g_rec_lines.array_actual_upg_cr_acct_class(p_line_num);
16451 g_mpa_recog_lines.array_actual_upg_dr_xrate(p_line_num) := g_rec_lines.array_actual_upg_dr_xrate(p_line_num) ;
16452 g_mpa_recog_lines.array_actual_upg_dr_xrate_type(p_line_num) := g_rec_lines.array_actual_upg_dr_xrate_type(p_line_num);
16453 g_mpa_recog_lines.array_actual_upg_dr_xdate(p_line_num) := g_rec_lines.array_actual_upg_dr_xdate(p_line_num) ;
16454 g_mpa_recog_lines.array_actual_upg_cr_xrate(p_line_num) := g_rec_lines.array_actual_upg_cr_xrate(p_line_num) ;
16455 g_mpa_recog_lines.array_actual_upg_cr_xrate_type(p_line_num) := g_rec_lines.array_actual_upg_cr_xrate_type(p_line_num);
16456 g_mpa_recog_lines.array_actual_upg_cr_xdate(p_line_num) := g_rec_lines.array_actual_upg_cr_xdate(p_line_num) ;
16457 g_mpa_recog_lines.array_enc_upg_option(p_line_num) := g_rec_lines.array_enc_upg_option(p_line_num) ;
16458 g_mpa_recog_lines.array_enc_upg_dr_ccid(p_line_num) := g_rec_lines.array_enc_upg_dr_ccid(p_line_num) ;
16459 g_mpa_recog_lines.array_enc_upg_cr_ccid(p_line_num) := g_rec_lines.array_enc_upg_cr_ccid(p_line_num) ;
16460 g_mpa_recog_lines.array_upg_dr_enc_type_id(p_line_num) := g_rec_lines.array_upg_dr_enc_type_id(p_line_num) ;
16461 g_mpa_recog_lines.array_upg_cr_enc_type_id(p_line_num) := g_rec_lines.array_upg_cr_enc_type_id(p_line_num) ;
16462 g_mpa_recog_lines.array_enc_upg_dr_ent_amt(p_line_num) := g_rec_lines.array_enc_upg_dr_ent_amt(p_line_num) ;
16463 g_mpa_recog_lines.array_enc_upg_cr_ent_amt(p_line_num) := g_rec_lines.array_enc_upg_cr_ent_amt(p_line_num) ;
16464 g_mpa_recog_lines.array_enc_upg_dr_ent_curr(p_line_num) := g_rec_lines.array_enc_upg_dr_ent_curr(p_line_num) ;
16465 g_mpa_recog_lines.array_enc_upg_cr_ent_curr(p_line_num) := g_rec_lines.array_enc_upg_cr_ent_curr(p_line_num) ;
16466 g_mpa_recog_lines.array_enc_upg_dr_ledger_amt(p_line_num) := g_rec_lines.array_enc_upg_dr_ledger_amt(p_line_num) ;
16467 g_mpa_recog_lines.array_enc_upg_cr_ledger_amt(p_line_num) := g_rec_lines.array_enc_upg_cr_ledger_amt(p_line_num) ;
16468 g_mpa_recog_lines.array_enc_upg_dr_acct_class(p_line_num) := g_rec_lines.array_enc_upg_dr_acct_class(p_line_num) ;
16469 g_mpa_recog_lines.array_enc_upg_cr_acct_class(p_line_num) := g_rec_lines.array_enc_upg_cr_acct_class(p_line_num) ;
16470 -- 5845547 -- 5845547
16471 g_mpa_recog_lines.array_upg_party_id(p_line_num) := g_rec_lines.array_upg_party_id(p_line_num) ;
16472 g_mpa_recog_lines.array_upg_party_site_id(p_line_num) := g_rec_lines.array_upg_party_site_id(p_line_num) ;
16473 g_mpa_recog_lines.array_upg_party_type_code(p_line_num) := g_rec_lines.array_upg_party_type_code(p_line_num) ;
16474 --
16475 ---------------------------------------
16476 --
16477 --Allocation Attributes
16478 --
16479 ---------------------------------------
16480 g_mpa_recog_lines.array_alloct_application_id(p_line_num) := g_rec_lines.array_alloct_application_id(p_line_num) ;
16481 g_mpa_recog_lines.array_alloct_entity_code(p_line_num) := g_rec_lines.array_alloct_entity_code(p_line_num) ;
16482 g_mpa_recog_lines.array_alloct_source_id_num_1(p_line_num) := g_rec_lines.array_alloct_source_id_num_1(p_line_num) ;
16483 g_mpa_recog_lines.array_alloct_source_id_num_2(p_line_num) := g_rec_lines.array_alloct_source_id_num_2(p_line_num) ;
16484 g_mpa_recog_lines.array_alloct_source_id_num_3(p_line_num) := g_rec_lines.array_alloct_source_id_num_3(p_line_num) ;
16485 g_mpa_recog_lines.array_alloct_source_id_num_4(p_line_num) := g_rec_lines.array_alloct_source_id_num_4(p_line_num) ;
16486 g_mpa_recog_lines.array_alloct_source_id_char_1(p_line_num) := g_rec_lines.array_alloct_source_id_char_1(p_line_num);
16487 g_mpa_recog_lines.array_alloct_source_id_char_2(p_line_num) := g_rec_lines.array_alloct_source_id_char_2(p_line_num);
16488 g_mpa_recog_lines.array_alloct_source_id_char_3(p_line_num) := g_rec_lines.array_alloct_source_id_char_3(p_line_num);
16489 g_mpa_recog_lines.array_alloct_source_id_char_4(p_line_num) := g_rec_lines.array_alloct_source_id_char_4(p_line_num);
16490 g_mpa_recog_lines.array_alloct_distribution_type(p_line_num) := g_rec_lines.array_alloct_distribution_type(p_line_num);
16491 g_mpa_recog_lines.array_alloct_dist_id_num_1(p_line_num) := g_rec_lines.array_alloct_dist_id_num_1(p_line_num) ;
16492 g_mpa_recog_lines.array_alloct_dist_id_num_2(p_line_num) := g_rec_lines.array_alloct_dist_id_num_2(p_line_num) ;
16493 g_mpa_recog_lines.array_alloct_dist_id_num_3(p_line_num) := g_rec_lines.array_alloct_dist_id_num_3(p_line_num) ;
16494 g_mpa_recog_lines.array_alloct_dist_id_num_4(p_line_num) := g_rec_lines.array_alloct_dist_id_num_4(p_line_num) ;
16495 g_mpa_recog_lines.array_alloct_dist_id_num_5(p_line_num) := g_rec_lines.array_alloct_dist_id_num_5(p_line_num) ;
16496 g_mpa_recog_lines.array_alloct_dist_id_char_1(p_line_num) := g_rec_lines.array_alloct_dist_id_char_1(p_line_num) ;
16497 g_mpa_recog_lines.array_alloct_dist_id_char_2(p_line_num) := g_rec_lines.array_alloct_dist_id_char_2(p_line_num) ;
16498 g_mpa_recog_lines.array_alloct_dist_id_char_3(p_line_num) := g_rec_lines.array_alloct_dist_id_char_3(p_line_num) ;
16499 g_mpa_recog_lines.array_alloct_dist_id_char_4(p_line_num) := g_rec_lines.array_alloct_dist_id_char_4(p_line_num) ;
16500 g_mpa_recog_lines.array_alloct_dist_id_char_5(p_line_num) := g_rec_lines.array_alloct_dist_id_char_5(p_line_num) ;
16501
16502
16503 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16504 trace
16505 (p_msg => 'END InsertMPARecogLineInfo'
16506 ,p_level => C_LEVEL_PROCEDURE
16507 ,p_module => l_log_module);
16508 END IF;
16509
16510 EXCEPTION
16511 --
16512 WHEN xla_exceptions_pkg.application_exception THEN
16513 RAISE;
16514 WHEN OTHERS THEN
16515 xla_exceptions_pkg.raise_message
16516 (p_location => 'xla_ae_lines_pkg.InsertMPARecogLineInfo');
16517 --
16518 END InsertMPARecogLineInfo;
16519
16520 /*======================================================================+
16521 | |
16522 | Public Procedure- SetNullMPALineInfo 7109881 |
16523 | |
16524 | |
16525 +======================================================================*/
16526 PROCEDURE SetNullMPALineInfo
16527 IS
16528 l_log_module VARCHAR2(240);
16529 BEGIN
16530 IF g_log_enabled THEN
16531 l_log_module := C_DEFAULT_MODULE||'.SetNullMPALineInfo';
16532 END IF;
16533 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16534 trace
16535 (p_msg => 'BEGIN of SetNullMPALineInfo'
16536 ,p_level => C_LEVEL_PROCEDURE
16537 ,p_module => l_log_module);
16538 END IF;
16539
16540 XLA_AE_LINES_PKG.g_mpa_recog_lines := NULL ;
16541
16542 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16543 trace
16544 (p_msg => 'End of SetNullMPALineInfo'
16545 ,p_level => C_LEVEL_PROCEDURE
16546 ,p_module => l_log_module);
16547 END IF;
16548 EXCEPTION
16549 --
16550 WHEN xla_exceptions_pkg.application_exception THEN
16551 RAISE;
16552 WHEN OTHERS THEN
16553 xla_exceptions_pkg.raise_message
16554 (p_location => 'xla_ae_lines_pkg.SetNullMPALineInfo');
16555 --
16556 END SetNullMPALineInfo;
16557
16558 /*======================================================================+
16559 | |
16560 | Public Procedure- 9954676 |
16561 | Procedure to reset g_mpa_transaction_accounts array which |
16562 | is used to hold COA mapping for the MPA Recognition Lines |
16563 +======================================================================*/
16564 PROCEDURE SetNullMpaTrxAcctCopyInfo
16565 IS
16566 l_log_module VARCHAR2(240);
16567 BEGIN
16568 IF g_log_enabled THEN
16569 l_log_module := C_DEFAULT_MODULE||'.SetNullMpaTrxAcctCopyInfo' ;
16570 END IF;
16571 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16572 trace
16573 (p_msg => 'BEGIN of SetNullMpaTrxAcctCopyInfo'
16574 ,p_level => C_LEVEL_PROCEDURE
16575 ,p_module => l_log_module);
16576 END IF;
16577
16578 g_mpa_transaction_accounts := NULL ;
16579
16580 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16581 trace
16582 (p_msg => 'End of SetNullMpaTrxAcctCopyInfo'
16583 ,p_level => C_LEVEL_PROCEDURE
16584 ,p_module => l_log_module);
16585 END IF;
16586 EXCEPTION
16587 --
16588 WHEN xla_exceptions_pkg.application_exception THEN
16589 RAISE;
16590 WHEN OTHERS THEN
16591 xla_exceptions_pkg.raise_message
16592 (p_location => 'xla_ae_lines_pkg.SetNullMpaTrxAcctCopyInfo');
16593 --
16594 END SetNullMpaTrxAcctCopyInfo;
16595
16596 /*======================================================================+
16597 | |
16598 | Public Procedure- 9954676 |
16599 | Procedure to populate g_mpa_transaction_accounts with Mapping |
16600 | details of a Recognition Line from g_transaction_accounts |
16601 +======================================================================*/
16602 PROCEDURE InsertMpaTrxAcctCopyInfo
16603 ( p_ae_header_id IN NUMBER ,
16604 p_g_lineNumber IN NUMBER
16605 )
16606 IS
16607 l_log_module VARCHAR2(240);
16608 l_Idx BINARY_INTEGER;
16609 l_loop_count NUMBER := 0 ;
16610 l_insert_count NUMBER := 0 ;
16611 l_temp_line_num NUMBER := 0 ; --bug13023651
16612
16613 BEGIN
16614 IF g_log_enabled THEN
16615 l_log_module := C_DEFAULT_MODULE||'.InsertMpaTrxAcctCopyInfo' ;
16616 END IF;
16617 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16618 trace
16619 (p_msg => 'BEGIN of InsertMpaTrxAcctCopyInfo'
16620 ,p_level => C_LEVEL_PROCEDURE
16621 ,p_module => l_log_module);
16622 END IF;
16623
16624 l_temp_line_num := g_rec_lines.array_line_num(p_g_LineNumber) ; --bug13023651
16625
16626 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16627 trace
16628 (p_msg => 'pgLine: '|| p_g_LineNumber ||' L_Temp_Lin: '||l_temp_line_num
16629 ,p_level => C_LEVEL_PROCEDURE
16630 ,p_module => l_log_module);
16631 END IF;
16632
16633 IF g_transaction_accounts.array_line_num.COUNT > 0 THEN
16634
16635 FOR Jdx IN REVERSE g_transaction_accounts.array_line_num.FIRST .. g_transaction_accounts.array_line_num.LAST
16636 LOOP
16637 -- Loop until all the TOA rows are parsed through for the given P_AE_HEADER_ID and P_TEMP_LINE_NUM
16638 l_loop_count := l_loop_count + 1;
16639 IF( g_transaction_accounts.array_ae_header_id(Jdx) = p_ae_header_id
16640 AND g_transaction_accounts.array_temp_line_num(Jdx) = l_temp_line_num -- changed from p_temp_line_num bug13023651
16641 )
16642 THEN
16643 l_Idx := NVL(g_mpa_transaction_accounts.array_ae_header_id.COUNT,0) + 1;
16644 g_mpa_transaction_accounts.array_line_num(l_Idx) := g_transaction_accounts.array_line_num(Jdx) ;
16645 g_mpa_transaction_accounts.array_ae_header_id(l_Idx) := g_transaction_accounts.array_ae_header_id(Jdx) ;
16646 g_mpa_transaction_accounts.array_temp_line_num(l_Idx) := g_transaction_accounts.array_temp_line_num(Jdx) ;
16647 g_mpa_transaction_accounts.array_code_combination_id(l_Idx) := g_transaction_accounts.array_code_combination_id(Jdx) ;
16648 g_mpa_transaction_accounts.array_segment(l_Idx) := g_transaction_accounts.array_segment(Jdx) ;
16649 g_mpa_transaction_accounts.array_from_segment_code(l_Idx) := g_transaction_accounts.array_from_segment_code(Jdx) ;
16650 g_mpa_transaction_accounts.array_to_segment_code(l_Idx) := g_transaction_accounts.array_to_segment_code(Jdx) ;
16651 g_mpa_transaction_accounts.array_processing_status_code(l_Idx) := g_transaction_accounts.array_processing_status_code(Jdx) ;
16652 g_mpa_transaction_accounts.array_side_code(l_Idx) := g_transaction_accounts.array_side_code(Jdx) ;
16653 l_insert_count := l_insert_count + 1 ;
16654 END IF;
16655
16656 -- Exit the Loop when the ROW doesnt match the given combination.
16657 IF( g_transaction_accounts.array_ae_header_id(Jdx) <> p_ae_header_id
16658 OR g_transaction_accounts.array_temp_line_num(Jdx) <> l_temp_line_num -- changed from p_temp_line_num bug13023651
16659 )
16660 THEN
16661 EXIT;
16662 END IF;
16663
16664 END LOOP;
16665 END IF;
16666
16667 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16668 trace
16669 (p_msg => 'Loop Count: '||l_loop_count ||' Insert Count: '||l_insert_count
16670 ,p_level => C_LEVEL_PROCEDURE
16671 ,p_module => l_log_module);
16672
16673 trace
16674 (p_msg => 'End of InsertMpaTrxAcctCopyInfo'
16675 ,p_level => C_LEVEL_PROCEDURE
16676 ,p_module => l_log_module);
16677 END IF;
16678
16679 EXCEPTION
16680 --
16681 WHEN xla_exceptions_pkg.application_exception THEN
16682 RAISE;
16683 WHEN OTHERS THEN
16684 xla_exceptions_pkg.raise_message
16685 (p_location => 'xla_ae_lines_pkg.InsertMpaTrxAcctCopyInfo');
16686 --
16687 END InsertMpaTrxAcctCopyInfo;
16688
16689 /*======================================================================+
16690 | |
16691 | Public Procedure- 9954676 |
16692 | Procedure to populate g_transaction_accounts with Mapping |
16693 | details of a Recognition Line from g_mpa_transaction_accounts |
16694 | for the future periods. |
16695 +======================================================================*/
16696 PROCEDURE CopyMpaTrxAcctCopyInfo
16697 ( p_orig_ae_header_id IN NUMBER ,
16698 p_orig_g_lineNumber IN NUMBER ,
16699 p_new_g_lineNumber IN NUMBER
16700 )
16701 IS
16702 l_log_module VARCHAR2(240);
16703 l_Idx BINARY_INTEGER;
16704 l_orig_temp_line_num NUMBER :=0 ; --bug13023651
16705 l_new_temp_line_num NUMBER :=0 ; --bug13023651
16706
16707 BEGIN
16708 IF g_log_enabled THEN
16709 l_log_module := C_DEFAULT_MODULE||'.CopyMpaTrxAcctCopyInfo' ;
16710 END IF;
16711 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16712 trace
16713 (p_msg => 'BEGIN of CopyMpaTrxAcctCopyInfo'
16714 ,p_level => C_LEVEL_PROCEDURE
16715 ,p_module => l_log_module);
16716 END IF;
16717
16718 l_orig_temp_line_num := g_mpa_recog_lines.array_line_num(p_orig_g_lineNumber); --bug13023651
16719 l_new_temp_line_num := g_rec_lines.array_line_num(p_new_g_lineNumber); --bug13023651
16720
16721 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16722 trace
16723 (p_msg => 'orig gLine: '|| p_orig_g_lineNumber || ' new_gLine:'|| p_new_g_lineNumber ||' L_Orig_Tem: '||l_orig_temp_line_num || ' L_New_Tem: '||l_new_temp_line_num
16724 ,p_level => C_LEVEL_PROCEDURE
16725 ,p_module => l_log_module);
16726 END IF;
16727
16728 IF g_mpa_transaction_accounts.array_line_num.COUNT > 0 THEN
16729
16730 FOR Jdx IN g_mpa_transaction_accounts.array_line_num.FIRST .. g_mpa_transaction_accounts.array_line_num.LAST
16731 LOOP
16732
16733 IF( g_mpa_transaction_accounts.array_ae_header_id(Jdx) = p_orig_ae_header_id
16734 AND g_mpa_transaction_accounts.array_temp_line_num(Jdx) = l_orig_temp_line_num -- changed from p_orig_temp_line_num bug13023651
16735 )
16736 THEN
16737 l_Idx := NVL(g_transaction_accounts.array_ae_header_id.COUNT,0) + 1;
16738 g_transaction_accounts.array_line_num(l_Idx) := g_mpa_transaction_accounts.array_line_num(Jdx) ;
16739 g_transaction_accounts.array_ae_header_id(l_Idx) := g_mpa_transaction_accounts.array_ae_header_id(Jdx) ;
16740 g_transaction_accounts.array_temp_line_num(l_Idx) := l_new_temp_line_num; -- changed from p_new_temp_line_num bug13023651
16741 g_transaction_accounts.array_code_combination_id(l_Idx) := g_mpa_transaction_accounts.array_code_combination_id(Jdx) ;
16742 g_transaction_accounts.array_segment(l_Idx) := g_mpa_transaction_accounts.array_segment(Jdx) ;
16743 g_transaction_accounts.array_from_segment_code(l_Idx) := g_mpa_transaction_accounts.array_from_segment_code(Jdx) ;
16744 g_transaction_accounts.array_to_segment_code(l_Idx) := g_mpa_transaction_accounts.array_to_segment_code(Jdx) ;
16745 g_transaction_accounts.array_processing_status_code(l_Idx) := g_mpa_transaction_accounts.array_processing_status_code(Jdx) ;
16746 g_transaction_accounts.array_side_code(l_Idx) := g_mpa_transaction_accounts.array_side_code(Jdx) ;
16747
16748 END IF;
16749
16750 END LOOP;
16751 END IF;
16752
16753 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16754 trace
16755 (p_msg => 'End of CopyMpaTrxAcctCopyInfo l_Idx: ' || l_Idx
16756 ,p_level => C_LEVEL_PROCEDURE
16757 ,p_module => l_log_module);
16758 END IF;
16759 EXCEPTION
16760 --
16761 WHEN xla_exceptions_pkg.application_exception THEN
16762 RAISE;
16763 WHEN OTHERS THEN
16764 xla_exceptions_pkg.raise_message
16765 (p_location => 'xla_ae_lines_pkg.CopyMpaTrxAcctCopyInfo');
16766 --
16767 END CopyMpaTrxAcctCopyInfo;
16768
16769 --=============================================================================
16770 --
16771 --
16772 --
16773 --
16774 --
16775 --
16776 --
16777 --
16778 --
16779 --
16780 --
16781 --
16782 --
16783 --
16784 --
16785 --
16786 --
16787 --
16788 --
16789 --
16790 --
16791 --
16792 --=============================================================================
16793 --=============================================================================
16794 -- *********** Initialization routine **********
16795 --=============================================================================
16796
16797 BEGIN
16798 g_application_id := xla_accounting_cache_pkg.GetValueNum('XLA_EVENT_APPL_ID');
16799
16800 ----------------------------------------
16801 -- 4219869 Init Business Flow counts
16802 ----------------------------------------
16803 g_num_bflow_prior_entries := 0;
16804 g_num_bflow_same_entries := 0;
16805
16806 ----------------------------------------
16807 -- 5108415 Incomplete MPA
16808 ----------------------------------------
16809 g_incomplete_mpa_acc_LR := NULL;
16810 g_incomplete_mpa_acc_TR := NULL;
16811
16812 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
16813 g_log_enabled := fnd_log.test
16814 (log_level => g_log_level
16815 ,module => C_DEFAULT_MODULE);
16816
16817 IF NOT g_log_enabled THEN
16818 g_log_level := C_LEVEL_LOG_DISABLED;
16819 END IF;
16820
16821 END xla_ae_lines_pkg;